macro-agent 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +30 -56
- package/dist/acp/websocket-server.d.ts +6 -0
- package/dist/acp/websocket-server.d.ts.map +1 -1
- package/dist/acp/websocket-server.js +13 -0
- package/dist/acp/websocket-server.js.map +1 -1
- package/dist/acp/websocket-stream.d.ts +30 -0
- package/dist/acp/websocket-stream.d.ts.map +1 -0
- package/dist/acp/websocket-stream.js +118 -0
- package/dist/acp/websocket-stream.js.map +1 -0
- package/dist/activity/deduplication.d.ts +85 -0
- package/dist/activity/deduplication.d.ts.map +1 -0
- package/dist/activity/deduplication.js +149 -0
- package/dist/activity/deduplication.js.map +1 -0
- package/dist/activity/index.d.ts +16 -0
- package/dist/activity/index.d.ts.map +1 -0
- package/dist/activity/index.js +17 -0
- package/dist/activity/index.js.map +1 -0
- package/dist/activity/relevance.d.ts +81 -0
- package/dist/activity/relevance.d.ts.map +1 -0
- package/dist/activity/relevance.js +161 -0
- package/dist/activity/relevance.js.map +1 -0
- package/dist/activity/types.d.ts +169 -0
- package/dist/activity/types.d.ts.map +1 -0
- package/dist/activity/types.js +33 -0
- package/dist/activity/types.js.map +1 -0
- package/dist/activity/watcher.d.ts +64 -0
- package/dist/activity/watcher.d.ts.map +1 -0
- package/dist/activity/watcher.js +212 -0
- package/dist/activity/watcher.js.map +1 -0
- package/dist/adapters/federation.d.ts +8 -1
- package/dist/adapters/federation.d.ts.map +1 -1
- package/dist/adapters/federation.js +33 -2
- package/dist/adapters/federation.js.map +1 -1
- package/dist/agent/agent-manager-v2.d.ts.map +1 -1
- package/dist/agent/agent-manager-v2.js +189 -67
- package/dist/agent/agent-manager-v2.js.map +1 -1
- package/dist/agent/agent-manager.d.ts +17 -0
- package/dist/agent/agent-manager.d.ts.map +1 -1
- package/dist/agent/agent-manager.js.map +1 -1
- package/dist/agent/types.d.ts +21 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/agent/wake.d.ts +85 -0
- package/dist/agent/wake.d.ts.map +1 -0
- package/dist/agent/wake.js +278 -0
- package/dist/agent/wake.js.map +1 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +41 -25
- package/dist/api/server.js.map +1 -1
- package/dist/api/types.d.ts +6 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/auth/server-auth.d.ts +43 -0
- package/dist/auth/server-auth.d.ts.map +1 -0
- package/dist/auth/server-auth.js +80 -0
- package/dist/auth/server-auth.js.map +1 -0
- package/dist/auth/token.d.ts +4 -0
- package/dist/auth/token.d.ts.map +1 -1
- package/dist/auth/token.js +7 -6
- package/dist/auth/token.js.map +1 -1
- package/dist/boot-v2.d.ts +6 -3
- package/dist/boot-v2.d.ts.map +1 -1
- package/dist/boot-v2.js +44 -25
- package/dist/boot-v2.js.map +1 -1
- package/dist/cognitive/macro-agent-backend.d.ts.map +1 -1
- package/dist/cognitive/macro-agent-backend.js +37 -8
- package/dist/cognitive/macro-agent-backend.js.map +1 -1
- package/dist/cognitive/team-lifecycle.d.ts +82 -0
- package/dist/cognitive/team-lifecycle.d.ts.map +1 -0
- package/dist/cognitive/team-lifecycle.js +121 -0
- package/dist/cognitive/team-lifecycle.js.map +1 -0
- package/dist/cognitive/trajectory-extractor.d.ts +25 -0
- package/dist/cognitive/trajectory-extractor.d.ts.map +1 -0
- package/dist/cognitive/trajectory-extractor.js +134 -0
- package/dist/cognitive/trajectory-extractor.js.map +1 -0
- package/dist/cognitive/types.d.ts +24 -0
- package/dist/cognitive/types.d.ts.map +1 -1
- package/dist/control/control-server.d.ts.map +1 -1
- package/dist/control/control-server.js +10 -0
- package/dist/control/control-server.js.map +1 -1
- package/dist/dispatch/mail-inbound-consumer.d.ts.map +1 -1
- package/dist/dispatch/mail-inbound-consumer.js +43 -10
- package/dist/dispatch/mail-inbound-consumer.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/handlers/generic.d.ts +27 -0
- package/dist/lifecycle/handlers/generic.d.ts.map +1 -0
- package/dist/lifecycle/handlers/generic.js +56 -0
- package/dist/lifecycle/handlers/generic.js.map +1 -0
- package/dist/lifecycle/handlers/index.d.ts +51 -0
- package/dist/lifecycle/handlers/index.d.ts.map +1 -0
- package/dist/lifecycle/handlers/index.js +110 -0
- package/dist/lifecycle/handlers/index.js.map +1 -0
- package/dist/lifecycle/handlers/integrator.d.ts +81 -0
- package/dist/lifecycle/handlers/integrator.d.ts.map +1 -0
- package/dist/lifecycle/handlers/integrator.js +451 -0
- package/dist/lifecycle/handlers/integrator.js.map +1 -0
- package/dist/lifecycle/handlers/monitor.d.ts +29 -0
- package/dist/lifecycle/handlers/monitor.d.ts.map +1 -0
- package/dist/lifecycle/handlers/monitor.js +79 -0
- package/dist/lifecycle/handlers/monitor.js.map +1 -0
- package/dist/lifecycle/handlers/worker.d.ts +56 -0
- package/dist/lifecycle/handlers/worker.d.ts.map +1 -0
- package/dist/lifecycle/handlers/worker.js +381 -0
- package/dist/lifecycle/handlers/worker.js.map +1 -0
- package/dist/lifecycle/handlers-v2.d.ts +0 -2
- package/dist/lifecycle/handlers-v2.d.ts.map +1 -1
- package/dist/lifecycle/handlers-v2.js +4 -55
- package/dist/lifecycle/handlers-v2.js.map +1 -1
- package/dist/mail/conversation-map.d.ts +33 -0
- package/dist/mail/conversation-map.d.ts.map +1 -0
- package/dist/mail/conversation-map.js +61 -0
- package/dist/mail/conversation-map.js.map +1 -0
- package/dist/mail/index.d.ts +11 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +11 -0
- package/dist/mail/index.js.map +1 -0
- package/dist/mail/mail-service.d.ts +85 -0
- package/dist/mail/mail-service.d.ts.map +1 -0
- package/dist/mail/mail-service.js +121 -0
- package/dist/mail/mail-service.js.map +1 -0
- package/dist/mail/stores/eventstore-conversation-store.d.ts +40 -0
- package/dist/mail/stores/eventstore-conversation-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-conversation-store.js +131 -0
- package/dist/mail/stores/eventstore-conversation-store.js.map +1 -0
- package/dist/mail/stores/eventstore-participant-store.d.ts +43 -0
- package/dist/mail/stores/eventstore-participant-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-participant-store.js +145 -0
- package/dist/mail/stores/eventstore-participant-store.js.map +1 -0
- package/dist/mail/stores/eventstore-thread-store.d.ts +46 -0
- package/dist/mail/stores/eventstore-thread-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-thread-store.js +118 -0
- package/dist/mail/stores/eventstore-thread-store.js.map +1 -0
- package/dist/mail/stores/eventstore-turn-store.d.ts +47 -0
- package/dist/mail/stores/eventstore-turn-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-turn-store.js +153 -0
- package/dist/mail/stores/eventstore-turn-store.js.map +1 -0
- package/dist/mail/stores/index.d.ts +12 -0
- package/dist/mail/stores/index.d.ts.map +1 -0
- package/dist/mail/stores/index.js +12 -0
- package/dist/mail/stores/index.js.map +1 -0
- package/dist/mail/stores/types.d.ts +146 -0
- package/dist/mail/stores/types.d.ts.map +1 -0
- package/dist/mail/stores/types.js +13 -0
- package/dist/mail/stores/types.js.map +1 -0
- package/dist/mail/turn-recorder.d.ts +30 -0
- package/dist/mail/turn-recorder.d.ts.map +1 -0
- package/dist/mail/turn-recorder.js +98 -0
- package/dist/mail/turn-recorder.js.map +1 -0
- package/dist/map/adapter/acp-over-map.d.ts +115 -0
- package/dist/map/adapter/acp-over-map.d.ts.map +1 -0
- package/dist/map/adapter/acp-over-map.js +1024 -0
- package/dist/map/adapter/acp-over-map.js.map +1 -0
- package/dist/map/adapter/connection-manager.d.ts +150 -0
- package/dist/map/adapter/connection-manager.d.ts.map +1 -0
- package/dist/map/adapter/connection-manager.js +207 -0
- package/dist/map/adapter/connection-manager.js.map +1 -0
- package/dist/map/adapter/event-log.d.ts +87 -0
- package/dist/map/adapter/event-log.d.ts.map +1 -0
- package/dist/map/adapter/event-log.js +122 -0
- package/dist/map/adapter/event-log.js.map +1 -0
- package/dist/map/adapter/event-translator.d.ts +85 -0
- package/dist/map/adapter/event-translator.d.ts.map +1 -0
- package/dist/map/adapter/event-translator.js +295 -0
- package/dist/map/adapter/event-translator.js.map +1 -0
- package/dist/map/adapter/extensions/agent-detection.d.ts +49 -0
- package/dist/map/adapter/extensions/agent-detection.d.ts.map +1 -0
- package/dist/map/adapter/extensions/agent-detection.js +91 -0
- package/dist/map/adapter/extensions/agent-detection.js.map +1 -0
- package/dist/map/adapter/extensions/agent-lifecycle.d.ts +82 -0
- package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +1 -0
- package/dist/map/adapter/extensions/agent-lifecycle.js +164 -0
- package/dist/map/adapter/extensions/agent-lifecycle.js.map +1 -0
- package/dist/map/adapter/extensions/cognitive.d.ts +27 -0
- package/dist/map/adapter/extensions/cognitive.d.ts.map +1 -0
- package/dist/map/adapter/extensions/cognitive.js +158 -0
- package/dist/map/adapter/extensions/cognitive.js.map +1 -0
- package/dist/map/adapter/extensions/index.d.ts +95 -0
- package/dist/map/adapter/extensions/index.d.ts.map +1 -0
- package/dist/map/adapter/extensions/index.js +228 -0
- package/dist/map/adapter/extensions/index.js.map +1 -0
- package/dist/map/adapter/extensions/mcp-bridge.d.ts +57 -0
- package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +1 -0
- package/dist/map/adapter/extensions/mcp-bridge.js +745 -0
- package/dist/map/adapter/extensions/mcp-bridge.js.map +1 -0
- package/dist/map/adapter/extensions/resume.d.ts +47 -0
- package/dist/map/adapter/extensions/resume.d.ts.map +1 -0
- package/dist/map/adapter/extensions/resume.js +59 -0
- package/dist/map/adapter/extensions/resume.js.map +1 -0
- package/dist/map/adapter/extensions/streams.d.ts +95 -0
- package/dist/map/adapter/extensions/streams.d.ts.map +1 -0
- package/dist/map/adapter/extensions/streams.js +515 -0
- package/dist/map/adapter/extensions/streams.js.map +1 -0
- package/dist/map/adapter/extensions/task.d.ts +40 -0
- package/dist/map/adapter/extensions/task.d.ts.map +1 -0
- package/dist/map/adapter/extensions/task.js +197 -0
- package/dist/map/adapter/extensions/task.js.map +1 -0
- package/dist/map/adapter/extensions/update-metadata.d.ts +29 -0
- package/dist/map/adapter/extensions/update-metadata.d.ts.map +1 -0
- package/dist/map/adapter/extensions/update-metadata.js +67 -0
- package/dist/map/adapter/extensions/update-metadata.js.map +1 -0
- package/dist/map/adapter/extensions/wake.d.ts +60 -0
- package/dist/map/adapter/extensions/wake.d.ts.map +1 -0
- package/dist/map/adapter/extensions/wake.js +144 -0
- package/dist/map/adapter/extensions/wake.js.map +1 -0
- package/dist/map/adapter/extensions/workspace-files.d.ts +42 -0
- package/dist/map/adapter/extensions/workspace-files.d.ts.map +1 -0
- package/dist/map/adapter/extensions/workspace-files.js +338 -0
- package/dist/map/adapter/extensions/workspace-files.js.map +1 -0
- package/dist/map/adapter/extensions/workspace.d.ts +57 -0
- package/dist/map/adapter/extensions/workspace.d.ts.map +1 -0
- package/dist/map/adapter/extensions/workspace.js +81 -0
- package/dist/map/adapter/extensions/workspace.js.map +1 -0
- package/dist/map/adapter/index.d.ts +20 -0
- package/dist/map/adapter/index.d.ts.map +1 -0
- package/dist/map/adapter/index.js +40 -0
- package/dist/map/adapter/index.js.map +1 -0
- package/dist/map/adapter/interface.d.ts +450 -0
- package/dist/map/adapter/interface.d.ts.map +1 -0
- package/dist/map/adapter/interface.js +24 -0
- package/dist/map/adapter/interface.js.map +1 -0
- package/dist/map/adapter/mail-handler-adapter.d.ts +27 -0
- package/dist/map/adapter/mail-handler-adapter.d.ts.map +1 -0
- package/dist/map/adapter/mail-handler-adapter.js +292 -0
- package/dist/map/adapter/mail-handler-adapter.js.map +1 -0
- package/dist/map/adapter/map-adapter.d.ts +200 -0
- package/dist/map/adapter/map-adapter.d.ts.map +1 -0
- package/dist/map/adapter/map-adapter.js +1199 -0
- package/dist/map/adapter/map-adapter.js.map +1 -0
- package/dist/map/adapter/rpc-handler.d.ts +263 -0
- package/dist/map/adapter/rpc-handler.d.ts.map +1 -0
- package/dist/map/adapter/rpc-handler.js +365 -0
- package/dist/map/adapter/rpc-handler.js.map +1 -0
- package/dist/map/adapter/subscription-manager.d.ts +174 -0
- package/dist/map/adapter/subscription-manager.d.ts.map +1 -0
- package/dist/map/adapter/subscription-manager.js +248 -0
- package/dist/map/adapter/subscription-manager.js.map +1 -0
- package/dist/map/adapter/types.d.ts +194 -0
- package/dist/map/adapter/types.d.ts.map +1 -0
- package/dist/map/adapter/types.js +27 -0
- package/dist/map/adapter/types.js.map +1 -0
- package/dist/map/adapter/websocket-integration.d.ts +113 -0
- package/dist/map/adapter/websocket-integration.d.ts.map +1 -0
- package/dist/map/adapter/websocket-integration.js +134 -0
- package/dist/map/adapter/websocket-integration.js.map +1 -0
- package/dist/map/cascade-action-handler.d.ts.map +1 -1
- package/dist/map/cascade-action-handler.js +19 -5
- package/dist/map/cascade-action-handler.js.map +1 -1
- package/dist/map/federation/envelope.d.ts +98 -0
- package/dist/map/federation/envelope.d.ts.map +1 -0
- package/dist/map/federation/envelope.js +160 -0
- package/dist/map/federation/envelope.js.map +1 -0
- package/dist/map/federation/federation-handler.d.ts +50 -0
- package/dist/map/federation/federation-handler.d.ts.map +1 -0
- package/dist/map/federation/federation-handler.js +306 -0
- package/dist/map/federation/federation-handler.js.map +1 -0
- package/dist/map/federation/index.d.ts +14 -0
- package/dist/map/federation/index.d.ts.map +1 -0
- package/dist/map/federation/index.js +13 -0
- package/dist/map/federation/index.js.map +1 -0
- package/dist/map/federation/types.d.ts +239 -0
- package/dist/map/federation/types.d.ts.map +1 -0
- package/dist/map/federation/types.js +23 -0
- package/dist/map/federation/types.js.map +1 -0
- package/dist/map/mail-bridge.d.ts +7 -0
- package/dist/map/mail-bridge.d.ts.map +1 -1
- package/dist/map/mail-bridge.js +39 -9
- package/dist/map/mail-bridge.js.map +1 -1
- package/dist/map/server.d.ts.map +1 -1
- package/dist/map/server.js +17 -2
- package/dist/map/server.js.map +1 -1
- package/dist/map/types.d.ts +6 -0
- package/dist/map/types.d.ts.map +1 -1
- package/dist/mcp/map-client.d.ts +39 -0
- package/dist/mcp/map-client.d.ts.map +1 -0
- package/dist/mcp/map-client.js +129 -0
- package/dist/mcp/map-client.js.map +1 -0
- package/dist/mcp/mcp-server.d.ts +72 -0
- package/dist/mcp/mcp-server.d.ts.map +1 -0
- package/dist/mcp/mcp-server.js +1027 -0
- package/dist/mcp/mcp-server.js.map +1 -0
- package/dist/mcp/tools/claim_task.d.ts +35 -0
- package/dist/mcp/tools/claim_task.d.ts.map +1 -0
- package/dist/mcp/tools/claim_task.js +58 -0
- package/dist/mcp/tools/claim_task.js.map +1 -0
- package/dist/mcp/tools/done-v2.d.ts +0 -1
- package/dist/mcp/tools/done-v2.d.ts.map +1 -1
- package/dist/mcp/tools/done-v2.js +0 -1
- package/dist/mcp/tools/done-v2.js.map +1 -1
- package/dist/mcp/tools/done.d.ts +102 -0
- package/dist/mcp/tools/done.d.ts.map +1 -0
- package/dist/mcp/tools/done.js +253 -0
- package/dist/mcp/tools/done.js.map +1 -0
- package/dist/mcp/tools/inject_context.d.ts +61 -0
- package/dist/mcp/tools/inject_context.d.ts.map +1 -0
- package/dist/mcp/tools/inject_context.js +123 -0
- package/dist/mcp/tools/inject_context.js.map +1 -0
- package/dist/mcp/tools/list_claimable_tasks.d.ts +38 -0
- package/dist/mcp/tools/list_claimable_tasks.d.ts.map +1 -0
- package/dist/mcp/tools/list_claimable_tasks.js +63 -0
- package/dist/mcp/tools/list_claimable_tasks.js.map +1 -0
- package/dist/mcp/tools/unclaim_task.d.ts +31 -0
- package/dist/mcp/tools/unclaim_task.d.ts.map +1 -0
- package/dist/mcp/tools/unclaim_task.js +47 -0
- package/dist/mcp/tools/unclaim_task.js.map +1 -0
- package/dist/mcp/tools/wait_for_activity.d.ts +60 -0
- package/dist/mcp/tools/wait_for_activity.d.ts.map +1 -0
- package/dist/mcp/tools/wait_for_activity.js +135 -0
- package/dist/mcp/tools/wait_for_activity.js.map +1 -0
- package/dist/monitor/health-check-service.d.ts +143 -0
- package/dist/monitor/health-check-service.d.ts.map +1 -0
- package/dist/monitor/health-check-service.js +240 -0
- package/dist/monitor/health-check-service.js.map +1 -0
- package/dist/monitor/index.d.ts +14 -0
- package/dist/monitor/index.d.ts.map +1 -0
- package/dist/monitor/index.js +14 -0
- package/dist/monitor/index.js.map +1 -0
- package/dist/monitor/stall-detector.d.ts +109 -0
- package/dist/monitor/stall-detector.d.ts.map +1 -0
- package/dist/monitor/stall-detector.js +152 -0
- package/dist/monitor/stall-detector.js.map +1 -0
- package/dist/peer/capability-manager.d.ts +56 -0
- package/dist/peer/capability-manager.d.ts.map +1 -0
- package/dist/peer/capability-manager.js +186 -0
- package/dist/peer/capability-manager.js.map +1 -0
- package/dist/peer/encapsulation-manager.d.ts +190 -0
- package/dist/peer/encapsulation-manager.d.ts.map +1 -0
- package/dist/peer/encapsulation-manager.js +486 -0
- package/dist/peer/encapsulation-manager.js.map +1 -0
- package/dist/peer/federation-manager.d.ts +223 -0
- package/dist/peer/federation-manager.d.ts.map +1 -0
- package/dist/peer/federation-manager.js +528 -0
- package/dist/peer/federation-manager.js.map +1 -0
- package/dist/peer/hierarchy-errors.d.ts +208 -0
- package/dist/peer/hierarchy-errors.d.ts.map +1 -0
- package/dist/peer/hierarchy-errors.js +268 -0
- package/dist/peer/hierarchy-errors.js.map +1 -0
- package/dist/peer/hierarchy-protocol.d.ts +159 -0
- package/dist/peer/hierarchy-protocol.d.ts.map +1 -0
- package/dist/peer/hierarchy-protocol.js +142 -0
- package/dist/peer/hierarchy-protocol.js.map +1 -0
- package/dist/peer/index.d.ts +15 -0
- package/dist/peer/index.d.ts.map +1 -0
- package/dist/peer/index.js +15 -0
- package/dist/peer/index.js.map +1 -0
- package/dist/peer/peer-manager.d.ts +99 -0
- package/dist/peer/peer-manager.d.ts.map +1 -0
- package/dist/peer/peer-manager.js +333 -0
- package/dist/peer/peer-manager.js.map +1 -0
- package/dist/peer/task-delegation.d.ts +189 -0
- package/dist/peer/task-delegation.d.ts.map +1 -0
- package/dist/peer/task-delegation.js +303 -0
- package/dist/peer/task-delegation.js.map +1 -0
- package/dist/peer/transports/index.d.ts +8 -0
- package/dist/peer/transports/index.d.ts.map +1 -0
- package/dist/peer/transports/index.js +8 -0
- package/dist/peer/transports/index.js.map +1 -0
- package/dist/peer/transports/local-transport.d.ts +56 -0
- package/dist/peer/transports/local-transport.d.ts.map +1 -0
- package/dist/peer/transports/local-transport.js +263 -0
- package/dist/peer/transports/local-transport.js.map +1 -0
- package/dist/peer/transports/websocket-transport.d.ts +86 -0
- package/dist/peer/transports/websocket-transport.d.ts.map +1 -0
- package/dist/peer/transports/websocket-transport.js +338 -0
- package/dist/peer/transports/websocket-transport.js.map +1 -0
- package/dist/peer/types.d.ts +268 -0
- package/dist/peer/types.d.ts.map +1 -0
- package/dist/peer/types.js +36 -0
- package/dist/peer/types.js.map +1 -0
- package/dist/router/address-resolver.d.ts +102 -0
- package/dist/router/address-resolver.d.ts.map +1 -0
- package/dist/router/address-resolver.js +198 -0
- package/dist/router/address-resolver.js.map +1 -0
- package/dist/router/broadcast.d.ts +53 -0
- package/dist/router/broadcast.d.ts.map +1 -0
- package/dist/router/broadcast.js +75 -0
- package/dist/router/broadcast.js.map +1 -0
- package/dist/router/channels.d.ts +148 -0
- package/dist/router/channels.d.ts.map +1 -0
- package/dist/router/channels.js +126 -0
- package/dist/router/channels.js.map +1 -0
- package/dist/router/index.d.ts +21 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +18 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/message-router.d.ts +197 -0
- package/dist/router/message-router.d.ts.map +1 -0
- package/dist/router/message-router.js +903 -0
- package/dist/router/message-router.js.map +1 -0
- package/dist/router/message-types.d.ts +183 -0
- package/dist/router/message-types.d.ts.map +1 -0
- package/dist/router/message-types.js +79 -0
- package/dist/router/message-types.js.map +1 -0
- package/dist/router/role-resolver.d.ts +67 -0
- package/dist/router/role-resolver.d.ts.map +1 -0
- package/dist/router/role-resolver.js +106 -0
- package/dist/router/role-resolver.js.map +1 -0
- package/dist/router/signals.d.ts +253 -0
- package/dist/router/signals.d.ts.map +1 -0
- package/dist/router/signals.js +53 -0
- package/dist/router/signals.js.map +1 -0
- package/dist/router/types.d.ts +191 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +34 -0
- package/dist/router/types.js.map +1 -0
- package/dist/router/wake.d.ts +111 -0
- package/dist/router/wake.d.ts.map +1 -0
- package/dist/router/wake.js +180 -0
- package/dist/router/wake.js.map +1 -0
- package/dist/server/combined-server.d.ts +95 -0
- package/dist/server/combined-server.d.ts.map +1 -0
- package/dist/server/combined-server.js +335 -0
- package/dist/server/combined-server.js.map +1 -0
- package/dist/steering/index.d.ts +11 -0
- package/dist/steering/index.d.ts.map +1 -0
- package/dist/steering/index.js +11 -0
- package/dist/steering/index.js.map +1 -0
- package/dist/steering/inject.d.ts +39 -0
- package/dist/steering/inject.d.ts.map +1 -0
- package/dist/steering/inject.js +197 -0
- package/dist/steering/inject.js.map +1 -0
- package/dist/steering/types.d.ts +100 -0
- package/dist/steering/types.d.ts.map +1 -0
- package/dist/steering/types.js +11 -0
- package/dist/steering/types.js.map +1 -0
- package/dist/store/backends/index.d.ts +11 -0
- package/dist/store/backends/index.d.ts.map +1 -0
- package/dist/store/backends/index.js +15 -0
- package/dist/store/backends/index.js.map +1 -0
- package/dist/store/backends/json-backend.d.ts +23 -0
- package/dist/store/backends/json-backend.d.ts.map +1 -0
- package/dist/store/backends/json-backend.js +220 -0
- package/dist/store/backends/json-backend.js.map +1 -0
- package/dist/store/backends/memory-backend.d.ts +12 -0
- package/dist/store/backends/memory-backend.d.ts.map +1 -0
- package/dist/store/backends/memory-backend.js +205 -0
- package/dist/store/backends/memory-backend.js.map +1 -0
- package/dist/store/backends/sqlite-backend.d.ts +27 -0
- package/dist/store/backends/sqlite-backend.d.ts.map +1 -0
- package/dist/store/backends/sqlite-backend.js +231 -0
- package/dist/store/backends/sqlite-backend.js.map +1 -0
- package/dist/store/backends/tinybase-backend.d.ts +22 -0
- package/dist/store/backends/tinybase-backend.d.ts.map +1 -0
- package/dist/store/backends/tinybase-backend.js +203 -0
- package/dist/store/backends/tinybase-backend.js.map +1 -0
- package/dist/store/backends/types.d.ts +175 -0
- package/dist/store/backends/types.d.ts.map +1 -0
- package/dist/store/backends/types.js +28 -0
- package/dist/store/backends/types.js.map +1 -0
- package/dist/store/event-store.d.ts +128 -0
- package/dist/store/event-store.d.ts.map +1 -0
- package/dist/store/event-store.js +1751 -0
- package/dist/store/event-store.js.map +1 -0
- package/dist/store/instance.d.ts +290 -0
- package/dist/store/instance.d.ts.map +1 -0
- package/dist/store/instance.js +363 -0
- package/dist/store/instance.js.map +1 -0
- package/dist/store/migrations.d.ts +41 -0
- package/dist/store/migrations.d.ts.map +1 -0
- package/dist/store/migrations.js +79 -0
- package/dist/store/migrations.js.map +1 -0
- package/dist/store/test-utils.d.ts +63 -0
- package/dist/store/test-utils.d.ts.map +1 -0
- package/dist/store/test-utils.js +63 -0
- package/dist/store/test-utils.js.map +1 -0
- package/dist/store/types/config.d.ts +16 -0
- package/dist/store/types/config.d.ts.map +1 -0
- package/dist/store/types/config.js +8 -0
- package/dist/store/types/config.js.map +1 -0
- package/dist/store/types/conversations.d.ts +91 -0
- package/dist/store/types/conversations.d.ts.map +1 -0
- package/dist/store/types/conversations.js +8 -0
- package/dist/store/types/conversations.js.map +1 -0
- package/dist/store/types/sessions.d.ts +44 -0
- package/dist/store/types/sessions.d.ts.map +1 -0
- package/dist/store/types/sessions.js +9 -0
- package/dist/store/types/sessions.js.map +1 -0
- package/dist/store/types.d.ts +115 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +6 -0
- package/dist/store/types.js.map +1 -0
- package/dist/task/backend/index.d.ts +93 -0
- package/dist/task/backend/index.d.ts.map +1 -0
- package/dist/task/backend/index.js +178 -0
- package/dist/task/backend/index.js.map +1 -0
- package/dist/task/backend/memory.d.ts +70 -0
- package/dist/task/backend/memory.d.ts.map +1 -0
- package/dist/task/backend/memory.js +621 -0
- package/dist/task/backend/memory.js.map +1 -0
- package/dist/task/backend/opentasks/backend.d.ts +140 -0
- package/dist/task/backend/opentasks/backend.d.ts.map +1 -0
- package/dist/task/backend/opentasks/backend.js +1023 -0
- package/dist/task/backend/opentasks/backend.js.map +1 -0
- package/dist/task/backend/opentasks/client.d.ts +337 -0
- package/dist/task/backend/opentasks/client.d.ts.map +1 -0
- package/dist/task/backend/opentasks/client.js +225 -0
- package/dist/task/backend/opentasks/client.js.map +1 -0
- package/dist/task/backend/opentasks/daemon-manager.d.ts +89 -0
- package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -0
- package/dist/task/backend/opentasks/daemon-manager.js +195 -0
- package/dist/task/backend/opentasks/daemon-manager.js.map +1 -0
- package/dist/task/backend/opentasks/index.d.ts +21 -0
- package/dist/task/backend/opentasks/index.d.ts.map +1 -0
- package/dist/task/backend/opentasks/index.js +21 -0
- package/dist/task/backend/opentasks/index.js.map +1 -0
- package/dist/task/backend/opentasks/mapping.d.ts +48 -0
- package/dist/task/backend/opentasks/mapping.d.ts.map +1 -0
- package/dist/task/backend/opentasks/mapping.js +77 -0
- package/dist/task/backend/opentasks/mapping.js.map +1 -0
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts +54 -0
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts.map +1 -0
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.js +88 -0
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.js.map +1 -0
- package/dist/task/backend/sudocode/backend.d.ts +155 -0
- package/dist/task/backend/sudocode/backend.d.ts.map +1 -0
- package/dist/task/backend/sudocode/backend.js +942 -0
- package/dist/task/backend/sudocode/backend.js.map +1 -0
- package/dist/task/backend/sudocode/client.d.ts +303 -0
- package/dist/task/backend/sudocode/client.d.ts.map +1 -0
- package/dist/task/backend/sudocode/client.js +101 -0
- package/dist/task/backend/sudocode/client.js.map +1 -0
- package/dist/task/backend/sudocode/index.d.ts +19 -0
- package/dist/task/backend/sudocode/index.d.ts.map +1 -0
- package/dist/task/backend/sudocode/index.js +17 -0
- package/dist/task/backend/sudocode/index.js.map +1 -0
- package/dist/task/backend/sudocode/mapping.d.ts +51 -0
- package/dist/task/backend/sudocode/mapping.d.ts.map +1 -0
- package/dist/task/backend/sudocode/mapping.js +86 -0
- package/dist/task/backend/sudocode/mapping.js.map +1 -0
- package/dist/task/backend/sudocode/server-client.d.ts +56 -0
- package/dist/task/backend/sudocode/server-client.d.ts.map +1 -0
- package/dist/task/backend/sudocode/server-client.js +367 -0
- package/dist/task/backend/sudocode/server-client.js.map +1 -0
- package/dist/task/backend/sudocode/standalone-client.d.ts +91 -0
- package/dist/task/backend/sudocode/standalone-client.d.ts.map +1 -0
- package/dist/task/backend/sudocode/standalone-client.js +476 -0
- package/dist/task/backend/sudocode/standalone-client.js.map +1 -0
- package/dist/task/backend/sudocode/sync-policy.d.ts +166 -0
- package/dist/task/backend/sudocode/sync-policy.d.ts.map +1 -0
- package/dist/task/backend/sudocode/sync-policy.js +221 -0
- package/dist/task/backend/sudocode/sync-policy.js.map +1 -0
- package/dist/task/backend/sudocode/tools.d.ts +87 -0
- package/dist/task/backend/sudocode/tools.d.ts.map +1 -0
- package/dist/task/backend/sudocode/tools.js +743 -0
- package/dist/task/backend/sudocode/tools.js.map +1 -0
- package/dist/task/backend/tool-provider.d.ts +56 -0
- package/dist/task/backend/tool-provider.d.ts.map +1 -0
- package/dist/task/backend/tool-provider.js +424 -0
- package/dist/task/backend/tool-provider.js.map +1 -0
- package/dist/task/backend/types.d.ts +297 -0
- package/dist/task/backend/types.d.ts.map +1 -0
- package/dist/task/backend/types.js +27 -0
- package/dist/task/backend/types.js.map +1 -0
- package/dist/task/backend/unified-tool-provider.d.ts +57 -0
- package/dist/task/backend/unified-tool-provider.d.ts.map +1 -0
- package/dist/task/backend/unified-tool-provider.js +623 -0
- package/dist/task/backend/unified-tool-provider.js.map +1 -0
- package/dist/task/index.d.ts +7 -0
- package/dist/task/index.d.ts.map +1 -0
- package/dist/task/index.js +7 -0
- package/dist/task/index.js.map +1 -0
- package/dist/task/retry-policy.d.ts +89 -0
- package/dist/task/retry-policy.d.ts.map +1 -0
- package/dist/task/retry-policy.js +160 -0
- package/dist/task/retry-policy.js.map +1 -0
- package/dist/task/task-manager.d.ts +70 -0
- package/dist/task/task-manager.d.ts.map +1 -0
- package/dist/task/task-manager.js +319 -0
- package/dist/task/task-manager.js.map +1 -0
- package/dist/task/types.d.ts +72 -0
- package/dist/task/types.d.ts.map +1 -0
- package/dist/task/types.js +33 -0
- package/dist/task/types.js.map +1 -0
- package/dist/teams/team-loader.d.ts +2 -1
- package/dist/teams/team-loader.d.ts.map +1 -1
- package/dist/teams/team-loader.js +2 -1
- package/dist/teams/team-loader.js.map +1 -1
- package/dist/teams/team-manager.d.ts +101 -0
- package/dist/teams/team-manager.d.ts.map +1 -0
- package/dist/teams/team-manager.js +260 -0
- package/dist/teams/team-manager.js.map +1 -0
- package/dist/teams/team-runtime-v2.d.ts +0 -3
- package/dist/teams/team-runtime-v2.d.ts.map +1 -1
- package/dist/teams/team-runtime-v2.js +31 -93
- package/dist/teams/team-runtime-v2.js.map +1 -1
- package/dist/teams/team-runtime.d.ts +245 -0
- package/dist/teams/team-runtime.d.ts.map +1 -0
- package/dist/teams/team-runtime.js +1023 -0
- package/dist/teams/team-runtime.js.map +1 -0
- package/dist/trigger/router/index.d.ts +11 -0
- package/dist/trigger/router/index.d.ts.map +1 -0
- package/dist/trigger/router/index.js +10 -0
- package/dist/trigger/router/index.js.map +1 -0
- package/dist/trigger/router/strategies/ai-router-strategy.d.ts +34 -0
- package/dist/trigger/router/strategies/ai-router-strategy.d.ts.map +1 -0
- package/dist/trigger/router/strategies/ai-router-strategy.js +359 -0
- package/dist/trigger/router/strategies/ai-router-strategy.js.map +1 -0
- package/dist/trigger/router/strategies/direct-strategy.d.ts +32 -0
- package/dist/trigger/router/strategies/direct-strategy.d.ts.map +1 -0
- package/dist/trigger/router/strategies/direct-strategy.js +119 -0
- package/dist/trigger/router/strategies/direct-strategy.js.map +1 -0
- package/dist/trigger/router/strategies/index.d.ts +11 -0
- package/dist/trigger/router/strategies/index.d.ts.map +1 -0
- package/dist/trigger/router/strategies/index.js +11 -0
- package/dist/trigger/router/strategies/index.js.map +1 -0
- package/dist/trigger/router/strategies/role-strategy.d.ts +39 -0
- package/dist/trigger/router/strategies/role-strategy.d.ts.map +1 -0
- package/dist/trigger/router/strategies/role-strategy.js +207 -0
- package/dist/trigger/router/strategies/role-strategy.js.map +1 -0
- package/dist/trigger/router/trigger-router.d.ts +54 -0
- package/dist/trigger/router/trigger-router.d.ts.map +1 -0
- package/dist/trigger/router/trigger-router.js +362 -0
- package/dist/trigger/router/trigger-router.js.map +1 -0
- package/dist/trigger/router/types.d.ts +225 -0
- package/dist/trigger/router/types.d.ts.map +1 -0
- package/dist/trigger/router/types.js +10 -0
- package/dist/trigger/router/types.js.map +1 -0
- package/dist/trigger/sources/cron/cron-service.d.ts.map +1 -1
- package/dist/trigger/sources/cron/cron-service.js +6 -3
- package/dist/trigger/sources/cron/cron-service.js.map +1 -1
- package/dist/trigger/trigger-system.d.ts +77 -0
- package/dist/trigger/trigger-system.d.ts.map +1 -0
- package/dist/trigger/trigger-system.js +84 -0
- package/dist/trigger/trigger-system.js.map +1 -0
- package/dist/util/git-safety.d.ts +33 -0
- package/dist/util/git-safety.d.ts.map +1 -0
- package/dist/util/git-safety.js +94 -0
- package/dist/util/git-safety.js.map +1 -0
- package/dist/workspace/index.d.ts +0 -1
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +0 -2
- package/dist/workspace/index.js.map +1 -1
- package/dist/workspace/landing/direct-push.d.ts.map +1 -1
- package/dist/workspace/landing/direct-push.js +22 -7
- package/dist/workspace/landing/direct-push.js.map +1 -1
- package/dist/workspace/landing/queue-to-branch.d.ts.map +1 -1
- package/dist/workspace/landing/queue-to-branch.js +1 -3
- package/dist/workspace/landing/queue-to-branch.js.map +1 -1
- package/dist/workspace/types.d.ts +0 -13
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/workspace-manager.d.ts +0 -11
- package/dist/workspace/workspace-manager.d.ts.map +1 -1
- package/dist/workspace/workspace-manager.js +0 -30
- package/dist/workspace/workspace-manager.js.map +1 -1
- package/package.json +28 -2
- package/templates/teams/self-driving/prompts/grinder.md +1 -0
- package/templates/teams/self-driving/prompts/judge.md +1 -0
- package/templates/teams/self-driving/prompts/planner.md +1 -0
- package/templates/teams/self-driving/roles/grinder.yaml +15 -0
- package/templates/teams/self-driving/roles/judge.yaml +10 -0
- package/templates/teams/self-driving/roles/planner.yaml +16 -0
- package/.claude/commands/openspec/apply.md +0 -23
- package/.claude/commands/openspec/archive.md +0 -27
- package/.claude/commands/openspec/proposal.md +0 -28
- package/.claude/settings.json +0 -133
- package/.gitattributes +0 -3
- package/.opentasks/config.json +0 -9
- package/.opentasks/graph.jsonl +0 -0
- package/.sessionlog/settings.json +0 -4
- package/.sudocode/issues.jsonl +0 -183
- package/.sudocode/specs.jsonl +0 -56
- package/AGENTS.md +0 -18
- package/CLAUDE.md +0 -923
- package/docs/architecture.md +0 -508
- package/docs/configuration.md +0 -323
- package/docs/conflict-recovery.md +0 -472
- package/docs/design/task-dispatcher.md +0 -880
- package/docs/design-subsystem-extraction.md +0 -627
- package/docs/git-cascade-integration-gaps.md +0 -678
- package/docs/implementation-details.md +0 -1127
- package/docs/implementation-summary.md +0 -448
- package/docs/lifecycle-events-design.md +0 -111
- package/docs/mail-integration.md +0 -608
- package/docs/openhive-capability-summary.md +0 -415
- package/docs/openhive-integration.md +0 -415
- package/docs/plan-self-driving-support.md +0 -433
- package/docs/roadmap-v2-gaps.md +0 -216
- package/docs/spec-self-driving-support.md +0 -462
- package/docs/team-templates.md +0 -860
- package/docs/teams.md +0 -306
- package/docs/trigger-system-design.md +0 -333
- package/docs/troubleshooting.md +0 -489
- package/docs/workspace-interfaces.md +0 -731
- package/docs/workspace-redesign-plan.md +0 -302
- package/examples/distributed-peer-communication.ts +0 -202
- package/examples/local-peer-communication.ts +0 -165
- package/index.js +0 -2
- package/mvp_docs/agent-execution-system.md +0 -347
- package/mvp_docs/agent-interface.md +0 -580
- package/mvp_docs/data-structures.md +0 -701
- package/mvp_docs/dynamic-meta-orchestration.md +0 -116
- package/mvp_docs/multi-agent-interaction-design.md +0 -779
- package/mvp_docs/mvp-implementation-plan.md +0 -1148
- package/renovate.json5 +0 -6
- package/scripts/test-acp-integration.ts +0 -422
- package/src/__tests__/boot-v2.test.ts +0 -631
- package/src/__tests__/e2e/acp-over-map-live.e2e.test.ts +0 -496
- package/src/__tests__/e2e/acp-over-map.e2e.test.ts +0 -457
- package/src/__tests__/e2e/agent-lifecycle.e2e.test.ts +0 -770
- package/src/__tests__/e2e/auto-sync.e2e.test.ts +0 -257
- package/src/__tests__/e2e/bootstrap.e2e.test.ts +0 -319
- package/src/__tests__/e2e/cascade-rebase.e2e.test.ts +0 -254
- package/src/__tests__/e2e/cc-swarm-bridge.e2e.test.ts +0 -253
- package/src/__tests__/e2e/cli-run.e2e.test.ts +0 -167
- package/src/__tests__/e2e/cognitive-workspace.e2e.test.ts +0 -282
- package/src/__tests__/e2e/dispatch-coordination.e2e.test.ts +0 -495
- package/src/__tests__/e2e/dispatch-live.e2e.test.ts +0 -564
- package/src/__tests__/e2e/dispatch-opentasks.e2e.test.ts +0 -496
- package/src/__tests__/e2e/dispatch-phase2-live.e2e.test.ts +0 -456
- package/src/__tests__/e2e/dispatch-phase2.e2e.test.ts +0 -386
- package/src/__tests__/e2e/dispatch.e2e.test.ts +0 -376
- package/src/__tests__/e2e/done-scenarios.e2e.test.ts +0 -322
- package/src/__tests__/e2e/live-agent.e2e.test.ts +0 -1330
- package/src/__tests__/e2e/map-server.e2e.test.ts +0 -128
- package/src/__tests__/e2e/map-sidecar.e2e.test.ts +0 -139
- package/src/__tests__/e2e/opentasks-integration.e2e.test.ts +0 -280
- package/src/__tests__/e2e/pull-mode.e2e.test.ts +0 -632
- package/src/__tests__/e2e/resume-continue.e2e.test.ts +0 -312
- package/src/__tests__/e2e/self-driving-v3.e2e.test.ts +0 -197
- package/src/__tests__/e2e/spawn-resolver.e2e.test.ts +0 -200
- package/src/__tests__/e2e/swarmkit-integration.e2e.test.ts +0 -562
- package/src/__tests__/e2e/swarmkit-live.e2e.test.ts +0 -1049
- package/src/__tests__/e2e/trajectory-tracking.e2e.test.ts +0 -258
- package/src/__tests__/e2e/trigger-wake.e2e.test.ts +0 -257
- package/src/__tests__/e2e/workspace-lifecycle.e2e.test.ts +0 -383
- package/src/__tests__/e2e/workspace-v3.e2e.test.ts +0 -413
- package/src/acp/__tests__/claude-code-replay.test.ts +0 -225
- package/src/acp/__tests__/macro-agent.test.ts +0 -387
- package/src/acp/__tests__/session-mapper.test.ts +0 -152
- package/src/acp/__tests__/websocket-server.test.ts +0 -194
- package/src/acp/claude-code-replay.ts +0 -208
- package/src/acp/index.ts +0 -32
- package/src/acp/macro-agent.ts +0 -995
- package/src/acp/map-bridge.ts +0 -193
- package/src/acp/session-mapper.ts +0 -116
- package/src/acp/types.ts +0 -99
- package/src/acp/websocket-server.ts +0 -213
- package/src/adapters/__tests__/federation.test.ts +0 -256
- package/src/adapters/__tests__/inbox-adapter.test.ts +0 -316
- package/src/adapters/__tests__/tasks-adapter.test.ts +0 -270
- package/src/adapters/federation.ts +0 -185
- package/src/adapters/inbox-adapter.ts +0 -292
- package/src/adapters/inbox-client-adapter.ts +0 -173
- package/src/adapters/index.ts +0 -44
- package/src/adapters/opentasks-daemon.ts +0 -252
- package/src/adapters/tasks-adapter.ts +0 -330
- package/src/adapters/types.ts +0 -286
- package/src/agent/__tests__/agent-manager-topology.test.ts +0 -73
- package/src/agent/__tests__/agent-manager-v2.permission-interception.test.ts +0 -296
- package/src/agent/__tests__/agent-manager-v2.permissions.test.ts +0 -233
- package/src/agent/__tests__/agent-manager-v2.test.ts +0 -614
- package/src/agent/__tests__/agent-store.test.ts +0 -465
- package/src/agent/__tests__/task-ref-resolution.test.ts +0 -231
- package/src/agent/agent-manager-v2.ts +0 -2021
- package/src/agent/agent-manager.ts +0 -386
- package/src/agent/agent-store.ts +0 -409
- package/src/agent/index.ts +0 -7
- package/src/agent/prompts/coordinator-signals.ts +0 -115
- package/src/agent/prompts/index.ts +0 -7
- package/src/agent/system-prompt.ts +0 -298
- package/src/agent/types.ts +0 -459
- package/src/agent-detection/__tests__/command-builder.test.ts +0 -336
- package/src/agent-detection/__tests__/detector.test.ts +0 -768
- package/src/agent-detection/__tests__/registry.test.ts +0 -254
- package/src/agent-detection/command-builder.ts +0 -90
- package/src/agent-detection/detector.ts +0 -307
- package/src/agent-detection/index.ts +0 -36
- package/src/agent-detection/registry.ts +0 -200
- package/src/agent-detection/types.ts +0 -184
- package/src/api/__tests__/server.test.ts +0 -292
- package/src/api/index.ts +0 -8
- package/src/api/server.ts +0 -380
- package/src/api/types.ts +0 -39
- package/src/auth/__tests__/token.test.ts +0 -100
- package/src/auth/index.ts +0 -1
- package/src/auth/token.ts +0 -82
- package/src/boot-v2.ts +0 -1343
- package/src/cli/__tests__/stable-instance-id.test.ts +0 -57
- package/src/cli/acp.ts +0 -101
- package/src/cli/inbox-mcp-proxy.ts +0 -56
- package/src/cli/index.ts +0 -566
- package/src/cli/mcp.ts +0 -305
- package/src/cli/parse-args.ts +0 -54
- package/src/cli/stable-instance-id.ts +0 -14
- package/src/cognitive/__tests__/macro-agent-backend.test.ts +0 -520
- package/src/cognitive/__tests__/session-converter.test.ts +0 -423
- package/src/cognitive/__tests__/workspace-handler.test.ts +0 -221
- package/src/cognitive/analyst-role.ts +0 -59
- package/src/cognitive/index.ts +0 -49
- package/src/cognitive/macro-agent-backend.ts +0 -370
- package/src/cognitive/session-converter.ts +0 -151
- package/src/cognitive/types.ts +0 -163
- package/src/cognitive/workspace-handler.ts +0 -163
- package/src/config/index.ts +0 -9
- package/src/config/project-config.ts +0 -294
- package/src/control/__tests__/control-resilience.test.ts +0 -251
- package/src/control/__tests__/control-socket.test.ts +0 -240
- package/src/control/control-client.ts +0 -337
- package/src/control/control-server.ts +0 -298
- package/src/control/index.ts +0 -17
- package/src/control/types.ts +0 -95
- package/src/dispatch/CLAUDE.md +0 -129
- package/src/dispatch/__tests__/loadout-translation.test.ts +0 -141
- package/src/dispatch/__tests__/mail-inbound-consumer.integration.test.ts +0 -519
- package/src/dispatch/__tests__/mail-inbound-consumer.test.ts +0 -800
- package/src/dispatch/__tests__/mail-inbound-reuse-consumer.test.ts +0 -575
- package/src/dispatch/__tests__/permission-evaluator.test.ts +0 -196
- package/src/dispatch/__tests__/permission-overlay.test.ts +0 -56
- package/src/dispatch/__tests__/permissions-handler.test.ts +0 -168
- package/src/dispatch/__tests__/spawn-agent-handler.test.ts +0 -282
- package/src/dispatch/loadout-translation.ts +0 -138
- package/src/dispatch/mail-inbound-consumer.ts +0 -560
- package/src/dispatch/mail-inbound-reuse-consumer.ts +0 -479
- package/src/dispatch/permission-evaluator.ts +0 -191
- package/src/dispatch/permission-overlay.ts +0 -89
- package/src/dispatch/permissions-handler.ts +0 -112
- package/src/dispatch/spawn-agent-handler.ts +0 -160
- package/src/index.ts +0 -115
- package/src/integrations/__tests__/context-builder.test.ts +0 -218
- package/src/integrations/__tests__/sessionlog.test.ts +0 -498
- package/src/integrations/__tests__/skilltree.test.ts +0 -136
- package/src/integrations/context-builder.ts +0 -280
- package/src/integrations/sessionlog.ts +0 -194
- package/src/integrations/skilltree.ts +0 -184
- package/src/lifecycle/__tests__/cascade-consolidation.test.ts +0 -240
- package/src/lifecycle/__tests__/handlers-v2.test.ts +0 -565
- package/src/lifecycle/cascade.ts +0 -335
- package/src/lifecycle/cleanup.ts +0 -373
- package/src/lifecycle/handlers-v2.ts +0 -508
- package/src/lifecycle/index.ts +0 -76
- package/src/lifecycle/types.ts +0 -260
- package/src/map/__tests__/cascade-bridge.test.ts +0 -229
- package/src/map/__tests__/cascade-diff-server.test.ts +0 -434
- package/src/map/__tests__/emit-event.test.ts +0 -71
- package/src/map/__tests__/lifecycle-bridge.test.ts +0 -430
- package/src/map/__tests__/mail-bridge.test.ts +0 -284
- package/src/map/__tests__/permission-forwarding.test.ts +0 -143
- package/src/map/__tests__/sidecar-diff-install-smoke.test.ts +0 -90
- package/src/map/__tests__/sidecar-integration.test.ts +0 -190
- package/src/map/__tests__/task-bridge.test.ts +0 -153
- package/src/map/__tests__/trajectory-reporter.test.ts +0 -173
- package/src/map/acp-bridge.ts +0 -293
- package/src/map/cascade-action-handler.ts +0 -205
- package/src/map/cascade-bridge.ts +0 -339
- package/src/map/cascade-diff-server.ts +0 -404
- package/src/map/cc-swarm-hooks.ts +0 -242
- package/src/map/coordination-handler.ts +0 -232
- package/src/map/index.ts +0 -18
- package/src/map/lifecycle-bridge.ts +0 -236
- package/src/map/mail-bridge.ts +0 -215
- package/src/map/repo-workspace.ts +0 -82
- package/src/map/server.ts +0 -758
- package/src/map/sidecar.ts +0 -826
- package/src/map/task-bridge.ts +0 -89
- package/src/map/trajectory-reporter.ts +0 -124
- package/src/map/types.ts +0 -304
- package/src/mcp/__tests__/mcp-server-v2.test.ts +0 -236
- package/src/mcp/index.ts +0 -6
- package/src/mcp/mcp-server-v2.ts +0 -485
- package/src/mcp/tools/done-v2.ts +0 -213
- package/src/mcp/types.ts +0 -432
- package/src/metrics/__tests__/metrics.test.ts +0 -205
- package/src/metrics/index.ts +0 -13
- package/src/metrics/metrics.ts +0 -151
- package/src/metrics/types.ts +0 -63
- package/src/roles/__tests__/config-loader.test.ts +0 -540
- package/src/roles/builtin/coordinator.ts +0 -75
- package/src/roles/builtin/generic.ts +0 -39
- package/src/roles/builtin/index.ts +0 -51
- package/src/roles/builtin/integrator.ts +0 -62
- package/src/roles/builtin/monitor.ts +0 -65
- package/src/roles/builtin/worker.ts +0 -134
- package/src/roles/capabilities.ts +0 -257
- package/src/roles/config-loader.ts +0 -405
- package/src/roles/index.ts +0 -141
- package/src/roles/registry.ts +0 -713
- package/src/roles/types.ts +0 -344
- package/src/store/index.ts +0 -8
- package/src/store/types/agents.ts +0 -69
- package/src/store/types/events.ts +0 -91
- package/src/store/types/index.ts +0 -9
- package/src/store/types/messages.ts +0 -32
- package/src/store/types/primitives.ts +0 -9
- package/src/store/types/tasks.ts +0 -124
- package/src/teams/__tests__/team-manager-v2.test.ts +0 -425
- package/src/teams/__tests__/team-runtime-v2.test.ts +0 -402
- package/src/teams/index.ts +0 -29
- package/src/teams/seed-defaults.ts +0 -83
- package/src/teams/team-loader.ts +0 -476
- package/src/teams/team-manager-v2.ts +0 -343
- package/src/teams/team-runtime-v2.ts +0 -920
- package/src/teams/types.ts +0 -276
- package/src/trigger/__tests__/cron-service.test.ts +0 -548
- package/src/trigger/__tests__/scheduler.test.ts +0 -371
- package/src/trigger/__tests__/system-event-queue.test.ts +0 -147
- package/src/trigger/__tests__/trigger-system-v2.test.ts +0 -257
- package/src/trigger/__tests__/wake-manager.test.ts +0 -356
- package/src/trigger/__tests__/webhook-handler.test.ts +0 -567
- package/src/trigger/index.ts +0 -110
- package/src/trigger/queue/index.ts +0 -21
- package/src/trigger/queue/system-event-queue.ts +0 -232
- package/src/trigger/queue/types.ts +0 -149
- package/src/trigger/sources/cron/cron-service.ts +0 -499
- package/src/trigger/sources/cron/index.ts +0 -41
- package/src/trigger/sources/cron/scheduler.ts +0 -344
- package/src/trigger/sources/cron/types.ts +0 -333
- package/src/trigger/sources/index.ts +0 -10
- package/src/trigger/sources/webhook/index.ts +0 -25
- package/src/trigger/sources/webhook/types.ts +0 -205
- package/src/trigger/sources/webhook/webhook-handler.ts +0 -410
- package/src/trigger/strategies/ai-router.ts +0 -170
- package/src/trigger/trigger-system-v2.ts +0 -536
- package/src/trigger/types.ts +0 -228
- package/src/trigger/wake/index.ts +0 -22
- package/src/trigger/wake/types.ts +0 -162
- package/src/trigger/wake/wake-manager.ts +0 -390
- package/src/workspace/__tests__/git-cascade-adapter.test.ts +0 -563
- package/src/workspace/__tests__/land-dispatch.test.ts +0 -214
- package/src/workspace/__tests__/self-driving-yaml.test.ts +0 -122
- package/src/workspace/__tests__/shared-worktree-refcount.test.ts +0 -154
- package/src/workspace/__tests__/standalone-mode.test.ts +0 -118
- package/src/workspace/__tests__/workspace-manager-v3.test.ts +0 -245
- package/src/workspace/__tests__/yaml-schema.test.ts +0 -210
- package/src/workspace/config.ts +0 -165
- package/src/workspace/git-cascade-adapter.ts +0 -1213
- package/src/workspace/index.ts +0 -110
- package/src/workspace/landing/__tests__/strategies.test.ts +0 -184
- package/src/workspace/landing/direct-push.ts +0 -91
- package/src/workspace/landing/index.ts +0 -40
- package/src/workspace/landing/merge-to-parent.ts +0 -229
- package/src/workspace/landing/optimistic-push.ts +0 -36
- package/src/workspace/landing/queue-to-branch.ts +0 -108
- package/src/workspace/merge-queue/__tests__/conflict-resolution-git.e2e.test.ts +0 -641
- package/src/workspace/merge-queue/__tests__/conflict-resolution.test.ts +0 -707
- package/src/workspace/merge-queue/__tests__/merge-queue-concurrent.test.ts +0 -628
- package/src/workspace/merge-queue/__tests__/merge-queue-edge-cases.test.ts +0 -1217
- package/src/workspace/merge-queue/__tests__/merge-queue.test.ts +0 -506
- package/src/workspace/merge-queue/__tests__/real-git-operations.e2e.test.ts +0 -556
- package/src/workspace/merge-queue/__tests__/resolver-flow.test.ts +0 -472
- package/src/workspace/merge-queue/index.ts +0 -38
- package/src/workspace/merge-queue/merge-queue.ts +0 -585
- package/src/workspace/merge-queue/schema.ts +0 -98
- package/src/workspace/merge-queue/types.ts +0 -316
- package/src/workspace/pool/__tests__/worktree-pool.integration.test.ts +0 -1281
- package/src/workspace/pool/__tests__/worktree-pool.test.ts +0 -590
- package/src/workspace/pool/index.ts +0 -26
- package/src/workspace/pool/types.ts +0 -276
- package/src/workspace/pool/worktree-pool.ts +0 -659
- package/src/workspace/recovery/__tests__/auto-resolve-integration.test.ts +0 -127
- package/src/workspace/recovery/__tests__/spawn-resolver.test.ts +0 -139
- package/src/workspace/recovery/__tests__/strategies.test.ts +0 -145
- package/src/workspace/recovery/abandon.ts +0 -51
- package/src/workspace/recovery/auto-resolve.ts +0 -119
- package/src/workspace/recovery/defer.ts +0 -23
- package/src/workspace/recovery/escalate.ts +0 -30
- package/src/workspace/recovery/index.ts +0 -58
- package/src/workspace/recovery/spawn-resolver.ts +0 -152
- package/src/workspace/recovery/types.ts +0 -54
- package/src/workspace/strategies/index.ts +0 -18
- package/src/workspace/strategies/optimistic.ts +0 -139
- package/src/workspace/strategies/queue.ts +0 -81
- package/src/workspace/strategies/registry.ts +0 -89
- package/src/workspace/strategies/trunk.ts +0 -123
- package/src/workspace/strategies/types.ts +0 -145
- package/src/workspace/topology/__tests__/yaml-driven.test.ts +0 -345
- package/src/workspace/topology/index.ts +0 -18
- package/src/workspace/topology/no-workspace.ts +0 -39
- package/src/workspace/topology/types.ts +0 -116
- package/src/workspace/topology/yaml-driven.ts +0 -316
- package/src/workspace/types-v3.ts +0 -162
- package/src/workspace/types.ts +0 -541
- package/src/workspace/workspace-manager.ts +0 -1577
- package/src/workspace/yaml-schema.ts +0 -216
- package/test_fixtures/README.md +0 -425
- package/test_fixtures/fixtures/behaviors/coordinators.ts +0 -196
- package/test_fixtures/fixtures/behaviors/index.ts +0 -62
- package/test_fixtures/fixtures/behaviors/integrators.ts +0 -143
- package/test_fixtures/fixtures/behaviors/monitors.ts +0 -199
- package/test_fixtures/fixtures/behaviors/workers.ts +0 -348
- package/test_fixtures/fixtures/index.ts +0 -7
- package/test_fixtures/fixtures/projects/index.ts +0 -23
- package/test_fixtures/fixtures/projects/project-with-specs.ts +0 -44
- package/test_fixtures/fixtures/projects/typescript-project.ts +0 -200
- package/test_fixtures/fixtures/repos/index.ts +0 -6
- package/test_fixtures/fixtures/repos/temp-repo-factory.ts +0 -299
- package/test_fixtures/fixtures/repos/types.ts +0 -174
- package/test_fixtures/harness/assertions/harness-assertions.ts +0 -752
- package/test_fixtures/harness/assertions/index.ts +0 -8
- package/test_fixtures/harness/index.ts +0 -15
- package/test_fixtures/harness/simulator/agent-simulator.ts +0 -768
- package/test_fixtures/harness/simulator/behavior-executor.ts +0 -580
- package/test_fixtures/harness/simulator/index.ts +0 -14
- package/test_fixtures/harness/simulator/types.ts +0 -459
- package/test_fixtures/harness/test-harness.ts +0 -770
- package/test_fixtures/harness/timing/event-stepper.ts +0 -344
- package/test_fixtures/harness/timing/index.ts +0 -8
- package/tsconfig.json +0 -21
- package/vitest.config.ts +0 -30
- package/vitest.e2e.config.ts +0 -28
- package/vitest.setup.ts +0 -12
|
@@ -1,779 +0,0 @@
|
|
|
1
|
-
# Multi-Agent Interaction System Design
|
|
2
|
-
|
|
3
|
-
**Status:** Draft
|
|
4
|
-
**Date:** 2025-01-09
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
This document describes the design for a hierarchical multi-agent system with flexible interaction mechanisms between agents, managers, and users. The system prioritizes seamless user experience while maintaining clean separation of agent execution contexts.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Execution Model
|
|
15
|
-
|
|
16
|
-
**Hybrid execution**: Agents are spawned on-demand but maintain their own state and context throughout their lifecycle. Manager/orchestrator nodes persist longer to coordinate child agents.
|
|
17
|
-
|
|
18
|
-
Key properties:
|
|
19
|
-
- Agents have a lifecycle: spawn → execute (with maintained context) → complete/terminate
|
|
20
|
-
- Agent state is persistent and replayable (checkpoint or event log based)
|
|
21
|
-
- Completed agents remain queryable for post-hoc inspection
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Agent Hierarchy
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
┌─────────────────┐
|
|
29
|
-
│ Head Manager │
|
|
30
|
-
│ (persistent) │
|
|
31
|
-
└────────┬────────┘
|
|
32
|
-
│
|
|
33
|
-
┌──────────────┼──────────────┐
|
|
34
|
-
▼ ▼ ▼
|
|
35
|
-
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
36
|
-
│ Manager │ │ Manager │ │ Manager │
|
|
37
|
-
│ A │ │ B │ │ C │
|
|
38
|
-
└────┬─────┘ └────┬─────┘ └──────────┘
|
|
39
|
-
│ │
|
|
40
|
-
┌────┴────┐ ┌────┴────┐
|
|
41
|
-
▼ ▼ ▼ ▼
|
|
42
|
-
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
|
|
43
|
-
│Agent 1│ │Agent 2│ │Agent 3│ │Agent 4│
|
|
44
|
-
└───────┘ └───────┘ └───────┘ └───────┘
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Managers delegate tasks to child agents and maintain visibility into their subtree. Cross-branch communication occurs via the messaging system.
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## User Interaction Model
|
|
52
|
-
|
|
53
|
-
Users interact with agents through three modes:
|
|
54
|
-
|
|
55
|
-
### 1. Observe (Passive)
|
|
56
|
-
Read an agent's context, logs, or current state without involving the agent.
|
|
57
|
-
|
|
58
|
-
### 2. Query (Inspector)
|
|
59
|
-
Ask questions about what an agent is doing or has done. Implemented as a short-lived inspector agent with read access to the target's state.
|
|
60
|
-
|
|
61
|
-
### 3. Steer (Fork)
|
|
62
|
-
Actively guide an agent's work. Implemented by forking the agent—user interacts with the fork, which can message the original.
|
|
63
|
-
|
|
64
|
-
**From the user's perspective, all three feel like "talking to Agent X."** The underlying machinery (forks, inspectors, messaging) is invisible.
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Mount Abstraction
|
|
69
|
-
|
|
70
|
-
The user has a single conversation terminal. Agent sessions are "mounted" to this terminal, similar to how processes attach to a shell.
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
┌─────────────────────────────────────┐
|
|
74
|
-
│ User Conversation Terminal │
|
|
75
|
-
│ (single interface) │
|
|
76
|
-
└──────────────┬──────────────────────┘
|
|
77
|
-
│ mount/unmount
|
|
78
|
-
▼
|
|
79
|
-
┌─────────────────────────────────────┐
|
|
80
|
-
│ Currently Mounted Session │
|
|
81
|
-
│ - original agent │
|
|
82
|
-
│ - fork │
|
|
83
|
-
│ - inspector │
|
|
84
|
-
│ │
|
|
85
|
-
│ metadata: { │
|
|
86
|
-
│ agent_id, fork_of, parent, │
|
|
87
|
-
│ mount_time, lineage, state │
|
|
88
|
-
│ } │
|
|
89
|
-
└─────────────────────────────────────┘
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Seamless switching**: Mount transitions are invisible to the user by default. Metadata is tracked and optionally displayable for power users.
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Fork Behavior
|
|
97
|
-
|
|
98
|
-
When a user initiates a steering interaction:
|
|
99
|
-
|
|
100
|
-
1. **Fork created**: New agent spawned from target's current state
|
|
101
|
-
2. **User interacts with fork**: Fork handles the conversation
|
|
102
|
-
3. **Fork can message original**: Uses standard agent-to-agent messaging
|
|
103
|
-
4. **Original can accept**: If original wants direct control, it can "accept" the conversation
|
|
104
|
-
|
|
105
|
-
### Accept/Handoff Flow
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
User starts talking to Agent X
|
|
109
|
-
│
|
|
110
|
-
▼
|
|
111
|
-
┌─────────────────────┐
|
|
112
|
-
│ Fork X' created │
|
|
113
|
-
│ User mounted to X' │
|
|
114
|
-
└─────────┬───────────┘
|
|
115
|
-
│
|
|
116
|
-
▼
|
|
117
|
-
┌─────────────────────┐
|
|
118
|
-
│ X' handles convo │
|
|
119
|
-
│ X' messages X │◄─── async, via messaging system
|
|
120
|
-
└─────────┬───────────┘
|
|
121
|
-
│
|
|
122
|
-
▼ (optional)
|
|
123
|
-
┌─────────────────────┐
|
|
124
|
-
│ X accepts convo │
|
|
125
|
-
│ X' context → X │
|
|
126
|
-
│ User remounted to X │
|
|
127
|
-
│ X' terminates │
|
|
128
|
-
└─────────────────────┘
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
Forks are independent agents that happen to share lineage. They use the same messaging infrastructure as any peer agent—no special merge protocol.
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## Context Merging: Layered Context Windows
|
|
136
|
-
|
|
137
|
-
Each session maintains its own context buffer. The user sees a unified view; agents see scoped views.
|
|
138
|
-
|
|
139
|
-
### User's View
|
|
140
|
-
Unified, stitched conversation across all sessions they've interacted with. Appears as one continuous thread.
|
|
141
|
-
|
|
142
|
-
### Agent's View
|
|
143
|
-
- Full fidelity for messages during its mount period
|
|
144
|
-
- Handoff summaries for context from other sessions
|
|
145
|
-
|
|
146
|
-
### Example
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
User sees (unified): Agent X sees: Fork Y saw:
|
|
150
|
-
──────────────────── ───────────── ────────────
|
|
151
|
-
msg 1 msg 1 [summary: msgs 1-3]
|
|
152
|
-
msg 2 msg 2 msg 4
|
|
153
|
-
X reply X reply Y reply
|
|
154
|
-
msg 3 msg 3 msg 5
|
|
155
|
-
Y reply [summary: msgs 4-5]
|
|
156
|
-
msg 4 msg 6
|
|
157
|
-
Y reply X reply
|
|
158
|
-
msg 5
|
|
159
|
-
X reply
|
|
160
|
-
msg 6
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
This preserves full context for the user while keeping agent context windows manageable.
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## Agent-to-Agent Messaging
|
|
168
|
-
|
|
169
|
-
### Core Principles
|
|
170
|
-
|
|
171
|
-
**Async-by-default**: Messages are always asynchronous. Sender posts and continues (or explicitly waits). "Synchronous" behavior is achieved by an agent choosing to wait on a correlated response, possibly via sub-agent.
|
|
172
|
-
|
|
173
|
-
**Event log as source of truth**: All messages are events in an append-only, immutable log. State transitions (like "acknowledged") are new events referencing the original—events themselves never mutate.
|
|
174
|
-
|
|
175
|
-
**Materialized projections**: The system maintains a flattened, queryable state view projected from the event log. This can be rebuilt from the log at any time.
|
|
176
|
-
|
|
177
|
-
```
|
|
178
|
-
┌─────────────────────────────────────────────────────────┐
|
|
179
|
-
│ Event Log (append-only, immutable) │
|
|
180
|
-
│ ───────────────────────────────────────────────────── │
|
|
181
|
-
│ [spawn A] [msg A→B] [ack B→A] [fork A→A'] [mount A'] │
|
|
182
|
-
└─────────────────────┬───────────────────────────────────┘
|
|
183
|
-
│ project/reduce
|
|
184
|
-
▼
|
|
185
|
-
┌─────────────────────────────────────────────────────────┐
|
|
186
|
-
│ Materialized State (queryable, rebuildable) │
|
|
187
|
-
│ ───────────────────────────────────────────────────── │
|
|
188
|
-
│ agents: { A: running, A': mounted, B: idle } │
|
|
189
|
-
│ messages: { msg_1: { status: acked, ... } } │
|
|
190
|
-
│ tasks: { task_1: { assigned: A, progress: ... } } │
|
|
191
|
-
└─────────────────────────────────────────────────────────┘
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Event Schema
|
|
195
|
-
|
|
196
|
-
```
|
|
197
|
-
Event {
|
|
198
|
-
id: unique identifier
|
|
199
|
-
timestamp: when it occurred
|
|
200
|
-
type: message | spawn | fork | terminate | mount | accept | status | system_notice | ...
|
|
201
|
-
|
|
202
|
-
source: {
|
|
203
|
-
agent_id: who/what emitted this
|
|
204
|
-
task_id: task context (if applicable)
|
|
205
|
-
lineage: [ancestry chain]
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
target: {
|
|
209
|
-
agent_id: direct recipient (optional)
|
|
210
|
-
task_id: task scope (optional)
|
|
211
|
-
topic: pub/sub topic (optional)
|
|
212
|
-
scope: subtree | branch | all (for broadcasts)
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
payload: {
|
|
216
|
-
content: actual message/data
|
|
217
|
-
correlation_id: for request/response threading
|
|
218
|
-
priority: normal | urgent | ...
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
metadata: {
|
|
222
|
-
ttl: expiration (optional)
|
|
223
|
-
requires_ack: boolean
|
|
224
|
-
... extensible
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### Subscription Model
|
|
230
|
-
|
|
231
|
-
Agents receive events based on their subscriptions. Central projector maintains full system state; agents get scoped views.
|
|
232
|
-
|
|
233
|
-
**Subscription types:**
|
|
234
|
-
|
|
235
|
-
| Subscription | What it captures |
|
|
236
|
-
|--------------|------------------|
|
|
237
|
-
| `agent:{id}` | Direct messages to this agent |
|
|
238
|
-
| `task:{id}` | All events on a specific task |
|
|
239
|
-
| `lineage:{id}` | Events from agents in my ancestry |
|
|
240
|
-
| `subtree:{id}` | Everything in a manager's subtree |
|
|
241
|
-
| `topic:{name}` | Named pub/sub topic (e.g., "errors", "discoveries") |
|
|
242
|
-
| `broadcast:all` | System-wide broadcasts |
|
|
243
|
-
|
|
244
|
-
**Automatic subscriptions (at spawn):**
|
|
245
|
-
- Manager spawns child → manager subscribes to `subtree:{child}` (visibility downward)
|
|
246
|
-
- Child is spawned → child subscribes to `lineage:{self}` (visibility upward)
|
|
247
|
-
- All agents get `agent:{self}` and `task:{assigned}`
|
|
248
|
-
|
|
249
|
-
**Explicit subscriptions:**
|
|
250
|
-
- Topics defined at spawn time by parent/spawner
|
|
251
|
-
- Minimal by default; agents opt-in to additional topics
|
|
252
|
-
|
|
253
|
-
**Information flow:**
|
|
254
|
-
|
|
255
|
-
```
|
|
256
|
-
Manager A
|
|
257
|
-
[subscribes: subtree:A]
|
|
258
|
-
│
|
|
259
|
-
│ sees child events automatically
|
|
260
|
-
▼
|
|
261
|
-
┌────┴────┐
|
|
262
|
-
▼ ▼
|
|
263
|
-
Agent B Agent C
|
|
264
|
-
[lineage] [lineage]
|
|
265
|
-
|
|
266
|
-
B and C see upward (to A)
|
|
267
|
-
A sees downward (B and C)
|
|
268
|
-
B and C don't see each other unless:
|
|
269
|
-
- same explicit topic
|
|
270
|
-
- direct message
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Cross-branch communication requires intentional subscription or direct addressing.
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
## Agent-to-Manager Feedback
|
|
278
|
-
|
|
279
|
-
### Two-Tier Model
|
|
280
|
-
|
|
281
|
-
**Tier 1: Structured milestone events (pushed)**
|
|
282
|
-
Agents emit compact status events at defined moments, designed for manager consumption.
|
|
283
|
-
|
|
284
|
-
**Tier 2: Full event stream (queryable)**
|
|
285
|
-
The detailed agent trajectory exists in the log. Managers don't subscribe to it by default but can query when they need to drill down.
|
|
286
|
-
|
|
287
|
-
### Status Event Schema
|
|
288
|
-
|
|
289
|
-
```
|
|
290
|
-
StatusEvent {
|
|
291
|
-
type: status
|
|
292
|
-
source: { agent_id, task_id }
|
|
293
|
-
|
|
294
|
-
status_type:
|
|
295
|
-
| started
|
|
296
|
-
| checkpoint
|
|
297
|
-
| blocked
|
|
298
|
-
| discovery
|
|
299
|
-
| completed
|
|
300
|
-
| failed
|
|
301
|
-
|
|
302
|
-
payload: {
|
|
303
|
-
summary: string (human/agent readable)
|
|
304
|
-
details: { ... } // structured, varies by status_type
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
**Details by status type:**
|
|
310
|
-
|
|
311
|
-
| status_type | details |
|
|
312
|
-
|-------------|---------|
|
|
313
|
-
| `started` | `{ task_description, estimated_effort }` |
|
|
314
|
-
| `checkpoint` | `{ progress, remaining, artifacts_so_far }` |
|
|
315
|
-
| `blocked` | `{ reason, needs, suggested_resolution }` |
|
|
316
|
-
| `discovery` | `{ what, relevance, suggested_action }` |
|
|
317
|
-
| `completed` | `{ result_summary, artifacts, usage }` |
|
|
318
|
-
| `failed` | `{ error, attempted, partial_results }` |
|
|
319
|
-
|
|
320
|
-
### Reporting Contract
|
|
321
|
-
|
|
322
|
-
**Minimum (required):**
|
|
323
|
-
- `started` — when agent begins work
|
|
324
|
-
- `completed` | `failed` — when agent finishes, with summary
|
|
325
|
-
|
|
326
|
-
**Optional (agent's discretion):**
|
|
327
|
-
- `checkpoint` — for long-running tasks, if agent deems it useful
|
|
328
|
-
- `discovery` — when agent finds something plan-relevant
|
|
329
|
-
- `blocked` — when agent can't proceed
|
|
330
|
-
|
|
331
|
-
Agents determine natural checkpoints based on their work. At minimum, they report a summary of task work and status at completion.
|
|
332
|
-
|
|
333
|
-
### System Safety Net
|
|
334
|
-
|
|
335
|
-
**Silent completion:**
|
|
336
|
-
If an agent's execution ends without a status event, the system emits a synthetic notice:
|
|
337
|
-
|
|
338
|
-
```
|
|
339
|
-
{ type: system_notice,
|
|
340
|
-
notice_type: silent_completion,
|
|
341
|
-
agent_id, task_id }
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
Manager can then query the agent's trajectory or reactivate the agent for summary.
|
|
345
|
-
|
|
346
|
-
**Timeout:**
|
|
347
|
-
Configurable at system level. If an agent runs past the timeout:
|
|
348
|
-
|
|
349
|
-
```
|
|
350
|
-
{ type: system_notice,
|
|
351
|
-
notice_type: timeout,
|
|
352
|
-
agent_id, task_id }
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
Manager or user can intervene.
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## Routing
|
|
360
|
-
|
|
361
|
-
### Overview
|
|
362
|
-
|
|
363
|
-
Users talk implicitly—they don't address specific agents. The currently mounted agent is the "first responder" and has tools to route elsewhere when needed.
|
|
364
|
-
|
|
365
|
-
### Routing Flow
|
|
366
|
-
|
|
367
|
-
```
|
|
368
|
-
User message
|
|
369
|
-
│
|
|
370
|
-
▼
|
|
371
|
-
┌─────────────────────────────────────┐
|
|
372
|
-
│ Currently mounted agent │
|
|
373
|
-
│ (or head manager if no mount) │
|
|
374
|
-
└─────────────────┬───────────────────┘
|
|
375
|
-
│
|
|
376
|
-
▼
|
|
377
|
-
┌─────────────────────────────────────┐
|
|
378
|
-
│ Can I handle this? │
|
|
379
|
-
│ - Is it about my task/context? │
|
|
380
|
-
│ - Do I have the information? │
|
|
381
|
-
└─────────────────┬───────────────────┘
|
|
382
|
-
│
|
|
383
|
-
┌─────────┴─────────┐
|
|
384
|
-
▼ ▼
|
|
385
|
-
Yes No
|
|
386
|
-
│ │
|
|
387
|
-
▼ ▼
|
|
388
|
-
Handle it ┌─────────────────┐
|
|
389
|
-
│ Query tools: │
|
|
390
|
-
│ - agent index │
|
|
391
|
-
│ - task index │
|
|
392
|
-
│ - hierarchy │
|
|
393
|
-
└────────┬────────┘
|
|
394
|
-
│
|
|
395
|
-
▼
|
|
396
|
-
┌─────────────────┐
|
|
397
|
-
│ Route/delegate: │
|
|
398
|
-
│ - fork target │
|
|
399
|
-
│ - spawn query │
|
|
400
|
-
│ - remount user │
|
|
401
|
-
└─────────────────┘
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
### Index System
|
|
405
|
-
|
|
406
|
-
**Query interface (stable, implementation can evolve):**
|
|
407
|
-
|
|
408
|
-
```
|
|
409
|
-
query_index({
|
|
410
|
-
type: agents | tasks | all
|
|
411
|
-
filter: { status, parent, created_after, ... }
|
|
412
|
-
search: string (natural language, optional)
|
|
413
|
-
limit: number
|
|
414
|
-
sort: recency | relevance | hybrid (default)
|
|
415
|
-
archived: boolean (default false)
|
|
416
|
-
})
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
**Properties:**
|
|
420
|
-
- Recency scoring: recent/active items score higher, configurable decay curve
|
|
421
|
-
- Garbage collection: routine process archives stale entries (completed tasks older than X days)
|
|
422
|
-
- Archive fallback: if index miss and `archived=true`, searches historical data
|
|
423
|
-
- Stable interface: underlying implementation can evolve (keyword → semantic) without API changes
|
|
424
|
-
|
|
425
|
-
**Routing tools available to mounted agent:**
|
|
426
|
-
|
|
427
|
-
| Tool | Purpose |
|
|
428
|
-
|------|---------|
|
|
429
|
-
| `query_index` | Search agents/tasks with filters, recency-weighted |
|
|
430
|
-
| `get_hierarchy` | Tree view of current agent structure |
|
|
431
|
-
| `get_agent_summary` | Quick view of specific agent's state |
|
|
432
|
-
| `fork_agent` | Create fork for user steering |
|
|
433
|
-
| `spawn_inspector` | Create short-lived query agent |
|
|
434
|
-
| `remount_user` | Switch user's mounted session |
|
|
435
|
-
|
|
436
|
-
---
|
|
437
|
-
|
|
438
|
-
## Broadcast & Blackboard
|
|
439
|
-
|
|
440
|
-
### Core Principles
|
|
441
|
-
|
|
442
|
-
**Broadcasts are passive (pull-based):** Broadcast events update shared blackboard state. Agents check when convenient—no interruption to their flow.
|
|
443
|
-
|
|
444
|
-
**Active intervention is explicit:** Managers use targeted tools (`stop_agent`, `inject_message`) for intentional interruption.
|
|
445
|
-
|
|
446
|
-
### Blackboard Architecture
|
|
447
|
-
|
|
448
|
-
The blackboard uses a **ledger + materialized view** pattern, consistent with the event-sourced architecture:
|
|
449
|
-
|
|
450
|
-
```
|
|
451
|
-
┌─────────────────────┐ ┌─────────────────────┐
|
|
452
|
-
│ Blackboard Ledger │ │ Materialized View │
|
|
453
|
-
│ (append-only) │─────▶│ (current state) │
|
|
454
|
-
│ │ │ │
|
|
455
|
-
│ [001] set api=/v2 │ │ api: /v3 │
|
|
456
|
-
│ [002] set rate=100 │ │ rate: 100 │
|
|
457
|
-
│ [003] set api=/v3 │ │ warnings: [mem 80%] │
|
|
458
|
-
│ [004] add warning │ │ │
|
|
459
|
-
└─────────────────────┘ └─────────────────────┘
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
### Multiplexed Sections
|
|
463
|
-
|
|
464
|
-
The blackboard is a collection of sections, each with its own ledger + view. Interface supports different projection semantics per section (for future flexibility).
|
|
465
|
-
|
|
466
|
-
```
|
|
467
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
468
|
-
│ Blackboard │
|
|
469
|
-
│─────────────────────────────────────────────────────────────────│
|
|
470
|
-
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
|
|
471
|
-
│ │ announcements │ │ shared_state │ │ discussions │ │
|
|
472
|
-
│ │ (ledger+view) │ │ (ledger+view) │ │ (ledger+view) │ │
|
|
473
|
-
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
|
|
474
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
475
|
-
```
|
|
476
|
-
|
|
477
|
-
### Blackboard Interface
|
|
478
|
-
|
|
479
|
-
```
|
|
480
|
-
Blackboard {
|
|
481
|
-
// Write (always appends to section's ledger)
|
|
482
|
-
post(section: string, entry: {
|
|
483
|
-
key?: string // for key-value sections
|
|
484
|
-
thread?: string // for threaded sections
|
|
485
|
-
content: any
|
|
486
|
-
metadata?: {...}
|
|
487
|
-
})
|
|
488
|
-
|
|
489
|
-
// Read current materialized view
|
|
490
|
-
read(section: string, filter?: {
|
|
491
|
-
key?: string
|
|
492
|
-
thread?: string
|
|
493
|
-
limit?: number
|
|
494
|
-
})
|
|
495
|
-
|
|
496
|
-
// Get updates since last check (cursor-based)
|
|
497
|
-
updates(section: string, since: cursor) → { entries, new_cursor }
|
|
498
|
-
|
|
499
|
-
// List available sections
|
|
500
|
-
list_sections() → [{ name, type, description }]
|
|
501
|
-
}
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
### Projection Types (future)
|
|
505
|
-
|
|
506
|
-
| Type | Projection behavior |
|
|
507
|
-
|------|---------------------|
|
|
508
|
-
| `append` | View = all entries in order |
|
|
509
|
-
| `key_value` | View = latest entry per key |
|
|
510
|
-
| `threaded` | View = entries grouped by thread |
|
|
511
|
-
| `windowed` | View = entries within time window |
|
|
512
|
-
|
|
513
|
-
For v1, all sections use `append` semantics.
|
|
514
|
-
|
|
515
|
-
### Active Intervention Tools
|
|
516
|
-
|
|
517
|
-
| Mechanism | Scope | Effect |
|
|
518
|
-
|-----------|-------|--------|
|
|
519
|
-
| `stop_agent` | Single agent | Terminates execution |
|
|
520
|
-
| `pause_agent` | Single agent | Suspends, can resume |
|
|
521
|
-
| `inject_message` | Single agent or subtree | Force-adds message to agent's context |
|
|
522
|
-
| `inject_all` | System-wide | Force-adds message to all running agents |
|
|
523
|
-
|
|
524
|
-
---
|
|
525
|
-
|
|
526
|
-
## Summary Generation & Context Handoff
|
|
527
|
-
|
|
528
|
-
### Core Principle
|
|
529
|
-
|
|
530
|
-
**Minimal interface, hidden complexity.** The handoff produces a single flattened system message that slots into the receiving agent's context. Merge strategies, summarization, and truncation are internal implementation details.
|
|
531
|
-
|
|
532
|
-
### Agent Interface
|
|
533
|
-
|
|
534
|
-
```
|
|
535
|
-
handoff_conversation({
|
|
536
|
-
to: agent_id | session_id,
|
|
537
|
-
context_hints?: {
|
|
538
|
-
focus?: string, // "user wants to change the API design"
|
|
539
|
-
key_decisions?: [string], // ["chose REST over GraphQL"]
|
|
540
|
-
open_questions?: [string] // ["auth strategy not decided"]
|
|
541
|
-
}
|
|
542
|
-
})
|
|
543
|
-
```
|
|
544
|
-
|
|
545
|
-
### System Output
|
|
546
|
-
|
|
547
|
-
The system generates a single message for the receiving agent:
|
|
548
|
-
|
|
549
|
-
```
|
|
550
|
-
HandoffMessage {
|
|
551
|
-
role: system,
|
|
552
|
-
type: handoff_context,
|
|
553
|
-
content: string, // natural language summary/context
|
|
554
|
-
metadata: {
|
|
555
|
-
from_agent: agent_id,
|
|
556
|
-
from_session: session_id,
|
|
557
|
-
handoff_time: timestamp
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
### What the Receiving Agent Sees
|
|
563
|
-
|
|
564
|
-
```
|
|
565
|
-
[
|
|
566
|
-
{ role: system, type: handoff_context, content: "Previous conversation
|
|
567
|
-
with Agent A: User asked to design an API for user management. Key
|
|
568
|
-
decisions: REST over GraphQL, using PostgreSQL. Open question: auth
|
|
569
|
-
strategy. User now wants to revisit the endpoint structure." },
|
|
570
|
-
{ role: user, content: "Can we add pagination to the list endpoint?" },
|
|
571
|
-
...
|
|
572
|
-
]
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
### Internal Merge Strategy (Progressive)
|
|
576
|
-
|
|
577
|
-
The system picks the simplest strategy that fits the token budget:
|
|
578
|
-
|
|
579
|
-
```
|
|
580
|
-
Context merge request
|
|
581
|
-
│
|
|
582
|
-
▼
|
|
583
|
-
┌───────────────┐
|
|
584
|
-
│ Naive merge │ ─── fits? ──▶ Done
|
|
585
|
-
│ (concatenate) │
|
|
586
|
-
└───────┬───────┘
|
|
587
|
-
│ too long
|
|
588
|
-
▼
|
|
589
|
-
┌───────────────┐
|
|
590
|
-
│ Truncation │ ─── fits? ──▶ Done
|
|
591
|
-
│ (recent N) │
|
|
592
|
-
└───────┬───────┘
|
|
593
|
-
│ still too long
|
|
594
|
-
▼
|
|
595
|
-
┌───────────────┐
|
|
596
|
-
│ Extraction │ ─── fits? ──▶ Done
|
|
597
|
-
│ (key items) │
|
|
598
|
-
└───────┬───────┘
|
|
599
|
-
│ still too long
|
|
600
|
-
▼
|
|
601
|
-
┌───────────────┐
|
|
602
|
-
│ Summarization │ ──────────▶ Done
|
|
603
|
-
│ (compress) │
|
|
604
|
-
└───────────────┘
|
|
605
|
-
```
|
|
606
|
-
|
|
607
|
-
### Design Properties
|
|
608
|
-
|
|
609
|
-
- **For users:** Seamless, no visible handoff mechanics
|
|
610
|
-
- **For agents:** One system message with prior context, nothing special to handle
|
|
611
|
-
- **For the system:** Flexible to change strategies without breaking interface
|
|
612
|
-
|
|
613
|
-
---
|
|
614
|
-
|
|
615
|
-
## Agent Termination & Persistence
|
|
616
|
-
|
|
617
|
-
### Core Principle
|
|
618
|
-
|
|
619
|
-
**Event log tracks lifecycle; session storage handles internal state.** The event log references `session_id`—agent conversation history and internal state live in the session system, which already has its own persistence.
|
|
620
|
-
|
|
621
|
-
```
|
|
622
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
623
|
-
│ Event Log │
|
|
624
|
-
│ (lifecycle, messages, coordination) │
|
|
625
|
-
│─────────────────────────────────────────────────────────────│
|
|
626
|
-
│ { type: spawn, agent_id: A, session_id: sess_123, ... } │
|
|
627
|
-
│ { type: status, agent_id: A, status_type: started, ... } │
|
|
628
|
-
│ { type: message, from: A, to: B, ... } │
|
|
629
|
-
│ { type: status, agent_id: A, status_type: completed, ... } │
|
|
630
|
-
│ { type: terminate, agent_id: A, session_id: sess_123 } │
|
|
631
|
-
└─────────────────────────────────────────────────────────────┘
|
|
632
|
-
│
|
|
633
|
-
│ references
|
|
634
|
-
▼
|
|
635
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
636
|
-
│ Session Storage (external) │
|
|
637
|
-
│ (conversation history, internal state) │
|
|
638
|
-
│─────────────────────────────────────────────────────────────│
|
|
639
|
-
│ sess_123/ │
|
|
640
|
-
│ context.json │
|
|
641
|
-
│ artifacts/ │
|
|
642
|
-
│ ... │
|
|
643
|
-
└─────────────────────────────────────────────────────────────┘
|
|
644
|
-
```
|
|
645
|
-
|
|
646
|
-
### Termination Triggers
|
|
647
|
-
|
|
648
|
-
| Trigger | Description |
|
|
649
|
-
|---------|-------------|
|
|
650
|
-
| Task completion | Agent finishes work, emits `completed` |
|
|
651
|
-
| Explicit failure | Agent can't proceed, emits `failed` |
|
|
652
|
-
| Manager termination | Parent calls `stop_agent` |
|
|
653
|
-
| Timeout | System-level safety, emits `system_notice` |
|
|
654
|
-
| User cancellation | User explicitly kills agent |
|
|
655
|
-
|
|
656
|
-
### Termination Flow (uniform for all causes)
|
|
657
|
-
|
|
658
|
-
```
|
|
659
|
-
Agent terminates (any reason)
|
|
660
|
-
│
|
|
661
|
-
▼
|
|
662
|
-
┌─────────────────────────────────┐
|
|
663
|
-
│ Emit terminate event │
|
|
664
|
-
│ { type: terminate, │
|
|
665
|
-
│ agent_id, session_id, │
|
|
666
|
-
│ reason: completed | failed | │
|
|
667
|
-
│ stopped | timeout | │
|
|
668
|
-
│ cancelled, │
|
|
669
|
-
│ timestamp } │
|
|
670
|
-
└─────────────────────────────────┘
|
|
671
|
-
│
|
|
672
|
-
▼
|
|
673
|
-
Session persists via session system (already happening)
|
|
674
|
-
```
|
|
675
|
-
|
|
676
|
-
### Resumption Flow
|
|
677
|
-
|
|
678
|
-
```
|
|
679
|
-
Resume request for Agent A
|
|
680
|
-
│
|
|
681
|
-
▼
|
|
682
|
-
Query event log → find session_id
|
|
683
|
-
│
|
|
684
|
-
▼
|
|
685
|
-
Load session from session storage
|
|
686
|
-
│
|
|
687
|
-
▼
|
|
688
|
-
Spawn new agent instance with loaded session
|
|
689
|
-
│
|
|
690
|
-
▼
|
|
691
|
-
Emit spawn event (with lineage reference to original)
|
|
692
|
-
```
|
|
693
|
-
|
|
694
|
-
### Archival
|
|
695
|
-
|
|
696
|
-
Optional: copy session files to archival storage if configured. Useful for long-term retention or compliance.
|
|
697
|
-
|
|
698
|
-
---
|
|
699
|
-
|
|
700
|
-
## Message Priority
|
|
701
|
-
|
|
702
|
-
### Core Principle
|
|
703
|
-
|
|
704
|
-
**No complex priority system.** Messages are flattened chronologically; agent triages and decides what to handle. Forced interrupts bypass the queue entirely.
|
|
705
|
-
|
|
706
|
-
### Normal Messages
|
|
707
|
-
|
|
708
|
-
- Flattened chronologically into agent's message view
|
|
709
|
-
- Agent sees all pending messages, decides what to handle
|
|
710
|
-
- Configurable soft limit per message (generous default, e.g., 1000 tokens)
|
|
711
|
-
- Over-limit messages truncated with reference to full content
|
|
712
|
-
|
|
713
|
-
```
|
|
714
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
715
|
-
│ Message Queue (checked when agent is ready) │
|
|
716
|
-
│─────────────────────────────────────────────────────────────│
|
|
717
|
-
│ [10:01] system: Resource warning - memory at 80% │
|
|
718
|
-
│ [10:02] peer:B: FYI, found a bug in module X │
|
|
719
|
-
│ [10:03] user: Can you check on the API progress? │
|
|
720
|
-
│ [10:04] peer:C: [truncated] see full: msg_id_456 │
|
|
721
|
-
└─────────────────────────────────────────────────────────────┘
|
|
722
|
-
```
|
|
723
|
-
|
|
724
|
-
### Forced Interrupts
|
|
725
|
-
|
|
726
|
-
Injected directly into agent context (not the message queue). Agent sees them immediately as part of working context.
|
|
727
|
-
|
|
728
|
-
```
|
|
729
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
730
|
-
│ Agent Context │
|
|
731
|
-
│─────────────────────────────────────────────────────────────│
|
|
732
|
-
│ [...existing conversation...] │
|
|
733
|
-
│ │
|
|
734
|
-
│ [INJECTED] manager: Stop current work, pivot to auth │
|
|
735
|
-
│ │
|
|
736
|
-
│ [...continues...] │
|
|
737
|
-
└─────────────────────────────────────────────────────────────┘
|
|
738
|
-
```
|
|
739
|
-
|
|
740
|
-
### Channel Behavior Summary
|
|
741
|
-
|
|
742
|
-
| Channel | Behavior |
|
|
743
|
-
|---------|----------|
|
|
744
|
-
| Normal messages | Batched, chronological, agent triages |
|
|
745
|
-
| Injected messages | Inserted into context, unavoidable |
|
|
746
|
-
| Stop signal | Terminates execution immediately |
|
|
747
|
-
|
|
748
|
-
---
|
|
749
|
-
|
|
750
|
-
## Summary
|
|
751
|
-
|
|
752
|
-
This document defines a multi-agent interaction system with:
|
|
753
|
-
|
|
754
|
-
- **Hybrid execution model**: Agents spawned on-demand with persistent, replayable state
|
|
755
|
-
- **Three user interaction modes**: Observe, Query, Steer—all feeling like direct conversation
|
|
756
|
-
- **Mount abstraction**: User terminal attaches to agent sessions seamlessly
|
|
757
|
-
- **Fork behavior**: Independent agents with messaging back to original; can accept handoff
|
|
758
|
-
- **Layered context windows**: Users see unified view; agents see scoped view with summaries
|
|
759
|
-
- **Event-sourced messaging**: Append-only log with materialized projections
|
|
760
|
-
- **Subscription-based visibility**: Automatic lineage/subtree subscriptions, explicit topics
|
|
761
|
-
- **Milestone-based feedback**: Agents report at natural checkpoints; system safety net for silent completion
|
|
762
|
-
- **Index-based routing**: Mounted agent queries index to find/route to appropriate targets
|
|
763
|
-
- **Passive blackboard**: Multiplexed sections with ledger + view pattern
|
|
764
|
-
- **Progressive context merging**: Simplest strategy that fits; flattened handoff message
|
|
765
|
-
- **Session-based persistence**: Event log tracks lifecycle; session storage handles state
|
|
766
|
-
- **Flat message priority**: Chronological queue; forced interrupts bypass
|
|
767
|
-
|
|
768
|
-
---
|
|
769
|
-
|
|
770
|
-
## Completed Design
|
|
771
|
-
|
|
772
|
-
1. ~~Design agent-to-agent messaging system~~ ✓
|
|
773
|
-
2. ~~Define manager feedback mechanisms~~ ✓
|
|
774
|
-
3. ~~Specify routing and broadcast protocols~~ ✓
|
|
775
|
-
4. ~~Determine summary generation strategy~~ ✓
|
|
776
|
-
5. ~~Define persistence and termination behavior~~ ✓
|
|
777
|
-
6. ~~Establish priority/interrupt model~~ ✓
|
|
778
|
-
|
|
779
|
-
**Ready for implementation planning.**
|