macro-agent 0.1.2 → 0.1.3
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/.gitattributes +3 -0
- package/.opentasks/config.json +9 -0
- package/CLAUDE.md +432 -206
- package/README.md +129 -371
- package/dist/acp/index.d.ts +9 -51
- package/dist/acp/index.d.ts.map +1 -1
- package/dist/acp/index.js +5 -46
- package/dist/acp/index.js.map +1 -1
- package/dist/acp/macro-agent.d.ts +28 -255
- package/dist/acp/macro-agent.d.ts.map +1 -1
- package/dist/acp/macro-agent.js +593 -1231
- package/dist/acp/macro-agent.js.map +1 -1
- package/dist/acp/map-bridge.d.ts +62 -0
- package/dist/acp/map-bridge.d.ts.map +1 -0
- package/dist/acp/map-bridge.js +123 -0
- package/dist/acp/map-bridge.js.map +1 -0
- package/dist/acp/session-mapper.d.ts +29 -126
- package/dist/acp/session-mapper.d.ts.map +1 -1
- package/dist/acp/session-mapper.js +36 -234
- package/dist/acp/session-mapper.js.map +1 -1
- package/dist/acp/types.d.ts +24 -535
- package/dist/acp/types.d.ts.map +1 -1
- package/dist/acp/types.js +7 -7
- package/dist/acp/types.js.map +1 -1
- package/dist/acp/websocket-server.d.ts +16 -136
- package/dist/acp/websocket-server.d.ts.map +1 -1
- package/dist/acp/websocket-server.js +131 -371
- package/dist/acp/websocket-server.js.map +1 -1
- package/dist/adapters/federation.d.ts +76 -0
- package/dist/adapters/federation.d.ts.map +1 -0
- package/dist/adapters/federation.js +120 -0
- package/dist/adapters/federation.js.map +1 -0
- package/dist/adapters/inbox-adapter.d.ts +72 -0
- package/dist/adapters/inbox-adapter.d.ts.map +1 -0
- package/dist/adapters/inbox-adapter.js +196 -0
- package/dist/adapters/inbox-adapter.js.map +1 -0
- package/dist/adapters/inbox-client-adapter.d.ts +40 -0
- package/dist/adapters/inbox-client-adapter.d.ts.map +1 -0
- package/dist/adapters/inbox-client-adapter.js +135 -0
- package/dist/adapters/inbox-client-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +10 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/opentasks-daemon.d.ts +32 -0
- package/dist/adapters/opentasks-daemon.d.ts.map +1 -0
- package/dist/adapters/opentasks-daemon.js +190 -0
- package/dist/adapters/opentasks-daemon.js.map +1 -0
- package/dist/adapters/tasks-adapter.d.ts +49 -0
- package/dist/adapters/tasks-adapter.d.ts.map +1 -0
- package/dist/adapters/tasks-adapter.js +209 -0
- package/dist/adapters/tasks-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +198 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +13 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/agent/agent-manager-v2.d.ts +38 -0
- package/dist/agent/agent-manager-v2.d.ts.map +1 -0
- package/dist/agent/agent-manager-v2.js +1097 -0
- package/dist/agent/agent-manager-v2.js.map +1 -0
- package/dist/agent/agent-manager.d.ts +52 -42
- package/dist/agent/agent-manager.d.ts.map +1 -1
- package/dist/agent/agent-manager.js +11 -1318
- package/dist/agent/agent-manager.js.map +1 -1
- package/dist/agent/agent-store.d.ts +89 -0
- package/dist/agent/agent-store.d.ts.map +1 -0
- package/dist/agent/agent-store.js +279 -0
- package/dist/agent/agent-store.js.map +1 -0
- package/dist/api/index.d.ts +5 -3
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -3
- package/dist/api/index.js.map +1 -1
- package/dist/api/server.d.ts +6 -127
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +235 -1574
- package/dist/api/server.js.map +1 -1
- package/dist/api/types.d.ts +20 -248
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +3 -1
- package/dist/api/types.js.map +1 -1
- package/dist/boot-v2.d.ts +165 -0
- package/dist/boot-v2.d.ts.map +1 -0
- package/dist/boot-v2.js +315 -0
- package/dist/boot-v2.js.map +1 -0
- package/dist/cli/acp.d.ts +6 -28
- package/dist/cli/acp.d.ts.map +1 -1
- package/dist/cli/acp.js +38 -442
- package/dist/cli/acp.js.map +1 -1
- package/dist/cli/index.d.ts +1 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +65 -453
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp.d.ts +18 -8
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +231 -301
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cognitive/analyst-role.d.ts +13 -0
- package/dist/cognitive/analyst-role.d.ts.map +1 -0
- package/dist/cognitive/analyst-role.js +48 -0
- package/dist/cognitive/analyst-role.js.map +1 -0
- package/dist/cognitive/index.d.ts +18 -0
- package/dist/cognitive/index.d.ts.map +1 -0
- package/dist/cognitive/index.js +21 -0
- package/dist/cognitive/index.js.map +1 -0
- package/dist/cognitive/macro-agent-backend.d.ts +40 -0
- package/dist/cognitive/macro-agent-backend.d.ts.map +1 -0
- package/dist/cognitive/macro-agent-backend.js +290 -0
- package/dist/cognitive/macro-agent-backend.js.map +1 -0
- package/dist/cognitive/session-converter.d.ts +30 -0
- package/dist/cognitive/session-converter.d.ts.map +1 -0
- package/dist/cognitive/session-converter.js +119 -0
- package/dist/cognitive/session-converter.js.map +1 -0
- package/dist/cognitive/types.d.ts +129 -0
- package/dist/cognitive/types.d.ts.map +1 -0
- package/dist/cognitive/types.js +12 -0
- package/dist/cognitive/types.js.map +1 -0
- package/dist/cognitive/workspace-handler.d.ts +46 -0
- package/dist/cognitive/workspace-handler.d.ts.map +1 -0
- package/dist/cognitive/workspace-handler.js +135 -0
- package/dist/cognitive/workspace-handler.js.map +1 -0
- package/dist/control/control-client.d.ts +63 -0
- package/dist/control/control-client.d.ts.map +1 -0
- package/dist/control/control-client.js +276 -0
- package/dist/control/control-client.js.map +1 -0
- package/dist/control/control-server.d.ts +46 -0
- package/dist/control/control-server.d.ts.map +1 -0
- package/dist/control/control-server.js +237 -0
- package/dist/control/control-server.js.map +1 -0
- package/dist/control/index.d.ts +9 -0
- package/dist/control/index.d.ts.map +1 -0
- package/dist/control/index.js +8 -0
- package/dist/control/index.js.map +1 -0
- package/dist/control/types.d.ts +64 -0
- package/dist/control/types.d.ts.map +1 -0
- package/dist/control/types.js +10 -0
- package/dist/control/types.js.map +1 -0
- package/dist/index.d.ts +14 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -34
- package/dist/index.js.map +1 -1
- package/dist/integrations/context-builder.d.ts +49 -0
- package/dist/integrations/context-builder.d.ts.map +1 -0
- package/dist/integrations/context-builder.js +160 -0
- package/dist/integrations/context-builder.js.map +1 -0
- package/dist/integrations/sessionlog.d.ts +58 -0
- package/dist/integrations/sessionlog.d.ts.map +1 -0
- package/dist/integrations/sessionlog.js +152 -0
- package/dist/integrations/sessionlog.js.map +1 -0
- package/dist/integrations/skilltree.d.ts +53 -0
- package/dist/integrations/skilltree.d.ts.map +1 -0
- package/dist/integrations/skilltree.js +140 -0
- package/dist/integrations/skilltree.js.map +1 -0
- package/dist/lifecycle/cleanup.d.ts +5 -14
- package/dist/lifecycle/cleanup.d.ts.map +1 -1
- package/dist/lifecycle/cleanup.js +4 -34
- package/dist/lifecycle/cleanup.js.map +1 -1
- package/dist/lifecycle/handlers-v2.d.ts +33 -0
- package/dist/lifecycle/handlers-v2.d.ts.map +1 -0
- package/dist/lifecycle/handlers-v2.js +319 -0
- package/dist/lifecycle/handlers-v2.js.map +1 -0
- package/dist/lifecycle/index.d.ts +3 -5
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/index.js +3 -12
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/map/acp-bridge.d.ts +39 -0
- package/dist/map/acp-bridge.d.ts.map +1 -0
- package/dist/map/acp-bridge.js +180 -0
- package/dist/map/acp-bridge.js.map +1 -0
- package/dist/map/cc-swarm-hooks.d.ts +36 -0
- package/dist/map/cc-swarm-hooks.d.ts.map +1 -0
- package/dist/map/cc-swarm-hooks.js +218 -0
- package/dist/map/cc-swarm-hooks.js.map +1 -0
- package/dist/map/coordination-handler.d.ts +36 -0
- package/dist/map/coordination-handler.d.ts.map +1 -0
- package/dist/map/coordination-handler.js +166 -0
- package/dist/map/coordination-handler.js.map +1 -0
- package/dist/map/index.d.ts +5 -10
- package/dist/map/index.d.ts.map +1 -1
- package/dist/map/index.js +4 -13
- package/dist/map/index.js.map +1 -1
- package/dist/map/lifecycle-bridge.d.ts +34 -0
- package/dist/map/lifecycle-bridge.d.ts.map +1 -0
- package/dist/map/lifecycle-bridge.js +96 -0
- package/dist/map/lifecycle-bridge.js.map +1 -0
- package/dist/map/server.d.ts +38 -0
- package/dist/map/server.d.ts.map +1 -0
- package/dist/map/server.js +461 -0
- package/dist/map/server.js.map +1 -0
- package/dist/map/sidecar.d.ts +24 -0
- package/dist/map/sidecar.d.ts.map +1 -0
- package/dist/map/sidecar.js +263 -0
- package/dist/map/sidecar.js.map +1 -0
- package/dist/map/task-bridge.d.ts +22 -0
- package/dist/map/task-bridge.d.ts.map +1 -0
- package/dist/map/task-bridge.js +67 -0
- package/dist/map/task-bridge.js.map +1 -0
- package/dist/map/trajectory-reporter.d.ts +24 -0
- package/dist/map/trajectory-reporter.d.ts.map +1 -0
- package/dist/map/trajectory-reporter.js +86 -0
- package/dist/map/trajectory-reporter.js.map +1 -0
- package/dist/map/types.d.ts +162 -226
- package/dist/map/types.d.ts.map +1 -1
- package/dist/map/types.js +6 -165
- package/dist/map/types.js.map +1 -1
- package/dist/mcp/index.d.ts +2 -2
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +2 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/mcp-server-v2.d.ts +44 -0
- package/dist/mcp/mcp-server-v2.d.ts.map +1 -0
- package/dist/mcp/mcp-server-v2.js +376 -0
- package/dist/mcp/mcp-server-v2.js.map +1 -0
- package/dist/mcp/tools/done-v2.d.ts +57 -0
- package/dist/mcp/tools/done-v2.d.ts.map +1 -0
- package/dist/mcp/tools/done-v2.js +129 -0
- package/dist/mcp/tools/done-v2.js.map +1 -0
- package/dist/metrics/index.d.ts +7 -1
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +6 -1
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/metrics.d.ts +9 -70
- package/dist/metrics/metrics.d.ts.map +1 -1
- package/dist/metrics/metrics.js +89 -145
- package/dist/metrics/metrics.js.map +1 -1
- package/dist/metrics/types.d.ts +44 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/metrics/types.js +7 -0
- package/dist/metrics/types.js.map +1 -0
- package/dist/store/index.d.ts +3 -6
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +3 -21
- package/dist/store/index.js.map +1 -1
- package/dist/store/types/events.d.ts +3 -60
- package/dist/store/types/events.d.ts.map +1 -1
- package/dist/store/types/events.js +3 -46
- package/dist/store/types/events.js.map +1 -1
- package/dist/store/types/index.d.ts +0 -3
- package/dist/store/types/index.d.ts.map +1 -1
- package/dist/store/types/index.js +0 -3
- package/dist/store/types/index.js.map +1 -1
- package/dist/teams/index.d.ts +0 -2
- package/dist/teams/index.d.ts.map +1 -1
- package/dist/teams/index.js +0 -2
- package/dist/teams/index.js.map +1 -1
- package/dist/teams/team-manager-v2.d.ts +87 -0
- package/dist/teams/team-manager-v2.d.ts.map +1 -0
- package/dist/teams/team-manager-v2.js +203 -0
- package/dist/teams/team-manager-v2.js.map +1 -0
- package/dist/teams/team-runtime-v2.d.ts +149 -0
- package/dist/teams/team-runtime-v2.d.ts.map +1 -0
- package/dist/teams/team-runtime-v2.js +741 -0
- package/dist/teams/team-runtime-v2.js.map +1 -0
- package/dist/trigger/index.d.ts +2 -2
- package/dist/trigger/index.d.ts.map +1 -1
- package/dist/trigger/index.js +4 -4
- package/dist/trigger/index.js.map +1 -1
- package/dist/trigger/sources/cron/cron-service.d.ts +1 -1
- package/dist/trigger/sources/cron/cron-service.d.ts.map +1 -1
- package/dist/trigger/sources/webhook/webhook-handler.d.ts +1 -1
- package/dist/trigger/sources/webhook/webhook-handler.d.ts.map +1 -1
- package/dist/trigger/strategies/ai-router.d.ts +31 -0
- package/dist/trigger/strategies/ai-router.d.ts.map +1 -0
- package/dist/trigger/strategies/ai-router.js +132 -0
- package/dist/trigger/strategies/ai-router.js.map +1 -0
- package/dist/trigger/trigger-system-v2.d.ts +106 -0
- package/dist/trigger/trigger-system-v2.d.ts.map +1 -0
- package/dist/trigger/trigger-system-v2.js +347 -0
- package/dist/trigger/trigger-system-v2.js.map +1 -0
- package/dist/trigger/types.d.ts +8 -0
- package/dist/trigger/types.d.ts.map +1 -1
- package/dist/trigger/types.js.map +1 -1
- package/dist/workspace/strategies/optimistic.d.ts +13 -3
- package/dist/workspace/strategies/optimistic.d.ts.map +1 -1
- package/dist/workspace/strategies/optimistic.js +4 -4
- package/dist/workspace/strategies/optimistic.js.map +1 -1
- package/docs/design-subsystem-extraction.md +627 -0
- package/docs/lifecycle-events-design.md +111 -0
- package/docs/openhive-capability-summary.md +415 -0
- package/docs/openhive-integration.md +415 -0
- package/docs/roadmap-v2-gaps.md +216 -0
- package/package.json +26 -7
- package/src/__tests__/boot-v2.test.ts +196 -0
- package/src/__tests__/e2e/acp-over-map-live.e2e.test.ts +496 -0
- package/src/__tests__/e2e/acp-over-map.e2e.test.ts +365 -0
- package/src/__tests__/e2e/agent-lifecycle.e2e.test.ts +770 -0
- package/src/__tests__/e2e/cc-swarm-bridge.e2e.test.ts +253 -0
- package/src/__tests__/e2e/cognitive-workspace.e2e.test.ts +282 -0
- package/src/__tests__/e2e/done-scenarios.e2e.test.ts +322 -0
- package/src/__tests__/e2e/live-agent.e2e.test.ts +1330 -0
- package/src/__tests__/e2e/map-server.e2e.test.ts +128 -0
- package/src/__tests__/e2e/map-sidecar.e2e.test.ts +139 -0
- package/src/__tests__/e2e/opentasks-integration.e2e.test.ts +280 -0
- package/src/__tests__/e2e/pull-mode.e2e.test.ts +632 -0
- package/src/__tests__/e2e/resume-continue.e2e.test.ts +312 -0
- package/src/__tests__/e2e/swarmkit-integration.e2e.test.ts +562 -0
- package/src/__tests__/e2e/swarmkit-live.e2e.test.ts +1049 -0
- package/src/__tests__/e2e/trajectory-tracking.e2e.test.ts +258 -0
- package/src/__tests__/e2e/trigger-wake.e2e.test.ts +257 -0
- package/src/__tests__/e2e/workspace-lifecycle.e2e.test.ts +375 -0
- package/src/acp/__tests__/macro-agent.test.ts +234 -945
- package/src/acp/__tests__/session-mapper.test.ts +82 -155
- package/src/acp/__tests__/websocket-server.test.ts +121 -270
- package/src/acp/index.ts +18 -118
- package/src/acp/macro-agent.ts +692 -1752
- package/src/acp/map-bridge.ts +193 -0
- package/src/acp/session-mapper.ts +43 -276
- package/src/acp/types.ts +39 -767
- package/src/acp/websocket-server.ts +152 -588
- package/src/adapters/__tests__/federation.test.ts +256 -0
- package/src/adapters/__tests__/inbox-adapter.test.ts +316 -0
- package/src/adapters/__tests__/tasks-adapter.test.ts +269 -0
- package/src/adapters/federation.ts +185 -0
- package/src/adapters/inbox-adapter.ts +292 -0
- package/src/adapters/inbox-client-adapter.ts +173 -0
- package/src/adapters/index.ts +44 -0
- package/src/adapters/opentasks-daemon.ts +252 -0
- package/src/adapters/tasks-adapter.ts +327 -0
- package/src/adapters/types.ts +285 -0
- package/src/agent/__tests__/agent-manager-v2.test.ts +554 -0
- package/src/agent/__tests__/agent-store.test.ts +413 -0
- package/src/agent/agent-manager-v2.ts +1476 -0
- package/src/agent/agent-manager.ts +41 -1794
- package/src/agent/agent-store.ts +385 -0
- package/src/api/__tests__/server.test.ts +235 -1157
- package/src/api/index.ts +5 -3
- package/src/api/server.ts +270 -1989
- package/src/api/types.ts +25 -339
- package/src/boot-v2.ts +527 -0
- package/src/cli/acp.ts +38 -500
- package/src/cli/index.ts +68 -470
- package/src/cli/mcp.ts +260 -340
- package/src/cognitive/__tests__/macro-agent-backend.test.ts +478 -0
- package/src/cognitive/__tests__/session-converter.test.ts +423 -0
- package/src/cognitive/__tests__/workspace-handler.test.ts +221 -0
- package/src/cognitive/analyst-role.ts +59 -0
- package/src/cognitive/index.ts +49 -0
- package/src/cognitive/macro-agent-backend.ts +354 -0
- package/src/cognitive/session-converter.ts +151 -0
- package/src/cognitive/types.ts +163 -0
- package/src/cognitive/workspace-handler.ts +163 -0
- package/src/control/__tests__/control-resilience.test.ts +251 -0
- package/src/control/__tests__/control-socket.test.ts +240 -0
- package/src/control/control-client.ts +337 -0
- package/src/control/control-server.ts +298 -0
- package/src/control/index.ts +17 -0
- package/src/control/types.ts +95 -0
- package/src/index.ts +42 -224
- package/src/integrations/__tests__/context-builder.test.ts +218 -0
- package/src/integrations/__tests__/sessionlog.test.ts +498 -0
- package/src/integrations/__tests__/skilltree.test.ts +136 -0
- package/src/integrations/context-builder.ts +280 -0
- package/src/integrations/sessionlog.ts +194 -0
- package/src/integrations/skilltree.ts +183 -0
- package/src/lifecycle/__tests__/handlers-v2.test.ts +565 -0
- package/src/lifecycle/cleanup.ts +6 -46
- package/src/lifecycle/handlers-v2.ts +437 -0
- package/src/lifecycle/index.ts +2 -28
- package/src/map/__tests__/lifecycle-bridge.test.ts +223 -0
- package/src/map/__tests__/permission-forwarding.test.ts +143 -0
- package/src/map/__tests__/sidecar-integration.test.ts +190 -0
- package/src/map/__tests__/task-bridge.test.ts +153 -0
- package/src/map/__tests__/trajectory-reporter.test.ts +173 -0
- package/src/map/acp-bridge.ts +270 -0
- package/src/map/cc-swarm-hooks.ts +242 -0
- package/src/map/coordination-handler.ts +220 -0
- package/src/map/index.ts +13 -14
- package/src/map/lifecycle-bridge.ts +140 -0
- package/src/map/server.ts +527 -0
- package/src/map/sidecar.ts +312 -0
- package/src/map/task-bridge.ts +89 -0
- package/src/map/trajectory-reporter.ts +124 -0
- package/src/map/types.ts +195 -367
- package/src/mcp/__tests__/mcp-server-v2.test.ts +236 -0
- package/src/mcp/index.ts +2 -2
- package/src/mcp/mcp-server-v2.ts +485 -0
- package/src/mcp/tools/done-v2.ts +203 -0
- package/src/metrics/__tests__/metrics.test.ts +205 -0
- package/src/metrics/index.ts +13 -9
- package/src/metrics/metrics.ts +110 -239
- package/src/metrics/types.ts +63 -0
- package/src/store/index.ts +3 -64
- package/src/store/types/events.ts +5 -100
- package/src/store/types/index.ts +0 -3
- package/src/teams/__tests__/team-manager-v2.test.ts +425 -0
- package/src/teams/__tests__/team-runtime-v2.test.ts +402 -0
- package/src/teams/index.ts +0 -2
- package/src/teams/team-manager-v2.ts +268 -0
- package/src/teams/team-runtime-v2.ts +898 -0
- package/src/trigger/__tests__/trigger-system-v2.test.ts +257 -0
- package/src/trigger/index.ts +16 -31
- package/src/trigger/sources/cron/cron-service.ts +1 -1
- package/src/trigger/sources/webhook/webhook-handler.ts +1 -1
- package/src/trigger/strategies/ai-router.ts +170 -0
- package/src/trigger/trigger-system-v2.ts +536 -0
- package/src/trigger/types.ts +13 -0
- package/src/workspace/strategies/optimistic.ts +9 -6
- package/.claude/settings.local.json +0 -61
- package/dist/acp/websocket-stream.d.ts +0 -30
- package/dist/acp/websocket-stream.d.ts.map +0 -1
- package/dist/acp/websocket-stream.js +0 -118
- package/dist/acp/websocket-stream.js.map +0 -1
- package/dist/activity/deduplication.d.ts +0 -85
- package/dist/activity/deduplication.d.ts.map +0 -1
- package/dist/activity/deduplication.js +0 -149
- package/dist/activity/deduplication.js.map +0 -1
- package/dist/activity/index.d.ts +0 -16
- package/dist/activity/index.d.ts.map +0 -1
- package/dist/activity/index.js +0 -17
- package/dist/activity/index.js.map +0 -1
- package/dist/activity/relevance.d.ts +0 -81
- package/dist/activity/relevance.d.ts.map +0 -1
- package/dist/activity/relevance.js +0 -161
- package/dist/activity/relevance.js.map +0 -1
- package/dist/activity/types.d.ts +0 -169
- package/dist/activity/types.d.ts.map +0 -1
- package/dist/activity/types.js +0 -33
- package/dist/activity/types.js.map +0 -1
- package/dist/activity/watcher.d.ts +0 -64
- package/dist/activity/watcher.d.ts.map +0 -1
- package/dist/activity/watcher.js +0 -212
- package/dist/activity/watcher.js.map +0 -1
- package/dist/agent/wake.d.ts +0 -85
- package/dist/agent/wake.d.ts.map +0 -1
- package/dist/agent/wake.js +0 -278
- package/dist/agent/wake.js.map +0 -1
- package/dist/lifecycle/handlers/generic.d.ts +0 -27
- package/dist/lifecycle/handlers/generic.d.ts.map +0 -1
- package/dist/lifecycle/handlers/generic.js +0 -56
- package/dist/lifecycle/handlers/generic.js.map +0 -1
- package/dist/lifecycle/handlers/index.d.ts +0 -51
- package/dist/lifecycle/handlers/index.d.ts.map +0 -1
- package/dist/lifecycle/handlers/index.js +0 -110
- package/dist/lifecycle/handlers/index.js.map +0 -1
- package/dist/lifecycle/handlers/integrator.d.ts +0 -81
- package/dist/lifecycle/handlers/integrator.d.ts.map +0 -1
- package/dist/lifecycle/handlers/integrator.js +0 -451
- package/dist/lifecycle/handlers/integrator.js.map +0 -1
- package/dist/lifecycle/handlers/monitor.d.ts +0 -29
- package/dist/lifecycle/handlers/monitor.d.ts.map +0 -1
- package/dist/lifecycle/handlers/monitor.js +0 -79
- package/dist/lifecycle/handlers/monitor.js.map +0 -1
- package/dist/lifecycle/handlers/worker.d.ts +0 -56
- package/dist/lifecycle/handlers/worker.d.ts.map +0 -1
- package/dist/lifecycle/handlers/worker.js +0 -381
- package/dist/lifecycle/handlers/worker.js.map +0 -1
- package/dist/mail/conversation-map.d.ts +0 -33
- package/dist/mail/conversation-map.d.ts.map +0 -1
- package/dist/mail/conversation-map.js +0 -61
- package/dist/mail/conversation-map.js.map +0 -1
- package/dist/mail/index.d.ts +0 -11
- package/dist/mail/index.d.ts.map +0 -1
- package/dist/mail/index.js +0 -11
- package/dist/mail/index.js.map +0 -1
- package/dist/mail/mail-service.d.ts +0 -85
- package/dist/mail/mail-service.d.ts.map +0 -1
- package/dist/mail/mail-service.js +0 -121
- package/dist/mail/mail-service.js.map +0 -1
- package/dist/mail/stores/eventstore-conversation-store.d.ts +0 -40
- package/dist/mail/stores/eventstore-conversation-store.d.ts.map +0 -1
- package/dist/mail/stores/eventstore-conversation-store.js +0 -131
- package/dist/mail/stores/eventstore-conversation-store.js.map +0 -1
- package/dist/mail/stores/eventstore-participant-store.d.ts +0 -43
- package/dist/mail/stores/eventstore-participant-store.d.ts.map +0 -1
- package/dist/mail/stores/eventstore-participant-store.js +0 -145
- package/dist/mail/stores/eventstore-participant-store.js.map +0 -1
- package/dist/mail/stores/eventstore-thread-store.d.ts +0 -46
- package/dist/mail/stores/eventstore-thread-store.d.ts.map +0 -1
- package/dist/mail/stores/eventstore-thread-store.js +0 -118
- package/dist/mail/stores/eventstore-thread-store.js.map +0 -1
- package/dist/mail/stores/eventstore-turn-store.d.ts +0 -47
- package/dist/mail/stores/eventstore-turn-store.d.ts.map +0 -1
- package/dist/mail/stores/eventstore-turn-store.js +0 -153
- package/dist/mail/stores/eventstore-turn-store.js.map +0 -1
- package/dist/mail/stores/index.d.ts +0 -12
- package/dist/mail/stores/index.d.ts.map +0 -1
- package/dist/mail/stores/index.js +0 -12
- package/dist/mail/stores/index.js.map +0 -1
- package/dist/mail/stores/types.d.ts +0 -146
- package/dist/mail/stores/types.d.ts.map +0 -1
- package/dist/mail/stores/types.js +0 -13
- package/dist/mail/stores/types.js.map +0 -1
- package/dist/mail/turn-recorder.d.ts +0 -30
- package/dist/mail/turn-recorder.d.ts.map +0 -1
- package/dist/mail/turn-recorder.js +0 -98
- package/dist/mail/turn-recorder.js.map +0 -1
- package/dist/map/adapter/acp-over-map.d.ts +0 -115
- package/dist/map/adapter/acp-over-map.d.ts.map +0 -1
- package/dist/map/adapter/acp-over-map.js +0 -1024
- package/dist/map/adapter/acp-over-map.js.map +0 -1
- package/dist/map/adapter/connection-manager.d.ts +0 -150
- package/dist/map/adapter/connection-manager.d.ts.map +0 -1
- package/dist/map/adapter/connection-manager.js +0 -207
- package/dist/map/adapter/connection-manager.js.map +0 -1
- package/dist/map/adapter/event-log.d.ts +0 -87
- package/dist/map/adapter/event-log.d.ts.map +0 -1
- package/dist/map/adapter/event-log.js +0 -122
- package/dist/map/adapter/event-log.js.map +0 -1
- package/dist/map/adapter/event-translator.d.ts +0 -85
- package/dist/map/adapter/event-translator.d.ts.map +0 -1
- package/dist/map/adapter/event-translator.js +0 -295
- package/dist/map/adapter/event-translator.js.map +0 -1
- package/dist/map/adapter/extensions/agent-detection.d.ts +0 -49
- package/dist/map/adapter/extensions/agent-detection.d.ts.map +0 -1
- package/dist/map/adapter/extensions/agent-detection.js +0 -91
- package/dist/map/adapter/extensions/agent-detection.js.map +0 -1
- package/dist/map/adapter/extensions/agent-lifecycle.d.ts +0 -82
- package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +0 -1
- package/dist/map/adapter/extensions/agent-lifecycle.js +0 -164
- package/dist/map/adapter/extensions/agent-lifecycle.js.map +0 -1
- package/dist/map/adapter/extensions/index.d.ts +0 -92
- package/dist/map/adapter/extensions/index.d.ts.map +0 -1
- package/dist/map/adapter/extensions/index.js +0 -214
- package/dist/map/adapter/extensions/index.js.map +0 -1
- package/dist/map/adapter/extensions/mcp-bridge.d.ts +0 -57
- package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +0 -1
- package/dist/map/adapter/extensions/mcp-bridge.js +0 -745
- package/dist/map/adapter/extensions/mcp-bridge.js.map +0 -1
- package/dist/map/adapter/extensions/rename.d.ts +0 -29
- package/dist/map/adapter/extensions/rename.d.ts.map +0 -1
- package/dist/map/adapter/extensions/rename.js +0 -49
- package/dist/map/adapter/extensions/rename.js.map +0 -1
- package/dist/map/adapter/extensions/resume.d.ts +0 -47
- package/dist/map/adapter/extensions/resume.d.ts.map +0 -1
- package/dist/map/adapter/extensions/resume.js +0 -59
- package/dist/map/adapter/extensions/resume.js.map +0 -1
- package/dist/map/adapter/extensions/streams.d.ts +0 -95
- package/dist/map/adapter/extensions/streams.d.ts.map +0 -1
- package/dist/map/adapter/extensions/streams.js +0 -515
- package/dist/map/adapter/extensions/streams.js.map +0 -1
- package/dist/map/adapter/extensions/task.d.ts +0 -40
- package/dist/map/adapter/extensions/task.d.ts.map +0 -1
- package/dist/map/adapter/extensions/task.js +0 -197
- package/dist/map/adapter/extensions/task.js.map +0 -1
- package/dist/map/adapter/extensions/update-metadata.d.ts +0 -29
- package/dist/map/adapter/extensions/update-metadata.d.ts.map +0 -1
- package/dist/map/adapter/extensions/update-metadata.js +0 -67
- package/dist/map/adapter/extensions/update-metadata.js.map +0 -1
- package/dist/map/adapter/extensions/wake.d.ts +0 -60
- package/dist/map/adapter/extensions/wake.d.ts.map +0 -1
- package/dist/map/adapter/extensions/wake.js +0 -144
- package/dist/map/adapter/extensions/wake.js.map +0 -1
- package/dist/map/adapter/extensions/workspace-files.d.ts +0 -42
- package/dist/map/adapter/extensions/workspace-files.d.ts.map +0 -1
- package/dist/map/adapter/extensions/workspace-files.js +0 -338
- package/dist/map/adapter/extensions/workspace-files.js.map +0 -1
- package/dist/map/adapter/extensions/workspace.d.ts +0 -57
- package/dist/map/adapter/extensions/workspace.d.ts.map +0 -1
- package/dist/map/adapter/extensions/workspace.js +0 -81
- package/dist/map/adapter/extensions/workspace.js.map +0 -1
- package/dist/map/adapter/index.d.ts +0 -20
- package/dist/map/adapter/index.d.ts.map +0 -1
- package/dist/map/adapter/index.js +0 -40
- package/dist/map/adapter/index.js.map +0 -1
- package/dist/map/adapter/interface.d.ts +0 -450
- package/dist/map/adapter/interface.d.ts.map +0 -1
- package/dist/map/adapter/interface.js +0 -24
- package/dist/map/adapter/interface.js.map +0 -1
- package/dist/map/adapter/mail-handler-adapter.d.ts +0 -27
- package/dist/map/adapter/mail-handler-adapter.d.ts.map +0 -1
- package/dist/map/adapter/mail-handler-adapter.js +0 -292
- package/dist/map/adapter/mail-handler-adapter.js.map +0 -1
- package/dist/map/adapter/map-adapter.d.ts +0 -200
- package/dist/map/adapter/map-adapter.d.ts.map +0 -1
- package/dist/map/adapter/map-adapter.js +0 -1199
- package/dist/map/adapter/map-adapter.js.map +0 -1
- package/dist/map/adapter/rpc-handler.d.ts +0 -263
- package/dist/map/adapter/rpc-handler.d.ts.map +0 -1
- package/dist/map/adapter/rpc-handler.js +0 -365
- package/dist/map/adapter/rpc-handler.js.map +0 -1
- package/dist/map/adapter/subscription-manager.d.ts +0 -174
- package/dist/map/adapter/subscription-manager.d.ts.map +0 -1
- package/dist/map/adapter/subscription-manager.js +0 -248
- package/dist/map/adapter/subscription-manager.js.map +0 -1
- package/dist/map/adapter/types.d.ts +0 -194
- package/dist/map/adapter/types.d.ts.map +0 -1
- package/dist/map/adapter/types.js +0 -27
- package/dist/map/adapter/types.js.map +0 -1
- package/dist/map/adapter/websocket-integration.d.ts +0 -113
- package/dist/map/adapter/websocket-integration.d.ts.map +0 -1
- package/dist/map/adapter/websocket-integration.js +0 -134
- package/dist/map/adapter/websocket-integration.js.map +0 -1
- package/dist/map/federation/envelope.d.ts +0 -98
- package/dist/map/federation/envelope.d.ts.map +0 -1
- package/dist/map/federation/envelope.js +0 -160
- package/dist/map/federation/envelope.js.map +0 -1
- package/dist/map/federation/federation-handler.d.ts +0 -50
- package/dist/map/federation/federation-handler.d.ts.map +0 -1
- package/dist/map/federation/federation-handler.js +0 -306
- package/dist/map/federation/federation-handler.js.map +0 -1
- package/dist/map/federation/index.d.ts +0 -14
- package/dist/map/federation/index.d.ts.map +0 -1
- package/dist/map/federation/index.js +0 -13
- package/dist/map/federation/index.js.map +0 -1
- package/dist/map/federation/types.d.ts +0 -239
- package/dist/map/federation/types.d.ts.map +0 -1
- package/dist/map/federation/types.js +0 -23
- package/dist/map/federation/types.js.map +0 -1
- package/dist/map/utils/address-translation.d.ts +0 -99
- package/dist/map/utils/address-translation.d.ts.map +0 -1
- package/dist/map/utils/address-translation.js +0 -285
- package/dist/map/utils/address-translation.js.map +0 -1
- package/dist/map/utils/index.d.ts +0 -7
- package/dist/map/utils/index.d.ts.map +0 -1
- package/dist/map/utils/index.js +0 -7
- package/dist/map/utils/index.js.map +0 -1
- package/dist/mcp/map-client.d.ts +0 -39
- package/dist/mcp/map-client.d.ts.map +0 -1
- package/dist/mcp/map-client.js +0 -129
- package/dist/mcp/map-client.js.map +0 -1
- package/dist/mcp/mcp-server.d.ts +0 -72
- package/dist/mcp/mcp-server.d.ts.map +0 -1
- package/dist/mcp/mcp-server.js +0 -1024
- package/dist/mcp/mcp-server.js.map +0 -1
- package/dist/mcp/tools/claim_task.d.ts +0 -35
- package/dist/mcp/tools/claim_task.d.ts.map +0 -1
- package/dist/mcp/tools/claim_task.js +0 -58
- package/dist/mcp/tools/claim_task.js.map +0 -1
- package/dist/mcp/tools/done.d.ts +0 -102
- package/dist/mcp/tools/done.d.ts.map +0 -1
- package/dist/mcp/tools/done.js +0 -252
- package/dist/mcp/tools/done.js.map +0 -1
- package/dist/mcp/tools/inject_context.d.ts +0 -61
- package/dist/mcp/tools/inject_context.d.ts.map +0 -1
- package/dist/mcp/tools/inject_context.js +0 -123
- package/dist/mcp/tools/inject_context.js.map +0 -1
- package/dist/mcp/tools/list_claimable_tasks.d.ts +0 -38
- package/dist/mcp/tools/list_claimable_tasks.d.ts.map +0 -1
- package/dist/mcp/tools/list_claimable_tasks.js +0 -63
- package/dist/mcp/tools/list_claimable_tasks.js.map +0 -1
- package/dist/mcp/tools/unclaim_task.d.ts +0 -31
- package/dist/mcp/tools/unclaim_task.d.ts.map +0 -1
- package/dist/mcp/tools/unclaim_task.js +0 -47
- package/dist/mcp/tools/unclaim_task.js.map +0 -1
- package/dist/mcp/tools/wait_for_activity.d.ts +0 -60
- package/dist/mcp/tools/wait_for_activity.d.ts.map +0 -1
- package/dist/mcp/tools/wait_for_activity.js +0 -135
- package/dist/mcp/tools/wait_for_activity.js.map +0 -1
- package/dist/monitor/health-check-service.d.ts +0 -143
- package/dist/monitor/health-check-service.d.ts.map +0 -1
- package/dist/monitor/health-check-service.js +0 -240
- package/dist/monitor/health-check-service.js.map +0 -1
- package/dist/monitor/index.d.ts +0 -14
- package/dist/monitor/index.d.ts.map +0 -1
- package/dist/monitor/index.js +0 -14
- package/dist/monitor/index.js.map +0 -1
- package/dist/monitor/stall-detector.d.ts +0 -109
- package/dist/monitor/stall-detector.d.ts.map +0 -1
- package/dist/monitor/stall-detector.js +0 -152
- package/dist/monitor/stall-detector.js.map +0 -1
- package/dist/peer/capability-manager.d.ts +0 -56
- package/dist/peer/capability-manager.d.ts.map +0 -1
- package/dist/peer/capability-manager.js +0 -186
- package/dist/peer/capability-manager.js.map +0 -1
- package/dist/peer/encapsulation-manager.d.ts +0 -190
- package/dist/peer/encapsulation-manager.d.ts.map +0 -1
- package/dist/peer/encapsulation-manager.js +0 -486
- package/dist/peer/encapsulation-manager.js.map +0 -1
- package/dist/peer/federation-manager.d.ts +0 -223
- package/dist/peer/federation-manager.d.ts.map +0 -1
- package/dist/peer/federation-manager.js +0 -528
- package/dist/peer/federation-manager.js.map +0 -1
- package/dist/peer/hierarchy-errors.d.ts +0 -208
- package/dist/peer/hierarchy-errors.d.ts.map +0 -1
- package/dist/peer/hierarchy-errors.js +0 -268
- package/dist/peer/hierarchy-errors.js.map +0 -1
- package/dist/peer/hierarchy-protocol.d.ts +0 -159
- package/dist/peer/hierarchy-protocol.d.ts.map +0 -1
- package/dist/peer/hierarchy-protocol.js +0 -142
- package/dist/peer/hierarchy-protocol.js.map +0 -1
- package/dist/peer/index.d.ts +0 -15
- package/dist/peer/index.d.ts.map +0 -1
- package/dist/peer/index.js +0 -15
- package/dist/peer/index.js.map +0 -1
- package/dist/peer/peer-manager.d.ts +0 -99
- package/dist/peer/peer-manager.d.ts.map +0 -1
- package/dist/peer/peer-manager.js +0 -333
- package/dist/peer/peer-manager.js.map +0 -1
- package/dist/peer/task-delegation.d.ts +0 -189
- package/dist/peer/task-delegation.d.ts.map +0 -1
- package/dist/peer/task-delegation.js +0 -303
- package/dist/peer/task-delegation.js.map +0 -1
- package/dist/peer/transports/index.d.ts +0 -8
- package/dist/peer/transports/index.d.ts.map +0 -1
- package/dist/peer/transports/index.js +0 -8
- package/dist/peer/transports/index.js.map +0 -1
- package/dist/peer/transports/local-transport.d.ts +0 -56
- package/dist/peer/transports/local-transport.d.ts.map +0 -1
- package/dist/peer/transports/local-transport.js +0 -263
- package/dist/peer/transports/local-transport.js.map +0 -1
- package/dist/peer/transports/websocket-transport.d.ts +0 -86
- package/dist/peer/transports/websocket-transport.d.ts.map +0 -1
- package/dist/peer/transports/websocket-transport.js +0 -338
- package/dist/peer/transports/websocket-transport.js.map +0 -1
- package/dist/peer/types.d.ts +0 -268
- package/dist/peer/types.d.ts.map +0 -1
- package/dist/peer/types.js +0 -36
- package/dist/peer/types.js.map +0 -1
- package/dist/router/address-resolver.d.ts +0 -102
- package/dist/router/address-resolver.d.ts.map +0 -1
- package/dist/router/address-resolver.js +0 -198
- package/dist/router/address-resolver.js.map +0 -1
- package/dist/router/broadcast.d.ts +0 -53
- package/dist/router/broadcast.d.ts.map +0 -1
- package/dist/router/broadcast.js +0 -75
- package/dist/router/broadcast.js.map +0 -1
- package/dist/router/channels.d.ts +0 -148
- package/dist/router/channels.d.ts.map +0 -1
- package/dist/router/channels.js +0 -126
- package/dist/router/channels.js.map +0 -1
- package/dist/router/index.d.ts +0 -21
- package/dist/router/index.d.ts.map +0 -1
- package/dist/router/index.js +0 -18
- package/dist/router/index.js.map +0 -1
- package/dist/router/message-router.d.ts +0 -197
- package/dist/router/message-router.d.ts.map +0 -1
- package/dist/router/message-router.js +0 -903
- package/dist/router/message-router.js.map +0 -1
- package/dist/router/message-types.d.ts +0 -183
- package/dist/router/message-types.d.ts.map +0 -1
- package/dist/router/message-types.js +0 -79
- package/dist/router/message-types.js.map +0 -1
- package/dist/router/role-resolver.d.ts +0 -67
- package/dist/router/role-resolver.d.ts.map +0 -1
- package/dist/router/role-resolver.js +0 -106
- package/dist/router/role-resolver.js.map +0 -1
- package/dist/router/signals.d.ts +0 -253
- package/dist/router/signals.d.ts.map +0 -1
- package/dist/router/signals.js +0 -53
- package/dist/router/signals.js.map +0 -1
- package/dist/router/types.d.ts +0 -191
- package/dist/router/types.d.ts.map +0 -1
- package/dist/router/types.js +0 -34
- package/dist/router/types.js.map +0 -1
- package/dist/router/wake.d.ts +0 -111
- package/dist/router/wake.d.ts.map +0 -1
- package/dist/router/wake.js +0 -180
- package/dist/router/wake.js.map +0 -1
- package/dist/server/combined-server.d.ts +0 -95
- package/dist/server/combined-server.d.ts.map +0 -1
- package/dist/server/combined-server.js +0 -335
- package/dist/server/combined-server.js.map +0 -1
- package/dist/steering/index.d.ts +0 -11
- package/dist/steering/index.d.ts.map +0 -1
- package/dist/steering/index.js +0 -11
- package/dist/steering/index.js.map +0 -1
- package/dist/steering/inject.d.ts +0 -39
- package/dist/steering/inject.d.ts.map +0 -1
- package/dist/steering/inject.js +0 -197
- package/dist/steering/inject.js.map +0 -1
- package/dist/steering/types.d.ts +0 -100
- package/dist/steering/types.d.ts.map +0 -1
- package/dist/steering/types.js +0 -11
- package/dist/steering/types.js.map +0 -1
- package/dist/store/backends/index.d.ts +0 -11
- package/dist/store/backends/index.d.ts.map +0 -1
- package/dist/store/backends/index.js +0 -15
- package/dist/store/backends/index.js.map +0 -1
- package/dist/store/backends/json-backend.d.ts +0 -23
- package/dist/store/backends/json-backend.d.ts.map +0 -1
- package/dist/store/backends/json-backend.js +0 -220
- package/dist/store/backends/json-backend.js.map +0 -1
- package/dist/store/backends/memory-backend.d.ts +0 -12
- package/dist/store/backends/memory-backend.d.ts.map +0 -1
- package/dist/store/backends/memory-backend.js +0 -205
- package/dist/store/backends/memory-backend.js.map +0 -1
- package/dist/store/backends/sqlite-backend.d.ts +0 -27
- package/dist/store/backends/sqlite-backend.d.ts.map +0 -1
- package/dist/store/backends/sqlite-backend.js +0 -231
- package/dist/store/backends/sqlite-backend.js.map +0 -1
- package/dist/store/backends/tinybase-backend.d.ts +0 -22
- package/dist/store/backends/tinybase-backend.d.ts.map +0 -1
- package/dist/store/backends/tinybase-backend.js +0 -203
- package/dist/store/backends/tinybase-backend.js.map +0 -1
- package/dist/store/backends/types.d.ts +0 -175
- package/dist/store/backends/types.d.ts.map +0 -1
- package/dist/store/backends/types.js +0 -28
- package/dist/store/backends/types.js.map +0 -1
- package/dist/store/event-store.d.ts +0 -128
- package/dist/store/event-store.d.ts.map +0 -1
- package/dist/store/event-store.js +0 -1746
- package/dist/store/event-store.js.map +0 -1
- package/dist/store/instance.d.ts +0 -283
- package/dist/store/instance.d.ts.map +0 -1
- package/dist/store/instance.js +0 -363
- package/dist/store/instance.js.map +0 -1
- package/dist/store/migrations.d.ts +0 -41
- package/dist/store/migrations.d.ts.map +0 -1
- package/dist/store/migrations.js +0 -79
- package/dist/store/migrations.js.map +0 -1
- package/dist/store/types/config.d.ts +0 -16
- package/dist/store/types/config.d.ts.map +0 -1
- package/dist/store/types/config.js +0 -8
- package/dist/store/types/config.js.map +0 -1
- package/dist/store/types/conversations.d.ts +0 -91
- package/dist/store/types/conversations.d.ts.map +0 -1
- package/dist/store/types/conversations.js +0 -8
- package/dist/store/types/conversations.js.map +0 -1
- package/dist/store/types/sessions.d.ts +0 -44
- package/dist/store/types/sessions.d.ts.map +0 -1
- package/dist/store/types/sessions.js +0 -9
- package/dist/store/types/sessions.js.map +0 -1
- package/dist/task/backend/index.d.ts +0 -93
- package/dist/task/backend/index.d.ts.map +0 -1
- package/dist/task/backend/index.js +0 -178
- package/dist/task/backend/index.js.map +0 -1
- package/dist/task/backend/memory.d.ts +0 -70
- package/dist/task/backend/memory.d.ts.map +0 -1
- package/dist/task/backend/memory.js +0 -621
- package/dist/task/backend/memory.js.map +0 -1
- package/dist/task/backend/opentasks/backend.d.ts +0 -140
- package/dist/task/backend/opentasks/backend.d.ts.map +0 -1
- package/dist/task/backend/opentasks/backend.js +0 -1023
- package/dist/task/backend/opentasks/backend.js.map +0 -1
- package/dist/task/backend/opentasks/client.d.ts +0 -337
- package/dist/task/backend/opentasks/client.d.ts.map +0 -1
- package/dist/task/backend/opentasks/client.js +0 -225
- package/dist/task/backend/opentasks/client.js.map +0 -1
- package/dist/task/backend/opentasks/daemon-manager.d.ts +0 -89
- package/dist/task/backend/opentasks/daemon-manager.d.ts.map +0 -1
- package/dist/task/backend/opentasks/daemon-manager.js +0 -195
- package/dist/task/backend/opentasks/daemon-manager.js.map +0 -1
- package/dist/task/backend/opentasks/index.d.ts +0 -21
- package/dist/task/backend/opentasks/index.d.ts.map +0 -1
- package/dist/task/backend/opentasks/index.js +0 -21
- package/dist/task/backend/opentasks/index.js.map +0 -1
- package/dist/task/backend/opentasks/mapping.d.ts +0 -48
- package/dist/task/backend/opentasks/mapping.d.ts.map +0 -1
- package/dist/task/backend/opentasks/mapping.js +0 -77
- package/dist/task/backend/opentasks/mapping.js.map +0 -1
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts +0 -54
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.d.ts.map +0 -1
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.js +0 -88
- package/dist/task/backend/sudocode/__tests__/integration/test-utils.js.map +0 -1
- package/dist/task/backend/sudocode/backend.d.ts +0 -155
- package/dist/task/backend/sudocode/backend.d.ts.map +0 -1
- package/dist/task/backend/sudocode/backend.js +0 -942
- package/dist/task/backend/sudocode/backend.js.map +0 -1
- package/dist/task/backend/sudocode/client.d.ts +0 -303
- package/dist/task/backend/sudocode/client.d.ts.map +0 -1
- package/dist/task/backend/sudocode/client.js +0 -101
- package/dist/task/backend/sudocode/client.js.map +0 -1
- package/dist/task/backend/sudocode/index.d.ts +0 -19
- package/dist/task/backend/sudocode/index.d.ts.map +0 -1
- package/dist/task/backend/sudocode/index.js +0 -17
- package/dist/task/backend/sudocode/index.js.map +0 -1
- package/dist/task/backend/sudocode/mapping.d.ts +0 -51
- package/dist/task/backend/sudocode/mapping.d.ts.map +0 -1
- package/dist/task/backend/sudocode/mapping.js +0 -86
- package/dist/task/backend/sudocode/mapping.js.map +0 -1
- package/dist/task/backend/sudocode/server-client.d.ts +0 -56
- package/dist/task/backend/sudocode/server-client.d.ts.map +0 -1
- package/dist/task/backend/sudocode/server-client.js +0 -367
- package/dist/task/backend/sudocode/server-client.js.map +0 -1
- package/dist/task/backend/sudocode/standalone-client.d.ts +0 -91
- package/dist/task/backend/sudocode/standalone-client.d.ts.map +0 -1
- package/dist/task/backend/sudocode/standalone-client.js +0 -476
- package/dist/task/backend/sudocode/standalone-client.js.map +0 -1
- package/dist/task/backend/sudocode/sync-policy.d.ts +0 -166
- package/dist/task/backend/sudocode/sync-policy.d.ts.map +0 -1
- package/dist/task/backend/sudocode/sync-policy.js +0 -221
- package/dist/task/backend/sudocode/sync-policy.js.map +0 -1
- package/dist/task/backend/sudocode/tools.d.ts +0 -87
- package/dist/task/backend/sudocode/tools.d.ts.map +0 -1
- package/dist/task/backend/sudocode/tools.js +0 -743
- package/dist/task/backend/sudocode/tools.js.map +0 -1
- package/dist/task/backend/tool-provider.d.ts +0 -56
- package/dist/task/backend/tool-provider.d.ts.map +0 -1
- package/dist/task/backend/tool-provider.js +0 -424
- package/dist/task/backend/tool-provider.js.map +0 -1
- package/dist/task/backend/types.d.ts +0 -297
- package/dist/task/backend/types.d.ts.map +0 -1
- package/dist/task/backend/types.js +0 -27
- package/dist/task/backend/types.js.map +0 -1
- package/dist/task/backend/unified-tool-provider.d.ts +0 -57
- package/dist/task/backend/unified-tool-provider.d.ts.map +0 -1
- package/dist/task/backend/unified-tool-provider.js +0 -623
- package/dist/task/backend/unified-tool-provider.js.map +0 -1
- package/dist/task/index.d.ts +0 -7
- package/dist/task/index.d.ts.map +0 -1
- package/dist/task/index.js +0 -7
- package/dist/task/index.js.map +0 -1
- package/dist/task/retry-policy.d.ts +0 -89
- package/dist/task/retry-policy.d.ts.map +0 -1
- package/dist/task/retry-policy.js +0 -160
- package/dist/task/retry-policy.js.map +0 -1
- package/dist/task/task-manager.d.ts +0 -70
- package/dist/task/task-manager.d.ts.map +0 -1
- package/dist/task/task-manager.js +0 -319
- package/dist/task/task-manager.js.map +0 -1
- package/dist/task/types.d.ts +0 -72
- package/dist/task/types.d.ts.map +0 -1
- package/dist/task/types.js +0 -33
- package/dist/task/types.js.map +0 -1
- package/dist/teams/team-manager.d.ts +0 -112
- package/dist/teams/team-manager.d.ts.map +0 -1
- package/dist/teams/team-manager.js +0 -305
- package/dist/teams/team-manager.js.map +0 -1
- package/dist/teams/team-runtime.d.ts +0 -245
- package/dist/teams/team-runtime.d.ts.map +0 -1
- package/dist/teams/team-runtime.js +0 -1023
- package/dist/teams/team-runtime.js.map +0 -1
- package/dist/trigger/router/index.d.ts +0 -11
- package/dist/trigger/router/index.d.ts.map +0 -1
- package/dist/trigger/router/index.js +0 -10
- package/dist/trigger/router/index.js.map +0 -1
- package/dist/trigger/router/strategies/ai-router-strategy.d.ts +0 -34
- package/dist/trigger/router/strategies/ai-router-strategy.d.ts.map +0 -1
- package/dist/trigger/router/strategies/ai-router-strategy.js +0 -359
- package/dist/trigger/router/strategies/ai-router-strategy.js.map +0 -1
- package/dist/trigger/router/strategies/direct-strategy.d.ts +0 -32
- package/dist/trigger/router/strategies/direct-strategy.d.ts.map +0 -1
- package/dist/trigger/router/strategies/direct-strategy.js +0 -119
- package/dist/trigger/router/strategies/direct-strategy.js.map +0 -1
- package/dist/trigger/router/strategies/index.d.ts +0 -11
- package/dist/trigger/router/strategies/index.d.ts.map +0 -1
- package/dist/trigger/router/strategies/index.js +0 -11
- package/dist/trigger/router/strategies/index.js.map +0 -1
- package/dist/trigger/router/strategies/role-strategy.d.ts +0 -39
- package/dist/trigger/router/strategies/role-strategy.d.ts.map +0 -1
- package/dist/trigger/router/strategies/role-strategy.js +0 -207
- package/dist/trigger/router/strategies/role-strategy.js.map +0 -1
- package/dist/trigger/router/trigger-router.d.ts +0 -54
- package/dist/trigger/router/trigger-router.d.ts.map +0 -1
- package/dist/trigger/router/trigger-router.js +0 -362
- package/dist/trigger/router/trigger-router.js.map +0 -1
- package/dist/trigger/router/types.d.ts +0 -225
- package/dist/trigger/router/types.d.ts.map +0 -1
- package/dist/trigger/router/types.js +0 -10
- package/dist/trigger/router/types.js.map +0 -1
- package/dist/trigger/trigger-system.d.ts +0 -77
- package/dist/trigger/trigger-system.d.ts.map +0 -1
- package/dist/trigger/trigger-system.js +0 -84
- package/dist/trigger/trigger-system.js.map +0 -1
- package/references/acp-factory-ref/CHANGELOG.md +0 -33
- package/references/acp-factory-ref/LICENSE +0 -21
- package/references/acp-factory-ref/README.md +0 -341
- package/references/acp-factory-ref/package-lock.json +0 -3102
- package/references/acp-factory-ref/package.json +0 -96
- package/references/acp-factory-ref/python/CHANGELOG.md +0 -33
- package/references/acp-factory-ref/python/LICENSE +0 -21
- package/references/acp-factory-ref/python/Makefile +0 -57
- package/references/acp-factory-ref/python/README.md +0 -253
- package/references/acp-factory-ref/python/pyproject.toml +0 -73
- package/references/acp-factory-ref/python/tests/e2e/__init__.py +0 -1
- package/references/acp-factory-ref/python/tests/e2e/test_codex_e2e.py +0 -349
- package/references/acp-factory-ref/python/tests/e2e/test_gemini_e2e.py +0 -165
- package/references/acp-factory-ref/python/tests/e2e/test_opencode_e2e.py +0 -296
- package/references/acp-factory-ref/python/tests/test_client_handler.py +0 -543
- package/references/acp-factory-ref/python/tests/test_pushable.py +0 -199
- package/references/claude-code-acp/.github/workflows/ci.yml +0 -45
- package/references/claude-code-acp/.github/workflows/publish.yml +0 -34
- package/references/claude-code-acp/.prettierrc.json +0 -4
- package/references/claude-code-acp/CHANGELOG.md +0 -249
- package/references/claude-code-acp/LICENSE +0 -222
- package/references/claude-code-acp/README.md +0 -53
- package/references/claude-code-acp/docs/RELEASES.md +0 -24
- package/references/claude-code-acp/eslint.config.js +0 -48
- package/references/claude-code-acp/package-lock.json +0 -4570
- package/references/claude-code-acp/package.json +0 -88
- package/references/claude-code-acp/scripts/release.sh +0 -119
- package/references/claude-code-acp/src/acp-agent.ts +0 -2076
- package/references/claude-code-acp/src/index.ts +0 -26
- package/references/claude-code-acp/src/lib.ts +0 -38
- package/references/claude-code-acp/src/mcp-server.ts +0 -911
- package/references/claude-code-acp/src/settings.ts +0 -522
- package/references/claude-code-acp/src/tests/.claude/commands/quick-math.md +0 -5
- package/references/claude-code-acp/src/tests/.claude/commands/say-hello.md +0 -6
- package/references/claude-code-acp/src/tests/acp-agent-fork.test.ts +0 -479
- package/references/claude-code-acp/src/tests/acp-agent.test.ts +0 -1502
- package/references/claude-code-acp/src/tests/extract-lines.test.ts +0 -103
- package/references/claude-code-acp/src/tests/fork-session.test.ts +0 -335
- package/references/claude-code-acp/src/tests/replace-and-calculate-location.test.ts +0 -334
- package/references/claude-code-acp/src/tests/settings.test.ts +0 -617
- package/references/claude-code-acp/src/tests/skills-options.test.ts +0 -187
- package/references/claude-code-acp/src/tests/tools.test.ts +0 -318
- package/references/claude-code-acp/src/tests/typescript-declarations.test.ts +0 -558
- package/references/claude-code-acp/src/tools.ts +0 -819
- package/references/claude-code-acp/src/utils.ts +0 -171
- package/references/claude-code-acp/tsconfig.json +0 -18
- package/references/claude-code-acp/vitest.config.ts +0 -19
- package/references/minimem/.claude/settings.json +0 -7
- package/references/minimem/.sudocode/issues.jsonl +0 -18
- package/references/minimem/.sudocode/specs.jsonl +0 -1
- package/references/minimem/CLAUDE.md +0 -310
- package/references/minimem/README.md +0 -562
- package/references/minimem/claude-plugin/.claude-plugin/plugin.json +0 -10
- package/references/minimem/claude-plugin/.mcp.json +0 -7
- package/references/minimem/claude-plugin/README.md +0 -158
- package/references/minimem/claude-plugin/commands/recall.md +0 -47
- package/references/minimem/claude-plugin/commands/remember.md +0 -41
- package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +0 -272
- package/references/minimem/claude-plugin/hooks/hooks.json +0 -27
- package/references/minimem/claude-plugin/hooks/session-end.sh +0 -86
- package/references/minimem/claude-plugin/hooks/session-start.sh +0 -85
- package/references/minimem/claude-plugin/skills/memory/SKILL.md +0 -108
- package/references/minimem/media/banner.png +0 -0
- package/references/minimem/package-lock.json +0 -5373
- package/references/minimem/package.json +0 -72
- package/references/minimem/scripts/postbuild.js +0 -35
- package/references/minimem/src/__tests__/edge-cases.test.ts +0 -371
- package/references/minimem/src/__tests__/errors.test.ts +0 -265
- package/references/minimem/src/__tests__/helpers.ts +0 -199
- package/references/minimem/src/__tests__/internal.test.ts +0 -407
- package/references/minimem/src/__tests__/knowledge.test.ts +0 -287
- package/references/minimem/src/__tests__/minimem.integration.test.ts +0 -1127
- package/references/minimem/src/__tests__/session.test.ts +0 -190
- package/references/minimem/src/cli/__tests__/commands.test.ts +0 -759
- package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +0 -141
- package/references/minimem/src/cli/commands/append.ts +0 -76
- package/references/minimem/src/cli/commands/config.ts +0 -262
- package/references/minimem/src/cli/commands/conflicts.ts +0 -413
- package/references/minimem/src/cli/commands/daemon.ts +0 -169
- package/references/minimem/src/cli/commands/index.ts +0 -12
- package/references/minimem/src/cli/commands/init.ts +0 -88
- package/references/minimem/src/cli/commands/mcp.ts +0 -177
- package/references/minimem/src/cli/commands/push-pull.ts +0 -213
- package/references/minimem/src/cli/commands/search.ts +0 -158
- package/references/minimem/src/cli/commands/status.ts +0 -84
- package/references/minimem/src/cli/commands/sync-init.ts +0 -290
- package/references/minimem/src/cli/commands/sync.ts +0 -70
- package/references/minimem/src/cli/commands/upsert.ts +0 -197
- package/references/minimem/src/cli/config.ts +0 -584
- package/references/minimem/src/cli/index.ts +0 -264
- package/references/minimem/src/cli/shared.ts +0 -161
- package/references/minimem/src/cli/sync/__tests__/central.test.ts +0 -152
- package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +0 -209
- package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +0 -118
- package/references/minimem/src/cli/sync/__tests__/detection.test.ts +0 -207
- package/references/minimem/src/cli/sync/__tests__/integration.test.ts +0 -476
- package/references/minimem/src/cli/sync/__tests__/registry.test.ts +0 -363
- package/references/minimem/src/cli/sync/__tests__/state.test.ts +0 -255
- package/references/minimem/src/cli/sync/__tests__/validation.test.ts +0 -193
- package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +0 -178
- package/references/minimem/src/cli/sync/central.ts +0 -292
- package/references/minimem/src/cli/sync/conflicts.ts +0 -204
- package/references/minimem/src/cli/sync/daemon.ts +0 -407
- package/references/minimem/src/cli/sync/detection.ts +0 -138
- package/references/minimem/src/cli/sync/index.ts +0 -107
- package/references/minimem/src/cli/sync/operations.ts +0 -373
- package/references/minimem/src/cli/sync/registry.ts +0 -279
- package/references/minimem/src/cli/sync/state.ts +0 -355
- package/references/minimem/src/cli/sync/validation.ts +0 -206
- package/references/minimem/src/cli/sync/watcher.ts +0 -234
- package/references/minimem/src/cli/version.ts +0 -34
- package/references/minimem/src/core/index.ts +0 -9
- package/references/minimem/src/core/indexer.ts +0 -628
- package/references/minimem/src/core/searcher.ts +0 -221
- package/references/minimem/src/db/schema.ts +0 -183
- package/references/minimem/src/db/sqlite-vec.ts +0 -24
- package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +0 -431
- package/references/minimem/src/embeddings/batch-gemini.ts +0 -392
- package/references/minimem/src/embeddings/batch-openai.ts +0 -409
- package/references/minimem/src/embeddings/embeddings.ts +0 -434
- package/references/minimem/src/index.ts +0 -109
- package/references/minimem/src/internal.ts +0 -299
- package/references/minimem/src/minimem.ts +0 -1276
- package/references/minimem/src/search/__tests__/hybrid.test.ts +0 -247
- package/references/minimem/src/search/graph.ts +0 -234
- package/references/minimem/src/search/hybrid.ts +0 -151
- package/references/minimem/src/search/search.ts +0 -256
- package/references/minimem/src/server/__tests__/mcp.test.ts +0 -341
- package/references/minimem/src/server/__tests__/tools.test.ts +0 -364
- package/references/minimem/src/server/mcp.ts +0 -326
- package/references/minimem/src/server/tools.ts +0 -720
- package/references/minimem/src/session.ts +0 -460
- package/references/minimem/tsconfig.json +0 -19
- package/references/minimem/tsup.config.ts +0 -26
- package/references/minimem/vitest.config.ts +0 -24
- package/references/multi-agent-protocol/.sudocode/issues.jsonl +0 -111
- package/references/multi-agent-protocol/.sudocode/specs.jsonl +0 -13
- package/references/multi-agent-protocol/LICENSE +0 -21
- package/references/multi-agent-protocol/README.md +0 -113
- package/references/multi-agent-protocol/docs/00-design-specification.md +0 -496
- package/references/multi-agent-protocol/docs/01-open-questions.md +0 -1050
- package/references/multi-agent-protocol/docs/02-wire-protocol.md +0 -296
- package/references/multi-agent-protocol/docs/03-streaming-semantics.md +0 -252
- package/references/multi-agent-protocol/docs/04-error-handling.md +0 -231
- package/references/multi-agent-protocol/docs/05-connection-model.md +0 -244
- package/references/multi-agent-protocol/docs/06-visibility-permissions.md +0 -243
- package/references/multi-agent-protocol/docs/07-federation.md +0 -259
- package/references/multi-agent-protocol/docs/08-macro-agent-migration.md +0 -253
- package/references/multi-agent-protocol/docs/09-authentication.md +0 -680
- package/references/multi-agent-protocol/docs/10-mail-protocol.md +0 -553
- package/references/multi-agent-protocol/docs/agent-iam-integration.md +0 -877
- package/references/multi-agent-protocol/docs/agentic-mesh-integration-draft.md +0 -459
- package/references/multi-agent-protocol/docs/git-transport-draft.md +0 -251
- package/references/multi-agent-protocol/docs-site/Gemfile +0 -22
- package/references/multi-agent-protocol/docs-site/README.md +0 -82
- package/references/multi-agent-protocol/docs-site/_config.yml +0 -91
- package/references/multi-agent-protocol/docs-site/_includes/head_custom.html +0 -20
- package/references/multi-agent-protocol/docs-site/_sass/color_schemes/map.scss +0 -42
- package/references/multi-agent-protocol/docs-site/_sass/custom/custom.scss +0 -34
- package/references/multi-agent-protocol/docs-site/examples/full-integration.md +0 -510
- package/references/multi-agent-protocol/docs-site/examples/index.md +0 -138
- package/references/multi-agent-protocol/docs-site/examples/simple-chat.md +0 -282
- package/references/multi-agent-protocol/docs-site/examples/task-queue.md +0 -399
- package/references/multi-agent-protocol/docs-site/getting-started/index.md +0 -98
- package/references/multi-agent-protocol/docs-site/getting-started/installation.md +0 -219
- package/references/multi-agent-protocol/docs-site/getting-started/overview.md +0 -172
- package/references/multi-agent-protocol/docs-site/getting-started/quickstart.md +0 -237
- package/references/multi-agent-protocol/docs-site/index.md +0 -136
- package/references/multi-agent-protocol/docs-site/protocol/authentication.md +0 -391
- package/references/multi-agent-protocol/docs-site/protocol/connection-model.md +0 -376
- package/references/multi-agent-protocol/docs-site/protocol/design.md +0 -284
- package/references/multi-agent-protocol/docs-site/protocol/error-handling.md +0 -312
- package/references/multi-agent-protocol/docs-site/protocol/federation.md +0 -449
- package/references/multi-agent-protocol/docs-site/protocol/index.md +0 -129
- package/references/multi-agent-protocol/docs-site/protocol/permissions.md +0 -398
- package/references/multi-agent-protocol/docs-site/protocol/streaming.md +0 -353
- package/references/multi-agent-protocol/docs-site/protocol/wire-protocol.md +0 -369
- package/references/multi-agent-protocol/docs-site/sdk/api/agent.md +0 -357
- package/references/multi-agent-protocol/docs-site/sdk/api/client.md +0 -380
- package/references/multi-agent-protocol/docs-site/sdk/api/index.md +0 -62
- package/references/multi-agent-protocol/docs-site/sdk/api/server.md +0 -453
- package/references/multi-agent-protocol/docs-site/sdk/api/types.md +0 -468
- package/references/multi-agent-protocol/docs-site/sdk/guides/agent.md +0 -375
- package/references/multi-agent-protocol/docs-site/sdk/guides/authentication.md +0 -405
- package/references/multi-agent-protocol/docs-site/sdk/guides/client.md +0 -352
- package/references/multi-agent-protocol/docs-site/sdk/guides/index.md +0 -89
- package/references/multi-agent-protocol/docs-site/sdk/guides/server.md +0 -360
- package/references/multi-agent-protocol/docs-site/sdk/guides/testing.md +0 -446
- package/references/multi-agent-protocol/docs-site/sdk/guides/transports.md +0 -363
- package/references/multi-agent-protocol/docs-site/sdk/index.md +0 -206
- package/references/multi-agent-protocol/package-lock.json +0 -3886
- package/references/multi-agent-protocol/package.json +0 -56
- package/references/multi-agent-protocol/schema/meta.json +0 -467
- package/references/multi-agent-protocol/schema/schema.json +0 -2558
- package/references/openteams/.claude/settings.json +0 -6
- package/references/openteams/README.md +0 -1
- package/references/openteams/SKILL.md +0 -341
- package/references/openteams/design.md +0 -411
- package/references/openteams/examples/bmad-method/prompts/analyst/ROLE.md +0 -16
- package/references/openteams/examples/bmad-method/prompts/analyst/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/architect/ROLE.md +0 -24
- package/references/openteams/examples/bmad-method/prompts/architect/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/developer/ROLE.md +0 -25
- package/references/openteams/examples/bmad-method/prompts/developer/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/master/ROLE.md +0 -21
- package/references/openteams/examples/bmad-method/prompts/master/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/pm/ROLE.md +0 -20
- package/references/openteams/examples/bmad-method/prompts/pm/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/qa/ROLE.md +0 -17
- package/references/openteams/examples/bmad-method/prompts/qa/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/ROLE.md +0 -23
- package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/scrum-master/ROLE.md +0 -27
- package/references/openteams/examples/bmad-method/prompts/scrum-master/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/tech-writer/ROLE.md +0 -21
- package/references/openteams/examples/bmad-method/prompts/tech-writer/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/prompts/ux-designer/ROLE.md +0 -16
- package/references/openteams/examples/bmad-method/prompts/ux-designer/SOUL.md +0 -5
- package/references/openteams/examples/bmad-method/roles/analyst.yaml +0 -9
- package/references/openteams/examples/bmad-method/roles/architect.yaml +0 -9
- package/references/openteams/examples/bmad-method/roles/developer.yaml +0 -8
- package/references/openteams/examples/bmad-method/roles/master.yaml +0 -8
- package/references/openteams/examples/bmad-method/roles/pm.yaml +0 -9
- package/references/openteams/examples/bmad-method/roles/qa.yaml +0 -8
- package/references/openteams/examples/bmad-method/roles/quick-flow-dev.yaml +0 -8
- package/references/openteams/examples/bmad-method/roles/scrum-master.yaml +0 -9
- package/references/openteams/examples/bmad-method/roles/tech-writer.yaml +0 -8
- package/references/openteams/examples/bmad-method/roles/ux-designer.yaml +0 -8
- package/references/openteams/examples/bmad-method/team.yaml +0 -161
- package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/ROLE.md +0 -17
- package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/SOUL.md +0 -5
- package/references/openteams/examples/get-shit-done/prompts/debugger/ROLE.md +0 -25
- package/references/openteams/examples/get-shit-done/prompts/debugger/SOUL.md +0 -5
- package/references/openteams/examples/get-shit-done/prompts/executor/ROLE.md +0 -34
- package/references/openteams/examples/get-shit-done/prompts/executor/SOUL.md +0 -5
- package/references/openteams/examples/get-shit-done/prompts/integration-checker/ROLE.md +0 -18
- package/references/openteams/examples/get-shit-done/prompts/integration-checker/SOUL.md +0 -3
- package/references/openteams/examples/get-shit-done/prompts/orchestrator/ROLE.md +0 -42
- package/references/openteams/examples/get-shit-done/prompts/orchestrator/SOUL.md +0 -5
- package/references/openteams/examples/get-shit-done/prompts/phase-researcher/ROLE.md +0 -15
- package/references/openteams/examples/get-shit-done/prompts/phase-researcher/SOUL.md +0 -3
- package/references/openteams/examples/get-shit-done/prompts/plan-checker/ROLE.md +0 -17
- package/references/openteams/examples/get-shit-done/prompts/plan-checker/SOUL.md +0 -3
- package/references/openteams/examples/get-shit-done/prompts/planner/ROLE.md +0 -28
- package/references/openteams/examples/get-shit-done/prompts/planner/SOUL.md +0 -5
- package/references/openteams/examples/get-shit-done/prompts/project-researcher/ROLE.md +0 -16
- package/references/openteams/examples/get-shit-done/prompts/project-researcher/SOUL.md +0 -3
- package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/ROLE.md +0 -13
- package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/SOUL.md +0 -3
- package/references/openteams/examples/get-shit-done/prompts/roadmapper/ROLE.md +0 -14
- package/references/openteams/examples/get-shit-done/prompts/roadmapper/SOUL.md +0 -3
- package/references/openteams/examples/get-shit-done/prompts/verifier/ROLE.md +0 -19
- package/references/openteams/examples/get-shit-done/prompts/verifier/SOUL.md +0 -5
- package/references/openteams/examples/get-shit-done/roles/codebase-mapper.yaml +0 -8
- package/references/openteams/examples/get-shit-done/roles/debugger.yaml +0 -8
- package/references/openteams/examples/get-shit-done/roles/executor.yaml +0 -8
- package/references/openteams/examples/get-shit-done/roles/integration-checker.yaml +0 -8
- package/references/openteams/examples/get-shit-done/roles/orchestrator.yaml +0 -9
- package/references/openteams/examples/get-shit-done/roles/phase-researcher.yaml +0 -7
- package/references/openteams/examples/get-shit-done/roles/plan-checker.yaml +0 -8
- package/references/openteams/examples/get-shit-done/roles/planner.yaml +0 -8
- package/references/openteams/examples/get-shit-done/roles/project-researcher.yaml +0 -8
- package/references/openteams/examples/get-shit-done/roles/research-synthesizer.yaml +0 -7
- package/references/openteams/examples/get-shit-done/roles/roadmapper.yaml +0 -7
- package/references/openteams/examples/get-shit-done/roles/verifier.yaml +0 -8
- package/references/openteams/examples/get-shit-done/team.yaml +0 -154
- package/references/openteams/package-lock.json +0 -2181
- package/references/openteams/package.json +0 -48
- package/references/openteams/schema/role.schema.json +0 -125
- package/references/openteams/schema/team.schema.json +0 -284
- package/references/openteams/src/cli/agent.ts +0 -104
- package/references/openteams/src/cli/cli.test.ts +0 -381
- package/references/openteams/src/cli/generate.ts +0 -220
- package/references/openteams/src/cli/message.ts +0 -241
- package/references/openteams/src/cli/task.ts +0 -154
- package/references/openteams/src/cli/team.ts +0 -104
- package/references/openteams/src/cli/template.ts +0 -207
- package/references/openteams/src/cli.ts +0 -45
- package/references/openteams/src/db/database.test.ts +0 -185
- package/references/openteams/src/db/database.ts +0 -240
- package/references/openteams/src/generators/agent-prompt-generator.test.ts +0 -332
- package/references/openteams/src/generators/agent-prompt-generator.ts +0 -521
- package/references/openteams/src/generators/package-generator.test.ts +0 -129
- package/references/openteams/src/generators/package-generator.ts +0 -102
- package/references/openteams/src/generators/skill-generator.test.ts +0 -246
- package/references/openteams/src/generators/skill-generator.ts +0 -374
- package/references/openteams/src/index.ts +0 -104
- package/references/openteams/src/services/agent-service.test.ts +0 -158
- package/references/openteams/src/services/agent-service.ts +0 -84
- package/references/openteams/src/services/communication-service.test.ts +0 -455
- package/references/openteams/src/services/communication-service.ts +0 -371
- package/references/openteams/src/services/message-service.test.ts +0 -342
- package/references/openteams/src/services/message-service.ts +0 -203
- package/references/openteams/src/services/task-service.test.ts +0 -434
- package/references/openteams/src/services/task-service.ts +0 -239
- package/references/openteams/src/services/team-service.test.ts +0 -181
- package/references/openteams/src/services/team-service.ts +0 -139
- package/references/openteams/src/services/template-service.test.ts +0 -306
- package/references/openteams/src/services/template-service.ts +0 -182
- package/references/openteams/src/spawner/acp-factory.ts +0 -96
- package/references/openteams/src/spawner/interface.ts +0 -31
- package/references/openteams/src/spawner/mock.test.ts +0 -93
- package/references/openteams/src/spawner/mock.ts +0 -59
- package/references/openteams/src/template/loader.test.ts +0 -1319
- package/references/openteams/src/template/loader.ts +0 -698
- package/references/openteams/src/template/types.ts +0 -200
- package/references/openteams/src/types.ts +0 -205
- package/references/openteams/tsconfig.json +0 -18
- package/references/openteams/vitest.config.ts +0 -9
- package/references/skill-tree/.claude/settings.json +0 -6
- package/references/skill-tree/.sudocode/issues.jsonl +0 -11
- package/references/skill-tree/.sudocode/specs.jsonl +0 -1
- package/references/skill-tree/CLAUDE.md +0 -150
- package/references/skill-tree/README.md +0 -324
- package/references/skill-tree/docs/GAPS_v1.md +0 -221
- package/references/skill-tree/docs/INTEGRATION_PLAN.md +0 -467
- package/references/skill-tree/docs/TODOS.md +0 -91
- package/references/skill-tree/docs/anthropic_skill_guide.md +0 -1364
- package/references/skill-tree/docs/design/federated-skill-trees.md +0 -524
- package/references/skill-tree/docs/design/multi-agent-sync.md +0 -759
- package/references/skill-tree/docs/scraper/BRAINSTORM.md +0 -583
- package/references/skill-tree/docs/scraper/POC_PLAN.md +0 -420
- package/references/skill-tree/docs/scraper/README.md +0 -170
- package/references/skill-tree/examples/basic-usage.ts +0 -190
- package/references/skill-tree/package-lock.json +0 -1509
- package/references/skill-tree/package.json +0 -66
- package/references/skill-tree/scraper/README.md +0 -123
- package/references/skill-tree/scraper/docs/DESIGN.md +0 -683
- package/references/skill-tree/scraper/docs/PLAN.md +0 -336
- package/references/skill-tree/scraper/drizzle.config.ts +0 -10
- package/references/skill-tree/scraper/package-lock.json +0 -6329
- package/references/skill-tree/scraper/package.json +0 -68
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +0 -7
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +0 -7
- package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +0 -27
- package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +0 -21
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +0 -54
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +0 -24
- package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +0 -93
- package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +0 -22
- package/references/skill-tree/scraper/tsup.config.ts +0 -14
- package/references/skill-tree/scraper/vitest.config.ts +0 -17
- package/references/skill-tree/scripts/convert-to-vitest.ts +0 -166
- package/references/skill-tree/skills/skill-writer/SKILL.md +0 -339
- package/references/skill-tree/skills/skill-writer/references/examples.md +0 -326
- package/references/skill-tree/skills/skill-writer/references/patterns.md +0 -210
- package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +0 -123
- package/references/skill-tree/test/run-all.ts +0 -106
- package/references/skill-tree/test/utils.ts +0 -128
- package/references/skill-tree/vitest.config.ts +0 -16
- package/src/__tests__/e2e/agent-spawn-visibility.e2e.test.ts +0 -761
- package/src/__tests__/e2e/cascade-termination.e2e.test.ts +0 -588
- package/src/__tests__/e2e/conflict-resolution-flow.e2e.test.ts +0 -790
- package/src/__tests__/e2e/full-agent-conflict-resolution.e2e.test.ts +0 -714
- package/src/__tests__/e2e/full-agent-orchestration.e2e.test.ts +0 -536
- package/src/__tests__/e2e/mcp-server-debug.e2e.test.ts +0 -372
- package/src/__tests__/e2e/mcp-thin-client-bridge.e2e.test.ts +0 -304
- package/src/__tests__/e2e/mcp-tools-available.e2e.test.ts +0 -324
- package/src/__tests__/e2e/multi-agent.e2e.test.ts +0 -1527
- package/src/__tests__/e2e/multi-coordinator.e2e.test.ts +0 -602
- package/src/__tests__/e2e/orchestration-flow.e2e.test.ts +0 -686
- package/src/__tests__/e2e/spawn-session-streaming.e2e.test.ts +0 -563
- package/src/__tests__/e2e/steering-task.e2e.test.ts +0 -840
- package/src/__tests__/integration.e2e.test.ts +0 -407
- package/src/acp/__tests__/combined-websocket-server.test.ts +0 -260
- package/src/acp/__tests__/history.test.ts +0 -530
- package/src/acp/__tests__/integration.test.ts +0 -1049
- package/src/acp/__tests__/multi-client-mounting.test.ts +0 -303
- package/src/acp/__tests__/session-persistence.test.ts +0 -276
- package/src/acp/__tests__/websocket-full.e2e.test.ts +0 -401
- package/src/acp/__tests__/websocket-integration.test.ts +0 -484
- package/src/acp/__tests__/websocket-stream.test.ts +0 -281
- package/src/acp/__tests__/websocket.e2e.test.ts +0 -390
- package/src/acp/websocket-stream.ts +0 -140
- package/src/activity/__tests__/deduplication.test.ts +0 -345
- package/src/activity/__tests__/relevance.test.ts +0 -347
- package/src/activity/__tests__/watcher.test.ts +0 -344
- package/src/activity/deduplication.ts +0 -219
- package/src/activity/index.ts +0 -51
- package/src/activity/relevance.ts +0 -258
- package/src/activity/types.ts +0 -263
- package/src/activity/watcher.ts +0 -345
- package/src/agent/__tests__/agent-manager.test.ts +0 -1382
- package/src/agent/__tests__/wake.test.ts +0 -768
- package/src/agent/wake.ts +0 -357
- package/src/api/__tests__/conversation-api.test.ts +0 -468
- package/src/cli/__tests__/acp.test.ts +0 -214
- package/src/lifecycle/__tests__/cascade-termination.test.ts +0 -919
- package/src/lifecycle/__tests__/cascade.test.ts +0 -595
- package/src/lifecycle/__tests__/cleanup.test.ts +0 -322
- package/src/lifecycle/__tests__/handlers.test.ts +0 -1879
- package/src/lifecycle/__tests__/lifecycle.e2e.test.ts +0 -354
- package/src/lifecycle/__tests__/merge-queue.e2e.test.ts +0 -602
- package/src/lifecycle/handlers/generic.ts +0 -87
- package/src/lifecycle/handlers/index.ts +0 -183
- package/src/lifecycle/handlers/integrator.ts +0 -672
- package/src/lifecycle/handlers/monitor.ts +0 -114
- package/src/lifecycle/handlers/worker.ts +0 -506
- package/src/mail/__tests__/conversation-lifecycle.test.ts +0 -409
- package/src/mail/__tests__/eventstore-stores.test.ts +0 -1073
- package/src/mail/__tests__/mail-full-agent.e2e.test.ts +0 -575
- package/src/mail/__tests__/mail-integration.test.ts +0 -759
- package/src/mail/__tests__/mail-map-protocol.e2e.test.ts +0 -1068
- package/src/mail/__tests__/mail-service.test.ts +0 -506
- package/src/mail/__tests__/turn-recorder.test.ts +0 -328
- package/src/mail/conversation-map.ts +0 -107
- package/src/mail/index.ts +0 -25
- package/src/mail/mail-service.ts +0 -257
- package/src/mail/stores/eventstore-conversation-store.ts +0 -146
- package/src/mail/stores/eventstore-participant-store.ts +0 -172
- package/src/mail/stores/eventstore-thread-store.ts +0 -129
- package/src/mail/stores/eventstore-turn-store.ts +0 -173
- package/src/mail/stores/index.ts +0 -12
- package/src/mail/stores/types.ts +0 -160
- package/src/mail/turn-recorder.ts +0 -124
- package/src/map/README.md +0 -79
- package/src/map/__tests__/adapter-types.test.ts +0 -326
- package/src/map/__tests__/interface-types.test.ts +0 -342
- package/src/map/__tests__/types.test.ts +0 -411
- package/src/map/adapter/__tests__/acp-over-map-cancel.test.ts +0 -820
- package/src/map/adapter/__tests__/acp-over-map-getmodels.test.ts +0 -355
- package/src/map/adapter/__tests__/acp-over-map-history.test.ts +0 -1386
- package/src/map/adapter/__tests__/acp-over-map-persistence.e2e.test.ts +0 -440
- package/src/map/adapter/__tests__/connection-manager.test.ts +0 -344
- package/src/map/adapter/__tests__/event-broadcast.test.ts +0 -420
- package/src/map/adapter/__tests__/event-log.test.ts +0 -527
- package/src/map/adapter/__tests__/event-translator.test.ts +0 -550
- package/src/map/adapter/__tests__/extensions.test.ts +0 -1387
- package/src/map/adapter/__tests__/map-adapter.test.ts +0 -926
- package/src/map/adapter/__tests__/mcp-bridge.test.ts +0 -1187
- package/src/map/adapter/__tests__/multi-client-broadcast.test.ts +0 -711
- package/src/map/adapter/__tests__/rpc-handler.test.ts +0 -644
- package/src/map/adapter/__tests__/stream-extensions.test.ts +0 -494
- package/src/map/adapter/__tests__/subscription-manager.test.ts +0 -536
- package/src/map/adapter/__tests__/websocket-integration.test.ts +0 -487
- package/src/map/adapter/__tests__/workspace-files.test.ts +0 -673
- package/src/map/adapter/acp-over-map.ts +0 -1483
- package/src/map/adapter/connection-manager.ts +0 -400
- package/src/map/adapter/event-log.ts +0 -208
- package/src/map/adapter/event-translator.ts +0 -415
- package/src/map/adapter/extensions/agent-detection.ts +0 -201
- package/src/map/adapter/extensions/agent-lifecycle.ts +0 -267
- package/src/map/adapter/extensions/index.ts +0 -316
- package/src/map/adapter/extensions/mcp-bridge.ts +0 -995
- package/src/map/adapter/extensions/resume.ts +0 -114
- package/src/map/adapter/extensions/streams.ts +0 -839
- package/src/map/adapter/extensions/task.ts +0 -326
- package/src/map/adapter/extensions/update-metadata.ts +0 -126
- package/src/map/adapter/extensions/wake.ts +0 -239
- package/src/map/adapter/extensions/workspace-files.ts +0 -449
- package/src/map/adapter/extensions/workspace.ts +0 -176
- package/src/map/adapter/index.ts +0 -163
- package/src/map/adapter/interface.ts +0 -581
- package/src/map/adapter/mail-handler-adapter.ts +0 -429
- package/src/map/adapter/map-adapter.ts +0 -1749
- package/src/map/adapter/rpc-handler.ts +0 -604
- package/src/map/adapter/subscription-manager.ts +0 -474
- package/src/map/adapter/types.ts +0 -266
- package/src/map/adapter/websocket-integration.ts +0 -229
- package/src/map/federation/__tests__/envelope.test.ts +0 -362
- package/src/map/federation/__tests__/federation-handler.test.ts +0 -461
- package/src/map/federation/envelope.ts +0 -243
- package/src/map/federation/federation-handler.ts +0 -442
- package/src/map/federation/index.ts +0 -65
- package/src/map/federation/types.ts +0 -344
- package/src/mcp/__tests__/map-client.test.ts +0 -386
- package/src/mcp/__tests__/mcp-server-thin-client.test.ts +0 -368
- package/src/mcp/__tests__/mcp-server.test.ts +0 -1002
- package/src/mcp/map-client.ts +0 -177
- package/src/mcp/mcp-server.ts +0 -1406
- package/src/mcp/tools/__tests__/done.test.ts +0 -484
- package/src/mcp/tools/claim_task.ts +0 -86
- package/src/mcp/tools/done.ts +0 -357
- package/src/mcp/tools/inject_context.ts +0 -173
- package/src/mcp/tools/list_claimable_tasks.ts +0 -93
- package/src/mcp/tools/unclaim_task.ts +0 -71
- package/src/mcp/tools/wait_for_activity.ts +0 -185
- package/src/monitor/__tests__/health-check-service.test.ts +0 -425
- package/src/monitor/__tests__/stale-agent-flow.integration.test.ts +0 -393
- package/src/monitor/__tests__/stall-detector.test.ts +0 -395
- package/src/monitor/health-check-service.ts +0 -359
- package/src/monitor/index.ts +0 -28
- package/src/monitor/stall-detector.ts +0 -238
- package/src/peer/__tests__/capability-manager.test.ts +0 -454
- package/src/peer/__tests__/encapsulation-manager.test.ts +0 -787
- package/src/peer/__tests__/federation-manager.test.ts +0 -828
- package/src/peer/__tests__/hierarchy-errors.test.ts +0 -307
- package/src/peer/__tests__/peer-manager.test.ts +0 -535
- package/src/peer/__tests__/task-delegation.test.ts +0 -741
- package/src/peer/capability-manager.ts +0 -289
- package/src/peer/encapsulation-manager.ts +0 -831
- package/src/peer/federation-manager.ts +0 -897
- package/src/peer/hierarchy-errors.ts +0 -382
- package/src/peer/hierarchy-protocol.ts +0 -328
- package/src/peer/index.ts +0 -15
- package/src/peer/peer-manager.ts +0 -540
- package/src/peer/task-delegation.ts +0 -594
- package/src/peer/transports/__tests__/local-transport.test.ts +0 -355
- package/src/peer/transports/__tests__/websocket-transport.test.ts +0 -270
- package/src/peer/transports/index.ts +0 -18
- package/src/peer/transports/local-transport.ts +0 -348
- package/src/peer/transports/websocket-transport.ts +0 -452
- package/src/peer/types.ts +0 -331
- package/src/roles/__tests__/capability-enforcement.test.ts +0 -989
- package/src/roles/__tests__/message-routing.e2e.test.ts +0 -464
- package/src/roles/__tests__/role-resolution.test.ts +0 -576
- package/src/router/README.md +0 -120
- package/src/router/__tests__/address-resolver.test.ts +0 -340
- package/src/router/__tests__/broadcast.test.ts +0 -185
- package/src/router/__tests__/message-router.test.ts +0 -1070
- package/src/router/__tests__/role-channel.test.ts +0 -213
- package/src/router/__tests__/send-to-address.test.ts +0 -731
- package/src/router/__tests__/wake.test.ts +0 -459
- package/src/router/address-resolver.ts +0 -303
- package/src/router/broadcast.ts +0 -117
- package/src/router/channels.ts +0 -283
- package/src/router/index.ts +0 -148
- package/src/router/message-router.ts +0 -1392
- package/src/router/message-types.ts +0 -294
- package/src/router/role-resolver.ts +0 -164
- package/src/router/signals.ts +0 -335
- package/src/router/types.ts +0 -306
- package/src/router/wake.ts +0 -270
- package/src/server/__tests__/combined-server.test.ts +0 -360
- package/src/server/combined-server.ts +0 -544
- package/src/steering/__tests__/inject.test.ts +0 -405
- package/src/steering/__tests__/injection.e2e.test.ts +0 -932
- package/src/steering/__tests__/steering-integration.test.ts +0 -747
- package/src/steering/index.ts +0 -25
- package/src/steering/inject.ts +0 -262
- package/src/steering/types.ts +0 -143
- package/src/store/README.md +0 -134
- package/src/store/__tests__/event-store-oob.test.ts +0 -109
- package/src/store/__tests__/event-store.test.ts +0 -1446
- package/src/store/__tests__/instance.test.ts +0 -556
- package/src/store/__tests__/migrations.test.ts +0 -109
- package/src/store/backends/__tests__/memory-backend.test.ts +0 -383
- package/src/store/backends/__tests__/sqlite-backend.test.ts +0 -427
- package/src/store/backends/index.ts +0 -42
- package/src/store/backends/json-backend.ts +0 -295
- package/src/store/backends/memory-backend.ts +0 -256
- package/src/store/backends/sqlite-backend.ts +0 -337
- package/src/store/backends/tinybase-backend.ts +0 -276
- package/src/store/backends/types.ts +0 -252
- package/src/store/event-store.ts +0 -2214
- package/src/store/instance.ts +0 -681
- package/src/store/migrations.ts +0 -96
- package/src/store/types/config.ts +0 -19
- package/src/store/types/conversations.ts +0 -129
- package/src/store/types/sessions.ts +0 -53
- package/src/task/__tests__/retry-policy.test.ts +0 -409
- package/src/task/__tests__/task-integration.test.ts +0 -457
- package/src/task/__tests__/task-manager.test.ts +0 -815
- package/src/task/backend/__tests__/create-task-backend.test.ts +0 -225
- package/src/task/backend/__tests__/e2e/unified-tool-provider-opentasks.e2e.test.ts +0 -524
- package/src/task/backend/__tests__/memory-pull-mode.test.ts +0 -153
- package/src/task/backend/__tests__/memory.test.ts +0 -1274
- package/src/task/backend/__tests__/unified-tool-provider.test.ts +0 -579
- package/src/task/backend/index.ts +0 -310
- package/src/task/backend/memory.ts +0 -828
- package/src/task/backend/opentasks/__tests__/backend.test.ts +0 -968
- package/src/task/backend/opentasks/__tests__/daemon-manager.test.ts +0 -406
- package/src/task/backend/opentasks/__tests__/mapping.test.ts +0 -84
- package/src/task/backend/opentasks/__tests__/opentasks-backend.e2e.test.ts +0 -1338
- package/src/task/backend/opentasks/backend.ts +0 -1323
- package/src/task/backend/opentasks/client.ts +0 -652
- package/src/task/backend/opentasks/daemon-manager.ts +0 -256
- package/src/task/backend/opentasks/index.ts +0 -69
- package/src/task/backend/opentasks/mapping.ts +0 -94
- package/src/task/backend/types.ts +0 -458
- package/src/task/backend/unified-tool-provider.ts +0 -779
- package/src/task/index.ts +0 -7
- package/src/task/retry-policy.ts +0 -204
- package/src/task/task-manager.ts +0 -515
- package/src/task/types.ts +0 -136
- package/src/teams/CLAUDE.md +0 -180
- package/src/teams/__tests__/cross-subsystem.integration.test.ts +0 -983
- package/src/teams/__tests__/e2e/team-runtime.e2e.test.ts +0 -553
- package/src/teams/__tests__/e2e/workspace-isolation.e2e.test.ts +0 -1263
- package/src/teams/__tests__/team-manager.test.ts +0 -814
- package/src/teams/__tests__/team-system.test.ts +0 -2563
- package/src/teams/team-manager.ts +0 -387
- package/src/teams/team-runtime.ts +0 -1198
- package/src/trigger/CLAUDE.md +0 -308
- package/src/trigger/README.md +0 -429
- package/src/trigger/__tests__/macro-agent-regression.test.ts +0 -946
- package/src/trigger/__tests__/routing-strategies.test.ts +0 -329
- package/src/trigger/__tests__/trigger-router.test.ts +0 -433
- package/src/trigger/__tests__/trigger-system-integration.test.ts +0 -581
- package/src/trigger/router/index.ts +0 -36
- package/src/trigger/router/strategies/ai-router-strategy.ts +0 -481
- package/src/trigger/router/strategies/direct-strategy.ts +0 -162
- package/src/trigger/router/strategies/index.ts +0 -26
- package/src/trigger/router/strategies/role-strategy.ts +0 -274
- package/src/trigger/router/trigger-router.ts +0 -463
- package/src/trigger/router/types.ts +0 -273
- package/src/trigger/trigger-system.ts +0 -206
- package/src/workspace/__tests__/multi-coordinator.test.ts +0 -1005
- package/src/workspace/__tests__/workspace-manager.test.ts +0 -391
- package/src/workspace/__tests__/workspace.e2e.test.ts +0 -1155
- package/src/workspace/merge-queue/__tests__/hierarchical-consolidation.e2e.test.ts +0 -414
- package/test_fixtures/harness/__tests__/behavior-executor-and-stepper.test.ts +0 -714
- package/test_fixtures/harness/__tests__/fixtures.test.ts +0 -347
- package/test_fixtures/harness/__tests__/merge-queue-and-worktrees.test.ts +0 -452
- package/test_fixtures/harness/__tests__/temp-repo-and-simulator.test.ts +0 -422
- package/test_fixtures/harness/__tests__/test-harness-and-assertions.test.ts +0 -568
- /package/{references/acp-factory-ref/python/tests/__init__.py → .opentasks/graph.jsonl} +0 -0
|
@@ -1,1324 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AgentManager -
|
|
2
|
+
* AgentManager - Interface and types for managing agent lifecycle and sessions
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
import { AgentManagerError } from "./types.js";
|
|
13
|
-
import { AGENT_CAPABILITIES } from "../roles/capabilities.js";
|
|
14
|
-
import { DefaultRoleRegistry } from "../roles/registry.js";
|
|
15
|
-
import { generateSystemPrompt } from "./system-prompt.js";
|
|
16
|
-
import { terminateWithChangeConsolidation, } from "../lifecycle/cascade.js";
|
|
17
|
-
// ─────────────────────────────────────────────────────────────────
|
|
18
|
-
// Helper Functions
|
|
19
|
-
// ─────────────────────────────────────────────────────────────────
|
|
20
|
-
/**
|
|
21
|
-
* Map a child role name to the required spawn capability.
|
|
22
|
-
* Handles subroles like "worker.resolver" by checking base role.
|
|
4
|
+
* The V1 implementation has been removed. The V2 implementation lives in
|
|
5
|
+
* agent-manager-v2.ts and is wired via boot-v2.ts.
|
|
6
|
+
*
|
|
7
|
+
* This file retains:
|
|
8
|
+
* - The AgentManager interface (used everywhere)
|
|
9
|
+
* - The AgentManagerConfig interface
|
|
10
|
+
* - The SpawnInterceptor type
|
|
11
|
+
* - A re-export of createAgentManagerV2 as createAgentManager for backward compat
|
|
23
12
|
*/
|
|
24
|
-
function getSpawnCapability(childRole) {
|
|
25
|
-
// Extract base role (e.g., "worker.resolver" -> "worker")
|
|
26
|
-
const baseRole = childRole.split(".")[0];
|
|
27
|
-
switch (baseRole) {
|
|
28
|
-
case "worker":
|
|
29
|
-
return AGENT_CAPABILITIES.SPAWN_WORKER;
|
|
30
|
-
case "integrator":
|
|
31
|
-
return AGENT_CAPABILITIES.SPAWN_INTEGRATOR;
|
|
32
|
-
case "monitor":
|
|
33
|
-
return AGENT_CAPABILITIES.SPAWN_MONITOR;
|
|
34
|
-
case "coordinator":
|
|
35
|
-
// Coordinators require special handling - typically only other coordinators
|
|
36
|
-
// or system-level agents can spawn coordinators
|
|
37
|
-
return AGENT_CAPABILITIES.SPAWN_CUSTOM;
|
|
38
|
-
default:
|
|
39
|
-
// For team-defined roles (e.g., "grinder"), return the specific capability
|
|
40
|
-
// (e.g., "agent.spawn.grinder"). The spawn check also accepts
|
|
41
|
-
// "agent.spawn.custom" as a generic fallback.
|
|
42
|
-
return `agent.spawn.${childRole}`;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
13
|
// ─────────────────────────────────────────────────────────────────
|
|
46
|
-
//
|
|
14
|
+
// Re-export V2 implementation as createAgentManager for backward compat
|
|
47
15
|
// ─────────────────────────────────────────────────────────────────
|
|
48
|
-
export
|
|
49
|
-
const { defaultPermissionMode = "auto-approve", defaultAgentType = "claude-code", defaultCwd = process.cwd(), workspaceManager, roleRegistry = new DefaultRoleRegistry(), healthCheckService, mailService: initialMailService, conversationMap: initialConversationMap, serverUrl, serverToken, agentTokenManager, taskBackend: configTaskBackend, openTasksSocketPath: initialOpenTasksSocketPath, } = config;
|
|
50
|
-
// Mutable OpenTasks socket path (support late binding via setOpenTasksSocketPath)
|
|
51
|
-
let configOpenTasksSocketPath = initialOpenTasksSocketPath;
|
|
52
|
-
// Mutable mail services (support late binding via setMailServices)
|
|
53
|
-
let mailService = initialMailService;
|
|
54
|
-
let conversationMap = initialConversationMap;
|
|
55
|
-
// Mutable spawn interceptor (set by TeamRuntime)
|
|
56
|
-
let spawnInterceptor = null;
|
|
57
|
-
// Active sessions tracked in memory
|
|
58
|
-
const activeSessions = new Map();
|
|
59
|
-
// Agent workspace mappings (agentId → workspace)
|
|
60
|
-
const agentWorkspaces = new Map();
|
|
61
|
-
// Lifecycle event listeners
|
|
62
|
-
const lifecycleListeners = new Set();
|
|
63
|
-
// Shutdown guard — prevents spawns during close()
|
|
64
|
-
let isShuttingDown = false;
|
|
65
|
-
// ─────────────────────────────────────────────────────────────────
|
|
66
|
-
// MCP Server Config
|
|
67
|
-
// ─────────────────────────────────────────────────────────────────
|
|
68
|
-
/**
|
|
69
|
-
* Build the macro-agent MCP server config for a Claude Code agent session.
|
|
70
|
-
* Used by spawn(), resume(), and forkAgent() to ensure every agent gets
|
|
71
|
-
* access to the macro-agent coordination tools.
|
|
72
|
-
*/
|
|
73
|
-
function buildMacroAgentMcp(opts) {
|
|
74
|
-
// Common env vars for both thin-client and legacy modes
|
|
75
|
-
const env = [
|
|
76
|
-
{ name: "MACRO_AGENT_ID", value: opts.agentId },
|
|
77
|
-
{ name: "MACRO_PARENT_ID", value: opts.parentId },
|
|
78
|
-
{ name: "MACRO_TASK_ID", value: opts.taskId },
|
|
79
|
-
{ name: "MACRO_AGENT_CWD", value: opts.cwd },
|
|
80
|
-
{ name: "MACRO_PERMISSION_MODE", value: opts.permissionMode },
|
|
81
|
-
{
|
|
82
|
-
name: "MACRO_TASK_BACKEND",
|
|
83
|
-
value: configTaskBackend ?? process.env.MACRO_TASK_BACKEND ?? "",
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
name: "OPENTASKS_SOCKET_PATH",
|
|
87
|
-
value: configOpenTasksSocketPath ?? process.env.OPENTASKS_SOCKET_PATH ?? "",
|
|
88
|
-
},
|
|
89
|
-
// Pass streamId so MCP subprocess can include it in lifecycle context
|
|
90
|
-
// (WorkspaceManager is not available in subprocess)
|
|
91
|
-
{ name: "MACRO_STREAM_ID", value: opts.streamId ?? "" },
|
|
92
|
-
];
|
|
93
|
-
if (serverUrl) {
|
|
94
|
-
// Thin-client mode: forward tool calls to main server via MAP WebSocket
|
|
95
|
-
env.push({ name: "MACRO_SERVER_URL", value: serverUrl }, {
|
|
96
|
-
name: "MACRO_AGENT_LINEAGE",
|
|
97
|
-
value: JSON.stringify(opts.lineage ?? []),
|
|
98
|
-
}, { name: "MACRO_SESSION_ID", value: opts.sessionId ?? "" });
|
|
99
|
-
// Auth tokens for thin-client connections
|
|
100
|
-
if (serverToken) {
|
|
101
|
-
env.push({ name: "MACRO_SERVER_TOKEN", value: serverToken });
|
|
102
|
-
}
|
|
103
|
-
if (agentTokenManager) {
|
|
104
|
-
const agentToken = agentTokenManager.createToken(opts.agentId);
|
|
105
|
-
env.push({ name: "MACRO_AGENT_TOKEN", value: agentToken });
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
// Legacy mode: create local service stack with shared SQLite
|
|
110
|
-
env.push({ name: "MACRO_INSTANCE_ID", value: eventStore.instanceId }, { name: "MACRO_BASE_DIR", value: eventStore.baseDir });
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
name: "macro-agent",
|
|
114
|
-
command: "npx",
|
|
115
|
-
args: ["multiagent-mcp"],
|
|
116
|
-
env,
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
// ─────────────────────────────────────────────────────────────────
|
|
120
|
-
// Lifecycle
|
|
121
|
-
// ─────────────────────────────────────────────────────────────────
|
|
122
|
-
async function spawn(rawOptions) {
|
|
123
|
-
if (isShuttingDown) {
|
|
124
|
-
throw new AgentManagerError("Cannot spawn agent during shutdown", "SHUTDOWN_IN_PROGRESS");
|
|
125
|
-
}
|
|
126
|
-
// Apply spawn interceptor if set (used by TeamRuntime for team context injection)
|
|
127
|
-
const options = spawnInterceptor
|
|
128
|
-
? await spawnInterceptor(rawOptions)
|
|
129
|
-
: rawOptions;
|
|
130
|
-
const { task, task_id, parent, cwd = defaultCwd, permissionMode = defaultPermissionMode, subscribeParent = true, topics = [], config: agentConfig, agentType = defaultAgentType, customPrompt, interactionPatterns,
|
|
131
|
-
// Workspace-related fields (Phase 2)
|
|
132
|
-
role, team_instance, streamId, streamConfig, dataplaneTaskId, capabilities, } = options;
|
|
133
|
-
// Generate IDs upfront (including session_id so we can persist before starting MCP)
|
|
134
|
-
const agentId = `agent_${nanoid(12)}`;
|
|
135
|
-
const taskId = task_id ?? `task_${nanoid(12)}`;
|
|
136
|
-
const sessionId = `session_${nanoid(12)}`;
|
|
137
|
-
// Validate parent exists if specified
|
|
138
|
-
if (parent) {
|
|
139
|
-
const parentAgent = eventStore.getAgent(parent);
|
|
140
|
-
if (!parentAgent) {
|
|
141
|
-
throw new AgentManagerError(`Parent agent not found: ${parent}`, "AGENT_NOT_FOUND", parent);
|
|
142
|
-
}
|
|
143
|
-
// Check spawn capability
|
|
144
|
-
const childRole = role ?? "worker";
|
|
145
|
-
const requiredCapability = getSpawnCapability(childRole);
|
|
146
|
-
const parentRole = parentAgent.role ?? "worker";
|
|
147
|
-
// Accept either the specific capability (e.g., agent.spawn.grinder)
|
|
148
|
-
// or the generic agent.spawn.custom as a fallback for non-built-in roles
|
|
149
|
-
const hasSpecific = roleRegistry.hasCapability(parentRole, requiredCapability);
|
|
150
|
-
const hasGeneric = requiredCapability !== AGENT_CAPABILITIES.SPAWN_CUSTOM &&
|
|
151
|
-
roleRegistry.hasCapability(parentRole, AGENT_CAPABILITIES.SPAWN_CUSTOM);
|
|
152
|
-
if (!hasSpecific && !hasGeneric) {
|
|
153
|
-
throw new AgentManagerError(`Parent agent with role '${parentRole}' does not have capability to spawn '${childRole}' agents. ` +
|
|
154
|
-
`Required capability: ${requiredCapability}`, "CAPABILITY_DENIED", parent);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
// Build system prompt context
|
|
158
|
-
const parentAgent = parent ? eventStore.getAgent(parent) : null;
|
|
159
|
-
const promptContext = {
|
|
160
|
-
agentId,
|
|
161
|
-
task,
|
|
162
|
-
taskId,
|
|
163
|
-
parentId: parent ?? null,
|
|
164
|
-
isHeadManager: !parent,
|
|
165
|
-
lineage: parentAgent?.lineage ? [...parentAgent.lineage, parent] : [],
|
|
166
|
-
role: role ?? "worker",
|
|
167
|
-
mcpTools: [
|
|
168
|
-
"done", // Listed first - most important tool for completion
|
|
169
|
-
"spawn_agent",
|
|
170
|
-
"emit_status",
|
|
171
|
-
"send_message",
|
|
172
|
-
"check_messages",
|
|
173
|
-
"get_hierarchy",
|
|
174
|
-
"get_agent_summary",
|
|
175
|
-
"stop_agent",
|
|
176
|
-
"create_task",
|
|
177
|
-
"get_task",
|
|
178
|
-
],
|
|
179
|
-
};
|
|
180
|
-
let systemPrompt = generateSystemPrompt(promptContext);
|
|
181
|
-
// Append role prompt: team customPrompt takes precedence over resolvedRole.systemPrompt
|
|
182
|
-
const resolvedRole = roleRegistry.resolveRole(role ?? "worker");
|
|
183
|
-
if (customPrompt) {
|
|
184
|
-
systemPrompt += `\n\n# Role Instructions\n\n${customPrompt}`;
|
|
185
|
-
}
|
|
186
|
-
else if (resolvedRole.systemPrompt) {
|
|
187
|
-
systemPrompt += `\n\n# Role-Specific Instructions\n\n${resolvedRole.systemPrompt}`;
|
|
188
|
-
}
|
|
189
|
-
// Append team interaction pattern sections (pull mode, trunk integration, etc.)
|
|
190
|
-
if (interactionPatterns && interactionPatterns.length > 0) {
|
|
191
|
-
for (const pattern of interactionPatterns) {
|
|
192
|
-
systemPrompt += `\n\n${pattern}`;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
eventStore.emit({
|
|
196
|
-
type: "spawn",
|
|
197
|
-
source: { agent_id: parent ?? "system" },
|
|
198
|
-
payload: {
|
|
199
|
-
agent_id: agentId,
|
|
200
|
-
session_id: sessionId,
|
|
201
|
-
task,
|
|
202
|
-
task_id: taskId,
|
|
203
|
-
parent: parent ?? null,
|
|
204
|
-
role: role ?? undefined,
|
|
205
|
-
team_instance: team_instance ?? undefined,
|
|
206
|
-
config: agentConfig ?? {},
|
|
207
|
-
cwd,
|
|
208
|
-
},
|
|
209
|
-
});
|
|
210
|
-
// Generate a human-readable default name
|
|
211
|
-
const generatedName = uniqueNamesGenerator({
|
|
212
|
-
dictionaries: [adjectives, animals],
|
|
213
|
-
separator: "-",
|
|
214
|
-
length: 2,
|
|
215
|
-
});
|
|
216
|
-
eventStore.updateAgentMetadata(agentId, { name: generatedName });
|
|
217
|
-
// Persist immediately so MCP server subprocess can read the agent
|
|
218
|
-
await eventStore.persist();
|
|
219
|
-
// Verify the agent is now in the store
|
|
220
|
-
const verifyAgent = eventStore.getAgent(agentId);
|
|
221
|
-
const allAgents = eventStore.listAgents();
|
|
222
|
-
console.error(`[AgentManager] After persist: agent ${agentId} exists = ${!!verifyAgent}, total agents = ${allAgents.length}, instancePath = ${eventStore.instancePath}`);
|
|
223
|
-
console.error(`[AgentManager] All agent IDs: ${allAgents.map((a) => a.id).join(", ")}`);
|
|
224
|
-
try {
|
|
225
|
-
// Spawn agent process via acp-factory
|
|
226
|
-
const handle = await AgentFactory.spawn(agentType, {
|
|
227
|
-
permissionMode,
|
|
228
|
-
env: agentConfig?.env,
|
|
229
|
-
});
|
|
230
|
-
try {
|
|
231
|
-
// ─────────────────────────────────────────────────────────────────
|
|
232
|
-
// Workspace Creation (before session, so cwd reflects worktree)
|
|
233
|
-
// ─────────────────────────────────────────────────────────────────
|
|
234
|
-
let workspace;
|
|
235
|
-
let resolvedStreamId = streamId;
|
|
236
|
-
if (workspaceManager && role) {
|
|
237
|
-
try {
|
|
238
|
-
workspace = await createWorkspaceForRole(workspaceManager, agentId, role, {
|
|
239
|
-
streamId,
|
|
240
|
-
streamConfig,
|
|
241
|
-
dataplaneTaskId,
|
|
242
|
-
capabilities,
|
|
243
|
-
cwd,
|
|
244
|
-
});
|
|
245
|
-
if (workspace) {
|
|
246
|
-
agentWorkspaces.set(agentId, workspace);
|
|
247
|
-
resolvedStreamId = workspace.streamId;
|
|
248
|
-
// Create and claim a dataplane task so the worktree gets a real
|
|
249
|
-
// worker branch. Without this, the worktree stays in detached
|
|
250
|
-
// HEAD and done() would detect "HEAD" instead of the actual
|
|
251
|
-
// worker branch name (e.g. worker/<agentId>/<taskId>).
|
|
252
|
-
if (workspace.role === "worker" && workspace.streamId) {
|
|
253
|
-
try {
|
|
254
|
-
const dpTaskId = workspaceManager.createTask(workspace.streamId, { title: task ?? `Task for ${agentId}` });
|
|
255
|
-
workspaceManager.claimTask(dpTaskId, agentId, workspace.path);
|
|
256
|
-
}
|
|
257
|
-
catch (claimErr) {
|
|
258
|
-
console.error(`[AgentManager] Failed to create/claim dataplane task for ${agentId}:`, claimErr);
|
|
259
|
-
// Continue without a branch — worktree stays in detached HEAD
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
// Register with parent coordinator if applicable
|
|
263
|
-
const isChildRole = role === "worker" || role === "integrator" ||
|
|
264
|
-
(capabilities && (capabilities.includes("workspace.worktree") || capabilities.includes("workspace.integrate")));
|
|
265
|
-
if (parent && isChildRole) {
|
|
266
|
-
const parentWorkspace = agentWorkspaces.get(parent);
|
|
267
|
-
if (parentWorkspace?.role === "coordinator") {
|
|
268
|
-
workspaceManager.registerChildWorkspace(parent, agentId, workspace.path);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
catch (wsError) {
|
|
274
|
-
console.error(`[AgentManager] Failed to create workspace for ${agentId}: ${wsError}`);
|
|
275
|
-
// Continue without workspace — don't fail the spawn
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
// Use workspace path as the agent's working directory when available.
|
|
279
|
-
// This ensures the agent process, MCP subprocess (MACRO_AGENT_CWD), and
|
|
280
|
-
// done handler all use the worktree path instead of the repo root.
|
|
281
|
-
const effectiveCwd = workspace?.path ?? cwd;
|
|
282
|
-
// Update agent's cwd in EventStore so resume() also uses workspace path
|
|
283
|
-
if (workspace) {
|
|
284
|
-
eventStore.updateAgentMetadata(agentId, { cwd: effectiveCwd });
|
|
285
|
-
await eventStore.persist();
|
|
286
|
-
}
|
|
287
|
-
const macroAgentMcp = buildMacroAgentMcp({
|
|
288
|
-
agentId,
|
|
289
|
-
parentId: parent ?? "",
|
|
290
|
-
taskId,
|
|
291
|
-
cwd: effectiveCwd,
|
|
292
|
-
permissionMode,
|
|
293
|
-
lineage: parentAgent?.lineage
|
|
294
|
-
? [...parentAgent.lineage, parent]
|
|
295
|
-
: [],
|
|
296
|
-
sessionId,
|
|
297
|
-
streamId,
|
|
298
|
-
});
|
|
299
|
-
// Combine with any user-provided MCP servers
|
|
300
|
-
// Note: Like macroAgentMcp, user MCP servers use stdio (no 'type' field)
|
|
301
|
-
const userMcpServers = agentConfig?.mcpServers?.map((s) => ({
|
|
302
|
-
name: s.name,
|
|
303
|
-
command: s.command,
|
|
304
|
-
args: s.args ?? [],
|
|
305
|
-
env: s.env
|
|
306
|
-
? Object.entries(s.env).map(([name, value]) => ({ name, value }))
|
|
307
|
-
: [],
|
|
308
|
-
})) ?? [];
|
|
309
|
-
// Create session with MCP servers
|
|
310
|
-
// Note: The MCP server subprocess will start here and look for the agent
|
|
311
|
-
// in EventStore. We already persisted the spawn event above.
|
|
312
|
-
//
|
|
313
|
-
// When permissionMode is "interactive", we strip settingSources so that
|
|
314
|
-
// the Claude Code subprocess doesn't read pre-approved tool rules from
|
|
315
|
-
// the user's ~/.claude/settings.local.json. This ensures ALL tool calls
|
|
316
|
-
// go through the canUseTool → requestPermission ACP flow.
|
|
317
|
-
const agentMeta = permissionMode === "interactive"
|
|
318
|
-
? { claudeCode: { options: { settingSources: [] } } }
|
|
319
|
-
: undefined;
|
|
320
|
-
const session = await handle.createSession(effectiveCwd, {
|
|
321
|
-
mcpServers: [macroAgentMcp, ...userMcpServers],
|
|
322
|
-
...(agentMeta && { agentMeta }),
|
|
323
|
-
});
|
|
324
|
-
// Emit started status (session is ready)
|
|
325
|
-
// Include the provider's session ID (e.g., Claude Code UUID) so
|
|
326
|
-
// it can be used for handle.loadSession() during resume
|
|
327
|
-
eventStore.emit({
|
|
328
|
-
type: "status",
|
|
329
|
-
source: { agent_id: agentId },
|
|
330
|
-
payload: {
|
|
331
|
-
status_type: "started",
|
|
332
|
-
summary: "Agent session started",
|
|
333
|
-
provider_session_id: session.id,
|
|
334
|
-
},
|
|
335
|
-
});
|
|
336
|
-
// Persist the status event
|
|
337
|
-
await eventStore.persist();
|
|
338
|
-
// Set up default subscriptions via MessageRouter
|
|
339
|
-
messageRouter.setupDefaultSubscriptions({
|
|
340
|
-
agent_id: agentId,
|
|
341
|
-
parent_id: parent ?? undefined,
|
|
342
|
-
task_id: taskId,
|
|
343
|
-
subscribe_parent: subscribeParent,
|
|
344
|
-
additional_topics: topics,
|
|
345
|
-
role: role ?? undefined,
|
|
346
|
-
});
|
|
347
|
-
// ─────────────────────────────────────────────────────────────────
|
|
348
|
-
// Mail: Create task conversation for this agent
|
|
349
|
-
// ─────────────────────────────────────────────────────────────────
|
|
350
|
-
if (mailService && conversationMap) {
|
|
351
|
-
try {
|
|
352
|
-
const parentConversationId = parent
|
|
353
|
-
? (conversationMap.getAgentConversation(parent) ??
|
|
354
|
-
conversationMap.getSessionConversation(parent))
|
|
355
|
-
: undefined;
|
|
356
|
-
const { conversationId: taskConvId } = mailService.createConversation({
|
|
357
|
-
type: "task",
|
|
358
|
-
subject: task?.slice(0, 80),
|
|
359
|
-
createdBy: parent ?? agentId,
|
|
360
|
-
parentConversationId: parentConversationId,
|
|
361
|
-
});
|
|
362
|
-
// Join parent and child as participants
|
|
363
|
-
if (parent) {
|
|
364
|
-
mailService.joinConversation({
|
|
365
|
-
conversationId: taskConvId,
|
|
366
|
-
participantId: parent,
|
|
367
|
-
participantType: "agent",
|
|
368
|
-
role: "initiator",
|
|
369
|
-
agentId: parent,
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
mailService.joinConversation({
|
|
373
|
-
conversationId: taskConvId,
|
|
374
|
-
participantId: agentId,
|
|
375
|
-
participantType: "agent",
|
|
376
|
-
role: "worker",
|
|
377
|
-
agentId,
|
|
378
|
-
});
|
|
379
|
-
conversationMap.setAgentConversation(agentId, taskConvId);
|
|
380
|
-
}
|
|
381
|
-
catch (err) {
|
|
382
|
-
// Never fail spawn due to mail errors
|
|
383
|
-
console.warn(`[AgentManager] Failed to create task conversation for ${agentId}:`, err);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
// Track active session
|
|
387
|
-
const activeSession = {
|
|
388
|
-
agentId,
|
|
389
|
-
handle,
|
|
390
|
-
session,
|
|
391
|
-
createdAt: Date.now(),
|
|
392
|
-
isPrompting: false,
|
|
393
|
-
};
|
|
394
|
-
activeSessions.set(agentId, activeSession);
|
|
395
|
-
// Get the agent from materialized view
|
|
396
|
-
const agent = eventStore.getAgent(agentId);
|
|
397
|
-
// Notify lifecycle listeners
|
|
398
|
-
notifyLifecycle({ type: "spawned", agent });
|
|
399
|
-
notifyLifecycle({ type: "started", agent });
|
|
400
|
-
// Start health monitoring for coordinators
|
|
401
|
-
if (healthCheckService && role === "coordinator") {
|
|
402
|
-
healthCheckService.startForCoordinator(agentId);
|
|
403
|
-
}
|
|
404
|
-
return {
|
|
405
|
-
id: agentId,
|
|
406
|
-
session_id: sessionId, // Macro-agent's own session ID for ACP protocol mapping
|
|
407
|
-
agent,
|
|
408
|
-
session,
|
|
409
|
-
workspace,
|
|
410
|
-
streamId: resolvedStreamId,
|
|
411
|
-
};
|
|
412
|
-
}
|
|
413
|
-
catch (handleError) {
|
|
414
|
-
// Close the spawned process to prevent orphaning
|
|
415
|
-
try {
|
|
416
|
-
await handle.close();
|
|
417
|
-
}
|
|
418
|
-
catch {
|
|
419
|
-
// Ignore errors during cleanup
|
|
420
|
-
}
|
|
421
|
-
throw handleError;
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
catch (error) {
|
|
425
|
-
// Clean up the spawn event we already emitted
|
|
426
|
-
eventStore.emit({
|
|
427
|
-
type: "stop",
|
|
428
|
-
source: { agent_id: agentId },
|
|
429
|
-
payload: {
|
|
430
|
-
reason: "failed",
|
|
431
|
-
},
|
|
432
|
-
});
|
|
433
|
-
await eventStore.persist();
|
|
434
|
-
throw new AgentManagerError(`Failed to spawn agent: ${error}`, "SPAWN_FAILED", agentId);
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
async function terminate(agentId, reason) {
|
|
438
|
-
const agent = eventStore.getAgent(agentId);
|
|
439
|
-
if (!agent) {
|
|
440
|
-
throw new AgentManagerError(`Agent not found: ${agentId}`, "AGENT_NOT_FOUND", agentId);
|
|
441
|
-
}
|
|
442
|
-
// Close active session if exists
|
|
443
|
-
const activeSession = activeSessions.get(agentId);
|
|
444
|
-
if (activeSession) {
|
|
445
|
-
try {
|
|
446
|
-
await activeSession.handle.close();
|
|
447
|
-
}
|
|
448
|
-
catch {
|
|
449
|
-
// Ignore errors during cleanup
|
|
450
|
-
}
|
|
451
|
-
activeSessions.delete(agentId);
|
|
452
|
-
}
|
|
453
|
-
// Stop health monitoring for coordinators
|
|
454
|
-
if (healthCheckService && agent.role === "coordinator") {
|
|
455
|
-
healthCheckService.stopForCoordinator(agentId);
|
|
456
|
-
}
|
|
457
|
-
// ─────────────────────────────────────────────────────────────────
|
|
458
|
-
// Workspace Cleanup (Phase 2)
|
|
459
|
-
// ─────────────────────────────────────────────────────────────────
|
|
460
|
-
if (workspaceManager && agentWorkspaces.has(agentId)) {
|
|
461
|
-
try {
|
|
462
|
-
workspaceManager.deallocateWorkspace(agentId);
|
|
463
|
-
agentWorkspaces.delete(agentId);
|
|
464
|
-
}
|
|
465
|
-
catch (wsError) {
|
|
466
|
-
console.error(`[AgentManager] Failed to deallocate workspace for ${agentId}: ${wsError}`);
|
|
467
|
-
// Continue with termination even if workspace cleanup fails
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
// Revoke agent authentication token
|
|
471
|
-
if (agentTokenManager) {
|
|
472
|
-
agentTokenManager.revokeToken(agentId);
|
|
473
|
-
}
|
|
474
|
-
// ─────────────────────────────────────────────────────────────────
|
|
475
|
-
// Mail: Close task conversation on terminate
|
|
476
|
-
// ─────────────────────────────────────────────────────────────────
|
|
477
|
-
if (mailService && conversationMap) {
|
|
478
|
-
try {
|
|
479
|
-
const convId = conversationMap.getAgentConversation(agentId);
|
|
480
|
-
if (convId) {
|
|
481
|
-
mailService.closeConversation({
|
|
482
|
-
conversationId: convId,
|
|
483
|
-
closedBy: agentId,
|
|
484
|
-
reason: reason === "completed" ? "completed" : "failed",
|
|
485
|
-
});
|
|
486
|
-
}
|
|
487
|
-
// Close any peer conversations
|
|
488
|
-
const peerConvIds = conversationMap.closePeerConversationsFor(agentId);
|
|
489
|
-
for (const peerConvId of peerConvIds) {
|
|
490
|
-
mailService.closeConversation({
|
|
491
|
-
conversationId: peerConvId,
|
|
492
|
-
closedBy: agentId,
|
|
493
|
-
reason: "participant_left",
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
|
-
conversationMap.removeAgent(agentId);
|
|
497
|
-
}
|
|
498
|
-
catch (err) {
|
|
499
|
-
console.warn(`[AgentManager] Failed to close conversation for ${agentId}:`, err);
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
// Emit stop event
|
|
503
|
-
eventStore.emit({
|
|
504
|
-
type: "stop",
|
|
505
|
-
source: { agent_id: agentId },
|
|
506
|
-
payload: {
|
|
507
|
-
agent_id: agentId,
|
|
508
|
-
reason,
|
|
509
|
-
},
|
|
510
|
-
});
|
|
511
|
-
// If agent had a task, update task status based on reason
|
|
512
|
-
if (agent.task_id) {
|
|
513
|
-
const taskStatus = reason === "completed"
|
|
514
|
-
? "completed"
|
|
515
|
-
: reason === "failed"
|
|
516
|
-
? "failed"
|
|
517
|
-
: "pending";
|
|
518
|
-
eventStore.emit({
|
|
519
|
-
type: "task",
|
|
520
|
-
source: { agent_id: agentId },
|
|
521
|
-
payload: {
|
|
522
|
-
task_id: agent.task_id,
|
|
523
|
-
action: reason === "completed" ? "completed" : "status_change",
|
|
524
|
-
details: { status: taskStatus },
|
|
525
|
-
},
|
|
526
|
-
});
|
|
527
|
-
}
|
|
528
|
-
// Persist events to SQLite for cross-process visibility
|
|
529
|
-
await eventStore.persist();
|
|
530
|
-
// Notify lifecycle listeners
|
|
531
|
-
const updatedAgent = eventStore.getAgent(agentId);
|
|
532
|
-
notifyLifecycle({ type: "stopped", agent: updatedAgent, reason });
|
|
533
|
-
// Terminate child agents when parent stops (always cascade)
|
|
534
|
-
// Use change consolidation to merge child branches back to parent before terminating
|
|
535
|
-
const children = getChildren(agentId);
|
|
536
|
-
const parentWorkspace = agentWorkspaces.get(agentId);
|
|
537
|
-
for (const child of children) {
|
|
538
|
-
if (child.state === "running" || child.state === "spawning") {
|
|
539
|
-
// Create workspace provider for change consolidation
|
|
540
|
-
const workspaceProvider = parentWorkspace
|
|
541
|
-
? {
|
|
542
|
-
getWorkspace: (id) => agentWorkspaces.get(id) ?? null,
|
|
543
|
-
}
|
|
544
|
-
: undefined;
|
|
545
|
-
// Create cascade adapter for termination
|
|
546
|
-
const cascadeAdapter = {
|
|
547
|
-
getChildren: (id) => getChildren(id).map((c) => ({
|
|
548
|
-
id: c.id,
|
|
549
|
-
state: c.state,
|
|
550
|
-
parent: c.parent,
|
|
551
|
-
})),
|
|
552
|
-
terminate: async (id, terminateReason) => {
|
|
553
|
-
await terminate(id, terminateReason);
|
|
554
|
-
},
|
|
555
|
-
};
|
|
556
|
-
// Use terminateWithChangeConsolidation to merge changes before terminating
|
|
557
|
-
await terminateWithChangeConsolidation(child.id, agentId, cascadeAdapter, workspaceProvider);
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
async function resume(agentId, overridePermissionMode) {
|
|
562
|
-
if (isShuttingDown) {
|
|
563
|
-
throw new AgentManagerError("Cannot resume agent during shutdown", "SHUTDOWN_IN_PROGRESS", agentId);
|
|
564
|
-
}
|
|
565
|
-
const agent = eventStore.getAgent(agentId);
|
|
566
|
-
if (!agent) {
|
|
567
|
-
throw new AgentManagerError(`Agent not found: ${agentId}`, "AGENT_NOT_FOUND", agentId);
|
|
568
|
-
}
|
|
569
|
-
// Check if already running
|
|
570
|
-
if (activeSessions.has(agentId)) {
|
|
571
|
-
throw new AgentManagerError(`Agent already has active session: ${agentId}`, "ALREADY_RUNNING", agentId);
|
|
572
|
-
}
|
|
573
|
-
const permissionMode = overridePermissionMode ?? defaultPermissionMode;
|
|
574
|
-
// Spawn new process
|
|
575
|
-
const handle = await AgentFactory.spawn(defaultAgentType, {
|
|
576
|
-
permissionMode,
|
|
577
|
-
});
|
|
578
|
-
try {
|
|
579
|
-
const agentCwd = agent.cwd ?? defaultCwd;
|
|
580
|
-
let session;
|
|
581
|
-
// When interactive mode, strip settings to prevent auto-approval
|
|
582
|
-
const resumeAgentMeta = permissionMode === "interactive"
|
|
583
|
-
? { claudeCode: { options: { settingSources: [] } } }
|
|
584
|
-
: undefined;
|
|
585
|
-
const macroAgentMcp = buildMacroAgentMcp({
|
|
586
|
-
agentId,
|
|
587
|
-
parentId: agent.parent ?? "",
|
|
588
|
-
taskId: agent.task_id ?? "",
|
|
589
|
-
cwd: agentCwd,
|
|
590
|
-
permissionMode,
|
|
591
|
-
lineage: agent.lineage ?? [],
|
|
592
|
-
sessionId: agent.session_id ?? "",
|
|
593
|
-
});
|
|
594
|
-
const mcpServers = [macroAgentMcp];
|
|
595
|
-
if (agent.provider_session_id) {
|
|
596
|
-
// Load existing session using the provider's session ID (e.g., Claude Code UUID)
|
|
597
|
-
// Note: loadSession's TS type for mcpServers is { name, uri }[] but
|
|
598
|
-
// the underlying ACP protocol accepts full McpServerStdio. The JS
|
|
599
|
-
// implementation passes mcpServers through to the connection unchanged.
|
|
600
|
-
session = await handle.loadSession(agent.provider_session_id, agentCwd, mcpServers, resumeAgentMeta ? { agentMeta: resumeAgentMeta } : undefined);
|
|
601
|
-
}
|
|
602
|
-
else {
|
|
603
|
-
// No provider session ID available (agent predates this feature or wasn't persisted).
|
|
604
|
-
// Create a new session instead of loading with the macro-agent session_id
|
|
605
|
-
// which is not a valid provider session ID (e.g., Claude Code expects UUIDs).
|
|
606
|
-
session = await handle.createSession(agentCwd, {
|
|
607
|
-
mcpServers,
|
|
608
|
-
...(resumeAgentMeta && { agentMeta: resumeAgentMeta }),
|
|
609
|
-
});
|
|
610
|
-
// Store the provider session ID for future resumes
|
|
611
|
-
eventStore.emit({
|
|
612
|
-
type: "status",
|
|
613
|
-
source: { agent_id: agentId },
|
|
614
|
-
payload: {
|
|
615
|
-
status_type: "started",
|
|
616
|
-
summary: "Agent session created (no provider session to resume)",
|
|
617
|
-
provider_session_id: session.id,
|
|
618
|
-
},
|
|
619
|
-
});
|
|
620
|
-
}
|
|
621
|
-
// Track active session
|
|
622
|
-
const activeSession = {
|
|
623
|
-
agentId,
|
|
624
|
-
handle,
|
|
625
|
-
session,
|
|
626
|
-
createdAt: Date.now(),
|
|
627
|
-
isPrompting: false,
|
|
628
|
-
};
|
|
629
|
-
activeSessions.set(agentId, activeSession);
|
|
630
|
-
// Emit status event for resume
|
|
631
|
-
eventStore.emit({
|
|
632
|
-
type: "status",
|
|
633
|
-
source: { agent_id: agentId },
|
|
634
|
-
payload: {
|
|
635
|
-
status_type: "started",
|
|
636
|
-
summary: "Agent session resumed",
|
|
637
|
-
provider_session_id: session.id,
|
|
638
|
-
},
|
|
639
|
-
});
|
|
640
|
-
return {
|
|
641
|
-
id: agentId,
|
|
642
|
-
session_id: agent.session_id, // Macro-agent's own session ID
|
|
643
|
-
agent: eventStore.getAgent(agentId),
|
|
644
|
-
session,
|
|
645
|
-
};
|
|
646
|
-
}
|
|
647
|
-
catch (handleError) {
|
|
648
|
-
// Close the spawned process to prevent orphaning
|
|
649
|
-
try {
|
|
650
|
-
await handle.close();
|
|
651
|
-
}
|
|
652
|
-
catch {
|
|
653
|
-
// Ignore errors during cleanup
|
|
654
|
-
}
|
|
655
|
-
throw handleError;
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
// ─────────────────────────────────────────────────────────────────
|
|
659
|
-
// Fork
|
|
660
|
-
// ─────────────────────────────────────────────────────────────────
|
|
661
|
-
async function forkAgent(sourceAgentId, options) {
|
|
662
|
-
if (isShuttingDown) {
|
|
663
|
-
throw new AgentManagerError("Cannot fork agent during shutdown", "SHUTDOWN_IN_PROGRESS", sourceAgentId);
|
|
664
|
-
}
|
|
665
|
-
const sourceAgent = eventStore.getAgent(sourceAgentId);
|
|
666
|
-
if (!sourceAgent) {
|
|
667
|
-
throw new AgentManagerError(`Agent not found: ${sourceAgentId}`, "AGENT_NOT_FOUND", sourceAgentId);
|
|
668
|
-
}
|
|
669
|
-
// Need either an active session or a persisted provider_session_id
|
|
670
|
-
const activeSession = activeSessions.get(sourceAgentId);
|
|
671
|
-
if (!activeSession && !sourceAgent.provider_session_id) {
|
|
672
|
-
throw new AgentManagerError(`Agent has no session to fork: ${sourceAgentId}`, "FORK_NOT_SUPPORTED", sourceAgentId);
|
|
673
|
-
}
|
|
674
|
-
// Generate new IDs
|
|
675
|
-
const agentId = `agent_${nanoid(12)}`;
|
|
676
|
-
const taskId = `task_${nanoid(12)}`;
|
|
677
|
-
const sessionId = `session_${nanoid(12)}`;
|
|
678
|
-
const cwd = options?.cwd ?? sourceAgent.cwd ?? defaultCwd;
|
|
679
|
-
// Emit spawn event with fork metadata
|
|
680
|
-
eventStore.emit({
|
|
681
|
-
type: "spawn",
|
|
682
|
-
source: { agent_id: sourceAgentId },
|
|
683
|
-
payload: {
|
|
684
|
-
agent_id: agentId,
|
|
685
|
-
session_id: sessionId,
|
|
686
|
-
task: options?.name ?? `[Fork of ${sourceAgentId}]`,
|
|
687
|
-
task_id: taskId,
|
|
688
|
-
parent: sourceAgent.parent ?? null,
|
|
689
|
-
role: sourceAgent.role ?? undefined,
|
|
690
|
-
team_instance: sourceAgent.team_instance ?? undefined,
|
|
691
|
-
config: {},
|
|
692
|
-
cwd,
|
|
693
|
-
metadata: { fork_of: sourceAgentId },
|
|
694
|
-
},
|
|
695
|
-
});
|
|
696
|
-
// Generate a human-readable name
|
|
697
|
-
const generatedName = uniqueNamesGenerator({
|
|
698
|
-
dictionaries: [adjectives, animals],
|
|
699
|
-
separator: "-",
|
|
700
|
-
length: 2,
|
|
701
|
-
});
|
|
702
|
-
eventStore.updateAgentMetadata(agentId, { name: generatedName });
|
|
703
|
-
await eventStore.persist();
|
|
704
|
-
// Get the provider session ID to fork from
|
|
705
|
-
let forkedProviderSessionId;
|
|
706
|
-
if (activeSession) {
|
|
707
|
-
// Active session: fork with flush to ensure data is persisted
|
|
708
|
-
const forkedSession = await activeSession.session.forkWithFlush();
|
|
709
|
-
forkedProviderSessionId = forkedSession.id;
|
|
710
|
-
}
|
|
711
|
-
else {
|
|
712
|
-
// Stopped agent: use the persisted provider session ID directly
|
|
713
|
-
forkedProviderSessionId = sourceAgent.provider_session_id;
|
|
714
|
-
}
|
|
715
|
-
// Spawn a new process
|
|
716
|
-
const handle = await AgentFactory.spawn(defaultAgentType, {
|
|
717
|
-
permissionMode: defaultPermissionMode,
|
|
718
|
-
});
|
|
719
|
-
try {
|
|
720
|
-
const macroAgentMcp = buildMacroAgentMcp({
|
|
721
|
-
agentId,
|
|
722
|
-
parentId: sourceAgent.parent ?? "",
|
|
723
|
-
taskId,
|
|
724
|
-
cwd,
|
|
725
|
-
permissionMode: defaultPermissionMode,
|
|
726
|
-
lineage: sourceAgent.lineage ?? [],
|
|
727
|
-
sessionId,
|
|
728
|
-
});
|
|
729
|
-
// Load the forked session on the new process with correct MCP config.
|
|
730
|
-
// Note: loadSession's TS type for mcpServers is { name, uri }[] but
|
|
731
|
-
// the underlying ACP protocol accepts full McpServerStdio. The JS
|
|
732
|
-
// implementation passes mcpServers through to the connection unchanged.
|
|
733
|
-
const session = await handle.loadSession(forkedProviderSessionId, cwd, [
|
|
734
|
-
macroAgentMcp,
|
|
735
|
-
]);
|
|
736
|
-
// Emit started status with provider session ID
|
|
737
|
-
eventStore.emit({
|
|
738
|
-
type: "status",
|
|
739
|
-
source: { agent_id: agentId },
|
|
740
|
-
payload: {
|
|
741
|
-
status_type: "started",
|
|
742
|
-
summary: "Agent session started (forked)",
|
|
743
|
-
provider_session_id: session.id,
|
|
744
|
-
},
|
|
745
|
-
});
|
|
746
|
-
await eventStore.persist();
|
|
747
|
-
// Set up message router subscriptions
|
|
748
|
-
messageRouter.setupDefaultSubscriptions({
|
|
749
|
-
agent_id: agentId,
|
|
750
|
-
parent_id: sourceAgent.parent ?? undefined,
|
|
751
|
-
task_id: taskId,
|
|
752
|
-
subscribe_parent: false,
|
|
753
|
-
additional_topics: [],
|
|
754
|
-
role: sourceAgent.role ?? undefined,
|
|
755
|
-
});
|
|
756
|
-
// Track active session
|
|
757
|
-
const newActiveSession = {
|
|
758
|
-
agentId,
|
|
759
|
-
handle,
|
|
760
|
-
session,
|
|
761
|
-
createdAt: Date.now(),
|
|
762
|
-
isPrompting: false,
|
|
763
|
-
};
|
|
764
|
-
activeSessions.set(agentId, newActiveSession);
|
|
765
|
-
const agent = eventStore.getAgent(agentId);
|
|
766
|
-
notifyLifecycle({ type: "spawned", agent });
|
|
767
|
-
notifyLifecycle({ type: "started", agent });
|
|
768
|
-
return {
|
|
769
|
-
id: agentId,
|
|
770
|
-
session_id: sessionId,
|
|
771
|
-
agent,
|
|
772
|
-
session,
|
|
773
|
-
};
|
|
774
|
-
}
|
|
775
|
-
catch (handleError) {
|
|
776
|
-
try {
|
|
777
|
-
await handle.close();
|
|
778
|
-
}
|
|
779
|
-
catch {
|
|
780
|
-
// Ignore errors during cleanup
|
|
781
|
-
}
|
|
782
|
-
throw handleError;
|
|
783
|
-
}
|
|
784
|
-
}
|
|
785
|
-
// ─────────────────────────────────────────────────────────────────
|
|
786
|
-
// Queries
|
|
787
|
-
// ─────────────────────────────────────────────────────────────────
|
|
788
|
-
function get(agentId) {
|
|
789
|
-
return eventStore.getAgent(agentId);
|
|
790
|
-
}
|
|
791
|
-
function list(filter) {
|
|
792
|
-
let agents = eventStore.listAgents();
|
|
793
|
-
if (filter) {
|
|
794
|
-
if (filter.state) {
|
|
795
|
-
agents = agents.filter((a) => a.state === filter.state);
|
|
796
|
-
}
|
|
797
|
-
if (filter.parent !== undefined) {
|
|
798
|
-
agents = agents.filter((a) => a.parent === filter.parent);
|
|
799
|
-
}
|
|
800
|
-
if (filter.task_id) {
|
|
801
|
-
agents = agents.filter((a) => a.task_id === filter.task_id);
|
|
802
|
-
}
|
|
803
|
-
if (filter.headManagersOnly) {
|
|
804
|
-
agents = agents.filter((a) => a.parent === null);
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
return agents;
|
|
808
|
-
}
|
|
809
|
-
function getChildren(agentId) {
|
|
810
|
-
return eventStore.listAgents({ parent: agentId });
|
|
811
|
-
}
|
|
812
|
-
function getHierarchy(agentId, options) {
|
|
813
|
-
const agent = eventStore.getAgent(agentId);
|
|
814
|
-
if (!agent)
|
|
815
|
-
return null;
|
|
816
|
-
const maxDepth = options?.depth;
|
|
817
|
-
function buildNode(a, currentDepth) {
|
|
818
|
-
const shouldIncludeChildren = maxDepth === undefined || currentDepth < maxDepth;
|
|
819
|
-
const children = shouldIncludeChildren ? getChildren(a.id) : [];
|
|
820
|
-
return {
|
|
821
|
-
agent: a,
|
|
822
|
-
children: children.map((c) => buildNode(c, currentDepth + 1)),
|
|
823
|
-
};
|
|
824
|
-
}
|
|
825
|
-
const root = buildNode(agent, 1);
|
|
826
|
-
// Calculate depth and total agents
|
|
827
|
-
function calcDepth(node) {
|
|
828
|
-
if (node.children.length === 0)
|
|
829
|
-
return 1;
|
|
830
|
-
return 1 + Math.max(...node.children.map(calcDepth));
|
|
831
|
-
}
|
|
832
|
-
function countAgents(node) {
|
|
833
|
-
return 1 + node.children.reduce((sum, c) => sum + countAgents(c), 0);
|
|
834
|
-
}
|
|
835
|
-
return {
|
|
836
|
-
root,
|
|
837
|
-
depth: calcDepth(root),
|
|
838
|
-
totalAgents: countAgents(root),
|
|
839
|
-
};
|
|
840
|
-
}
|
|
841
|
-
// ─────────────────────────────────────────────────────────────────
|
|
842
|
-
// Head Manager
|
|
843
|
-
// ─────────────────────────────────────────────────────────────────
|
|
844
|
-
async function getOrCreateHeadManager(options) {
|
|
845
|
-
const { cwd, systemPrompt, permissionMode, topics = [], sessionId, forceNew = false, } = options;
|
|
846
|
-
// If not forcing new, attempt to resume an existing session
|
|
847
|
-
if (!forceNew) {
|
|
848
|
-
const headManagers = listHeadManagers()
|
|
849
|
-
.filter((h) => h.state === "running")
|
|
850
|
-
.sort((a, b) => {
|
|
851
|
-
// Sort by started_at descending, then by created_at descending as tiebreaker
|
|
852
|
-
const startDiff = (b.started_at ?? 0) - (a.started_at ?? 0);
|
|
853
|
-
if (startDiff !== 0)
|
|
854
|
-
return startDiff;
|
|
855
|
-
return b.created_at - a.created_at;
|
|
856
|
-
});
|
|
857
|
-
if (sessionId) {
|
|
858
|
-
// Resume specific session by ID
|
|
859
|
-
const specific = headManagers.find((h) => h.session_id === sessionId);
|
|
860
|
-
if (specific && activeSessions.has(specific.id)) {
|
|
861
|
-
const activeSession = activeSessions.get(specific.id);
|
|
862
|
-
return {
|
|
863
|
-
id: specific.id,
|
|
864
|
-
session_id: specific.session_id,
|
|
865
|
-
agent: specific,
|
|
866
|
-
session: activeSession.session,
|
|
867
|
-
};
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
else if (headManagers.length > 0) {
|
|
871
|
-
// Resume latest running session with active session
|
|
872
|
-
const latest = headManagers[0];
|
|
873
|
-
if (activeSessions.has(latest.id)) {
|
|
874
|
-
const activeSession = activeSessions.get(latest.id);
|
|
875
|
-
return {
|
|
876
|
-
id: latest.id,
|
|
877
|
-
session_id: latest.session_id,
|
|
878
|
-
agent: latest,
|
|
879
|
-
session: activeSession.session,
|
|
880
|
-
};
|
|
881
|
-
}
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
// No existing session found or forceNew requested - create new
|
|
885
|
-
return spawn({
|
|
886
|
-
task: systemPrompt ??
|
|
887
|
-
"You are a head manager agent. Coordinate tasks and spawn child agents as needed.",
|
|
888
|
-
parent: null,
|
|
889
|
-
cwd,
|
|
890
|
-
permissionMode,
|
|
891
|
-
topics,
|
|
892
|
-
subscribeParent: false,
|
|
893
|
-
});
|
|
894
|
-
}
|
|
895
|
-
function listHeadManagers() {
|
|
896
|
-
return list({ headManagersOnly: true });
|
|
897
|
-
}
|
|
898
|
-
// ─────────────────────────────────────────────────────────────────
|
|
899
|
-
// Session Interaction
|
|
900
|
-
// ─────────────────────────────────────────────────────────────────
|
|
901
|
-
async function* prompt(agentId, message) {
|
|
902
|
-
const activeSession = activeSessions.get(agentId);
|
|
903
|
-
if (!activeSession) {
|
|
904
|
-
throw new AgentManagerError(`No active session for agent: ${agentId}`, "SESSION_NOT_FOUND", agentId);
|
|
905
|
-
}
|
|
906
|
-
activeSession.isPrompting = true;
|
|
907
|
-
try {
|
|
908
|
-
for await (const update of activeSession.session.prompt(message)) {
|
|
909
|
-
yield update;
|
|
910
|
-
}
|
|
911
|
-
}
|
|
912
|
-
finally {
|
|
913
|
-
activeSession.isPrompting = false;
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
/**
|
|
917
|
-
* Prompt an agent and automatically follow up to ensure done() is called.
|
|
918
|
-
*/
|
|
919
|
-
async function promptUntilDone(agentId, message, options) {
|
|
920
|
-
const maxFollowUps = options?.maxFollowUps ?? 2;
|
|
921
|
-
const throwOnMaxExceeded = options?.throwOnMaxExceeded ?? false;
|
|
922
|
-
const onUpdate = options?.onUpdate;
|
|
923
|
-
const allUpdates = [];
|
|
924
|
-
let followUpCount = 0;
|
|
925
|
-
// Helper to check if done() was called by looking for status events
|
|
926
|
-
// The done() MCP tool emits status events with status_type completed/failed
|
|
927
|
-
// and includes signal: "WORKER_DONE" in the details
|
|
928
|
-
const checkDoneCalled = async () => {
|
|
929
|
-
// Reload from disk to see events from MCP subprocess
|
|
930
|
-
await eventStore.reload();
|
|
931
|
-
const statusEvents = eventStore.query({ type: "status" });
|
|
932
|
-
// Look for status events from this agent that indicate completion
|
|
933
|
-
const agentCompletedStatus = statusEvents.find((e) => e.source?.agent_id === agentId &&
|
|
934
|
-
(e.payload?.status_type === "completed" ||
|
|
935
|
-
e.payload?.status_type === "failed" ||
|
|
936
|
-
e.payload?.details?.signal ===
|
|
937
|
-
"WORKER_DONE"));
|
|
938
|
-
if (agentCompletedStatus) {
|
|
939
|
-
return {
|
|
940
|
-
called: true,
|
|
941
|
-
status: agentCompletedStatus.payload?.status_type,
|
|
942
|
-
};
|
|
943
|
-
}
|
|
944
|
-
return { called: false };
|
|
945
|
-
};
|
|
946
|
-
// Initial prompt
|
|
947
|
-
for await (const update of prompt(agentId, message)) {
|
|
948
|
-
allUpdates.push(update);
|
|
949
|
-
onUpdate?.(update);
|
|
950
|
-
}
|
|
951
|
-
// Check if done() was called
|
|
952
|
-
let doneResult = await checkDoneCalled();
|
|
953
|
-
if (doneResult.called) {
|
|
954
|
-
return {
|
|
955
|
-
doneCalled: true,
|
|
956
|
-
doneStatus: doneResult.status,
|
|
957
|
-
exceededMax: false,
|
|
958
|
-
followUpCount: 0,
|
|
959
|
-
updates: allUpdates,
|
|
960
|
-
};
|
|
961
|
-
}
|
|
962
|
-
// Follow-up prompts
|
|
963
|
-
const followUpMessages = [
|
|
964
|
-
`Your work appears complete, but you haven't called done() yet. Please call done() now with your completion status.
|
|
965
|
-
|
|
966
|
-
Example: done({ status: "completed", summary: "Brief description of what you accomplished" })
|
|
967
|
-
|
|
968
|
-
If you're blocked or need help, call: done({ status: "blocked", summary: "What you need help with" })`,
|
|
969
|
-
`IMPORTANT: You MUST call the done() tool to signal completion. This is required for proper cleanup.
|
|
970
|
-
|
|
971
|
-
Call done() NOW with status "completed" if your work is finished, or "blocked" if you need assistance.`,
|
|
972
|
-
];
|
|
973
|
-
for (let i = 0; i < maxFollowUps; i++) {
|
|
974
|
-
followUpCount++;
|
|
975
|
-
const followUpMessage = followUpMessages[Math.min(i, followUpMessages.length - 1)];
|
|
976
|
-
// Send follow-up prompt
|
|
977
|
-
for await (const update of prompt(agentId, followUpMessage)) {
|
|
978
|
-
allUpdates.push(update);
|
|
979
|
-
onUpdate?.(update);
|
|
980
|
-
}
|
|
981
|
-
// Check again
|
|
982
|
-
doneResult = await checkDoneCalled();
|
|
983
|
-
if (doneResult.called) {
|
|
984
|
-
return {
|
|
985
|
-
doneCalled: true,
|
|
986
|
-
doneStatus: doneResult.status,
|
|
987
|
-
exceededMax: false,
|
|
988
|
-
followUpCount,
|
|
989
|
-
updates: allUpdates,
|
|
990
|
-
};
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
// done() was never called after max follow-ups
|
|
994
|
-
if (throwOnMaxExceeded) {
|
|
995
|
-
throw new Error(`Agent ${agentId} did not call done() after ${maxFollowUps} follow-up attempts. ` +
|
|
996
|
-
`Total prompts sent: ${1 + followUpCount}. Consider increasing maxFollowUps or investigating agent behavior.`);
|
|
997
|
-
}
|
|
998
|
-
return {
|
|
999
|
-
doneCalled: false,
|
|
1000
|
-
exceededMax: true,
|
|
1001
|
-
followUpCount,
|
|
1002
|
-
updates: allUpdates,
|
|
1003
|
-
};
|
|
1004
|
-
}
|
|
1005
|
-
function getSession(agentId) {
|
|
1006
|
-
const activeSession = activeSessions.get(agentId);
|
|
1007
|
-
return activeSession?.session ?? null;
|
|
1008
|
-
}
|
|
1009
|
-
function hasActiveSession(agentId) {
|
|
1010
|
-
return activeSessions.has(agentId);
|
|
1011
|
-
}
|
|
1012
|
-
function isPrompting(agentId) {
|
|
1013
|
-
const activeSession = activeSessions.get(agentId);
|
|
1014
|
-
return activeSession?.isPrompting ?? false;
|
|
1015
|
-
}
|
|
1016
|
-
async function supportsInjection(agentId) {
|
|
1017
|
-
const session = getSession(agentId);
|
|
1018
|
-
if (!session) {
|
|
1019
|
-
return false;
|
|
1020
|
-
}
|
|
1021
|
-
// Check if the session supports injection
|
|
1022
|
-
// Uses acp-factory's supportsInject() which returns cached/estimated result
|
|
1023
|
-
try {
|
|
1024
|
-
return session.supportsInject();
|
|
1025
|
-
}
|
|
1026
|
-
catch {
|
|
1027
|
-
return false;
|
|
1028
|
-
}
|
|
1029
|
-
}
|
|
1030
|
-
function isProcessRunning(agentId) {
|
|
1031
|
-
const activeSession = activeSessions.get(agentId);
|
|
1032
|
-
if (!activeSession) {
|
|
1033
|
-
return false;
|
|
1034
|
-
}
|
|
1035
|
-
return activeSession.handle.isRunning();
|
|
1036
|
-
}
|
|
1037
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1038
|
-
// Permission Handling
|
|
1039
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1040
|
-
function respondToPermission(agentId, requestId, optionId) {
|
|
1041
|
-
const activeSession = activeSessions.get(agentId);
|
|
1042
|
-
if (!activeSession) {
|
|
1043
|
-
console.warn(`[AgentManager] Cannot respond to permission: no active session for agent ${agentId}`);
|
|
1044
|
-
return false;
|
|
1045
|
-
}
|
|
1046
|
-
try {
|
|
1047
|
-
activeSession.session.respondToPermission(requestId, optionId);
|
|
1048
|
-
console.log(`[AgentManager] Responded to permission ${requestId} for agent ${agentId} with ${optionId}`);
|
|
1049
|
-
return true;
|
|
1050
|
-
}
|
|
1051
|
-
catch (err) {
|
|
1052
|
-
console.error(`[AgentManager] Error responding to permission ${requestId}:`, err);
|
|
1053
|
-
return false;
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
function cancelPermission(agentId, requestId) {
|
|
1057
|
-
const activeSession = activeSessions.get(agentId);
|
|
1058
|
-
if (!activeSession) {
|
|
1059
|
-
console.warn(`[AgentManager] Cannot cancel permission: no active session for agent ${agentId}`);
|
|
1060
|
-
return false;
|
|
1061
|
-
}
|
|
1062
|
-
try {
|
|
1063
|
-
activeSession.session.cancelPermission(requestId);
|
|
1064
|
-
console.log(`[AgentManager] Cancelled permission ${requestId} for agent ${agentId}`);
|
|
1065
|
-
return true;
|
|
1066
|
-
}
|
|
1067
|
-
catch (err) {
|
|
1068
|
-
console.error(`[AgentManager] Error cancelling permission ${requestId}:`, err);
|
|
1069
|
-
return false;
|
|
1070
|
-
}
|
|
1071
|
-
}
|
|
1072
|
-
function setPermissionMode(agentId, mode) {
|
|
1073
|
-
const activeSession = activeSessions.get(agentId);
|
|
1074
|
-
if (!activeSession) {
|
|
1075
|
-
console.warn(`[AgentManager] Cannot set permission mode: no active session for agent ${agentId}`);
|
|
1076
|
-
return false;
|
|
1077
|
-
}
|
|
1078
|
-
try {
|
|
1079
|
-
activeSession.handle.setPermissionMode(mode);
|
|
1080
|
-
console.log(`[AgentManager] Set permission mode for agent ${agentId} to ${mode}`);
|
|
1081
|
-
return true;
|
|
1082
|
-
}
|
|
1083
|
-
catch (err) {
|
|
1084
|
-
console.error(`[AgentManager] Error setting permission mode for agent ${agentId}:`, err);
|
|
1085
|
-
return false;
|
|
1086
|
-
}
|
|
1087
|
-
}
|
|
1088
|
-
function getPermissionMode(agentId) {
|
|
1089
|
-
const activeSession = activeSessions.get(agentId);
|
|
1090
|
-
if (!activeSession) {
|
|
1091
|
-
return null;
|
|
1092
|
-
}
|
|
1093
|
-
return activeSession.handle.getPermissionMode();
|
|
1094
|
-
}
|
|
1095
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1096
|
-
// Lifecycle Callbacks
|
|
1097
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1098
|
-
function onLifecycleEvent(callback) {
|
|
1099
|
-
lifecycleListeners.add(callback);
|
|
1100
|
-
return () => lifecycleListeners.delete(callback);
|
|
1101
|
-
}
|
|
1102
|
-
function notifyLifecycle(event) {
|
|
1103
|
-
for (const listener of lifecycleListeners) {
|
|
1104
|
-
try {
|
|
1105
|
-
listener(event);
|
|
1106
|
-
}
|
|
1107
|
-
catch {
|
|
1108
|
-
// Ignore listener errors
|
|
1109
|
-
}
|
|
1110
|
-
}
|
|
1111
|
-
}
|
|
1112
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1113
|
-
// OpenTasks Socket Path (Late Binding)
|
|
1114
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1115
|
-
function setOpenTasksSocketPath(socketPath) {
|
|
1116
|
-
configOpenTasksSocketPath = socketPath;
|
|
1117
|
-
}
|
|
1118
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1119
|
-
// Mail Services (Late Binding)
|
|
1120
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1121
|
-
function setMailServices(ms, cm) {
|
|
1122
|
-
mailService = ms;
|
|
1123
|
-
conversationMap = cm;
|
|
1124
|
-
}
|
|
1125
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1126
|
-
// Cleanup
|
|
1127
|
-
// ─────────────────────────────────────────────────────────────────
|
|
1128
|
-
async function close() {
|
|
1129
|
-
// Prevent new spawns/resumes from racing with cleanup
|
|
1130
|
-
isShuttingDown = true;
|
|
1131
|
-
// Stop all health checks
|
|
1132
|
-
if (healthCheckService) {
|
|
1133
|
-
healthCheckService.stopAll();
|
|
1134
|
-
}
|
|
1135
|
-
// Close all active sessions
|
|
1136
|
-
const closePromises = [];
|
|
1137
|
-
for (const [agentId, session] of activeSessions) {
|
|
1138
|
-
closePromises.push((async () => {
|
|
1139
|
-
try {
|
|
1140
|
-
await session.handle.close();
|
|
1141
|
-
}
|
|
1142
|
-
catch {
|
|
1143
|
-
// Ignore errors during cleanup
|
|
1144
|
-
}
|
|
1145
|
-
})());
|
|
1146
|
-
}
|
|
1147
|
-
await Promise.all(closePromises);
|
|
1148
|
-
activeSessions.clear();
|
|
1149
|
-
lifecycleListeners.clear();
|
|
1150
|
-
}
|
|
1151
|
-
function setSpawnInterceptor(interceptor) {
|
|
1152
|
-
spawnInterceptor = interceptor;
|
|
1153
|
-
}
|
|
1154
|
-
function getRoleRegistry() {
|
|
1155
|
-
return roleRegistry;
|
|
1156
|
-
}
|
|
1157
|
-
/**
|
|
1158
|
-
* Continue a terminated agent by spawning a new agent with the same
|
|
1159
|
-
* role and task, injecting prior conversation context as a resume prefix.
|
|
1160
|
-
*/
|
|
1161
|
-
async function continueAgent(agentId, options) {
|
|
1162
|
-
const agent = eventStore.getAgent(agentId);
|
|
1163
|
-
if (!agent) {
|
|
1164
|
-
throw new AgentManagerError(`Agent not found: ${agentId}`, "AGENT_NOT_FOUND", agentId);
|
|
1165
|
-
}
|
|
1166
|
-
// Build resume context from EventStore events
|
|
1167
|
-
const maxMessages = options?.maxMessages ?? 50;
|
|
1168
|
-
const events = eventStore.query({
|
|
1169
|
-
type: "status",
|
|
1170
|
-
source_agent_id: agentId,
|
|
1171
|
-
limit: maxMessages,
|
|
1172
|
-
});
|
|
1173
|
-
// Format conversation turns as resume context
|
|
1174
|
-
const contextLines = [];
|
|
1175
|
-
if (options?.additionalContext) {
|
|
1176
|
-
contextLines.push(options.additionalContext);
|
|
1177
|
-
}
|
|
1178
|
-
if (events.length > 0) {
|
|
1179
|
-
contextLines.push("## Prior Session Context");
|
|
1180
|
-
contextLines.push(`Continuing from agent ${agentId} (${events.length} events).`);
|
|
1181
|
-
for (const event of events.slice(-20)) {
|
|
1182
|
-
const summary = event.payload?.summary;
|
|
1183
|
-
if (summary && typeof summary === "string") {
|
|
1184
|
-
contextLines.push(`- ${summary}`);
|
|
1185
|
-
}
|
|
1186
|
-
}
|
|
1187
|
-
}
|
|
1188
|
-
const resumeContext = contextLines.join("\n");
|
|
1189
|
-
// Spawn a continuation agent with same role, task, and context
|
|
1190
|
-
const taskDescription = options?.task ?? agent.task ?? `Continue work from ${agentId}`;
|
|
1191
|
-
const newAgent = await spawn({
|
|
1192
|
-
task: taskDescription,
|
|
1193
|
-
role: agent.role,
|
|
1194
|
-
parent: agent.parent ?? undefined,
|
|
1195
|
-
cwd: agent.cwd ?? defaultCwd,
|
|
1196
|
-
customPrompt: resumeContext || undefined,
|
|
1197
|
-
});
|
|
1198
|
-
// Emit continuation event
|
|
1199
|
-
eventStore.emit({
|
|
1200
|
-
type: "status",
|
|
1201
|
-
source: { agent_id: newAgent.id },
|
|
1202
|
-
payload: {
|
|
1203
|
-
status_type: "started",
|
|
1204
|
-
summary: `Continuation of agent ${agentId}`,
|
|
1205
|
-
continuation_of: agentId,
|
|
1206
|
-
},
|
|
1207
|
-
});
|
|
1208
|
-
return newAgent;
|
|
1209
|
-
}
|
|
1210
|
-
return {
|
|
1211
|
-
spawn,
|
|
1212
|
-
terminate,
|
|
1213
|
-
resume,
|
|
1214
|
-
continueAgent,
|
|
1215
|
-
forkAgent,
|
|
1216
|
-
get,
|
|
1217
|
-
list,
|
|
1218
|
-
getChildren,
|
|
1219
|
-
getHierarchy,
|
|
1220
|
-
getOrCreateHeadManager,
|
|
1221
|
-
listHeadManagers,
|
|
1222
|
-
prompt,
|
|
1223
|
-
promptUntilDone,
|
|
1224
|
-
getSession,
|
|
1225
|
-
hasActiveSession,
|
|
1226
|
-
isPrompting,
|
|
1227
|
-
supportsInjection,
|
|
1228
|
-
isProcessRunning,
|
|
1229
|
-
respondToPermission,
|
|
1230
|
-
cancelPermission,
|
|
1231
|
-
setPermissionMode,
|
|
1232
|
-
getPermissionMode,
|
|
1233
|
-
onLifecycleEvent,
|
|
1234
|
-
setSpawnInterceptor,
|
|
1235
|
-
getRoleRegistry,
|
|
1236
|
-
setOpenTasksSocketPath,
|
|
1237
|
-
setMailServices,
|
|
1238
|
-
close,
|
|
1239
|
-
};
|
|
1240
|
-
}
|
|
1241
|
-
/**
|
|
1242
|
-
* Create a workspace for an agent based on their capabilities.
|
|
1243
|
-
*
|
|
1244
|
-
* Dispatches on workspace capabilities (workspace.stream, workspace.integrate,
|
|
1245
|
-
* workspace.worktree) rather than role names. This allows team-defined roles
|
|
1246
|
-
* (e.g., "developer" extending "worker") to get proper workspace allocation
|
|
1247
|
-
* by inheriting workspace capabilities from their base role.
|
|
1248
|
-
*
|
|
1249
|
-
* Falls back to role-name matching for backward compatibility when no
|
|
1250
|
-
* capabilities are provided.
|
|
1251
|
-
*
|
|
1252
|
-
* @param workspaceManager - WorkspaceManager instance
|
|
1253
|
-
* @param agentId - Agent ID
|
|
1254
|
-
* @param role - Agent role name (used for logging and fallback)
|
|
1255
|
-
* @param options - Workspace options including capabilities
|
|
1256
|
-
* @returns Created workspace or undefined
|
|
1257
|
-
*/
|
|
1258
|
-
async function createWorkspaceForRole(workspaceManager, agentId, role, options) {
|
|
1259
|
-
const { streamId, streamConfig, dataplaneTaskId, capabilities } = options;
|
|
1260
|
-
// Capability-based dispatch (preferred — works for team-defined roles)
|
|
1261
|
-
if (capabilities && capabilities.length > 0) {
|
|
1262
|
-
if (capabilities.includes("workspace.stream")) {
|
|
1263
|
-
// Coordinator pattern: create integration stream.
|
|
1264
|
-
// In team mode, stream is managed by TeamRuntime.setupWorkspaceIntegration(),
|
|
1265
|
-
// so missing streamConfig is expected — return silently.
|
|
1266
|
-
if (!streamConfig) {
|
|
1267
|
-
return undefined;
|
|
1268
|
-
}
|
|
1269
|
-
const newStreamId = workspaceManager.createIntegrationStream(agentId, streamConfig);
|
|
1270
|
-
return workspaceManager.createCoordinatorWorkspace(agentId, newStreamId);
|
|
1271
|
-
}
|
|
1272
|
-
else if (capabilities.includes("workspace.integrate")) {
|
|
1273
|
-
// Integrator pattern: join existing stream
|
|
1274
|
-
if (!streamId) {
|
|
1275
|
-
console.warn(`[AgentManager] ${role} ${agentId} has workspace.integrate but no streamId, skipping workspace`);
|
|
1276
|
-
return undefined;
|
|
1277
|
-
}
|
|
1278
|
-
return workspaceManager.createIntegratorWorkspace(agentId, streamId);
|
|
1279
|
-
}
|
|
1280
|
-
else if (capabilities.includes("workspace.worktree")) {
|
|
1281
|
-
// Worker pattern: create worktree in stream
|
|
1282
|
-
if (!streamId) {
|
|
1283
|
-
console.warn(`[AgentManager] ${role} ${agentId} has workspace.worktree but no streamId, skipping workspace`);
|
|
1284
|
-
return undefined;
|
|
1285
|
-
}
|
|
1286
|
-
const taskId = dataplaneTaskId ?? agentId;
|
|
1287
|
-
return workspaceManager.createWorkerWorkspace(agentId, taskId, streamId);
|
|
1288
|
-
}
|
|
1289
|
-
// Has capabilities but no workspace capability — no workspace needed
|
|
1290
|
-
return undefined;
|
|
1291
|
-
}
|
|
1292
|
-
// Fallback: role-name dispatch (backward compatibility for non-team spawns)
|
|
1293
|
-
switch (role) {
|
|
1294
|
-
case "coordinator": {
|
|
1295
|
-
if (!streamConfig) {
|
|
1296
|
-
console.warn(`[AgentManager] Coordinator ${agentId} spawn missing streamConfig, skipping workspace`);
|
|
1297
|
-
return undefined;
|
|
1298
|
-
}
|
|
1299
|
-
const newStreamId = workspaceManager.createIntegrationStream(agentId, streamConfig);
|
|
1300
|
-
return workspaceManager.createCoordinatorWorkspace(agentId, newStreamId);
|
|
1301
|
-
}
|
|
1302
|
-
case "integrator": {
|
|
1303
|
-
if (!streamId) {
|
|
1304
|
-
console.warn(`[AgentManager] Integrator ${agentId} spawn missing streamId, skipping workspace`);
|
|
1305
|
-
return undefined;
|
|
1306
|
-
}
|
|
1307
|
-
return workspaceManager.createIntegratorWorkspace(agentId, streamId);
|
|
1308
|
-
}
|
|
1309
|
-
case "worker":
|
|
1310
|
-
case "worker.resolver": {
|
|
1311
|
-
if (!streamId) {
|
|
1312
|
-
console.warn(`[AgentManager] Worker ${agentId} spawn missing streamId, skipping workspace`);
|
|
1313
|
-
return undefined;
|
|
1314
|
-
}
|
|
1315
|
-
const taskId = dataplaneTaskId ?? agentId;
|
|
1316
|
-
return workspaceManager.createWorkerWorkspace(agentId, taskId, streamId);
|
|
1317
|
-
}
|
|
1318
|
-
case "monitor":
|
|
1319
|
-
return undefined;
|
|
1320
|
-
default:
|
|
1321
|
-
return undefined;
|
|
1322
|
-
}
|
|
1323
|
-
}
|
|
16
|
+
export { createAgentManagerV2, createAgentManagerV2 as createAgentManager } from "./agent-manager-v2.js";
|
|
1324
17
|
//# sourceMappingURL=agent-manager.js.map
|