macro-agent 0.0.17 → 0.1.1
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/.claude/settings.local.json +3 -1
- package/.sudocode/specs.jsonl +4 -0
- package/CLAUDE.md +16 -14
- package/README.md +11 -29
- package/dist/acp/macro-agent.d.ts +17 -0
- package/dist/acp/macro-agent.d.ts.map +1 -1
- package/dist/acp/macro-agent.js +183 -55
- package/dist/acp/macro-agent.js.map +1 -1
- package/dist/acp/types.d.ts +32 -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 +65 -1
- package/dist/agent/agent-manager.d.ts.map +1 -1
- package/dist/agent/agent-manager.js +464 -183
- package/dist/agent/agent-manager.js.map +1 -1
- package/dist/agent/types.d.ts +1 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/api/server.d.ts +3 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +37 -6
- package/dist/api/server.js.map +1 -1
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/token.d.ts +41 -0
- package/dist/auth/token.d.ts.map +1 -0
- package/dist/auth/token.js +73 -0
- package/dist/auth/token.js.map +1 -0
- package/dist/cli/acp.d.ts +2 -23
- package/dist/cli/acp.d.ts.map +1 -1
- package/dist/cli/acp.js +127 -61
- package/dist/cli/acp.js.map +1 -1
- package/dist/cli/index.js +147 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp.d.ts +6 -0
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +268 -181
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/parse-args.d.ts +20 -0
- package/dist/cli/parse-args.d.ts.map +1 -0
- package/dist/cli/parse-args.js +43 -0
- package/dist/cli/parse-args.js.map +1 -0
- package/dist/cli/stable-instance-id.d.ts +8 -0
- package/dist/cli/stable-instance-id.d.ts.map +1 -0
- package/dist/cli/stable-instance-id.js +14 -0
- package/dist/cli/stable-instance-id.js.map +1 -0
- package/dist/config/project-config.d.ts +74 -7
- package/dist/config/project-config.d.ts.map +1 -1
- package/dist/config/project-config.js +123 -20
- package/dist/config/project-config.js.map +1 -1
- package/dist/map/adapter/acp-over-map.d.ts +23 -0
- package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
- package/dist/map/adapter/acp-over-map.js +482 -55
- package/dist/map/adapter/acp-over-map.js.map +1 -1
- package/dist/map/adapter/connection-manager.d.ts.map +1 -1
- package/dist/map/adapter/connection-manager.js +3 -0
- package/dist/map/adapter/connection-manager.js.map +1 -1
- package/dist/map/adapter/event-log.d.ts +87 -0
- package/dist/map/adapter/event-log.d.ts.map +1 -0
- package/dist/map/adapter/event-log.js +122 -0
- package/dist/map/adapter/event-log.js.map +1 -0
- package/dist/map/adapter/event-translator.js +6 -6
- package/dist/map/adapter/event-translator.js.map +1 -1
- package/dist/map/adapter/extensions/agent-lifecycle.d.ts +82 -0
- package/dist/map/adapter/extensions/agent-lifecycle.d.ts.map +1 -0
- package/dist/map/adapter/extensions/agent-lifecycle.js +164 -0
- package/dist/map/adapter/extensions/agent-lifecycle.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 +34 -0
- package/dist/map/adapter/extensions/index.js.map +1 -1
- package/dist/map/adapter/extensions/mcp-bridge.d.ts +57 -0
- package/dist/map/adapter/extensions/mcp-bridge.d.ts.map +1 -0
- package/dist/map/adapter/extensions/mcp-bridge.js +745 -0
- package/dist/map/adapter/extensions/mcp-bridge.js.map +1 -0
- package/dist/map/adapter/extensions/rename.d.ts +29 -0
- package/dist/map/adapter/extensions/rename.d.ts.map +1 -0
- package/dist/map/adapter/extensions/rename.js +49 -0
- package/dist/map/adapter/extensions/rename.js.map +1 -0
- package/dist/map/adapter/extensions/task.d.ts.map +1 -1
- package/dist/map/adapter/extensions/task.js +10 -0
- package/dist/map/adapter/extensions/task.js.map +1 -1
- package/dist/map/adapter/extensions/update-metadata.d.ts +29 -0
- package/dist/map/adapter/extensions/update-metadata.d.ts.map +1 -0
- package/dist/map/adapter/extensions/update-metadata.js +67 -0
- package/dist/map/adapter/extensions/update-metadata.js.map +1 -0
- package/dist/map/adapter/index.d.ts +2 -1
- package/dist/map/adapter/index.d.ts.map +1 -1
- package/dist/map/adapter/index.js +8 -2
- package/dist/map/adapter/index.js.map +1 -1
- package/dist/map/adapter/interface.d.ts +2 -0
- package/dist/map/adapter/interface.d.ts.map +1 -1
- package/dist/map/adapter/map-adapter.d.ts +4 -0
- package/dist/map/adapter/map-adapter.d.ts.map +1 -1
- package/dist/map/adapter/map-adapter.js +302 -30
- package/dist/map/adapter/map-adapter.js.map +1 -1
- package/dist/map/adapter/subscription-manager.d.ts.map +1 -1
- package/dist/map/adapter/subscription-manager.js +5 -1
- package/dist/map/adapter/subscription-manager.js.map +1 -1
- package/dist/map/adapter/types.d.ts +2 -0
- package/dist/map/adapter/types.d.ts.map +1 -1
- package/dist/mcp/map-client.d.ts +39 -0
- package/dist/mcp/map-client.d.ts.map +1 -0
- package/dist/mcp/map-client.js +129 -0
- package/dist/mcp/map-client.js.map +1 -0
- package/dist/mcp/mcp-server.d.ts +14 -0
- package/dist/mcp/mcp-server.d.ts.map +1 -1
- package/dist/mcp/mcp-server.js +113 -85
- package/dist/mcp/mcp-server.js.map +1 -1
- package/dist/mcp/types.d.ts +9 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/metrics/metrics.js +1 -1
- package/dist/metrics/metrics.js.map +1 -1
- package/dist/roles/capabilities.d.ts +3 -1
- package/dist/roles/capabilities.d.ts.map +1 -1
- package/dist/roles/capabilities.js +17 -7
- package/dist/roles/capabilities.js.map +1 -1
- package/dist/roles/config-loader.d.ts +6 -6
- package/dist/roles/config-loader.d.ts.map +1 -1
- package/dist/roles/config-loader.js +6 -6
- package/dist/roles/config-loader.js.map +1 -1
- package/dist/roles/registry.d.ts +2 -2
- package/dist/roles/registry.js +2 -2
- package/dist/server/combined-server.d.ts +20 -0
- package/dist/server/combined-server.d.ts.map +1 -1
- package/dist/server/combined-server.js +107 -8
- package/dist/server/combined-server.js.map +1 -1
- package/dist/store/event-store.d.ts +7 -1
- package/dist/store/event-store.d.ts.map +1 -1
- package/dist/store/event-store.js +91 -8
- package/dist/store/event-store.js.map +1 -1
- package/dist/store/types/agents.d.ts +23 -0
- 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/task/backend/index.d.ts +47 -29
- package/dist/task/backend/index.d.ts.map +1 -1
- package/dist/task/backend/index.js +109 -71
- package/dist/task/backend/index.js.map +1 -1
- package/dist/task/backend/memory.d.ts +1 -0
- package/dist/task/backend/memory.d.ts.map +1 -1
- package/dist/task/backend/memory.js +3 -0
- package/dist/task/backend/memory.js.map +1 -1
- package/dist/task/backend/opentasks/backend.d.ts +140 -0
- package/dist/task/backend/opentasks/backend.d.ts.map +1 -0
- package/dist/task/backend/opentasks/backend.js +1023 -0
- package/dist/task/backend/opentasks/backend.js.map +1 -0
- package/dist/task/backend/opentasks/client.d.ts +337 -0
- package/dist/task/backend/opentasks/client.d.ts.map +1 -0
- package/dist/task/backend/opentasks/client.js +225 -0
- package/dist/task/backend/opentasks/client.js.map +1 -0
- package/dist/task/backend/opentasks/daemon-manager.d.ts +89 -0
- package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -0
- package/dist/task/backend/opentasks/daemon-manager.js +195 -0
- package/dist/task/backend/opentasks/daemon-manager.js.map +1 -0
- package/dist/task/backend/opentasks/index.d.ts +21 -0
- package/dist/task/backend/opentasks/index.d.ts.map +1 -0
- package/dist/task/backend/opentasks/index.js +21 -0
- package/dist/task/backend/opentasks/index.js.map +1 -0
- package/dist/task/backend/opentasks/mapping.d.ts +48 -0
- package/dist/task/backend/opentasks/mapping.d.ts.map +1 -0
- package/dist/task/backend/opentasks/mapping.js +77 -0
- package/dist/task/backend/opentasks/mapping.js.map +1 -0
- package/dist/task/backend/types.d.ts +33 -53
- package/dist/task/backend/types.d.ts.map +1 -1
- package/dist/task/backend/types.js +7 -11
- package/dist/task/backend/types.js.map +1 -1
- package/dist/task/backend/unified-tool-provider.d.ts +57 -0
- package/dist/task/backend/unified-tool-provider.d.ts.map +1 -0
- package/dist/task/backend/unified-tool-provider.js +623 -0
- package/dist/task/backend/unified-tool-provider.js.map +1 -0
- package/dist/teams/team-loader.d.ts +2 -2
- package/dist/teams/team-loader.js +3 -3
- package/dist/teams/team-loader.js.map +1 -1
- package/dist/teams/team-runtime.d.ts.map +1 -1
- package/dist/teams/team-runtime.js +2 -0
- package/dist/teams/team-runtime.js.map +1 -1
- package/docs/architecture.md +7 -6
- package/docs/configuration.md +26 -62
- package/docs/implementation-details.md +5 -5
- package/docs/implementation-summary.md +17 -17
- package/docs/plan-self-driving-support.md +4 -4
- package/docs/spec-self-driving-support.md +10 -10
- package/docs/team-templates.md +2 -2
- package/docs/teams.md +3 -3
- package/docs/troubleshooting.md +10 -11
- package/package.json +6 -4
- package/src/__tests__/e2e/agent-spawn-visibility.e2e.test.ts +761 -0
- package/src/__tests__/e2e/full-agent-conflict-resolution.e2e.test.ts +2 -2
- package/src/__tests__/e2e/mcp-thin-client-bridge.e2e.test.ts +304 -0
- package/src/__tests__/e2e/mcp-tools-available.e2e.test.ts +324 -0
- package/src/__tests__/e2e/multi-agent.e2e.test.ts +5 -5
- package/src/__tests__/e2e/spawn-session-streaming.e2e.test.ts +563 -0
- package/src/acp/__tests__/history.test.ts +8 -4
- package/src/acp/__tests__/integration.test.ts +56 -31
- package/src/acp/__tests__/macro-agent.test.ts +16 -7
- package/src/acp/macro-agent.ts +230 -62
- package/src/acp/types.ts +46 -1
- package/src/agent/__tests__/agent-manager.test.ts +228 -2
- package/src/agent/agent-manager.ts +714 -261
- package/src/agent/types.ts +3 -1
- package/src/api/server.ts +41 -7
- package/src/auth/__tests__/token.test.ts +100 -0
- package/src/auth/index.ts +1 -0
- package/src/auth/token.ts +82 -0
- package/src/cli/__tests__/acp.test.ts +1 -1
- package/src/cli/__tests__/stable-instance-id.test.ts +1 -1
- package/src/cli/acp.ts +130 -72
- package/src/cli/index.ts +120 -14
- package/src/cli/mcp.ts +311 -207
- package/src/cli/parse-args.ts +54 -0
- package/src/cli/stable-instance-id.ts +14 -0
- package/src/config/project-config.ts +190 -27
- package/src/lifecycle/__tests__/cascade-termination.test.ts +1 -1
- package/src/map/adapter/__tests__/acp-over-map-cancel.test.ts +820 -0
- package/src/map/adapter/__tests__/acp-over-map-getmodels.test.ts +355 -0
- package/src/map/adapter/__tests__/acp-over-map-history.test.ts +724 -2
- package/src/map/adapter/__tests__/acp-over-map-persistence.e2e.test.ts +1 -1
- package/src/map/adapter/__tests__/event-broadcast.test.ts +420 -0
- package/src/map/adapter/__tests__/event-log.test.ts +527 -0
- package/src/map/adapter/__tests__/event-translator.test.ts +3 -3
- package/src/map/adapter/__tests__/extensions.test.ts +408 -0
- package/src/map/adapter/__tests__/map-adapter.test.ts +99 -0
- package/src/map/adapter/__tests__/mcp-bridge.test.ts +1187 -0
- package/src/map/adapter/__tests__/multi-client-broadcast.test.ts +711 -0
- package/src/map/adapter/__tests__/websocket-integration.test.ts +218 -0
- package/src/map/adapter/acp-over-map.ts +777 -92
- package/src/map/adapter/connection-manager.ts +3 -0
- package/src/map/adapter/event-log.ts +208 -0
- package/src/map/adapter/event-translator.ts +6 -6
- package/src/map/adapter/extensions/agent-lifecycle.ts +267 -0
- package/src/map/adapter/extensions/index.ts +60 -0
- package/src/map/adapter/extensions/mcp-bridge.ts +995 -0
- package/src/map/adapter/extensions/task.ts +11 -0
- package/src/map/adapter/extensions/update-metadata.ts +126 -0
- package/src/map/adapter/index.ts +28 -0
- package/src/map/adapter/interface.ts +2 -0
- package/src/map/adapter/map-adapter.ts +373 -38
- package/src/map/adapter/subscription-manager.ts +5 -1
- package/src/map/adapter/types.ts +2 -0
- package/src/mcp/__tests__/map-client.test.ts +386 -0
- package/src/mcp/__tests__/mcp-server-thin-client.test.ts +368 -0
- package/src/mcp/__tests__/mcp-server.test.ts +100 -1
- package/src/mcp/map-client.ts +177 -0
- package/src/mcp/mcp-server.ts +191 -100
- package/src/mcp/types.ts +6 -1
- package/src/metrics/metrics.ts +1 -1
- package/src/monitor/__tests__/stale-agent-flow.integration.test.ts +1 -1
- package/src/roles/__tests__/config-loader.test.ts +7 -7
- package/src/roles/capabilities.ts +17 -7
- package/src/roles/config-loader.ts +6 -6
- package/src/roles/registry.ts +2 -2
- package/src/server/__tests__/combined-server.test.ts +94 -21
- package/src/server/combined-server.ts +189 -33
- package/src/steering/__tests__/steering-integration.test.ts +1 -1
- package/src/store/__tests__/event-store.test.ts +236 -1
- package/src/store/__tests__/instance.test.ts +3 -3
- package/src/store/event-store.ts +109 -8
- package/src/store/types/agents.ts +16 -0
- package/src/store/types/events.ts +1 -1
- package/src/task/backend/__tests__/create-task-backend.test.ts +225 -0
- package/src/task/backend/__tests__/e2e/unified-tool-provider-opentasks.e2e.test.ts +524 -0
- package/src/task/backend/__tests__/unified-tool-provider.test.ts +579 -0
- package/src/task/backend/index.ts +156 -106
- package/src/task/backend/memory.ts +4 -0
- package/src/task/backend/opentasks/__tests__/backend.test.ts +968 -0
- package/src/task/backend/opentasks/__tests__/daemon-manager.test.ts +406 -0
- package/src/task/backend/opentasks/__tests__/mapping.test.ts +84 -0
- package/src/task/backend/opentasks/__tests__/opentasks-backend.e2e.test.ts +1338 -0
- package/src/task/backend/opentasks/backend.ts +1323 -0
- package/src/task/backend/opentasks/client.ts +652 -0
- package/src/task/backend/opentasks/daemon-manager.ts +253 -0
- package/src/task/backend/opentasks/index.ts +69 -0
- package/src/task/backend/opentasks/mapping.ts +94 -0
- package/src/task/backend/types.ts +42 -66
- package/src/task/backend/unified-tool-provider.ts +779 -0
- package/src/teams/__tests__/cross-subsystem.integration.test.ts +1 -1
- package/src/teams/team-loader.ts +3 -3
- package/src/teams/team-runtime.ts +2 -0
- package/test_fixtures/README.md +2 -3
- package/test_fixtures/fixtures/index.ts +0 -3
- package/test_fixtures/fixtures/projects/project-with-specs.ts +7 -149
- package/test_fixtures/fixtures/repos/index.ts +1 -3
- package/test_fixtures/fixtures/repos/temp-repo-factory.ts +0 -116
- package/test_fixtures/fixtures/repos/types.ts +0 -11
- package/test_fixtures/harness/__tests__/fixtures.test.ts +10 -102
- package/test_fixtures/harness/__tests__/temp-repo-and-simulator.test.ts +0 -33
- package/test_fixtures/harness/simulator/agent-simulator.ts +4 -4
- package/vitest.config.ts +1 -1
- package/vitest.e2e.config.ts +1 -1
- package/vitest.setup.ts +1 -30
- package/.macro-agent/teams/self-driving/prompts/grinder.md +0 -27
- package/.macro-agent/teams/self-driving/prompts/judge.md +0 -27
- package/.macro-agent/teams/self-driving/prompts/planner.md +0 -33
- package/.macro-agent/teams/self-driving/roles/grinder.yaml +0 -17
- package/.macro-agent/teams/self-driving/roles/judge.yaml +0 -24
- package/.macro-agent/teams/self-driving/roles/planner.yaml +0 -18
- package/.macro-agent/teams/self-driving/team.yaml +0 -103
- package/.macro-agent/teams/structured/prompts/developer.md +0 -26
- package/.macro-agent/teams/structured/prompts/lead.md +0 -25
- package/.macro-agent/teams/structured/prompts/reviewer.md +0 -24
- package/.macro-agent/teams/structured/roles/developer.yaml +0 -12
- package/.macro-agent/teams/structured/roles/lead.yaml +0 -11
- package/.macro-agent/teams/structured/roles/reviewer.yaml +0 -19
- package/.macro-agent/teams/structured/team.yaml +0 -89
- package/docs/sudocode-integration.md +0 -383
- package/src/task/backend/__tests__/backend-parity.test.ts +0 -451
- package/src/task/backend/__tests__/tool-provider-edge-cases.test.ts +0 -430
- package/src/task/backend/__tests__/tool-provider.test.ts +0 -983
- package/src/task/backend/sudocode/__tests__/backend-edge-cases.test.ts +0 -575
- package/src/task/backend/sudocode/__tests__/backend.test.ts +0 -1194
- package/src/task/backend/sudocode/__tests__/client-integration.test.ts +0 -418
- package/src/task/backend/sudocode/__tests__/client.test.ts +0 -345
- package/src/task/backend/sudocode/__tests__/e2e/backend.e2e.test.ts +0 -753
- package/src/task/backend/sudocode/__tests__/e2e/server-client.e2e.test.ts +0 -680
- package/src/task/backend/sudocode/__tests__/e2e-workflow.test.ts +0 -666
- package/src/task/backend/sudocode/__tests__/integration/standalone-client.integration.test.ts +0 -396
- package/src/task/backend/sudocode/__tests__/integration/sudocode-cli.integration.test.ts +0 -328
- package/src/task/backend/sudocode/__tests__/integration/test-utils.ts +0 -175
- package/src/task/backend/sudocode/__tests__/mapping-edge-cases.test.ts +0 -265
- package/src/task/backend/sudocode/__tests__/server-client.test.ts +0 -675
- package/src/task/backend/sudocode/__tests__/sync-policy-edge-cases.test.ts +0 -521
- package/src/task/backend/sudocode/__tests__/sync-policy.test.ts +0 -519
- package/src/task/backend/sudocode/__tests__/tools.test.ts +0 -471
- package/src/task/backend/sudocode/backend.ts +0 -1237
- package/src/task/backend/sudocode/client.ts +0 -515
- package/src/task/backend/sudocode/index.ts +0 -120
- package/src/task/backend/sudocode/mapping.ts +0 -93
- package/src/task/backend/sudocode/server-client.ts +0 -522
- package/src/task/backend/sudocode/standalone-client.ts +0 -623
- package/src/task/backend/sudocode/sync-policy.ts +0 -387
- package/src/task/backend/sudocode/tools.ts +0 -896
- package/src/task/backend/tool-provider.ts +0 -506
- package/test_fixtures/fixtures/sudocode/index.ts +0 -29
- package/test_fixtures/fixtures/sudocode/issues.ts +0 -185
- package/test_fixtures/fixtures/sudocode/specs.ts +0 -159
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../../src/map/adapter/subscription-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../../src/map/adapter/subscription-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,8 @@ export interface ParticipantCapabilities {
|
|
|
71
71
|
canManageTasks?: boolean;
|
|
72
72
|
/** Can manage federation connections (connect/disconnect peers) */
|
|
73
73
|
canManageFederation?: boolean;
|
|
74
|
+
/** Can manage agent lifecycle (resume, spawn, fork, permissions) */
|
|
75
|
+
canManageLifecycle?: boolean;
|
|
74
76
|
}
|
|
75
77
|
/**
|
|
76
78
|
* Information about a connected participant.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/map/adapter/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE7E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAE7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAErD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAE/D;AAMD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kCAAkC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/map/adapter/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thin MAP Client
|
|
3
|
+
*
|
|
4
|
+
* Ephemeral WebSocket client for MCP subprocesses to call MAP extension
|
|
5
|
+
* methods on the main server. Each call opens a connection, performs the
|
|
6
|
+
* MAP handshake, sends a single RPC, and disconnects.
|
|
7
|
+
*
|
|
8
|
+
* Uses raw WebSocket + JSON-RPC — not the full MAP ClientConnection SDK,
|
|
9
|
+
* since the SDK's capability negotiation and subscription management
|
|
10
|
+
* overhead is unnecessary for single-RPC ephemeral calls.
|
|
11
|
+
*/
|
|
12
|
+
export interface MapCallOptions {
|
|
13
|
+
/** Timeout in milliseconds (default: 30000) */
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
/** Server token for authentication (appended as query param on WebSocket URL) */
|
|
16
|
+
serverToken?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class MapCallError extends Error {
|
|
19
|
+
readonly code: number;
|
|
20
|
+
readonly data?: unknown;
|
|
21
|
+
constructor(code: number, message: string, data?: unknown);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Make a single MAP extension RPC call via ephemeral WebSocket.
|
|
25
|
+
*
|
|
26
|
+
* 1. Opens WebSocket to the MAP endpoint
|
|
27
|
+
* 2. Sends `map/connect` handshake
|
|
28
|
+
* 3. Sends the RPC request
|
|
29
|
+
* 4. Awaits the response
|
|
30
|
+
* 5. Closes the WebSocket
|
|
31
|
+
*
|
|
32
|
+
* @param serverUrl - HTTP URL of the macro-agent server (e.g., "http://localhost:3001")
|
|
33
|
+
* @param method - MAP extension method (e.g., "_macro/mcp/spawn_agent")
|
|
34
|
+
* @param params - Method parameters (includes context)
|
|
35
|
+
* @param options - Timeout and other options
|
|
36
|
+
* @returns The RPC result
|
|
37
|
+
*/
|
|
38
|
+
export declare function mapCall<T = unknown>(serverUrl: string, method: string, params?: unknown, options?: MapCallOptions): Promise<T>;
|
|
39
|
+
//# sourceMappingURL=map-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-client.d.ts","sourceRoot":"","sources":["../../src/mcp/map-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA0BH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAM1D;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC,CAiGZ"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Thin MAP Client
|
|
3
|
+
*
|
|
4
|
+
* Ephemeral WebSocket client for MCP subprocesses to call MAP extension
|
|
5
|
+
* methods on the main server. Each call opens a connection, performs the
|
|
6
|
+
* MAP handshake, sends a single RPC, and disconnects.
|
|
7
|
+
*
|
|
8
|
+
* Uses raw WebSocket + JSON-RPC — not the full MAP ClientConnection SDK,
|
|
9
|
+
* since the SDK's capability negotiation and subscription management
|
|
10
|
+
* overhead is unnecessary for single-RPC ephemeral calls.
|
|
11
|
+
*/
|
|
12
|
+
import WebSocket from "ws";
|
|
13
|
+
export class MapCallError extends Error {
|
|
14
|
+
code;
|
|
15
|
+
data;
|
|
16
|
+
constructor(code, message, data) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.name = "MapCallError";
|
|
19
|
+
this.code = code;
|
|
20
|
+
this.data = data;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// =============================================================================
|
|
24
|
+
// Implementation
|
|
25
|
+
// =============================================================================
|
|
26
|
+
/**
|
|
27
|
+
* Make a single MAP extension RPC call via ephemeral WebSocket.
|
|
28
|
+
*
|
|
29
|
+
* 1. Opens WebSocket to the MAP endpoint
|
|
30
|
+
* 2. Sends `map/connect` handshake
|
|
31
|
+
* 3. Sends the RPC request
|
|
32
|
+
* 4. Awaits the response
|
|
33
|
+
* 5. Closes the WebSocket
|
|
34
|
+
*
|
|
35
|
+
* @param serverUrl - HTTP URL of the macro-agent server (e.g., "http://localhost:3001")
|
|
36
|
+
* @param method - MAP extension method (e.g., "_macro/mcp/spawn_agent")
|
|
37
|
+
* @param params - Method parameters (includes context)
|
|
38
|
+
* @param options - Timeout and other options
|
|
39
|
+
* @returns The RPC result
|
|
40
|
+
*/
|
|
41
|
+
export async function mapCall(serverUrl, method, params, options) {
|
|
42
|
+
const timeoutMs = options?.timeoutMs ?? 30000;
|
|
43
|
+
let wsUrl = serverUrl.replace(/^http/, "ws") + "/map";
|
|
44
|
+
if (options?.serverToken) {
|
|
45
|
+
wsUrl += `?token=${encodeURIComponent(options.serverToken)}`;
|
|
46
|
+
}
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
let settled = false;
|
|
49
|
+
let nextId = 1;
|
|
50
|
+
let handshakeCompleted = false;
|
|
51
|
+
const timeout = setTimeout(() => {
|
|
52
|
+
if (!settled) {
|
|
53
|
+
settled = true;
|
|
54
|
+
ws.close();
|
|
55
|
+
reject(new MapCallError(-32000, `MAP call timed out after ${timeoutMs}ms: ${method}`));
|
|
56
|
+
}
|
|
57
|
+
}, timeoutMs);
|
|
58
|
+
const ws = new WebSocket(wsUrl);
|
|
59
|
+
ws.on("open", () => {
|
|
60
|
+
// Step 1: Send MAP handshake
|
|
61
|
+
const connectRequest = {
|
|
62
|
+
jsonrpc: "2.0",
|
|
63
|
+
id: nextId++,
|
|
64
|
+
method: "map/connect",
|
|
65
|
+
params: {
|
|
66
|
+
participantType: "client",
|
|
67
|
+
identity: `mcp-bridge-${Date.now()}`,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
ws.send(JSON.stringify(connectRequest));
|
|
71
|
+
});
|
|
72
|
+
ws.on("message", (data) => {
|
|
73
|
+
if (settled)
|
|
74
|
+
return;
|
|
75
|
+
let msg;
|
|
76
|
+
try {
|
|
77
|
+
msg = JSON.parse(data.toString());
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return; // Ignore non-JSON messages
|
|
81
|
+
}
|
|
82
|
+
if (!handshakeCompleted) {
|
|
83
|
+
// This should be the map/connect response
|
|
84
|
+
if (msg.error) {
|
|
85
|
+
settled = true;
|
|
86
|
+
clearTimeout(timeout);
|
|
87
|
+
ws.close();
|
|
88
|
+
reject(new MapCallError(msg.error.code, `MAP handshake failed: ${msg.error.message}`, msg.error.data));
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
handshakeCompleted = true;
|
|
92
|
+
// Step 2: Send the actual RPC request
|
|
93
|
+
const rpcRequest = {
|
|
94
|
+
jsonrpc: "2.0",
|
|
95
|
+
id: nextId++,
|
|
96
|
+
method,
|
|
97
|
+
params,
|
|
98
|
+
};
|
|
99
|
+
ws.send(JSON.stringify(rpcRequest));
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// This is the RPC response
|
|
103
|
+
settled = true;
|
|
104
|
+
clearTimeout(timeout);
|
|
105
|
+
ws.close();
|
|
106
|
+
if (msg.error) {
|
|
107
|
+
reject(new MapCallError(msg.error.code, msg.error.message, msg.error.data));
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
resolve(msg.result);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
ws.on("error", (err) => {
|
|
114
|
+
if (!settled) {
|
|
115
|
+
settled = true;
|
|
116
|
+
clearTimeout(timeout);
|
|
117
|
+
reject(new MapCallError(-32000, `MAP WebSocket error: ${err.message}`));
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
ws.on("close", () => {
|
|
121
|
+
if (!settled) {
|
|
122
|
+
settled = true;
|
|
123
|
+
clearTimeout(timeout);
|
|
124
|
+
reject(new MapCallError(-32000, "MAP WebSocket closed unexpectedly"));
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=map-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-client.js","sourceRoot":"","sources":["../../src/mcp/map-client.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/mcp-server.d.ts
CHANGED
|
@@ -53,4 +53,18 @@ export interface MCPServerInstance {
|
|
|
53
53
|
* The context (agent_id, session_id, etc.) is baked into all tool handlers.
|
|
54
54
|
*/
|
|
55
55
|
export declare function createMCPServer(context: ToolContext, services: MCPServices, config?: MCPServerConfig): MCPServerInstance;
|
|
56
|
+
/**
|
|
57
|
+
* Type for the mapCall function used in thin-client mode.
|
|
58
|
+
*/
|
|
59
|
+
export type MapCallFn = <T = unknown>(method: string, params?: unknown, options?: {
|
|
60
|
+
timeoutMs?: number;
|
|
61
|
+
}) => Promise<T>;
|
|
62
|
+
/**
|
|
63
|
+
* Creates a thin-client MCP server where every tool handler calls
|
|
64
|
+
* the main server via MAP WebSocket RPC instead of using local services.
|
|
65
|
+
*
|
|
66
|
+
* Tool schemas, descriptions, and role filtering remain the same.
|
|
67
|
+
* Only the handler bodies change — they forward to `_macro/mcp/*` extensions.
|
|
68
|
+
*/
|
|
69
|
+
export declare function createMCPServerThinClient(context: ToolContext, mapCallFn: MapCallFn, config?: MCPServerConfig): MCPServerInstance;
|
|
56
70
|
//# sourceMappingURL=mcp-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAQ7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA2B9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAoBtE,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,gEAAgE;IAChE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wDAAwD;IACxD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,OAAO,kCAAkC,EAAE,mBAAmB,CAAC;IACrF,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,0BAA0B,EAAE,WAAW,CAAC;CAC9D;AAMD,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,MAAM,EAAE,SAAS,CAAC;IAElB,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,uBAAuB;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAQ7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA2B9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAC;AAoBtE,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,gEAAgE;IAChE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,wDAAwD;IACxD,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,OAAO,kCAAkC,EAAE,mBAAmB,CAAC;IACrF,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,0BAA0B,EAAE,WAAW,CAAC;CAC9D;AAMD,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,MAAM,EAAE,SAAS,CAAC;IAElB,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,uBAAuB;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AA6ID;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,WAAW,EACrB,MAAM,GAAE,eAAoB,GAC3B,iBAAiB,CAm8BnB;AAMD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO,EAClC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAC7B,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,SAAS,EACpB,MAAM,GAAE,eAAoB,GAC3B,iBAAiB,CAwInB"}
|
package/dist/mcp/mcp-server.js
CHANGED
|
@@ -122,14 +122,6 @@ const StopAgentSchema = {
|
|
|
122
122
|
.default("cancelled")
|
|
123
123
|
.describe("Reason for stopping"),
|
|
124
124
|
};
|
|
125
|
-
const CreateTaskSchema = {
|
|
126
|
-
description: z.string().describe("Task description"),
|
|
127
|
-
parent_task: z.string().optional().describe("Parent task ID for subtasks"),
|
|
128
|
-
inputs: z.record(z.string(), z.unknown()).optional().describe("Initial inputs for the task"),
|
|
129
|
-
};
|
|
130
|
-
const GetTaskSchema = {
|
|
131
|
-
task_id: z.string().describe("Task ID to look up"),
|
|
132
|
-
};
|
|
133
125
|
// ─────────────────────────────────────────────────────────────────
|
|
134
126
|
// Peer Communication Schemas
|
|
135
127
|
// ─────────────────────────────────────────────────────────────────
|
|
@@ -222,6 +214,11 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
222
214
|
if (allAgents.length > 0) {
|
|
223
215
|
debugLog(`[MCP spawn_agent] Agent IDs: ${allAgents.map(a => a.id).join(', ')}`);
|
|
224
216
|
}
|
|
217
|
+
// Inherit the parent's permission mode so sub-agents respect
|
|
218
|
+
// the same mode (e.g., "interactive") set during initialization.
|
|
219
|
+
// Read from env var since the MCP server is a separate process
|
|
220
|
+
// without access to the macro-agent server's in-memory state.
|
|
221
|
+
const parentPermissionMode = process.env.MACRO_PERMISSION_MODE;
|
|
225
222
|
const spawned = await agentManager.spawn({
|
|
226
223
|
task: args.task,
|
|
227
224
|
parent: context.agent_id,
|
|
@@ -229,6 +226,7 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
229
226
|
topics: args.topics ?? [],
|
|
230
227
|
config: args.config,
|
|
231
228
|
cwd: args.cwd ?? context.cwd,
|
|
229
|
+
permissionMode: (parentPermissionMode || undefined),
|
|
232
230
|
});
|
|
233
231
|
return {
|
|
234
232
|
content: [
|
|
@@ -236,6 +234,7 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
236
234
|
type: "text",
|
|
237
235
|
text: JSON.stringify({
|
|
238
236
|
agent_id: spawned.id,
|
|
237
|
+
name: spawned.agent.name,
|
|
239
238
|
task_id: spawned.agent.task_id,
|
|
240
239
|
session_id: spawned.session_id,
|
|
241
240
|
}),
|
|
@@ -361,14 +360,18 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
361
360
|
limit: limit,
|
|
362
361
|
includeAcknowledged: args.include_acknowledged ?? false,
|
|
363
362
|
});
|
|
364
|
-
const formattedInternalMessages = internalMessages.map((msg) =>
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
363
|
+
const formattedInternalMessages = internalMessages.map((msg) => {
|
|
364
|
+
const fromAgent = msg.from.agent_id ? agentManager.get(msg.from.agent_id) : undefined;
|
|
365
|
+
return {
|
|
366
|
+
id: msg.id,
|
|
367
|
+
from: `agent:${msg.from.agent_id}`,
|
|
368
|
+
from_name: fromAgent?.name,
|
|
369
|
+
content: msg.content.length > 500 ? msg.content.substring(0, 500) : msg.content,
|
|
370
|
+
timestamp: msg.timestamp,
|
|
371
|
+
truncated: msg.truncated || msg.content.length > 500,
|
|
372
|
+
correlation_id: msg.correlation_id,
|
|
373
|
+
};
|
|
374
|
+
});
|
|
372
375
|
// Get peer messages if peerManager is available
|
|
373
376
|
let formattedPeerMessages = [];
|
|
374
377
|
if (peerManager) {
|
|
@@ -434,12 +437,14 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
434
437
|
// Apply search
|
|
435
438
|
if (search) {
|
|
436
439
|
agents = agents.filter((a) => a.id.toLowerCase().includes(search) ||
|
|
440
|
+
a.name?.toLowerCase().includes(search) ||
|
|
437
441
|
a.task?.toLowerCase().includes(search));
|
|
438
442
|
}
|
|
439
443
|
for (const agent of agents) {
|
|
440
444
|
entries.push({
|
|
441
445
|
type: "agent",
|
|
442
446
|
id: agent.id,
|
|
447
|
+
name: agent.name,
|
|
443
448
|
summary: agent.task ?? "No task description",
|
|
444
449
|
state: agent.state,
|
|
445
450
|
});
|
|
@@ -508,6 +513,7 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
508
513
|
const shouldIncludeChildren = args.depth === undefined || currentDepth < args.depth;
|
|
509
514
|
return {
|
|
510
515
|
agent_id: node.agent.id,
|
|
516
|
+
name: node.agent.name,
|
|
511
517
|
task: node.agent.task ?? "No task",
|
|
512
518
|
state: node.agent.state,
|
|
513
519
|
children: shouldIncludeChildren
|
|
@@ -565,6 +571,7 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
565
571
|
type: "text",
|
|
566
572
|
text: JSON.stringify({
|
|
567
573
|
id: agent.id,
|
|
574
|
+
name: agent.name,
|
|
568
575
|
session_id: agent.session_id,
|
|
569
576
|
task: agent.task ?? "No task",
|
|
570
577
|
state: agent.state,
|
|
@@ -608,9 +615,10 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
608
615
|
for (const child of children) {
|
|
609
616
|
await stopRecursive(child.id);
|
|
610
617
|
}
|
|
611
|
-
//
|
|
618
|
+
// Capture name before stopping
|
|
619
|
+
const agentName = agent.name;
|
|
612
620
|
await agentManager.terminate(agentId, args.reason ?? "cancelled");
|
|
613
|
-
stoppedAgents.push(agentId);
|
|
621
|
+
stoppedAgents.push({ agent_id: agentId, name: agentName });
|
|
614
622
|
}
|
|
615
623
|
await stopRecursive(args.agent_id);
|
|
616
624
|
return {
|
|
@@ -627,73 +635,6 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
627
635
|
});
|
|
628
636
|
}
|
|
629
637
|
// ─────────────────────────────────────────────────────────────────
|
|
630
|
-
// Tool: create_task (requires task.create capability)
|
|
631
|
-
// ─────────────────────────────────────────────────────────────────
|
|
632
|
-
if (shouldRegisterTool("create_task")) {
|
|
633
|
-
server.registerTool("create_task", {
|
|
634
|
-
description: "Create a new task",
|
|
635
|
-
inputSchema: CreateTaskSchema,
|
|
636
|
-
}, async (args) => {
|
|
637
|
-
try {
|
|
638
|
-
const task = taskManager.create({
|
|
639
|
-
description: args.description,
|
|
640
|
-
created_by: context.agent_id,
|
|
641
|
-
parent_task: args.parent_task,
|
|
642
|
-
inputs: args.inputs,
|
|
643
|
-
});
|
|
644
|
-
return {
|
|
645
|
-
content: [
|
|
646
|
-
{
|
|
647
|
-
type: "text",
|
|
648
|
-
text: JSON.stringify({
|
|
649
|
-
task_id: task.id,
|
|
650
|
-
}),
|
|
651
|
-
},
|
|
652
|
-
],
|
|
653
|
-
};
|
|
654
|
-
}
|
|
655
|
-
catch (error) {
|
|
656
|
-
throw new MCPToolError(`Failed to create task: ${error}`, "INVALID_INPUT");
|
|
657
|
-
}
|
|
658
|
-
});
|
|
659
|
-
}
|
|
660
|
-
// ─────────────────────────────────────────────────────────────────
|
|
661
|
-
// Tool: get_task (always allowed - observability)
|
|
662
|
-
// ─────────────────────────────────────────────────────────────────
|
|
663
|
-
if (shouldRegisterTool("get_task")) {
|
|
664
|
-
server.registerTool("get_task", {
|
|
665
|
-
description: "Get details of a specific task",
|
|
666
|
-
inputSchema: GetTaskSchema,
|
|
667
|
-
}, async (args) => {
|
|
668
|
-
const task = taskManager.get(args.task_id);
|
|
669
|
-
if (!task) {
|
|
670
|
-
throw new MCPToolError(`Task not found: ${args.task_id}`, "TASK_NOT_FOUND");
|
|
671
|
-
}
|
|
672
|
-
// Use completed_at, started_at, or created_at as last update
|
|
673
|
-
const updatedAt = task.completed_at ?? task.started_at ?? task.created_at;
|
|
674
|
-
return {
|
|
675
|
-
content: [
|
|
676
|
-
{
|
|
677
|
-
type: "text",
|
|
678
|
-
text: JSON.stringify({
|
|
679
|
-
id: task.id,
|
|
680
|
-
description: task.description,
|
|
681
|
-
status: task.status,
|
|
682
|
-
assigned_agent: task.assigned_agent,
|
|
683
|
-
parent_task: task.parent_task,
|
|
684
|
-
subtasks: task.subtasks ?? [],
|
|
685
|
-
inputs: task.inputs,
|
|
686
|
-
outputs: task.outputs,
|
|
687
|
-
artifacts: task.artifacts,
|
|
688
|
-
created_at: task.created_at,
|
|
689
|
-
updated_at: updatedAt,
|
|
690
|
-
}),
|
|
691
|
-
},
|
|
692
|
-
],
|
|
693
|
-
};
|
|
694
|
-
});
|
|
695
|
-
}
|
|
696
|
-
// ─────────────────────────────────────────────────────────────────
|
|
697
638
|
// Tool: send_peer_message (requires msg.send capability)
|
|
698
639
|
// ─────────────────────────────────────────────────────────────────
|
|
699
640
|
if (shouldRegisterTool("send_peer_message")) {
|
|
@@ -984,4 +925,91 @@ export function createMCPServer(context, services, config = {}) {
|
|
|
984
925
|
close,
|
|
985
926
|
};
|
|
986
927
|
}
|
|
928
|
+
/**
|
|
929
|
+
* Creates a thin-client MCP server where every tool handler calls
|
|
930
|
+
* the main server via MAP WebSocket RPC instead of using local services.
|
|
931
|
+
*
|
|
932
|
+
* Tool schemas, descriptions, and role filtering remain the same.
|
|
933
|
+
* Only the handler bodies change — they forward to `_macro/mcp/*` extensions.
|
|
934
|
+
*/
|
|
935
|
+
export function createMCPServerThinClient(context, mapCallFn, config = {}) {
|
|
936
|
+
const { name = "macro-agent-mcp", version = "1.0.0" } = config;
|
|
937
|
+
const server = new McpServer({ name, version }, { capabilities: { tools: {} } });
|
|
938
|
+
/**
|
|
939
|
+
* Helper: wrap args with agent context for the bridge handler.
|
|
940
|
+
*/
|
|
941
|
+
function withContext(args) {
|
|
942
|
+
return { ...args, context };
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* Helper: create a tool handler that forwards to a MAP bridge extension.
|
|
946
|
+
*/
|
|
947
|
+
function bridgeTool(toolName, schema, description, mapMethod, options) {
|
|
948
|
+
server.registerTool(toolName, { description, inputSchema: schema }, async (args) => {
|
|
949
|
+
try {
|
|
950
|
+
const result = await mapCallFn(mapMethod, withContext(args), options);
|
|
951
|
+
return {
|
|
952
|
+
content: [{ type: "text", text: JSON.stringify(result) }],
|
|
953
|
+
};
|
|
954
|
+
}
|
|
955
|
+
catch (error) {
|
|
956
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
957
|
+
throw new MCPToolError(`${toolName} failed: ${message}`, "ROUTING_FAILED");
|
|
958
|
+
}
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
// Register all tools pointing to their _macro/mcp/* bridge counterparts
|
|
962
|
+
bridgeTool("spawn_agent", SpawnAgentSchema, "Spawn a child agent to work on a subtask", "_macro/mcp/spawn_agent");
|
|
963
|
+
bridgeTool("emit_status", EmitStatusSchema, "Report a status milestone (started, checkpoint, completed, failed, blocked)", "_macro/mcp/emit_status");
|
|
964
|
+
bridgeTool("send_message", SendMessageSchema, "Send a message to another agent, task, or topic", "_macro/mcp/send_message");
|
|
965
|
+
bridgeTool("check_messages", CheckMessagesSchema, "Check pending messages in your inbox", "_macro/mcp/check_messages");
|
|
966
|
+
bridgeTool("query_index", QueryIndexSchema, "Search for agents and tasks", "_macro/mcp/query_index");
|
|
967
|
+
bridgeTool("get_hierarchy", GetHierarchySchema, "View the agent hierarchy tree", "_macro/mcp/get_hierarchy");
|
|
968
|
+
bridgeTool("get_agent_summary", GetAgentSummarySchema, "Get detailed summary of a specific agent", "_macro/mcp/get_agent_summary");
|
|
969
|
+
bridgeTool("stop_agent", StopAgentSchema, "Stop a child agent in your subtree", "_macro/mcp/stop_agent");
|
|
970
|
+
bridgeTool("done", DoneSchema, DONE_TOOL_INFO.description, "_macro/mcp/done");
|
|
971
|
+
bridgeTool("inject_context", InjectContextSchema, INJECT_CONTEXT_TOOL_INFO.description, "_macro/mcp/inject_context");
|
|
972
|
+
bridgeTool("wait_for_activity", WaitForActivitySchema, WAIT_FOR_ACTIVITY_TOOL_INFO.description, "_macro/mcp/wait_for_activity", { timeoutMs: 65000 }); // Extra buffer for long-poll
|
|
973
|
+
bridgeTool("claim_task", ClaimTaskSchema, CLAIM_TASK_TOOL_INFO.description, "_macro/mcp/claim_task");
|
|
974
|
+
bridgeTool("unclaim_task", UnclaimTaskSchema, UNCLAIM_TASK_TOOL_INFO.description, "_macro/mcp/unclaim_task");
|
|
975
|
+
bridgeTool("list_claimable_tasks", ListClaimableTasksSchema, LIST_CLAIMABLE_TASKS_TOOL_INFO.description, "_macro/mcp/list_claimable_tasks");
|
|
976
|
+
bridgeTool("send_peer_message", SendPeerMessageSchema, "Send a fire-and-forget message to another macro-agent (peer)", "_macro/mcp/send_peer_message");
|
|
977
|
+
bridgeTool("send_peer_request", SendPeerRequestSchema, "Send a request to another macro-agent (peer) and wait for response", "_macro/mcp/send_peer_request");
|
|
978
|
+
bridgeTool("respond_to_peer_request", RespondToPeerRequestSchema, "Respond to an incoming peer request", "_macro/mcp/respond_to_peer_request");
|
|
979
|
+
// ─────────────────────────────────────────────────────────────────
|
|
980
|
+
// Server Lifecycle
|
|
981
|
+
// ─────────────────────────────────────────────────────────────────
|
|
982
|
+
let transport = null;
|
|
983
|
+
async function start() {
|
|
984
|
+
// Discover dynamic task tools from the server before connecting.
|
|
985
|
+
// This ensures we only register tools the server actually supports
|
|
986
|
+
// (e.g. memory backend = 4 tools, OpenTasks = 7 tools, none = 0).
|
|
987
|
+
try {
|
|
988
|
+
const result = await mapCallFn("_macro/mcp/task_tools_list", withContext({}));
|
|
989
|
+
if (result?.tools?.length > 0) {
|
|
990
|
+
const DynamicTaskParamsSchema = {
|
|
991
|
+
params: z.record(z.string(), z.unknown()).optional()
|
|
992
|
+
.describe("Tool parameters (validated by the server-side handler)"),
|
|
993
|
+
};
|
|
994
|
+
for (const tool of result.tools) {
|
|
995
|
+
bridgeTool(tool.name, DynamicTaskParamsSchema, tool.description, `_macro/mcp/task_tool/${tool.name}`);
|
|
996
|
+
}
|
|
997
|
+
debugLog(`[MCP] Registered ${result.tools.length} dynamic task tools from server`);
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
catch (error) {
|
|
1001
|
+
// Server may not support task tools — continue without them
|
|
1002
|
+
debugLog(`[MCP] Failed to discover task tools: ${error instanceof Error ? error.message : error}`);
|
|
1003
|
+
}
|
|
1004
|
+
transport = new StdioServerTransport();
|
|
1005
|
+
await server.connect(transport);
|
|
1006
|
+
}
|
|
1007
|
+
async function close() {
|
|
1008
|
+
if (transport) {
|
|
1009
|
+
await server.close();
|
|
1010
|
+
transport = null;
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
return { server, start, close };
|
|
1014
|
+
}
|
|
987
1015
|
//# sourceMappingURL=mcp-server.js.map
|