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,1198 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Team Runtime
|
|
3
|
-
*
|
|
4
|
-
* Wires a loaded team template into the running system: registers roles,
|
|
5
|
-
* sets up integration strategy, configures communication topology,
|
|
6
|
-
* and manages the team lifecycle.
|
|
7
|
-
*
|
|
8
|
-
* @module teams/team-runtime
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import type { EventStore } from "../store/event-store.js";
|
|
12
|
-
import type { MessageRouter } from "../router/message-router.js";
|
|
13
|
-
import type { AgentManager, SpawnInterceptor } from "../agent/agent-manager.js";
|
|
14
|
-
import type {
|
|
15
|
-
SignalFilter,
|
|
16
|
-
EmissionValidator,
|
|
17
|
-
EmissionValidatorResult,
|
|
18
|
-
} from "../router/message-router.js";
|
|
19
|
-
import type { RoleRegistry } from "../roles/types.js";
|
|
20
|
-
import type { SpawnAgentOptions } from "../agent/types.js";
|
|
21
|
-
import type { AgentId } from "../store/types/index.js";
|
|
22
|
-
import type {
|
|
23
|
-
TeamManifest,
|
|
24
|
-
MacroResolvedTemplate,
|
|
25
|
-
McpServerEntry,
|
|
26
|
-
PeerConnection,
|
|
27
|
-
} from "./types.js";
|
|
28
|
-
import type { IntegrationStrategy } from "../workspace/strategies/types.js";
|
|
29
|
-
import { WORKSPACE_CAPABILITIES } from "../roles/capabilities.js";
|
|
30
|
-
|
|
31
|
-
// =============================================================================
|
|
32
|
-
// Types
|
|
33
|
-
// =============================================================================
|
|
34
|
-
|
|
35
|
-
export interface TeamServices {
|
|
36
|
-
agentManager: AgentManager;
|
|
37
|
-
messageRouter: MessageRouter;
|
|
38
|
-
eventStore: EventStore;
|
|
39
|
-
/** Optional workspace manager for merge queue wiring */
|
|
40
|
-
workspaceManager?: import("../workspace/types.js").WorkspaceManager;
|
|
41
|
-
/** Optional task backend for auto-scaling queue depth checks */
|
|
42
|
-
taskBackend?: import("../task/backend/types.js").TaskBackend;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export interface TeamBootstrapResult {
|
|
46
|
-
rootId: string;
|
|
47
|
-
companionIds: string[];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// =============================================================================
|
|
51
|
-
// Conversion: TeamManifest → MacroResolvedTemplate
|
|
52
|
-
// =============================================================================
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Convert a legacy TeamManifest (with _ prefixed fields) to MacroResolvedTemplate.
|
|
56
|
-
* Used for backward compatibility when TeamRuntime receives a TeamManifest.
|
|
57
|
-
*/
|
|
58
|
-
function manifestToResolved(manifest: TeamManifest): MacroResolvedTemplate {
|
|
59
|
-
return {
|
|
60
|
-
template: {
|
|
61
|
-
manifest: {
|
|
62
|
-
name: manifest.name,
|
|
63
|
-
description: manifest.description,
|
|
64
|
-
version: manifest.version,
|
|
65
|
-
roles: manifest.roles,
|
|
66
|
-
topology: manifest.topology,
|
|
67
|
-
communication: manifest.communication,
|
|
68
|
-
},
|
|
69
|
-
roles: new Map(), // Not used — macro-agent uses resolvedRoles
|
|
70
|
-
prompts: new Map(), // Prompts are in _loadedPrompts
|
|
71
|
-
mcpServers: manifest._mcpServers,
|
|
72
|
-
sourcePath: "",
|
|
73
|
-
},
|
|
74
|
-
resolvedRoles: manifest._resolvedRoles,
|
|
75
|
-
macroAgent: manifest.macro_agent,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Check if input is a MacroResolvedTemplate (has `template` field)
|
|
81
|
-
* vs a legacy TeamManifest (has `_resolvedRoles` field).
|
|
82
|
-
*/
|
|
83
|
-
function isMacroResolvedTemplate(
|
|
84
|
-
input: TeamManifest | MacroResolvedTemplate
|
|
85
|
-
): input is MacroResolvedTemplate {
|
|
86
|
-
return "template" in input && "resolvedRoles" in input;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// =============================================================================
|
|
90
|
-
// TeamRuntime
|
|
91
|
-
// =============================================================================
|
|
92
|
-
|
|
93
|
-
export class TeamRuntime {
|
|
94
|
-
private rootAgentId?: string;
|
|
95
|
-
private companionAgentIds: string[] = [];
|
|
96
|
-
private roleRegistry: RoleRegistry;
|
|
97
|
-
private lifecycleUnsubscribe?: () => void;
|
|
98
|
-
private integrationStrategy?: IntegrationStrategy;
|
|
99
|
-
private scalingTimer?: ReturnType<typeof setInterval>;
|
|
100
|
-
private lastScaleUpTime = 0;
|
|
101
|
-
private teamStreamId?: string;
|
|
102
|
-
private mergeQueueUnsub?: () => void;
|
|
103
|
-
private mergeRequestPollTimer?: ReturnType<typeof setInterval>;
|
|
104
|
-
private lastMergeRequestSeen = 0;
|
|
105
|
-
|
|
106
|
-
/** The resolved template (canonical internal representation) */
|
|
107
|
-
private readonly resolved: MacroResolvedTemplate;
|
|
108
|
-
|
|
109
|
-
/** Legacy loaded prompts map (path → content) for backward compat */
|
|
110
|
-
private readonly loadedPrompts: Map<string, string>;
|
|
111
|
-
|
|
112
|
-
/** Role name → spawned agent ID mapping (populated during bootstrap) */
|
|
113
|
-
private roleAgentMap = new Map<string, AgentId>();
|
|
114
|
-
|
|
115
|
-
/** Peer connections that couldn't be wired at bootstrap (target role not yet spawned) */
|
|
116
|
-
private pendingPeerRoutes: PeerConnection[] = [];
|
|
117
|
-
|
|
118
|
-
/** Per-agent signal filters from peer connections. Key: "fromAgentId→toAgentId" */
|
|
119
|
-
private peerSignalFilters = new Map<string, string[]>();
|
|
120
|
-
|
|
121
|
-
/** Reverse mapping: agent ID → role name (for signal filter lookups) */
|
|
122
|
-
private agentRoleMap = new Map<AgentId, string>();
|
|
123
|
-
|
|
124
|
-
/** Pre-computed per-role allowed signals from channel subscriptions */
|
|
125
|
-
private roleAllowedSignals = new Map<string, Set<string> | "all">();
|
|
126
|
-
|
|
127
|
-
/** Lifecycle unsubscribe for deferred peer wiring */
|
|
128
|
-
private peerWiringUnsubscribe?: () => void;
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Create a TeamRuntime.
|
|
132
|
-
*
|
|
133
|
-
* Accepts either a MacroResolvedTemplate (new) or a TeamManifest (legacy).
|
|
134
|
-
* Internally always uses MacroResolvedTemplate.
|
|
135
|
-
*/
|
|
136
|
-
constructor(
|
|
137
|
-
input: TeamManifest | MacroResolvedTemplate,
|
|
138
|
-
private readonly services: TeamServices
|
|
139
|
-
) {
|
|
140
|
-
this.resolved = isMacroResolvedTemplate(input)
|
|
141
|
-
? input
|
|
142
|
-
: manifestToResolved(input);
|
|
143
|
-
|
|
144
|
-
// Extract loaded prompts from legacy manifest if available
|
|
145
|
-
this.loadedPrompts = !isMacroResolvedTemplate(input)
|
|
146
|
-
? input._loadedPrompts
|
|
147
|
-
: new Map();
|
|
148
|
-
|
|
149
|
-
this.roleRegistry = services.agentManager.getRoleRegistry();
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Convenience accessors
|
|
153
|
-
private get manifest() {
|
|
154
|
-
return this.resolved.template.manifest;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
private get communication() {
|
|
158
|
-
return (this.manifest.communication ?? {}) as NonNullable<typeof this.manifest.communication>;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// ─────────────────────────────────────────────────────────────
|
|
162
|
-
// Initialization
|
|
163
|
-
// ─────────────────────────────────────────────────────────────
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Wire team configuration into running services.
|
|
167
|
-
*
|
|
168
|
-
* 1. Register team roles into RoleRegistry
|
|
169
|
-
* 2. Store team_config event in EventStore (for MCP subprocess discovery)
|
|
170
|
-
* 3. Instantiate integration strategy
|
|
171
|
-
*
|
|
172
|
-
* Note: Does NOT install spawn interceptor, signal filter, or emission
|
|
173
|
-
* validator on services. Call installOnServices() for standalone use,
|
|
174
|
-
* or let TeamManager handle composite installation.
|
|
175
|
-
*/
|
|
176
|
-
async initialize(options?: { teamInstanceId?: string }): Promise<void> {
|
|
177
|
-
const { eventStore } = this.services;
|
|
178
|
-
|
|
179
|
-
// 1. Register team roles into RoleRegistry (custom layer, highest priority)
|
|
180
|
-
for (const [, resolved] of this.resolved.resolvedRoles) {
|
|
181
|
-
const rd = resolved.roleDefinition;
|
|
182
|
-
const existing = this.roleRegistry.getRole(rd.name);
|
|
183
|
-
if (existing) {
|
|
184
|
-
const existingCaps = [...existing.capabilities].sort();
|
|
185
|
-
const newCaps = [...rd.capabilities].sort();
|
|
186
|
-
if (existingCaps.length !== newCaps.length || existingCaps.some((c, i) => c !== newCaps[i])) {
|
|
187
|
-
console.warn(
|
|
188
|
-
`[TeamRuntime] Role '${rd.name}' conflict: team '${this.manifest.name}' re-registers with different capabilities. ` +
|
|
189
|
-
`Existing: [${existingCaps.join(", ")}], New: [${newCaps.join(", ")}]`
|
|
190
|
-
);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
this.roleRegistry.registerRole(rd);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// 2. Store team config in EventStore for cross-process access (RD2)
|
|
197
|
-
const taskMode = this.resolved.macroAgent.task_assignment?.mode ?? "push";
|
|
198
|
-
const strategyName = this.resolved.macroAgent.integration?.strategy ?? "queue";
|
|
199
|
-
const strategyConfig = this.resolved.macroAgent.integration?.config ?? {};
|
|
200
|
-
const enforcement = this.communication.enforcement ?? "permissive";
|
|
201
|
-
|
|
202
|
-
// Serialize resolved roles for MCP subprocess capability checks
|
|
203
|
-
const serializedRoles: Record<string, { name: string; capabilities: string[]; tools?: object; lifecycle?: object; description?: string }> = {};
|
|
204
|
-
for (const [name, resolved] of this.resolved.resolvedRoles) {
|
|
205
|
-
const rd = resolved.roleDefinition;
|
|
206
|
-
serializedRoles[name] = {
|
|
207
|
-
name: rd.name,
|
|
208
|
-
capabilities: [...rd.capabilities],
|
|
209
|
-
...(rd.tools && { tools: rd.tools }),
|
|
210
|
-
...(rd.lifecycle && { lifecycle: rd.lifecycle }),
|
|
211
|
-
...(rd.description && { description: rd.description }),
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
eventStore.emit({
|
|
216
|
-
type: "status",
|
|
217
|
-
source: { agent_id: "system" },
|
|
218
|
-
payload: {
|
|
219
|
-
status_type: "discovery",
|
|
220
|
-
summary: `Team '${this.manifest.name}' initialized`,
|
|
221
|
-
team_config: {
|
|
222
|
-
teamName: this.manifest.name,
|
|
223
|
-
...(options?.teamInstanceId && { team_instance: options.teamInstanceId }),
|
|
224
|
-
strategy: strategyName,
|
|
225
|
-
strategyConfig,
|
|
226
|
-
taskMode,
|
|
227
|
-
enforcement,
|
|
228
|
-
roles: serializedRoles,
|
|
229
|
-
peerRoutes: this.communication.routing?.peers ?? [],
|
|
230
|
-
emissions: this.communication.emissions ?? {},
|
|
231
|
-
},
|
|
232
|
-
},
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
await eventStore.persist();
|
|
236
|
-
|
|
237
|
-
// 3. Instantiate integration strategy and call lifecycle hook
|
|
238
|
-
try {
|
|
239
|
-
const { defaultStrategyRegistry } = await import("../workspace/strategies/registry.js");
|
|
240
|
-
this.integrationStrategy = defaultStrategyRegistry.get(strategyName, strategyConfig as Record<string, unknown>);
|
|
241
|
-
if (this.integrationStrategy.initialize) {
|
|
242
|
-
await this.integrationStrategy.initialize();
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
// Wire merge queue to queue strategy if workspace manager is available
|
|
246
|
-
if (
|
|
247
|
-
this.services.workspaceManager &&
|
|
248
|
-
strategyName === "queue" &&
|
|
249
|
-
"setMergeQueue" in this.integrationStrategy
|
|
250
|
-
) {
|
|
251
|
-
const mergeQueue = this.services.workspaceManager.getMergeQueue();
|
|
252
|
-
(this.integrationStrategy as { setMergeQueue(q: typeof mergeQueue): void }).setMergeQueue(mergeQueue);
|
|
253
|
-
}
|
|
254
|
-
} catch {
|
|
255
|
-
// Strategy instantiation is best-effort — queue strategy needs merge queue set later
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// ─────────────────────────────────────────────────────────────
|
|
260
|
-
// Bootstrap
|
|
261
|
-
// ─────────────────────────────────────────────────────────────
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Spawn root and companion agents per the team topology.
|
|
265
|
-
*
|
|
266
|
-
* Populates internal state (agentRoleMap, peerSignalFilters) used by
|
|
267
|
-
* createSignalFilter() and createEmissionValidator(). Call installOnServices()
|
|
268
|
-
* after bootstrap for standalone use, or let TeamManager handle installation.
|
|
269
|
-
*/
|
|
270
|
-
async bootstrap(): Promise<TeamBootstrapResult> {
|
|
271
|
-
const { agentManager } = this.services;
|
|
272
|
-
const { topology } = this.manifest;
|
|
273
|
-
|
|
274
|
-
// 1. Spawn root agent
|
|
275
|
-
const rootPrompt = this.getPromptForTopologyNode(topology.root);
|
|
276
|
-
const root = await agentManager.spawn({
|
|
277
|
-
task: rootPrompt
|
|
278
|
-
? `[${this.manifest.name}] ${topology.root.role}`
|
|
279
|
-
: `Team ${this.manifest.name} root: ${topology.root.role}`,
|
|
280
|
-
parent: null,
|
|
281
|
-
role: topology.root.role,
|
|
282
|
-
config: {
|
|
283
|
-
model: topology.root.config?.model,
|
|
284
|
-
},
|
|
285
|
-
customPrompt: rootPrompt,
|
|
286
|
-
interactionPatterns: this.getInteractionPatterns(),
|
|
287
|
-
});
|
|
288
|
-
this.rootAgentId = root.id;
|
|
289
|
-
|
|
290
|
-
// 1b. Set up workspace integration BEFORE companions spawn,
|
|
291
|
-
// so the spawn interceptor has teamStreamId for workspace injection
|
|
292
|
-
this.setupWorkspaceIntegration(root.id as AgentId);
|
|
293
|
-
|
|
294
|
-
// 2. Spawn companions (peers, not children)
|
|
295
|
-
const companionIds: string[] = [];
|
|
296
|
-
for (const companion of topology.companions ?? []) {
|
|
297
|
-
const companionPrompt = this.getPromptForTopologyNode(companion);
|
|
298
|
-
const agent = await agentManager.spawn({
|
|
299
|
-
task: `[${this.manifest.name}] ${companion.role}`,
|
|
300
|
-
parent: null,
|
|
301
|
-
role: companion.role,
|
|
302
|
-
config: {
|
|
303
|
-
model: companion.config?.model,
|
|
304
|
-
},
|
|
305
|
-
customPrompt: companionPrompt,
|
|
306
|
-
interactionPatterns: this.getInteractionPatterns(),
|
|
307
|
-
});
|
|
308
|
-
companionIds.push(agent.id);
|
|
309
|
-
}
|
|
310
|
-
this.companionAgentIds = companionIds;
|
|
311
|
-
|
|
312
|
-
// 3. Build role↔agent mappings and wire peer subscriptions
|
|
313
|
-
this.roleAgentMap.set(topology.root.role, root.id as AgentId);
|
|
314
|
-
this.agentRoleMap.set(root.id as AgentId, topology.root.role);
|
|
315
|
-
for (let i = 0; i < (topology.companions ?? []).length; i++) {
|
|
316
|
-
this.roleAgentMap.set(topology.companions![i].role, companionIds[i] as AgentId);
|
|
317
|
-
this.agentRoleMap.set(companionIds[i] as AgentId, topology.companions![i].role);
|
|
318
|
-
}
|
|
319
|
-
this.wirePeerRoutes();
|
|
320
|
-
|
|
321
|
-
// 4. Pre-compute role allowed signals (used by createSignalFilter)
|
|
322
|
-
this.computeRoleAllowedSignals();
|
|
323
|
-
|
|
324
|
-
// 5. Set up continuation monitoring for daemon agents (P4.2)
|
|
325
|
-
this.monitorContinuations();
|
|
326
|
-
|
|
327
|
-
// 6. Set up auto-scaling monitoring
|
|
328
|
-
this.monitorScaling();
|
|
329
|
-
|
|
330
|
-
return {
|
|
331
|
-
rootId: root.id,
|
|
332
|
-
companionIds,
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
// ─────────────────────────────────────────────────────────────
|
|
337
|
-
// Teardown
|
|
338
|
-
// ─────────────────────────────────────────────────────────────
|
|
339
|
-
|
|
340
|
-
/**
|
|
341
|
-
* Tear down team: stop continuation monitoring, clean up strategy.
|
|
342
|
-
*
|
|
343
|
-
* Note: Does NOT clear spawn interceptor or filters on services.
|
|
344
|
-
* The caller (TeamManager or standalone code) is responsible for
|
|
345
|
-
* removing the interceptor/filters from shared services.
|
|
346
|
-
*/
|
|
347
|
-
async teardown(): Promise<void> {
|
|
348
|
-
if (this.lifecycleUnsubscribe) {
|
|
349
|
-
this.lifecycleUnsubscribe();
|
|
350
|
-
this.lifecycleUnsubscribe = undefined;
|
|
351
|
-
}
|
|
352
|
-
if (this.peerWiringUnsubscribe) {
|
|
353
|
-
this.peerWiringUnsubscribe();
|
|
354
|
-
this.peerWiringUnsubscribe = undefined;
|
|
355
|
-
}
|
|
356
|
-
if (this.scalingTimer) {
|
|
357
|
-
clearInterval(this.scalingTimer);
|
|
358
|
-
this.scalingTimer = undefined;
|
|
359
|
-
}
|
|
360
|
-
if (this.mergeQueueUnsub) {
|
|
361
|
-
this.mergeQueueUnsub();
|
|
362
|
-
this.mergeQueueUnsub = undefined;
|
|
363
|
-
}
|
|
364
|
-
if (this.mergeRequestPollTimer) {
|
|
365
|
-
clearInterval(this.mergeRequestPollTimer);
|
|
366
|
-
this.mergeRequestPollTimer = undefined;
|
|
367
|
-
}
|
|
368
|
-
// Call strategy lifecycle close hook
|
|
369
|
-
if (this.integrationStrategy?.close) {
|
|
370
|
-
try {
|
|
371
|
-
await this.integrationStrategy.close();
|
|
372
|
-
} catch {
|
|
373
|
-
// Best-effort cleanup
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
// ─────────────────────────────────────────────────────────────
|
|
379
|
-
// Getters
|
|
380
|
-
// ─────────────────────────────────────────────────────────────
|
|
381
|
-
|
|
382
|
-
/** Get task assignment mode */
|
|
383
|
-
getTaskMode(): "push" | "pull" {
|
|
384
|
-
return this.resolved.macroAgent.task_assignment?.mode ?? "push";
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
/** Get integration strategy name */
|
|
388
|
-
getStrategyName(): string {
|
|
389
|
-
return this.resolved.macroAgent.integration?.strategy ?? "queue";
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/** Get the active manifest (for API) */
|
|
393
|
-
getManifest(): TeamManifest {
|
|
394
|
-
// Build a backward-compatible TeamManifest from the resolved template
|
|
395
|
-
return {
|
|
396
|
-
...this.manifest,
|
|
397
|
-
description: this.manifest.description ?? "",
|
|
398
|
-
communication: this.communication,
|
|
399
|
-
macro_agent: this.resolved.macroAgent,
|
|
400
|
-
_resolvedRoles: this.resolved.resolvedRoles,
|
|
401
|
-
_loadedPrompts: this.loadedPrompts,
|
|
402
|
-
_mcpServers: this.resolved.template.mcpServers,
|
|
403
|
-
} as TeamManifest;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
/** Get the resolved template */
|
|
407
|
-
getResolvedTemplate(): MacroResolvedTemplate {
|
|
408
|
-
return this.resolved;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
/** Get root agent ID (after bootstrap) */
|
|
412
|
-
getRootAgentId(): string | undefined {
|
|
413
|
-
return this.rootAgentId;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
/** Get companion agent IDs (after bootstrap) */
|
|
417
|
-
getCompanionAgentIds(): string[] {
|
|
418
|
-
return [...this.companionAgentIds];
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
/** Get the instantiated integration strategy (after initialize) */
|
|
422
|
-
getIntegrationStrategy(): IntegrationStrategy | undefined {
|
|
423
|
-
return this.integrationStrategy;
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
/** Get team-wide integration stream ID (after bootstrap) */
|
|
427
|
-
getTeamStreamId(): string | undefined {
|
|
428
|
-
return this.teamStreamId;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
/** Get signal filters for peer connections (for use by signal filtering - i-3o8g) */
|
|
432
|
-
getPeerSignalFilters(): ReadonlyMap<string, string[]> {
|
|
433
|
-
return this.peerSignalFilters;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
/** Get the agent → role mapping (for TeamManager agent-team lookups) */
|
|
437
|
-
getAgentRoleMap(): ReadonlyMap<AgentId, string> {
|
|
438
|
-
return this.agentRoleMap;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
/** Register an agent's role mapping (for TeamManager to track dynamically spawned agents) */
|
|
442
|
-
registerAgent(agentId: AgentId, roleName: string): void {
|
|
443
|
-
this.agentRoleMap.set(agentId, roleName);
|
|
444
|
-
this.roleAgentMap.set(roleName, agentId);
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
/** Check if this team owns a given agent */
|
|
448
|
-
hasAgent(agentId: string): boolean {
|
|
449
|
-
return this.agentRoleMap.has(agentId as AgentId);
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
// ─────────────────────────────────────────────────────────────
|
|
453
|
-
// Continuation Monitoring (P4.2)
|
|
454
|
-
// ─────────────────────────────────────────────────────────────
|
|
455
|
-
|
|
456
|
-
/**
|
|
457
|
-
* Monitor agent lifecycle events for auto-continuation of daemon agents.
|
|
458
|
-
*
|
|
459
|
-
* When a root or companion agent terminates unexpectedly and the team's
|
|
460
|
-
* lifecycle config enables continuations, automatically spawn a continuation.
|
|
461
|
-
*/
|
|
462
|
-
private monitorContinuations(): void {
|
|
463
|
-
const lifecycleConfig = this.resolved.macroAgent.lifecycle;
|
|
464
|
-
if (!lifecycleConfig?.continuations?.enabled) return;
|
|
465
|
-
|
|
466
|
-
const { agentManager } = this.services;
|
|
467
|
-
const monitoredAgents = new Set([
|
|
468
|
-
this.rootAgentId,
|
|
469
|
-
...this.companionAgentIds,
|
|
470
|
-
]);
|
|
471
|
-
|
|
472
|
-
this.lifecycleUnsubscribe = agentManager.onLifecycleEvent((event) => {
|
|
473
|
-
if (event.type !== "stopped") return;
|
|
474
|
-
if (!monitoredAgents.has(event.agent.id)) return;
|
|
475
|
-
|
|
476
|
-
// Only auto-continue on unexpected stops (not explicit completion)
|
|
477
|
-
const reason = (event as { reason?: string }).reason;
|
|
478
|
-
if (reason === "completed" || reason === "cancelled") return;
|
|
479
|
-
|
|
480
|
-
// Schedule auto-continuation (async, fire-and-forget)
|
|
481
|
-
setTimeout(async () => {
|
|
482
|
-
try {
|
|
483
|
-
const newAgent = await agentManager.continueAgent(event.agent.id);
|
|
484
|
-
// Update monitoring set
|
|
485
|
-
monitoredAgents.delete(event.agent.id);
|
|
486
|
-
monitoredAgents.add(newAgent.id);
|
|
487
|
-
|
|
488
|
-
if (event.agent.id === this.rootAgentId) {
|
|
489
|
-
this.rootAgentId = newAgent.id;
|
|
490
|
-
} else {
|
|
491
|
-
const idx = this.companionAgentIds.indexOf(event.agent.id);
|
|
492
|
-
if (idx >= 0) {
|
|
493
|
-
this.companionAgentIds[idx] = newAgent.id;
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
} catch {
|
|
497
|
-
// Failed to continue — agent is gone
|
|
498
|
-
}
|
|
499
|
-
}, 1000);
|
|
500
|
-
});
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
// ─────────────────────────────────────────────────────────────
|
|
504
|
-
// Auto-Scaling
|
|
505
|
-
// ─────────────────────────────────────────────────────────────
|
|
506
|
-
|
|
507
|
-
/** Minimum interval between scale-up actions (ms) */
|
|
508
|
-
private static readonly SCALE_COOLDOWN_MS = 10_000;
|
|
509
|
-
|
|
510
|
-
/** Default scaling check interval (ms) */
|
|
511
|
-
private static readonly SCALE_CHECK_INTERVAL_MS = 5_000;
|
|
512
|
-
|
|
513
|
-
/**
|
|
514
|
-
* Monitor task queue depth and auto-scale workers.
|
|
515
|
-
*
|
|
516
|
-
* Follows the same lifecycle pattern as monitorContinuations().
|
|
517
|
-
* Only active when `scaling.scale_on === "task_queue_depth"` and
|
|
518
|
-
* a task backend is available.
|
|
519
|
-
*/
|
|
520
|
-
private monitorScaling(): void {
|
|
521
|
-
const scalingConfig = this.resolved.macroAgent.lifecycle?.scaling;
|
|
522
|
-
if (!scalingConfig || scalingConfig.scale_on !== "task_queue_depth") return;
|
|
523
|
-
|
|
524
|
-
const { taskBackend } = this.services;
|
|
525
|
-
if (!taskBackend?.listClaimable) return; // Need claimable task counting
|
|
526
|
-
|
|
527
|
-
const maxWorkers = scalingConfig.max_workers ?? Infinity;
|
|
528
|
-
const minWorkers = scalingConfig.min_workers ?? 0;
|
|
529
|
-
|
|
530
|
-
// Determine which role names are worker-derived (for counting active workers)
|
|
531
|
-
const workerRoleNames = new Set<string>();
|
|
532
|
-
for (const [name, resolved] of this.resolved.resolvedRoles) {
|
|
533
|
-
if (resolved.baseRole === "worker") {
|
|
534
|
-
workerRoleNames.add(name);
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
if (workerRoleNames.size === 0) return; // No worker roles to scale
|
|
538
|
-
|
|
539
|
-
// Pick the first worker role for spawning (most common pattern: single worker role)
|
|
540
|
-
const spawnRole = [...workerRoleNames][0];
|
|
541
|
-
|
|
542
|
-
this.scalingTimer = setInterval(async () => {
|
|
543
|
-
try {
|
|
544
|
-
// Count claimable tasks
|
|
545
|
-
const claimable = await taskBackend.listClaimable!();
|
|
546
|
-
const pendingCount = claimable.length;
|
|
547
|
-
|
|
548
|
-
// Count active workers in this team
|
|
549
|
-
const allAgents = this.services.agentManager.list({ state: "running" });
|
|
550
|
-
let activeWorkers = 0;
|
|
551
|
-
for (const agent of allAgents) {
|
|
552
|
-
if (agent.role && workerRoleNames.has(agent.role) && this.agentRoleMap.has(agent.id as AgentId)) {
|
|
553
|
-
activeWorkers++;
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
// Scale up: more pending tasks than active workers, under max cap
|
|
558
|
-
if (pendingCount > activeWorkers && activeWorkers < maxWorkers) {
|
|
559
|
-
const now = Date.now();
|
|
560
|
-
if (now - this.lastScaleUpTime < TeamRuntime.SCALE_COOLDOWN_MS) {
|
|
561
|
-
return; // Cooldown not elapsed
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
if (!this.rootAgentId) return; // No root to spawn from
|
|
565
|
-
|
|
566
|
-
try {
|
|
567
|
-
await this.services.agentManager.spawn({
|
|
568
|
-
task: `[${this.manifest.name}] auto-scaled ${spawnRole}`,
|
|
569
|
-
role: spawnRole,
|
|
570
|
-
parent: this.rootAgentId,
|
|
571
|
-
});
|
|
572
|
-
this.lastScaleUpTime = now;
|
|
573
|
-
|
|
574
|
-
// Emit scaling event for observability
|
|
575
|
-
this.services.eventStore.emit({
|
|
576
|
-
type: "status",
|
|
577
|
-
source: { agent_id: "system" },
|
|
578
|
-
payload: {
|
|
579
|
-
status_type: "scaling",
|
|
580
|
-
summary: `Auto-scaled: spawned ${spawnRole} (pending=${pendingCount}, active=${activeWorkers}, max=${maxWorkers})`,
|
|
581
|
-
},
|
|
582
|
-
});
|
|
583
|
-
} catch {
|
|
584
|
-
// Spawn failed — will retry on next tick
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
// Scale down is handled by idle_drain: workers self-terminate after idle_timeout_s
|
|
589
|
-
// No active termination needed from the scaling monitor
|
|
590
|
-
} catch {
|
|
591
|
-
// Best-effort — don't crash the scaling loop
|
|
592
|
-
}
|
|
593
|
-
}, TeamRuntime.SCALE_CHECK_INTERVAL_MS);
|
|
594
|
-
|
|
595
|
-
// Ensure timer doesn't prevent process exit
|
|
596
|
-
if (this.scalingTimer.unref) {
|
|
597
|
-
this.scalingTimer.unref();
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
// ─────────────────────────────────────────────────────────────
|
|
602
|
-
// Workspace Integration
|
|
603
|
-
// ─────────────────────────────────────────────────────────────
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* Create the team-wide integration stream and subscribe to merge queue events.
|
|
607
|
-
*
|
|
608
|
-
* When a worker submits to the merge queue, the integrator agent is
|
|
609
|
-
* automatically prompted to process it.
|
|
610
|
-
*/
|
|
611
|
-
private setupWorkspaceIntegration(rootAgentId: AgentId): void {
|
|
612
|
-
const { workspaceManager } = this.services;
|
|
613
|
-
if (!workspaceManager || !this.integrationStrategy) return;
|
|
614
|
-
|
|
615
|
-
// Create integration stream owned by root agent
|
|
616
|
-
try {
|
|
617
|
-
this.teamStreamId = workspaceManager.createIntegrationStream(
|
|
618
|
-
rootAgentId,
|
|
619
|
-
{ name: this.manifest.name, forkFrom: "main" }
|
|
620
|
-
);
|
|
621
|
-
} catch {
|
|
622
|
-
// Workspace isolation unavailable (e.g., not a git repo)
|
|
623
|
-
return;
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
// Subscribe to merge queue events — wake integrator on mr:submitted
|
|
627
|
-
try {
|
|
628
|
-
const mergeQueue = workspaceManager.getMergeQueue();
|
|
629
|
-
if (mergeQueue?.onEvent) {
|
|
630
|
-
this.mergeQueueUnsub = mergeQueue.onEvent((event) => {
|
|
631
|
-
if (event.type !== "mr:submitted") return;
|
|
632
|
-
|
|
633
|
-
// Find agent with workspace.integrate capability in this team
|
|
634
|
-
for (const [agentId, roleName] of this.agentRoleMap) {
|
|
635
|
-
const resolved = this.resolved.resolvedRoles.get(roleName);
|
|
636
|
-
const caps = resolved?.capabilities ?? [];
|
|
637
|
-
if (caps.includes(WORKSPACE_CAPABILITIES.INTEGRATE)) {
|
|
638
|
-
try {
|
|
639
|
-
this.services.agentManager.prompt(
|
|
640
|
-
agentId,
|
|
641
|
-
`Merge request ${(event as { data?: Record<string, unknown> }).data?.mrId} submitted ` +
|
|
642
|
-
`by worker ${(event as { data?: Record<string, unknown> }).data?.workerAgentId} ` +
|
|
643
|
-
`for branch ${(event as { data?: Record<string, unknown> }).data?.workerBranch}. ` +
|
|
644
|
-
`Process the merge queue.`
|
|
645
|
-
);
|
|
646
|
-
} catch {
|
|
647
|
-
// Best-effort wake
|
|
648
|
-
}
|
|
649
|
-
break;
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
});
|
|
653
|
-
}
|
|
654
|
-
} catch {
|
|
655
|
-
// Merge queue not available — workspace isolation without merge queue
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
// Poll EventStore for MERGE_REQUEST signals from worker subprocesses.
|
|
659
|
-
// Workers in MCP subprocess emit to shared SQLite; main process must reload to see them.
|
|
660
|
-
this.startMergeRequestPolling();
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
/**
|
|
664
|
-
* Poll EventStore for MERGE_REQUEST signals emitted by worker subprocesses.
|
|
665
|
-
*
|
|
666
|
-
* Workers call done() in their MCP subprocess, which emits MERGE_REQUEST to
|
|
667
|
-
* the shared EventStore. This polling picks up those signals and submits to
|
|
668
|
-
* the merge queue on the main server.
|
|
669
|
-
*/
|
|
670
|
-
private startMergeRequestPolling(): void {
|
|
671
|
-
const { workspaceManager, eventStore } = this.services;
|
|
672
|
-
if (!workspaceManager || !this.teamStreamId) return;
|
|
673
|
-
|
|
674
|
-
const mergeQueue = workspaceManager.getMergeQueue();
|
|
675
|
-
if (!mergeQueue) return;
|
|
676
|
-
|
|
677
|
-
this.mergeRequestPollTimer = setInterval(async () => {
|
|
678
|
-
try {
|
|
679
|
-
// Reload to see events written by subprocesses
|
|
680
|
-
if (eventStore.reload) {
|
|
681
|
-
await eventStore.reload();
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
const events = eventStore.query({ type: "status", limit: 100 });
|
|
685
|
-
for (const event of events) {
|
|
686
|
-
// Skip already-processed events
|
|
687
|
-
if (event.timestamp <= this.lastMergeRequestSeen) continue;
|
|
688
|
-
|
|
689
|
-
const details = event.payload?.details as Record<string, unknown> | undefined;
|
|
690
|
-
if (details?.signal !== "MERGE_REQUEST") continue;
|
|
691
|
-
|
|
692
|
-
// Check this agent belongs to our team
|
|
693
|
-
const sourceAgentId = event.source?.agent_id;
|
|
694
|
-
if (!sourceAgentId) continue;
|
|
695
|
-
|
|
696
|
-
// Check if agent is a team member OR a child of a team member
|
|
697
|
-
const isTeamMember = this.agentRoleMap.has(sourceAgentId as AgentId);
|
|
698
|
-
const parentAgent = eventStore.getAgent(sourceAgentId);
|
|
699
|
-
const isChildOfTeamMember = parentAgent?.parent
|
|
700
|
-
? this.agentRoleMap.has(parentAgent.parent as AgentId)
|
|
701
|
-
: false;
|
|
702
|
-
|
|
703
|
-
if (!isTeamMember && !isChildOfTeamMember) continue;
|
|
704
|
-
|
|
705
|
-
this.lastMergeRequestSeen = event.timestamp;
|
|
706
|
-
|
|
707
|
-
// Extract merge request details
|
|
708
|
-
const sourceBranch = details.sourceBranch as string | undefined;
|
|
709
|
-
const taskId = details.taskId as string | undefined;
|
|
710
|
-
const workerId = details.workerId as string | undefined;
|
|
711
|
-
|
|
712
|
-
if (!sourceBranch || !workerId) continue;
|
|
713
|
-
|
|
714
|
-
// Submit to merge queue
|
|
715
|
-
try {
|
|
716
|
-
mergeQueue.submit({
|
|
717
|
-
streamId: this.teamStreamId!,
|
|
718
|
-
taskId: taskId ?? `task-${workerId}`,
|
|
719
|
-
workerBranch: sourceBranch,
|
|
720
|
-
workerAgentId: workerId,
|
|
721
|
-
});
|
|
722
|
-
} catch {
|
|
723
|
-
// Already submitted or other error — best-effort
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
} catch {
|
|
727
|
-
// Best-effort polling
|
|
728
|
-
}
|
|
729
|
-
}, 2000);
|
|
730
|
-
|
|
731
|
-
if (this.mergeRequestPollTimer.unref) {
|
|
732
|
-
this.mergeRequestPollTimer.unref();
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
// ─────────────────────────────────────────────────────────────
|
|
737
|
-
// Spawn Interceptor
|
|
738
|
-
// ─────────────────────────────────────────────────────────────
|
|
739
|
-
|
|
740
|
-
/**
|
|
741
|
-
* Internal: Create the spawn interceptor that injects team context into spawn options.
|
|
742
|
-
*/
|
|
743
|
-
private _createSpawnInterceptor(): SpawnInterceptor {
|
|
744
|
-
return (options: SpawnAgentOptions): SpawnAgentOptions => {
|
|
745
|
-
const roleName = options.role;
|
|
746
|
-
if (!roleName) return options;
|
|
747
|
-
|
|
748
|
-
const resolved = this.resolved.resolvedRoles.get(roleName);
|
|
749
|
-
if (!resolved) return options; // Unknown role — pass through
|
|
750
|
-
|
|
751
|
-
// Compute topics from communication topology
|
|
752
|
-
const teamTopics = this.getTopicsForRole(roleName);
|
|
753
|
-
|
|
754
|
-
// Get MCP servers for this role
|
|
755
|
-
const teamMcpServers = this.getMcpServersForRole(roleName);
|
|
756
|
-
|
|
757
|
-
// Get prompt from role definition or topology
|
|
758
|
-
const teamPrompt = this.getPromptForRole(roleName);
|
|
759
|
-
|
|
760
|
-
// Build team env vars
|
|
761
|
-
const teamEnv: Record<string, string> = {
|
|
762
|
-
MACRO_TEAM_NAME: this.manifest.name,
|
|
763
|
-
MACRO_TASK_MODE: this.getTaskMode(),
|
|
764
|
-
};
|
|
765
|
-
const strategyName = this.getStrategyName();
|
|
766
|
-
if (strategyName) {
|
|
767
|
-
teamEnv.MACRO_INTEGRATION_STRATEGY = strategyName;
|
|
768
|
-
}
|
|
769
|
-
// Task backend config is propagated by AgentManager.buildMacroAgentMcp()
|
|
770
|
-
// from its taskBackend/openTasksSocketPath config options.
|
|
771
|
-
|
|
772
|
-
// Inject workspace fields based on capabilities (never overwrite explicit values)
|
|
773
|
-
const capabilities = resolved.capabilities;
|
|
774
|
-
let streamId = options.streamId;
|
|
775
|
-
let streamConfig = options.streamConfig;
|
|
776
|
-
let dataplaneTaskId = options.dataplaneTaskId;
|
|
777
|
-
|
|
778
|
-
if (this.teamStreamId && capabilities) {
|
|
779
|
-
if (capabilities.includes(WORKSPACE_CAPABILITIES.WORKTREE)) {
|
|
780
|
-
streamId = streamId ?? this.teamStreamId;
|
|
781
|
-
// Pull-mode workers use agentId as workspace identifier (one worktree per lifetime)
|
|
782
|
-
dataplaneTaskId = dataplaneTaskId ?? `worker-${Date.now()}`;
|
|
783
|
-
} else if (capabilities.includes(WORKSPACE_CAPABILITIES.INTEGRATE)) {
|
|
784
|
-
streamId = streamId ?? this.teamStreamId;
|
|
785
|
-
}
|
|
786
|
-
// workspace.stream: stream creation is managed by TeamRuntime.setupWorkspaceIntegration(),
|
|
787
|
-
// not auto-injected. Coordinators that need sub-streams pass explicit streamConfig.
|
|
788
|
-
}
|
|
789
|
-
|
|
790
|
-
return {
|
|
791
|
-
...options,
|
|
792
|
-
// Workspace fields
|
|
793
|
-
streamId,
|
|
794
|
-
streamConfig,
|
|
795
|
-
dataplaneTaskId,
|
|
796
|
-
capabilities: capabilities ?? options.capabilities,
|
|
797
|
-
// Merge topics
|
|
798
|
-
topics: [
|
|
799
|
-
...(options.topics ?? []),
|
|
800
|
-
...teamTopics,
|
|
801
|
-
],
|
|
802
|
-
// Merge config
|
|
803
|
-
config: {
|
|
804
|
-
...options.config,
|
|
805
|
-
mcpServers: [
|
|
806
|
-
...(options.config?.mcpServers ?? []),
|
|
807
|
-
...teamMcpServers.map((s) => ({
|
|
808
|
-
name: s.name,
|
|
809
|
-
command: s.command,
|
|
810
|
-
args: s.args,
|
|
811
|
-
env: s.env,
|
|
812
|
-
})),
|
|
813
|
-
],
|
|
814
|
-
env: {
|
|
815
|
-
...options.config?.env,
|
|
816
|
-
...teamEnv,
|
|
817
|
-
},
|
|
818
|
-
},
|
|
819
|
-
// Set team prompt (only if not already provided by caller)
|
|
820
|
-
customPrompt: options.customPrompt ?? teamPrompt,
|
|
821
|
-
// Set interaction patterns (only if not already provided)
|
|
822
|
-
interactionPatterns: options.interactionPatterns ?? this.getInteractionPatterns(),
|
|
823
|
-
};
|
|
824
|
-
};
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
// ─────────────────────────────────────────────────────────────
|
|
828
|
-
// Communication Topology Helpers
|
|
829
|
-
// ─────────────────────────────────────────────────────────────
|
|
830
|
-
|
|
831
|
-
/**
|
|
832
|
-
* Get topic names a role should subscribe to based on communication config.
|
|
833
|
-
*/
|
|
834
|
-
private getTopicsForRole(roleName: string): string[] {
|
|
835
|
-
const topics: string[] = [];
|
|
836
|
-
const subs = this.communication.subscriptions?.[roleName] ?? [];
|
|
837
|
-
|
|
838
|
-
for (const sub of subs) {
|
|
839
|
-
// Channel name becomes the topic name
|
|
840
|
-
if (!topics.includes(sub.channel)) {
|
|
841
|
-
topics.push(sub.channel);
|
|
842
|
-
}
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
return topics;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
/**
|
|
849
|
-
* Get MCP servers configured for a role.
|
|
850
|
-
*/
|
|
851
|
-
private getMcpServersForRole(roleName: string): McpServerEntry[] {
|
|
852
|
-
return this.resolved.template.mcpServers.get(roleName) ?? [];
|
|
853
|
-
}
|
|
854
|
-
|
|
855
|
-
/**
|
|
856
|
-
* Get the loaded prompt content for a role.
|
|
857
|
-
*/
|
|
858
|
-
private getPromptForRole(roleName: string): string | undefined {
|
|
859
|
-
const resolved = this.resolved.resolvedRoles.get(roleName);
|
|
860
|
-
if (!resolved?.prompt) return undefined;
|
|
861
|
-
return this.loadedPrompts.get(resolved.prompt);
|
|
862
|
-
}
|
|
863
|
-
|
|
864
|
-
/**
|
|
865
|
-
* Get the prompt for a topology node (root or companion).
|
|
866
|
-
*/
|
|
867
|
-
private getPromptForTopologyNode(
|
|
868
|
-
node: { role: string; prompt?: string }
|
|
869
|
-
): string | undefined {
|
|
870
|
-
// Prefer topology-level prompt reference
|
|
871
|
-
if (node.prompt) {
|
|
872
|
-
return this.loadedPrompts.get(node.prompt);
|
|
873
|
-
}
|
|
874
|
-
// Fall back to role-level prompt
|
|
875
|
-
return this.getPromptForRole(node.role);
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
/**
|
|
879
|
-
* Generate interaction pattern injection sections based on team config.
|
|
880
|
-
*/
|
|
881
|
-
private getInteractionPatterns(): string[] {
|
|
882
|
-
const patterns: string[] = [];
|
|
883
|
-
const taskMode = this.getTaskMode();
|
|
884
|
-
|
|
885
|
-
if (taskMode === "pull") {
|
|
886
|
-
const pullConfig = this.resolved.macroAgent.task_assignment?.pull;
|
|
887
|
-
const idleTimeout = pullConfig?.idle_timeout_s ?? 300;
|
|
888
|
-
|
|
889
|
-
patterns.push(`## Task Claiming
|
|
890
|
-
|
|
891
|
-
You operate in PULL mode. After completing a task:
|
|
892
|
-
1. Call done() with your results
|
|
893
|
-
2. Call claim_task() to get your next task
|
|
894
|
-
3. If no tasks available, wait briefly and retry
|
|
895
|
-
4. After ${idleTimeout} seconds idle, call done() to exit gracefully
|
|
896
|
-
|
|
897
|
-
Claim and execute independently — do not wait for instructions.`);
|
|
898
|
-
}
|
|
899
|
-
|
|
900
|
-
const strategy = this.getStrategyName();
|
|
901
|
-
if (strategy === "trunk") {
|
|
902
|
-
patterns.push(`## Integration
|
|
903
|
-
|
|
904
|
-
Your changes are integrated via trunk-based development. When you call done(),
|
|
905
|
-
your work is pushed directly to the integration branch. If there's a conflict,
|
|
906
|
-
the system will rebase and retry automatically. Write small, focused changes
|
|
907
|
-
to minimize conflict probability.`);
|
|
908
|
-
} else if (strategy === "optimistic") {
|
|
909
|
-
patterns.push(`## Integration
|
|
910
|
-
|
|
911
|
-
Your changes are integrated optimistically. They are pushed immediately and
|
|
912
|
-
validated asynchronously. If validation fails, a fixup task will be created.
|
|
913
|
-
Focus on correctness — your changes go live immediately.`);
|
|
914
|
-
}
|
|
915
|
-
|
|
916
|
-
return patterns;
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
// ─────────────────────────────────────────────────────────────
|
|
920
|
-
// Exposed Interceptor / Filter / Validator Factories
|
|
921
|
-
// ─────────────────────────────────────────────────────────────
|
|
922
|
-
|
|
923
|
-
/**
|
|
924
|
-
* Create the spawn interceptor for this team.
|
|
925
|
-
*
|
|
926
|
-
* Returns a function that injects team context (topics, MCP servers,
|
|
927
|
-
* env vars, prompt, interaction patterns) into spawn options.
|
|
928
|
-
* The caller (TeamManager or installOnServices) is responsible for
|
|
929
|
-
* installing it on AgentManager.
|
|
930
|
-
*/
|
|
931
|
-
createSpawnInterceptor(): SpawnInterceptor {
|
|
932
|
-
return this._createSpawnInterceptor();
|
|
933
|
-
}
|
|
934
|
-
|
|
935
|
-
/**
|
|
936
|
-
* Create the signal filter for this team.
|
|
937
|
-
*
|
|
938
|
-
* Combines two filter sources:
|
|
939
|
-
* 1. Channel subscription filters (per-role, per-topic)
|
|
940
|
-
* 2. Peer connection filters (per-agent-pair)
|
|
941
|
-
*
|
|
942
|
-
* Must be called after bootstrap() so that agentRoleMap and
|
|
943
|
-
* peerSignalFilters are populated. Returns null if no filtering needed.
|
|
944
|
-
*/
|
|
945
|
-
createSignalFilter(): SignalFilter | null {
|
|
946
|
-
return (from: AgentId, to: AgentId, signal: string | undefined): boolean => {
|
|
947
|
-
// Untagged status events always pass through
|
|
948
|
-
if (!signal) return true;
|
|
949
|
-
|
|
950
|
-
// Check peer connection filter (directional: from→to)
|
|
951
|
-
const peerFilter = this.peerSignalFilters.get(`${from}→${to}`);
|
|
952
|
-
if (peerFilter) {
|
|
953
|
-
return peerFilter.includes(signal);
|
|
954
|
-
}
|
|
955
|
-
|
|
956
|
-
// Check channel subscription filter for recipient's role
|
|
957
|
-
const recipientRole = this.agentRoleMap.get(to);
|
|
958
|
-
if (recipientRole) {
|
|
959
|
-
const allowed = this.roleAllowedSignals.get(recipientRole);
|
|
960
|
-
if (allowed && allowed !== "all") {
|
|
961
|
-
return allowed.has(signal);
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
// No filter configured — allow delivery
|
|
966
|
-
return true;
|
|
967
|
-
};
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
/**
|
|
971
|
-
* Create the emission validator for this team.
|
|
972
|
-
*
|
|
973
|
-
* Checks whether an agent's emitted signal is in its role's allowed
|
|
974
|
-
* emissions list. Behavior depends on enforcement mode.
|
|
975
|
-
* Returns null if no emissions config exists.
|
|
976
|
-
*/
|
|
977
|
-
createEmissionValidator(): EmissionValidator | null {
|
|
978
|
-
const emissions = this.communication.emissions;
|
|
979
|
-
const enforcement = this.communication.enforcement ?? "permissive";
|
|
980
|
-
|
|
981
|
-
// No emissions config — nothing to enforce
|
|
982
|
-
if (!emissions || Object.keys(emissions).length === 0) return null;
|
|
983
|
-
|
|
984
|
-
return (agentId: AgentId, signal: string | undefined): EmissionValidatorResult => {
|
|
985
|
-
// Untagged status events are always allowed
|
|
986
|
-
if (!signal) return { action: "allow" };
|
|
987
|
-
|
|
988
|
-
const role = this.agentRoleMap.get(agentId);
|
|
989
|
-
if (!role) return { action: "allow" };
|
|
990
|
-
|
|
991
|
-
const allowedSignals = emissions[role];
|
|
992
|
-
if (!allowedSignals) return { action: "allow" };
|
|
993
|
-
|
|
994
|
-
if (allowedSignals.includes(signal)) {
|
|
995
|
-
return { action: "allow" };
|
|
996
|
-
}
|
|
997
|
-
|
|
998
|
-
// Signal not in allowed list — enforce
|
|
999
|
-
const message = `Agent '${agentId}' (role: ${role}) emitted disallowed signal '${signal}'. Allowed: [${allowedSignals.join(", ")}]`;
|
|
1000
|
-
|
|
1001
|
-
switch (enforcement) {
|
|
1002
|
-
case "strict":
|
|
1003
|
-
return { action: "reject", message };
|
|
1004
|
-
case "audit":
|
|
1005
|
-
return { action: "audit", message };
|
|
1006
|
-
case "permissive":
|
|
1007
|
-
default:
|
|
1008
|
-
return { action: "warn", message };
|
|
1009
|
-
}
|
|
1010
|
-
};
|
|
1011
|
-
}
|
|
1012
|
-
|
|
1013
|
-
/**
|
|
1014
|
-
* Convenience method: install interceptor, signal filter, and emission
|
|
1015
|
-
* validator directly on the shared services.
|
|
1016
|
-
*
|
|
1017
|
-
* Use this for standalone operation (without TeamManager).
|
|
1018
|
-
* TeamManager uses the individual create* methods for composite dispatch.
|
|
1019
|
-
*/
|
|
1020
|
-
installOnServices(): void {
|
|
1021
|
-
const { agentManager, messageRouter } = this.services;
|
|
1022
|
-
|
|
1023
|
-
agentManager.setSpawnInterceptor(this.createSpawnInterceptor());
|
|
1024
|
-
|
|
1025
|
-
const signalFilter = this.createSignalFilter();
|
|
1026
|
-
if (signalFilter && messageRouter.setSignalFilter) {
|
|
1027
|
-
messageRouter.setSignalFilter(signalFilter);
|
|
1028
|
-
}
|
|
1029
|
-
|
|
1030
|
-
const emissionValidator = this.createEmissionValidator();
|
|
1031
|
-
if (emissionValidator && messageRouter.setEmissionValidator) {
|
|
1032
|
-
messageRouter.setEmissionValidator(emissionValidator);
|
|
1033
|
-
}
|
|
1034
|
-
}
|
|
1035
|
-
|
|
1036
|
-
/**
|
|
1037
|
-
* Convenience method: uninstall interceptor and filters from services.
|
|
1038
|
-
* Use on teardown for standalone operation.
|
|
1039
|
-
*/
|
|
1040
|
-
uninstallFromServices(): void {
|
|
1041
|
-
this.services.agentManager.setSpawnInterceptor(null);
|
|
1042
|
-
}
|
|
1043
|
-
|
|
1044
|
-
// ─────────────────────────────────────────────────────────────
|
|
1045
|
-
// Internal: Pre-compute role allowed signals
|
|
1046
|
-
// ─────────────────────────────────────────────────────────────
|
|
1047
|
-
|
|
1048
|
-
/**
|
|
1049
|
-
* Pre-compute per-role allowed signals from channel subscriptions.
|
|
1050
|
-
* Called during bootstrap() so createSignalFilter() can use the result.
|
|
1051
|
-
*/
|
|
1052
|
-
private computeRoleAllowedSignals(): void {
|
|
1053
|
-
this.roleAllowedSignals.clear();
|
|
1054
|
-
|
|
1055
|
-
for (const [roleName, subs] of Object.entries(this.communication.subscriptions ?? {})) {
|
|
1056
|
-
let allowed: Set<string> | "all" = new Set<string>();
|
|
1057
|
-
|
|
1058
|
-
for (const sub of subs) {
|
|
1059
|
-
if (!sub.signals || sub.signals.length === 0) {
|
|
1060
|
-
// No filter on this subscription — role receives all signals
|
|
1061
|
-
allowed = "all";
|
|
1062
|
-
break;
|
|
1063
|
-
}
|
|
1064
|
-
for (const sig of sub.signals) {
|
|
1065
|
-
(allowed as Set<string>).add(sig);
|
|
1066
|
-
}
|
|
1067
|
-
}
|
|
1068
|
-
|
|
1069
|
-
this.roleAllowedSignals.set(roleName, allowed);
|
|
1070
|
-
}
|
|
1071
|
-
}
|
|
1072
|
-
|
|
1073
|
-
// ─────────────────────────────────────────────────────────────
|
|
1074
|
-
// Peer Routing
|
|
1075
|
-
// ─────────────────────────────────────────────────────────────
|
|
1076
|
-
|
|
1077
|
-
/**
|
|
1078
|
-
* Wire peer subscriptions from communication config.
|
|
1079
|
-
* Falls back to legacy bidirectional subtree subs when no peers config exists.
|
|
1080
|
-
*/
|
|
1081
|
-
private wirePeerRoutes(): void {
|
|
1082
|
-
const peers = this.communication.routing?.peers;
|
|
1083
|
-
|
|
1084
|
-
if (!peers || peers.length === 0) {
|
|
1085
|
-
// Fallback: hardcoded mutual subtree subscriptions (backwards compat)
|
|
1086
|
-
this.setupLegacyPeerSubscriptions();
|
|
1087
|
-
return;
|
|
1088
|
-
}
|
|
1089
|
-
|
|
1090
|
-
this.pendingPeerRoutes = [];
|
|
1091
|
-
|
|
1092
|
-
for (const peer of peers) {
|
|
1093
|
-
const fromAgent = this.roleAgentMap.get(peer.from);
|
|
1094
|
-
const toAgent = this.roleAgentMap.get(peer.to);
|
|
1095
|
-
|
|
1096
|
-
if (!fromAgent || !toAgent) {
|
|
1097
|
-
// One or both roles not yet spawned — defer
|
|
1098
|
-
this.pendingPeerRoutes.push(peer);
|
|
1099
|
-
continue;
|
|
1100
|
-
}
|
|
1101
|
-
|
|
1102
|
-
this.wireSinglePeerRoute(peer, fromAgent, toAgent);
|
|
1103
|
-
}
|
|
1104
|
-
|
|
1105
|
-
// If there are pending routes, set up lifecycle listener for deferred wiring
|
|
1106
|
-
if (this.pendingPeerRoutes.length > 0) {
|
|
1107
|
-
this.setupDeferredPeerWiring();
|
|
1108
|
-
}
|
|
1109
|
-
}
|
|
1110
|
-
|
|
1111
|
-
/**
|
|
1112
|
-
* Wire a single peer connection based on its `via` type.
|
|
1113
|
-
*/
|
|
1114
|
-
private wireSinglePeerRoute(
|
|
1115
|
-
peer: PeerConnection,
|
|
1116
|
-
fromAgent: AgentId,
|
|
1117
|
-
toAgent: AgentId
|
|
1118
|
-
): void {
|
|
1119
|
-
const { messageRouter } = this.services;
|
|
1120
|
-
|
|
1121
|
-
switch (peer.via) {
|
|
1122
|
-
case "direct":
|
|
1123
|
-
// Directional: from receives status events from to's subtree
|
|
1124
|
-
messageRouter.subscribe(fromAgent, { type: "subtree", target: toAgent });
|
|
1125
|
-
break;
|
|
1126
|
-
|
|
1127
|
-
case "topic": {
|
|
1128
|
-
// Both agents share a named topic
|
|
1129
|
-
const topicName = `peer:${peer.from}:${peer.to}`;
|
|
1130
|
-
messageRouter.subscribe(fromAgent, { type: "topic", target: topicName });
|
|
1131
|
-
messageRouter.subscribe(toAgent, { type: "topic", target: topicName });
|
|
1132
|
-
break;
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
case "scope":
|
|
1136
|
-
// from subscribes to to's role channel
|
|
1137
|
-
messageRouter.subscribe(fromAgent, { type: "role", target: peer.to });
|
|
1138
|
-
break;
|
|
1139
|
-
}
|
|
1140
|
-
|
|
1141
|
-
// Store signal filter if specified
|
|
1142
|
-
if (peer.signals && peer.signals.length > 0) {
|
|
1143
|
-
const key = `${fromAgent}→${toAgent}`;
|
|
1144
|
-
this.peerSignalFilters.set(key, peer.signals);
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
|
-
/**
|
|
1149
|
-
* Legacy bidirectional subtree subscriptions between root and companions.
|
|
1150
|
-
* Used when no `routing.peers` config is defined (backwards compat).
|
|
1151
|
-
*/
|
|
1152
|
-
private setupLegacyPeerSubscriptions(): void {
|
|
1153
|
-
const { messageRouter } = this.services;
|
|
1154
|
-
|
|
1155
|
-
if (!this.rootAgentId) return;
|
|
1156
|
-
for (const companionId of this.companionAgentIds) {
|
|
1157
|
-
messageRouter.subscribe(this.rootAgentId as AgentId, { type: "subtree", target: companionId as AgentId });
|
|
1158
|
-
messageRouter.subscribe(companionId as AgentId, { type: "subtree", target: this.rootAgentId as AgentId });
|
|
1159
|
-
}
|
|
1160
|
-
}
|
|
1161
|
-
|
|
1162
|
-
/**
|
|
1163
|
-
* Listen for agent spawns and wire pending peer routes when roles become available.
|
|
1164
|
-
*/
|
|
1165
|
-
private setupDeferredPeerWiring(): void {
|
|
1166
|
-
const { agentManager } = this.services;
|
|
1167
|
-
|
|
1168
|
-
this.peerWiringUnsubscribe = agentManager.onLifecycleEvent((event) => {
|
|
1169
|
-
if (event.type !== "spawned") return;
|
|
1170
|
-
const role = event.agent.role;
|
|
1171
|
-
if (!role) return;
|
|
1172
|
-
|
|
1173
|
-
// Update role↔agent mappings
|
|
1174
|
-
this.roleAgentMap.set(role, event.agent.id as AgentId);
|
|
1175
|
-
this.agentRoleMap.set(event.agent.id as AgentId, role);
|
|
1176
|
-
|
|
1177
|
-
// Try to wire any pending routes involving this role
|
|
1178
|
-
const stillPending: PeerConnection[] = [];
|
|
1179
|
-
for (const peer of this.pendingPeerRoutes) {
|
|
1180
|
-
const fromAgent = this.roleAgentMap.get(peer.from);
|
|
1181
|
-
const toAgent = this.roleAgentMap.get(peer.to);
|
|
1182
|
-
|
|
1183
|
-
if (fromAgent && toAgent) {
|
|
1184
|
-
this.wireSinglePeerRoute(peer, fromAgent, toAgent);
|
|
1185
|
-
} else {
|
|
1186
|
-
stillPending.push(peer);
|
|
1187
|
-
}
|
|
1188
|
-
}
|
|
1189
|
-
this.pendingPeerRoutes = stillPending;
|
|
1190
|
-
|
|
1191
|
-
// All wired — unsubscribe
|
|
1192
|
-
if (stillPending.length === 0 && this.peerWiringUnsubscribe) {
|
|
1193
|
-
this.peerWiringUnsubscribe();
|
|
1194
|
-
this.peerWiringUnsubscribe = undefined;
|
|
1195
|
-
}
|
|
1196
|
-
});
|
|
1197
|
-
}
|
|
1198
|
-
}
|