macro-agent 0.0.11 → 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 +6 -0
- package/.sudocode/specs.jsonl +7 -0
- package/CLAUDE.md +110 -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 +25 -1
- package/dist/agent/agent-manager.d.ts.map +1 -1
- package/dist/agent/agent-manager.js +93 -7
- 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-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.map +1 -1
- package/dist/api/server.js +95 -0
- package/dist/api/server.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/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 +1 -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/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 +11 -2
- package/dist/mcp/tools/done.d.ts.map +1 -1
- package/dist/mcp/tools/done.js +15 -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/message-router.d.ts +41 -0
- package/dist/router/message-router.d.ts.map +1 -1
- package/dist/router/message-router.js +136 -5
- package/dist/router/message-router.js.map +1 -1
- package/dist/store/event-store.d.ts +8 -1
- package/dist/store/event-store.d.ts.map +1 -1
- package/dist/store/event-store.js +120 -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/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 +1 -0
- package/dist/store/types/index.d.ts.map +1 -1
- package/dist/store/types/index.js +1 -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/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/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 +4 -2
- 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 +158 -6
- package/src/agent/types.ts +27 -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/server.ts +110 -0
- 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/map/adapter/__tests__/extensions.test.ts +359 -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 +1 -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/mcp/mcp-server.ts +67 -0
- package/src/mcp/tools/claim_task.ts +86 -0
- package/src/mcp/tools/done.ts +24 -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/__tests__/message-router.test.ts +561 -0
- package/src/router/message-router.ts +223 -6
- package/src/store/event-store.ts +151 -3
- package/src/store/types/agents.ts +1 -1
- package/src/store/types/events.ts +2 -1
- package/src/store/types/index.ts +1 -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/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/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 -111
- package/references/multi-agent-protocol/.sudocode/specs.jsonl +0 -13
- package/references/multi-agent-protocol/LICENSE +0 -21
- package/references/multi-agent-protocol/README.md +0 -113
- package/references/multi-agent-protocol/docs/00-design-specification.md +0 -496
- package/references/multi-agent-protocol/docs/01-open-questions.md +0 -1050
- package/references/multi-agent-protocol/docs/02-wire-protocol.md +0 -296
- package/references/multi-agent-protocol/docs/03-streaming-semantics.md +0 -252
- package/references/multi-agent-protocol/docs/04-error-handling.md +0 -231
- package/references/multi-agent-protocol/docs/05-connection-model.md +0 -244
- package/references/multi-agent-protocol/docs/06-visibility-permissions.md +0 -243
- package/references/multi-agent-protocol/docs/07-federation.md +0 -259
- package/references/multi-agent-protocol/docs/08-macro-agent-migration.md +0 -253
- package/references/multi-agent-protocol/docs/09-authentication.md +0 -680
- package/references/multi-agent-protocol/docs/10-mail-protocol.md +0 -553
- package/references/multi-agent-protocol/docs/agent-iam-integration.md +0 -877
- package/references/multi-agent-protocol/docs/agentic-mesh-integration-draft.md +0 -459
- package/references/multi-agent-protocol/docs/git-transport-draft.md +0 -251
- package/references/multi-agent-protocol/docs-site/Gemfile +0 -22
- package/references/multi-agent-protocol/docs-site/README.md +0 -82
- package/references/multi-agent-protocol/docs-site/_config.yml +0 -91
- package/references/multi-agent-protocol/docs-site/_includes/head_custom.html +0 -20
- package/references/multi-agent-protocol/docs-site/_sass/color_schemes/map.scss +0 -42
- package/references/multi-agent-protocol/docs-site/_sass/custom/custom.scss +0 -34
- package/references/multi-agent-protocol/docs-site/examples/full-integration.md +0 -510
- package/references/multi-agent-protocol/docs-site/examples/index.md +0 -138
- package/references/multi-agent-protocol/docs-site/examples/simple-chat.md +0 -282
- package/references/multi-agent-protocol/docs-site/examples/task-queue.md +0 -399
- package/references/multi-agent-protocol/docs-site/getting-started/index.md +0 -98
- package/references/multi-agent-protocol/docs-site/getting-started/installation.md +0 -219
- package/references/multi-agent-protocol/docs-site/getting-started/overview.md +0 -172
- package/references/multi-agent-protocol/docs-site/getting-started/quickstart.md +0 -237
- package/references/multi-agent-protocol/docs-site/index.md +0 -136
- package/references/multi-agent-protocol/docs-site/protocol/authentication.md +0 -391
- package/references/multi-agent-protocol/docs-site/protocol/connection-model.md +0 -376
- package/references/multi-agent-protocol/docs-site/protocol/design.md +0 -284
- package/references/multi-agent-protocol/docs-site/protocol/error-handling.md +0 -312
- package/references/multi-agent-protocol/docs-site/protocol/federation.md +0 -449
- package/references/multi-agent-protocol/docs-site/protocol/index.md +0 -129
- package/references/multi-agent-protocol/docs-site/protocol/permissions.md +0 -398
- package/references/multi-agent-protocol/docs-site/protocol/streaming.md +0 -353
- package/references/multi-agent-protocol/docs-site/protocol/wire-protocol.md +0 -369
- package/references/multi-agent-protocol/docs-site/sdk/api/agent.md +0 -357
- package/references/multi-agent-protocol/docs-site/sdk/api/client.md +0 -380
- package/references/multi-agent-protocol/docs-site/sdk/api/index.md +0 -62
- package/references/multi-agent-protocol/docs-site/sdk/api/server.md +0 -453
- package/references/multi-agent-protocol/docs-site/sdk/api/types.md +0 -468
- package/references/multi-agent-protocol/docs-site/sdk/guides/agent.md +0 -375
- package/references/multi-agent-protocol/docs-site/sdk/guides/authentication.md +0 -405
- package/references/multi-agent-protocol/docs-site/sdk/guides/client.md +0 -352
- package/references/multi-agent-protocol/docs-site/sdk/guides/index.md +0 -89
- package/references/multi-agent-protocol/docs-site/sdk/guides/server.md +0 -360
- package/references/multi-agent-protocol/docs-site/sdk/guides/testing.md +0 -446
- package/references/multi-agent-protocol/docs-site/sdk/guides/transports.md +0 -363
- package/references/multi-agent-protocol/docs-site/sdk/index.md +0 -206
- package/references/multi-agent-protocol/package-lock.json +0 -3886
- package/references/multi-agent-protocol/package.json +0 -56
- package/references/multi-agent-protocol/schema/meta.json +0 -467
- package/references/multi-agent-protocol/schema/schema.json +0 -2558
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Agent Detector
|
|
3
|
+
*
|
|
4
|
+
* Detects installed CLI coding agents by checking PATH availability
|
|
5
|
+
* and querying version information. Results are cached with configurable TTL.
|
|
6
|
+
*/
|
|
7
|
+
import type { CLIAgentDefinition, DetectedAgent, DetectionResult, AgentDetectionConfig } from "./types.js";
|
|
8
|
+
import { AgentRegistry } from "./registry.js";
|
|
9
|
+
/**
|
|
10
|
+
* Detects installed CLI coding agents on the system.
|
|
11
|
+
*
|
|
12
|
+
* Runs binary lookups and version checks in parallel, caches results,
|
|
13
|
+
* and provides query methods for available agents.
|
|
14
|
+
*/
|
|
15
|
+
export declare class AgentDetector {
|
|
16
|
+
private readonly registry;
|
|
17
|
+
private readonly cacheTtlMs;
|
|
18
|
+
private readonly whichTimeoutMs;
|
|
19
|
+
private readonly versionTimeoutMs;
|
|
20
|
+
private readonly disabledAgents;
|
|
21
|
+
private cachedResult;
|
|
22
|
+
private detectionInProgress;
|
|
23
|
+
constructor(config?: AgentDetectionConfig);
|
|
24
|
+
/**
|
|
25
|
+
* Get the underlying agent registry.
|
|
26
|
+
*/
|
|
27
|
+
getRegistry(): AgentRegistry;
|
|
28
|
+
/**
|
|
29
|
+
* Detect all installed agents.
|
|
30
|
+
*
|
|
31
|
+
* Returns cached results if available and not expired.
|
|
32
|
+
* If a detection is already in progress, returns its promise.
|
|
33
|
+
*/
|
|
34
|
+
detect(options?: {
|
|
35
|
+
refresh?: boolean;
|
|
36
|
+
}): Promise<DetectionResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Get available agents (installed only by default).
|
|
39
|
+
*/
|
|
40
|
+
getAvailableAgents(options?: {
|
|
41
|
+
refresh?: boolean;
|
|
42
|
+
includeNotInstalled?: boolean;
|
|
43
|
+
}): Promise<DetectionResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Get a specific detected agent by ID.
|
|
46
|
+
*/
|
|
47
|
+
getAgent(id: string): Promise<DetectedAgent | undefined>;
|
|
48
|
+
/**
|
|
49
|
+
* Check if a specific agent is installed.
|
|
50
|
+
*/
|
|
51
|
+
isInstalled(id: string): Promise<boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* Get the definition for an agent, throwing if not found.
|
|
54
|
+
*/
|
|
55
|
+
getDefinition(id: string): CLIAgentDefinition;
|
|
56
|
+
/**
|
|
57
|
+
* Invalidate the detection cache.
|
|
58
|
+
*/
|
|
59
|
+
invalidateCache(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Get partial results if detection is in progress, or cached results.
|
|
62
|
+
* Returns null if no results are available yet.
|
|
63
|
+
*/
|
|
64
|
+
getCachedResult(): DetectionResult | null;
|
|
65
|
+
/**
|
|
66
|
+
* Whether a detection scan is currently running.
|
|
67
|
+
*/
|
|
68
|
+
isDetecting(): boolean;
|
|
69
|
+
private isCacheExpired;
|
|
70
|
+
private runDetection;
|
|
71
|
+
private detectAgent;
|
|
72
|
+
private findBinary;
|
|
73
|
+
private getVersion;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Parse a version string from command output.
|
|
77
|
+
* Extracts the first semver-like pattern (e.g., "1.2.3").
|
|
78
|
+
*/
|
|
79
|
+
export declare function parseVersion(output: string): string | null;
|
|
80
|
+
/**
|
|
81
|
+
* Create a new AgentDetector with the given configuration.
|
|
82
|
+
*/
|
|
83
|
+
export declare function createAgentDetector(config?: AgentDetectionConfig): AgentDetector;
|
|
84
|
+
//# sourceMappingURL=detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/agent-detection/detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAuB,MAAM,eAAe,CAAC;AAmBnE;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAE7C,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,mBAAmB,CAAyC;gBAExD,MAAM,CAAC,EAAE,oBAAoB;IAUzC;;OAEG;IACH,WAAW,IAAI,aAAa;IAI5B;;;;;OAKG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAuBvE;;OAEG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,GAAG,OAAO,CAAC,eAAe,CAAC;IAa5B;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAK9D;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB;IAY7C;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;;OAGG;IACH,eAAe,IAAI,eAAe,GAAG,IAAI;IAIzC;;OAEG;IACH,WAAW,IAAI,OAAO;IAQtB,OAAO,CAAC,cAAc;YAMR,YAAY;YA+BZ,WAAW;YAgCX,UAAU;YAwBV,UAAU;CAiBzB;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,CAAC,EAAE,oBAAoB,GAC5B,aAAa,CAEf"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Agent Detector
|
|
3
|
+
*
|
|
4
|
+
* Detects installed CLI coding agents by checking PATH availability
|
|
5
|
+
* and querying version information. Results are cached with configurable TTL.
|
|
6
|
+
*/
|
|
7
|
+
import { execFile } from "node:child_process";
|
|
8
|
+
import { promisify } from "node:util";
|
|
9
|
+
import { AgentDetectionError } from "./types.js";
|
|
10
|
+
import { createAgentRegistry } from "./registry.js";
|
|
11
|
+
const execFileAsync = promisify(execFile);
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Constants
|
|
14
|
+
// =============================================================================
|
|
15
|
+
const DEFAULT_CACHE_TTL_MS = 60_000;
|
|
16
|
+
const DEFAULT_WHICH_TIMEOUT_MS = 5_000;
|
|
17
|
+
const DEFAULT_VERSION_TIMEOUT_MS = 10_000;
|
|
18
|
+
/** Regex to parse version strings like "1.2.3", "0.82.1-beta", etc. */
|
|
19
|
+
const VERSION_REGEX = /\d+\.\d+[\.\d]*/;
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// Agent Detector
|
|
22
|
+
// =============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Detects installed CLI coding agents on the system.
|
|
25
|
+
*
|
|
26
|
+
* Runs binary lookups and version checks in parallel, caches results,
|
|
27
|
+
* and provides query methods for available agents.
|
|
28
|
+
*/
|
|
29
|
+
export class AgentDetector {
|
|
30
|
+
registry;
|
|
31
|
+
cacheTtlMs;
|
|
32
|
+
whichTimeoutMs;
|
|
33
|
+
versionTimeoutMs;
|
|
34
|
+
disabledAgents;
|
|
35
|
+
cachedResult = null;
|
|
36
|
+
detectionInProgress = null;
|
|
37
|
+
constructor(config) {
|
|
38
|
+
this.cacheTtlMs = config?.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;
|
|
39
|
+
this.whichTimeoutMs = config?.whichTimeoutMs ?? DEFAULT_WHICH_TIMEOUT_MS;
|
|
40
|
+
this.versionTimeoutMs =
|
|
41
|
+
config?.versionTimeoutMs ?? DEFAULT_VERSION_TIMEOUT_MS;
|
|
42
|
+
this.disabledAgents = new Set(config?.disabledAgents ?? []);
|
|
43
|
+
this.registry = createAgentRegistry(config?.additionalAgents);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the underlying agent registry.
|
|
47
|
+
*/
|
|
48
|
+
getRegistry() {
|
|
49
|
+
return this.registry;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Detect all installed agents.
|
|
53
|
+
*
|
|
54
|
+
* Returns cached results if available and not expired.
|
|
55
|
+
* If a detection is already in progress, returns its promise.
|
|
56
|
+
*/
|
|
57
|
+
async detect(options) {
|
|
58
|
+
// Return cached result if valid
|
|
59
|
+
if (!options?.refresh && this.cachedResult && !this.isCacheExpired()) {
|
|
60
|
+
return this.cachedResult;
|
|
61
|
+
}
|
|
62
|
+
// If detection is already running, return the in-progress promise
|
|
63
|
+
if (this.detectionInProgress) {
|
|
64
|
+
return this.detectionInProgress;
|
|
65
|
+
}
|
|
66
|
+
// Start a new detection scan
|
|
67
|
+
this.detectionInProgress = this.runDetection();
|
|
68
|
+
try {
|
|
69
|
+
const result = await this.detectionInProgress;
|
|
70
|
+
this.cachedResult = result;
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
this.detectionInProgress = null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get available agents (installed only by default).
|
|
79
|
+
*/
|
|
80
|
+
async getAvailableAgents(options) {
|
|
81
|
+
const result = await this.detect({ refresh: options?.refresh });
|
|
82
|
+
if (options?.includeNotInstalled) {
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
...result,
|
|
87
|
+
agents: result.agents.filter((a) => a.installed),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get a specific detected agent by ID.
|
|
92
|
+
*/
|
|
93
|
+
async getAgent(id) {
|
|
94
|
+
const result = await this.detect();
|
|
95
|
+
return result.agents.find((a) => a.id === id);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if a specific agent is installed.
|
|
99
|
+
*/
|
|
100
|
+
async isInstalled(id) {
|
|
101
|
+
const agent = await this.getAgent(id);
|
|
102
|
+
return agent?.installed ?? false;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get the definition for an agent, throwing if not found.
|
|
106
|
+
*/
|
|
107
|
+
getDefinition(id) {
|
|
108
|
+
const def = this.registry.get(id);
|
|
109
|
+
if (!def) {
|
|
110
|
+
throw new AgentDetectionError(`Unknown agent backend: ${id}`, "UNKNOWN_AGENT", id);
|
|
111
|
+
}
|
|
112
|
+
return def;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Invalidate the detection cache.
|
|
116
|
+
*/
|
|
117
|
+
invalidateCache() {
|
|
118
|
+
this.cachedResult = null;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get partial results if detection is in progress, or cached results.
|
|
122
|
+
* Returns null if no results are available yet.
|
|
123
|
+
*/
|
|
124
|
+
getCachedResult() {
|
|
125
|
+
return this.cachedResult;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Whether a detection scan is currently running.
|
|
129
|
+
*/
|
|
130
|
+
isDetecting() {
|
|
131
|
+
return this.detectionInProgress !== null;
|
|
132
|
+
}
|
|
133
|
+
// ===========================================================================
|
|
134
|
+
// Private
|
|
135
|
+
// ===========================================================================
|
|
136
|
+
isCacheExpired() {
|
|
137
|
+
if (!this.cachedResult)
|
|
138
|
+
return true;
|
|
139
|
+
const maxAge = Math.max(...this.cachedResult.agents.map((a) => a.detectedAt));
|
|
140
|
+
return Date.now() - maxAge > this.cacheTtlMs;
|
|
141
|
+
}
|
|
142
|
+
async runDetection() {
|
|
143
|
+
const definitions = this.registry.listEnabled(Array.from(this.disabledAgents));
|
|
144
|
+
const startTime = Date.now();
|
|
145
|
+
const results = await Promise.allSettled(definitions.map((def) => this.detectAgent(def)));
|
|
146
|
+
const agents = results.map((result, i) => {
|
|
147
|
+
if (result.status === "fulfilled") {
|
|
148
|
+
return result.value;
|
|
149
|
+
}
|
|
150
|
+
// On failure, return a not-installed entry
|
|
151
|
+
return {
|
|
152
|
+
id: definitions[i].id,
|
|
153
|
+
name: definitions[i].name,
|
|
154
|
+
installed: false,
|
|
155
|
+
definition: definitions[i],
|
|
156
|
+
detectedAt: Date.now(),
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
agents,
|
|
161
|
+
scanned: definitions.length,
|
|
162
|
+
durationMs: Date.now() - startTime,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
async detectAgent(definition) {
|
|
166
|
+
const detectedAt = Date.now();
|
|
167
|
+
// Step 1: Check if binary exists on PATH
|
|
168
|
+
const binaryPath = await this.findBinary(definition.binary);
|
|
169
|
+
if (!binaryPath) {
|
|
170
|
+
return {
|
|
171
|
+
id: definition.id,
|
|
172
|
+
name: definition.name,
|
|
173
|
+
installed: false,
|
|
174
|
+
definition,
|
|
175
|
+
detectedAt,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
// Step 2: Get version string
|
|
179
|
+
const version = await this.getVersion(definition);
|
|
180
|
+
return {
|
|
181
|
+
id: definition.id,
|
|
182
|
+
name: definition.name,
|
|
183
|
+
installed: true,
|
|
184
|
+
version: version ?? undefined,
|
|
185
|
+
path: binaryPath,
|
|
186
|
+
definition,
|
|
187
|
+
detectedAt,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
async findBinary(binary) {
|
|
191
|
+
try {
|
|
192
|
+
const { stdout } = await execFileAsync("which", [binary], {
|
|
193
|
+
timeout: this.whichTimeoutMs,
|
|
194
|
+
});
|
|
195
|
+
const path = stdout.trim();
|
|
196
|
+
return path || null;
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Binary not found or which failed
|
|
200
|
+
try {
|
|
201
|
+
// Fallback to command -v
|
|
202
|
+
const { stdout } = await execFileAsync("/bin/sh", ["-c", `command -v ${binary}`], { timeout: this.whichTimeoutMs });
|
|
203
|
+
const path = stdout.trim();
|
|
204
|
+
return path || null;
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
async getVersion(definition) {
|
|
212
|
+
try {
|
|
213
|
+
const { stdout, stderr } = await execFileAsync(definition.binary, definition.versionArgs, { timeout: this.versionTimeoutMs });
|
|
214
|
+
// Some tools output version to stderr
|
|
215
|
+
const output = stdout || stderr;
|
|
216
|
+
return parseVersion(output);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// =============================================================================
|
|
224
|
+
// Helpers
|
|
225
|
+
// =============================================================================
|
|
226
|
+
/**
|
|
227
|
+
* Parse a version string from command output.
|
|
228
|
+
* Extracts the first semver-like pattern (e.g., "1.2.3").
|
|
229
|
+
*/
|
|
230
|
+
export function parseVersion(output) {
|
|
231
|
+
const match = output.match(VERSION_REGEX);
|
|
232
|
+
return match ? match[0] : null;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Create a new AgentDetector with the given configuration.
|
|
236
|
+
*/
|
|
237
|
+
export function createAgentDetector(config) {
|
|
238
|
+
return new AgentDetector(config);
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/agent-detection/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Agent Auto-Detection Module
|
|
3
|
+
*
|
|
4
|
+
* Detects installed CLI coding agents, exposes them via a registry,
|
|
5
|
+
* and provides command construction for headless invocation.
|
|
6
|
+
*/
|
|
7
|
+
export type { CLIAgentDefinition, HeadlessConfig, DetectedAgent, DetectionResult, SpawnCommand, SpawnCommandOptions, AgentDetectionConfig, AgentDetectionErrorCode, } from "./types.js";
|
|
8
|
+
export { AgentDetectionError } from "./types.js";
|
|
9
|
+
export { AgentRegistry, createAgentRegistry, BUILTIN_AGENTS, } from "./registry.js";
|
|
10
|
+
export { AgentDetector, createAgentDetector, parseVersion, } from "./detector.js";
|
|
11
|
+
export { buildSpawnCommand, formatSpawnCommand } from "./command-builder.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-detection/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Agent Auto-Detection Module
|
|
3
|
+
*
|
|
4
|
+
* Detects installed CLI coding agents, exposes them via a registry,
|
|
5
|
+
* and provides command construction for headless invocation.
|
|
6
|
+
*/
|
|
7
|
+
export { AgentDetectionError } from "./types.js";
|
|
8
|
+
// Registry
|
|
9
|
+
export { AgentRegistry, createAgentRegistry, BUILTIN_AGENTS, } from "./registry.js";
|
|
10
|
+
// Detector
|
|
11
|
+
export { AgentDetector, createAgentDetector, parseVersion, } from "./detector.js";
|
|
12
|
+
// Command builder
|
|
13
|
+
export { buildSpawnCommand, formatSpawnCommand } from "./command-builder.js";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-detection/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,WAAW;AACX,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,WAAW;AACX,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,kBAAkB;AAClB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Agent Definitions Registry
|
|
3
|
+
*
|
|
4
|
+
* Maintains a registry of known CLI coding agents with their
|
|
5
|
+
* detection and headless invocation configurations.
|
|
6
|
+
*/
|
|
7
|
+
import type { CLIAgentDefinition } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* All built-in agent definitions.
|
|
10
|
+
*/
|
|
11
|
+
export declare const BUILTIN_AGENTS: readonly CLIAgentDefinition[];
|
|
12
|
+
/**
|
|
13
|
+
* Registry of known CLI coding agent definitions.
|
|
14
|
+
*
|
|
15
|
+
* Provides lookup by ID and supports adding custom agent definitions.
|
|
16
|
+
*/
|
|
17
|
+
export declare class AgentRegistry {
|
|
18
|
+
private readonly agents;
|
|
19
|
+
constructor(definitions?: CLIAgentDefinition[]);
|
|
20
|
+
/**
|
|
21
|
+
* Get an agent definition by ID.
|
|
22
|
+
*/
|
|
23
|
+
get(id: string): CLIAgentDefinition | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Check if an agent definition exists.
|
|
26
|
+
*/
|
|
27
|
+
has(id: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Register a new agent definition (or override an existing one).
|
|
30
|
+
*/
|
|
31
|
+
register(definition: CLIAgentDefinition): void;
|
|
32
|
+
/**
|
|
33
|
+
* Remove an agent definition by ID.
|
|
34
|
+
*/
|
|
35
|
+
remove(id: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* List all registered agent definitions.
|
|
38
|
+
*/
|
|
39
|
+
list(): CLIAgentDefinition[];
|
|
40
|
+
/**
|
|
41
|
+
* List agent definitions, optionally excluding disabled agents.
|
|
42
|
+
*/
|
|
43
|
+
listEnabled(disabledIds?: string[]): CLIAgentDefinition[];
|
|
44
|
+
/**
|
|
45
|
+
* Get the number of registered agent definitions.
|
|
46
|
+
*/
|
|
47
|
+
get size(): number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a new AgentRegistry with built-in agents and optional custom definitions.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createAgentRegistry(additionalAgents?: CLIAgentDefinition[]): AgentRegistry;
|
|
53
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agent-detection/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA6FrD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,kBAAkB,EAOvD,CAAC;AAMF;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;gBAEzD,WAAW,CAAC,EAAE,kBAAkB,EAAE;IAc9C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI/C;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI;IAI9C;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B;;OAEG;IACH,IAAI,IAAI,kBAAkB,EAAE;IAI5B;;OAEG;IACH,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE;IAQzD;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,GACtC,aAAa,CAEf"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Agent Definitions Registry
|
|
3
|
+
*
|
|
4
|
+
* Maintains a registry of known CLI coding agents with their
|
|
5
|
+
* detection and headless invocation configurations.
|
|
6
|
+
*/
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Built-in Agent Definitions
|
|
9
|
+
// =============================================================================
|
|
10
|
+
const CLAUDE_CODE = {
|
|
11
|
+
id: "claude-code",
|
|
12
|
+
name: "Claude Code",
|
|
13
|
+
description: "Anthropic's CLI coding agent",
|
|
14
|
+
binary: "claude",
|
|
15
|
+
versionArgs: ["--version"],
|
|
16
|
+
headless: {
|
|
17
|
+
promptFlag: "-p",
|
|
18
|
+
defaultFlags: ["--output-format", "stream-json"],
|
|
19
|
+
},
|
|
20
|
+
modelFlag: "--model",
|
|
21
|
+
cwdFlag: "--cwd",
|
|
22
|
+
vendor: "Anthropic",
|
|
23
|
+
};
|
|
24
|
+
const CODEX = {
|
|
25
|
+
id: "codex",
|
|
26
|
+
name: "Codex",
|
|
27
|
+
description: "OpenAI's CLI coding agent",
|
|
28
|
+
binary: "codex",
|
|
29
|
+
versionArgs: ["--version"],
|
|
30
|
+
headless: {
|
|
31
|
+
subcommand: "exec",
|
|
32
|
+
promptFlag: "",
|
|
33
|
+
defaultFlags: ["--full-auto"],
|
|
34
|
+
},
|
|
35
|
+
modelFlag: "--model",
|
|
36
|
+
cwdFlag: "--path",
|
|
37
|
+
vendor: "OpenAI",
|
|
38
|
+
};
|
|
39
|
+
const GEMINI_CLI = {
|
|
40
|
+
id: "gemini-cli",
|
|
41
|
+
name: "Gemini CLI",
|
|
42
|
+
description: "Google's CLI coding agent",
|
|
43
|
+
binary: "gemini",
|
|
44
|
+
versionArgs: ["--version"],
|
|
45
|
+
headless: {
|
|
46
|
+
promptFlag: "-p",
|
|
47
|
+
},
|
|
48
|
+
modelFlag: "--model",
|
|
49
|
+
vendor: "Google",
|
|
50
|
+
};
|
|
51
|
+
const OPENCODE = {
|
|
52
|
+
id: "opencode",
|
|
53
|
+
name: "OpenCode",
|
|
54
|
+
description: "Anomaly's CLI coding agent",
|
|
55
|
+
binary: "opencode",
|
|
56
|
+
versionArgs: ["--version"],
|
|
57
|
+
headless: {
|
|
58
|
+
subcommand: "run",
|
|
59
|
+
promptFlag: "",
|
|
60
|
+
},
|
|
61
|
+
modelFlag: "--model",
|
|
62
|
+
vendor: "Anomaly",
|
|
63
|
+
};
|
|
64
|
+
const AIDER = {
|
|
65
|
+
id: "aider",
|
|
66
|
+
name: "Aider",
|
|
67
|
+
description: "AI pair programming in your terminal",
|
|
68
|
+
binary: "aider",
|
|
69
|
+
versionArgs: ["--version"],
|
|
70
|
+
headless: {
|
|
71
|
+
promptFlag: "--message",
|
|
72
|
+
defaultFlags: ["--yes"],
|
|
73
|
+
},
|
|
74
|
+
modelFlag: "--model",
|
|
75
|
+
vendor: "Aider",
|
|
76
|
+
};
|
|
77
|
+
const GOOSE = {
|
|
78
|
+
id: "goose",
|
|
79
|
+
name: "Goose",
|
|
80
|
+
description: "Block's CLI coding agent",
|
|
81
|
+
binary: "goose",
|
|
82
|
+
versionArgs: ["--version"],
|
|
83
|
+
headless: {
|
|
84
|
+
subcommand: "run",
|
|
85
|
+
promptFlag: "-t",
|
|
86
|
+
defaultFlags: ["--no-session"],
|
|
87
|
+
},
|
|
88
|
+
modelFlag: "--model",
|
|
89
|
+
vendor: "Block",
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* All built-in agent definitions.
|
|
93
|
+
*/
|
|
94
|
+
export const BUILTIN_AGENTS = [
|
|
95
|
+
CLAUDE_CODE,
|
|
96
|
+
CODEX,
|
|
97
|
+
GEMINI_CLI,
|
|
98
|
+
OPENCODE,
|
|
99
|
+
AIDER,
|
|
100
|
+
GOOSE,
|
|
101
|
+
];
|
|
102
|
+
// =============================================================================
|
|
103
|
+
// Agent Registry
|
|
104
|
+
// =============================================================================
|
|
105
|
+
/**
|
|
106
|
+
* Registry of known CLI coding agent definitions.
|
|
107
|
+
*
|
|
108
|
+
* Provides lookup by ID and supports adding custom agent definitions.
|
|
109
|
+
*/
|
|
110
|
+
export class AgentRegistry {
|
|
111
|
+
agents = new Map();
|
|
112
|
+
constructor(definitions) {
|
|
113
|
+
// Register built-in agents
|
|
114
|
+
for (const def of BUILTIN_AGENTS) {
|
|
115
|
+
this.agents.set(def.id, def);
|
|
116
|
+
}
|
|
117
|
+
// Register additional definitions
|
|
118
|
+
if (definitions) {
|
|
119
|
+
for (const def of definitions) {
|
|
120
|
+
this.agents.set(def.id, def);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get an agent definition by ID.
|
|
126
|
+
*/
|
|
127
|
+
get(id) {
|
|
128
|
+
return this.agents.get(id);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check if an agent definition exists.
|
|
132
|
+
*/
|
|
133
|
+
has(id) {
|
|
134
|
+
return this.agents.has(id);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Register a new agent definition (or override an existing one).
|
|
138
|
+
*/
|
|
139
|
+
register(definition) {
|
|
140
|
+
this.agents.set(definition.id, definition);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Remove an agent definition by ID.
|
|
144
|
+
*/
|
|
145
|
+
remove(id) {
|
|
146
|
+
return this.agents.delete(id);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* List all registered agent definitions.
|
|
150
|
+
*/
|
|
151
|
+
list() {
|
|
152
|
+
return Array.from(this.agents.values());
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* List agent definitions, optionally excluding disabled agents.
|
|
156
|
+
*/
|
|
157
|
+
listEnabled(disabledIds) {
|
|
158
|
+
if (!disabledIds || disabledIds.length === 0) {
|
|
159
|
+
return this.list();
|
|
160
|
+
}
|
|
161
|
+
const disabled = new Set(disabledIds);
|
|
162
|
+
return this.list().filter((def) => !disabled.has(def.id));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get the number of registered agent definitions.
|
|
166
|
+
*/
|
|
167
|
+
get size() {
|
|
168
|
+
return this.agents.size;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Create a new AgentRegistry with built-in agents and optional custom definitions.
|
|
173
|
+
*/
|
|
174
|
+
export function createAgentRegistry(additionalAgents) {
|
|
175
|
+
return new AgentRegistry(additionalAgents);
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agent-detection/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,MAAM,WAAW,GAAuB;IACtC,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,8BAA8B;IAC3C,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;KACjD;IACD,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,WAAW;CACpB,CAAC;AAEF,MAAM,KAAK,GAAuB;IAChC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,2BAA2B;IACxC,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,CAAC,aAAa,CAAC;KAC9B;IACD,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,GAAuB;IACrC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,2BAA2B;IACxC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,IAAI;KACjB;IACD,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,QAAQ,GAAuB;IACnC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,4BAA4B;IACzC,MAAM,EAAE,UAAU;IAClB,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,EAAE;KACf;IACD,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,KAAK,GAAuB;IAChC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,sCAAsC;IACnD,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,CAAC,OAAO,CAAC;KACxB;IACD,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,MAAM,KAAK,GAAuB;IAChC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,0BAA0B;IACvC,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,EAAE;QACR,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,CAAC,cAAc,CAAC;KAC/B;IACD,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,WAAW;IACX,KAAK;IACL,UAAU;IACV,QAAQ;IACR,KAAK;IACL,KAAK;CACN,CAAC;AAEF,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACP,MAAM,GAAoC,IAAI,GAAG,EAAE,CAAC;IAErE,YAAY,WAAkC;QAC5C,2BAA2B;QAC3B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,kCAAkC;QAClC,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,UAA8B;QACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,WAAsB;QAChC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,gBAAuC;IAEvC,OAAO,IAAI,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAC7C,CAAC"}
|