feat(orchestrator): Phase 1 — event types + broadcast channel foundation

Introduces the orchestrator module with:
- OrchestratorEvent enum: 11 event variants covering lifecycle, tools,
  progress, and side effects
- RequestId (UUID per generation), ResponseMode (Chat/Code), ToolSide
- ChatRequest/CodeRequest structs for transport-agnostic request input
- Orchestrator struct with tokio::broadcast channel (capacity 256)
- subscribe() for transport bridges, emit() for the engine
- Client-side tool dispatch: pending_client_tools map with oneshot channels
- submit_tool_result() to unblock engine from gRPC client responses

Additive only — no behavior change. Existing responder + gRPC session
paths are untouched. Phase 2 will migrate the Conversations API path.
This commit is contained in:
2026-03-23 17:30:36 +00:00
parent b8b76687a5
commit ec4fde7b97
4 changed files with 477 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ mod matrix_utils;
mod memory;
mod persistence;
mod grpc;
mod orchestrator;
mod sdk;
mod sync;
mod time_context;