macro-agent 0.1.1 → 0.1.2
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/.sudocode/issues.jsonl +28 -0
- package/.sudocode/specs.jsonl +4 -0
- package/CLAUDE.md +9 -3
- package/dist/agent/agent-manager.d.ts.map +1 -1
- package/dist/agent/agent-manager.js +111 -48
- package/dist/agent/agent-manager.js.map +1 -1
- package/dist/agent/types.d.ts +7 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/server.d.ts +5 -1
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +100 -3
- package/dist/api/server.js.map +1 -1
- package/dist/api/types.d.ts +1 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/cli/acp.d.ts.map +1 -1
- package/dist/cli/acp.js +71 -1
- package/dist/cli/acp.js.map +1 -1
- package/dist/cli/index.js +5 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp.js +27 -8
- package/dist/cli/mcp.js.map +1 -1
- package/dist/config/project-config.d.ts +13 -2
- package/dist/config/project-config.d.ts.map +1 -1
- package/dist/config/project-config.js +12 -2
- package/dist/config/project-config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/handlers/index.d.ts +7 -3
- package/dist/lifecycle/handlers/index.d.ts.map +1 -1
- package/dist/lifecycle/handlers/index.js +25 -8
- package/dist/lifecycle/handlers/index.js.map +1 -1
- package/dist/lifecycle/types.d.ts +2 -0
- package/dist/lifecycle/types.d.ts.map +1 -1
- package/dist/lifecycle/types.js.map +1 -1
- package/dist/map/adapter/extensions/index.d.ts +4 -1
- package/dist/map/adapter/extensions/index.d.ts.map +1 -1
- package/dist/map/adapter/extensions/index.js +27 -0
- package/dist/map/adapter/extensions/index.js.map +1 -1
- package/dist/map/adapter/extensions/streams.d.ts +95 -0
- package/dist/map/adapter/extensions/streams.d.ts.map +1 -0
- package/dist/map/adapter/extensions/streams.js +515 -0
- package/dist/map/adapter/extensions/streams.js.map +1 -0
- package/dist/map/adapter/index.d.ts +1 -1
- package/dist/map/adapter/index.d.ts.map +1 -1
- package/dist/map/adapter/index.js +3 -1
- package/dist/map/adapter/index.js.map +1 -1
- package/dist/map/adapter/types.d.ts +1 -1
- package/dist/map/adapter/types.d.ts.map +1 -1
- package/dist/mcp/mcp-server.d.ts +2 -0
- package/dist/mcp/mcp-server.d.ts.map +1 -1
- package/dist/mcp/mcp-server.js +12 -3
- package/dist/mcp/mcp-server.js.map +1 -1
- package/dist/mcp/tools/done.d.ts.map +1 -1
- package/dist/mcp/tools/done.js +18 -0
- package/dist/mcp/tools/done.js.map +1 -1
- package/dist/roles/builtin/coordinator.d.ts.map +1 -1
- package/dist/roles/builtin/coordinator.js +2 -1
- package/dist/roles/builtin/coordinator.js.map +1 -1
- package/dist/roles/builtin/integrator.d.ts.map +1 -1
- package/dist/roles/builtin/integrator.js +2 -1
- package/dist/roles/builtin/integrator.js.map +1 -1
- package/dist/roles/builtin/worker.d.ts.map +1 -1
- package/dist/roles/builtin/worker.js +3 -1
- package/dist/roles/builtin/worker.js.map +1 -1
- package/dist/roles/capabilities.d.ts +6 -0
- package/dist/roles/capabilities.d.ts.map +1 -1
- package/dist/roles/capabilities.js +10 -0
- package/dist/roles/capabilities.js.map +1 -1
- package/dist/roles/config-loader.d.ts +1 -1
- package/dist/roles/config-loader.d.ts.map +1 -1
- package/dist/roles/config-loader.js +3 -2
- package/dist/roles/config-loader.js.map +1 -1
- package/dist/roles/types.d.ts +3 -1
- package/dist/roles/types.d.ts.map +1 -1
- package/dist/server/combined-server.d.ts +8 -1
- package/dist/server/combined-server.d.ts.map +1 -1
- package/dist/server/combined-server.js +6 -2
- package/dist/server/combined-server.js.map +1 -1
- package/dist/store/event-store.d.ts.map +1 -1
- package/dist/store/event-store.js +12 -5
- package/dist/store/event-store.js.map +1 -1
- package/dist/store/instance.d.ts +1 -1
- package/dist/store/instance.d.ts.map +1 -1
- package/dist/store/instance.js +2 -2
- package/dist/store/instance.js.map +1 -1
- package/dist/store/types/agents.d.ts +5 -0
- package/dist/store/types/agents.d.ts.map +1 -1
- package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -1
- package/dist/task/backend/opentasks/daemon-manager.js +1 -1
- package/dist/task/backend/opentasks/daemon-manager.js.map +1 -1
- package/dist/teams/index.d.ts +3 -1
- package/dist/teams/index.d.ts.map +1 -1
- package/dist/teams/index.js +2 -0
- package/dist/teams/index.js.map +1 -1
- package/dist/teams/seed-defaults.d.ts +20 -0
- package/dist/teams/seed-defaults.d.ts.map +1 -0
- package/dist/teams/seed-defaults.js +71 -0
- package/dist/teams/seed-defaults.js.map +1 -0
- package/dist/teams/team-loader.d.ts +6 -2
- package/dist/teams/team-loader.d.ts.map +1 -1
- package/dist/teams/team-loader.js +154 -162
- package/dist/teams/team-loader.js.map +1 -1
- package/dist/teams/team-manager.d.ts +112 -0
- package/dist/teams/team-manager.d.ts.map +1 -0
- package/dist/teams/team-manager.js +305 -0
- package/dist/teams/team-manager.js.map +1 -0
- package/dist/teams/team-runtime.d.ts +125 -19
- package/dist/teams/team-runtime.d.ts.map +1 -1
- package/dist/teams/team-runtime.js +527 -119
- package/dist/teams/team-runtime.js.map +1 -1
- package/dist/teams/types.d.ts +41 -151
- package/dist/teams/types.d.ts.map +1 -1
- package/dist/teams/types.js +2 -3
- package/dist/teams/types.js.map +1 -1
- package/docs/teams.md +73 -0
- package/package.json +2 -1
- package/references/minimem/.claude/settings.json +7 -0
- package/references/minimem/.sudocode/issues.jsonl +18 -0
- package/references/minimem/.sudocode/specs.jsonl +1 -0
- package/references/minimem/CLAUDE.md +310 -0
- package/references/minimem/README.md +562 -0
- package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
- package/references/minimem/claude-plugin/.mcp.json +7 -0
- package/references/minimem/claude-plugin/README.md +158 -0
- package/references/minimem/claude-plugin/commands/recall.md +47 -0
- package/references/minimem/claude-plugin/commands/remember.md +41 -0
- package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
- package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
- package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
- package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
- package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
- package/references/minimem/media/banner.png +0 -0
- package/references/minimem/package-lock.json +5373 -0
- package/references/minimem/package.json +72 -0
- package/references/minimem/scripts/postbuild.js +35 -0
- package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
- package/references/minimem/src/__tests__/errors.test.ts +265 -0
- package/references/minimem/src/__tests__/helpers.ts +199 -0
- package/references/minimem/src/__tests__/internal.test.ts +407 -0
- package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
- package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
- package/references/minimem/src/__tests__/session.test.ts +190 -0
- package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
- package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
- package/references/minimem/src/cli/commands/append.ts +76 -0
- package/references/minimem/src/cli/commands/config.ts +262 -0
- package/references/minimem/src/cli/commands/conflicts.ts +413 -0
- package/references/minimem/src/cli/commands/daemon.ts +169 -0
- package/references/minimem/src/cli/commands/index.ts +12 -0
- package/references/minimem/src/cli/commands/init.ts +88 -0
- package/references/minimem/src/cli/commands/mcp.ts +177 -0
- package/references/minimem/src/cli/commands/push-pull.ts +213 -0
- package/references/minimem/src/cli/commands/search.ts +158 -0
- package/references/minimem/src/cli/commands/status.ts +84 -0
- package/references/minimem/src/cli/commands/sync-init.ts +290 -0
- package/references/minimem/src/cli/commands/sync.ts +70 -0
- package/references/minimem/src/cli/commands/upsert.ts +197 -0
- package/references/minimem/src/cli/config.ts +584 -0
- package/references/minimem/src/cli/index.ts +264 -0
- package/references/minimem/src/cli/shared.ts +161 -0
- package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
- package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
- package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
- package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
- package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
- package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
- package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
- package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
- package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
- package/references/minimem/src/cli/sync/central.ts +292 -0
- package/references/minimem/src/cli/sync/conflicts.ts +204 -0
- package/references/minimem/src/cli/sync/daemon.ts +407 -0
- package/references/minimem/src/cli/sync/detection.ts +138 -0
- package/references/minimem/src/cli/sync/index.ts +107 -0
- package/references/minimem/src/cli/sync/operations.ts +373 -0
- package/references/minimem/src/cli/sync/registry.ts +279 -0
- package/references/minimem/src/cli/sync/state.ts +355 -0
- package/references/minimem/src/cli/sync/validation.ts +206 -0
- package/references/minimem/src/cli/sync/watcher.ts +234 -0
- package/references/minimem/src/cli/version.ts +34 -0
- package/references/minimem/src/core/index.ts +9 -0
- package/references/minimem/src/core/indexer.ts +628 -0
- package/references/minimem/src/core/searcher.ts +221 -0
- package/references/minimem/src/db/schema.ts +183 -0
- package/references/minimem/src/db/sqlite-vec.ts +24 -0
- package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
- package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
- package/references/minimem/src/embeddings/batch-openai.ts +409 -0
- package/references/minimem/src/embeddings/embeddings.ts +434 -0
- package/references/minimem/src/index.ts +109 -0
- package/references/minimem/src/internal.ts +299 -0
- package/references/minimem/src/minimem.ts +1276 -0
- package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
- package/references/minimem/src/search/graph.ts +234 -0
- package/references/minimem/src/search/hybrid.ts +151 -0
- package/references/minimem/src/search/search.ts +256 -0
- package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
- package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
- package/references/minimem/src/server/mcp.ts +326 -0
- package/references/minimem/src/server/tools.ts +720 -0
- package/references/minimem/src/session.ts +460 -0
- package/references/minimem/tsconfig.json +19 -0
- package/references/minimem/tsup.config.ts +26 -0
- package/references/minimem/vitest.config.ts +24 -0
- package/references/openteams/.claude/settings.json +6 -0
- package/references/openteams/README.md +1 -0
- package/references/openteams/SKILL.md +341 -0
- package/references/openteams/design.md +411 -0
- package/references/openteams/examples/bmad-method/prompts/analyst/ROLE.md +16 -0
- package/references/openteams/examples/bmad-method/prompts/analyst/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/architect/ROLE.md +24 -0
- package/references/openteams/examples/bmad-method/prompts/architect/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/developer/ROLE.md +25 -0
- package/references/openteams/examples/bmad-method/prompts/developer/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/master/ROLE.md +21 -0
- package/references/openteams/examples/bmad-method/prompts/master/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/pm/ROLE.md +20 -0
- package/references/openteams/examples/bmad-method/prompts/pm/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/qa/ROLE.md +17 -0
- package/references/openteams/examples/bmad-method/prompts/qa/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/ROLE.md +23 -0
- package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/scrum-master/ROLE.md +27 -0
- package/references/openteams/examples/bmad-method/prompts/scrum-master/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/tech-writer/ROLE.md +21 -0
- package/references/openteams/examples/bmad-method/prompts/tech-writer/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/prompts/ux-designer/ROLE.md +16 -0
- package/references/openteams/examples/bmad-method/prompts/ux-designer/SOUL.md +5 -0
- package/references/openteams/examples/bmad-method/roles/analyst.yaml +9 -0
- package/references/openteams/examples/bmad-method/roles/architect.yaml +9 -0
- package/references/openteams/examples/bmad-method/roles/developer.yaml +8 -0
- package/references/openteams/examples/bmad-method/roles/master.yaml +8 -0
- package/references/openteams/examples/bmad-method/roles/pm.yaml +9 -0
- package/references/openteams/examples/bmad-method/roles/qa.yaml +8 -0
- package/references/openteams/examples/bmad-method/roles/quick-flow-dev.yaml +8 -0
- package/references/openteams/examples/bmad-method/roles/scrum-master.yaml +9 -0
- package/references/openteams/examples/bmad-method/roles/tech-writer.yaml +8 -0
- package/references/openteams/examples/bmad-method/roles/ux-designer.yaml +8 -0
- package/references/openteams/examples/bmad-method/team.yaml +161 -0
- package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/ROLE.md +17 -0
- package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/SOUL.md +5 -0
- package/references/openteams/examples/get-shit-done/prompts/debugger/ROLE.md +25 -0
- package/references/openteams/examples/get-shit-done/prompts/debugger/SOUL.md +5 -0
- package/references/openteams/examples/get-shit-done/prompts/executor/ROLE.md +34 -0
- package/references/openteams/examples/get-shit-done/prompts/executor/SOUL.md +5 -0
- package/references/openteams/examples/get-shit-done/prompts/integration-checker/ROLE.md +18 -0
- package/references/openteams/examples/get-shit-done/prompts/integration-checker/SOUL.md +3 -0
- package/references/openteams/examples/get-shit-done/prompts/orchestrator/ROLE.md +42 -0
- package/references/openteams/examples/get-shit-done/prompts/orchestrator/SOUL.md +5 -0
- package/references/openteams/examples/get-shit-done/prompts/phase-researcher/ROLE.md +15 -0
- package/references/openteams/examples/get-shit-done/prompts/phase-researcher/SOUL.md +3 -0
- package/references/openteams/examples/get-shit-done/prompts/plan-checker/ROLE.md +17 -0
- package/references/openteams/examples/get-shit-done/prompts/plan-checker/SOUL.md +3 -0
- package/references/openteams/examples/get-shit-done/prompts/planner/ROLE.md +28 -0
- package/references/openteams/examples/get-shit-done/prompts/planner/SOUL.md +5 -0
- package/references/openteams/examples/get-shit-done/prompts/project-researcher/ROLE.md +16 -0
- package/references/openteams/examples/get-shit-done/prompts/project-researcher/SOUL.md +3 -0
- package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/ROLE.md +13 -0
- package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/SOUL.md +3 -0
- package/references/openteams/examples/get-shit-done/prompts/roadmapper/ROLE.md +14 -0
- package/references/openteams/examples/get-shit-done/prompts/roadmapper/SOUL.md +3 -0
- package/references/openteams/examples/get-shit-done/prompts/verifier/ROLE.md +19 -0
- package/references/openteams/examples/get-shit-done/prompts/verifier/SOUL.md +5 -0
- package/references/openteams/examples/get-shit-done/roles/codebase-mapper.yaml +8 -0
- package/references/openteams/examples/get-shit-done/roles/debugger.yaml +8 -0
- package/references/openteams/examples/get-shit-done/roles/executor.yaml +8 -0
- package/references/openteams/examples/get-shit-done/roles/integration-checker.yaml +8 -0
- package/references/openteams/examples/get-shit-done/roles/orchestrator.yaml +9 -0
- package/references/openteams/examples/get-shit-done/roles/phase-researcher.yaml +7 -0
- package/references/openteams/examples/get-shit-done/roles/plan-checker.yaml +8 -0
- package/references/openteams/examples/get-shit-done/roles/planner.yaml +8 -0
- package/references/openteams/examples/get-shit-done/roles/project-researcher.yaml +8 -0
- package/references/openteams/examples/get-shit-done/roles/research-synthesizer.yaml +7 -0
- package/references/openteams/examples/get-shit-done/roles/roadmapper.yaml +7 -0
- package/references/openteams/examples/get-shit-done/roles/verifier.yaml +8 -0
- package/references/openteams/examples/get-shit-done/team.yaml +154 -0
- package/references/openteams/package-lock.json +2181 -0
- package/references/openteams/package.json +48 -0
- package/references/openteams/schema/role.schema.json +125 -0
- package/references/openteams/schema/team.schema.json +284 -0
- package/references/openteams/src/cli/agent.ts +104 -0
- package/references/openteams/src/cli/cli.test.ts +381 -0
- package/references/openteams/src/cli/generate.ts +220 -0
- package/references/openteams/src/cli/message.ts +241 -0
- package/references/openteams/src/cli/task.ts +154 -0
- package/references/openteams/src/cli/team.ts +104 -0
- package/references/openteams/src/cli/template.ts +207 -0
- package/references/openteams/src/cli.ts +45 -0
- package/references/openteams/src/db/database.test.ts +185 -0
- package/references/openteams/src/db/database.ts +240 -0
- package/references/openteams/src/generators/agent-prompt-generator.test.ts +332 -0
- package/references/openteams/src/generators/agent-prompt-generator.ts +521 -0
- package/references/openteams/src/generators/package-generator.test.ts +129 -0
- package/references/openteams/src/generators/package-generator.ts +102 -0
- package/references/openteams/src/generators/skill-generator.test.ts +246 -0
- package/references/openteams/src/generators/skill-generator.ts +374 -0
- package/references/openteams/src/index.ts +104 -0
- package/references/openteams/src/services/agent-service.test.ts +158 -0
- package/references/openteams/src/services/agent-service.ts +84 -0
- package/references/openteams/src/services/communication-service.test.ts +455 -0
- package/references/openteams/src/services/communication-service.ts +371 -0
- package/references/openteams/src/services/message-service.test.ts +342 -0
- package/references/openteams/src/services/message-service.ts +203 -0
- package/references/openteams/src/services/task-service.test.ts +434 -0
- package/references/openteams/src/services/task-service.ts +239 -0
- package/references/openteams/src/services/team-service.test.ts +181 -0
- package/references/openteams/src/services/team-service.ts +139 -0
- package/references/openteams/src/services/template-service.test.ts +306 -0
- package/references/openteams/src/services/template-service.ts +182 -0
- package/references/openteams/src/spawner/acp-factory.ts +96 -0
- package/references/openteams/src/spawner/interface.ts +31 -0
- package/references/openteams/src/spawner/mock.test.ts +93 -0
- package/references/openteams/src/spawner/mock.ts +59 -0
- package/references/openteams/src/template/loader.test.ts +1319 -0
- package/references/openteams/src/template/loader.ts +698 -0
- package/references/openteams/src/template/types.ts +200 -0
- package/references/openteams/src/types.ts +205 -0
- package/references/openteams/tsconfig.json +18 -0
- package/references/openteams/vitest.config.ts +9 -0
- package/references/skill-tree/.claude/settings.json +6 -0
- package/references/skill-tree/.sudocode/issues.jsonl +11 -0
- package/references/skill-tree/.sudocode/specs.jsonl +1 -0
- package/references/skill-tree/CLAUDE.md +150 -0
- package/references/skill-tree/README.md +324 -0
- package/references/skill-tree/docs/GAPS_v1.md +221 -0
- package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
- package/references/skill-tree/docs/TODOS.md +91 -0
- package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
- package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
- package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
- package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
- package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
- package/references/skill-tree/docs/scraper/README.md +170 -0
- package/references/skill-tree/examples/basic-usage.ts +190 -0
- package/references/skill-tree/package-lock.json +1509 -0
- package/references/skill-tree/package.json +66 -0
- package/references/skill-tree/scraper/README.md +123 -0
- package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
- package/references/skill-tree/scraper/docs/PLAN.md +336 -0
- package/references/skill-tree/scraper/drizzle.config.ts +10 -0
- package/references/skill-tree/scraper/package-lock.json +6329 -0
- package/references/skill-tree/scraper/package.json +68 -0
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
- package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
- package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
- package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
- package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
- package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
- package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
- package/references/skill-tree/scraper/tsup.config.ts +14 -0
- package/references/skill-tree/scraper/vitest.config.ts +17 -0
- package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
- package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
- package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
- package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
- package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
- package/references/skill-tree/test/run-all.ts +106 -0
- package/references/skill-tree/test/utils.ts +128 -0
- package/references/skill-tree/vitest.config.ts +16 -0
- package/src/agent/agent-manager.ts +143 -72
- package/src/agent/types.ts +9 -0
- package/src/api/__tests__/server.test.ts +203 -4
- package/src/api/server.ts +130 -5
- package/src/api/types.ts +3 -1
- package/src/cli/acp.ts +68 -1
- package/src/cli/index.ts +5 -1
- package/src/cli/mcp.ts +27 -13
- package/src/config/project-config.ts +27 -3
- package/src/index.ts +3 -0
- package/src/lifecycle/__tests__/handlers.test.ts +53 -0
- package/src/lifecycle/handlers/index.ts +25 -8
- package/src/lifecycle/types.ts +3 -0
- package/src/map/adapter/__tests__/stream-extensions.test.ts +494 -0
- package/src/map/adapter/extensions/index.ts +36 -0
- package/src/map/adapter/extensions/streams.ts +839 -0
- package/src/map/adapter/index.ts +5 -0
- package/src/map/adapter/types.ts +8 -1
- package/src/mcp/mcp-server.ts +14 -3
- package/src/mcp/tools/done.ts +19 -0
- package/src/roles/builtin/coordinator.ts +2 -0
- package/src/roles/builtin/integrator.ts +2 -0
- package/src/roles/builtin/worker.ts +3 -0
- package/src/roles/capabilities.ts +11 -0
- package/src/roles/config-loader.ts +3 -2
- package/src/roles/types.ts +7 -0
- package/src/server/combined-server.ts +15 -1
- package/src/store/__tests__/event-store-oob.test.ts +109 -0
- package/src/store/event-store.ts +13 -3
- package/src/store/instance.ts +2 -2
- package/src/store/types/agents.ts +5 -0
- package/src/task/backend/__tests__/memory-pull-mode.test.ts +153 -0
- package/src/task/backend/opentasks/daemon-manager.ts +4 -1
- package/src/teams/CLAUDE.md +180 -0
- package/src/teams/__tests__/e2e/workspace-isolation.e2e.test.ts +1263 -0
- package/src/teams/__tests__/team-manager.test.ts +814 -0
- package/src/teams/__tests__/team-system.test.ts +1291 -8
- package/src/teams/index.ts +21 -3
- package/src/teams/seed-defaults.ts +79 -0
- package/src/teams/team-loader.ts +200 -234
- package/src/teams/team-manager.ts +387 -0
- package/src/teams/team-runtime.ts +590 -121
- package/src/teams/types.ts +99 -200
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-loader.js","sourceRoot":"","sources":["../../src/teams/team-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"team-loader.js","sourceRoot":"","sources":["../../src/teams/team-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAM3C,OAAO,EACL,aAAa,GAMd,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAEtC,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,YAA0B,EAC1B,QAAiB;IAEjB,MAAM,IAAI,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAErD,kDAAkD;IAClD,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE;YACjD,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC;YAClE,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAClC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAwB,CAAC;IAC5E,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEnE,sCAAsC;IACtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC1D,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvD,aAAa,CAAC,GAAG,CACf,QAAQ,EACR,qBAAqB,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,gFAAgF;IAChF,qDAAqD;IACrD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC3D,IAAI,CAAC,eAAe,CAAC,OAAO;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE1C,sDAAsD;QACtD,IAAI,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,UAAU,EAAE,CAAC;YACjD,UAAU,IAAI,UAAU,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/D,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAI,EAAE,UAAU,EAAE,CAAC;YACrB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,2EAA2E;QAC3E,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9E,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1C,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;YACtB,aAAa,CAAC,GAAG,CAAC,WAAW,QAAQ,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,qBAAqB,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE/D,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,WAAW,EAAG,QAAQ,CAAC,WAAsB,IAAI,EAAE;QACnD,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC;QAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,aAAa;QACb,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;QAC7B,cAAc,EAAE,aAAa;QAC7B,WAAW,EAAE,QAAQ,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,kDAAkD;AAClD,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,eAAe,CACtB,YAA0B,EAC1B,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI;YACtC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE;YACjD,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;YAClC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE;SAC3D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,mDAAmD;AACnD,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,IAAkB,EAClB,QAA2B;IAE3B,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9D,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,eAAe,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC;AACnC,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;;GAIG;AACH,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,aAA2B,EAC3B,YAA0B;IAE1B,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,IAAI,QAAQ,CAAC;IAEvD,IAAI,UAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;QAC/C,UAAU,GAAG;YACX,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,SAAS,YAAY,EAAE;YACpC,YAAY,EAAE,EAAE;SACC,CAAC;IACtB,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,WAA6C,CAAC;IACnF,IAAI,YAAY,GAAG,aAAa,CAAC,YAA4B,CAAC;IAE9D,qEAAqE;IACrE,2EAA2E;IAC3E,8EAA8E;IAC9E,0DAA0D;IAC1D,MAAM,yBAAyB,GAAG,aAAa,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC;IAC/E,IAAI,CAAC,yBAAyB,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,UAAU,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;QAC9E,YAAY,GAAG,CAAC,GAAG,MAAM,CAAiB,CAAC;IAC7C,CAAC;IAED,MAAM,cAAc,GAAmB;QACrC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,aAAa,CAAC,WAAW;QACtC,WAAW,EAAE,aAAa,CAAC,WAAW;QACtC,YAAY;QACZ,SAAS,EAAE,UAAU,EAAE,SAAS;YAC9B,CAAC,CAAC;gBACE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,CAAwC;gBACjF,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,cAAc;gBAClD,kBAAkB,EAAE,UAAU,CAAC,SAAS,CAAC,oBAAoB;aAC9D;YACH,CAAC,CAAC,UAAU,CAAC,SAAS;QACxB,SAAS,EAAE,UAAU,EAAE,SAAS;YAC9B,CAAC,CAAC;gBACE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,WAAW,CAA2D;gBAC1G,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC,iBAAiB;gBACxD,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY;gBAC9C,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,UAAU;gBAC1C,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY;gBAC9C,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe;aACpD;YACH,CAAC,CAAC,UAAU,CAAC,SAAS;QACxB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,YAAY;QACtB,YAAY;QACZ,MAAM,EAAE,aAAa,CAAC,UAAU;QAChC,cAAc;KACf,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF;;GAEG;AACH,SAAS,yBAAyB,CAChC,GAAwC;IAExC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAA2B,CAAC;AACrC,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;GAEG;AACH,SAAS,kBAAkB,CACzB,GAAY,EACZ,QAAgB,EAChB,OAAe;IAEf,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEjE,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,aAAa,CACtB,yCAAyC,OAAO,EAAE,EAClD,oBAAoB,EACpB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,aAAa,CACtB,kCAAkC,OAAO,EAAE,EAC3C,kBAAkB,EAClB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,aAAa,CACtB,OAAO,EACP,kBAAkB,EAClB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,aAAa,CACtB,OAAO,EACP,cAAc,EACd,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,OAAO,IAAI,aAAa,CACtB,wBAAwB,QAAQ,MAAM,OAAO,EAAE,EAC/C,kBAAkB,EAClB,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF;;GAEG;AACH,SAAS,qBAAqB,CAC5B,aAAkC,EAClC,SAAmB,EACnB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvC,+DAA+D;IAC/D,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,aAAa,CACrB,yCAAyC,QAAQ,GAAG,EACpD,uBAAuB,EACvB,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,aAAa,CACrB,SAAS,QAAQ,oCAAoC,GAAG,CAAC,OAAO,GAAG,EACnE,uBAAuB,EACvB,QAAQ,CACT,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,aAAa,CACrB,sCAAsC,QAAQ,GAAG,EACjD,uBAAuB,EACvB,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CACrB,4CAA4C,IAAI,CAAC,IAAI,GAAG,EACxD,uBAAuB,EACvB,QAAQ,CACT,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,aAAa,CACrB,4CAA4C,IAAI,CAAC,EAAE,GAAG,EACtD,uBAAuB,EACvB,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team Manager
|
|
3
|
+
*
|
|
4
|
+
* Central owner of team instance lifecycle. Holds active team instances,
|
|
5
|
+
* manages composite dispatch of spawn interceptors, signal filters, and
|
|
6
|
+
* emission validators to the correct TeamRuntime.
|
|
7
|
+
*
|
|
8
|
+
* Supports multiple concurrent teams (Option A). Each team instance has
|
|
9
|
+
* its own runtime, agent-to-team mapping, and cached filter/validator.
|
|
10
|
+
*
|
|
11
|
+
* @module teams/team-manager
|
|
12
|
+
*/
|
|
13
|
+
import { TeamRuntime, type TeamServices, type TeamBootstrapResult } from "./team-runtime.js";
|
|
14
|
+
export interface TeamInstance {
|
|
15
|
+
/** Unique instance ID (format: "{templateName}-{counter}") */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Team template name */
|
|
18
|
+
templateName: string;
|
|
19
|
+
/** The running TeamRuntime */
|
|
20
|
+
runtime: TeamRuntime;
|
|
21
|
+
/** Bootstrap result (root + companion agent IDs) */
|
|
22
|
+
result: TeamBootstrapResult;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Optional parameter overrides applied when starting a team.
|
|
26
|
+
* These are merged on top of the template's manifest values.
|
|
27
|
+
*/
|
|
28
|
+
export interface TeamStartOverrides {
|
|
29
|
+
/** Override model for all roles (root + companions) */
|
|
30
|
+
model?: string;
|
|
31
|
+
/** Override max workers scaling limit */
|
|
32
|
+
maxWorkers?: number;
|
|
33
|
+
}
|
|
34
|
+
export declare class TeamManager {
|
|
35
|
+
private readonly services;
|
|
36
|
+
/** Active team instances by instance ID */
|
|
37
|
+
private instances;
|
|
38
|
+
/** Agent ID → instance ID mapping (cache for fast lookup) */
|
|
39
|
+
private agentToTeam;
|
|
40
|
+
/** Monotonic counter for instance ID generation */
|
|
41
|
+
private instanceCounter;
|
|
42
|
+
/** Lifecycle event unsubscribe function */
|
|
43
|
+
private lifecycleUnsubscribe?;
|
|
44
|
+
/** Cached composite interceptor/filter/validator per instance */
|
|
45
|
+
private cachedInterceptors;
|
|
46
|
+
private cachedFilters;
|
|
47
|
+
private cachedValidators;
|
|
48
|
+
constructor(services: TeamServices);
|
|
49
|
+
/**
|
|
50
|
+
* Start a team from a template.
|
|
51
|
+
*
|
|
52
|
+
* Loads the team template, creates a TeamRuntime, initializes and bootstraps.
|
|
53
|
+
* Multiple teams can run concurrently.
|
|
54
|
+
*
|
|
55
|
+
* @param templateName - Team template directory name
|
|
56
|
+
* @param basePath - Project root (default: process.cwd())
|
|
57
|
+
* @param overrides - Optional parameter overrides applied on top of the template
|
|
58
|
+
* @returns The created team instance
|
|
59
|
+
*/
|
|
60
|
+
startTeam(templateName: string, basePath?: string, overrides?: TeamStartOverrides): Promise<TeamInstance>;
|
|
61
|
+
/**
|
|
62
|
+
* Stop a running team instance.
|
|
63
|
+
*
|
|
64
|
+
* Tears down the TeamRuntime, cleans up agent-to-team mapping,
|
|
65
|
+
* and removes cached interceptors/filters.
|
|
66
|
+
*/
|
|
67
|
+
stopTeam(instanceId: string): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Tear down all running team instances and clean up.
|
|
70
|
+
*
|
|
71
|
+
* Also removes the lifecycle listener for spawn tracking.
|
|
72
|
+
*/
|
|
73
|
+
teardownAll(): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Look up which team instance an agent belongs to.
|
|
76
|
+
*/
|
|
77
|
+
getTeamForAgent(agentId: string): TeamInstance | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Get a team instance by ID.
|
|
80
|
+
*/
|
|
81
|
+
getInstance(instanceId: string): TeamInstance | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Get all active team instances.
|
|
84
|
+
*/
|
|
85
|
+
getInstances(): TeamInstance[];
|
|
86
|
+
/**
|
|
87
|
+
* Check if any team is currently running.
|
|
88
|
+
*/
|
|
89
|
+
hasActiveTeam(): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Install composite spawn interceptor, signal filter, and emission
|
|
92
|
+
* validator on the shared services.
|
|
93
|
+
*
|
|
94
|
+
* These composites delegate to the correct TeamRuntime based on
|
|
95
|
+
* agent-to-team mapping. Also sets up a lifecycle listener to
|
|
96
|
+
* auto-register newly spawned agents.
|
|
97
|
+
*/
|
|
98
|
+
install(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Uninstall composite interceptor and filters from shared services.
|
|
101
|
+
*/
|
|
102
|
+
uninstall(): void;
|
|
103
|
+
/**
|
|
104
|
+
* Listen for agent lifecycle events to auto-register newly spawned
|
|
105
|
+
* agents in the agent-to-team mapping.
|
|
106
|
+
*
|
|
107
|
+
* When an agent is spawned, check if its parent belongs to a team.
|
|
108
|
+
* If so, register the new agent in the same team.
|
|
109
|
+
*/
|
|
110
|
+
private setupLifecycleListener;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=team-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-manager.d.ts","sourceRoot":"","sources":["../../src/teams/team-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAO7F,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,oDAAoD;IACpD,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,qBAAa,WAAW;IAkBV,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjBrC,2CAA2C;IAC3C,OAAO,CAAC,SAAS,CAAmC;IAEpD,6DAA6D;IAC7D,OAAO,CAAC,WAAW,CAA6B;IAEhD,mDAAmD;IACnD,OAAO,CAAC,eAAe,CAAK;IAE5B,2CAA2C;IAC3C,OAAO,CAAC,oBAAoB,CAAC,CAAa;IAE1C,iEAAiE;IACjE,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,gBAAgB,CAA+C;gBAE1C,QAAQ,EAAE,YAAY;IAMnD;;;;;;;;;;OAUG;IACG,SAAS,CACb,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,kBAAkB,GAC7B,OAAO,CAAC,YAAY,CAAC;IAiDxB;;;;;OAKG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjD;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBlC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK1D;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzD;;OAEG;IACH,YAAY,IAAI,YAAY,EAAE;IAI9B;;OAEG;IACH,aAAa,IAAI,OAAO;IAQxB;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI;IAkEf;;OAEG;IACH,SAAS,IAAI,IAAI;IAajB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;CAqB/B"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team Manager
|
|
3
|
+
*
|
|
4
|
+
* Central owner of team instance lifecycle. Holds active team instances,
|
|
5
|
+
* manages composite dispatch of spawn interceptors, signal filters, and
|
|
6
|
+
* emission validators to the correct TeamRuntime.
|
|
7
|
+
*
|
|
8
|
+
* Supports multiple concurrent teams (Option A). Each team instance has
|
|
9
|
+
* its own runtime, agent-to-team mapping, and cached filter/validator.
|
|
10
|
+
*
|
|
11
|
+
* @module teams/team-manager
|
|
12
|
+
*/
|
|
13
|
+
import { loadTeam } from "./team-loader.js";
|
|
14
|
+
import { TeamRuntime } from "./team-runtime.js";
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// TeamManager
|
|
17
|
+
// =============================================================================
|
|
18
|
+
export class TeamManager {
|
|
19
|
+
services;
|
|
20
|
+
/** Active team instances by instance ID */
|
|
21
|
+
instances = new Map();
|
|
22
|
+
/** Agent ID → instance ID mapping (cache for fast lookup) */
|
|
23
|
+
agentToTeam = new Map();
|
|
24
|
+
/** Monotonic counter for instance ID generation */
|
|
25
|
+
instanceCounter = 0;
|
|
26
|
+
/** Lifecycle event unsubscribe function */
|
|
27
|
+
lifecycleUnsubscribe;
|
|
28
|
+
/** Cached composite interceptor/filter/validator per instance */
|
|
29
|
+
cachedInterceptors = new Map();
|
|
30
|
+
cachedFilters = new Map();
|
|
31
|
+
cachedValidators = new Map();
|
|
32
|
+
constructor(services) {
|
|
33
|
+
this.services = services;
|
|
34
|
+
}
|
|
35
|
+
// ─────────────────────────────────────────────────────────────
|
|
36
|
+
// Team Lifecycle
|
|
37
|
+
// ─────────────────────────────────────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* Start a team from a template.
|
|
40
|
+
*
|
|
41
|
+
* Loads the team template, creates a TeamRuntime, initializes and bootstraps.
|
|
42
|
+
* Multiple teams can run concurrently.
|
|
43
|
+
*
|
|
44
|
+
* @param templateName - Team template directory name
|
|
45
|
+
* @param basePath - Project root (default: process.cwd())
|
|
46
|
+
* @param overrides - Optional parameter overrides applied on top of the template
|
|
47
|
+
* @returns The created team instance
|
|
48
|
+
*/
|
|
49
|
+
async startTeam(templateName, basePath, overrides) {
|
|
50
|
+
const instanceId = `${templateName}-${++this.instanceCounter}`;
|
|
51
|
+
const roleRegistry = this.services.agentManager.getRoleRegistry();
|
|
52
|
+
const manifest = await loadTeam(templateName, roleRegistry, basePath);
|
|
53
|
+
// Apply runtime overrides on top of the loaded manifest
|
|
54
|
+
if (overrides) {
|
|
55
|
+
applyOverrides(manifest, overrides);
|
|
56
|
+
}
|
|
57
|
+
const runtime = new TeamRuntime(manifest, this.services);
|
|
58
|
+
await runtime.initialize({ teamInstanceId: instanceId });
|
|
59
|
+
let result;
|
|
60
|
+
try {
|
|
61
|
+
result = await runtime.bootstrap();
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
await runtime.teardown();
|
|
65
|
+
throw err;
|
|
66
|
+
}
|
|
67
|
+
const instance = { id: instanceId, templateName, runtime, result };
|
|
68
|
+
this.instances.set(instanceId, instance);
|
|
69
|
+
// Populate agent-to-team mapping for bootstrap agents
|
|
70
|
+
this.agentToTeam.set(result.rootId, instanceId);
|
|
71
|
+
for (const companionId of result.companionIds) {
|
|
72
|
+
this.agentToTeam.set(companionId, instanceId);
|
|
73
|
+
}
|
|
74
|
+
// Tag bootstrap agents with team_instance in EventStore for durability
|
|
75
|
+
const { eventStore } = this.services;
|
|
76
|
+
if (eventStore.updateAgentMetadata) {
|
|
77
|
+
const agentIds = [result.rootId, ...result.companionIds];
|
|
78
|
+
for (const agentId of agentIds) {
|
|
79
|
+
eventStore.updateAgentMetadata(agentId, { team_instance: instanceId });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Cache factory outputs for composite dispatch
|
|
83
|
+
this.cachedInterceptors.set(instanceId, runtime.createSpawnInterceptor());
|
|
84
|
+
this.cachedFilters.set(instanceId, runtime.createSignalFilter());
|
|
85
|
+
this.cachedValidators.set(instanceId, runtime.createEmissionValidator());
|
|
86
|
+
return instance;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Stop a running team instance.
|
|
90
|
+
*
|
|
91
|
+
* Tears down the TeamRuntime, cleans up agent-to-team mapping,
|
|
92
|
+
* and removes cached interceptors/filters.
|
|
93
|
+
*/
|
|
94
|
+
async stopTeam(instanceId) {
|
|
95
|
+
const instance = this.instances.get(instanceId);
|
|
96
|
+
if (!instance) {
|
|
97
|
+
throw new Error(`No team instance '${instanceId}' found`);
|
|
98
|
+
}
|
|
99
|
+
await instance.runtime.teardown();
|
|
100
|
+
// Clean up agent-to-team mapping
|
|
101
|
+
for (const [agentId, team] of this.agentToTeam) {
|
|
102
|
+
if (team === instanceId) {
|
|
103
|
+
this.agentToTeam.delete(agentId);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// Clean up caches
|
|
107
|
+
this.cachedInterceptors.delete(instanceId);
|
|
108
|
+
this.cachedFilters.delete(instanceId);
|
|
109
|
+
this.cachedValidators.delete(instanceId);
|
|
110
|
+
this.instances.delete(instanceId);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Tear down all running team instances and clean up.
|
|
114
|
+
*
|
|
115
|
+
* Also removes the lifecycle listener for spawn tracking.
|
|
116
|
+
*/
|
|
117
|
+
async teardownAll() {
|
|
118
|
+
const ids = [...this.instances.keys()];
|
|
119
|
+
for (const id of ids) {
|
|
120
|
+
await this.stopTeam(id);
|
|
121
|
+
}
|
|
122
|
+
if (this.lifecycleUnsubscribe) {
|
|
123
|
+
this.lifecycleUnsubscribe();
|
|
124
|
+
this.lifecycleUnsubscribe = undefined;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// ─────────────────────────────────────────────────────────────
|
|
128
|
+
// Agent-Team Mapping
|
|
129
|
+
// ─────────────────────────────────────────────────────────────
|
|
130
|
+
/**
|
|
131
|
+
* Look up which team instance an agent belongs to.
|
|
132
|
+
*/
|
|
133
|
+
getTeamForAgent(agentId) {
|
|
134
|
+
const instanceId = this.agentToTeam.get(agentId);
|
|
135
|
+
return instanceId ? this.instances.get(instanceId) : undefined;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get a team instance by ID.
|
|
139
|
+
*/
|
|
140
|
+
getInstance(instanceId) {
|
|
141
|
+
return this.instances.get(instanceId);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get all active team instances.
|
|
145
|
+
*/
|
|
146
|
+
getInstances() {
|
|
147
|
+
return [...this.instances.values()];
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Check if any team is currently running.
|
|
151
|
+
*/
|
|
152
|
+
hasActiveTeam() {
|
|
153
|
+
return this.instances.size > 0;
|
|
154
|
+
}
|
|
155
|
+
// ─────────────────────────────────────────────────────────────
|
|
156
|
+
// Composite Installation
|
|
157
|
+
// ─────────────────────────────────────────────────────────────
|
|
158
|
+
/**
|
|
159
|
+
* Install composite spawn interceptor, signal filter, and emission
|
|
160
|
+
* validator on the shared services.
|
|
161
|
+
*
|
|
162
|
+
* These composites delegate to the correct TeamRuntime based on
|
|
163
|
+
* agent-to-team mapping. Also sets up a lifecycle listener to
|
|
164
|
+
* auto-register newly spawned agents.
|
|
165
|
+
*/
|
|
166
|
+
install() {
|
|
167
|
+
const { agentManager, messageRouter } = this.services;
|
|
168
|
+
// Composite spawn interceptor
|
|
169
|
+
agentManager.setSpawnInterceptor(async (options) => {
|
|
170
|
+
if (!options.parent)
|
|
171
|
+
return options; // No parent — pass through
|
|
172
|
+
const parentTeam = this.getTeamForAgent(options.parent);
|
|
173
|
+
if (!parentTeam)
|
|
174
|
+
return options; // Parent not in any team
|
|
175
|
+
// Defense-in-depth: verify spawn rules allow this child role
|
|
176
|
+
if (options.role) {
|
|
177
|
+
const spawnRules = parentTeam.runtime.getManifest().topology.spawn_rules;
|
|
178
|
+
if (spawnRules) {
|
|
179
|
+
const parentRole = parentTeam.runtime.getAgentRoleMap().get(options.parent);
|
|
180
|
+
if (parentRole && parentRole in spawnRules) {
|
|
181
|
+
const allowed = spawnRules[parentRole];
|
|
182
|
+
if (!allowed.includes(options.role)) {
|
|
183
|
+
throw new Error(`Spawn rules violation: role '${parentRole}' cannot spawn '${options.role}'. ` +
|
|
184
|
+
`Allowed: [${allowed.join(", ")}]`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const interceptor = this.cachedInterceptors.get(parentTeam.id);
|
|
190
|
+
const result = interceptor ? await interceptor(options) : options;
|
|
191
|
+
// Tag spawned agent with team instance for durable tracking
|
|
192
|
+
return { ...result, team_instance: parentTeam.id };
|
|
193
|
+
});
|
|
194
|
+
// Composite signal filter
|
|
195
|
+
if (messageRouter.setSignalFilter) {
|
|
196
|
+
messageRouter.setSignalFilter((from, to, signal) => {
|
|
197
|
+
// Use the recipient's team filter (signals are filtered at delivery point)
|
|
198
|
+
const recipientTeam = this.getTeamForAgent(to);
|
|
199
|
+
const senderTeam = this.getTeamForAgent(from);
|
|
200
|
+
const team = recipientTeam ?? senderTeam;
|
|
201
|
+
if (team) {
|
|
202
|
+
const filter = this.cachedFilters.get(team.id);
|
|
203
|
+
if (filter)
|
|
204
|
+
return filter(from, to, signal);
|
|
205
|
+
}
|
|
206
|
+
return true; // No team context — allow
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
// Composite emission validator
|
|
210
|
+
if (messageRouter.setEmissionValidator) {
|
|
211
|
+
messageRouter.setEmissionValidator((agentId, signal) => {
|
|
212
|
+
const senderTeam = this.getTeamForAgent(agentId);
|
|
213
|
+
if (senderTeam) {
|
|
214
|
+
const validator = this.cachedValidators.get(senderTeam.id);
|
|
215
|
+
if (validator)
|
|
216
|
+
return validator(agentId, signal);
|
|
217
|
+
}
|
|
218
|
+
return { action: "allow" };
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
// Set up lifecycle listener for auto-registering spawned agents
|
|
222
|
+
this.setupLifecycleListener();
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Uninstall composite interceptor and filters from shared services.
|
|
226
|
+
*/
|
|
227
|
+
uninstall() {
|
|
228
|
+
this.services.agentManager.setSpawnInterceptor(null);
|
|
229
|
+
if (this.lifecycleUnsubscribe) {
|
|
230
|
+
this.lifecycleUnsubscribe();
|
|
231
|
+
this.lifecycleUnsubscribe = undefined;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// ─────────────────────────────────────────────────────────────
|
|
235
|
+
// Lifecycle Listener
|
|
236
|
+
// ─────────────────────────────────────────────────────────────
|
|
237
|
+
/**
|
|
238
|
+
* Listen for agent lifecycle events to auto-register newly spawned
|
|
239
|
+
* agents in the agent-to-team mapping.
|
|
240
|
+
*
|
|
241
|
+
* When an agent is spawned, check if its parent belongs to a team.
|
|
242
|
+
* If so, register the new agent in the same team.
|
|
243
|
+
*/
|
|
244
|
+
setupLifecycleListener() {
|
|
245
|
+
if (this.lifecycleUnsubscribe)
|
|
246
|
+
return; // Already listening
|
|
247
|
+
this.lifecycleUnsubscribe = this.services.agentManager.onLifecycleEvent((event) => {
|
|
248
|
+
if (event.type !== "spawned")
|
|
249
|
+
return;
|
|
250
|
+
const agent = event.agent;
|
|
251
|
+
if (!agent.parent)
|
|
252
|
+
return; // No parent — bootstrap agents handled explicitly
|
|
253
|
+
const parentTeam = this.getTeamForAgent(agent.parent);
|
|
254
|
+
if (!parentTeam)
|
|
255
|
+
return; // Parent not in any team
|
|
256
|
+
// Register agent in the same team as its parent
|
|
257
|
+
this.agentToTeam.set(agent.id, parentTeam.id);
|
|
258
|
+
// Also register in the TeamRuntime's internal maps (for filter lookups)
|
|
259
|
+
if (agent.role) {
|
|
260
|
+
parentTeam.runtime.registerAgent(agent.id, agent.role);
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// =============================================================================
|
|
266
|
+
// Helpers
|
|
267
|
+
// =============================================================================
|
|
268
|
+
/**
|
|
269
|
+
* Apply runtime overrides to a loaded team manifest.
|
|
270
|
+
* Mutates the manifest in place.
|
|
271
|
+
*/
|
|
272
|
+
function applyOverrides(manifest, overrides) {
|
|
273
|
+
if (overrides.model) {
|
|
274
|
+
// Override model on root topology node
|
|
275
|
+
if (manifest.topology?.root) {
|
|
276
|
+
manifest.topology.root.config = {
|
|
277
|
+
...(manifest.topology.root.config ?? {}),
|
|
278
|
+
model: overrides.model,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
// Override model on all companion topology nodes
|
|
282
|
+
if (manifest.topology?.companions) {
|
|
283
|
+
for (const companion of manifest.topology.companions) {
|
|
284
|
+
companion.config = {
|
|
285
|
+
...(companion.config ?? {}),
|
|
286
|
+
model: overrides.model,
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (overrides.maxWorkers != null) {
|
|
292
|
+
// Ensure nested structure exists
|
|
293
|
+
if (!manifest.macro_agent) {
|
|
294
|
+
manifest.macro_agent = {};
|
|
295
|
+
}
|
|
296
|
+
if (!manifest.macro_agent.lifecycle) {
|
|
297
|
+
manifest.macro_agent.lifecycle = {};
|
|
298
|
+
}
|
|
299
|
+
if (!manifest.macro_agent.lifecycle.scaling) {
|
|
300
|
+
manifest.macro_agent.lifecycle.scaling = {};
|
|
301
|
+
}
|
|
302
|
+
manifest.macro_agent.lifecycle.scaling.max_workers = overrides.maxWorkers;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=team-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-manager.js","sourceRoot":"","sources":["../../src/teams/team-manager.ts"],"names":[],"mappings":"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"}
|