macro-agent 0.1.0 → 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 +15 -0
- package/dist/acp/macro-agent.d.ts.map +1 -1
- package/dist/acp/macro-agent.js +131 -35
- 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 +17 -0
- package/dist/map/adapter/acp-over-map.d.ts.map +1 -1
- package/dist/map/adapter/acp-over-map.js +384 -23
- 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 +3 -0
- package/dist/map/adapter/map-adapter.d.ts.map +1 -1
- package/dist/map/adapter/map-adapter.js +258 -35
- 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 +2 -1
- package/dist/store/event-store.d.ts.map +1 -1
- package/dist/store/event-store.js +69 -20
- package/dist/store/event-store.js.map +1 -1
- package/dist/store/types/agents.d.ts +18 -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__/integration.test.ts +56 -31
- package/src/acp/__tests__/macro-agent.test.ts +16 -7
- package/src/acp/macro-agent.ts +170 -36
- 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 +22 -4
- package/src/map/adapter/__tests__/acp-over-map-getmodels.test.ts +355 -0
- package/src/map/adapter/__tests__/acp-over-map-history.test.ts +263 -0
- 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 +678 -66
- 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 +312 -47
- 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 +196 -1
- package/src/store/__tests__/instance.test.ts +3 -3
- package/src/store/event-store.ts +80 -21
- package/src/store/types/agents.ts +15 -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
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication Token Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides token generation, secure comparison, and per-agent
|
|
5
|
+
* token management for the macro-agent server.
|
|
6
|
+
*/
|
|
7
|
+
import * as crypto from "crypto";
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// Token Generation
|
|
10
|
+
// =============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Generate a cryptographically random hex token.
|
|
13
|
+
*/
|
|
14
|
+
export function generateToken(bytes = 32) {
|
|
15
|
+
return crypto.randomBytes(bytes).toString("hex");
|
|
16
|
+
}
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// Secure Comparison
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Constant-time string comparison to prevent timing attacks.
|
|
22
|
+
*/
|
|
23
|
+
export function secureCompare(a, b) {
|
|
24
|
+
if (a.length !== b.length) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const bufA = Buffer.from(a);
|
|
28
|
+
const bufB = Buffer.from(b);
|
|
29
|
+
return crypto.timingSafeEqual(bufA, bufB);
|
|
30
|
+
}
|
|
31
|
+
// =============================================================================
|
|
32
|
+
// Agent Token Manager
|
|
33
|
+
// =============================================================================
|
|
34
|
+
/**
|
|
35
|
+
* Manages per-agent authentication tokens.
|
|
36
|
+
*
|
|
37
|
+
* Each spawned agent gets a unique token at spawn time. The token is
|
|
38
|
+
* passed to the subprocess via environment variable and validated on
|
|
39
|
+
* every MCP bridge RPC call.
|
|
40
|
+
*/
|
|
41
|
+
export class AgentTokenManager {
|
|
42
|
+
tokens = new Map();
|
|
43
|
+
/**
|
|
44
|
+
* Create and store a token for an agent. Returns the generated token.
|
|
45
|
+
*/
|
|
46
|
+
createToken(agentId) {
|
|
47
|
+
const token = generateToken();
|
|
48
|
+
this.tokens.set(agentId, token);
|
|
49
|
+
return token;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Verify that a token matches the one stored for an agent.
|
|
53
|
+
*/
|
|
54
|
+
verifyToken(agentId, token) {
|
|
55
|
+
const stored = this.tokens.get(agentId);
|
|
56
|
+
if (!stored)
|
|
57
|
+
return false;
|
|
58
|
+
return secureCompare(stored, token);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Revoke an agent's token (e.g., on terminate).
|
|
62
|
+
*/
|
|
63
|
+
revokeToken(agentId) {
|
|
64
|
+
return this.tokens.delete(agentId);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if an agent has a registered token.
|
|
68
|
+
*/
|
|
69
|
+
hasToken(agentId) {
|
|
70
|
+
return this.tokens.has(agentId);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/auth/token.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAK,GAAG,EAAE;IACtC,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C;;OAEG;IACH,WAAW,CAAC,OAAe;QACzB,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe,EAAE,KAAa;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;CACF"}
|
package/dist/cli/acp.d.ts
CHANGED
|
@@ -37,27 +37,6 @@
|
|
|
37
37
|
* args: ['multiagent', '--acp'],
|
|
38
38
|
* });
|
|
39
39
|
*/
|
|
40
|
-
export
|
|
41
|
-
|
|
42
|
-
cwd?: string;
|
|
43
|
-
/** Stdio ACP-only mode (for embedded use with acp-factory) */
|
|
44
|
-
acp?: boolean;
|
|
45
|
-
/** Port for server (default: 3001) */
|
|
46
|
-
port?: number;
|
|
47
|
-
/** Host for server (default: localhost) */
|
|
48
|
-
host?: string;
|
|
49
|
-
/** Instance ID to reuse an existing event store (omit for new instance) */
|
|
50
|
-
instanceId?: string;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Parse command line arguments.
|
|
54
|
-
* @param argv Optional array of arguments (defaults to process.argv.slice(2))
|
|
55
|
-
*/
|
|
56
|
-
export declare function parseArgs(argv?: string[]): ACPServerOptions;
|
|
57
|
-
/**
|
|
58
|
-
* Generate a stable instance ID from the working directory.
|
|
59
|
-
* This ensures the same project always uses the same EventStore,
|
|
60
|
-
* so agents and sessions persist across server restarts.
|
|
61
|
-
*/
|
|
62
|
-
export declare function getStableInstanceId(cwd: string): string;
|
|
40
|
+
export { parseArgs, type ACPServerOptions } from "./parse-args.js";
|
|
41
|
+
export { getStableInstanceId } from "./stable-instance-id.js";
|
|
63
42
|
//# sourceMappingURL=acp.d.ts.map
|
package/dist/cli/acp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAsCH,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/cli/acp.js
CHANGED
|
@@ -37,11 +37,7 @@
|
|
|
37
37
|
* args: ['multiagent', '--acp'],
|
|
38
38
|
* });
|
|
39
39
|
*/
|
|
40
|
-
import { readFileSync } from "node:fs";
|
|
41
|
-
import { createHash } from "node:crypto";
|
|
42
|
-
import { dirname, join, resolve } from "node:path";
|
|
43
40
|
import { Readable } from "node:stream";
|
|
44
|
-
import { fileURLToPath } from "node:url";
|
|
45
41
|
import { AgentSideConnection, ndJsonStream, } from "@agentclientprotocol/sdk";
|
|
46
42
|
import { createEventStore } from "../store/event-store.js";
|
|
47
43
|
import { createAgentManager } from "../agent/agent-manager.js";
|
|
@@ -51,52 +47,15 @@ import { MacroAgent } from "../acp/macro-agent.js";
|
|
|
51
47
|
import { createCombinedServer, } from "../server/combined-server.js";
|
|
52
48
|
import { createActivityWatcher, subscribeAgentToEvents, MONITOR_DEFAULT_EVENT_TYPES, } from "../activity/index.js";
|
|
53
49
|
import { createWakeHandler, createSessionProviderFromAgentManager, } from "../agent/wake.js";
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
64
|
-
const pkg = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf-8"));
|
|
65
|
-
console.log(pkg.version);
|
|
66
|
-
process.exit(0);
|
|
67
|
-
}
|
|
68
|
-
else if (args[i] === "--cwd" && args[i + 1]) {
|
|
69
|
-
options.cwd = args[i + 1];
|
|
70
|
-
i++;
|
|
71
|
-
}
|
|
72
|
-
else if (args[i] === "--acp") {
|
|
73
|
-
options.acp = true;
|
|
74
|
-
}
|
|
75
|
-
else if (args[i] === "--port" && args[i + 1]) {
|
|
76
|
-
options.port = parseInt(args[i + 1], 10);
|
|
77
|
-
i++;
|
|
78
|
-
}
|
|
79
|
-
else if (args[i] === "--host" && args[i + 1]) {
|
|
80
|
-
options.host = args[i + 1];
|
|
81
|
-
i++;
|
|
82
|
-
}
|
|
83
|
-
else if (args[i] === "--instance-id" && args[i + 1]) {
|
|
84
|
-
options.instanceId = args[i + 1];
|
|
85
|
-
i++;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return options;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Generate a stable instance ID from the working directory.
|
|
92
|
-
* This ensures the same project always uses the same EventStore,
|
|
93
|
-
* so agents and sessions persist across server restarts.
|
|
94
|
-
*/
|
|
95
|
-
export function getStableInstanceId(cwd) {
|
|
96
|
-
const normalizedPath = resolve(cwd);
|
|
97
|
-
const hash = createHash("sha256").update(normalizedPath).digest("hex").slice(0, 12);
|
|
98
|
-
return `inst_${hash}`;
|
|
99
|
-
}
|
|
50
|
+
// ─────────────────────────────────────────────────────────────────
|
|
51
|
+
// Configuration
|
|
52
|
+
// ─────────────────────────────────────────────────────────────────
|
|
53
|
+
import { parseArgs } from "./parse-args.js";
|
|
54
|
+
import { getStableInstanceId } from "./stable-instance-id.js";
|
|
55
|
+
import { loadMergedConfig } from "../config/project-config.js";
|
|
56
|
+
// Re-export utilities for backwards compatibility
|
|
57
|
+
export { parseArgs } from "./parse-args.js";
|
|
58
|
+
export { getStableInstanceId } from "./stable-instance-id.js";
|
|
100
59
|
// ─────────────────────────────────────────────────────────────────
|
|
101
60
|
// Stream Setup
|
|
102
61
|
// ─────────────────────────────────────────────────────────────────
|
|
@@ -226,9 +185,74 @@ async function main() {
|
|
|
226
185
|
sessionChecker,
|
|
227
186
|
wakeHandler: routerWakeHandler,
|
|
228
187
|
});
|
|
188
|
+
// Load merged config (global → project → env vars)
|
|
189
|
+
const mergedConfig = loadMergedConfig(defaultCwd);
|
|
190
|
+
// Compute server URL for thin-client MCP mode (only in server mode, not stdio ACP)
|
|
191
|
+
const serverUrl = options.acp
|
|
192
|
+
? undefined
|
|
193
|
+
: `http://${options.host ?? mergedConfig.host ?? "localhost"}:${options.port ?? mergedConfig.port ?? 3001}`;
|
|
194
|
+
// Set up authentication tokens from merged config
|
|
195
|
+
const noAuth = options.noAuth || mergedConfig.auth?.disabled === true;
|
|
196
|
+
let serverToken;
|
|
197
|
+
let agentTokenManager;
|
|
198
|
+
if (!noAuth && mergedConfig.auth?.secret) {
|
|
199
|
+
const { AgentTokenManager } = await import("../auth/token.js");
|
|
200
|
+
serverToken = mergedConfig.auth.secret;
|
|
201
|
+
agentTokenManager = new AgentTokenManager();
|
|
202
|
+
}
|
|
229
203
|
// Now create the agentManager with the real router
|
|
230
|
-
agentManager = createAgentManager(eventStore, messageRouter
|
|
204
|
+
agentManager = createAgentManager(eventStore, messageRouter, {
|
|
205
|
+
serverUrl,
|
|
206
|
+
serverToken: serverUrl ? serverToken : undefined,
|
|
207
|
+
agentTokenManager: serverUrl ? agentTokenManager : undefined,
|
|
208
|
+
taskBackend: mergedConfig.task?.backend,
|
|
209
|
+
openTasksSocketPath: mergedConfig.task?.opentasks?.socket_path,
|
|
210
|
+
});
|
|
231
211
|
const taskManager = createTaskManager(eventStore);
|
|
212
|
+
// Create task backend for dynamic task tools (create_task, get_task, etc.)
|
|
213
|
+
const { createTaskBackend, loadTaskConfigFromMerged } = await import("../task/backend/index.js");
|
|
214
|
+
const { UnifiedTaskToolProvider } = await import("../task/backend/unified-tool-provider.js");
|
|
215
|
+
let taskBackend;
|
|
216
|
+
let taskToolProvider;
|
|
217
|
+
let taskBackendShutdown;
|
|
218
|
+
// Mutable context holder for the task tool provider. Bridge handlers set
|
|
219
|
+
// this before each tool call so the provider uses the calling agent's ID.
|
|
220
|
+
// Safe because Node.js is single-threaded.
|
|
221
|
+
const taskToolContext = { agent_id: "" };
|
|
222
|
+
// Connect-on-spawn callback: auto-connect project .opentasks/ dirs to central daemon
|
|
223
|
+
let connectProject;
|
|
224
|
+
let getConnectedProjects;
|
|
225
|
+
try {
|
|
226
|
+
const taskConfig = loadTaskConfigFromMerged(mergedConfig);
|
|
227
|
+
const result = await createTaskBackend(taskConfig, eventStore);
|
|
228
|
+
taskBackend = result.backend;
|
|
229
|
+
taskBackendShutdown = result.shutdown;
|
|
230
|
+
connectProject = result.connectProject;
|
|
231
|
+
getConnectedProjects = result.getConnectedProjects;
|
|
232
|
+
taskToolProvider = new UnifiedTaskToolProvider(taskBackend, () => taskToolContext, result.openTasksClient);
|
|
233
|
+
console.error(`[acp] Task backend created: ${taskConfig.backend.type}`);
|
|
234
|
+
// Propagate runtime socket path to child agents so they skip daemon discovery
|
|
235
|
+
if (result.socketPath) {
|
|
236
|
+
agentManager.setOpenTasksSocketPath(result.socketPath);
|
|
237
|
+
}
|
|
238
|
+
// Auto-connect the server's own project directory on startup
|
|
239
|
+
if (connectProject) {
|
|
240
|
+
connectProject(defaultCwd).catch(() => { });
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch (err) {
|
|
244
|
+
// Fall back to in-memory backend if opentasks connection fails
|
|
245
|
+
console.error(`[acp] Failed to create task backend (${err}), falling back to memory`);
|
|
246
|
+
try {
|
|
247
|
+
const fallbackResult = await createTaskBackend({ backend: { type: "memory" } }, eventStore);
|
|
248
|
+
taskBackend = fallbackResult.backend;
|
|
249
|
+
taskToolProvider = new UnifiedTaskToolProvider(taskBackend, () => taskToolContext);
|
|
250
|
+
console.error(`[acp] Task backend created: memory (fallback)`);
|
|
251
|
+
}
|
|
252
|
+
catch (fallbackErr) {
|
|
253
|
+
console.error(`[acp] Memory fallback also failed: ${fallbackErr}. Task tools will be unavailable.`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
232
256
|
// Create ActivityWatcher for event-driven agent waking
|
|
233
257
|
const sessionProvider = createSessionProviderFromAgentManager(agentManager);
|
|
234
258
|
const wakeHandler = createWakeHandler(sessionProvider, agentManager);
|
|
@@ -278,6 +302,7 @@ async function main() {
|
|
|
278
302
|
// Start the ActivityWatcher
|
|
279
303
|
activityWatcher.start();
|
|
280
304
|
// Auto-subscribe Monitor agents to health events when they spawn
|
|
305
|
+
// and auto-connect project .opentasks/ directories to central daemon
|
|
281
306
|
agentManager.onLifecycleEvent((event) => {
|
|
282
307
|
if (event.type === "spawned") {
|
|
283
308
|
const agent = event.agent;
|
|
@@ -288,20 +313,52 @@ async function main() {
|
|
|
288
313
|
);
|
|
289
314
|
console.error(`[acp] Auto-subscribed Monitor ${agent.id} to health events`);
|
|
290
315
|
}
|
|
316
|
+
// Connect-on-spawn: auto-connect project .opentasks/ to central daemon
|
|
317
|
+
if (connectProject && agent.cwd) {
|
|
318
|
+
connectProject(agent.cwd).catch(() => {
|
|
319
|
+
// Non-fatal — logged inside connectProject
|
|
320
|
+
});
|
|
321
|
+
}
|
|
291
322
|
}
|
|
292
323
|
});
|
|
293
324
|
// Combined server (when --ws is enabled)
|
|
294
325
|
let combinedServer;
|
|
295
|
-
// Cleanup function
|
|
326
|
+
// Cleanup function — best-effort, each step isolated
|
|
296
327
|
const cleanup = async () => {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
328
|
+
try {
|
|
329
|
+
activityWatcher.stop();
|
|
330
|
+
}
|
|
331
|
+
catch (err) {
|
|
332
|
+
console.error(`[cleanup] ActivityWatcher stop failed: ${err}`);
|
|
333
|
+
}
|
|
300
334
|
if (combinedServer) {
|
|
301
|
-
|
|
335
|
+
try {
|
|
336
|
+
await combinedServer.stop();
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
console.error(`[cleanup] Combined server stop failed: ${err}`);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
try {
|
|
343
|
+
await agentManager.close();
|
|
344
|
+
}
|
|
345
|
+
catch (err) {
|
|
346
|
+
console.error(`[cleanup] AgentManager close failed: ${err}`);
|
|
347
|
+
}
|
|
348
|
+
if (taskBackendShutdown) {
|
|
349
|
+
try {
|
|
350
|
+
await taskBackendShutdown();
|
|
351
|
+
}
|
|
352
|
+
catch (err) {
|
|
353
|
+
console.error(`[cleanup] Task backend shutdown failed: ${err}`);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
try {
|
|
357
|
+
await eventStore.close();
|
|
358
|
+
}
|
|
359
|
+
catch (err) {
|
|
360
|
+
console.error(`[cleanup] EventStore close failed: ${err}`);
|
|
302
361
|
}
|
|
303
|
-
await agentManager.close();
|
|
304
|
-
await eventStore.close();
|
|
305
362
|
};
|
|
306
363
|
try {
|
|
307
364
|
// Handle graceful shutdown
|
|
@@ -331,10 +388,19 @@ async function main() {
|
|
|
331
388
|
}
|
|
332
389
|
else {
|
|
333
390
|
// Full server mode (default): WebSocket ACP + MAP + REST API
|
|
334
|
-
const host = options.host ?? "localhost";
|
|
335
|
-
const port = options.port ?? 3001;
|
|
336
|
-
combinedServer = createCombinedServer({ eventStore, agentManager, taskManager, messageRouter, activityWatcher }, { port, host, defaultCwd });
|
|
391
|
+
const host = options.host ?? mergedConfig.host ?? "localhost";
|
|
392
|
+
const port = options.port ?? mergedConfig.port ?? 3001;
|
|
393
|
+
combinedServer = createCombinedServer({ eventStore, agentManager, taskManager, messageRouter, activityWatcher, taskBackend, taskToolProvider, taskToolContext, agentTokenManager, getConnectedProjects }, { port, host, defaultCwd, serverToken, noAuth });
|
|
337
394
|
await combinedServer.start();
|
|
395
|
+
if (serverToken) {
|
|
396
|
+
console.error(`[acp] Server token: ${serverToken.substring(0, 8)}...`);
|
|
397
|
+
}
|
|
398
|
+
else if (noAuth) {
|
|
399
|
+
console.error(`[acp] Auth: explicitly disabled`);
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
console.error(`[acp] Auth: off (set auth.secret in config or MACRO_SERVER_SECRET to enable)`);
|
|
403
|
+
}
|
|
338
404
|
// Keep process alive - will exit via SIGINT/SIGTERM handlers
|
|
339
405
|
await new Promise(() => {
|
|
340
406
|
// Never resolves - process stays alive until signal
|
package/dist/cli/acp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -15,8 +15,9 @@ import { createAgentManager } from "../agent/agent-manager.js";
|
|
|
15
15
|
import { createTaskManager } from "../task/task-manager.js";
|
|
16
16
|
import { createMessageRouter } from "../router/message-router.js";
|
|
17
17
|
import { createAPIServer } from "../api/server.js";
|
|
18
|
-
import {
|
|
18
|
+
import { loadMergedConfig } from "../config/project-config.js";
|
|
19
19
|
import { loadTeam, TeamRuntime } from "../teams/index.js";
|
|
20
|
+
import { createTaskBackend, loadTaskConfigFromMerged } from "../task/backend/index.js";
|
|
20
21
|
// ─────────────────────────────────────────────────────────────────
|
|
21
22
|
// Formatting Helpers
|
|
22
23
|
// ─────────────────────────────────────────────────────────────────
|
|
@@ -105,14 +106,46 @@ program
|
|
|
105
106
|
.action(async (options) => {
|
|
106
107
|
console.log(chalk.blue("Starting multi-agent server..."));
|
|
107
108
|
try {
|
|
109
|
+
// Load merged config (global → project → env vars)
|
|
110
|
+
const mergedConfig = loadMergedConfig(options.cwd);
|
|
108
111
|
// Initialize services
|
|
109
112
|
const eventStore = await createEventStore({ inMemory: false });
|
|
110
113
|
const messageRouter = createMessageRouter(eventStore);
|
|
111
|
-
const
|
|
114
|
+
const serverUrl = `http://${options.host}:${options.port}`;
|
|
115
|
+
const agentManager = createAgentManager(eventStore, messageRouter, {
|
|
116
|
+
serverUrl,
|
|
117
|
+
taskBackend: mergedConfig.task?.backend,
|
|
118
|
+
openTasksSocketPath: mergedConfig.task?.opentasks?.socket_path,
|
|
119
|
+
});
|
|
112
120
|
const taskManager = createTaskManager(eventStore);
|
|
113
|
-
//
|
|
114
|
-
const
|
|
115
|
-
|
|
121
|
+
// Create task backend from merged config
|
|
122
|
+
const taskConfig = loadTaskConfigFromMerged(mergedConfig);
|
|
123
|
+
let taskBackendShutdown;
|
|
124
|
+
let connectProject;
|
|
125
|
+
try {
|
|
126
|
+
const result = await createTaskBackend(taskConfig, eventStore);
|
|
127
|
+
taskBackendShutdown = result.shutdown;
|
|
128
|
+
connectProject = result.connectProject;
|
|
129
|
+
console.log(chalk.blue(`Task backend: ${taskConfig.backend.type}`));
|
|
130
|
+
// Propagate runtime socket path to child agents so they skip daemon discovery
|
|
131
|
+
if (result.socketPath) {
|
|
132
|
+
agentManager.setOpenTasksSocketPath(result.socketPath);
|
|
133
|
+
}
|
|
134
|
+
// Auto-connect the server's own project directory on startup
|
|
135
|
+
if (connectProject) {
|
|
136
|
+
connectProject(options.cwd ?? process.cwd()).catch(() => { });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
// Fall back to in-memory backend if opentasks connection fails
|
|
141
|
+
console.log(chalk.yellow(`Task backend creation failed (${err}), falling back to memory`));
|
|
142
|
+
try {
|
|
143
|
+
await createTaskBackend({ backend: { type: "memory" } }, eventStore);
|
|
144
|
+
}
|
|
145
|
+
catch { /* non-critical */ }
|
|
146
|
+
}
|
|
147
|
+
// Determine team name: CLI flag > merged config
|
|
148
|
+
const teamName = options.team ?? mergedConfig.team;
|
|
116
149
|
// Load and initialize team if specified
|
|
117
150
|
let teamRuntime = null;
|
|
118
151
|
if (teamName) {
|
|
@@ -126,11 +159,20 @@ program
|
|
|
126
159
|
await teamRuntime.initialize();
|
|
127
160
|
console.log(chalk.green(`Team '${teamName}' loaded: ${manifest.roles.join(", ")}`));
|
|
128
161
|
}
|
|
162
|
+
// Resolve auth from merged config
|
|
163
|
+
const noAuth = mergedConfig.auth?.disabled ?? false;
|
|
164
|
+
const serverToken = noAuth ? undefined : (mergedConfig.auth?.secret ?? undefined);
|
|
129
165
|
// Create API server
|
|
130
|
-
const server = createAPIServer({ eventStore, agentManager, taskManager, messageRouter }, { port: parseInt(options.port), host: options.host });
|
|
166
|
+
const server = createAPIServer({ eventStore, agentManager, taskManager, messageRouter }, { port: parseInt(options.port), host: options.host, serverToken });
|
|
131
167
|
// Start server
|
|
132
168
|
await server.start();
|
|
133
169
|
console.log(chalk.green(`Server running at http://${options.host}:${options.port}`));
|
|
170
|
+
if (serverToken) {
|
|
171
|
+
console.log(chalk.gray(`Server token: ${serverToken.substring(0, 8)}...`));
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
console.log(chalk.yellow(`Auth: disabled (MACRO_NO_AUTH)`));
|
|
175
|
+
}
|
|
134
176
|
// Bootstrap team agents after server is running
|
|
135
177
|
if (teamRuntime) {
|
|
136
178
|
const { rootId, companionIds } = await teamRuntime.bootstrap();
|
|
@@ -139,15 +181,52 @@ program
|
|
|
139
181
|
? `, companions=${companionIds.join(", ")}`
|
|
140
182
|
: "")));
|
|
141
183
|
}
|
|
184
|
+
// Connect-on-spawn: auto-connect project .opentasks/ dirs when agents spawn
|
|
185
|
+
if (connectProject) {
|
|
186
|
+
agentManager.onLifecycleEvent((event) => {
|
|
187
|
+
if (event.type === "spawned" && event.agent.cwd && connectProject) {
|
|
188
|
+
connectProject(event.agent.cwd).catch(() => { });
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
142
192
|
console.log(chalk.gray("Press Ctrl+C to stop"));
|
|
143
|
-
// Handle shutdown
|
|
193
|
+
// Handle shutdown — best-effort, each step isolated
|
|
144
194
|
process.on("SIGINT", async () => {
|
|
145
195
|
console.log(chalk.yellow("\nShutting down..."));
|
|
146
|
-
if (teamRuntime)
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
196
|
+
if (teamRuntime) {
|
|
197
|
+
try {
|
|
198
|
+
await teamRuntime.teardown();
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
console.error(`[cleanup] Team teardown failed: ${err}`);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
await server.stop();
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
console.error(`[cleanup] Server stop failed: ${err}`);
|
|
209
|
+
}
|
|
210
|
+
try {
|
|
211
|
+
await agentManager.close();
|
|
212
|
+
}
|
|
213
|
+
catch (err) {
|
|
214
|
+
console.error(`[cleanup] AgentManager close failed: ${err}`);
|
|
215
|
+
}
|
|
216
|
+
if (taskBackendShutdown) {
|
|
217
|
+
try {
|
|
218
|
+
await taskBackendShutdown();
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
console.error(`[cleanup] Task backend shutdown failed: ${err}`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
try {
|
|
225
|
+
await eventStore.close();
|
|
226
|
+
}
|
|
227
|
+
catch (err) {
|
|
228
|
+
console.error(`[cleanup] EventStore close failed: ${err}`);
|
|
229
|
+
}
|
|
151
230
|
process.exit(0);
|
|
152
231
|
});
|
|
153
232
|
}
|
|
@@ -184,6 +263,26 @@ program
|
|
|
184
263
|
input: process.stdin,
|
|
185
264
|
output: process.stdout,
|
|
186
265
|
});
|
|
266
|
+
// Handle Ctrl+C and SIGTERM to clean up child processes
|
|
267
|
+
const cleanup = async () => {
|
|
268
|
+
console.log(chalk.yellow("\nShutting down..."));
|
|
269
|
+
try {
|
|
270
|
+
await agentManager.close();
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
console.error(`[cleanup] AgentManager close failed: ${err}`);
|
|
274
|
+
}
|
|
275
|
+
try {
|
|
276
|
+
await eventStore.close();
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
console.error(`[cleanup] EventStore close failed: ${err}`);
|
|
280
|
+
}
|
|
281
|
+
rl.close();
|
|
282
|
+
process.exit(0);
|
|
283
|
+
};
|
|
284
|
+
process.on("SIGINT", cleanup);
|
|
285
|
+
process.on("SIGTERM", cleanup);
|
|
187
286
|
const prompt = () => {
|
|
188
287
|
rl.question(chalk.cyan("You: "), async (input) => {
|
|
189
288
|
const trimmed = input.trim();
|
|
@@ -622,6 +721,21 @@ program
|
|
|
622
721
|
const messageRouter = createMessageRouter(eventStore);
|
|
623
722
|
agentManager = createAgentManager(eventStore, messageRouter);
|
|
624
723
|
const taskManager = createTaskManager(eventStore);
|
|
724
|
+
// Create task backend from merged config
|
|
725
|
+
const acpMergedConfig = loadMergedConfig(defaultCwd);
|
|
726
|
+
const taskConfig = loadTaskConfigFromMerged(acpMergedConfig);
|
|
727
|
+
let acpTaskBackendShutdown;
|
|
728
|
+
try {
|
|
729
|
+
const result = await createTaskBackend(taskConfig, eventStore);
|
|
730
|
+
acpTaskBackendShutdown = result.shutdown;
|
|
731
|
+
}
|
|
732
|
+
catch {
|
|
733
|
+
// Fall back to memory if opentasks connection fails
|
|
734
|
+
try {
|
|
735
|
+
await createTaskBackend({ backend: { type: "memory" } }, eventStore);
|
|
736
|
+
}
|
|
737
|
+
catch { /* non-critical */ }
|
|
738
|
+
}
|
|
625
739
|
// Create stdio streams for ACP communication
|
|
626
740
|
const input = Readable.toWeb(process.stdin);
|
|
627
741
|
const output = new WritableStream({
|
|
@@ -647,13 +761,31 @@ program
|
|
|
647
761
|
taskManager,
|
|
648
762
|
defaultCwd,
|
|
649
763
|
}), stream);
|
|
650
|
-
// Handle graceful shutdown
|
|
764
|
+
// Handle graceful shutdown — best-effort, each step isolated
|
|
651
765
|
const cleanup = async () => {
|
|
652
766
|
if (agentManager) {
|
|
653
|
-
|
|
767
|
+
try {
|
|
768
|
+
await agentManager.close();
|
|
769
|
+
}
|
|
770
|
+
catch (err) {
|
|
771
|
+
console.error(`[cleanup] AgentManager close failed: ${err}`);
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
if (acpTaskBackendShutdown) {
|
|
775
|
+
try {
|
|
776
|
+
await acpTaskBackendShutdown();
|
|
777
|
+
}
|
|
778
|
+
catch (err) {
|
|
779
|
+
console.error(`[cleanup] Task backend shutdown failed: ${err}`);
|
|
780
|
+
}
|
|
654
781
|
}
|
|
655
782
|
if (eventStore) {
|
|
656
|
-
|
|
783
|
+
try {
|
|
784
|
+
await eventStore.close();
|
|
785
|
+
}
|
|
786
|
+
catch (err) {
|
|
787
|
+
console.error(`[cleanup] EventStore close failed: ${err}`);
|
|
788
|
+
}
|
|
657
789
|
}
|
|
658
790
|
process.exit(0);
|
|
659
791
|
};
|