| feat(wiring): wire deferred features into createLocalGateway end-to-end
Closes the 16 wiring gaps where features had been implemented but never
reached the production code path. Highlights:
- R0/R1: extend AgentContextRuntime / AgentRuntimeDependencies / Gateway
with applyToolResults, captureTurn, elicitation, fileHistory, and the
__testModelFactory injection point. Register structured_output (A3)
and ask_user_question (B1) in the default builtin registry.
- R2: per-project BackgroundTaskRuntime, EdgeClawMemoryProvider and
lazy McpRuntime (with parsePluginMcpServers and tool bridging) are
now constructed inside ProjectRuntimeRegistry.
- R3: per-session ToolResultBudget, FileHistoryStore, sidechain
transcript hooks, TokenBudgetManager / CompactionEngine /
AutoCompactionPolicy / CachedMicroCompactionEngine are injected via
resumeAgentSession's new extendDependencies hook.
- R4: AgentLoop now sets messageId/elicitation/fileHistory on the tool
runtime context and calls context.applyToolResults / captureTurn at
the right turn boundaries.
- R5: bidirectional Gateway elicitation — GatewayElicitationBus +
GatewayElicitationChannel, AsyncQueue-based event fan-in in
InProcessGateway.submitTurn, respondElicitation on Gateway plus a
matching WS frame.
- R6: replace the fragile grep-style wiring tests with a real
__testModelFactory-driven scenario asserting structured_output /
ask_user_question reach the model request, and that
respondElicitation cleanly reports unknown requestIds.
All 591 tests pass (4 skipped).
Co-authored-by: Cursor <cursoragent@cursor.com>
| 24 天前 |