macro-agent 0.0.10 → 0.0.12
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/.macro-agent/teams/self-driving/prompts/grinder.md +27 -0
- package/.macro-agent/teams/self-driving/prompts/judge.md +27 -0
- package/.macro-agent/teams/self-driving/prompts/planner.md +33 -0
- package/.macro-agent/teams/self-driving/roles/grinder.yaml +17 -0
- package/.macro-agent/teams/self-driving/roles/judge.yaml +24 -0
- package/.macro-agent/teams/self-driving/roles/planner.yaml +18 -0
- package/.macro-agent/teams/self-driving/team.yaml +103 -0
- package/.macro-agent/teams/structured/prompts/developer.md +26 -0
- package/.macro-agent/teams/structured/prompts/lead.md +25 -0
- package/.macro-agent/teams/structured/prompts/reviewer.md +24 -0
- package/.macro-agent/teams/structured/roles/developer.yaml +12 -0
- package/.macro-agent/teams/structured/roles/lead.yaml +11 -0
- package/.macro-agent/teams/structured/roles/reviewer.yaml +19 -0
- package/.macro-agent/teams/structured/team.yaml +89 -0
- package/.sudocode/issues.jsonl +56 -51
- package/.sudocode/specs.jsonl +8 -1
- package/CLAUDE.md +121 -30
- package/README.md +60 -3
- package/dist/acp/macro-agent.d.ts +4 -0
- package/dist/acp/macro-agent.d.ts.map +1 -1
- package/dist/acp/macro-agent.js +50 -4
- package/dist/acp/macro-agent.js.map +1 -1
- package/dist/acp/session-mapper.d.ts +20 -1
- package/dist/acp/session-mapper.d.ts.map +1 -1
- package/dist/acp/session-mapper.js +90 -1
- package/dist/acp/session-mapper.js.map +1 -1
- package/dist/acp/types.d.ts +24 -1
- package/dist/acp/types.d.ts.map +1 -1
- package/dist/acp/types.js.map +1 -1
- package/dist/agent/agent-manager.d.ts +40 -1
- package/dist/agent/agent-manager.d.ts.map +1 -1
- package/dist/agent/agent-manager.js +172 -8
- package/dist/agent/agent-manager.js.map +1 -1
- package/dist/agent/types.d.ts +22 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/agent/wake.d.ts +15 -0
- package/dist/agent/wake.d.ts.map +1 -1
- package/dist/agent/wake.js +15 -0
- package/dist/agent/wake.js.map +1 -1
- package/dist/agent-detection/command-builder.d.ts +30 -0
- package/dist/agent-detection/command-builder.d.ts.map +1 -0
- package/dist/agent-detection/command-builder.js +71 -0
- package/dist/agent-detection/command-builder.js.map +1 -0
- package/dist/agent-detection/detector.d.ts +84 -0
- package/dist/agent-detection/detector.d.ts.map +1 -0
- package/dist/agent-detection/detector.js +240 -0
- package/dist/agent-detection/detector.js.map +1 -0
- package/dist/agent-detection/index.d.ts +12 -0
- package/dist/agent-detection/index.d.ts.map +1 -0
- package/dist/agent-detection/index.js +14 -0
- package/dist/agent-detection/index.js.map +1 -0
- package/dist/agent-detection/registry.d.ts +53 -0
- package/dist/agent-detection/registry.d.ts.map +1 -0
- package/dist/agent-detection/registry.js +177 -0
- package/dist/agent-detection/registry.js.map +1 -0
- package/dist/agent-detection/types.d.ts +121 -0
- package/dist/agent-detection/types.d.ts.map +1 -0
- package/dist/agent-detection/types.js +20 -0
- package/dist/agent-detection/types.js.map +1 -0
- package/dist/api/server.d.ts +5 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +362 -0
- package/dist/api/server.js.map +1 -1
- package/dist/api/types.d.ts +50 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/cli/acp.d.ts +2 -0
- package/dist/cli/acp.d.ts.map +1 -1
- package/dist/cli/acp.js +8 -1
- package/dist/cli/acp.js.map +1 -1
- package/dist/cli/index.js +29 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp.js +38 -0
- package/dist/cli/mcp.js.map +1 -1
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/project-config.d.ts +46 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +68 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/lifecycle/cascade.d.ts +1 -1
- package/dist/lifecycle/cascade.d.ts.map +1 -1
- package/dist/lifecycle/handlers/index.d.ts +4 -0
- package/dist/lifecycle/handlers/index.d.ts.map +1 -1
- package/dist/lifecycle/handlers/index.js +2 -0
- package/dist/lifecycle/handlers/index.js.map +1 -1
- package/dist/lifecycle/handlers/worker.d.ts +4 -0
- package/dist/lifecycle/handlers/worker.d.ts.map +1 -1
- package/dist/lifecycle/handlers/worker.js +35 -3
- package/dist/lifecycle/handlers/worker.js.map +1 -1
- package/dist/mail/conversation-map.d.ts +33 -0
- package/dist/mail/conversation-map.d.ts.map +1 -0
- package/dist/mail/conversation-map.js +61 -0
- package/dist/mail/conversation-map.js.map +1 -0
- package/dist/mail/index.d.ts +11 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +11 -0
- package/dist/mail/index.js.map +1 -0
- package/dist/mail/mail-service.d.ts +85 -0
- package/dist/mail/mail-service.d.ts.map +1 -0
- package/dist/mail/mail-service.js +121 -0
- package/dist/mail/mail-service.js.map +1 -0
- package/dist/mail/stores/eventstore-conversation-store.d.ts +40 -0
- package/dist/mail/stores/eventstore-conversation-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-conversation-store.js +131 -0
- package/dist/mail/stores/eventstore-conversation-store.js.map +1 -0
- package/dist/mail/stores/eventstore-participant-store.d.ts +43 -0
- package/dist/mail/stores/eventstore-participant-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-participant-store.js +145 -0
- package/dist/mail/stores/eventstore-participant-store.js.map +1 -0
- package/dist/mail/stores/eventstore-thread-store.d.ts +46 -0
- package/dist/mail/stores/eventstore-thread-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-thread-store.js +118 -0
- package/dist/mail/stores/eventstore-thread-store.js.map +1 -0
- package/dist/mail/stores/eventstore-turn-store.d.ts +47 -0
- package/dist/mail/stores/eventstore-turn-store.d.ts.map +1 -0
- package/dist/mail/stores/eventstore-turn-store.js +153 -0
- package/dist/mail/stores/eventstore-turn-store.js.map +1 -0
- package/dist/mail/stores/index.d.ts +12 -0
- package/dist/mail/stores/index.d.ts.map +1 -0
- package/dist/mail/stores/index.js +12 -0
- package/dist/mail/stores/index.js.map +1 -0
- package/dist/mail/stores/types.d.ts +146 -0
- package/dist/mail/stores/types.d.ts.map +1 -0
- package/dist/mail/stores/types.js +13 -0
- package/dist/mail/stores/types.js.map +1 -0
- package/dist/mail/turn-recorder.d.ts +30 -0
- package/dist/mail/turn-recorder.d.ts.map +1 -0
- package/dist/mail/turn-recorder.js +98 -0
- package/dist/mail/turn-recorder.js.map +1 -0
- package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
- package/dist/map/adapter/acp-over-map.js +32 -2
- package/dist/map/adapter/acp-over-map.js.map +1 -1
- package/dist/map/adapter/event-translator.d.ts.map +1 -1
- package/dist/map/adapter/event-translator.js +4 -0
- package/dist/map/adapter/event-translator.js.map +1 -1
- package/dist/map/adapter/extensions/agent-detection.d.ts +49 -0
- package/dist/map/adapter/extensions/agent-detection.d.ts.map +1 -0
- package/dist/map/adapter/extensions/agent-detection.js +91 -0
- package/dist/map/adapter/extensions/agent-detection.js.map +1 -0
- package/dist/map/adapter/extensions/index.d.ts +10 -1
- package/dist/map/adapter/extensions/index.d.ts.map +1 -1
- package/dist/map/adapter/extensions/index.js +39 -0
- package/dist/map/adapter/extensions/index.js.map +1 -1
- package/dist/map/adapter/extensions/resume.d.ts +47 -0
- package/dist/map/adapter/extensions/resume.d.ts.map +1 -0
- package/dist/map/adapter/extensions/resume.js +59 -0
- package/dist/map/adapter/extensions/resume.js.map +1 -0
- package/dist/map/adapter/extensions/workspace-files.d.ts +42 -0
- package/dist/map/adapter/extensions/workspace-files.d.ts.map +1 -0
- package/dist/map/adapter/extensions/workspace-files.js +338 -0
- package/dist/map/adapter/extensions/workspace-files.js.map +1 -0
- package/dist/map/adapter/mail-handler-adapter.d.ts +27 -0
- package/dist/map/adapter/mail-handler-adapter.d.ts.map +1 -0
- package/dist/map/adapter/mail-handler-adapter.js +292 -0
- package/dist/map/adapter/mail-handler-adapter.js.map +1 -0
- package/dist/map/adapter/map-adapter.d.ts +34 -10
- package/dist/map/adapter/map-adapter.d.ts.map +1 -1
- package/dist/map/adapter/map-adapter.js +110 -14
- package/dist/map/adapter/map-adapter.js.map +1 -1
- package/dist/map/adapter/rpc-handler.d.ts +4 -1
- package/dist/map/adapter/rpc-handler.d.ts.map +1 -1
- package/dist/map/adapter/rpc-handler.js +6 -0
- package/dist/map/adapter/rpc-handler.js.map +1 -1
- package/dist/map/index.d.ts +1 -0
- package/dist/map/index.d.ts.map +1 -1
- package/dist/map/index.js +2 -0
- package/dist/map/index.js.map +1 -1
- package/dist/map/types.d.ts +3 -1
- package/dist/map/types.d.ts.map +1 -1
- package/dist/map/types.js.map +1 -1
- package/dist/mcp/mcp-server.d.ts +6 -0
- package/dist/mcp/mcp-server.d.ts.map +1 -1
- package/dist/mcp/mcp-server.js +45 -0
- package/dist/mcp/mcp-server.js.map +1 -1
- package/dist/mcp/tools/claim_task.d.ts +35 -0
- package/dist/mcp/tools/claim_task.d.ts.map +1 -0
- package/dist/mcp/tools/claim_task.js +58 -0
- package/dist/mcp/tools/claim_task.js.map +1 -0
- package/dist/mcp/tools/done.d.ts +15 -2
- package/dist/mcp/tools/done.d.ts.map +1 -1
- package/dist/mcp/tools/done.js +45 -10
- package/dist/mcp/tools/done.js.map +1 -1
- package/dist/mcp/tools/list_claimable_tasks.d.ts +38 -0
- package/dist/mcp/tools/list_claimable_tasks.d.ts.map +1 -0
- package/dist/mcp/tools/list_claimable_tasks.js +63 -0
- package/dist/mcp/tools/list_claimable_tasks.js.map +1 -0
- package/dist/mcp/tools/unclaim_task.d.ts +31 -0
- package/dist/mcp/tools/unclaim_task.d.ts.map +1 -0
- package/dist/mcp/tools/unclaim_task.js +47 -0
- package/dist/mcp/tools/unclaim_task.js.map +1 -0
- package/dist/metrics/index.d.ts +2 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +2 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/metrics.d.ts +79 -0
- package/dist/metrics/metrics.d.ts.map +1 -0
- package/dist/metrics/metrics.js +166 -0
- package/dist/metrics/metrics.js.map +1 -0
- package/dist/roles/capabilities.d.ts +1 -0
- package/dist/roles/capabilities.d.ts.map +1 -1
- package/dist/roles/capabilities.js +3 -0
- package/dist/roles/capabilities.js.map +1 -1
- package/dist/roles/types.d.ts +1 -1
- package/dist/roles/types.d.ts.map +1 -1
- package/dist/router/channels.d.ts +2 -4
- package/dist/router/channels.d.ts.map +1 -1
- package/dist/router/channels.js.map +1 -1
- package/dist/router/message-router.d.ts +85 -9
- package/dist/router/message-router.d.ts.map +1 -1
- package/dist/router/message-router.js +203 -14
- package/dist/router/message-router.js.map +1 -1
- package/dist/router/role-resolver.d.ts +10 -1
- package/dist/router/role-resolver.d.ts.map +1 -1
- package/dist/router/role-resolver.js +15 -1
- package/dist/router/role-resolver.js.map +1 -1
- package/dist/router/types.d.ts +30 -1
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js.map +1 -1
- package/dist/server/combined-server.d.ts +6 -0
- package/dist/server/combined-server.d.ts.map +1 -1
- package/dist/server/combined-server.js +24 -2
- package/dist/server/combined-server.js.map +1 -1
- package/dist/store/event-store.d.ts +14 -1
- package/dist/store/event-store.d.ts.map +1 -1
- package/dist/store/event-store.js +456 -4
- package/dist/store/event-store.js.map +1 -1
- package/dist/store/types/agents.d.ts +1 -1
- package/dist/store/types/agents.d.ts.map +1 -1
- package/dist/store/types/conversations.d.ts +91 -0
- package/dist/store/types/conversations.d.ts.map +1 -0
- package/dist/store/types/conversations.js +8 -0
- package/dist/store/types/conversations.js.map +1 -0
- package/dist/store/types/events.d.ts +1 -1
- package/dist/store/types/events.d.ts.map +1 -1
- package/dist/store/types/events.js.map +1 -1
- package/dist/store/types/index.d.ts +2 -0
- package/dist/store/types/index.d.ts.map +1 -1
- package/dist/store/types/index.js +2 -0
- package/dist/store/types/index.js.map +1 -1
- package/dist/store/types/sessions.d.ts +44 -0
- package/dist/store/types/sessions.d.ts.map +1 -0
- package/dist/store/types/sessions.js +9 -0
- package/dist/store/types/sessions.js.map +1 -0
- package/dist/store/types/tasks.d.ts +2 -0
- package/dist/store/types/tasks.d.ts.map +1 -1
- package/dist/task/backend/memory.d.ts +4 -1
- package/dist/task/backend/memory.d.ts.map +1 -1
- package/dist/task/backend/memory.js +81 -0
- package/dist/task/backend/memory.js.map +1 -1
- package/dist/task/backend/types.d.ts +30 -0
- package/dist/task/backend/types.d.ts.map +1 -1
- package/dist/task/backend/types.js.map +1 -1
- package/dist/teams/index.d.ts +4 -0
- package/dist/teams/index.d.ts.map +1 -0
- package/dist/teams/index.js +4 -0
- package/dist/teams/index.js.map +1 -0
- package/dist/teams/team-loader.d.ts +20 -0
- package/dist/teams/team-loader.d.ts.map +1 -0
- package/dist/teams/team-loader.js +293 -0
- package/dist/teams/team-loader.js.map +1 -0
- package/dist/teams/team-runtime.d.ts +139 -0
- package/dist/teams/team-runtime.d.ts.map +1 -0
- package/dist/teams/team-runtime.js +613 -0
- package/dist/teams/team-runtime.js.map +1 -0
- package/dist/teams/types.d.ts +266 -0
- package/dist/teams/types.d.ts.map +1 -0
- package/dist/teams/types.js +20 -0
- package/dist/teams/types.js.map +1 -0
- package/dist/trigger/router/trigger-router.d.ts +30 -3
- package/dist/trigger/router/trigger-router.d.ts.map +1 -1
- package/dist/trigger/router/trigger-router.js +30 -3
- package/dist/trigger/router/trigger-router.js.map +1 -1
- package/dist/trigger/wake/types.d.ts +31 -5
- package/dist/trigger/wake/types.d.ts.map +1 -1
- package/dist/trigger/wake/types.js +19 -0
- package/dist/trigger/wake/types.js.map +1 -1
- package/dist/workspace/dataplane-adapter.d.ts +1 -1
- package/dist/workspace/dataplane-adapter.d.ts.map +1 -1
- package/dist/workspace/dataplane-adapter.js +1 -1
- package/dist/workspace/dataplane-adapter.js.map +1 -1
- package/dist/workspace/index.d.ts +1 -1
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/strategies/index.d.ts +6 -0
- package/dist/workspace/strategies/index.d.ts.map +1 -0
- package/dist/workspace/strategies/index.js +5 -0
- package/dist/workspace/strategies/index.js.map +1 -0
- package/dist/workspace/strategies/optimistic.d.ts +26 -0
- package/dist/workspace/strategies/optimistic.d.ts.map +1 -0
- package/dist/workspace/strategies/optimistic.js +121 -0
- package/dist/workspace/strategies/optimistic.js.map +1 -0
- package/dist/workspace/strategies/queue.d.ts +26 -0
- package/dist/workspace/strategies/queue.d.ts.map +1 -0
- package/dist/workspace/strategies/queue.js +67 -0
- package/dist/workspace/strategies/queue.js.map +1 -0
- package/dist/workspace/strategies/registry.d.ts +37 -0
- package/dist/workspace/strategies/registry.d.ts.map +1 -0
- package/dist/workspace/strategies/registry.js +63 -0
- package/dist/workspace/strategies/registry.js.map +1 -0
- package/dist/workspace/strategies/trunk.d.ts +20 -0
- package/dist/workspace/strategies/trunk.d.ts.map +1 -0
- package/dist/workspace/strategies/trunk.js +108 -0
- package/dist/workspace/strategies/trunk.js.map +1 -0
- package/dist/workspace/strategies/types.d.ts +104 -0
- package/dist/workspace/strategies/types.d.ts.map +1 -0
- package/dist/workspace/strategies/types.js +11 -0
- package/dist/workspace/strategies/types.js.map +1 -0
- package/dist/workspace/types.d.ts +1 -1
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/workspace-manager.d.ts +1 -1
- package/dist/workspace/workspace-manager.d.ts.map +1 -1
- package/docs/implementation-details.md +1127 -0
- package/docs/implementation-summary.md +448 -0
- package/docs/mail-integration.md +608 -0
- package/docs/plan-self-driving-support.md +433 -0
- package/docs/spec-self-driving-support.md +462 -0
- package/docs/team-templates.md +860 -0
- package/docs/teams.md +233 -0
- package/package.json +5 -3
- package/src/acp/__tests__/integration.test.ts +161 -1
- package/src/acp/__tests__/macro-agent.test.ts +95 -0
- package/src/acp/__tests__/session-persistence.test.ts +276 -0
- package/src/acp/macro-agent.ts +79 -7
- package/src/acp/session-mapper.ts +108 -1
- package/src/acp/types.ts +33 -1
- package/src/agent/agent-manager.ts +278 -6
- package/src/agent/types.ts +27 -0
- package/src/agent/wake.ts +15 -0
- package/src/agent-detection/__tests__/command-builder.test.ts +336 -0
- package/src/agent-detection/__tests__/detector.test.ts +768 -0
- package/src/agent-detection/__tests__/registry.test.ts +254 -0
- package/src/agent-detection/command-builder.ts +90 -0
- package/src/agent-detection/detector.ts +307 -0
- package/src/agent-detection/index.ts +36 -0
- package/src/agent-detection/registry.ts +200 -0
- package/src/agent-detection/types.ts +184 -0
- package/src/api/__tests__/conversation-api.test.ts +468 -0
- package/src/api/server.ts +425 -1
- package/src/api/types.ts +64 -1
- package/src/cli/acp.ts +9 -1
- package/src/cli/index.ts +44 -0
- package/src/cli/mcp.ts +47 -0
- package/src/config/index.ts +9 -0
- package/src/config/project-config.ts +107 -0
- package/src/lifecycle/cascade.ts +1 -1
- package/src/lifecycle/handlers/index.ts +8 -0
- package/src/lifecycle/handlers/worker.ts +48 -3
- package/src/mail/__tests__/conversation-lifecycle.test.ts +409 -0
- package/src/mail/__tests__/eventstore-stores.test.ts +1073 -0
- package/src/mail/__tests__/mail-full-agent.e2e.test.ts +575 -0
- package/src/mail/__tests__/mail-integration.test.ts +759 -0
- package/src/mail/__tests__/mail-map-protocol.e2e.test.ts +1068 -0
- package/src/mail/__tests__/mail-service.test.ts +506 -0
- package/src/mail/__tests__/turn-recorder.test.ts +328 -0
- package/src/mail/conversation-map.ts +107 -0
- package/src/mail/index.ts +25 -0
- package/src/mail/mail-service.ts +257 -0
- package/src/mail/stores/eventstore-conversation-store.ts +146 -0
- package/src/mail/stores/eventstore-participant-store.ts +172 -0
- package/src/mail/stores/eventstore-thread-store.ts +129 -0
- package/src/mail/stores/eventstore-turn-store.ts +173 -0
- package/src/mail/stores/index.ts +12 -0
- package/src/mail/stores/types.ts +160 -0
- package/src/mail/turn-recorder.ts +124 -0
- package/src/map/README.md +79 -0
- package/src/map/adapter/__tests__/extensions.test.ts +359 -0
- package/src/map/adapter/__tests__/map-adapter.test.ts +90 -0
- package/src/map/adapter/__tests__/workspace-files.test.ts +673 -0
- package/src/map/adapter/acp-over-map.ts +45 -2
- package/src/map/adapter/event-translator.ts +4 -0
- package/src/map/adapter/extensions/agent-detection.ts +201 -0
- package/src/map/adapter/extensions/index.ts +63 -0
- package/src/map/adapter/extensions/resume.ts +114 -0
- package/src/map/adapter/extensions/workspace-files.ts +449 -0
- package/src/map/adapter/mail-handler-adapter.ts +429 -0
- package/src/map/adapter/map-adapter.ts +173 -27
- package/src/map/adapter/rpc-handler.ts +8 -1
- package/src/map/index.ts +3 -0
- package/src/map/types.ts +3 -1
- package/src/mcp/mcp-server.ts +67 -0
- package/src/mcp/tools/claim_task.ts +86 -0
- package/src/mcp/tools/done.ts +59 -10
- package/src/mcp/tools/list_claimable_tasks.ts +93 -0
- package/src/mcp/tools/unclaim_task.ts +71 -0
- package/src/metrics/index.ts +9 -0
- package/src/metrics/metrics.ts +280 -0
- package/src/roles/capabilities.ts +3 -0
- package/src/roles/types.ts +2 -1
- package/src/router/README.md +120 -0
- package/src/router/__tests__/message-router.test.ts +561 -0
- package/src/router/channels.ts +3 -4
- package/src/router/message-router.ts +308 -22
- package/src/router/role-resolver.ts +22 -1
- package/src/router/types.ts +36 -1
- package/src/server/combined-server.ts +36 -2
- package/src/store/README.md +134 -0
- package/src/store/event-store.ts +546 -3
- package/src/store/types/agents.ts +1 -1
- package/src/store/types/conversations.ts +129 -0
- package/src/store/types/events.ts +5 -1
- package/src/store/types/index.ts +2 -0
- package/src/store/types/sessions.ts +53 -0
- package/src/store/types/tasks.ts +3 -0
- package/src/task/backend/memory.ts +116 -0
- package/src/task/backend/types.ts +43 -0
- package/src/teams/__tests__/cross-subsystem.integration.test.ts +983 -0
- package/src/teams/__tests__/e2e/team-runtime.e2e.test.ts +553 -0
- package/src/teams/__tests__/team-system.test.ts +1280 -0
- package/src/teams/index.ts +13 -0
- package/src/teams/team-loader.ts +434 -0
- package/src/teams/team-runtime.ts +727 -0
- package/src/teams/types.ts +377 -0
- package/src/trigger/router/trigger-router.ts +30 -3
- package/src/trigger/wake/types.ts +32 -5
- package/src/trigger/wake/wake-manager.ts +2 -2
- package/src/workspace/dataplane-adapter.ts +1 -1
- package/src/workspace/index.ts +1 -1
- package/src/workspace/strategies/index.ts +18 -0
- package/src/workspace/strategies/optimistic.ts +136 -0
- package/src/workspace/strategies/queue.ts +81 -0
- package/src/workspace/strategies/registry.ts +89 -0
- package/src/workspace/strategies/trunk.ts +123 -0
- package/src/workspace/strategies/types.ts +145 -0
- package/src/workspace/types.ts +1 -1
- package/src/workspace/workspace-manager.ts +1 -1
- package/.claude/settings.local.json +0 -59
- 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/openspec/AGENTS.md +0 -456
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/design.md +0 -128
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/proposal.md +0 -49
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/specs/agent-manager/spec.md +0 -150
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/specs/cli-api/spec.md +0 -258
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/specs/event-store/spec.md +0 -160
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/specs/mcp-tools/spec.md +0 -224
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/specs/message-router/spec.md +0 -153
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/specs/task-manager/spec.md +0 -136
- package/openspec/changes/archive/2025-12-21-add-mvp-foundation/tasks.md +0 -147
- package/openspec/project.md +0 -31
- package/openspec/specs/agent-manager/spec.md +0 -154
- package/openspec/specs/cli-api/spec.md +0 -262
- package/openspec/specs/event-store/spec.md +0 -164
- package/openspec/specs/mcp-tools/spec.md +0 -228
- package/openspec/specs/message-router/spec.md +0 -157
- package/openspec/specs/task-manager/spec.md +0 -140
- 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/__init__.py +0 -0
- 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 -2065
- 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/multi-agent-protocol/.sudocode/issues.jsonl +0 -82
- package/references/multi-agent-protocol/.sudocode/specs.jsonl +0 -9
- 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 -460
- 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/package-lock.json +0 -3239
- package/references/multi-agent-protocol/package.json +0 -56
- package/references/multi-agent-protocol/schema/meta.json +0 -337
- package/references/multi-agent-protocol/schema/schema.json +0 -1828
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Grinder
|
|
2
|
+
|
|
3
|
+
You are a Grinder — an autonomous worker that claims tasks and executes them.
|
|
4
|
+
|
|
5
|
+
## How You Work
|
|
6
|
+
|
|
7
|
+
1. Call claim_task() to get your next task
|
|
8
|
+
2. Read the task description carefully
|
|
9
|
+
3. Execute the work: write code, run tests, fix issues
|
|
10
|
+
4. When done, call done() with your results
|
|
11
|
+
5. Immediately call claim_task() for the next task
|
|
12
|
+
6. If no tasks available, wait briefly and retry
|
|
13
|
+
|
|
14
|
+
## Work Guidelines
|
|
15
|
+
|
|
16
|
+
- Work independently — do not ask for instructions
|
|
17
|
+
- Write complete implementations, not stubs or TODOs
|
|
18
|
+
- Run tests before calling done() if the task involves code changes
|
|
19
|
+
- Commit your changes with clear, descriptive messages
|
|
20
|
+
- If you're stuck on a task for more than 10 minutes, call done({ status: "blocked" })
|
|
21
|
+
|
|
22
|
+
## Quality
|
|
23
|
+
|
|
24
|
+
- Follow existing codebase conventions
|
|
25
|
+
- Ensure your changes compile and pass lint
|
|
26
|
+
- Write tests for new functionality
|
|
27
|
+
- Keep changes focused on the task — don't refactor surrounding code
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Judge
|
|
2
|
+
|
|
3
|
+
You periodically evaluate the health of the codebase and take corrective action.
|
|
4
|
+
|
|
5
|
+
## Evaluation Cycle
|
|
6
|
+
|
|
7
|
+
Every time you activate:
|
|
8
|
+
1. Run the build — check compilation
|
|
9
|
+
2. Run the test suite — check correctness
|
|
10
|
+
3. Run the linter — check code quality
|
|
11
|
+
4. If all pass: emit GREEN_SNAPSHOT
|
|
12
|
+
5. If any fail: create fixup tasks with tag "fixup" and priority "critical"
|
|
13
|
+
|
|
14
|
+
## Creating Fixup Tasks
|
|
15
|
+
|
|
16
|
+
When you find failures:
|
|
17
|
+
- Create one task per distinct issue (don't bundle)
|
|
18
|
+
- Include the exact error output in the task description
|
|
19
|
+
- Tag with: ["fixup", "<subsystem>"]
|
|
20
|
+
- Reference the failing file and test
|
|
21
|
+
|
|
22
|
+
## Health Reporting
|
|
23
|
+
|
|
24
|
+
After each evaluation cycle, emit a health status:
|
|
25
|
+
- Use emit_status to report overall codebase health
|
|
26
|
+
- Include: build status, test pass rate, lint error count
|
|
27
|
+
- This information helps the planner adjust priorities
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Planner
|
|
2
|
+
|
|
3
|
+
You are the Planner. Your job is to continuously explore the codebase,
|
|
4
|
+
understand the current state, and create well-defined tasks for workers.
|
|
5
|
+
|
|
6
|
+
## How You Work
|
|
7
|
+
|
|
8
|
+
1. **Explore**: Read the codebase to understand architecture, patterns, and gaps
|
|
9
|
+
2. **Plan**: Break the objective into independent, parallelizable tasks
|
|
10
|
+
3. **Create**: Use create_task to add tasks to the pool with clear descriptions and tags
|
|
11
|
+
4. **Monitor**: Watch for completed/failed tasks and adjust the plan
|
|
12
|
+
5. **Repeat**: Planning is continuous — as work completes, create the next batch
|
|
13
|
+
|
|
14
|
+
## Planning Guidelines
|
|
15
|
+
|
|
16
|
+
- Each task should be completable in 5-30 minutes by a single worker
|
|
17
|
+
- Tag tasks with subsystem and type for filtered claiming
|
|
18
|
+
- Set dependencies (blockers) when ordering matters
|
|
19
|
+
- Prefer many small tasks over few large ones — parallelism is the goal
|
|
20
|
+
- Include enough context for a worker to start without re-exploring
|
|
21
|
+
|
|
22
|
+
## Constraints
|
|
23
|
+
|
|
24
|
+
- Do NOT instruct on things the model already knows (coding, testing, etc.)
|
|
25
|
+
- DO specify things specific to this codebase (conventions, build system, deploy pipeline)
|
|
26
|
+
- Constraints are more effective than instructions: "No TODOs, no partial implementations"
|
|
27
|
+
|
|
28
|
+
## Sub-Planners
|
|
29
|
+
|
|
30
|
+
For large subsystems (>10 tasks), spawn a sub-planner:
|
|
31
|
+
- spawn_agent({ role: "planner", task: "Plan the [subsystem] changes" })
|
|
32
|
+
- Sub-planners create tasks in the shared pool
|
|
33
|
+
- You maintain the high-level view
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: grinder
|
|
2
|
+
extends: worker
|
|
3
|
+
display_name: "Grinder"
|
|
4
|
+
description: "Claims and executes tasks autonomously"
|
|
5
|
+
|
|
6
|
+
capabilities_add:
|
|
7
|
+
- task.claim
|
|
8
|
+
- git.push
|
|
9
|
+
|
|
10
|
+
prompt: prompts/grinder.md
|
|
11
|
+
|
|
12
|
+
macro_agent:
|
|
13
|
+
lifecycle:
|
|
14
|
+
type: ephemeral
|
|
15
|
+
task_bound: false
|
|
16
|
+
max_duration_ms: 3600000
|
|
17
|
+
self_cleanup: true
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: judge
|
|
2
|
+
extends: monitor
|
|
3
|
+
display_name: "Judge"
|
|
4
|
+
description: "Periodically evaluates codebase health and creates fixup tasks"
|
|
5
|
+
|
|
6
|
+
capabilities_add:
|
|
7
|
+
- exec.build
|
|
8
|
+
- exec.test
|
|
9
|
+
- exec.lint
|
|
10
|
+
- task.create
|
|
11
|
+
- task.update
|
|
12
|
+
- git.branch.create
|
|
13
|
+
- git.push
|
|
14
|
+
|
|
15
|
+
prompt: prompts/judge.md
|
|
16
|
+
|
|
17
|
+
macro_agent:
|
|
18
|
+
workspace:
|
|
19
|
+
type: own
|
|
20
|
+
branch_pattern: "judge/{agent-id}"
|
|
21
|
+
cleanup_on_terminate: true
|
|
22
|
+
lifecycle:
|
|
23
|
+
type: event-driven
|
|
24
|
+
parent_bound: false
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: planner
|
|
2
|
+
extends: coordinator
|
|
3
|
+
display_name: "Planner"
|
|
4
|
+
description: "Continuously explores the codebase, creates and prioritizes tasks"
|
|
5
|
+
|
|
6
|
+
capabilities_add:
|
|
7
|
+
- task.claim
|
|
8
|
+
|
|
9
|
+
capabilities_remove:
|
|
10
|
+
- agent.spawn.integrator
|
|
11
|
+
- agent.spawn.monitor
|
|
12
|
+
|
|
13
|
+
prompt: prompts/planner.md
|
|
14
|
+
|
|
15
|
+
macro_agent:
|
|
16
|
+
lifecycle:
|
|
17
|
+
type: daemon
|
|
18
|
+
cascade_terminate: true
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
name: self-driving
|
|
2
|
+
description: "Autonomous codebase development with continuous planning"
|
|
3
|
+
version: 1
|
|
4
|
+
|
|
5
|
+
roles:
|
|
6
|
+
- planner
|
|
7
|
+
- grinder
|
|
8
|
+
- judge
|
|
9
|
+
|
|
10
|
+
topology:
|
|
11
|
+
root:
|
|
12
|
+
role: planner
|
|
13
|
+
prompt: prompts/planner.md
|
|
14
|
+
config:
|
|
15
|
+
model: sonnet
|
|
16
|
+
|
|
17
|
+
companions:
|
|
18
|
+
- role: judge
|
|
19
|
+
prompt: prompts/judge.md
|
|
20
|
+
config:
|
|
21
|
+
model: haiku
|
|
22
|
+
|
|
23
|
+
spawn_rules:
|
|
24
|
+
planner: [grinder, planner]
|
|
25
|
+
judge: []
|
|
26
|
+
grinder: []
|
|
27
|
+
|
|
28
|
+
communication:
|
|
29
|
+
channels:
|
|
30
|
+
task_updates:
|
|
31
|
+
description: "Task lifecycle events"
|
|
32
|
+
signals: [TASK_CREATED, TASK_COMPLETED, TASK_FAILED]
|
|
33
|
+
work_coordination:
|
|
34
|
+
description: "Work assignment and completion"
|
|
35
|
+
signals: [WORK_ASSIGNED, WORKER_DONE, MERGE_REQUEST]
|
|
36
|
+
health:
|
|
37
|
+
description: "System health monitoring"
|
|
38
|
+
signals: [HEALTH_CHECK, METRIC_SNAPSHOT, GREEN_SNAPSHOT]
|
|
39
|
+
|
|
40
|
+
subscriptions:
|
|
41
|
+
planner:
|
|
42
|
+
- channel: task_updates
|
|
43
|
+
- channel: work_coordination
|
|
44
|
+
signals: [WORKER_DONE]
|
|
45
|
+
- channel: health
|
|
46
|
+
signals: [METRIC_SNAPSHOT]
|
|
47
|
+
judge:
|
|
48
|
+
- channel: task_updates
|
|
49
|
+
signals: [TASK_FAILED]
|
|
50
|
+
- channel: work_coordination
|
|
51
|
+
signals: [WORKER_DONE]
|
|
52
|
+
- channel: health
|
|
53
|
+
grinder:
|
|
54
|
+
- channel: work_coordination
|
|
55
|
+
signals: [WORK_ASSIGNED]
|
|
56
|
+
|
|
57
|
+
emissions:
|
|
58
|
+
planner: [TASK_CREATED, WORK_ASSIGNED]
|
|
59
|
+
judge: [HEALTH_CHECK, GREEN_SNAPSHOT, FIXUP_CREATED]
|
|
60
|
+
grinder: [WORKER_DONE]
|
|
61
|
+
|
|
62
|
+
routing:
|
|
63
|
+
status: upstream
|
|
64
|
+
peers:
|
|
65
|
+
- from: judge
|
|
66
|
+
to: planner
|
|
67
|
+
via: direct
|
|
68
|
+
signals: [FIXUP_CREATED, GREEN_SNAPSHOT]
|
|
69
|
+
- from: planner
|
|
70
|
+
to: judge
|
|
71
|
+
via: direct
|
|
72
|
+
signals: [CONVERGENCE_CHECK]
|
|
73
|
+
|
|
74
|
+
enforcement: permissive
|
|
75
|
+
|
|
76
|
+
macro_agent:
|
|
77
|
+
task_assignment:
|
|
78
|
+
mode: pull
|
|
79
|
+
pull:
|
|
80
|
+
idle_timeout_s: 300
|
|
81
|
+
claim_retry_delay_ms: 2000
|
|
82
|
+
max_concurrent_per_agent: 1
|
|
83
|
+
|
|
84
|
+
integration:
|
|
85
|
+
strategy: trunk
|
|
86
|
+
config:
|
|
87
|
+
max_retries: 3
|
|
88
|
+
conflict_action: abandon
|
|
89
|
+
|
|
90
|
+
lifecycle:
|
|
91
|
+
continuations:
|
|
92
|
+
enabled: true
|
|
93
|
+
max_history_messages: 50
|
|
94
|
+
checkpoint_interval: round_trip
|
|
95
|
+
scaling:
|
|
96
|
+
min_workers: 3
|
|
97
|
+
max_workers: 20
|
|
98
|
+
scale_on: task_queue_depth
|
|
99
|
+
idle_drain: true
|
|
100
|
+
|
|
101
|
+
observability:
|
|
102
|
+
metrics_window_s: 3600
|
|
103
|
+
snapshot_interval_s: 300
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Developer
|
|
2
|
+
|
|
3
|
+
You are a **Developer** on a structured development team. You execute a single assigned task in your isolated workspace.
|
|
4
|
+
|
|
5
|
+
## Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Implement** - Complete the assigned task according to its description
|
|
8
|
+
2. **Test** - Verify your changes work correctly
|
|
9
|
+
3. **Commit** - Create clean, descriptive commits
|
|
10
|
+
4. **Report** - Call `done()` with status and summary when finished
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
1. Read and understand the task description
|
|
15
|
+
2. Explore the relevant code to plan your changes
|
|
16
|
+
3. Implement the changes
|
|
17
|
+
4. Run tests to verify correctness
|
|
18
|
+
5. Commit your work with a clear message
|
|
19
|
+
6. Call `done()` with status `completed` and a brief summary
|
|
20
|
+
|
|
21
|
+
## Guidelines
|
|
22
|
+
|
|
23
|
+
- Stay focused on your assigned task only
|
|
24
|
+
- Do not modify files outside the scope of your task
|
|
25
|
+
- If you encounter a blocker, call `done()` with status `failed` and describe the issue
|
|
26
|
+
- Make atomic commits that are easy to review
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Lead
|
|
2
|
+
|
|
3
|
+
You are the **Lead** of a structured development team. You coordinate work by decomposing objectives into tasks and assigning them to developers.
|
|
4
|
+
|
|
5
|
+
## Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Task Decomposition** - Break down the user's request into well-scoped, independent tasks
|
|
8
|
+
2. **Assignment** - Spawn developers and assign each a specific task
|
|
9
|
+
3. **Progress Tracking** - Monitor task completion and handle failures
|
|
10
|
+
4. **Sequencing** - Ensure dependent tasks are ordered correctly using blockers
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
1. Analyze the objective and identify the minimal set of changes needed
|
|
15
|
+
2. Create tasks with clear descriptions and acceptance criteria
|
|
16
|
+
3. Spawn developers to handle each task
|
|
17
|
+
4. Monitor TASK_COMPLETED / TASK_FAILED signals
|
|
18
|
+
5. When all tasks complete, call `done()` with a summary
|
|
19
|
+
|
|
20
|
+
## Guidelines
|
|
21
|
+
|
|
22
|
+
- Keep tasks small and focused (one file or one logical change)
|
|
23
|
+
- Set blockers between tasks that have data dependencies
|
|
24
|
+
- Prefer parallel execution where tasks are independent
|
|
25
|
+
- If a task fails, assess whether to retry or adjust the plan
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Reviewer
|
|
2
|
+
|
|
3
|
+
You are a **Reviewer** on a structured development team. You review merge requests to ensure quality before they land on the main branch.
|
|
4
|
+
|
|
5
|
+
## Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Review** - Examine code changes in merge requests for correctness and quality
|
|
8
|
+
2. **Validate** - Run build and test to verify the changes don't break anything
|
|
9
|
+
3. **Decide** - Approve or reject the merge request with clear reasoning
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
1. Wait for MERGE_REQUEST signals
|
|
14
|
+
2. Check out the branch and review the diff
|
|
15
|
+
3. Run `build` and `test` commands
|
|
16
|
+
4. If everything passes, emit REVIEW_APPROVED
|
|
17
|
+
5. If issues found, emit REVIEW_REJECTED with explanation
|
|
18
|
+
|
|
19
|
+
## Guidelines
|
|
20
|
+
|
|
21
|
+
- Focus on correctness, not style preferences
|
|
22
|
+
- Run the test suite before approving
|
|
23
|
+
- Provide specific, actionable feedback on rejections
|
|
24
|
+
- Do not modify code directly; report issues back to the lead
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: reviewer
|
|
2
|
+
extends: monitor
|
|
3
|
+
display_name: "Reviewer"
|
|
4
|
+
description: "Reviews merge requests and approves or rejects changes"
|
|
5
|
+
|
|
6
|
+
capabilities_add:
|
|
7
|
+
- exec.build
|
|
8
|
+
- exec.test
|
|
9
|
+
|
|
10
|
+
prompt: prompts/reviewer.md
|
|
11
|
+
|
|
12
|
+
macro_agent:
|
|
13
|
+
workspace:
|
|
14
|
+
type: own
|
|
15
|
+
branch_pattern: "review/{agent-id}"
|
|
16
|
+
cleanup_on_terminate: true
|
|
17
|
+
lifecycle:
|
|
18
|
+
type: event-driven
|
|
19
|
+
parent_bound: false
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
name: structured
|
|
2
|
+
description: "Hierarchical development with explicit task assignment and merge queue"
|
|
3
|
+
version: 1
|
|
4
|
+
|
|
5
|
+
roles:
|
|
6
|
+
- lead
|
|
7
|
+
- developer
|
|
8
|
+
- reviewer
|
|
9
|
+
|
|
10
|
+
topology:
|
|
11
|
+
root:
|
|
12
|
+
role: lead
|
|
13
|
+
prompt: prompts/lead.md
|
|
14
|
+
config:
|
|
15
|
+
model: sonnet
|
|
16
|
+
|
|
17
|
+
companions:
|
|
18
|
+
- role: reviewer
|
|
19
|
+
prompt: prompts/reviewer.md
|
|
20
|
+
config:
|
|
21
|
+
model: haiku
|
|
22
|
+
|
|
23
|
+
spawn_rules:
|
|
24
|
+
lead: [developer, lead]
|
|
25
|
+
reviewer: []
|
|
26
|
+
developer: []
|
|
27
|
+
|
|
28
|
+
communication:
|
|
29
|
+
channels:
|
|
30
|
+
task_updates:
|
|
31
|
+
description: "Task lifecycle events"
|
|
32
|
+
signals: [TASK_CREATED, TASK_ASSIGNED, TASK_COMPLETED, TASK_FAILED]
|
|
33
|
+
merge_flow:
|
|
34
|
+
description: "Merge queue and integration events"
|
|
35
|
+
signals: [MERGE_REQUEST, MERGE_COMPLETED, MERGE_CONFLICT]
|
|
36
|
+
review_flow:
|
|
37
|
+
description: "Code review signals"
|
|
38
|
+
signals: [REVIEW_REQUESTED, REVIEW_APPROVED, REVIEW_REJECTED]
|
|
39
|
+
|
|
40
|
+
subscriptions:
|
|
41
|
+
lead:
|
|
42
|
+
- channel: task_updates
|
|
43
|
+
- channel: merge_flow
|
|
44
|
+
- channel: review_flow
|
|
45
|
+
signals: [REVIEW_APPROVED, REVIEW_REJECTED]
|
|
46
|
+
reviewer:
|
|
47
|
+
- channel: merge_flow
|
|
48
|
+
signals: [MERGE_REQUEST]
|
|
49
|
+
- channel: review_flow
|
|
50
|
+
developer:
|
|
51
|
+
- channel: task_updates
|
|
52
|
+
signals: [TASK_ASSIGNED]
|
|
53
|
+
|
|
54
|
+
emissions:
|
|
55
|
+
lead: [TASK_CREATED, TASK_ASSIGNED]
|
|
56
|
+
reviewer: [REVIEW_APPROVED, REVIEW_REJECTED]
|
|
57
|
+
developer: [MERGE_REQUEST, TASK_COMPLETED, TASK_FAILED]
|
|
58
|
+
|
|
59
|
+
routing:
|
|
60
|
+
status: upstream
|
|
61
|
+
peers:
|
|
62
|
+
- from: reviewer
|
|
63
|
+
to: lead
|
|
64
|
+
via: direct
|
|
65
|
+
signals: [REVIEW_APPROVED, REVIEW_REJECTED]
|
|
66
|
+
|
|
67
|
+
enforcement: permissive
|
|
68
|
+
|
|
69
|
+
macro_agent:
|
|
70
|
+
task_assignment:
|
|
71
|
+
mode: push
|
|
72
|
+
|
|
73
|
+
integration:
|
|
74
|
+
strategy: queue
|
|
75
|
+
config:
|
|
76
|
+
require_review: true
|
|
77
|
+
|
|
78
|
+
lifecycle:
|
|
79
|
+
continuations:
|
|
80
|
+
enabled: false
|
|
81
|
+
scaling:
|
|
82
|
+
min_workers: 1
|
|
83
|
+
max_workers: 10
|
|
84
|
+
scale_on: manual
|
|
85
|
+
idle_drain: false
|
|
86
|
+
|
|
87
|
+
observability:
|
|
88
|
+
metrics_window_s: 1800
|
|
89
|
+
snapshot_interval_s: 600
|