659 lines
16 KiB
Markdown
659 lines
16 KiB
Markdown
# Implementation Blueprint_ Repository and Runtime Mapping
|
|
|
|
**Date:** 2026-04-14
|
|
**Status:** Draft implementation blueprint
|
|
**Purpose:** Convert the biomimetic orchestration design into a repository-level build plan tied directly to the current Project Velocity codebase.
|
|
|
|
## 1. Purpose
|
|
|
|
This document defines the exact implementation skeleton for the colony orchestration layer inside Project Velocity.
|
|
|
|
## 2. Current State Mapping
|
|
|
|
Project Velocity already has enough root infrastructure to support a colony orchestration layer without introducing a second backend center.
|
|
|
|
### 2.1 Root FastAPI and Router Truth
|
|
|
|
The current root backend in `backend/main.py` already mounts the relevant operational surfaces:
|
|
|
|
- `backend/api/routes_catalyst.py`
|
|
- `backend/api/routes_crm.py`
|
|
- `backend/api/routes_oracle.py`
|
|
- `backend/oracle/router_v1.py`
|
|
- `backend/routers/sentinel.py`
|
|
- `backend/routers/cctv.py`
|
|
- `backend/routers/scenes.py`
|
|
- `backend/routers/videos.py`
|
|
- `backend/routers/vault.py`
|
|
|
|
This means the colony layer must integrate into the current root, not compete with it.
|
|
|
|
### 2.2 Oracle Truth
|
|
|
|
Oracle already contains a meaningful planning spine:
|
|
|
|
- `backend/oracle/prompt_orchestrator.py`
|
|
- `backend/oracle/persona_service.py`
|
|
- `backend/oracle/policy_service.py`
|
|
- `backend/oracle/data_access_gateway.py`
|
|
- `backend/oracle/action_service.py`
|
|
- `backend/oracle/router_v1.py`
|
|
|
|
This is critical. The colony layer must not replace Oracle v1. It must become the next orchestration layer beneath or beside the current prompt orchestration concepts.
|
|
|
|
### 2.3 CRM Truth
|
|
|
|
CRM is now real enough to serve as an internal mission substrate:
|
|
|
|
- `backend/api/routes_crm.py` exposes leads, chat logs, kanban, demographics, seed flow, and analytics scatter
|
|
- `/ws/crm` already exists in `backend/main.py`
|
|
- frontend CRM bootstrap already exists under `app/src/hooks/useCrmBootstrap.ts`
|
|
|
|
The colony therefore has a real internal state store to reason over. It should use CRM as one of its first mission domains.
|
|
|
|
### 2.4 Nemoclaw and MCP Truth
|
|
|
|
Project Velocity already includes root-owned Python append layers:
|
|
|
|
- `backend/services/nemoclaw_runtime.py`
|
|
- `backend/services/mcp_registry.py`
|
|
- `backend/services/nemoclaw_client.py`
|
|
|
|
These are not yet a full orchestration platform, but they provide three essential things:
|
|
|
|
- workflow dispatch preview semantics
|
|
- external and internal tool abstraction
|
|
- model-facing reasoning utilities
|
|
|
|
### 2.5 Frontend Truth
|
|
|
|
The frontend already exposes product surfaces that will eventually call the colony:
|
|
|
|
- Oracle page shell
|
|
- CRM and pipeline surfaces
|
|
- Catalyst and marketing tab
|
|
- Sentinel live session and perception surfaces
|
|
|
|
The correct implementation path is therefore back-to-front:
|
|
|
|
- build colony runtime and contracts first
|
|
- expose root API entry points second
|
|
- consume them from Oracle and CRM first
|
|
|
|
## 3. Target Runtime Shape
|
|
|
|
The target runtime must use a split-brain architecture with one root authority and one specialized orchestration service.
|
|
|
|
### 3.1 Root Authority
|
|
|
|
The current Python root remains authoritative for:
|
|
|
|
- authentication
|
|
- PostgreSQL access
|
|
- domain data models
|
|
- Oracle page and canvas persistence
|
|
- CRM persistence
|
|
- Sentinel ingestion and response
|
|
- Catalyst persistence and route ownership
|
|
|
|
### 3.2 Colony Runtime
|
|
|
|
The new TypeScript colony service becomes authoritative for:
|
|
|
|
- mission normalization
|
|
- task graph planning
|
|
- prompt package generation
|
|
- worker provisioning
|
|
- inter-agent execution
|
|
- aggregation and review
|
|
- orchestration traces
|
|
|
|
### 3.3 Guard Plane
|
|
|
|
Nemoclaw-derived governance remains external to worker prompts and should mediate:
|
|
|
|
- tool scope
|
|
- network egress class
|
|
- model routing class
|
|
- writeback validation
|
|
- audit events
|
|
|
|
### 3.4 Why This Split Is Correct
|
|
|
|
This split is the least disruptive implementation path because:
|
|
|
|
- Project Velocity already has a mature Python root
|
|
- Open Multi Agent is TypeScript-native and should remain where it is strongest
|
|
- domain systems should not be reimplemented in the colony runtime
|
|
- orchestration should not directly own CRM, Oracle, or Sentinel tables
|
|
|
|
## 4. File-by-File Repository Blueprint
|
|
|
|
The following structure should be created.
|
|
|
|
### 4.1 New Top-Level Service
|
|
|
|
Create:
|
|
|
|
```text
|
|
services/
|
|
colony-orchestrator/
|
|
```
|
|
|
|
This service is the fork-and-extend boundary for Open Multi Agent concepts.
|
|
|
|
### 4.2 TypeScript Service Tree
|
|
|
|
Create:
|
|
|
|
```text
|
|
services/colony-orchestrator/
|
|
package.json
|
|
tsconfig.json
|
|
README.md
|
|
src/
|
|
index.ts
|
|
config/
|
|
env.ts
|
|
models.ts
|
|
core/
|
|
colony-runtime.ts
|
|
mission-runner.ts
|
|
task-graph.ts
|
|
scheduler.ts
|
|
worker-factory.ts
|
|
contracts/
|
|
mission.ts
|
|
task.ts
|
|
prompt-package.ts
|
|
research-artifact.ts
|
|
librarian-pass.ts
|
|
worker-result.ts
|
|
aggregation-packet.ts
|
|
review-packet.ts
|
|
policy-decision.ts
|
|
planner/
|
|
mission-normalizer.ts
|
|
planner-agent.ts
|
|
decomposition-policy.ts
|
|
prompt-master/
|
|
prompt-master-agent.ts
|
|
template-registry.ts
|
|
exemplar-registry.ts
|
|
prompt-package-builder.ts
|
|
librarian/
|
|
librarian-agent.ts
|
|
source-catalog.ts
|
|
route-card-builder.ts
|
|
cache-index.ts
|
|
researcher/
|
|
researcher-agent.ts
|
|
search-provider.ts
|
|
browser-provider.ts
|
|
citation-normalizer.ts
|
|
workers/
|
|
worker-agent.ts
|
|
worker-context-builder.ts
|
|
result-normalizer.ts
|
|
aggregation/
|
|
aggregator-agent.ts
|
|
evidence-matrix.ts
|
|
contradiction-detector.ts
|
|
review/
|
|
reviewer-agent.ts
|
|
review-policy.ts
|
|
release-gate.ts
|
|
policy/
|
|
tool-policy.ts
|
|
model-routing-policy.ts
|
|
writeback-policy.ts
|
|
risk-classifier.ts
|
|
adapters/
|
|
oracle-adapter.ts
|
|
crm-adapter.ts
|
|
catalyst-adapter.ts
|
|
sentinel-adapter.ts
|
|
python-root-client.ts
|
|
persistence/
|
|
mission-store.ts
|
|
artifact-store.ts
|
|
pheromone-store.ts
|
|
telemetry/
|
|
audit-log.ts
|
|
mission-trace.ts
|
|
metrics.ts
|
|
tests/
|
|
contracts/
|
|
planner/
|
|
prompt-master/
|
|
librarian/
|
|
researcher/
|
|
integration/
|
|
```
|
|
|
|
### 4.3 New Python Root Files
|
|
|
|
Create:
|
|
|
|
```text
|
|
backend/
|
|
api/
|
|
routes_colony.py
|
|
services/
|
|
colony_gateway.py
|
|
colony_repository.py
|
|
colony_policy_bridge.py
|
|
db/
|
|
schema_colony.sql
|
|
```
|
|
|
|
### 4.4 Why These Files Exist
|
|
|
|
`routes_colony.py` is the root public API surface for colony mission submission and inspection.
|
|
|
|
`colony_gateway.py` is the Python integration client that talks to the TypeScript colony service.
|
|
|
|
`colony_repository.py` is the root-owned persistence adapter for colony mission records that must live near current PostgreSQL patterns.
|
|
|
|
`colony_policy_bridge.py` is the place where root policy, Nemoclaw-derived guard logic, and domain-specific action constraints are translated into colony-consumable decisions.
|
|
|
|
`schema_colony.sql` is the root schema source for mission and artifact persistence.
|
|
|
|
## 5. Python Root Integration Plan
|
|
|
|
The Python root must integrate the colony in a way that preserves current ownership.
|
|
|
|
### 5.1 New Root Routes
|
|
|
|
Mount a new router in `backend/main.py`:
|
|
|
|
```python
|
|
from backend.api.routes_colony import router as colony_router
|
|
app.include_router(colony_router, prefix="/api/colony", tags=["Colony"])
|
|
```
|
|
|
|
### 5.2 Required Root Endpoints
|
|
|
|
Phase 1 root endpoints should be:
|
|
|
|
- `POST /api/colony/missions`
|
|
- `GET /api/colony/missions/{mission_id}`
|
|
- `GET /api/colony/missions/{mission_id}/artifacts`
|
|
- `POST /api/colony/missions/{mission_id}/approve`
|
|
- `POST /api/colony/missions/{mission_id}/reject`
|
|
- `GET /api/colony/health`
|
|
|
|
### 5.3 Root Responsibilities
|
|
|
|
The Python root should:
|
|
|
|
- authenticate and authorize caller context
|
|
- attach tenant and actor context
|
|
- classify requested mission type
|
|
- persist mission metadata
|
|
- call colony runtime
|
|
- validate requested writebacks
|
|
- surface mission state to existing product surfaces
|
|
|
|
### 5.4 Explicit Non-Responsibilities
|
|
|
|
The Python root should not:
|
|
|
|
- perform colony DAG decomposition itself
|
|
- own worker prompt package generation
|
|
- run direct multi-agent loops inside FastAPI request handlers
|
|
|
|
Those belong in the colony service.
|
|
|
|
## 6. TypeScript Colony Service Plan
|
|
|
|
The colony service should be implemented as a narrowly scoped internal service, not as a second public product shell.
|
|
|
|
### 6.1 Source of Truth for Execution
|
|
|
|
The service should own:
|
|
|
|
- mission runtime state
|
|
- task graph state
|
|
- prompt package generation
|
|
- agent execution
|
|
- review packets
|
|
- orchestration traces
|
|
|
|
### 6.2 Upstream Fork Strategy
|
|
|
|
Do not copy the entire Open Multi Agent repository directly into the root app. Instead:
|
|
|
|
1. create `services/colony-orchestrator/`
|
|
2. import or adapt upstream concepts into `src/core/`
|
|
3. keep Velocity-specific roles outside the upstream-like core folders
|
|
|
|
The forked pieces should roughly correspond to:
|
|
|
|
- `OpenMultiAgent` -> `colony-runtime.ts`
|
|
- `TaskQueue` -> `task-graph.ts`
|
|
- `Scheduler` -> `scheduler.ts`
|
|
- `AgentPool` -> `worker-factory.ts` plus internal pool manager
|
|
- `team/messaging` and `memory/shared` -> mission-local context bus and artifact retrieval
|
|
|
|
### 6.3 Colony Role Mapping
|
|
|
|
Map the biomimetic metaphor to concrete runtime classes:
|
|
|
|
- queen -> root product surface plus mission ID ownership
|
|
- planner ant -> `planner/planner-agent.ts`
|
|
- prompt master ant -> `prompt-master/prompt-master-agent.ts`
|
|
- researcher ant -> `researcher/researcher-agent.ts`
|
|
- librarian ant -> `librarian/librarian-agent.ts`
|
|
- worker ants -> `workers/worker-agent.ts`
|
|
- aggregator ant -> `aggregation/aggregator-agent.ts`
|
|
- reviewer ant -> `review/reviewer-agent.ts`
|
|
|
|
### 6.4 Execution Model
|
|
|
|
Per mission:
|
|
|
|
1. `mission-normalizer.ts` creates mission envelope
|
|
2. `planner-agent.ts` creates task graph
|
|
3. `prompt-package-builder.ts` creates prompt package per task
|
|
4. `librarian-agent.ts` creates route cards and scoped passes
|
|
5. `researcher-agent.ts` creates evidence artifacts where required
|
|
6. `worker-agent.ts` executes task-specific work
|
|
7. `aggregator-agent.ts` synthesizes outputs
|
|
8. `reviewer-agent.ts` performs one-pass review
|
|
9. final packet is returned to root
|
|
|
|
### 6.5 Mission Classes for Phase 1
|
|
|
|
Implement only three mission classes first:
|
|
|
|
- `oracle_advisory`
|
|
- `crm_lead_intelligence`
|
|
- `catalyst_strategy_brief`
|
|
|
|
Do not start with generalized free-form autonomous missions. Use typed mission classes only.
|
|
|
|
## 7. Mission, Artifact, and Persistence Plan
|
|
|
|
The current Open Multi Agent model is intentionally short-lived and mostly in-memory. Project Velocity needs persistence from day one.
|
|
|
|
### 7.1 Root Database Objects
|
|
|
|
Create the following tables in `backend/db/schema_colony.sql`:
|
|
|
|
- `colony_missions`
|
|
- `colony_tasks`
|
|
- `colony_prompt_packages`
|
|
- `colony_research_artifacts`
|
|
- `colony_librarian_passes`
|
|
- `colony_worker_results`
|
|
- `colony_aggregation_packets`
|
|
- `colony_review_packets`
|
|
- `colony_policy_decisions`
|
|
- `colony_pheromone_signals`
|
|
|
|
### 7.2 Mandatory Columns
|
|
|
|
Every table should include:
|
|
|
|
- primary ID
|
|
- mission ID foreign key where applicable
|
|
- `tenant_id`
|
|
- `actor_id`
|
|
- `status`
|
|
- `payload jsonb`
|
|
- `created_at`
|
|
- `updated_at`
|
|
|
|
### 7.3 Mission Envelope Contract
|
|
|
|
Mission payload should minimally contain:
|
|
|
|
- `mission_id`
|
|
- `mission_type`
|
|
- `origin_surface`
|
|
- `user_goal`
|
|
- `normalized_goal`
|
|
- `tenant_id`
|
|
- `actor_id`
|
|
- `risk_level`
|
|
- `sensitivity_class`
|
|
- `time_budget_ms`
|
|
- `token_budget`
|
|
- `requested_outputs`
|
|
|
|
### 7.4 Why Persistence Is Mandatory
|
|
|
|
Persistence is not optional because the product needs:
|
|
|
|
- sales-demo reliability
|
|
- auditability
|
|
- mission replay and debugging
|
|
- operator review visibility
|
|
- future approvals and resumability
|
|
|
|
## 8. Adapter Plan for Oracle, CRM, Catalyst, and Sentinel
|
|
|
|
### 8.1 Oracle Adapter
|
|
|
|
The Oracle adapter should be the first-class Phase 1 adapter.
|
|
|
|
It should:
|
|
|
|
- accept a prompt from Oracle UI or Oracle helper routes
|
|
- translate it into `oracle_advisory` mission type
|
|
- enrich with tenant, actor, page, branch, and target lead context
|
|
- return structured renderable packet plus optional writeback proposal
|
|
|
|
Do not bypass `backend/oracle/router_v1.py`. Instead add a colony-backed path under Oracle helper or Oracle v1 integration.
|
|
|
|
### 8.2 CRM Adapter
|
|
|
|
The CRM adapter should:
|
|
|
|
- accept a lead or kanban stage context
|
|
- create `crm_lead_intelligence` mission type
|
|
- pull relevant lead, chat log, and stage data through root APIs or repository methods
|
|
- return structured insights, next-step suggestions, and optional message drafts
|
|
|
|
### 8.3 Catalyst Adapter
|
|
|
|
Catalyst should be Phase 1.5 or Phase 2, but the file boundary should exist now.
|
|
|
|
It should eventually create `catalyst_strategy_brief` missions using:
|
|
|
|
- campaign state
|
|
- analytics
|
|
- audience context
|
|
- ad network context
|
|
|
|
### 8.4 Sentinel Adapter
|
|
|
|
Sentinel should initially be an evidence provider, not an autonomous mission origin.
|
|
|
|
That means Sentinel data can be attached to missions as:
|
|
|
|
- perception evidence
|
|
- emotional interest signals
|
|
- room-level events
|
|
|
|
but Sprint 1 should not make Sentinel the lead actor in colony execution.
|
|
|
|
## 9. Governance and Nemoclaw Guard Plan
|
|
|
|
Governance is where this system either becomes production-ready or stays a demo.
|
|
|
|
### 9.1 Policy Layers
|
|
|
|
There should be four policy layers:
|
|
|
|
1. mission admission policy
|
|
2. tool and data scope policy
|
|
3. model routing policy
|
|
4. writeback release policy
|
|
|
|
### 9.2 Mission Admission Policy
|
|
|
|
Before the colony starts, classify:
|
|
|
|
- mission type
|
|
- sensitivity
|
|
- autonomy tier
|
|
- required review level
|
|
|
|
### 9.3 Tool and Data Scope Policy
|
|
|
|
Every worker must receive an explicit allowed tool list and allowed data scope list. No worker should receive generic open access to all MCP tools or all root data.
|
|
|
|
### 9.4 Model Routing Policy
|
|
|
|
At minimum define:
|
|
|
|
- `tier_local_private`
|
|
- `tier_cloud_standard`
|
|
- `tier_high_reasoning`
|
|
|
|
This routing decision must be computed outside the worker prompt and carried into the prompt package.
|
|
|
|
### 9.5 Writeback Release Policy
|
|
|
|
No worker should directly mutate CRM or Oracle state.
|
|
|
|
All writebacks should go through:
|
|
|
|
- `review-packet`
|
|
- root policy bridge
|
|
- root writeback validator
|
|
|
|
### 9.6 Current Code to Reuse
|
|
|
|
Directly leverage:
|
|
|
|
- `backend/oracle/action_service.py`
|
|
- `backend/oracle/policy_service.py`
|
|
- `backend/services/nemoclaw_runtime.py`
|
|
- `backend/services/mcp_registry.py`
|
|
|
|
These should not be discarded. They should be bridged into the colony runtime.
|
|
|
|
## 10. Testing and Operationalization Plan
|
|
|
|
Testing must be mission-centered, not only framework-centered.
|
|
|
|
### 10.1 Required Test Layers
|
|
|
|
Create tests for:
|
|
|
|
- schema validation
|
|
- planner outputs
|
|
- prompt package generation
|
|
- librarian routing passes
|
|
- research artifact normalization
|
|
- worker result normalization
|
|
- aggregation packets
|
|
- review decisions
|
|
- policy rejection
|
|
- root adapter integration
|
|
|
|
### 10.2 Root Integration Tests
|
|
|
|
Add Python integration tests for:
|
|
|
|
- `POST /api/colony/missions`
|
|
- Oracle adapter mission submission
|
|
- CRM adapter mission submission
|
|
- writeback approval and rejection flow
|
|
|
|
### 10.3 Operational Readiness
|
|
|
|
The service is only considered production-candidate when it has:
|
|
|
|
- health endpoint
|
|
- structured logs
|
|
- trace correlation IDs
|
|
- mission replay view
|
|
- failure reason visibility
|
|
- environment-driven provider config
|
|
|
|
## 11. Build Order
|
|
|
|
The implementation order should be fixed.
|
|
|
|
### Step 1
|
|
|
|
Create `services/colony-orchestrator/` with:
|
|
|
|
- package setup
|
|
- base runtime shell
|
|
- contract files
|
|
|
|
### Step 2
|
|
|
|
Create `backend/db/schema_colony.sql` and repository helpers.
|
|
|
|
### Step 3
|
|
|
|
Create `backend/services/colony_gateway.py` and `backend/api/routes_colony.py`.
|
|
|
|
### Step 4
|
|
|
|
Implement:
|
|
|
|
- mission normalizer
|
|
- planner
|
|
- prompt package builder
|
|
|
|
### Step 5
|
|
|
|
Implement:
|
|
|
|
- librarian
|
|
- researcher provider interfaces
|
|
|
|
### Step 6
|
|
|
|
Implement:
|
|
|
|
- worker execution
|
|
- aggregator
|
|
- reviewer
|
|
|
|
### Step 7
|
|
|
|
Implement:
|
|
|
|
- Oracle adapter
|
|
- CRM adapter
|
|
|
|
### Step 8
|
|
|
|
Implement governance bridge and writeback approval flow.
|
|
|
|
### Step 9
|
|
|
|
Run end-to-end acceptance on Oracle and CRM mission classes.
|
|
|
|
## 12. Non-Negotiable Decisions
|
|
|
|
These decisions should be frozen unless strong evidence proves them wrong:
|
|
|
|
- no second Python backend center
|
|
- no replacement of Oracle v1
|
|
- no uncontrolled context sharing
|
|
- no prompt-only governance
|
|
- no direct worker writebacks to root state
|
|
- no generic mission types before typed domain missions succeed
|
|
|
|
## 13. Bottom Line
|
|
|
|
The colony layer should be added as a new orchestration service plus a thin root integration layer.
|
|
|
|
The build should start where Project Velocity is already strong:
|
|
|
|
- Oracle
|
|
- CRM
|
|
- root PostgreSQL
|
|
- existing policy and Nemoclaw helper surfaces
|
|
|
|
That is the shortest path from architecture to a sellable working product.
|