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,14 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Generate a stable, deterministic instance ID from a directory path.
|
|
5
|
+
*
|
|
6
|
+
* This ensures the same project always uses the same EventStore,
|
|
7
|
+
* so agents and sessions persist across server restarts.
|
|
8
|
+
*/
|
|
9
|
+
export function getStableInstanceId(cwd) {
|
|
10
|
+
const normalizedPath = resolve(cwd);
|
|
11
|
+
const hash = createHash("sha256").update(normalizedPath).digest("hex").slice(0, 12);
|
|
12
|
+
return `inst_${hash}`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=stable-instance-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stable-instance-id.js","sourceRoot":"","sources":["../../src/cli/stable-instance-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,QAAQ,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -1,14 +1,52 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Configuration Loader
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Layered configuration system with priority (highest to lowest):
|
|
5
|
+
* 1. Environment variables (MACRO_*, OPENTASKS_*)
|
|
6
|
+
* 2. Project config: .multiagent/config.json
|
|
7
|
+
* 3. Global config: ~/.multiagent/config.json
|
|
5
8
|
*
|
|
6
9
|
* @module config/project-config
|
|
7
10
|
*/
|
|
8
11
|
/**
|
|
9
|
-
*
|
|
12
|
+
* Typed configuration schema for multiagent.
|
|
10
13
|
*
|
|
11
|
-
* Loaded from .
|
|
14
|
+
* Loaded from .multiagent/config.json (project or global).
|
|
15
|
+
* Environment variables override file-based config.
|
|
16
|
+
*/
|
|
17
|
+
export interface MultiagentConfig {
|
|
18
|
+
/** Team template name to load on startup */
|
|
19
|
+
team?: string;
|
|
20
|
+
/** Server port (default: 3001) */
|
|
21
|
+
port?: number;
|
|
22
|
+
/** Server host (default: "localhost") */
|
|
23
|
+
host?: string;
|
|
24
|
+
/** Authentication config */
|
|
25
|
+
auth?: {
|
|
26
|
+
/** Disable auth entirely */
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
/** Server secret token */
|
|
29
|
+
secret?: string;
|
|
30
|
+
};
|
|
31
|
+
/** Task backend config */
|
|
32
|
+
task?: {
|
|
33
|
+
/** Backend type: "memory" | "opentasks" */
|
|
34
|
+
backend?: string;
|
|
35
|
+
/** OpenTasks-specific config */
|
|
36
|
+
opentasks?: {
|
|
37
|
+
/** Path to OpenTasks daemon socket */
|
|
38
|
+
socket_path?: string;
|
|
39
|
+
/** Auto-start central daemon (default: true) */
|
|
40
|
+
auto_start?: boolean;
|
|
41
|
+
/** Central daemon location (default: ~/.multiagent/opentasks) */
|
|
42
|
+
central_path?: string;
|
|
43
|
+
/** Auto-connect project .opentasks/ on agent spawn (default: true) */
|
|
44
|
+
connect_on_spawn?: boolean;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Legacy project config interface (backwards compatibility).
|
|
12
50
|
*/
|
|
13
51
|
export interface ProjectConfig {
|
|
14
52
|
/** Team template name to load on startup */
|
|
@@ -17,18 +55,24 @@ export interface ProjectConfig {
|
|
|
17
55
|
[key: string]: unknown;
|
|
18
56
|
}
|
|
19
57
|
/** Config directory name */
|
|
20
|
-
export declare const CONFIG_DIR = ".
|
|
58
|
+
export declare const CONFIG_DIR = ".multiagent";
|
|
21
59
|
/** Config file name */
|
|
22
60
|
export declare const CONFIG_FILE = "config.json";
|
|
23
61
|
/**
|
|
24
62
|
* Get the project config file path.
|
|
25
63
|
*
|
|
26
64
|
* @param projectPath - Project root directory (default: process.cwd())
|
|
27
|
-
* @returns Absolute path to .
|
|
65
|
+
* @returns Absolute path to .multiagent/config.json
|
|
28
66
|
*/
|
|
29
67
|
export declare function getProjectConfigPath(projectPath?: string): string;
|
|
30
68
|
/**
|
|
31
|
-
*
|
|
69
|
+
* Get the global config file path.
|
|
70
|
+
*
|
|
71
|
+
* @returns Absolute path to ~/.multiagent/config.json
|
|
72
|
+
*/
|
|
73
|
+
export declare function getGlobalConfigPath(): string;
|
|
74
|
+
/**
|
|
75
|
+
* Load project configuration from .multiagent/config.json.
|
|
32
76
|
*
|
|
33
77
|
* Returns empty config if the file doesn't exist.
|
|
34
78
|
* Throws on invalid JSON.
|
|
@@ -37,6 +81,29 @@ export declare function getProjectConfigPath(projectPath?: string): string;
|
|
|
37
81
|
* @returns Parsed ProjectConfig
|
|
38
82
|
*/
|
|
39
83
|
export declare function loadProjectConfig(projectPath?: string): ProjectConfig;
|
|
84
|
+
/**
|
|
85
|
+
* Load global configuration from ~/.multiagent/config.json.
|
|
86
|
+
*
|
|
87
|
+
* Returns empty config if the file doesn't exist.
|
|
88
|
+
* Throws on invalid JSON.
|
|
89
|
+
*
|
|
90
|
+
* @returns Parsed config
|
|
91
|
+
*/
|
|
92
|
+
export declare function loadGlobalConfig(): MultiagentConfig;
|
|
93
|
+
/**
|
|
94
|
+
* Load merged configuration with layered priority:
|
|
95
|
+
* 1. Environment variables (highest)
|
|
96
|
+
* 2. Project .multiagent/config.json
|
|
97
|
+
* 3. Global ~/.multiagent/config.json (lowest)
|
|
98
|
+
*
|
|
99
|
+
* Only server-level settings are merged. Agent-level env vars
|
|
100
|
+
* (MACRO_AGENT_ID, MACRO_SERVER_URL, etc.) are internal wiring
|
|
101
|
+
* and not part of this config.
|
|
102
|
+
*
|
|
103
|
+
* @param projectPath - Project root directory (default: process.cwd())
|
|
104
|
+
* @returns Fully merged MultiagentConfig
|
|
105
|
+
*/
|
|
106
|
+
export declare function loadMergedConfig(projectPath?: string): MultiagentConfig;
|
|
40
107
|
export type ProjectConfigErrorCode = "PARSE_ERROR" | "INVALID_FORMAT";
|
|
41
108
|
export declare class ProjectConfigError extends Error {
|
|
42
109
|
readonly code: ProjectConfigErrorCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/config/project-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/config/project-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4BAA4B;IAC5B,IAAI,CAAC,EAAE;QACL,4BAA4B;QAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,0BAA0B;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,0BAA0B;IAC1B,IAAI,CAAC,EAAE;QACL,2CAA2C;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gCAAgC;QAChC,SAAS,CAAC,EAAE;YACV,sCAAsC;YACtC,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,gDAAgD;YAChD,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,iEAAiE;YACjE,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,sEAAsE;YACtE,gBAAgB,CAAC,EAAE,OAAO,CAAC;SAC5B,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,4BAA4B;AAC5B,eAAO,MAAM,UAAU,gBAAgB,CAAC;AAExC,uBAAuB;AACvB,eAAO,MAAM,WAAW,gBAAgB,CAAC;AA0CzC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,CAErE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAEnD;AAsCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAgCvE;AAMD,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAEtE,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,IAAI,EAAE,sBAAsB;aAC5B,UAAU,EAAE,MAAM;gBAFlC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,sBAAsB,EAC5B,UAAU,EAAE,MAAM;CAKrC"}
|
|
@@ -1,34 +1,75 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Configuration Loader
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Layered configuration system with priority (highest to lowest):
|
|
5
|
+
* 1. Environment variables (MACRO_*, OPENTASKS_*)
|
|
6
|
+
* 2. Project config: .multiagent/config.json
|
|
7
|
+
* 3. Global config: ~/.multiagent/config.json
|
|
5
8
|
*
|
|
6
9
|
* @module config/project-config
|
|
7
10
|
*/
|
|
8
11
|
import * as fs from "fs";
|
|
12
|
+
import * as os from "os";
|
|
9
13
|
import * as path from "path";
|
|
10
14
|
// =============================================================================
|
|
11
15
|
// Constants
|
|
12
16
|
// =============================================================================
|
|
13
17
|
/** Config directory name */
|
|
14
|
-
export const CONFIG_DIR = ".
|
|
18
|
+
export const CONFIG_DIR = ".multiagent";
|
|
15
19
|
/** Config file name */
|
|
16
20
|
export const CONFIG_FILE = "config.json";
|
|
17
21
|
// =============================================================================
|
|
18
|
-
// Loader
|
|
22
|
+
// JSON Loader (shared)
|
|
23
|
+
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Load and parse a JSON config file.
|
|
26
|
+
* Returns empty object if file doesn't exist.
|
|
27
|
+
* Throws on invalid JSON.
|
|
28
|
+
*/
|
|
29
|
+
function loadJsonConfig(configPath) {
|
|
30
|
+
if (!fs.existsSync(configPath)) {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
const raw = fs.readFileSync(configPath, "utf-8");
|
|
34
|
+
try {
|
|
35
|
+
const parsed = JSON.parse(raw);
|
|
36
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
37
|
+
throw new ProjectConfigError(`Config must be a JSON object, got ${Array.isArray(parsed) ? "array" : typeof parsed}`, "INVALID_FORMAT", configPath);
|
|
38
|
+
}
|
|
39
|
+
return parsed;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (error instanceof ProjectConfigError)
|
|
43
|
+
throw error;
|
|
44
|
+
throw new ProjectConfigError(`Failed to parse ${configPath}: ${error instanceof Error ? error.message : String(error)}`, "PARSE_ERROR", configPath);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// =============================================================================
|
|
48
|
+
// Path Resolution
|
|
19
49
|
// =============================================================================
|
|
20
50
|
/**
|
|
21
51
|
* Get the project config file path.
|
|
22
52
|
*
|
|
23
53
|
* @param projectPath - Project root directory (default: process.cwd())
|
|
24
|
-
* @returns Absolute path to .
|
|
54
|
+
* @returns Absolute path to .multiagent/config.json
|
|
25
55
|
*/
|
|
26
56
|
export function getProjectConfigPath(projectPath) {
|
|
27
57
|
const root = projectPath ?? process.cwd();
|
|
28
58
|
return path.join(root, CONFIG_DIR, CONFIG_FILE);
|
|
29
59
|
}
|
|
30
60
|
/**
|
|
31
|
-
*
|
|
61
|
+
* Get the global config file path.
|
|
62
|
+
*
|
|
63
|
+
* @returns Absolute path to ~/.multiagent/config.json
|
|
64
|
+
*/
|
|
65
|
+
export function getGlobalConfigPath() {
|
|
66
|
+
return path.join(os.homedir(), CONFIG_DIR, CONFIG_FILE);
|
|
67
|
+
}
|
|
68
|
+
// =============================================================================
|
|
69
|
+
// Individual Loaders
|
|
70
|
+
// =============================================================================
|
|
71
|
+
/**
|
|
72
|
+
* Load project configuration from .multiagent/config.json.
|
|
32
73
|
*
|
|
33
74
|
* Returns empty config if the file doesn't exist.
|
|
34
75
|
* Throws on invalid JSON.
|
|
@@ -37,23 +78,85 @@ export function getProjectConfigPath(projectPath) {
|
|
|
37
78
|
* @returns Parsed ProjectConfig
|
|
38
79
|
*/
|
|
39
80
|
export function loadProjectConfig(projectPath) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
81
|
+
return loadJsonConfig(getProjectConfigPath(projectPath));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Load global configuration from ~/.multiagent/config.json.
|
|
85
|
+
*
|
|
86
|
+
* Returns empty config if the file doesn't exist.
|
|
87
|
+
* Throws on invalid JSON.
|
|
88
|
+
*
|
|
89
|
+
* @returns Parsed config
|
|
90
|
+
*/
|
|
91
|
+
export function loadGlobalConfig() {
|
|
92
|
+
return loadJsonConfig(getGlobalConfigPath());
|
|
93
|
+
}
|
|
94
|
+
// =============================================================================
|
|
95
|
+
// Merged Config (layered)
|
|
96
|
+
// =============================================================================
|
|
97
|
+
/**
|
|
98
|
+
* Deep merge two objects. Source values override target values.
|
|
99
|
+
* Only merges plain objects recursively; arrays and primitives are replaced.
|
|
100
|
+
*/
|
|
101
|
+
function deepMerge(target, source) {
|
|
102
|
+
const result = { ...target };
|
|
103
|
+
for (const key of Object.keys(source)) {
|
|
104
|
+
const sourceVal = source[key];
|
|
105
|
+
const targetVal = result[key];
|
|
106
|
+
if (sourceVal !== undefined &&
|
|
107
|
+
sourceVal !== null &&
|
|
108
|
+
typeof sourceVal === "object" &&
|
|
109
|
+
!Array.isArray(sourceVal) &&
|
|
110
|
+
typeof targetVal === "object" &&
|
|
111
|
+
targetVal !== null &&
|
|
112
|
+
!Array.isArray(targetVal)) {
|
|
113
|
+
result[key] = deepMerge(targetVal, sourceVal);
|
|
114
|
+
}
|
|
115
|
+
else if (sourceVal !== undefined) {
|
|
116
|
+
result[key] = sourceVal;
|
|
49
117
|
}
|
|
50
|
-
return parsed;
|
|
51
118
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Load merged configuration with layered priority:
|
|
123
|
+
* 1. Environment variables (highest)
|
|
124
|
+
* 2. Project .multiagent/config.json
|
|
125
|
+
* 3. Global ~/.multiagent/config.json (lowest)
|
|
126
|
+
*
|
|
127
|
+
* Only server-level settings are merged. Agent-level env vars
|
|
128
|
+
* (MACRO_AGENT_ID, MACRO_SERVER_URL, etc.) are internal wiring
|
|
129
|
+
* and not part of this config.
|
|
130
|
+
*
|
|
131
|
+
* @param projectPath - Project root directory (default: process.cwd())
|
|
132
|
+
* @returns Fully merged MultiagentConfig
|
|
133
|
+
*/
|
|
134
|
+
export function loadMergedConfig(projectPath) {
|
|
135
|
+
const globalConfig = loadGlobalConfig();
|
|
136
|
+
const projectConfig = loadProjectConfig(projectPath);
|
|
137
|
+
// Layer 1: global (lowest priority)
|
|
138
|
+
// Layer 2: project overrides global
|
|
139
|
+
const merged = deepMerge(globalConfig, projectConfig);
|
|
140
|
+
// Layer 3: env vars override everything (server-level only)
|
|
141
|
+
if (process.env.MACRO_TASK_BACKEND) {
|
|
142
|
+
merged.task = { ...(merged.task ?? {}), backend: process.env.MACRO_TASK_BACKEND };
|
|
143
|
+
}
|
|
144
|
+
if (process.env.OPENTASKS_SOCKET_PATH) {
|
|
145
|
+
merged.task = {
|
|
146
|
+
...(merged.task ?? {}),
|
|
147
|
+
opentasks: {
|
|
148
|
+
...(merged.task?.opentasks ?? {}),
|
|
149
|
+
socket_path: process.env.OPENTASKS_SOCKET_PATH,
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
if (process.env.MACRO_SERVER_SECRET) {
|
|
154
|
+
merged.auth = { ...(merged.auth ?? {}), secret: process.env.MACRO_SERVER_SECRET };
|
|
155
|
+
}
|
|
156
|
+
if (process.env.MACRO_NO_AUTH === "true") {
|
|
157
|
+
merged.auth = { ...(merged.auth ?? {}), disabled: true };
|
|
56
158
|
}
|
|
159
|
+
return merged;
|
|
57
160
|
}
|
|
58
161
|
export class ProjectConfigError extends Error {
|
|
59
162
|
code;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/config/project-config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/config/project-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,17 @@ export interface ACPOverMAPConfig {
|
|
|
35
35
|
eventStore: EventStore;
|
|
36
36
|
taskManager: TaskManager;
|
|
37
37
|
defaultCwd?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Callback when a new agent is created via session/new or session/loadSession.
|
|
40
|
+
* Used by MAPAdapter to emit agent.registered events to all subscribers.
|
|
41
|
+
*/
|
|
42
|
+
onAgentRegistered?: (agent: {
|
|
43
|
+
id: string;
|
|
44
|
+
name?: string;
|
|
45
|
+
role?: string;
|
|
46
|
+
parent?: string;
|
|
47
|
+
metadata?: Record<string, unknown>;
|
|
48
|
+
}) => void;
|
|
38
49
|
}
|
|
39
50
|
/**
|
|
40
51
|
* Callback for emitting ACP notifications during request processing.
|
|
@@ -46,11 +57,17 @@ export declare class ACPOverMAPHandler {
|
|
|
46
57
|
private eventStore;
|
|
47
58
|
private taskManager;
|
|
48
59
|
private defaultCwd;
|
|
60
|
+
private onAgentRegistered?;
|
|
49
61
|
/** Stream states by streamId */
|
|
50
62
|
private streams;
|
|
51
63
|
/** Session mapper for ACP session -> Agent mapping */
|
|
52
64
|
private sessionMapper;
|
|
53
65
|
constructor(config: ACPOverMAPConfig);
|
|
66
|
+
/**
|
|
67
|
+
* Notify subscribers that a new agent was registered.
|
|
68
|
+
* Looks up agent details from EventStore and calls the onAgentRegistered callback.
|
|
69
|
+
*/
|
|
70
|
+
private notifyAgentRegistered;
|
|
54
71
|
/**
|
|
55
72
|
* Abort all active streams targeting a specific agent.
|
|
56
73
|
* Called when an agent is stopped via MAP protocol to interrupt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-over-map.d.ts","sourceRoot":"","sources":["../../../src/map/adapter/acp-over-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"acp-over-map.d.ts","sourceRoot":"","sources":["../../../src/map/adapter/acp-over-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,4BAA4B,CAAC;AA8BlE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC3D,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,KAAK,IAAI,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,YAAY,EAAE,WAAW,KAAK,IAAI,CAAC;AAgBzE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAwC;IAElE,gCAAgC;IAChC,OAAO,CAAC,OAAO,CAAuC;IAEtD,sDAAsD;IACtD,OAAO,CAAC,aAAa,CAAgB;gBAEzB,MAAM,EAAE,gBAAgB;IAiBpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAW5C;;;;;OAKG;IACG,cAAc,CAClB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,WAAW,EACrB,gBAAgB,CAAC,EAAE,sBAAsB,GACxC,OAAO,CAAC,WAAW,CAAC;YAqGT,gBAAgB;YA0ChB,gBAAgB;YAwChB,iBAAiB;YAqIjB,kBAAkB;YAKlB,YAAY;YA2PZ,YAAY;YAkDZ,eAAe;IA6gB7B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IA+DzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAwCvB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQnC;;OAEG;IACH,QAAQ,IAAI,IAAI;CAMjB"}
|