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,627 +0,0 @@
|
|
|
1
|
-
# Design: Subsystem Extraction — agent-inbox & opentasks
|
|
2
|
-
|
|
3
|
-
> **Status:** Implementation Complete (V2 modules live alongside V1)
|
|
4
|
-
> **Date:** 2026-03-17
|
|
5
|
-
> **Scope:** Restructure macro-agent to delegate messaging to agent-inbox and task management to opentasks, keeping macro-agent focused on agent orchestration.
|
|
6
|
-
|
|
7
|
-
## Motivation
|
|
8
|
-
|
|
9
|
-
macro-agent was built before agent-inbox and opentasks existed. It currently owns messaging (`src/router/`, `src/map/`), task management (`src/task/`), and a large event store (`src/store/`) that tracks everything. Now that agent-inbox and opentasks are mature standalone systems with richer capabilities (federation, structured inboxes, graph-based dependencies), macro-agent should delegate these concerns and focus on what only it can do: agent lifecycle, workspace isolation, and team topology.
|
|
10
|
-
|
|
11
|
-
## Design Principles
|
|
12
|
-
|
|
13
|
-
1. **Hard dependencies.** agent-inbox and opentasks are required. No fallback modes.
|
|
14
|
-
2. **Adapter-side policy enforcement.** Signal filtering and emission validation are orchestration concerns — enforced in macro-agent's adapter layer, not pushed into agent-inbox.
|
|
15
|
-
3. **Minimal store.** macro-agent keeps a thin SQLite store for agent lifecycle and session state only. All messages flow through agent-inbox. All tasks flow through opentasks.
|
|
16
|
-
4. **One inbox scope per team.** Each team gets its own agent-inbox scope. Standalone agents use the `"default"` scope.
|
|
17
|
-
5. **Clean rewrite** of affected layers, not incremental wrapping.
|
|
18
|
-
|
|
19
|
-
## Architecture Overview
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
23
|
-
│ macro-agent (orchestrator) │
|
|
24
|
-
│ │
|
|
25
|
-
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
|
|
26
|
-
│ │ Agent │ │Workspace │ │ Teams │ │ Trigger │ │
|
|
27
|
-
│ │ Manager │ │ Manager │ │ Runtime │ │ System │ │
|
|
28
|
-
│ └────┬─────┘ └──────────┘ └────┬─────┘ └──────┬─────┘ │
|
|
29
|
-
│ │ │ │ │
|
|
30
|
-
│ ┌────▼───────────────────────────▼────────────────▼─────┐ │
|
|
31
|
-
│ │ Adapter Layer │ │
|
|
32
|
-
│ │ ┌─────────────────┐ ┌──────────────────┐ │ │
|
|
33
|
-
│ │ │ InboxAdapter │ │ TasksAdapter │ │ │
|
|
34
|
-
│ │ │ - register │ │ - createTask │ │ │
|
|
35
|
-
│ │ │ - send │ │ - transition │ │ │
|
|
36
|
-
│ │ │ - onDelivery │ │ - queryReady │ │ │
|
|
37
|
-
│ │ │ - signal filter│ │ - claim/unclaim │ │ │
|
|
38
|
-
│ │ │ - emission val │ │ │ │ │
|
|
39
|
-
│ │ └────────┬────────┘ └────────┬─────────┘ │ │
|
|
40
|
-
│ └───────────┼─────────────────────────┼─────────────────┘ │
|
|
41
|
-
└──────────────┼─────────────────────────┼───────────────────┘
|
|
42
|
-
│ │
|
|
43
|
-
┌────────────▼────────────┐ ┌─────────▼──────────┐
|
|
44
|
-
│ agent-inbox │ │ opentasks │
|
|
45
|
-
│ (embedded, hybrid) │ │ (IPC to daemon) │
|
|
46
|
-
│ │ │ │
|
|
47
|
-
│ - MessageRouter │ │ - Graph store │
|
|
48
|
-
│ - IpcServer (for MCP) │ │ - Providers │
|
|
49
|
-
│ - Traceability │ │ - Dependencies │
|
|
50
|
-
│ - PushNotifier │ │ - Claiming │
|
|
51
|
-
│ - Federation │ │ - MCP tools │
|
|
52
|
-
└─────────────────────────┘ └─────────────────────┘
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Module Map (Post-Rewrite)
|
|
56
|
-
|
|
57
|
-
### Kept (rewired)
|
|
58
|
-
|
|
59
|
-
| Module | Purpose | Changes |
|
|
60
|
-
|--------|---------|---------|
|
|
61
|
-
| `src/agent/` | Agent lifecycle (spawn, terminate, resume, continue, fork) | Drop EventStore/MessageRouter deps, use adapters + AgentStore |
|
|
62
|
-
| `src/workspace/` | Worktrees, merge queue, integration strategies | Unchanged — pure git operations |
|
|
63
|
-
| `src/teams/` | Team topology, role resolution, spawn interception | Rewire: inbox scope per team, adapter-side signal enforcement |
|
|
64
|
-
| `src/roles/` | Role registry, capabilities | Unchanged |
|
|
65
|
-
| `src/lifecycle/` | Done handlers, cascade termination | Rewire: done → tasksAdapter + agentManager.terminate |
|
|
66
|
-
| `src/trigger/` | Wake management, cron, webhooks | Rewire: inbox.message events feed WakeManager |
|
|
67
|
-
| `src/mcp/` | MCP server for macro-agent-specific tools | Shrink to `done` + `inject_context` only |
|
|
68
|
-
| `src/acp/` | External protocol adapter | Rewire to use adapters |
|
|
69
|
-
| `src/cli/` | CLI commands | Rewire to use adapters |
|
|
70
|
-
| `src/metrics/` | Observability | Unchanged |
|
|
71
|
-
|
|
72
|
-
### New
|
|
73
|
-
|
|
74
|
-
| Module | Purpose |
|
|
75
|
-
|--------|---------|
|
|
76
|
-
| `src/adapters/inbox-adapter.ts` | Wraps agent-inbox for macro-agent's use |
|
|
77
|
-
| `src/adapters/tasks-adapter.ts` | Wraps opentasks client for macro-agent's use |
|
|
78
|
-
| `src/adapters/types.ts` | Adapter interfaces |
|
|
79
|
-
| `src/agent/agent-store.ts` | Minimal SQLite store (agents + sessions) |
|
|
80
|
-
|
|
81
|
-
### Deleted
|
|
82
|
-
|
|
83
|
-
| Module | Lines (approx) | Replaced by |
|
|
84
|
-
|--------|----------------|-------------|
|
|
85
|
-
| `src/router/` | ~2,000 | agent-inbox |
|
|
86
|
-
| `src/map/` | ~1,500 | agent-inbox |
|
|
87
|
-
| `src/task/` | ~1,500 | opentasks |
|
|
88
|
-
| `src/store/` | ~2,500 | agent-store.ts (~200 lines) |
|
|
89
|
-
| `src/steering/` | ~200 | Folded into `mcp/tools/inject_context.ts` |
|
|
90
|
-
|
|
91
|
-
~7,700 lines removed, ~600 lines added (adapters + store).
|
|
92
|
-
|
|
93
|
-
## Component Designs
|
|
94
|
-
|
|
95
|
-
### 1. InboxAdapter
|
|
96
|
-
|
|
97
|
-
Wraps an embedded `AgentInbox` instance. Owns signal filtering and emission validation as interceptors.
|
|
98
|
-
|
|
99
|
-
```typescript
|
|
100
|
-
interface InboxAdapter {
|
|
101
|
-
// Agent lifecycle — called by AgentManager on spawn/terminate
|
|
102
|
-
registerAgent(agentId: string, opts: {
|
|
103
|
-
name?: string;
|
|
104
|
-
role: string;
|
|
105
|
-
scope: string;
|
|
106
|
-
metadata?: Record<string, unknown>;
|
|
107
|
-
}): Promise<void>;
|
|
108
|
-
|
|
109
|
-
deregisterAgent(agentId: string): Promise<void>;
|
|
110
|
-
|
|
111
|
-
// Sending — called by team-runtime, done handlers, lifecycle
|
|
112
|
-
// Emission validation runs before forwarding to agent-inbox
|
|
113
|
-
send(from: string, to: string | string[], content: MessageContent, opts?: {
|
|
114
|
-
threadTag?: string;
|
|
115
|
-
importance?: Importance;
|
|
116
|
-
scope?: string;
|
|
117
|
-
subject?: string;
|
|
118
|
-
}): Promise<string>; // returns messageId
|
|
119
|
-
|
|
120
|
-
// Delivery subscription — macro-agent reacts to deliveries
|
|
121
|
-
// Signal filtering runs before invoking handler
|
|
122
|
-
onDelivery(handler: (event: InboxDeliveryEvent) => void): void;
|
|
123
|
-
|
|
124
|
-
// Queries
|
|
125
|
-
checkInbox(agentId: string, opts?: { unreadOnly?: boolean }): Promise<Message[]>;
|
|
126
|
-
|
|
127
|
-
// Policy hooks — set by TeamRuntime
|
|
128
|
-
setSignalFilter(filter: SignalFilterFn): void;
|
|
129
|
-
setEmissionValidator(validator: EmissionValidatorFn): void;
|
|
130
|
-
|
|
131
|
-
// Access to underlying inbox (for advanced use)
|
|
132
|
-
readonly inbox: AgentInbox;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// Signal filter: returns false to suppress delivery
|
|
136
|
-
type SignalFilterFn = (from: string, to: string, message: Message) => boolean;
|
|
137
|
-
|
|
138
|
-
// Emission validator: returns rejection reason or null to allow
|
|
139
|
-
type EmissionValidatorFn = (from: string, message: Message) => string | null;
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
**Embedding strategy (hybrid):** agent-inbox runs in-process inside macro-agent for zero-latency event access. The IPC server also runs, so agent MCP subprocesses connect directly via socket for `send_message`, `check_inbox`, etc.
|
|
143
|
-
|
|
144
|
-
```typescript
|
|
145
|
-
// Boot sequence
|
|
146
|
-
const inbox = await createAgentInbox({
|
|
147
|
-
sqlitePath: path.join(baseDir, 'inbox.db'),
|
|
148
|
-
config: {
|
|
149
|
-
scope: 'default',
|
|
150
|
-
socketPath: path.join(baseDir, 'inbox.sock'),
|
|
151
|
-
},
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
const inboxAdapter = new InboxAdapter(inbox);
|
|
155
|
-
|
|
156
|
-
// macro-agent subscribes to delivery events in-process
|
|
157
|
-
inbox.events.on('inbox.message', (event) => {
|
|
158
|
-
inboxAdapter.handleDelivery(event);
|
|
159
|
-
});
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### 2. TasksAdapter
|
|
163
|
-
|
|
164
|
-
Wraps `OpenTasksClient` via IPC to the opentasks daemon. macro-agent ensures the daemon is running at boot (auto-start if needed), then lets opentasks manage its own lifecycle.
|
|
165
|
-
|
|
166
|
-
```typescript
|
|
167
|
-
interface TasksAdapter {
|
|
168
|
-
// Task lifecycle — called by AgentManager, done handlers
|
|
169
|
-
createTask(opts: {
|
|
170
|
-
title: string;
|
|
171
|
-
assignee?: string;
|
|
172
|
-
parent?: string;
|
|
173
|
-
tags?: string[];
|
|
174
|
-
priority?: number;
|
|
175
|
-
}): Promise<string>; // returns taskId
|
|
176
|
-
|
|
177
|
-
assignTask(taskId: string, agentId: string): Promise<void>;
|
|
178
|
-
transitionTask(taskId: string, action: 'start' | 'complete' | 'fail' | 'block'): Promise<void>;
|
|
179
|
-
|
|
180
|
-
// Queries — called by team-runtime, coordinators
|
|
181
|
-
getTask(taskId: string): Promise<Task>;
|
|
182
|
-
queryReady(opts?: { tags?: string[]; limit?: number }): Promise<Task[]>;
|
|
183
|
-
listTasks(filter?: { status?: string; assignee?: string }): Promise<Task[]>;
|
|
184
|
-
|
|
185
|
-
// Dependencies
|
|
186
|
-
addBlocker(taskId: string, blockerId: string): Promise<void>;
|
|
187
|
-
removeBlocker(taskId: string, blockerId: string): Promise<void>;
|
|
188
|
-
|
|
189
|
-
// Pull mode (gated by task.claim capability)
|
|
190
|
-
claimTask(agentId: string, filter?: { tags?: string[] }): Promise<Task | null>;
|
|
191
|
-
unclaimTask(taskId: string): Promise<void>;
|
|
192
|
-
listClaimable(filter?: { tags?: string[] }): Promise<Task[]>;
|
|
193
|
-
|
|
194
|
-
// Connection lifecycle
|
|
195
|
-
connect(): Promise<void>;
|
|
196
|
-
disconnect(): void;
|
|
197
|
-
}
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
**Daemon lifecycle:** macro-agent uses `OpenTasksClient({ autoConnect: true })`. If the daemon isn't running, opentasks auto-starts it on first request. macro-agent's boot sequence verifies connectivity:
|
|
201
|
-
|
|
202
|
-
```typescript
|
|
203
|
-
const tasksAdapter = new TasksAdapter();
|
|
204
|
-
await tasksAdapter.connect(); // auto-starts daemon if needed
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### 3. AgentStore
|
|
208
|
-
|
|
209
|
-
Replaces the entire `src/store/` directory. No event sourcing, no materialized views — just two SQLite tables.
|
|
210
|
-
|
|
211
|
-
```sql
|
|
212
|
-
CREATE TABLE agents (
|
|
213
|
-
id TEXT PRIMARY KEY,
|
|
214
|
-
role TEXT NOT NULL,
|
|
215
|
-
state TEXT NOT NULL DEFAULT 'running', -- running | idle | stopped
|
|
216
|
-
parent_id TEXT,
|
|
217
|
-
team TEXT,
|
|
218
|
-
scope TEXT DEFAULT 'default',
|
|
219
|
-
cwd TEXT,
|
|
220
|
-
capabilities TEXT, -- JSON array
|
|
221
|
-
workspace_path TEXT,
|
|
222
|
-
workspace_stream_id TEXT,
|
|
223
|
-
task_id TEXT, -- opentasks task ID
|
|
224
|
-
created_at TEXT NOT NULL,
|
|
225
|
-
stopped_at TEXT,
|
|
226
|
-
stop_reason TEXT,
|
|
227
|
-
metadata TEXT -- JSON blob for extensible fields
|
|
228
|
-
);
|
|
229
|
-
|
|
230
|
-
CREATE TABLE sessions (
|
|
231
|
-
agent_id TEXT PRIMARY KEY,
|
|
232
|
-
session_id TEXT NOT NULL,
|
|
233
|
-
handle_data TEXT, -- serialized acp-factory handle info
|
|
234
|
-
created_at TEXT NOT NULL,
|
|
235
|
-
FOREIGN KEY (agent_id) REFERENCES agents(id)
|
|
236
|
-
);
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
```typescript
|
|
240
|
-
interface AgentStore {
|
|
241
|
-
putAgent(agent: AgentRecord): void;
|
|
242
|
-
getAgent(id: string): AgentRecord | null;
|
|
243
|
-
listAgents(filter?: AgentFilter): AgentRecord[];
|
|
244
|
-
updateAgent(id: string, updates: Partial<AgentRecord>): void;
|
|
245
|
-
removeAgent(id: string): void;
|
|
246
|
-
|
|
247
|
-
putSession(session: SessionRecord): void;
|
|
248
|
-
getSession(agentId: string): SessionRecord | null;
|
|
249
|
-
removeSession(agentId: string): void;
|
|
250
|
-
|
|
251
|
-
// Hierarchy queries (needed for cascade termination, team membership)
|
|
252
|
-
getChildren(parentId: string): AgentRecord[];
|
|
253
|
-
getDescendants(agentId: string): AgentRecord[];
|
|
254
|
-
getAncestors(agentId: string): AgentRecord[];
|
|
255
|
-
|
|
256
|
-
close(): void;
|
|
257
|
-
}
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
### 4. Agent Lifecycle Flows
|
|
261
|
-
|
|
262
|
-
#### Spawn
|
|
263
|
-
|
|
264
|
-
```
|
|
265
|
-
AgentManager.spawn(options)
|
|
266
|
-
1. agentStore.putAgent({ id, role, state: 'running', parent, team, scope })
|
|
267
|
-
2. AgentFactory.spawn() → process handle
|
|
268
|
-
3. if worker role:
|
|
269
|
-
workspace = workspaceManager.createWorktree()
|
|
270
|
-
agentStore.updateAgent(id, { workspace_path, workspace_stream_id })
|
|
271
|
-
4. taskId = tasksAdapter.createTask({ title, assignee: id })
|
|
272
|
-
agentStore.updateAgent(id, { task_id: taskId })
|
|
273
|
-
5. inboxAdapter.registerAgent(id, { name, role, scope })
|
|
274
|
-
6. buildMcpServer({ cwd }) // only done + inject_context
|
|
275
|
-
7. agentStore.putSession({ agent_id: id, session_id, handle_data })
|
|
276
|
-
8. handle.createSession(effectiveCwd)
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
#### Terminate
|
|
280
|
-
|
|
281
|
-
```
|
|
282
|
-
AgentManager.terminate(agentId, reason)
|
|
283
|
-
1. cascadeTerminate(children) // depth-first
|
|
284
|
-
2. if agent has workspace && reason === 'completed':
|
|
285
|
-
branch = getCurrentBranch(workspace.path)
|
|
286
|
-
workspaceManager.submitMergeRequest({ branch, streamId, taskId })
|
|
287
|
-
3. tasksAdapter.transitionTask(taskId, reason === 'completed' ? 'complete' : 'fail')
|
|
288
|
-
4. inboxAdapter.deregisterAgent(agentId)
|
|
289
|
-
5. workspaceManager.cleanup(workspace)
|
|
290
|
-
6. agentStore.updateAgent(agentId, { state: 'stopped', stopped_at, stop_reason })
|
|
291
|
-
7. agentStore.removeSession(agentId)
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
#### Done handler (simplified)
|
|
295
|
-
|
|
296
|
-
```
|
|
297
|
-
done({ status, summary })
|
|
298
|
-
1. tasksAdapter.transitionTask(taskId, mapStatus(status))
|
|
299
|
-
2. inboxAdapter.send(agentId, parentId, {
|
|
300
|
-
type: 'event',
|
|
301
|
-
event: 'task_completed',
|
|
302
|
-
data: { taskId, status, summary }
|
|
303
|
-
}, { importance: 'high' })
|
|
304
|
-
3. return { terminate: true, reason: status }
|
|
305
|
-
// AgentManager.terminate() handles merge request submission
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
The agent never constructs merge requests. The system reads workspace state during termination.
|
|
309
|
-
|
|
310
|
-
### 5. Team Runtime (Rewired)
|
|
311
|
-
|
|
312
|
-
#### Bootstrap
|
|
313
|
-
|
|
314
|
-
```
|
|
315
|
-
TeamRuntime.initialize(manifest)
|
|
316
|
-
1. scope = manifest.name // one inbox scope per team
|
|
317
|
-
2. Register resolved roles in RoleRegistry
|
|
318
|
-
3. Install spawn interceptor on AgentManager
|
|
319
|
-
4. Install signal filter + emission validator on InboxAdapter
|
|
320
|
-
5. Spawn root agent (scope = teamName)
|
|
321
|
-
6. Spawn companion agents (same scope)
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
#### Signal filtering (adapter-side)
|
|
325
|
-
|
|
326
|
-
```typescript
|
|
327
|
-
// TeamRuntime installs this on InboxAdapter
|
|
328
|
-
inboxAdapter.setSignalFilter((from, to, message) => {
|
|
329
|
-
const fromAgent = agentStore.getAgent(from);
|
|
330
|
-
const toAgent = agentStore.getAgent(to);
|
|
331
|
-
|
|
332
|
-
// Both must be in this team (or allow cross-team)
|
|
333
|
-
if (fromAgent?.team !== teamName && toAgent?.team !== teamName) {
|
|
334
|
-
return true; // not our concern
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
// Check if toAgent's role subscribes to this signal type
|
|
338
|
-
const toRole = manifest.roles[toAgent.role];
|
|
339
|
-
const signalType = extractSignalType(message);
|
|
340
|
-
return isAllowedBySubscription(toRole, signalType);
|
|
341
|
-
});
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
#### Emission validation (adapter-side)
|
|
345
|
-
|
|
346
|
-
```typescript
|
|
347
|
-
inboxAdapter.setEmissionValidator((from, message) => {
|
|
348
|
-
const agent = agentStore.getAgent(from);
|
|
349
|
-
if (agent?.team !== teamName) return null; // not our concern
|
|
350
|
-
|
|
351
|
-
const role = manifest.roles[agent.role];
|
|
352
|
-
const signalType = extractSignalType(message);
|
|
353
|
-
|
|
354
|
-
if (!role.allowedEmissions?.includes(signalType)) {
|
|
355
|
-
return `Role ${agent.role} cannot emit ${signalType}`;
|
|
356
|
-
}
|
|
357
|
-
return null; // allowed
|
|
358
|
-
});
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
#### Channel mapping
|
|
362
|
-
|
|
363
|
-
Team YAML channels map to agent-inbox thread tags within the team's scope:
|
|
364
|
-
|
|
365
|
-
```yaml
|
|
366
|
-
# team.yaml
|
|
367
|
-
communication:
|
|
368
|
-
channels:
|
|
369
|
-
- name: work_coordination
|
|
370
|
-
signals: [task_assigned, task_completed]
|
|
371
|
-
- name: code_review
|
|
372
|
-
signals: [review_requested, review_completed]
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
Becomes:
|
|
376
|
-
- Messages on `work_coordination` → `threadTag: "work_coordination"` in scope `teamName`
|
|
377
|
-
- Messages on `code_review` → `threadTag: "code_review"` in scope `teamName`
|
|
378
|
-
|
|
379
|
-
### 6. Trigger System (Rewired)
|
|
380
|
-
|
|
381
|
-
The trigger system stays but rewires its inputs:
|
|
382
|
-
|
|
383
|
-
```
|
|
384
|
-
┌─────────────────────┐
|
|
385
|
-
│ inbox.message │ (from InboxAdapter.onDelivery)
|
|
386
|
-
│ events │
|
|
387
|
-
└──────────┬──────────┘
|
|
388
|
-
│
|
|
389
|
-
┌────────────┐ │ ┌────────────┐
|
|
390
|
-
│ Cron ├───┐ │ ┌────┤ Webhook │
|
|
391
|
-
│ Service │ │ │ │ │ Handler │
|
|
392
|
-
└────────────┘ ▼ ▼ ▼ └────────────┘
|
|
393
|
-
┌────────────────────────────┐
|
|
394
|
-
│ TriggerRouter │
|
|
395
|
-
│ (role, direct, AI strat) │
|
|
396
|
-
└──────────┬─────────────────┘
|
|
397
|
-
│
|
|
398
|
-
┌──────────▼─────────────────┐
|
|
399
|
-
│ SystemEventQueue │
|
|
400
|
-
│ (per-agent, in-memory) │
|
|
401
|
-
└──────────┬─────────────────┘
|
|
402
|
-
│
|
|
403
|
-
┌──────────▼─────────────────┐
|
|
404
|
-
│ WakeManager │
|
|
405
|
-
│ heartbeat + coalesce │
|
|
406
|
-
│ inject → interrupt → prompt│
|
|
407
|
-
└─────────────────────────────┘
|
|
408
|
-
```
|
|
409
|
-
|
|
410
|
-
**Key change:** Inbox delivery events feed into WakeManager's delivery chain. The WakeManager decides *how* to deliver (inject/interrupt/prompt) based on message importance and agent state.
|
|
411
|
-
|
|
412
|
-
```typescript
|
|
413
|
-
inboxAdapter.onDelivery((event) => {
|
|
414
|
-
const action = mapImportanceToWakeAction(event.message.importance, agentState);
|
|
415
|
-
switch (action) {
|
|
416
|
-
case 'interrupt': wakeManager.deliverToAgent(event.agentId, event.message, 'interrupt'); break;
|
|
417
|
-
case 'inject': wakeManager.deliverToAgent(event.agentId, event.message, 'inject'); break;
|
|
418
|
-
case 'wake': wakeManager.deliverToAgent(event.agentId, event.message, 'prompt'); break;
|
|
419
|
-
case 'queue': systemEventQueue.enqueue(event.agentId, event.message); break;
|
|
420
|
-
}
|
|
421
|
-
});
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
### 7. MCP Tool Surface Per Agent
|
|
425
|
-
|
|
426
|
-
Each agent gets tools from three sources, mounted as separate MCP servers:
|
|
427
|
-
|
|
428
|
-
| Source | Tools | Mount method |
|
|
429
|
-
|--------|-------|-------------|
|
|
430
|
-
| **agent-inbox** | `send_message`, `check_inbox`, `read_thread`, `list_agents` | IPC socket → agent-inbox's MCP server |
|
|
431
|
-
| **opentasks** | `link`, `query`, `annotate`, `task` | IPC socket → opentasks' MCP server |
|
|
432
|
-
| **macro-agent** | `done`, `inject_context` | Built into macro-agent's per-agent MCP server |
|
|
433
|
-
|
|
434
|
-
macro-agent's MCP server shrinks from ~10 tools to 2. Task tools (`create_task`, `assign_task`, `claim_task`, etc.) are removed — opentasks' `task` tool handles all of these with richer semantics (dependencies, providers, ready queries).
|
|
435
|
-
|
|
436
|
-
### 8. agent-inbox Embedding (Hybrid)
|
|
437
|
-
|
|
438
|
-
agent-inbox is embedded in-process for macro-agent's direct event access, with IPC server running for agent subprocesses.
|
|
439
|
-
|
|
440
|
-
```
|
|
441
|
-
┌─────────────────────────────────────────┐
|
|
442
|
-
│ macro-agent process │
|
|
443
|
-
│ │
|
|
444
|
-
│ ┌──────────────────────────────────┐ │
|
|
445
|
-
│ │ agent-inbox (embedded) │ │
|
|
446
|
-
│ │ - MessageRouter │ │
|
|
447
|
-
│ │ - Storage (SQLite) │ │
|
|
448
|
-
│ │ - Traceability │ │
|
|
449
|
-
│ │ - PushNotifier │ │
|
|
450
|
-
│ │ - IpcServer ◄────────────────────┼───┼── MCP subprocess connects via socket
|
|
451
|
-
│ │ - Federation (optional) │ │
|
|
452
|
-
│ └──────────────────┬───────────────┘ │
|
|
453
|
-
│ │ │
|
|
454
|
-
│ inbox.events ────┤ │
|
|
455
|
-
│ (in-process, │ │
|
|
456
|
-
│ zero-latency) │ │
|
|
457
|
-
│ ▼ │
|
|
458
|
-
│ ┌──────────────────────────────────┐ │
|
|
459
|
-
│ │ InboxAdapter │ │
|
|
460
|
-
│ │ - Signal filtering │ │
|
|
461
|
-
│ │ - Emission validation │ │
|
|
462
|
-
│ │ - Delivery → WakeManager │ │
|
|
463
|
-
│ └──────────────────────────────────┘ │
|
|
464
|
-
└──────────────────────────────────────────┘
|
|
465
|
-
```
|
|
466
|
-
|
|
467
|
-
**Why hybrid:**
|
|
468
|
-
- macro-agent needs zero-latency event subscription (`inbox.message`) for wake decisions
|
|
469
|
-
- Agent MCP subprocesses run in separate processes — they connect via IPC socket
|
|
470
|
-
- agent-inbox already supports this: `createAgentInbox()` starts IPC server when `socketPath` is set
|
|
471
|
-
- Single SQLite database for inbox state, accessible from both paths
|
|
472
|
-
|
|
473
|
-
## Migration Plan
|
|
474
|
-
|
|
475
|
-
### Phase 1: Foundation
|
|
476
|
-
|
|
477
|
-
Create adapter interfaces and AgentStore. These can be built and tested independently.
|
|
478
|
-
|
|
479
|
-
1. `src/adapters/types.ts` — Interface definitions
|
|
480
|
-
2. `src/adapters/inbox-adapter.ts` — Wraps `createAgentInbox()`
|
|
481
|
-
3. `src/adapters/tasks-adapter.ts` — Wraps `OpenTasksClient`
|
|
482
|
-
4. `src/agent/agent-store.ts` — Minimal SQLite store
|
|
483
|
-
5. Unit tests for all four
|
|
484
|
-
|
|
485
|
-
### Phase 2: Agent Manager Rewrite
|
|
486
|
-
|
|
487
|
-
Rewrite `AgentManager` to use adapters instead of EventStore/MessageRouter.
|
|
488
|
-
|
|
489
|
-
1. Replace EventStore dependency → AgentStore
|
|
490
|
-
2. Replace MessageRouter dependency → InboxAdapter
|
|
491
|
-
3. Replace TaskBackend dependency → TasksAdapter
|
|
492
|
-
4. Update spawn flow (see Section 4)
|
|
493
|
-
5. Update terminate flow (merge request on terminate)
|
|
494
|
-
6. Integration tests
|
|
495
|
-
|
|
496
|
-
### Phase 3: Team Runtime Rewrite
|
|
497
|
-
|
|
498
|
-
Rewire team-runtime to use inbox scopes and adapter-side policy.
|
|
499
|
-
|
|
500
|
-
1. Bootstrap creates inbox scope per team
|
|
501
|
-
2. Signal filter + emission validator installed on InboxAdapter
|
|
502
|
-
3. Channel config → thread tag conventions
|
|
503
|
-
4. Remove MERGE_REQUEST polling loop (handled by terminate flow)
|
|
504
|
-
5. Integration tests
|
|
505
|
-
|
|
506
|
-
### Phase 4: Lifecycle & Done Handlers
|
|
507
|
-
|
|
508
|
-
Simplify done handlers to delegate to adapters.
|
|
509
|
-
|
|
510
|
-
1. `done()` → tasksAdapter.transitionTask + inboxAdapter.send + terminate
|
|
511
|
-
2. Worker done handler loses branch reading / merge request construction
|
|
512
|
-
3. Integrator done handler talks to workspace manager directly
|
|
513
|
-
4. Integration tests
|
|
514
|
-
|
|
515
|
-
### Phase 5: Trigger System Rewire
|
|
516
|
-
|
|
517
|
-
Reconnect trigger system to inbox delivery events.
|
|
518
|
-
|
|
519
|
-
1. WakeManager receives from InboxAdapter.onDelivery
|
|
520
|
-
2. TriggerRouter queries AgentStore instead of EventStore
|
|
521
|
-
3. Remove EventStore dependency from routing strategies
|
|
522
|
-
4. Integration tests
|
|
523
|
-
|
|
524
|
-
### Phase 6: MCP & Tool Surface
|
|
525
|
-
|
|
526
|
-
Reconfigure per-agent MCP tool mounting.
|
|
527
|
-
|
|
528
|
-
1. Mount agent-inbox MCP tools via IPC
|
|
529
|
-
2. Mount opentasks MCP tools via IPC
|
|
530
|
-
3. Shrink macro-agent's MCP server to `done` + `inject_context`
|
|
531
|
-
4. Remove all task/message tools from macro-agent
|
|
532
|
-
5. E2E tests
|
|
533
|
-
|
|
534
|
-
### Phase 7: Delete Dead Code
|
|
535
|
-
|
|
536
|
-
Remove replaced modules.
|
|
537
|
-
|
|
538
|
-
1. Delete `src/router/`
|
|
539
|
-
2. Delete `src/map/`
|
|
540
|
-
3. Delete `src/task/`
|
|
541
|
-
4. Delete `src/store/`
|
|
542
|
-
5. Delete `src/steering/`
|
|
543
|
-
6. Update imports, CLAUDE.md, package.json dependencies
|
|
544
|
-
7. Full test suite pass
|
|
545
|
-
|
|
546
|
-
## Risks & Mitigations
|
|
547
|
-
|
|
548
|
-
| Risk | Impact | Mitigation |
|
|
549
|
-
|------|--------|------------|
|
|
550
|
-
| agent-inbox IPC latency for MCP subprocesses | Slower tool calls vs current in-process | Benchmark; inbox calls are infrequent relative to agent computation |
|
|
551
|
-
| opentasks daemon not running | Boot failure | `autoConnect: true` auto-starts; macro-agent verifies on boot |
|
|
552
|
-
| Signal filter/emission validation logic drift | Team policies not enforced | Adapter-side enforcement is tested independently; same YAML config |
|
|
553
|
-
| Cross-process SQLite contention (inbox) | Write conflicts | agent-inbox uses WAL mode; writes are low-frequency |
|
|
554
|
-
| Large migration surface | Regression risk | Phase-by-phase with integration tests at each phase |
|
|
555
|
-
|
|
556
|
-
## Dependencies
|
|
557
|
-
|
|
558
|
-
### New (hard)
|
|
559
|
-
|
|
560
|
-
- `agent-inbox` — Messaging, threading, federation
|
|
561
|
-
- `opentasks` — Task graph, dependencies, providers, claiming
|
|
562
|
-
|
|
563
|
-
### Removed
|
|
564
|
-
|
|
565
|
-
- `tinybase` — Was used by EventStore
|
|
566
|
-
- Any EventStore-specific dependencies
|
|
567
|
-
|
|
568
|
-
### Kept
|
|
569
|
-
|
|
570
|
-
- `acp-factory` — Agent process management
|
|
571
|
-
- `better-sqlite3` — Used by AgentStore (and agent-inbox internally)
|
|
572
|
-
- `nanoid` — ID generation
|
|
573
|
-
|
|
574
|
-
## Implementation Status
|
|
575
|
-
|
|
576
|
-
All V2 modules are implemented and tested. They live alongside V1 code — no V1 code was deleted.
|
|
577
|
-
|
|
578
|
-
### V2 Files Created
|
|
579
|
-
|
|
580
|
-
| File | Tests | Purpose |
|
|
581
|
-
|------|-------|---------|
|
|
582
|
-
| `src/adapters/types.ts` | — | InboxAdapter + TasksAdapter interfaces |
|
|
583
|
-
| `src/adapters/inbox-adapter.ts` | 19 tests | Embedded agent-inbox with adapter-side policy |
|
|
584
|
-
| `src/adapters/tasks-adapter.ts` | 18 tests | Opentasks client wrapper |
|
|
585
|
-
| `src/adapters/index.ts` | — | Public exports |
|
|
586
|
-
| `src/agent/agent-store.ts` | 28 tests | Minimal SQLite store (2 tables) |
|
|
587
|
-
| `src/agent/agent-manager-v2.ts` | 33 tests | AgentManager using adapters |
|
|
588
|
-
| `src/teams/team-runtime-v2.ts` | 17 tests | Team runtime using inbox scopes |
|
|
589
|
-
| `src/lifecycle/handlers-v2.ts` | 17 tests | Simplified done handlers |
|
|
590
|
-
| `src/mcp/tools/done-v2.ts` | — | Done tool using adapters |
|
|
591
|
-
| `src/mcp/mcp-server-v2.ts` | 6 tests | 5-tool MCP server (was 12) |
|
|
592
|
-
| `src/trigger/trigger-system-v2.ts` | 10 tests | Inbox→wake integration |
|
|
593
|
-
| `src/boot-v2.ts` | 6 tests | Full system wiring |
|
|
594
|
-
|
|
595
|
-
**Total: 154 new tests, 0 regressions to existing 3596 tests.**
|
|
596
|
-
|
|
597
|
-
### V1 → V2 Supersession Map
|
|
598
|
-
|
|
599
|
-
When ready to cut over, delete V1 modules and update imports:
|
|
600
|
-
|
|
601
|
-
| V1 Module (delete) | V2 Replacement | Notes |
|
|
602
|
-
|---------------------|----------------|-------|
|
|
603
|
-
| `src/store/` (~2500 lines) | `src/agent/agent-store.ts` (~280 lines) | Event sourcing → simple CRUD |
|
|
604
|
-
| `src/router/` (~2000 lines) | `src/adapters/inbox-adapter.ts` | MessageRouter → agent-inbox |
|
|
605
|
-
| `src/map/` (~1500 lines) | agent-inbox federation | MAP adapter → agent-inbox handles MAP |
|
|
606
|
-
| `src/task/` (~1500 lines) | `src/adapters/tasks-adapter.ts` | TaskBackend → opentasks client |
|
|
607
|
-
| `src/steering/` (~200 lines) | InboxAdapter.send() with importance | inject → inbox message |
|
|
608
|
-
| `src/mail/` (~800 lines) | agent-inbox traceability | Conversations → agent-inbox auto-tracks |
|
|
609
|
-
| `src/agent/agent-manager.ts` (V1 impl) | `src/agent/agent-manager-v2.ts` | Keep interface, swap impl |
|
|
610
|
-
| `src/teams/team-runtime.ts` (V1) | `src/teams/team-runtime-v2.ts` | Drop EventStore/MessageRouter deps |
|
|
611
|
-
| `src/lifecycle/handlers/` (V1) | `src/lifecycle/handlers-v2.ts` | Drop MessageRouter, simplify worker |
|
|
612
|
-
| `src/mcp/mcp-server.ts` (V1) | `src/mcp/mcp-server-v2.ts` | 12 tools → 5 tools |
|
|
613
|
-
| `src/mcp/tools/done.ts` (V1) | `src/mcp/tools/done-v2.ts` | Drop EventStore/TaskManager deps |
|
|
614
|
-
| `src/trigger/trigger-system.ts` (V1) | `src/trigger/trigger-system-v2.ts` | Drop EventStore/MessageRouter |
|
|
615
|
-
|
|
616
|
-
### Cutover Checklist
|
|
617
|
-
|
|
618
|
-
To complete the migration (swap V1 → V2 as primary):
|
|
619
|
-
|
|
620
|
-
1. Update `src/cli/index.ts` to use `bootV2()` instead of V1 server setup
|
|
621
|
-
2. Update `src/api/server.ts` to use V2 services
|
|
622
|
-
3. Update `src/acp/macro-agent.ts` to use V2 AgentManager + adapters
|
|
623
|
-
4. Rename V2 files to drop `-v2` suffix (or update all imports)
|
|
624
|
-
5. Delete V1 modules listed in supersession map above
|
|
625
|
-
6. Remove `tinybase` from dependencies
|
|
626
|
-
7. Update CLAUDE.md with new architecture
|
|
627
|
-
8. Run full test suite — V1 tests that test deleted modules will be removed
|