macro-agent 0.0.11 → 0.0.13
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 +5 -3
- package/src/acp/__tests__/integration.test.ts +161 -1
- package/src/acp/__tests__/macro-agent.test.ts +95 -0
- package/src/acp/__tests__/session-persistence.test.ts +276 -0
- package/src/acp/macro-agent.ts +79 -7
- package/src/acp/session-mapper.ts +108 -1
- package/src/acp/types.ts +33 -1
- package/src/agent/agent-manager.ts +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
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Streaming
|
|
3
|
-
parent: Protocol
|
|
4
|
-
nav_order: 3
|
|
5
|
-
description: "Event streaming, subscriptions, filtering, and replay"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Streaming Semantics
|
|
9
|
-
{: .no_toc }
|
|
10
|
-
|
|
11
|
-
System-wide event streaming, subscriptions, filtering, and replay.
|
|
12
|
-
{: .fs-6 .fw-300 }
|
|
13
|
-
|
|
14
|
-
## Table of contents
|
|
15
|
-
{: .no_toc .text-delta }
|
|
16
|
-
|
|
17
|
-
1. TOC
|
|
18
|
-
{:toc}
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Design Goals
|
|
23
|
-
|
|
24
|
-
1. **System-wide visibility** - See all agent activity, not just one session
|
|
25
|
-
2. **Efficient filtering** - Subscribe only to relevant events
|
|
26
|
-
3. **Replay capability** - Catch up on missed events
|
|
27
|
-
4. **Backpressure handling** - Don't overwhelm slow consumers
|
|
28
|
-
5. **Ordered delivery** - Causal ordering where it matters
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Subscription Model
|
|
33
|
-
|
|
34
|
-
### Creating Subscriptions
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
{
|
|
38
|
-
"jsonrpc": "2.0",
|
|
39
|
-
"id": "sub_001",
|
|
40
|
-
"method": "map/subscribe",
|
|
41
|
-
"params": {
|
|
42
|
-
"streams": ["messages", "state", "tasks"],
|
|
43
|
-
"filter": {
|
|
44
|
-
"agents": ["agent_worker_*"], // Glob pattern
|
|
45
|
-
"roles": ["worker", "integrator"],
|
|
46
|
-
"scopes": ["scope_active"]
|
|
47
|
-
},
|
|
48
|
-
"options": {
|
|
49
|
-
"includeHistory": false,
|
|
50
|
-
"bufferSize": 1000,
|
|
51
|
-
"deliveryMode": "at-least-once"
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Response
|
|
57
|
-
{
|
|
58
|
-
"jsonrpc": "2.0",
|
|
59
|
-
"id": "sub_001",
|
|
60
|
-
"result": {
|
|
61
|
-
"subscriptionId": "sub_a1b2c3",
|
|
62
|
-
"streams": ["messages", "state", "tasks"],
|
|
63
|
-
"effectiveFilter": { ... }
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Subscription Lifecycle
|
|
69
|
-
|
|
70
|
-
```mermaid
|
|
71
|
-
stateDiagram-v2
|
|
72
|
-
[*] --> inactive
|
|
73
|
-
inactive --> active: subscribe
|
|
74
|
-
active --> paused: pause
|
|
75
|
-
paused --> active: resume
|
|
76
|
-
active --> closed: unsubscribe
|
|
77
|
-
paused --> closed: unsubscribe
|
|
78
|
-
closed --> [*]
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## Event Delivery
|
|
84
|
-
|
|
85
|
-
### Event Envelope
|
|
86
|
-
|
|
87
|
-
```typescript
|
|
88
|
-
interface MAPStreamEventEnvelope {
|
|
89
|
-
subscriptionId: string;
|
|
90
|
-
sequence: number; // Monotonic within subscription
|
|
91
|
-
timestamp: number; // Server timestamp
|
|
92
|
-
event: MAPStreamEvent;
|
|
93
|
-
|
|
94
|
-
// For ordering/dedup
|
|
95
|
-
eventId: string; // Globally unique
|
|
96
|
-
causedBy?: string[]; // Causal predecessors
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### Event Types
|
|
101
|
-
|
|
102
|
-
#### Messaging Events
|
|
103
|
-
|
|
104
|
-
```typescript
|
|
105
|
-
| { type: "message"; envelope: MAPEnvelope; receipts: MAPDeliveryReceipt[] }
|
|
106
|
-
| { type: "message.ack"; messageId: string; agentId: string }
|
|
107
|
-
| { type: "message.failed"; messageId: string; error: MAPError }
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
#### Agent State Events
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
| { type: "agent.registered"; agent: MAPAgent }
|
|
114
|
-
| { type: "agent.unregistered"; agentId: string; reason: string }
|
|
115
|
-
| { type: "agent.state"; agentId: string; previous: string; current: string }
|
|
116
|
-
| { type: "agent.updated"; agentId: string; changes: Partial<MAPAgent> }
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
#### Task Events
|
|
120
|
-
|
|
121
|
-
```typescript
|
|
122
|
-
| { type: "task.created"; task: MAPTask }
|
|
123
|
-
| { type: "task.assigned"; taskId: string; agentId: string }
|
|
124
|
-
| { type: "task.status"; taskId: string; previous: string; current: string }
|
|
125
|
-
| { type: "task.completed"; taskId: string; result?: unknown }
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
#### Scope Events
|
|
129
|
-
|
|
130
|
-
```typescript
|
|
131
|
-
| { type: "scope.created"; scope: MAPScope }
|
|
132
|
-
| { type: "scope.deleted"; scopeId: string }
|
|
133
|
-
| { type: "scope.member.added"; scopeId: string; agentId: string }
|
|
134
|
-
| { type: "scope.member.removed"; scopeId: string; agentId: string }
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
#### System Events
|
|
138
|
-
|
|
139
|
-
```typescript
|
|
140
|
-
| { type: "system.heartbeat"; timestamp: number }
|
|
141
|
-
| { type: "system.capacity"; agents: number; maxAgents: number }
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Filtering
|
|
147
|
-
|
|
148
|
-
### Filter Syntax
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
interface MAPStreamFilter {
|
|
152
|
-
// Agent filtering (OR within, AND across fields)
|
|
153
|
-
agents?: string[]; // Glob patterns
|
|
154
|
-
roles?: string[]; // Role names
|
|
155
|
-
scopes?: string[]; // Scope IDs
|
|
156
|
-
|
|
157
|
-
// Event filtering
|
|
158
|
-
eventTypes?: string[]; // e.g., ["message", "task.*"]
|
|
159
|
-
priorities?: MAPPriority[]; // For message events
|
|
160
|
-
|
|
161
|
-
// Hierarchy filtering
|
|
162
|
-
descendants?: string; // All descendants of agent
|
|
163
|
-
ancestors?: string; // All ancestors of agent
|
|
164
|
-
subtree?: string; // Agent and all descendants
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Filter Examples
|
|
169
|
-
|
|
170
|
-
**Single agent focus:**
|
|
171
|
-
```typescript
|
|
172
|
-
{ agents: ["agent_001"] }
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
**Role-based:**
|
|
176
|
-
```typescript
|
|
177
|
-
{ roles: ["worker"], eventTypes: ["task.*"] }
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**Subtree observation:**
|
|
181
|
-
```typescript
|
|
182
|
-
{ subtree: "coordinator_001" }
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
**High-priority messages only:**
|
|
186
|
-
```typescript
|
|
187
|
-
{ eventTypes: ["message"], priorities: ["urgent", "high"] }
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
## Replay
|
|
193
|
-
|
|
194
|
-
### Replay Request
|
|
195
|
-
|
|
196
|
-
```typescript
|
|
197
|
-
{
|
|
198
|
-
"jsonrpc": "2.0",
|
|
199
|
-
"id": "replay_001",
|
|
200
|
-
"method": "map/replay",
|
|
201
|
-
"params": {
|
|
202
|
-
// Time-based replay
|
|
203
|
-
"from": 1706120000000,
|
|
204
|
-
"to": 1706123456789,
|
|
205
|
-
|
|
206
|
-
// OR event-based replay
|
|
207
|
-
"afterEventId": "evt_x1y2z3",
|
|
208
|
-
|
|
209
|
-
// Filter
|
|
210
|
-
"filter": {
|
|
211
|
-
"agents": ["agent_worker_*"],
|
|
212
|
-
"eventTypes": ["task.*"]
|
|
213
|
-
},
|
|
214
|
-
|
|
215
|
-
// Options
|
|
216
|
-
"options": {
|
|
217
|
-
"limit": 1000,
|
|
218
|
-
"order": "chronological",
|
|
219
|
-
"includeSnapshots": true
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Replay Response
|
|
226
|
-
|
|
227
|
-
```typescript
|
|
228
|
-
{
|
|
229
|
-
"jsonrpc": "2.0",
|
|
230
|
-
"id": "replay_001",
|
|
231
|
-
"result": {
|
|
232
|
-
"events": [...],
|
|
233
|
-
"snapshot": { ... }, // Initial state snapshot
|
|
234
|
-
"hasMore": true,
|
|
235
|
-
"cursor": "cursor_xyz" // For pagination
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
## Ordering Guarantees
|
|
243
|
-
|
|
244
|
-
### Within-Agent Ordering
|
|
245
|
-
|
|
246
|
-
Events for a single agent are always delivered in causal order:
|
|
247
|
-
|
|
248
|
-
```
|
|
249
|
-
Agent A: state=idle → state=busy → state=idle
|
|
250
|
-
(seq 1) (seq 2) (seq 3)
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
### Cross-Agent Ordering
|
|
254
|
-
|
|
255
|
-
Events across agents may be reordered unless causally related:
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
Agent A: message sent ────────────────┐
|
|
259
|
-
▼
|
|
260
|
-
Agent B: message received → state=busy
|
|
261
|
-
|
|
262
|
-
// The "message received" always comes after "message sent"
|
|
263
|
-
// But unrelated events may interleave
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
### Ordering Modes
|
|
267
|
-
|
|
268
|
-
```typescript
|
|
269
|
-
interface SubscriptionOptions {
|
|
270
|
-
ordering:
|
|
271
|
-
| "none" // No ordering guarantee (fastest)
|
|
272
|
-
| "per-agent" // Ordered within each agent
|
|
273
|
-
| "causal" // Full causal ordering (may have latency)
|
|
274
|
-
| "total"; // Total ordering (highest latency)
|
|
275
|
-
}
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
---
|
|
279
|
-
|
|
280
|
-
## Backpressure
|
|
281
|
-
|
|
282
|
-
### Client Flow Control
|
|
283
|
-
|
|
284
|
-
```typescript
|
|
285
|
-
// Client acknowledges events (enables flow control)
|
|
286
|
-
{
|
|
287
|
-
"jsonrpc": "2.0",
|
|
288
|
-
"method": "map/subscribe.ack",
|
|
289
|
-
"params": {
|
|
290
|
-
"subscriptionId": "sub_a1b2c3",
|
|
291
|
-
"upToSequence": 100
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
### Overflow Handling
|
|
297
|
-
|
|
298
|
-
When a client falls behind:
|
|
299
|
-
|
|
300
|
-
```typescript
|
|
301
|
-
// Server notifies client of overflow
|
|
302
|
-
{
|
|
303
|
-
"jsonrpc": "2.0",
|
|
304
|
-
"method": "map/subscription.overflow",
|
|
305
|
-
"params": {
|
|
306
|
-
"subscriptionId": "sub_a1b2c3",
|
|
307
|
-
"eventsDropped": 150,
|
|
308
|
-
"oldestDropped": "evt_x1y2z3",
|
|
309
|
-
"newestDropped": "evt_a4b5c6",
|
|
310
|
-
"recommendation": "reduce_filter_scope"
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
### Recovery Options
|
|
316
|
-
|
|
317
|
-
1. **Narrow filter** - Reduce the scope of events
|
|
318
|
-
2. **Increase buffer** - Request larger server-side buffer
|
|
319
|
-
3. **Replay missed** - Use replay API to catch up
|
|
320
|
-
4. **Accept loss** - Continue from current position
|
|
321
|
-
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
## Multiple Subscriptions
|
|
325
|
-
|
|
326
|
-
Clients can maintain multiple concurrent subscriptions:
|
|
327
|
-
|
|
328
|
-
```typescript
|
|
329
|
-
// Subscription 1: High-priority messages only
|
|
330
|
-
const urgentSub = await client.subscribe({
|
|
331
|
-
filter: { priorities: ["urgent", "high"] },
|
|
332
|
-
streams: ["messages"]
|
|
333
|
-
});
|
|
334
|
-
|
|
335
|
-
// Subscription 2: All state changes
|
|
336
|
-
const stateSub = await client.subscribe({
|
|
337
|
-
filter: {},
|
|
338
|
-
streams: ["state"]
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
// Subscription 3: Specific agent subtree
|
|
342
|
-
const agentSub = await client.subscribe({
|
|
343
|
-
filter: { subtree: "coordinator_001" },
|
|
344
|
-
streams: ["messages", "state", "tasks"]
|
|
345
|
-
});
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
---
|
|
349
|
-
|
|
350
|
-
## Next Steps
|
|
351
|
-
|
|
352
|
-
- [Connection Model](./connection-model.html) - Connection lifecycle
|
|
353
|
-
- [Error Handling](./error-handling.html) - Handling delivery failures
|
|
@@ -1,369 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Wire Protocol
|
|
3
|
-
parent: Protocol
|
|
4
|
-
nav_order: 2
|
|
5
|
-
description: "JSON-RPC 2.0 wire format and transport bindings"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Wire Protocol
|
|
9
|
-
{: .no_toc }
|
|
10
|
-
|
|
11
|
-
JSON-RPC 2.0 message format, method namespacing, and transport bindings.
|
|
12
|
-
{: .fs-6 .fw-300 }
|
|
13
|
-
|
|
14
|
-
## Table of contents
|
|
15
|
-
{: .no_toc .text-delta }
|
|
16
|
-
|
|
17
|
-
1. TOC
|
|
18
|
-
{:toc}
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Design Goals
|
|
23
|
-
|
|
24
|
-
1. **JSON-RPC 2.0 base** - Same foundation as ACP for tooling compatibility
|
|
25
|
-
2. **Bidirectional streaming** - Native support, not bolted on
|
|
26
|
-
3. **ACP downgrade path** - Graceful degradation to ACP-only clients
|
|
27
|
-
4. **Transport agnostic** - WebSocket, stdio, HTTP/SSE all viable
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Message Types
|
|
32
|
-
|
|
33
|
-
MAP uses four message types over JSON-RPC:
|
|
34
|
-
|
|
35
|
-
### Request
|
|
36
|
-
|
|
37
|
-
Expects a response:
|
|
38
|
-
|
|
39
|
-
```typescript
|
|
40
|
-
interface MAPRequest {
|
|
41
|
-
jsonrpc: "2.0";
|
|
42
|
-
id: string | number;
|
|
43
|
-
method: string;
|
|
44
|
-
params?: unknown;
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### Response
|
|
49
|
-
|
|
50
|
-
Reply to a request:
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
interface MAPResponse {
|
|
54
|
-
jsonrpc: "2.0";
|
|
55
|
-
id: string | number;
|
|
56
|
-
result?: unknown;
|
|
57
|
-
error?: MAPError;
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Notification
|
|
62
|
-
|
|
63
|
-
No response expected:
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
interface MAPNotification {
|
|
67
|
-
jsonrpc: "2.0";
|
|
68
|
-
method: string;
|
|
69
|
-
params?: unknown;
|
|
70
|
-
// Note: no 'id' field
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Batch
|
|
75
|
-
|
|
76
|
-
Multiple messages:
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
type MAPBatch = Array<MAPRequest | MAPNotification>;
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Method Namespacing
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
map/ # Full MAP mode methods
|
|
88
|
-
├── connect
|
|
89
|
-
├── disconnect
|
|
90
|
-
├── send
|
|
91
|
-
├── subscribe
|
|
92
|
-
├── unsubscribe
|
|
93
|
-
├── agents/*
|
|
94
|
-
├── scopes/*
|
|
95
|
-
├── federation/*
|
|
96
|
-
└── ...
|
|
97
|
-
|
|
98
|
-
_map/ # ACP-compat mode (via extMethod)
|
|
99
|
-
├── agent.list
|
|
100
|
-
├── hierarchy.get
|
|
101
|
-
├── scope.list
|
|
102
|
-
└── subscribe
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Protocol Phases
|
|
108
|
-
|
|
109
|
-
### Phase 1: Connection Establishment
|
|
110
|
-
|
|
111
|
-
```mermaid
|
|
112
|
-
sequenceDiagram
|
|
113
|
-
participant Client
|
|
114
|
-
participant Server
|
|
115
|
-
|
|
116
|
-
Client->>Server: Transport Connect
|
|
117
|
-
Server-->>Client: Transport Accept
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### Phase 2: Protocol Negotiation
|
|
121
|
-
|
|
122
|
-
```typescript
|
|
123
|
-
// Client sends connect request
|
|
124
|
-
{
|
|
125
|
-
"jsonrpc": "2.0",
|
|
126
|
-
"id": "req_001",
|
|
127
|
-
"method": "map/connect",
|
|
128
|
-
"params": {
|
|
129
|
-
"protocolVersion": "2025-01-01",
|
|
130
|
-
"participantType": "client",
|
|
131
|
-
"clientInfo": {
|
|
132
|
-
"name": "my-dashboard",
|
|
133
|
-
"version": "1.0.0"
|
|
134
|
-
},
|
|
135
|
-
"capabilities": {
|
|
136
|
-
"streaming": true,
|
|
137
|
-
"scopes": true,
|
|
138
|
-
"federation": false
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Server responds with negotiated capabilities
|
|
144
|
-
{
|
|
145
|
-
"jsonrpc": "2.0",
|
|
146
|
-
"id": "req_001",
|
|
147
|
-
"result": {
|
|
148
|
-
"protocolVersion": "2025-01-01",
|
|
149
|
-
"sessionId": "session_001",
|
|
150
|
-
"serverInfo": {
|
|
151
|
-
"name": "map-server",
|
|
152
|
-
"version": "1.0.0"
|
|
153
|
-
},
|
|
154
|
-
"capabilities": {
|
|
155
|
-
"streaming": true,
|
|
156
|
-
"scopes": true,
|
|
157
|
-
"federation": true,
|
|
158
|
-
"replay": true,
|
|
159
|
-
"maxSubscriptions": 100,
|
|
160
|
-
"maxMessageSize": 1048576
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### Phase 3: Graceful Shutdown
|
|
167
|
-
|
|
168
|
-
```typescript
|
|
169
|
-
{
|
|
170
|
-
"jsonrpc": "2.0",
|
|
171
|
-
"id": "req_final",
|
|
172
|
-
"method": "map/disconnect",
|
|
173
|
-
"params": {
|
|
174
|
-
"reason": "user_requested",
|
|
175
|
-
"timeout": 5000,
|
|
176
|
-
"cascade": true
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## Messaging Wire Format
|
|
184
|
-
|
|
185
|
-
### Send Message
|
|
186
|
-
|
|
187
|
-
```typescript
|
|
188
|
-
// Request
|
|
189
|
-
{
|
|
190
|
-
"jsonrpc": "2.0",
|
|
191
|
-
"id": "msg_001",
|
|
192
|
-
"method": "map/send",
|
|
193
|
-
"params": {
|
|
194
|
-
"to": { "agent": "agent_worker_001" },
|
|
195
|
-
"payload": {
|
|
196
|
-
"type": "task_assignment",
|
|
197
|
-
"task": {
|
|
198
|
-
"id": "task_001",
|
|
199
|
-
"description": "Review PR #123"
|
|
200
|
-
}
|
|
201
|
-
},
|
|
202
|
-
"meta": {
|
|
203
|
-
"priority": "high",
|
|
204
|
-
"delivery": "inject",
|
|
205
|
-
"ttl": 60000,
|
|
206
|
-
"requireAck": true
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// Response
|
|
212
|
-
{
|
|
213
|
-
"jsonrpc": "2.0",
|
|
214
|
-
"id": "msg_001",
|
|
215
|
-
"result": {
|
|
216
|
-
"messageId": "envelope_a1b2c3",
|
|
217
|
-
"delivered": 1,
|
|
218
|
-
"receipts": [
|
|
219
|
-
{
|
|
220
|
-
"agentId": "agent_worker_001",
|
|
221
|
-
"status": "delivered",
|
|
222
|
-
"timestamp": 1706123456789
|
|
223
|
-
}
|
|
224
|
-
]
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### Addressing
|
|
230
|
-
|
|
231
|
-
```typescript
|
|
232
|
-
type MAPAddress =
|
|
233
|
-
| { agent: string } // Direct to agent
|
|
234
|
-
| { scope: string } // Broadcast to scope
|
|
235
|
-
| { role: string } // All agents with role
|
|
236
|
-
| { agents: string[] } // Multiple specific agents
|
|
237
|
-
| { parent: true } // Sender's parent
|
|
238
|
-
| { children: true }; // Sender's children
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## ACP Compatibility Layer
|
|
244
|
-
|
|
245
|
-
### Mode Detection
|
|
246
|
-
|
|
247
|
-
```typescript
|
|
248
|
-
function detectMode(request: MAPConnectRequest): "full" | "acp-compat" {
|
|
249
|
-
if (request.mode === "acp-compat") return "acp-compat";
|
|
250
|
-
if (!request.capabilities?.streaming) return "acp-compat";
|
|
251
|
-
return "full";
|
|
252
|
-
}
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
### Feature Degradation Table
|
|
256
|
-
|
|
257
|
-
| Feature | Full MAP | ACP-compat |
|
|
258
|
-
|:--------|:---------|:-----------|
|
|
259
|
-
| Multi-agent context | Native | Session-per-agent |
|
|
260
|
-
| Streaming | Native bidirectional | Via sessionUpdate |
|
|
261
|
-
| Hierarchy queries | Full tree ops | Flat list only |
|
|
262
|
-
| Scopes | Full CRUD | Read-only listing |
|
|
263
|
-
| Delivery semantics | All 4 modes | Best-effort only |
|
|
264
|
-
| Federation | Supported | Not available |
|
|
265
|
-
| Subscriptions | Multiple concurrent | Single per session |
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## Transport Bindings
|
|
270
|
-
|
|
271
|
-
### WebSocket
|
|
272
|
-
|
|
273
|
-
Primary transport for bidirectional streaming:
|
|
274
|
-
|
|
275
|
-
```typescript
|
|
276
|
-
// WebSocket frame format: JSON messages
|
|
277
|
-
// Each message is a complete JSON object
|
|
278
|
-
|
|
279
|
-
const ws = new WebSocket("wss://map.example.com/v1");
|
|
280
|
-
ws.onmessage = (event) => {
|
|
281
|
-
const message = JSON.parse(event.data);
|
|
282
|
-
handleMessage(message);
|
|
283
|
-
};
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
### Stdio (Subprocess Agents)
|
|
287
|
-
|
|
288
|
-
NDJSON (newline-delimited JSON) format over stdin/stdout:
|
|
289
|
-
|
|
290
|
-
```typescript
|
|
291
|
-
interface StdioTransport {
|
|
292
|
-
stdin: WritableStream<MAPMessage>;
|
|
293
|
-
stdout: ReadableStream<MAPMessage>;
|
|
294
|
-
stderr: ReadableStream<string>;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// Each line is a complete JSON message
|
|
298
|
-
// {"jsonrpc":"2.0","method":"map/connect",...}\n
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
### HTTP/SSE (Stateless Clients)
|
|
302
|
-
|
|
303
|
-
```typescript
|
|
304
|
-
// Endpoints:
|
|
305
|
-
// POST /map/rpc - Single RPC call
|
|
306
|
-
// GET /map/events - SSE event stream
|
|
307
|
-
// POST /map/batch - Batch RPC calls
|
|
308
|
-
|
|
309
|
-
// SSE event format
|
|
310
|
-
event: map.event
|
|
311
|
-
data: {"type":"agent.registered","agent":{...}}
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
---
|
|
315
|
-
|
|
316
|
-
## Error Format
|
|
317
|
-
|
|
318
|
-
```typescript
|
|
319
|
-
interface MAPError {
|
|
320
|
-
code: number;
|
|
321
|
-
message: string;
|
|
322
|
-
data?: {
|
|
323
|
-
category: string;
|
|
324
|
-
retryable?: boolean;
|
|
325
|
-
retryAfter?: number;
|
|
326
|
-
details?: unknown;
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
### Standard Error Codes
|
|
332
|
-
|
|
333
|
-
| Code | Category | Description |
|
|
334
|
-
|:-----|:---------|:------------|
|
|
335
|
-
| -32700 | protocol | Parse error |
|
|
336
|
-
| -32600 | protocol | Invalid request |
|
|
337
|
-
| -32601 | protocol | Method not found |
|
|
338
|
-
| -32602 | protocol | Invalid params |
|
|
339
|
-
| -32603 | protocol | Internal error |
|
|
340
|
-
| 1000-1999 | auth | Authentication errors |
|
|
341
|
-
| 2000-2999 | routing | Message delivery errors |
|
|
342
|
-
| 3000-3999 | agent | Agent lifecycle errors |
|
|
343
|
-
| 4000-4999 | resource | Resource exhaustion |
|
|
344
|
-
| 5000-5999 | federation | Cross-system errors |
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
## Protocol Extensions
|
|
349
|
-
|
|
350
|
-
Custom methods use vendor prefixes:
|
|
351
|
-
|
|
352
|
-
```typescript
|
|
353
|
-
{
|
|
354
|
-
"jsonrpc": "2.0",
|
|
355
|
-
"id": "ext_001",
|
|
356
|
-
"method": "x-mycompany/workspace.sync",
|
|
357
|
-
"params": {
|
|
358
|
-
"worktree": "/path/to/worktree",
|
|
359
|
-
"remote": "origin/main"
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
---
|
|
365
|
-
|
|
366
|
-
## Next Steps
|
|
367
|
-
|
|
368
|
-
- [Streaming](./streaming.html) - Event subscriptions and filtering
|
|
369
|
-
- [Error Handling](./error-handling.html) - Error taxonomy and recovery
|