@evalops/maestro 0.10.23 → 0.10.25
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/README.md +4 -4
- package/dist/agent/agent.d.ts +2 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/keys.d.ts +2 -5
- package/dist/agent/keys.d.ts.map +1 -1
- package/dist/agent/keys.js +4 -5
- package/dist/agent/keys.js.map +1 -1
- package/dist/agent/modes.d.ts +2 -2
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +6 -7
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/providers/anthropic.d.ts.map +1 -1
- package/dist/agent/providers/anthropic.js +4 -4
- package/dist/agent/providers/anthropic.js.map +1 -1
- package/dist/agent/providers/google.js +1 -1
- package/dist/agent/swarm/executor.d.ts +2 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +208 -35
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +2 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/tool-capability-types.d.ts +36 -0
- package/dist/agent/tool-capability-types.d.ts.map +1 -0
- package/dist/agent/tool-capability-types.js +2 -0
- package/dist/agent/tool-capability-types.js.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts +13 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +28 -15
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/agent/transport/transport-utils.d.ts.map +1 -1
- package/dist/agent/transport/transport-utils.js +2 -3
- package/dist/agent/transport/transport-utils.js.map +1 -1
- package/dist/agent/transport.js +1 -1
- package/dist/agent/transport.js.map +1 -1
- package/dist/agent/type-guards.d.ts +1 -1
- package/dist/agent/type-guards.js +1 -1
- package/dist/agent/type-guards.js.map +1 -1
- package/dist/agent/types.d.ts +5 -3
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js +2 -2
- package/dist/agent/types.js.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.d.ts +31 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.js +259 -0
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -0
- package/dist/app-server/external-agent-import-api.d.ts +30 -0
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -0
- package/dist/app-server/external-agent-import-api.js +553 -0
- package/dist/app-server/external-agent-import-api.js.map +1 -0
- package/dist/app-server/host-control-api.d.ts +30 -0
- package/dist/app-server/host-control-api.d.ts.map +1 -0
- package/dist/app-server/host-control-api.js +343 -0
- package/dist/app-server/host-control-api.js.map +1 -0
- package/dist/app-server/in-process-client.d.ts +2 -2
- package/dist/app-server/in-process-client.d.ts.map +1 -1
- package/dist/app-server/in-process-client.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts +26 -0
- package/dist/app-server/network-governance-api.d.ts.map +1 -0
- package/dist/app-server/network-governance-api.js +476 -0
- package/dist/app-server/network-governance-api.js.map +1 -0
- package/dist/app-server/plugin-bundle-api.d.ts +17 -0
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -0
- package/dist/app-server/plugin-bundle-api.js +219 -0
- package/dist/app-server/plugin-bundle-api.js.map +1 -0
- package/dist/app-server/policy-control-api.d.ts +14 -0
- package/dist/app-server/policy-control-api.d.ts.map +1 -0
- package/dist/app-server/policy-control-api.js +200 -0
- package/dist/app-server/policy-control-api.js.map +1 -0
- package/dist/app-server/protocol-modes-api.d.ts +22 -0
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -0
- package/dist/app-server/protocol-modes-api.js +124 -0
- package/dist/app-server/protocol-modes-api.js.map +1 -0
- package/dist/app-server/sandbox-proof-api.d.ts +21 -0
- package/dist/app-server/sandbox-proof-api.d.ts.map +1 -0
- package/dist/app-server/sandbox-proof-api.js +127 -0
- package/dist/app-server/sandbox-proof-api.js.map +1 -0
- package/dist/app-server/session-api.d.ts +93 -3
- package/dist/app-server/session-api.d.ts.map +1 -1
- package/dist/app-server/session-api.js +706 -18
- package/dist/app-server/session-api.js.map +1 -1
- package/dist/audit/logger.d.ts +1 -1
- package/dist/bootstrap/auth-setup.d.ts.map +1 -1
- package/dist/bootstrap/auth-setup.js +17 -2
- package/dist/bootstrap/auth-setup.js.map +1 -1
- package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
- package/dist/bootstrap/model-resolution-setup.js +19 -4
- package/dist/bootstrap/model-resolution-setup.js.map +1 -1
- package/dist/cli/args.d.ts +2 -2
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +226 -14
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/anthropic.d.ts +1 -1
- package/dist/cli/commands/anthropic.d.ts.map +1 -1
- package/dist/cli/commands/anthropic.js +3 -68
- package/dist/cli/commands/anthropic.js.map +1 -1
- package/dist/cli/commands/modes.js +1 -1
- package/dist/cli/commands/modes.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -7
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/rpc-mode.d.ts +1 -1
- package/dist/cli/rpc-mode.js +1 -1
- package/dist/cli/rpc-mode.js.map +1 -1
- package/dist/cli/session.js +1 -1
- package/dist/cli/session.js.map +1 -1
- package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
- package/dist/cli-tui/commands/command-catalog.js +7 -12
- package/dist/cli-tui/commands/command-catalog.js.map +1 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +1 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +1 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.js +4 -12
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +1 -1
- package/dist/cli-tui/custom-editor.d.ts +1 -1
- package/dist/cli-tui/custom-editor.js +2 -2
- package/dist/cli-tui/custom-editor.js.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +19 -23
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +1 -1
- package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
- package/dist/cli-tui/selectors/model-selector.js +0 -1
- package/dist/cli-tui/selectors/model-selector.js.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts +2 -2
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector-view.js.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector.d.ts +2 -2
- package/dist/cli-tui/selectors/oauth-selector.d.ts.map +1 -1
- package/dist/cli-tui/selectors/oauth-selector.js +3 -4
- package/dist/cli-tui/selectors/oauth-selector.js.map +1 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js +1 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +1 -1
- package/dist/cli-tui/tui-renderer.js +2 -2
- package/dist/cli-tui/tui-renderer.js.map +1 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +1 -1
- package/dist/cli-tui/utils/footer-utils.js +1 -1
- package/dist/cli-tui/utils/footer-utils.js.map +1 -1
- package/dist/cli.js +15156 -14232
- package/dist/commands/prompts.d.ts +1 -1
- package/dist/commands/prompts.js +1 -1
- package/dist/commands/prompts.js.map +1 -1
- package/dist/config/constants.d.ts +2 -2
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +2 -2
- package/dist/config/constants.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/toml-config.js +3 -3
- package/dist/config/toml-config.js.map +1 -1
- package/dist/db/client.d.ts +2 -2
- package/dist/db/client.js +2 -2
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrate.d.ts +1 -1
- package/dist/db/migrate.js +1 -1
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/schema.d.ts +2 -2
- package/dist/db/schema.js +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/errors/index.d.ts +2 -2
- package/dist/errors/index.js +2 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/main.d.ts +4 -5
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -14
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts +15 -2
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +50 -26
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/fathom-cua.d.ts.map +1 -1
- package/dist/mcp/fathom-cua.js +10 -0
- package/dist/mcp/fathom-cua.js.map +1 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +32 -1
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/tool-bridge.d.ts.map +1 -1
- package/dist/mcp/tool-bridge.js +12 -3
- package/dist/mcp/tool-bridge.js.map +1 -1
- package/dist/mcp/tool-capabilities.d.ts +5 -0
- package/dist/mcp/tool-capabilities.d.ts.map +1 -0
- package/dist/mcp/tool-capabilities.js +271 -0
- package/dist/mcp/tool-capabilities.js.map +1 -0
- package/dist/mcp/types.d.ts +6 -1
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/models/config-loader.d.ts +1 -1
- package/dist/models/factory-integration.d.ts +1 -1
- package/dist/models/factory-integration.js +1 -1
- package/dist/models/factory-integration.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +3 -3
- package/dist/node_modules/@evalops/contracts/dist/index.js +2 -2
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +1182 -14
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +450 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/oauth/connectors.d.ts +2 -2
- package/dist/oauth/connectors.d.ts.map +1 -1
- package/dist/oauth/connectors.js +3 -5
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/github-copilot.d.ts +1 -1
- package/dist/oauth/github-copilot.js +1 -1
- package/dist/oauth/github-copilot.js.map +1 -1
- package/dist/oauth/index.d.ts +10 -8
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +54 -31
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/openai.d.ts +1 -1
- package/dist/oauth/openai.js +2 -2
- package/dist/oauth/openai.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +41 -0
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -0
- package/dist/platform/a2a-completion-audit.js +177 -0
- package/dist/platform/a2a-completion-audit.js.map +1 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +17 -0
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-telemetry-inspect.d.ts +58 -0
- package/dist/platform/a2a-telemetry-inspect.d.ts.map +1 -0
- package/dist/platform/a2a-telemetry-inspect.js +224 -0
- package/dist/platform/a2a-telemetry-inspect.js.map +1 -0
- package/dist/platform/agent-registry-client.d.ts +8 -0
- package/dist/platform/agent-registry-client.d.ts.map +1 -1
- package/dist/platform/agent-registry-client.js +9 -1
- package/dist/platform/agent-registry-client.js.map +1 -1
- package/dist/providers/api-keys.d.ts +2 -2
- package/dist/providers/api-keys.js +2 -2
- package/dist/providers/api-keys.js.map +1 -1
- package/dist/providers/auth.d.ts +3 -6
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -40
- package/dist/providers/auth.js.map +1 -1
- package/dist/rpc/index.d.ts +2 -2
- package/dist/rpc/index.js +2 -2
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/rpc-types.d.ts +1 -1
- package/dist/rpc/rpc-types.js +1 -1
- package/dist/rpc/rpc-types.js.map +1 -1
- package/dist/safety/nested-agent-guard.js +1 -1
- package/dist/safety/nested-agent-guard.js.map +1 -1
- package/dist/safety/policy.d.ts +2 -2
- package/dist/safety/policy.js +2 -2
- package/dist/safety/policy.js.map +1 -1
- package/dist/safety/validators/network-policy-validator.d.ts +8 -0
- package/dist/safety/validators/network-policy-validator.d.ts.map +1 -1
- package/dist/safety/validators/network-policy-validator.js +29 -4
- package/dist/safety/validators/network-policy-validator.js.map +1 -1
- package/dist/sandbox/local-sandbox.d.ts +1 -1
- package/dist/sandbox/local-sandbox.js +1 -1
- package/dist/sandbox/local-sandbox.js.map +1 -1
- package/dist/server/app-context.d.ts +2 -0
- package/dist/server/app-context.d.ts.map +1 -1
- package/dist/server/app-context.js.map +1 -1
- package/dist/server/handlers/attachments.d.ts.map +1 -1
- package/dist/server/handlers/attachments.js +1 -0
- package/dist/server/handlers/attachments.js.map +1 -1
- package/dist/server/handlers/models.d.ts.map +1 -1
- package/dist/server/handlers/models.js +3 -1
- package/dist/server/handlers/models.js.map +1 -1
- package/dist/server/handlers/session-attachments.d.ts.map +1 -1
- package/dist/server/handlers/session-attachments.js +2 -0
- package/dist/server/handlers/session-attachments.js.map +1 -1
- package/dist/server/handlers/sessions.js +1 -1
- package/dist/server/handlers/sessions.js.map +1 -1
- package/dist/server/handlers/status.d.ts +2 -0
- package/dist/server/handlers/status.d.ts.map +1 -1
- package/dist/server/handlers/status.js +3 -2
- package/dist/server/handlers/status.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +32 -3
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +2 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -1
- package/dist/server/hosted-session-manager.js +9 -0
- package/dist/server/hosted-session-manager.js.map +1 -1
- package/dist/server/model-selection.d.ts.map +1 -1
- package/dist/server/model-selection.js +9 -1
- package/dist/server/model-selection.js.map +1 -1
- package/dist/server/rate-limiter.d.ts +1 -1
- package/dist/server/rate-limiter.js +1 -1
- package/dist/server/rate-limiter.js.map +1 -1
- package/dist/server/router.d.ts +2 -2
- package/dist/server/router.js.map +1 -1
- package/dist/server/session-serialization.d.ts +9 -9
- package/dist/server/session-serialization.js +15 -15
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/session/manager.d.ts +5 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +56 -8
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-catalog.d.ts +2 -0
- package/dist/session/session-catalog.d.ts.map +1 -1
- package/dist/session/session-catalog.js +6 -0
- package/dist/session/session-catalog.js.map +1 -1
- package/dist/session/session-context.d.ts +2 -0
- package/dist/session/session-context.d.ts.map +1 -1
- package/dist/session/session-context.js +15 -0
- package/dist/session/session-context.js.map +1 -1
- package/dist/session/types.d.ts +7 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/dist/session/wire-format.generated.d.ts +1 -0
- package/dist/session/wire-format.generated.d.ts.map +1 -1
- package/dist/session/wire-format.generated.js +1 -0
- package/dist/session/wire-format.generated.js.map +1 -1
- package/dist/shared-memory/contract.d.ts +4 -4
- package/dist/shared-memory/contract.js +2 -2
- package/dist/shared-memory/contract.js.map +1 -1
- package/dist/telemetry/index.d.ts +2 -2
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +2 -2
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +57 -0
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +59 -1
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-event-catalog.d.ts +17 -1
- package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-catalog.js +24 -0
- package/dist/telemetry/maestro-event-catalog.js.map +1 -1
- package/dist/telemetry/mcp-beacon.d.ts +2 -0
- package/dist/telemetry/mcp-beacon.d.ts.map +1 -1
- package/dist/telemetry/mcp-beacon.js +15 -0
- package/dist/telemetry/mcp-beacon.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +62 -0
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +84 -0
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry.d.ts +44 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +84 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.js +2 -2
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/theme/theme-schema.json +2 -2
- package/dist/theme/theme.d.ts +1 -1
- package/dist/theme/theme.js.map +1 -1
- package/dist/tools/background/task-types.d.ts +1 -1
- package/dist/tools/extract-document.d.ts +1 -0
- package/dist/tools/extract-document.d.ts.map +1 -1
- package/dist/tools/extract-document.js +2 -1
- package/dist/tools/extract-document.js.map +1 -1
- package/dist/tools/index.d.ts +55 -55
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/tool-dsl.d.ts +1 -1
- package/dist/tools/tool-dsl.js +1 -1
- package/dist/tools/tool-dsl.js.map +1 -1
- package/dist/utils/document-extractor.d.ts +1 -0
- package/dist/utils/document-extractor.d.ts.map +1 -1
- package/dist/utils/document-extractor.js +320 -40
- package/dist/utils/document-extractor.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts +1 -1
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +12 -8
- package/dist/web-server.js.map +1 -1
- package/package.json +4 -2
- package/dist/oauth/anthropic.d.ts +0 -17
- package/dist/oauth/anthropic.d.ts.map +0 -1
- package/dist/oauth/anthropic.js +0 -81
- package/dist/oauth/anthropic.js.map +0 -1
- package/dist/providers/anthropic-auth.d.ts +0 -75
- package/dist/providers/anthropic-auth.d.ts.map +0 -1
- package/dist/providers/anthropic-auth.js +0 -221
- package/dist/providers/anthropic-auth.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../../src/cli/commands/a2a.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport chalk from \"chalk\";\nimport { selectA2ACapabilityPeer } from \"../../platform/a2a-capability-market.js\";\nimport {\n\ttype A2AAgentCard,\n\ttype A2AServiceConfig,\n\ttype A2ATask,\n\tbuildA2AUserMessage,\n\tdiscoverA2AAgentCard,\n\tgetA2ATask,\n\tsendA2AMessage,\n} from \"../../platform/a2a-client.js\";\nimport { buildA2ACockpit } from \"../../platform/a2a-cockpit.js\";\nimport { inspectA2AFleet } from \"../../platform/a2a-fleet.js\";\nimport {\n\tbuildMaestroA2APeerProjection,\n\tdefaultMaestroA2ACapabilities,\n} from \"../../platform/a2a-maestro-peer.js\";\nimport {\n\tcreateA2APeerPairingPayload,\n\tcreateA2APeerPairingPayloadFromAgentCard,\n\tdecodeA2APeerPairingCode,\n\tencodeA2APeerPairingCode,\n\tresolveA2AAgentCardUrl,\n} from \"../../platform/a2a-peer-pairing.js\";\nimport {\n\ttype A2APeerRegistryEntry,\n\tlistA2APeers,\n\tloadA2APeerRegistry,\n\tnormalizePeerName,\n\tresolveA2APeer,\n\tsaveA2APeerRegistry,\n\tupsertA2APeerFromPairingPayload,\n} from \"../../platform/a2a-peer-registry.js\";\nimport {\n\ttype A2ATaskLedgerEntry,\n\textractA2ATaskText,\n\tgetA2ATaskLedgerPath,\n\tisActionRequiredA2AState,\n\tisFinalA2AState,\n\tisTerminalA2AState,\n\tlistA2ATaskEntries,\n\tloadA2ATaskLedger,\n\trecordA2ATaskReply,\n\trecordA2ATaskStart,\n\tupdateA2ATaskInLedger,\n} from \"../../platform/a2a-task-ledger.js\";\nimport {\n\textractA2AWorkGraphMetadata,\n\tformatA2AWorkGraphCodexSubagents,\n\tformatA2AWorkGraphSummary,\n} from \"../../platform/a2a-work-graph.js\";\nimport {\n\tPlatformA2ADelegationTaskControlModeValue,\n\ttype PlatformAgentRegistryA2APeerCandidate,\n\ttype PlatformAgentRegistryAgent,\n\tPlatformAgentStatusValue,\n\tcontrolA2ADelegationTaskWithPlatform,\n\tdelegateAgentWithPlatform,\n\tgetA2ADelegationGraphWithPlatform,\n\theartbeatAgentWithPlatform,\n\tisAgentAlreadyExistsError,\n\tlistA2APeerCandidatesWithPlatform,\n\tregisterAgentWithPlatform,\n\tupdateAgentWithPlatform,\n} from \"../../platform/agent-registry-client.js\";\nimport { getEnvValue } from \"../../platform/client.js\";\nimport { isAbortError } from \"../../utils/abort-error.js\";\n\nconst DEFAULT_WAIT_MS = 300_000;\nconst DEFAULT_WAIT_INTERVAL_MS = 5_000;\nconst A2A_VALUE_FLAGS_BY_SUBCOMMAND: Record<string, readonly string[]> = {\n\taccept: [\n\t\t\"--name\",\n\t\t\"--organization-id\",\n\t\t\"--registry\",\n\t\t\"--token-env\",\n\t\t\"--token-file\",\n\t\t\"--workspace-id\",\n\t],\n\tcard: [\"--registry\", \"--timeout-ms\"],\n\tcockpit: [\"--registry\", \"--tasks\", \"--timeout-ms\", \"--peer\", \"--limit\"],\n\tdiscover: [\n\t\t\"--capability\",\n\t\t\"--limit\",\n\t\t\"--offset\",\n\t\t\"--registry\",\n\t\t\"--skill\",\n\t\t\"--status\",\n\t\t\"--surface\",\n\t\t\"--workspace-id\",\n\t],\n\tdelegate: [\n\t\t\"--capability\",\n\t\t\"--cwd\",\n\t\t\"--from-agent-id\",\n\t\t\"--interval-ms\",\n\t\t\"--limit\",\n\t\t\"--max-wait-ms\",\n\t\t\"--objective-id\",\n\t\t\"--offset\",\n\t\t\"--registry\",\n\t\t\"--reason\",\n\t\t\"--role\",\n\t\t\"--skill\",\n\t\t\"--status\",\n\t\t\"--surface\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t\t\"--to-agent-id\",\n\t\t\"--workspace-id\",\n\t\t\"--workflow-run-id\",\n\t\t\"--workflow-step-id\",\n\t],\n\tcoordinate: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--reply\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n\tcontrol: [\n\t\t\"--child-run-id\",\n\t\t\"--delegation-id\",\n\t\t\"--idempotency-key\",\n\t\t\"--message\",\n\t\t\"--mode\",\n\t\t\"--subagent-lane-id\",\n\t\t\"--target-run-id\",\n\t\t\"--work-item-id\",\n\t\t\"--workspace-id\",\n\t],\n\tfleet: [\"--registry\", \"--tasks\", \"--timeout-ms\"],\n\tgraph: [\n\t\t\"--delegation-id\",\n\t\t\"--limit\",\n\t\t\"--max-depth\",\n\t\t\"--root\",\n\t\t\"--root-delegation-id\",\n\t\t\"--workspace-id\",\n\t],\n\toffer: [\n\t\t\"--agent-card-url\",\n\t\t\"--base-url\",\n\t\t\"--name\",\n\t\t\"--peer-id\",\n\t\t\"--ttl-minutes\",\n\t\t\"--url\",\n\t],\n\tpeers: [\"--registry\"],\n\tregister: [\n\t\t\"--agent-card-etag\",\n\t\t\"--agent-card-hash\",\n\t\t\"--agent-card-url\",\n\t\t\"--agent-id\",\n\t\t\"--capabilities\",\n\t\t\"--description\",\n\t\t\"--internal-url\",\n\t\t\"--name\",\n\t\t\"--owner-id\",\n\t\t\"--protocol-version\",\n\t\t\"--public-url\",\n\t\t\"--security-schemes\",\n\t\t\"--status\",\n\t\t\"--surface\",\n\t\t\"--surface-types\",\n\t\t\"--type\",\n\t\t\"--url\",\n\t\t\"--workspace-id\",\n\t],\n\treply: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n\tsend: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n\ttasks: [\"--registry\", \"--tasks\", \"--timeout-ms\"],\n\twait: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n};\nconst A2A_BOOLEAN_FLAGS_BY_SUBCOMMAND: Record<string, readonly string[]> = {\n\taccept: [\"--default\"],\n\tcockpit: [\"--json\"],\n\tcoordinate: [\"--json\", \"--refresh\", \"--wait\", \"--work-graph\"],\n\tdelegate: [\n\t\t\"--discover\",\n\t\t\"--platform\",\n\t\t\"--prefer-internal\",\n\t\t\"--wait\",\n\t\t\"--work-graph\",\n\t],\n\tdiscover: [\"--default\", \"--import\", \"--json\", \"--prefer-internal\"],\n\tfleet: [\"--json\"],\n\tgraph: [\"--json\"],\n\tregister: [\"--heartbeat-only\", \"--json\", \"--no-heartbeat\", \"--update-only\"],\n\treply: [\"--wait\", \"--work-graph\"],\n\tsend: [\"--wait\", \"--work-graph\"],\n\ttasks: [\"--json\", \"--refresh\", \"--work-graph\"],\n\twait: [\"--work-graph\"],\n};\nconst A2A_COLLECT_VALUE_FLAGS_BY_SUBCOMMAND: Record<string, readonly string[]> =\n\t{\n\t\tcoordinate: [\"--reply\"],\n\t\tcontrol: [\"--message\"],\n\t};\nconst A2A_LEADING_VALUE_FLAGS = new Set(\n\tObject.values(A2A_VALUE_FLAGS_BY_SUBCOMMAND).flat(),\n);\nconst A2A_LEADING_BOOLEAN_FLAGS = new Set(\n\tObject.values(A2A_BOOLEAN_FLAGS_BY_SUBCOMMAND).flat(),\n);\n\nexport interface ParsedA2AArgs {\n\tpositionals: string[];\n\tflags: Map<string, string | boolean>;\n}\n\nexport async function handleA2ACommand(args: string[]): Promise<void> {\n\tconst parsed = parseA2AArgs(args);\n\tconst subcommand = canonicalA2ASubcommand(parsed.positionals.shift());\n\tswitch (subcommand) {\n\t\tcase \"offer\":\n\t\tcase \"pair\":\n\t\tcase \"create\":\n\t\t\tawait handleA2AOffer(parsed);\n\t\t\treturn;\n\t\tcase \"accept\":\n\t\t\tawait handleA2AAccept(parsed);\n\t\t\treturn;\n\t\tcase \"peers\":\n\t\tcase \"list\":\n\t\t\tawait handleA2APeers(parsed);\n\t\t\treturn;\n\t\tcase \"discover\":\n\t\t\tawait handleA2ADiscover(parsed);\n\t\t\treturn;\n\t\tcase \"register\":\n\t\t\tawait handleA2ARegister(parsed);\n\t\t\treturn;\n\t\tcase \"fleet\":\n\t\t\tawait handleA2AFleet(parsed);\n\t\t\treturn;\n\t\tcase \"cockpit\":\n\t\tcase \"dashboard\":\n\t\t\tawait handleA2ACockpit(parsed);\n\t\t\treturn;\n\t\tcase \"card\":\n\t\t\tawait handleA2ACard(parsed);\n\t\t\treturn;\n\t\tcase \"send\":\n\t\t\tawait handleA2ASend(parsed);\n\t\t\treturn;\n\t\tcase \"delegate\":\n\t\tcase \"delegation\":\n\t\t\tawait handleA2ADelegate(parsed);\n\t\t\treturn;\n\t\tcase \"control\":\n\t\t\tawait handleA2AControl(parsed);\n\t\t\treturn;\n\t\tcase \"graph\":\n\t\t\tawait handleA2AGraph(parsed);\n\t\t\treturn;\n\t\tcase \"reply\":\n\t\tcase \"continue\":\n\t\t\tawait handleA2AReply(parsed);\n\t\t\treturn;\n\t\tcase \"coordinate\":\n\t\t\tawait handleA2ACoordinate(parsed);\n\t\t\treturn;\n\t\tcase \"tasks\":\n\t\t\tawait handleA2ATasks(parsed);\n\t\t\treturn;\n\t\tcase \"wait\":\n\t\t\tawait handleA2AWait(parsed);\n\t\t\treturn;\n\t\tdefault:\n\t\t\tprintA2AHelp();\n\t}\n}\n\nexport function parseA2AArgs(args: string[]): ParsedA2AArgs {\n\tconst flags = new Map<string, string | boolean>();\n\tconst positionals: string[] = [];\n\tconst subcommandIndex = findA2ASubcommandIndex(args);\n\tconst subcommand =\n\t\tsubcommandIndex >= 0\n\t\t\t? canonicalA2ASubcommand(args[subcommandIndex])\n\t\t\t: \"help\";\n\tconst valueFlags = new Set(A2A_VALUE_FLAGS_BY_SUBCOMMAND[subcommand] ?? []);\n\tconst booleanFlags = new Set(\n\t\tA2A_BOOLEAN_FLAGS_BY_SUBCOMMAND[subcommand] ?? [],\n\t);\n\tif (subcommand === \"delegate\" && args.includes(\"--platform\")) {\n\t\tbooleanFlags.add(\"--json\");\n\t}\n\tconst collectValueFlags = new Set(\n\t\tA2A_COLLECT_VALUE_FLAGS_BY_SUBCOMMAND[subcommand] ?? [],\n\t);\n\tfor (let index = 0; index < args.length; index++) {\n\t\tconst arg = args[index];\n\t\tif (!arg) continue;\n\t\tif (arg === \"--\") {\n\t\t\tpositionals.push(...args.slice(index + 1));\n\t\t\tbreak;\n\t\t}\n\t\tif (arg.startsWith(\"--\")) {\n\t\t\tconst [flag, inlineValue] = arg.split(\"=\", 2);\n\t\t\tif (!flag) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tindex < subcommandIndex &&\n\t\t\t\t!valueFlags.has(flag) &&\n\t\t\t\t!booleanFlags.has(flag) &&\n\t\t\t\t(A2A_LEADING_VALUE_FLAGS.has(flag) ||\n\t\t\t\t\tA2A_LEADING_BOOLEAN_FLAGS.has(flag))\n\t\t\t) {\n\t\t\t\tif (A2A_LEADING_VALUE_FLAGS.has(flag) && inlineValue === undefined) {\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!valueFlags.has(flag) && !booleanFlags.has(flag)) {\n\t\t\t\tpositionals.push(arg);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (inlineValue !== undefined) {\n\t\t\t\tif (collectValueFlags.has(flag) && !inlineValue.trim()) {\n\t\t\t\t\tthrow new Error(collectValueFlagMissingTextMessage(flag, subcommand));\n\t\t\t\t}\n\t\t\t\tflags.set(flag, inlineValue);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (booleanFlags.has(flag)) {\n\t\t\t\tflags.set(flag, true);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (collectValueFlags.has(flag)) {\n\t\t\t\tconst values: string[] = [];\n\t\t\t\twhile (args[index + 1] && args[index + 1] !== \"--\") {\n\t\t\t\t\tconst next = args[index + 1]!;\n\t\t\t\t\tconst [nextFlag] = next.split(\"=\", 2);\n\t\t\t\t\tif (\n\t\t\t\t\t\tnext.startsWith(\"--\") &&\n\t\t\t\t\t\tnextFlag &&\n\t\t\t\t\t\t(valueFlags.has(nextFlag) || booleanFlags.has(nextFlag))\n\t\t\t\t\t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tvalues.push(next);\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\t\t\t\tconst value = values.join(\" \").trim();\n\t\t\t\tif (!value) {\n\t\t\t\t\tthrow new Error(collectValueFlagMissingTextMessage(flag, subcommand));\n\t\t\t\t}\n\t\t\t\tflags.set(flag, value);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst next = args[index + 1];\n\t\t\tif (next && next !== \"--\") {\n\t\t\t\tflags.set(flag, next);\n\t\t\t\tindex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tflags.set(flag, true);\n\t\t\tcontinue;\n\t\t}\n\t\tpositionals.push(arg);\n\t}\n\treturn { flags, positionals };\n}\n\nfunction collectValueFlagMissingTextMessage(\n\tflag: string,\n\tsubcommand: string,\n): string {\n\tconst usage =\n\t\tsubcommand === \"coordinate\" && flag === \"--reply\"\n\t\t\t? \"\\nUsage: maestro a2a coordinate [peer] --reply <text> [--wait]\"\n\t\t\t: \"\";\n\treturn `${flag} requires text${usage}`;\n}\n\nfunction findA2ASubcommandIndex(args: readonly string[]): number {\n\tfor (let index = 0; index < args.length; index++) {\n\t\tconst arg = args[index];\n\t\tif (!arg || arg === \"--\") {\n\t\t\tbreak;\n\t\t}\n\t\tif (!arg.startsWith(\"--\")) {\n\t\t\treturn index;\n\t\t}\n\t\tconst [flag = \"\", inlineValue] = arg.split(\"=\", 2);\n\t\tif (A2A_LEADING_VALUE_FLAGS.has(flag) && inlineValue === undefined) {\n\t\t\tindex++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (\n\t\t\tA2A_LEADING_VALUE_FLAGS.has(flag) ||\n\t\t\tA2A_LEADING_BOOLEAN_FLAGS.has(flag)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\treturn -1;\n}\n\nfunction canonicalA2ASubcommand(input: string | undefined): string {\n\tswitch (input?.toLowerCase()) {\n\t\tcase \"pair\":\n\t\tcase \"create\":\n\t\t\treturn \"offer\";\n\t\tcase \"list\":\n\t\t\treturn \"peers\";\n\t\tcase \"dashboard\":\n\t\t\treturn \"cockpit\";\n\t\tcase \"delegation\":\n\t\t\treturn \"delegate\";\n\t\tcase \"continue\":\n\t\t\treturn \"reply\";\n\t\tcase \"publish\":\n\t\t\treturn \"register\";\n\t\tdefault:\n\t\t\treturn input?.toLowerCase() ?? \"help\";\n\t}\n}\n\nasync function handleA2AOffer(parsed: ParsedA2AArgs): Promise<void> {\n\tconst baseUrl =\n\t\tstringFlag(parsed, \"--url\") ?? stringFlag(parsed, \"--base-url\");\n\tconst agentCardUrl = resolveA2AAgentCardUrl(\n\t\tstringFlag(parsed, \"--agent-card-url\") ??\n\t\t\tbaseUrl ??\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_A2A_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_A2A_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_URL\",\n\t\t\t]) ??\n\t\t\tfail(\"Provide --url or set MAESTRO_A2A_PUBLIC_URL.\"),\n\t);\n\tconst transportUrl = baseUrlFromAgentCardUrl(agentCardUrl);\n\tconst ttlMs = minutesFlag(parsed, \"--ttl-minutes\") ?? 30 * 60 * 1000;\n\tconst peerId = stringFlag(parsed, \"--peer-id\");\n\tconst displayName = stringFlag(parsed, \"--name\");\n\tlet agentCard: A2AAgentCard | null = null;\n\ttry {\n\t\tagentCard = await discoverA2AAgentCard({\n\t\t\tbaseUrl: transportUrl,\n\t\t\ttimeoutMs: 2_500,\n\t\t\tmaxAttempts: 1,\n\t\t});\n\t} catch (error) {\n\t\tif (!displayName) {\n\t\t\tthrow new Error(\n\t\t\t\t`Could not fetch Agent Card at ${agentCardUrl}: ${errorMessage(error)}. Pass --name to create an offline pairing code.`,\n\t\t\t);\n\t\t}\n\t}\n\tconst payload = agentCard\n\t\t? createA2APeerPairingPayloadFromAgentCard({\n\t\t\t\tagentCard,\n\t\t\t\tagentCardUrl,\n\t\t\t\tdisplayName,\n\t\t\t\tpeerId,\n\t\t\t\tttlMs,\n\t\t\t})\n\t\t: createA2APeerPairingPayload({\n\t\t\t\tdisplayName: displayName ?? \"Maestro A2A Peer\",\n\t\t\t\tagentCardUrl,\n\t\t\t\ttransportUrl,\n\t\t\t\tpeerId,\n\t\t\t\tttlMs,\n\t\t\t});\n\tconst code = encodeA2APeerPairingCode(payload);\n\tconsole.log(code);\n\tconsole.error(\n\t\tchalk.dim(\n\t\t\t`Pairing code for ${payload.displayName}; expires ${payload.expiresAt}. No token or bearer secret is embedded.`,\n\t\t),\n\t);\n}\n\nasync function handleA2AAccept(parsed: ParsedA2AArgs): Promise<void> {\n\tconst code =\n\t\tparsed.positionals.shift() ?? fail(\"Usage: maestro a2a accept <code>\");\n\tconst payload = decodeA2APeerPairingCode(code);\n\tconst result = await upsertA2APeerFromPairingPayload(payload, {\n\t\tname: stringFlag(parsed, \"--name\"),\n\t\tmakeDefault: booleanFlag(parsed, \"--default\"),\n\t\ttokenEnv: stringFlag(parsed, \"--token-env\"),\n\t\ttokenFile: stringFlag(parsed, \"--token-file\"),\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\torganizationId: stringFlag(parsed, \"--organization-id\"),\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t});\n\tconsole.log(\n\t\t`Registered A2A peer ${chalk.bold(result.name)} at ${result.entry.url}`,\n\t);\n\tconsole.log(chalk.dim(`Registry: ${result.path}`));\n\tif (!result.entry.tokenEnv && !result.entry.tokenFile) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\n\t\t\t\t\"No token source configured; add --token-env or --token-file if the peer requires Authorization.\",\n\t\t\t),\n\t\t);\n\t}\n}\n\nasync function handleA2APeers(parsed: ParsedA2AArgs): Promise<void> {\n\tconst { path, registry } = await listA2APeers({\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t});\n\tconsole.log(`A2A peers (${path})`);\n\tconst entries = Object.entries(registry.peers).sort(([left], [right]) =>\n\t\tleft.localeCompare(right),\n\t);\n\tif (entries.length === 0) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\" No peers registered. Run maestro a2a accept <code>.\"),\n\t\t);\n\t\treturn;\n\t}\n\tfor (const [name, peer] of entries) {\n\t\tconst marker = registry.defaultPeer === name ? \"*\" : \" \";\n\t\tconst tokenSource = peer.tokenEnv\n\t\t\t? ` token=env:${peer.tokenEnv}`\n\t\t\t: peer.tokenFile\n\t\t\t\t? \" token=file\"\n\t\t\t\t: \"\";\n\t\tconsole.log(\n\t\t\t`${marker} ${name} ${chalk.dim(peer.url)}${tokenSource}${\n\t\t\t\tpeer.displayName ? chalk.dim(` (${peer.displayName})`) : \"\"\n\t\t\t}`,\n\t\t);\n\t}\n}\n\nasync function handleA2ADiscover(parsed: ParsedA2AArgs): Promise<void> {\n\tconst candidates = await listA2APeerCandidatesWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tcapability: stringFlag(parsed, \"--capability\"),\n\t\tsurface: stringFlag(parsed, \"--surface\"),\n\t\tstatus: stringFlag(parsed, \"--status\"),\n\t\tlimit: numberFlag(parsed, \"--limit\"),\n\t\toffset: nonNegativeNumberFlag(parsed, \"--offset\"),\n\t\tskillId: stringFlag(parsed, \"--skill\"),\n\t\tpreferInternalEndpoint: booleanFlag(parsed, \"--prefer-internal\"),\n\t});\n\tif (!candidates) {\n\t\tfail(\n\t\t\t\"Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID.\",\n\t\t);\n\t}\n\tconst imported = booleanFlag(parsed, \"--import\")\n\t\t? await importDiscoveredA2APeers(parsed, candidates)\n\t\t: [];\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tpeers: candidates.map(discoveredPeerJson),\n\t\t\t\t\timported,\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconsole.log(\"Platform A2A peers\");\n\tif (candidates.length === 0) {\n\t\tconsole.log(chalk.dim(\" No Platform agents expose A2A peer endpoints.\"));\n\t\treturn;\n\t}\n\tfor (const candidate of candidates) {\n\t\tconst label =\n\t\t\tcandidate.agent.name ?? candidate.agent.id ?? candidate.endpointUrl;\n\t\tconst skillSummary = candidate.skills.map((skill) => skill.id).join(\", \");\n\t\tconsole.log(\n\t\t\t`${chalk.bold(label)} ${chalk.dim(candidate.endpointUrl)}${\n\t\t\t\tcandidate.agent.status ? chalk.dim(` ${candidate.agent.status}`) : \"\"\n\t\t\t}`,\n\t\t);\n\t\tif (candidate.agent.id || candidate.protocolBinding) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` ${[\n\t\t\t\t\t\tcandidate.agent.id ? `agent=${candidate.agent.id}` : undefined,\n\t\t\t\t\t\tcandidate.protocolBinding\n\t\t\t\t\t\t\t? `binding=${candidate.protocolBinding}`\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tcandidate.protocolVersion\n\t\t\t\t\t\t\t? `version=${candidate.protocolVersion}`\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\" \")}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (skillSummary) {\n\t\t\tconsole.log(chalk.dim(` skills=${skillSummary}`));\n\t\t}\n\t}\n\tif (imported.length > 0) {\n\t\tconsole.log(chalk.dim(`Imported ${imported.length} peer(s).`));\n\t\tconsole.log(chalk.dim(`Registry: ${imported[0]?.path}`));\n\t}\n}\n\nasync function handleA2ARegister(parsed: ParsedA2AArgs): Promise<void> {\n\tconst heartbeatOnly = booleanFlag(parsed, \"--heartbeat-only\");\n\tconst agentId =\n\t\tstringFlag(parsed, \"--agent-id\") ??\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_A2A_AGENT_ID\",\n\t\t\t\"MAESTRO_AGENT_ID\",\n\t\t\t\"EVALOPS_AGENT_ID\",\n\t\t]);\n\tconst name =\n\t\tstringFlag(parsed, \"--name\") ??\n\t\tgetEnvValue([\"MAESTRO_A2A_AGENT_NAME\", \"MAESTRO_AGENT_NAME\"]) ??\n\t\t\"Maestro A2A Peer\";\n\tconst description =\n\t\tstringFlag(parsed, \"--description\") ??\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_A2A_AGENT_DESCRIPTION\",\n\t\t\t\"MAESTRO_AGENT_DESCRIPTION\",\n\t\t]) ??\n\t\t\"Maestro peer exposing governed Codex subagent lanes through A2A.\";\n\tconst workspaceId = stringFlag(parsed, \"--workspace-id\");\n\tconst capabilities = stringListFlag(\n\t\tparsed,\n\t\t\"--capabilities\",\n\t\tdefaultMaestroA2ACapabilities(),\n\t);\n\tconst surfaces = stringListFlag(parsed, \"--surface\", [\"a2a\", \"maestro\"]);\n\tconst surfaceTypes = stringListFlag(parsed, \"--surface-types\", [\n\t\t\"SURFACE_MAESTRO\",\n\t]);\n\tconst publicEndpointUrl = heartbeatOnly\n\t\t? undefined\n\t\t: (stringFlag(parsed, \"--public-url\") ??\n\t\t\tstringFlag(parsed, \"--url\") ??\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_A2A_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_A2A_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_URL\",\n\t\t\t]) ??\n\t\t\tfail(\"Provide --url or set MAESTRO_A2A_PUBLIC_URL.\"));\n\tconst a2a = publicEndpointUrl\n\t\t? buildMaestroA2APeerProjection({\n\t\t\t\tpublicEndpointUrl,\n\t\t\t\tinternalEndpointUrl:\n\t\t\t\t\tstringFlag(parsed, \"--internal-url\") ??\n\t\t\t\t\tgetEnvValue([\n\t\t\t\t\t\t\"MAESTRO_A2A_INTERNAL_URL\",\n\t\t\t\t\t\t\"MAESTRO_CONTROL_INTERNAL_URL\",\n\t\t\t\t\t]),\n\t\t\t\tagentCardUrl: stringFlag(parsed, \"--agent-card-url\"),\n\t\t\t\tprotocolVersion: stringFlag(parsed, \"--protocol-version\"),\n\t\t\t\tagentCardETag: stringFlag(parsed, \"--agent-card-etag\"),\n\t\t\t\tagentCardHash: stringFlag(parsed, \"--agent-card-hash\"),\n\t\t\t\tsecuritySchemes: stringListFlag(parsed, \"--security-schemes\", [\n\t\t\t\t\t\"evalops-agent-token\",\n\t\t\t\t]),\n\t\t\t\tattributes: {\n\t\t\t\t\tpublishedBy: \"maestro a2a register\",\n\t\t\t\t},\n\t\t\t})\n\t\t: undefined;\n\tconst updateOnly = booleanFlag(parsed, \"--update-only\");\n\tconst shouldHeartbeat = !booleanFlag(parsed, \"--no-heartbeat\");\n\tif (heartbeatOnly && !shouldHeartbeat) {\n\t\tfail(\"--heartbeat-only cannot be combined with --no-heartbeat.\");\n\t}\n\tlet operation: \"registered\" | \"updated\" | \"heartbeat\" = \"registered\";\n\tlet agent: PlatformAgentRegistryAgent | undefined;\n\n\tif (heartbeatOnly) {\n\t\tif (!agentId) {\n\t\t\tfail(\"Usage: maestro a2a register --heartbeat-only --agent-id <id>\");\n\t\t}\n\t\toperation = \"heartbeat\";\n\t} else if (updateOnly) {\n\t\tif (!agentId) {\n\t\t\tfail(\n\t\t\t\t\"Usage: maestro a2a register --update-only --agent-id <id> --url <base-url>\",\n\t\t\t);\n\t\t}\n\t\tconst updated = await updateAgentWithPlatform({\n\t\t\tworkspaceId,\n\t\t\tid: agentId,\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tcapabilities,\n\t\t\tsurfaces,\n\t\t\tsurfaceTypes,\n\t\t\ta2a,\n\t\t});\n\t\tif (!updated) {\n\t\t\tfail(agentRegistryNotConfiguredMessage());\n\t\t}\n\t\toperation = \"updated\";\n\t\tagent = updated.agent;\n\t} else {\n\t\ttry {\n\t\t\tconst registered = await registerAgentWithPlatform({\n\t\t\t\tworkspaceId,\n\t\t\t\tid: agentId,\n\t\t\t\tname,\n\t\t\t\tdescription,\n\t\t\t\tagentType: stringFlag(parsed, \"--type\") ?? \"maestro\",\n\t\t\t\tcapabilities,\n\t\t\t\tsurfaces,\n\t\t\t\tsurfaceTypes,\n\t\t\t\townerId: stringFlag(parsed, \"--owner-id\"),\n\t\t\t\ta2a,\n\t\t\t});\n\t\t\tif (!registered) {\n\t\t\t\tfail(agentRegistryNotConfiguredMessage());\n\t\t\t}\n\t\t\tagent = registered.agent;\n\t\t} catch (error) {\n\t\t\tif (!agentId || !isAgentAlreadyExistsError(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst updated = await updateAgentWithPlatform({\n\t\t\t\tworkspaceId,\n\t\t\t\tid: agentId,\n\t\t\t\tname,\n\t\t\t\tdescription,\n\t\t\t\tcapabilities,\n\t\t\t\tsurfaces,\n\t\t\t\tsurfaceTypes,\n\t\t\t\ta2a,\n\t\t\t});\n\t\t\tif (!updated) {\n\t\t\t\tfail(agentRegistryNotConfiguredMessage());\n\t\t\t}\n\t\t\toperation = \"updated\";\n\t\t\tagent = updated.agent;\n\t\t}\n\t}\n\n\tconst resolvedAgentId =\n\t\tagent?.id ?? agentId ?? fail(\"Agent Registry did not return an agent id.\");\n\tconst heartbeat = shouldHeartbeat\n\t\t? await heartbeatAgentWithPlatform({\n\t\t\t\tworkspaceId,\n\t\t\t\tagentId: resolvedAgentId,\n\t\t\t\tstatus: stringFlag(parsed, \"--status\") ?? PlatformAgentStatusValue.Idle,\n\t\t\t\tsurface: surfaces[0],\n\t\t\t\tsurfaceType: surfaceTypes[0],\n\t\t\t\ta2a,\n\t\t\t})\n\t\t: null;\n\tif (shouldHeartbeat && !heartbeat) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\toperation,\n\t\t\t\t\tagentId: resolvedAgentId,\n\t\t\t\t\tagent,\n\t\t\t\t\theartbeat,\n\t\t\t\t\ta2a,\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\n\tconst verb = operation === \"registered\" ? \"Registered\" : \"Updated\";\n\tconsole.log(\n\t\toperation === \"heartbeat\"\n\t\t\t? `Sent Platform A2A heartbeat for ${chalk.bold(resolvedAgentId)}${a2a ? ` at ${a2a.publicEndpointUrl}` : \"\"}`\n\t\t\t: `${verb} Platform A2A peer ${chalk.bold(resolvedAgentId)} at ${\n\t\t\t\t\ta2a?.publicEndpointUrl ?? publicEndpointUrl\n\t\t\t\t}`,\n\t);\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t`Skills: ${a2a?.skills?.map((skill) => skill.id).join(\", \") ?? \"none\"}`,\n\t\t),\n\t);\n\tif (heartbeat?.nextHeartbeatBy) {\n\t\tconsole.log(chalk.dim(`Next heartbeat by: ${heartbeat.nextHeartbeatBy}`));\n\t}\n}\n\nasync function importDiscoveredA2APeers(\n\tparsed: ParsedA2AArgs,\n\tcandidates: PlatformAgentRegistryA2APeerCandidate[],\n): Promise<\n\tArray<{\n\t\tname: string;\n\t\tpath: string;\n\t\turl: string;\n\t\tagentId?: string;\n\t}>\n> {\n\tconst registryPath = stringFlag(parsed, \"--registry\");\n\tconst registry = await loadA2APeerRegistry({ path: registryPath });\n\tconst now = new Date().toISOString();\n\tconst makeDefault = booleanFlag(parsed, \"--default\");\n\tlet defaultAssigned = false;\n\tconst importedNames = new Set<string>();\n\tconst imported: Array<{\n\t\tname: string;\n\t\tpath: string;\n\t\turl: string;\n\t\tagentId?: string;\n\t}> = [];\n\tcandidates.forEach((candidate, index) => {\n\t\tconst name = uniqueDiscoveredPeerName({\n\t\t\tbaseName: discoveredPeerName(candidate, index),\n\t\t\tcandidate,\n\t\t\timportedNames,\n\t\t\tpeers: registry.peers,\n\t\t});\n\t\tconst previous = registry.peers[name];\n\t\tconst entry: A2APeerRegistryEntry = {\n\t\t\t...previous,\n\t\t\turl: candidate.endpointUrl,\n\t\t\tdisplayName: candidate.agent.name ?? previous?.displayName,\n\t\t\tagentCardUrl: candidate.agentCardUrl ?? previous?.agentCardUrl,\n\t\t\tprotocolBinding: candidate.protocolBinding ?? previous?.protocolBinding,\n\t\t\tprotocolVersion: candidate.protocolVersion ?? previous?.protocolVersion,\n\t\t\tworkspaceId: candidate.agent.workspaceId ?? previous?.workspaceId,\n\t\t\tagentId: candidate.agent.id ?? previous?.agentId,\n\t\t\tcapabilities: {\n\t\t\t\t...previous?.capabilities,\n\t\t\t\t...(candidate.pushNotifications === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { pushNotifications: candidate.pushNotifications }),\n\t\t\t},\n\t\t\tskills:\n\t\t\t\tcandidate.skills.length > 0\n\t\t\t\t\t? candidate.skills.map((skill) => ({\n\t\t\t\t\t\t\tid: skill.id,\n\t\t\t\t\t\t\tname: skill.name ?? skill.id,\n\t\t\t\t\t\t\t...(skill.description ? { description: skill.description } : {}),\n\t\t\t\t\t\t\t...(skill.tags ? { tags: skill.tags } : {}),\n\t\t\t\t\t\t\t...(skill.inputModes ? { inputModes: skill.inputModes } : {}),\n\t\t\t\t\t\t\t...(skill.outputModes ? { outputModes: skill.outputModes } : {}),\n\t\t\t\t\t\t\t...(skill.requiredContextGrants\n\t\t\t\t\t\t\t\t? { requiredContextGrants: skill.requiredContextGrants }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.approvalPolicyRef\n\t\t\t\t\t\t\t\t? { approvalPolicyRef: skill.approvalPolicyRef }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.maxAutonomy ? { maxAutonomy: skill.maxAutonomy } : {}),\n\t\t\t\t\t\t\t...(skill.requiredArtifactKinds\n\t\t\t\t\t\t\t\t? { requiredArtifactKinds: skill.requiredArtifactKinds }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.optionalArtifactKinds\n\t\t\t\t\t\t\t\t? { optionalArtifactKinds: skill.optionalArtifactKinds }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.allowedTaskClasses\n\t\t\t\t\t\t\t\t? { allowedTaskClasses: skill.allowedTaskClasses }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.deniedTaskClasses\n\t\t\t\t\t\t\t\t? { deniedTaskClasses: skill.deniedTaskClasses }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.attributes ? { attributes: skill.attributes } : {}),\n\t\t\t\t\t\t\t...(skill.metadata ? { metadata: skill.metadata } : {}),\n\t\t\t\t\t\t}))\n\t\t\t\t\t: previous?.skills,\n\t\t\tmetadata: compactA2APeerMetadata({\n\t\t\t\t...previous?.metadata,\n\t\t\t\tsource: \"platform-agent-registry\",\n\t\t\t\tplatformAgentId: candidate.agent.id,\n\t\t\t\tplatformAgentType: candidate.agent.agentType,\n\t\t\t\tplatformAgentStatus: candidate.agent.status,\n\t\t\t\tselectedEndpoint: candidate.endpointKind,\n\t\t\t\ta2aPushNotifications: candidate.pushNotifications,\n\t\t\t}),\n\t\t\tcreatedAt: previous?.createdAt ?? now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tregistry.peers[name] = entry;\n\t\tif ((makeDefault || !registry.defaultPeer) && !defaultAssigned) {\n\t\t\tregistry.defaultPeer = name;\n\t\t\tdefaultAssigned = true;\n\t\t}\n\t\timported.push({\n\t\t\tname,\n\t\t\tpath: \"\",\n\t\t\turl: entry.url,\n\t\t\t...(entry.agentId ? { agentId: entry.agentId } : {}),\n\t\t});\n\t});\n\treturn saveA2APeerRegistry(registry, { path: registryPath }).then((path) =>\n\t\timported.map((entry) => ({ ...entry, path })),\n\t);\n}\n\nasync function handleA2ACard(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName = parsed.positionals.shift();\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t});\n\tconst card = await discoverA2AAgentCard(peer.config);\n\tconsole.log(JSON.stringify(card, null, 2));\n}\n\nasync function handleA2AFleet(parsed: ParsedA2AArgs): Promise<void> {\n\tconst fleet = await inspectA2AFleet({\n\t\tregistryPath: stringFlag(parsed, \"--registry\"),\n\t\ttasksPath: stringFlag(parsed, \"--tasks\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(fleet, null, 2));\n\t\treturn;\n\t}\n\tconsole.log(`A2A fleet (${fleet.registryPath})`);\n\tif (fleet.peers.length === 0) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\" No peers registered. Run maestro a2a accept <code>.\"),\n\t\t);\n\t\treturn;\n\t}\n\tfor (const peer of fleet.peers) {\n\t\tconst status =\n\t\t\tpeer.status === \"online\" ? chalk.green(\"online\") : chalk.yellow(\"down\");\n\t\tconst label = peer.displayName\n\t\t\t? `${peer.name} (${peer.displayName})`\n\t\t\t: peer.name;\n\t\tconsole.log(`${status} ${chalk.bold(label)} ${chalk.dim(peer.url)}`);\n\t\tif (peer.model || peer.cwd || peer.auth) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` ${[\n\t\t\t\t\t\tpeer.model ? `model=${peer.model}` : undefined,\n\t\t\t\t\t\tpeer.cwd ? `cwd=${peer.cwd}` : undefined,\n\t\t\t\t\t\tpeer.auth ? `auth=${peer.auth}` : undefined,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\" \")}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (peer.lastTask) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` last=${peer.lastTask.id} ${peer.lastTask.state} ${peer.lastTask.text}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (peer.error) {\n\t\t\tconsole.log(chalk.dim(` error=${peer.error}`));\n\t\t}\n\t}\n}\n\nasync function handleA2ACockpit(parsed: ParsedA2AArgs): Promise<void> {\n\tconst cockpit = await buildA2ACockpit({\n\t\tregistryPath: stringFlag(parsed, \"--registry\"),\n\t\ttasksPath: stringFlag(parsed, \"--tasks\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\tpeer: stringFlag(parsed, \"--peer\"),\n\t\tlimit: numberFlag(parsed, \"--limit\"),\n\t});\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(cockpit, null, 2));\n\t\treturn;\n\t}\n\n\tconsole.log(`A2A cockpit (${cockpit.registryPath})`);\n\tconsole.log(chalk.dim(` tasks=${cockpit.tasksPath}`));\n\tconsole.log(\n\t\t[\n\t\t\t`${cockpit.counts.onlinePeers}/${cockpit.counts.peers} peers online`,\n\t\t\t`${cockpit.counts.runningTasks} running`,\n\t\t\t`${cockpit.counts.actionRequiredTasks} waiting`,\n\t\t\t`${cockpit.counts.failedTasks} failed`,\n\t\t\t`${cockpit.counts.completedTasks} completed`,\n\t\t].join(\" · \"),\n\t);\n\tconsole.log(chalk.bold(\"\\nPeers\"));\n\tif (cockpit.peers.length === 0) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\" No peers registered. Run maestro a2a accept <code>.\"),\n\t\t);\n\t} else {\n\t\tfor (const peer of cockpit.peers) {\n\t\t\tconst status =\n\t\t\t\tpeer.status === \"online\" ? chalk.green(\"online\") : chalk.yellow(\"down\");\n\t\t\tconst waiting = peer.taskCounts.actionRequiredTasks;\n\t\t\tconst failed = peer.taskCounts.failedTasks;\n\t\t\tconst taskSummary = [\n\t\t\t\tpeer.taskCounts.runningTasks\n\t\t\t\t\t? `${peer.taskCounts.runningTasks} running`\n\t\t\t\t\t: \"\",\n\t\t\t\twaiting ? chalk.yellow(`${waiting} waiting`) : \"\",\n\t\t\t\tfailed ? chalk.red(`${failed} failed`) : \"\",\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\", \");\n\t\t\tconsole.log(\n\t\t\t\t`${status} ${chalk.bold(peer.name)} ${chalk.dim(peer.url)}${\n\t\t\t\t\ttaskSummary ? ` ${chalk.dim(`(${taskSummary})`)}` : \"\"\n\t\t\t\t}`,\n\t\t\t);\n\t\t\tif (peer.lastTask) {\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\n\t\t\t\t\t\t` last=${peer.lastTask.id} ${peer.lastTask.state} ${peer.lastTask.text}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (peer.error) {\n\t\t\t\tconsole.log(chalk.dim(` error=${peer.error}`));\n\t\t\t}\n\t\t}\n\t}\n\n\tconsole.log(chalk.bold(\"\\nTasks\"));\n\tif (cockpit.tasks.length === 0) {\n\t\tconsole.log(chalk.dim(\" No delegated tasks recorded yet.\"));\n\t} else {\n\t\tfor (const task of cockpit.tasks) {\n\t\t\tconst peerLabel = task.orphanedPeer\n\t\t\t\t? `${task.peer} ${chalk.yellow(\"(orphaned peer)\")}`\n\t\t\t\t: task.peer;\n\t\t\tconsole.log(\n\t\t\t\t`${peerLabel} ${chalk.bold(task.taskId)} ${formatCockpitTaskStatus(\n\t\t\t\t\ttask.status,\n\t\t\t\t)} ${chalk.dim(task.updatedAt)}`,\n\t\t\t);\n\t\t\tconsole.log(chalk.dim(` ${task.text}`));\n\t\t\tif (task.nextCommand) {\n\t\t\t\tconsole.log(chalk.dim(` next: ${task.nextCommand}`));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (cockpit.nextActions.length > 0) {\n\t\tconsole.log(chalk.bold(\"\\nNext actions\"));\n\t\tfor (const action of cockpit.nextActions) {\n\t\t\tconsole.log(\n\t\t\t\t`${formatCockpitActionSeverity(action.severity)} ${action.label}`,\n\t\t\t);\n\t\t\tconsole.log(chalk.dim(` ${action.command}`));\n\t\t}\n\t}\n}\n\nasync function handleA2ASend(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName =\n\t\tparsed.positionals.shift() ?? fail(\"Usage: maestro a2a send <peer> <text>\");\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\"Usage: maestro a2a send <peer> <text>\");\n\t}\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst wait = booleanFlag(parsed, \"--wait\");\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst contextId = `maestro-a2a-context-${randomUUID()}`;\n\tconst metadata = {\n\t\trequestKind: \"maestro-peer-message\",\n\t\trelayPeer: peer.name,\n\t};\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\ttext,\n\t\t\tmetadata,\n\t\t}),\n\t\t...(wait ? { configuration: { returnImmediately: true } } : {}),\n\t});\n\tawait persistA2ALedgerBestEffort(\"record sent task locally\", () =>\n\t\trecordA2ATaskStart({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: sent.task,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\tkind: \"message\",\n\t\t\tmetadata,\n\t\t}),\n\t);\n\tconst task = wait\n\t\t? await waitForA2ATask(peer.config, sent.task.id, parsed)\n\t\t: sent.task;\n\tif (wait) {\n\t\tawait persistA2ALedgerBestEffort(\"sync sent task result locally\", () =>\n\t\t\tupdateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: peer.name,\n\t\t\t\ttask,\n\t\t\t}),\n\t\t);\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function handleA2ADelegate(parsed: ParsedA2AArgs): Promise<void> {\n\tif (booleanFlag(parsed, \"--platform\")) {\n\t\tawait handleA2APlatformDelegate(parsed);\n\t\treturn;\n\t}\n\tconst discover = booleanFlag(parsed, \"--discover\");\n\tconst peerName = discover\n\t\t? undefined\n\t\t: (parsed.positionals.shift() ??\n\t\t\tfail(\"Usage: maestro a2a delegate <peer> <text>\"));\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\n\t\t\tdiscover\n\t\t\t\t? \"Usage: maestro a2a delegate --discover --skill <skill-id> <text>\"\n\t\t\t\t: \"Usage: maestro a2a delegate <peer> <text>\",\n\t\t);\n\t}\n\tconst peer = discover\n\t\t? await resolveDiscoveredA2ADelegatePeer(parsed)\n\t\t: await resolveA2APeer(peerName, {\n\t\t\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\t\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\t\t});\n\tconst wait = booleanFlag(parsed, \"--wait\");\n\tconst role = stringFlag(parsed, \"--role\");\n\tconst cwd = stringFlag(parsed, \"--cwd\") ?? process.cwd();\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst contextId = `maestro-a2a-context-${randomUUID()}`;\n\tconst skillId = stringFlag(parsed, \"--skill\");\n\tconst skill = selectA2APeerSkill(peer.entry.skills, skillId);\n\tconst delegationMetadata = buildA2ADelegationMetadata({\n\t\tpeerName: peer.name,\n\t\trole,\n\t\tcwd,\n\t\tskillId,\n\t\tskill,\n\t\tdiscoverySource: discover ? \"platform-agent-registry\" : undefined,\n\t});\n\tconst ledgerMetadata = buildA2ADelegationLedgerMetadata({\n\t\tpeerName: peer.name,\n\t\trole,\n\t\tcwd,\n\t\tskillId,\n\t\tdiscoverySource: discover ? \"platform-agent-registry\" : undefined,\n\t});\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\ttext,\n\t\t\tmetadata: delegationMetadata,\n\t\t}),\n\t\tconfiguration: { returnImmediately: true },\n\t});\n\tconsole.log(`Delegated to ${chalk.bold(peer.name)} as task ${sent.task.id}`);\n\tawait persistA2ALedgerBestEffort(\"record delegated task locally\", () =>\n\t\trecordA2ATaskStart({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: sent.task,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\tkind: \"delegation\",\n\t\t\trole,\n\t\t\tcwd,\n\t\t\tmetadata: ledgerMetadata,\n\t\t}),\n\t);\n\tconst task = wait\n\t\t? await waitForA2ATask(peer.config, sent.task.id, parsed)\n\t\t: sent.task;\n\tif (wait) {\n\t\tawait persistA2ALedgerBestEffort(\"sync delegated task result locally\", () =>\n\t\t\tupdateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: peer.name,\n\t\t\t\ttask,\n\t\t\t}),\n\t\t);\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function handleA2APlatformDelegate(parsed: ParsedA2AArgs): Promise<void> {\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\n\t\t\t\"Usage: maestro a2a delegate --platform --from-agent-id <agent-id> [--to-agent-id <agent-id>|--capability <capability>] --skill <skill-id> <text>\",\n\t\t);\n\t}\n\tconst fromAgentId =\n\t\tstringFlag(parsed, \"--from-agent-id\") ??\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_A2A_AGENT_ID\",\n\t\t\t\"MAESTRO_AGENT_ID\",\n\t\t\t\"MAESTRO_EVALOPS_AGENT_ID\",\n\t\t\t\"EVALOPS_AGENT_ID\",\n\t\t]) ??\n\t\tfail(\n\t\t\t\"Provide --from-agent-id or set MAESTRO_A2A_AGENT_ID/MAESTRO_AGENT_ID.\",\n\t\t);\n\tconst toAgentId = stringFlag(parsed, \"--to-agent-id\");\n\tconst requiredCapability = stringFlag(parsed, \"--capability\");\n\tconst skillId = stringFlag(parsed, \"--skill\");\n\tif (!toAgentId && !requiredCapability && !skillId) {\n\t\tfail(\n\t\t\t\"Provide --to-agent-id, --capability, or --skill for Platform routing.\",\n\t\t);\n\t}\n\tconst role = stringFlag(parsed, \"--role\");\n\tconst cwd = stringFlag(parsed, \"--cwd\") ?? process.cwd();\n\tconst requestedAt = new Date().toISOString();\n\tconst result = await delegateAgentWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tfromAgentId,\n\t\ttoAgentId,\n\t\trequiredCapability,\n\t\ta2aSkillId: skillId,\n\t\tobjectiveId: stringFlag(parsed, \"--objective-id\"),\n\t\tworkflowRunId: stringFlag(parsed, \"--workflow-run-id\"),\n\t\tworkflowStepId: stringFlag(parsed, \"--workflow-step-id\"),\n\t\tcontextPayload: {\n\t\t\trequestKind: \"maestro-peer-delegation\",\n\t\t\ttransport: \"platform-a2a\",\n\t\t\tprompt: text,\n\t\t\tsource: \"maestro-cli\",\n\t\t\trequestedAt,\n\t\t\t...(role ? { role } : {}),\n\t\t\t...(cwd ? { cwd } : {}),\n\t\t\t...(skillId ? { a2aSkillId: skillId } : {}),\n\t\t\t...(requiredCapability ? { requiredCapability } : {}),\n\t\t},\n\t\treason:\n\t\t\tstringFlag(parsed, \"--reason\") ??\n\t\t\tplatformDelegationReason(text, skillId, requiredCapability),\n\t});\n\tif (!result) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(result, null, 2));\n\t\treturn;\n\t}\n\tconst delegation = result.delegation;\n\tconsole.log(\n\t\t`Platform A2A delegation ${chalk.bold(delegation?.id ?? \"(submitted)\")}: ${\n\t\t\tdelegation?.status ?? \"submitted\"\n\t\t}`,\n\t);\n\tconsole.log(chalk.dim(`From: ${fromAgentId}`));\n\tif (delegation?.toAgentId ?? toAgentId) {\n\t\tconsole.log(chalk.dim(`To: ${delegation?.toAgentId ?? toAgentId}`));\n\t}\n\tif (delegation?.a2aTaskId) {\n\t\tconsole.log(chalk.dim(`Remote task: ${delegation.a2aTaskId}`));\n\t}\n\tif (delegation?.a2aEndpointUrl) {\n\t\tconsole.log(chalk.dim(`Endpoint: ${delegation.a2aEndpointUrl}`));\n\t}\n\tif (delegation?.a2aDispatchStatus) {\n\t\tconsole.log(chalk.dim(`Dispatch: ${delegation.a2aDispatchStatus}`));\n\t}\n\tif (delegation?.a2aResumeWaitContracts?.length) {\n\t\tconsole.log(\n\t\t\tchalk.dim(`Resume waits: ${delegation.a2aResumeWaitContracts.length}`),\n\t\t);\n\t}\n}\n\nfunction platformDelegationReason(\n\ttext: string,\n\tskillId: string | undefined,\n\trequiredCapability: string | undefined,\n): string {\n\tconst target = skillId ?? requiredCapability ?? \"a2a peer\";\n\tconst compact = text.replace(/\\s+/g, \" \").trim();\n\treturn `maestro a2a delegate ${target}: ${compact.slice(0, 120)}`;\n}\n\nasync function handleA2AControl(parsed: ParsedA2AArgs): Promise<void> {\n\tconst delegationId =\n\t\tstringFlag(parsed, \"--delegation-id\") ??\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a control <delegation-id> --mode <mode> [message]\");\n\tconst mode = normalizeA2AControlMode(\n\t\tstringFlag(parsed, \"--mode\") ??\n\t\t\tparsed.positionals.shift() ??\n\t\t\tfail(\"Provide --mode steer|followup|collect|interrupt|cancel\"),\n\t);\n\tconst message =\n\t\tstringFlag(parsed, \"--message\") ?? parsed.positionals.join(\" \").trim();\n\tconst result = await controlA2ADelegationTaskWithPlatform({\n\t\tdelegationId,\n\t\tmode,\n\t\tmessage: message || undefined,\n\t\tidempotencyKey: stringFlag(parsed, \"--idempotency-key\"),\n\t\ttargetRunId: stringFlag(parsed, \"--target-run-id\"),\n\t\tchildRunId: stringFlag(parsed, \"--child-run-id\"),\n\t\tsubagentLaneId: stringFlag(parsed, \"--subagent-lane-id\"),\n\t\tworkItemId: stringFlag(parsed, \"--work-item-id\"),\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tmetadata: {\n\t\t\tsource: \"maestro-cli\",\n\t\t\trequestedAt: new Date().toISOString(),\n\t\t},\n\t});\n\tif (!result) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\tconsole.log(\n\t\t`Control ${chalk.bold(result.remoteTask?.controlId ?? \"(queued)\")}: ${\n\t\t\tresult.remoteTask?.state ?? \"submitted\"\n\t\t}`,\n\t);\n\tif (result.remoteTask?.taskId) {\n\t\tconsole.log(chalk.dim(`Task: ${result.remoteTask.taskId}`));\n\t}\n\tif (result.delegation?.id) {\n\t\tconsole.log(chalk.dim(`Delegation: ${result.delegation.id}`));\n\t}\n}\n\nasync function handleA2AGraph(parsed: ParsedA2AArgs): Promise<void> {\n\tconst delegationId =\n\t\tstringFlag(parsed, \"--delegation-id\") ?? parsed.positionals.shift();\n\tconst rootDelegationId =\n\t\tstringFlag(parsed, \"--root-delegation-id\") ?? stringFlag(parsed, \"--root\");\n\tif (!delegationId && !rootDelegationId) {\n\t\tfail(\n\t\t\t\"Usage: maestro a2a graph <delegation-id> [--root <root-delegation-id>] [--json]\",\n\t\t);\n\t}\n\tconst result = await getA2ADelegationGraphWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tdelegationId,\n\t\trootDelegationId,\n\t\tmaxDepth: nonNegativeNumberFlag(parsed, \"--max-depth\"),\n\t\tlimit: nonNegativeNumberFlag(parsed, \"--limit\"),\n\t});\n\tif (!result) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(result, null, 2));\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`Platform A2A delegation graph ${\n\t\t\tresult.rootDelegationId ? chalk.dim(result.rootDelegationId) : \"\"\n\t\t}`.trim(),\n\t);\n\tconst summary = [\n\t\tresult.total !== undefined ? `total=${result.total}` : undefined,\n\t\tresult.truncated !== undefined\n\t\t\t? `truncated=${result.truncated}`\n\t\t\t: undefined,\n\t\tresult.missingParentDelegationIds?.length\n\t\t\t? `missing_parents=${result.missingParentDelegationIds.length}`\n\t\t\t: undefined,\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n\tif (summary) {\n\t\tconsole.log(chalk.dim(` ${summary}`));\n\t}\n\tif (result.nodes.length === 0) {\n\t\tconsole.log(chalk.dim(\" No delegation graph nodes returned.\"));\n\t\treturn;\n\t}\n\tfor (const node of result.nodes) {\n\t\tconst delegation = node.delegation;\n\t\tconst label =\n\t\t\tdelegation?.id ??\n\t\t\t(node.depth !== undefined ? `depth-${node.depth}` : \"delegation\");\n\t\tconsole.log(\n\t\t\t`${chalk.bold(label)} ${chalk.dim(\n\t\t\t\t[\n\t\t\t\t\tnode.depth !== undefined ? `depth=${node.depth}` : undefined,\n\t\t\t\t\tdelegation?.status,\n\t\t\t\t\tnode.terminal ? \"terminal\" : undefined,\n\t\t\t\t\tnode.childCount !== undefined\n\t\t\t\t\t\t? `children=${node.childCount}`\n\t\t\t\t\t\t: undefined,\n\t\t\t\t]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(\" \"),\n\t\t\t)}`,\n\t\t);\n\t\tconst lineage = delegation?.a2aDelegationChain?.join(\" -> \");\n\t\tconst taskId = delegation?.a2aTaskId;\n\t\tif (taskId || lineage) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` ${[\n\t\t\t\t\t\ttaskId ? `task=${taskId}` : undefined,\n\t\t\t\t\t\tlineage ? `lineage=${lineage}` : undefined,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\" \")}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (result.edges.length > 0) {\n\t\tconsole.log(chalk.dim(` edges=${result.edges.length}`));\n\t}\n}\n\nasync function resolveDiscoveredA2ADelegatePeer(\n\tparsed: ParsedA2AArgs,\n): Promise<Awaited<ReturnType<typeof resolveA2APeer>>> {\n\tconst skillId = stringFlag(parsed, \"--skill\");\n\tif (!skillId) {\n\t\tfail(\"Usage: maestro a2a delegate --discover --skill <skill-id> <text>\");\n\t}\n\tconst candidates = await listA2APeerCandidatesWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tcapability: stringFlag(parsed, \"--capability\"),\n\t\tsurface: stringFlag(parsed, \"--surface\") ?? \"a2a\",\n\t\tstatus: stringFlag(parsed, \"--status\") ?? PlatformAgentStatusValue.Idle,\n\t\tlimit: numberFlag(parsed, \"--limit\") ?? 10,\n\t\toffset: nonNegativeNumberFlag(parsed, \"--offset\"),\n\t\tskillId,\n\t\tpreferInternalEndpoint: booleanFlag(parsed, \"--prefer-internal\"),\n\t});\n\tif (!candidates) {\n\t\tfail(\n\t\t\t\"Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID.\",\n\t\t);\n\t}\n\tif (candidates.length === 0) {\n\t\tfail(`No Platform A2A peers advertise skill ${skillId}.`);\n\t}\n\tconst selected = selectA2ACapabilityPeer(candidates, {\n\t\tskillId,\n\t\tpreferInternalEndpoint: booleanFlag(parsed, \"--prefer-internal\"),\n\t});\n\tconst candidate = selected?.candidate;\n\tif (!candidate || !selected) {\n\t\tfail(`No Platform A2A peers advertise skill ${skillId}.`);\n\t}\n\tconst imported = await importDiscoveredA2APeers(parsed, [candidate]);\n\tconst importedPeer = imported[0];\n\tif (!importedPeer) {\n\t\tfail(`Could not import Platform A2A peer for skill ${skillId}.`);\n\t}\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t`Selected Platform A2A peer ${importedPeer.name} (${importedPeer.url}) for ${skillId}`,\n\t\t),\n\t);\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t`Capability score: ${selected.score} (${selected.reasons.join(\", \")})`,\n\t\t),\n\t);\n\treturn resolveA2APeer(importedPeer.name, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n}\n\nfunction selectA2APeerSkill(\n\tskills: A2APeerRegistryEntry[\"skills\"] | undefined,\n\tskillId: string | undefined,\n): NonNullable<A2APeerRegistryEntry[\"skills\"]>[number] | undefined {\n\tif (!skillId) {\n\t\treturn undefined;\n\t}\n\treturn skills?.find((skill) => skill.id === skillId);\n}\n\nfunction buildA2ADelegationMetadata(input: {\n\tpeerName: string;\n\trole?: string;\n\tcwd?: string;\n\tskillId?: string;\n\tskill?: NonNullable<A2APeerRegistryEntry[\"skills\"]>[number];\n\tdiscoverySource?: string;\n}): Record<string, unknown> {\n\tconst skill = input.skill;\n\tconst subagentRequestMetadataPath = a2ASkillRequestMetadataPath(skill);\n\tconst subagentRequest = input.skillId\n\t\t? {\n\t\t\t\tskillId: input.skillId,\n\t\t\t\t...(skill?.name ? { skillName: skill.name } : {}),\n\t\t\t\t...(skill?.description ? { description: skill.description } : {}),\n\t\t\t\t...(input.role ? { role: input.role } : {}),\n\t\t\t\t...(input.cwd ? { cwd: input.cwd } : {}),\n\t\t\t\t...(skill?.requiredContextGrants\n\t\t\t\t\t? { requiredContextGrants: skill.requiredContextGrants }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.approvalPolicyRef\n\t\t\t\t\t? { approvalPolicyRef: skill.approvalPolicyRef }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.maxAutonomy ? { maxAutonomy: skill.maxAutonomy } : {}),\n\t\t\t\t...(skill?.requiredArtifactKinds\n\t\t\t\t\t? { requiredArtifactKinds: skill.requiredArtifactKinds }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.optionalArtifactKinds\n\t\t\t\t\t? { optionalArtifactKinds: skill.optionalArtifactKinds }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.allowedTaskClasses\n\t\t\t\t\t? { allowedTaskClasses: skill.allowedTaskClasses }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.deniedTaskClasses\n\t\t\t\t\t? { deniedTaskClasses: skill.deniedTaskClasses }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.attributes ? { attributes: skill.attributes } : {}),\n\t\t\t\t...(skill?.metadata ? { metadata: skill.metadata } : {}),\n\t\t\t}\n\t\t: undefined;\n\treturn {\n\t\trequestKind: \"maestro-peer-delegation\",\n\t\trelayPeer: input.peerName,\n\t\t...(input.role ? { delegationRole: input.role } : {}),\n\t\t...(input.cwd ? { delegationCwd: input.cwd } : {}),\n\t\t...(input.discoverySource\n\t\t\t? { discoverySource: input.discoverySource }\n\t\t\t: {}),\n\t\t...(input.skillId ? { a2aSkillId: input.skillId } : {}),\n\t\t...(subagentRequest\n\t\t\t? { [subagentRequestMetadataPath]: subagentRequest }\n\t\t\t: {}),\n\t};\n}\n\nfunction a2ASkillRequestMetadataPath(\n\tskill: NonNullable<A2APeerRegistryEntry[\"skills\"]>[number] | undefined,\n): string {\n\treturn (\n\t\tstringMetadataValue(skill?.metadata, \"requestMetadataPath\") ??\n\t\tstringMetadataValue(skill?.metadata, \"request_metadata_path\") ??\n\t\tstringMetadataValue(skill?.attributes, \"requestMetadataPath\") ??\n\t\tstringMetadataValue(skill?.attributes, \"request_metadata_path\") ??\n\t\t\"evalops.subagentRequest\"\n\t);\n}\n\nfunction stringMetadataValue(\n\trecord: Record<string, string | number | boolean> | undefined,\n\tkey: string,\n): string | undefined {\n\tconst value = record?.[key];\n\tif (typeof value !== \"string\") {\n\t\treturn undefined;\n\t}\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction buildA2ADelegationLedgerMetadata(input: {\n\tpeerName: string;\n\trole?: string;\n\tcwd?: string;\n\tskillId?: string;\n\tdiscoverySource?: string;\n}): Record<string, string | number | boolean> | undefined {\n\treturn compactA2APeerMetadata({\n\t\trequestKind: \"maestro-peer-delegation\",\n\t\trelayPeer: input.peerName,\n\t\tdelegationRole: input.role,\n\t\tdelegationCwd: input.cwd,\n\t\tdiscoverySource: input.discoverySource,\n\t\ta2aSkillId: input.skillId,\n\t});\n}\n\nasync function handleA2AReply(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a reply <peer> <task-id> <text>\");\n\tconst taskId =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a reply <peer> <task-id> <text>\");\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\"Usage: maestro a2a reply <peer> <task-id> <text>\");\n\t}\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst existing = await loadA2AReplyLedgerEntry(parsed, peer.name, taskId);\n\tconst wait = booleanFlag(parsed, \"--wait\");\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId: existing?.contextId,\n\t\t\ttaskId,\n\t\t\ttext,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-task-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: taskId,\n\t\t\t},\n\t\t}),\n\t\tconfiguration: { returnImmediately: true },\n\t});\n\tconsole.log(`Replied to ${chalk.bold(peer.name)} task ${sent.task.id}`);\n\tawait persistA2ALedgerBestEffort(\"record task reply locally\", () =>\n\t\trecordA2ATaskReply({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: sent.task,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-task-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: taskId,\n\t\t\t},\n\t\t}),\n\t);\n\tconst task = wait\n\t\t? await waitForA2ATask(peer.config, sent.task.id, parsed)\n\t\t: sent.task;\n\tif (wait) {\n\t\tawait persistA2ALedgerBestEffort(\"sync replied task result locally\", () =>\n\t\t\tupdateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: peer.name,\n\t\t\t\ttask,\n\t\t\t}),\n\t\t);\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function handleA2ACoordinate(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName = parsed.positionals.shift();\n\tif (parsed.positionals.length > 0) {\n\t\tfail(\"Usage: maestro a2a coordinate [peer] [--reply <text>] [--wait]\");\n\t}\n\tconst replyText = stringFlag(parsed, \"--reply\");\n\tif (parsed.flags.has(\"--reply\") && !replyText) {\n\t\tfail(\"Usage: maestro a2a coordinate [peer] --reply <text> [--wait]\");\n\t}\n\tif (replyText) {\n\t\tawait handleA2ACoordinateReply(parsed, peerName, replyText);\n\t\treturn;\n\t}\n\tawait refreshA2ANonFinalTaskLedger(parsed, peerName);\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tconst tasks = actionableA2ATaskEntries(ledger, peerName);\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tpath: getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\")),\n\t\t\t\t\ttasks: tasks.map((entry) => ({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\tkind: entry.kind,\n\t\t\t\t\t\tpeer: entry.peer,\n\t\t\t\t\t\ttaskId: entry.taskId,\n\t\t\t\t\t\tcontextId: entry.contextId,\n\t\t\t\t\t\tstate: entry.state,\n\t\t\t\t\t\ttext: entry.text,\n\t\t\t\t\t\tresponseText: entry.responseText,\n\t\t\t\t\t\tworkGraph: entry.workGraph,\n\t\t\t\t\t\tupdatedAt: entry.updatedAt,\n\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`A2A coordinate (${getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\"))})`,\n\t);\n\tif (tasks.length === 0) {\n\t\tconsole.log(chalk.dim(\" No actionable A2A tasks require coordination.\"));\n\t\treturn;\n\t}\n\tfor (const task of tasks) {\n\t\tconsole.log(\n\t\t\t`${task.peer} ${chalk.bold(task.taskId)} ${task.state} ${chalk.dim(task.updatedAt)}`,\n\t\t);\n\t\tconsole.log(chalk.dim(` ${task.text}`));\n\t\tif (task.responseText) {\n\t\t\tconsole.log(` ${task.responseText}`);\n\t\t}\n\t\tprintLedgerWorkGraph(task, booleanFlag(parsed, \"--work-graph\"));\n\t}\n}\n\nasync function handleA2ACoordinateReply(\n\tparsed: ParsedA2AArgs,\n\tpeerName: string | undefined,\n\ttext: string,\n): Promise<void> {\n\tawait refreshA2ANonFinalTaskLedger(parsed, peerName);\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tconst entry = selectCoordinateReplyTask(ledger, peerName);\n\tif (!entry) {\n\t\tfail(\"No actionable A2A task is waiting for coordinator input.\");\n\t}\n\tconst peer = await resolveA2APeer(entry.peer, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId: entry.contextId,\n\t\t\ttaskId: entry.taskId,\n\t\t\ttext,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-coordinate-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: entry.taskId,\n\t\t\t},\n\t\t}),\n\t\tconfiguration: { returnImmediately: true },\n\t});\n\tconst replyTask: A2ATask = {\n\t\t...sent.task,\n\t\tid: entry.taskId,\n\t\tcontextId: sent.task.contextId ?? entry.contextId,\n\t};\n\tconst json = booleanFlag(parsed, \"--json\");\n\tif (!json) {\n\t\tconsole.log(`Coordinated ${chalk.bold(peer.name)} task ${entry.taskId}`);\n\t}\n\tawait persistA2ALedgerBestEffort(\"record coordinate reply locally\", () =>\n\t\trecordA2ATaskReply({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: replyTask,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-coordinate-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: entry.taskId,\n\t\t\t},\n\t\t}),\n\t);\n\tconst task = booleanFlag(parsed, \"--wait\")\n\t\t? await waitForA2ATask(peer.config, entry.taskId, parsed)\n\t\t: replyTask;\n\tif (booleanFlag(parsed, \"--wait\")) {\n\t\tawait persistA2ALedgerBestEffort(\n\t\t\t\"sync coordinate task result locally\",\n\t\t\t() =>\n\t\t\t\tupdateA2ATaskInLedger({\n\t\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\t\tpeer: peer.name,\n\t\t\t\t\ttask,\n\t\t\t\t}),\n\t\t);\n\t}\n\tif (json) {\n\t\tconsole.log(JSON.stringify({ peer: peer.name, task }, null, 2));\n\t\treturn;\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nfunction actionableA2ATaskEntries(\n\tledger: { tasks: A2ATaskLedgerEntry[] },\n\tpeerName: string | undefined,\n): A2ATaskLedgerEntry[] {\n\treturn listA2ATaskEntries(ledger, { peer: peerName }).filter((entry) =>\n\t\tisActionRequiredA2AState(entry.state),\n\t);\n}\n\nfunction selectCoordinateReplyTask(\n\tledger: { tasks: A2ATaskLedgerEntry[] },\n\tpeerName: string | undefined,\n): A2ATaskLedgerEntry | undefined {\n\tconst tasks = actionableA2ATaskEntries(ledger, peerName);\n\tif (tasks.length > 1) {\n\t\tfail(\n\t\t\t\"Multiple actionable A2A tasks found; use `maestro a2a reply <peer> <task-id> <text>`.\",\n\t\t);\n\t}\n\treturn tasks[0];\n}\n\nasync function loadA2AReplyLedgerEntry(\n\tparsed: ParsedA2AArgs,\n\tpeerName: string,\n\ttaskId: string,\n): Promise<A2ATaskLedgerEntry | undefined> {\n\ttry {\n\t\tconst ledger = await loadA2ATaskLedger({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t});\n\t\treturn listA2ATaskEntries(ledger, { peer: peerName }).find(\n\t\t\t(entry) => entry.taskId === taskId,\n\t\t);\n\t} catch (error) {\n\t\tif (isAbortError(error)) {\n\t\t\tthrow error;\n\t\t}\n\t\tconsole.error(\n\t\t\tchalk.yellow(\n\t\t\t\t`A2A task ledger warning: could not load task reply context: ${errorMessage(error)}`,\n\t\t\t),\n\t\t);\n\t\treturn undefined;\n\t}\n}\n\nasync function handleA2ATasks(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName = parsed.positionals.shift();\n\tif (booleanFlag(parsed, \"--refresh\")) {\n\t\tawait refreshA2ATaskLedger(parsed, peerName);\n\t}\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tconst tasks = listA2ATaskEntries(ledger, { peer: peerName });\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tpath: getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\")),\n\t\t\t\t\ttasks: tasks.map((entry) => ({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\tkind: entry.kind,\n\t\t\t\t\t\tpeer: entry.peer,\n\t\t\t\t\t\ttaskId: entry.taskId,\n\t\t\t\t\t\tstate: entry.state,\n\t\t\t\t\t\ttext: entry.text,\n\t\t\t\t\t\tresponseText: entry.responseText,\n\t\t\t\t\t\tworkGraph: entry.workGraph,\n\t\t\t\t\t\tupdatedAt: entry.updatedAt,\n\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`A2A tasks (${getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\"))})`,\n\t);\n\tif (tasks.length === 0) {\n\t\tconsole.log(chalk.dim(\" No delegated tasks recorded yet.\"));\n\t\treturn;\n\t}\n\tfor (const task of tasks) {\n\t\tconsole.log(\n\t\t\t`${task.peer} ${chalk.bold(task.taskId)} ${task.state} ${chalk.dim(task.updatedAt)}`,\n\t\t);\n\t\tconsole.log(chalk.dim(` ${task.text}`));\n\t\tif (task.responseText) {\n\t\t\tconsole.log(` ${task.responseText}`);\n\t\t}\n\t\tprintLedgerWorkGraph(task, booleanFlag(parsed, \"--work-graph\"));\n\t}\n}\n\nasync function handleA2AWait(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a wait <peer> <task-id>\");\n\tconst taskId =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a wait <peer> <task-id>\");\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst task = await waitForA2ATask(peer.config, taskId, parsed);\n\tawait persistA2ALedgerBestEffort(\"sync task result locally\", () =>\n\t\tupdateA2ATaskInLedger({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\ttask,\n\t\t}),\n\t);\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function refreshA2ATaskLedger(\n\tparsed: ParsedA2AArgs,\n\tpeerFilter: string | undefined,\n): Promise<void> {\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tfor (const entry of listA2ATaskEntries(ledger, { peer: peerFilter })) {\n\t\tif (isTerminalA2AState(entry.state)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst peer = await resolveA2APeer(entry.peer, {\n\t\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\t});\n\t\tconst task = await getA2ATask(peer.config, entry.taskId);\n\t\tawait updateA2ATaskInLedger({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: entry.peer,\n\t\t\ttask,\n\t\t});\n\t}\n}\n\nasync function refreshA2ANonFinalTaskLedger(\n\tparsed: ParsedA2AArgs,\n\tpeerFilter: string | undefined,\n): Promise<void> {\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tfor (const entry of listA2ATaskEntries(ledger, { peer: peerFilter })) {\n\t\tif (isFinalA2AState(entry.state)) {\n\t\t\tcontinue;\n\t\t}\n\t\ttry {\n\t\t\tconst peer = await resolveA2APeer(entry.peer, {\n\t\t\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\t\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\t\t});\n\t\t\tconst task = await getA2ATask(peer.config, entry.taskId);\n\t\t\tawait updateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: entry.peer,\n\t\t\t\ttask,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (isAbortError(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconsole.error(\n\t\t\t\tchalk.yellow(\n\t\t\t\t\t`A2A coordinate warning: could not refresh ${entry.peer} task ${entry.taskId}: ${errorMessage(error)}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n}\n\nasync function waitForA2ATask(\n\tconfig: A2AServiceConfig,\n\ttaskId: string,\n\tparsed: ParsedA2AArgs,\n): Promise<A2ATask> {\n\tconst maxWaitMs = numberFlag(parsed, \"--max-wait-ms\") ?? DEFAULT_WAIT_MS;\n\tconst intervalMs =\n\t\tnumberFlag(parsed, \"--interval-ms\") ?? DEFAULT_WAIT_INTERVAL_MS;\n\tconst deadline = Date.now() + maxWaitMs;\n\tlet lastTask = await getA2ATask(config, taskId);\n\twhile (!isTerminalA2AState(lastTask.status.state) && Date.now() < deadline) {\n\t\tawait sleep(intervalMs);\n\t\tlastTask = await getA2ATask(config, taskId);\n\t}\n\tif (!isTerminalA2AState(lastTask.status.state)) {\n\t\tthrow new Error(\n\t\t\t`Timed out waiting for A2A task ${taskId}; last state ${lastTask.status.state}`,\n\t\t);\n\t}\n\treturn lastTask;\n}\n\nfunction printTask(\n\ttask: A2ATask,\n\toptions: { includeWorkGraphDetails?: boolean } = {},\n): void {\n\tconsole.log(`Task ${task.id}: ${task.status.state}`);\n\tconst text = a2aTaskText(task);\n\tif (text) {\n\t\tconsole.log(text);\n\t}\n\tprintTaskWorkGraph(task, Boolean(options.includeWorkGraphDetails));\n}\n\nfunction a2aTaskText(task: A2ATask): string | undefined {\n\treturn extractA2ATaskText(task);\n}\n\nfunction printTaskWorkGraph(task: A2ATask, includeDetails: boolean): void {\n\tprintWorkGraphLines(extractA2AWorkGraphMetadata(task), includeDetails);\n}\n\nfunction printLedgerWorkGraph(\n\tentry: A2ATaskLedgerEntry,\n\tincludeDetails: boolean,\n): void {\n\tprintWorkGraphLines(entry.workGraph, includeDetails);\n}\n\nfunction printWorkGraphLines(\n\tworkGraph: A2ATaskLedgerEntry[\"workGraph\"],\n\tincludeDetails: boolean,\n): void {\n\tconst summary = formatA2AWorkGraphSummary(workGraph);\n\tif (summary) {\n\t\tconsole.log(chalk.dim(` ${summary}`));\n\t}\n\tif (!includeDetails) {\n\t\treturn;\n\t}\n\tconst codexSubagents = formatA2AWorkGraphCodexSubagents(workGraph);\n\tif (codexSubagents) {\n\t\tconsole.log(chalk.dim(` ${codexSubagents}`));\n\t}\n\tif (workGraph?.correlationPath) {\n\t\tconsole.log(chalk.dim(` Correlation: ${workGraph.correlationPath}`));\n\t}\n}\n\nexport const isA2AWaitCompletionState = isTerminalA2AState;\n\nfunction discoveredPeerJson(candidate: PlatformAgentRegistryA2APeerCandidate): {\n\tagentId?: string;\n\tname?: string;\n\tstatus?: string;\n\tendpointUrl: string;\n\tendpointKind?: \"public\" | \"internal\";\n\tagentCardUrl?: string;\n\tprotocolBinding?: string;\n\tprotocolVersion?: string;\n\tskills: PlatformAgentRegistryA2APeerCandidate[\"skills\"];\n\tsupportedExtensions?: string[];\n\tpushNotifications?: boolean;\n} {\n\treturn {\n\t\t...(candidate.agent.id ? { agentId: candidate.agent.id } : {}),\n\t\t...(candidate.agent.name ? { name: candidate.agent.name } : {}),\n\t\t...(candidate.agent.status ? { status: candidate.agent.status } : {}),\n\t\tendpointUrl: candidate.endpointUrl,\n\t\t...(candidate.endpointKind ? { endpointKind: candidate.endpointKind } : {}),\n\t\t...(candidate.agentCardUrl ? { agentCardUrl: candidate.agentCardUrl } : {}),\n\t\t...(candidate.protocolBinding\n\t\t\t? { protocolBinding: candidate.protocolBinding }\n\t\t\t: {}),\n\t\t...(candidate.protocolVersion\n\t\t\t? { protocolVersion: candidate.protocolVersion }\n\t\t\t: {}),\n\t\tskills: candidate.skills,\n\t\t...(candidate.supportedExtensions\n\t\t\t? { supportedExtensions: candidate.supportedExtensions }\n\t\t\t: {}),\n\t\t...(candidate.pushNotifications === undefined\n\t\t\t? {}\n\t\t\t: { pushNotifications: candidate.pushNotifications }),\n\t};\n}\n\nfunction discoveredPeerName(\n\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\tindex: number,\n): string {\n\tconst raw =\n\t\tcandidate.agent.id ??\n\t\tcandidate.agent.name ??\n\t\t`platform-a2a-peer-${index + 1}`;\n\tconst sanitized =\n\t\traw\n\t\t\t.trim()\n\t\t\t.replace(/[^A-Za-z0-9_.-]+/gu, \"-\")\n\t\t\t.replace(/^-+|-+$/gu, \"\")\n\t\t\t.slice(0, 80) || `platform-a2a-peer-${index + 1}`;\n\treturn normalizePeerName(sanitized);\n}\n\nfunction uniqueDiscoveredPeerName(input: {\n\tbaseName: string;\n\tcandidate: PlatformAgentRegistryA2APeerCandidate;\n\timportedNames: Set<string>;\n\tpeers: Record<string, A2APeerRegistryEntry>;\n}): string {\n\tfor (let suffix = 1; suffix <= 100; suffix++) {\n\t\tconst name =\n\t\t\tsuffix === 1 ? input.baseName : suffixedPeerName(input.baseName, suffix);\n\t\tconst existing = input.peers[name];\n\t\tconst hasSameAgentId = Boolean(\n\t\t\texisting?.agentId &&\n\t\t\t\tinput.candidate.agent.id &&\n\t\t\t\texisting.agentId === input.candidate.agent.id,\n\t\t);\n\t\tconst hasSameEndpoint = existing?.url === input.candidate.endpointUrl;\n\t\tif (\n\t\t\t!input.importedNames.has(name) &&\n\t\t\t(!existing || hasSameAgentId || hasSameEndpoint)\n\t\t) {\n\t\t\tinput.importedNames.add(name);\n\t\t\treturn name;\n\t\t}\n\t}\n\tthrow new Error(\n\t\t`Could not derive a unique A2A peer name for ${input.baseName}`,\n\t);\n}\n\nfunction suffixedPeerName(baseName: string, suffix: number): string {\n\tconst suffixText = `-${suffix}`;\n\treturn normalizePeerName(\n\t\t`${baseName.slice(0, 80 - suffixText.length)}${suffixText}`,\n\t);\n}\n\nfunction compactA2APeerMetadata(\n\trecord: Record<string, string | number | boolean | undefined>,\n): Record<string, string | number | boolean> | undefined {\n\tconst entries = Object.entries(record).filter(\n\t\t(entry): entry is [string, string | number | boolean] =>\n\t\t\tentry[1] !== undefined,\n\t);\n\treturn entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\nfunction baseUrlFromAgentCardUrl(agentCardUrl: string): string {\n\tconst parsed = new URL(agentCardUrl);\n\tparsed.pathname = parsed.pathname.replace(\n\t\t/\\/\\.well-known\\/agent-card\\.json$/u,\n\t\t\"\",\n\t);\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\treturn parsed.toString().replace(/\\/+$/u, \"\");\n}\n\nfunction stringFlag(parsed: ParsedA2AArgs, name: string): string | undefined {\n\tconst value = parsed.flags.get(name);\n\treturn typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction stringListFlag(\n\tparsed: ParsedA2AArgs,\n\tname: string,\n\tfallback: string[],\n): string[] {\n\tconst value = stringFlag(parsed, name);\n\tif (!value) {\n\t\treturn fallback;\n\t}\n\tconst parsedValues = value\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter(Boolean);\n\treturn parsedValues.length > 0 ? parsedValues : fallback;\n}\n\nfunction numberFlag(parsed: ParsedA2AArgs, name: string): number | undefined {\n\tconst value = stringFlag(parsed, name);\n\tif (!value) {\n\t\treturn undefined;\n\t}\n\tconst parsedValue = Number(value);\n\tif (!Number.isFinite(parsedValue) || parsedValue <= 0) {\n\t\tthrow new Error(`${name} must be a positive number`);\n\t}\n\treturn parsedValue;\n}\n\nfunction nonNegativeNumberFlag(\n\tparsed: ParsedA2AArgs,\n\tname: string,\n): number | undefined {\n\tconst value = stringFlag(parsed, name);\n\tif (!value) {\n\t\treturn undefined;\n\t}\n\tconst parsedValue = Number(value);\n\tif (!Number.isFinite(parsedValue) || parsedValue < 0) {\n\t\tthrow new Error(`${name} must be a non-negative number`);\n\t}\n\treturn parsedValue;\n}\n\nfunction minutesFlag(parsed: ParsedA2AArgs, name: string): number | undefined {\n\tconst value = numberFlag(parsed, name);\n\treturn value === undefined ? undefined : value * 60 * 1000;\n}\n\nfunction booleanFlag(parsed: ParsedA2AArgs, name: string): boolean {\n\treturn parsed.flags.get(name) === true;\n}\n\nfunction formatCockpitTaskStatus(status: string): string {\n\tswitch (status) {\n\t\tcase \"waiting\":\n\t\t\treturn chalk.yellow(status);\n\t\tcase \"failed\":\n\t\t\treturn chalk.red(status);\n\t\tcase \"completed\":\n\t\t\treturn chalk.green(status);\n\t\tcase \"running\":\n\t\t\treturn chalk.cyan(status);\n\t\tdefault:\n\t\t\treturn chalk.dim(status);\n\t}\n}\n\nfunction formatCockpitActionSeverity(severity: string): string {\n\tswitch (severity) {\n\t\tcase \"critical\":\n\t\t\treturn chalk.red(\"!\");\n\t\tcase \"warning\":\n\t\t\treturn chalk.yellow(\"!\");\n\t\tdefault:\n\t\t\treturn chalk.cyan(\">\");\n\t}\n}\n\nasync function persistA2ALedgerBestEffort(\n\tdescription: string,\n\taction: () => Promise<unknown>,\n): Promise<void> {\n\ttry {\n\t\tawait action();\n\t} catch (error) {\n\t\tif (isAbortError(error)) {\n\t\t\tthrow error;\n\t\t}\n\t\tconsole.error(\n\t\t\tchalk.yellow(\n\t\t\t\t`A2A task ledger warning: could not ${description}: ${errorMessage(error)}`,\n\t\t\t),\n\t\t);\n\t}\n}\n\nfunction fail(message: string): never {\n\tthrow new Error(message);\n}\n\nfunction sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction errorMessage(error: unknown): string {\n\treturn error instanceof Error ? error.message : String(error);\n}\n\nfunction agentRegistryNotConfiguredMessage(): string {\n\treturn \"Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID, or pass --workspace-id with shared EvalOps credentials.\";\n}\n\nfunction normalizeA2AControlMode(\n\tvalue: string,\n): PlatformA2ADelegationTaskControlModeValue {\n\tswitch (value.toLowerCase()) {\n\t\tcase \"steer\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Steer;\n\t\tcase \"followup\":\n\t\tcase \"follow-up\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Followup;\n\t\tcase \"collect\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Collect;\n\t\tcase \"interrupt\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Interrupt;\n\t\tcase \"cancel\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Cancel;\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported A2A control mode: ${value}`);\n\t}\n}\n\nfunction printA2AHelp(): void {\n\tconsole.log(`Usage:\n maestro a2a offer --url <base-url> [--name <display-name>] [--peer-id <id>]\n maestro a2a accept <pairing-code> [--name <peer>] [--default] [--token-env ENV]\n maestro a2a peers\n maestro a2a discover [--capability <capability>] [--skill <skill-id>] [--import]\n maestro a2a register --url <base-url> [--agent-id <id>] [--workspace-id <id>] [--json]\n maestro a2a fleet [--json]\n maestro a2a cockpit [--peer <peer>] [--json]\n maestro a2a card <peer>\n maestro a2a coordinate [peer] [--reply <text>] [--wait] [--json] [--work-graph]\n maestro a2a delegate <peer> <text> [--role <role>] [--cwd <path>] [--wait] [--work-graph]\n maestro a2a delegate --discover --skill <skill-id> <text> [--capability <capability>] [--prefer-internal]\n maestro a2a delegate --platform --from-agent-id <agent-id> [--to-agent-id <agent-id>|--capability <capability>] --skill <skill-id> <text> [--json]\n maestro a2a control <delegation-id> --mode steer|followup|collect|interrupt|cancel [--workspace-id <id>] [message]\n maestro a2a graph <delegation-id> [--workspace-id <id>] [--json]\n maestro a2a reply <peer> <task-id> <text> [--wait] [--work-graph]\n maestro a2a send <peer> <text> [--wait] [--tasks <path>] [--work-graph]\n maestro a2a tasks [peer] [--json] [--refresh] [--work-graph]\n maestro a2a wait <peer> <task-id> [--work-graph]\n\nPairing codes carry Agent Card and transport coordinates only. Configure auth with\n--token-env or --token-file when accepting a peer; bearer tokens are never embedded.`);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../../src/cli/commands/a2a.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { readFile } from \"node:fs/promises\";\nimport chalk from \"chalk\";\nimport { selectA2ACapabilityPeer } from \"../../platform/a2a-capability-market.js\";\nimport {\n\ttype A2AAgentCard,\n\ttype A2AServiceConfig,\n\ttype A2ATask,\n\tbuildA2AUserMessage,\n\tdiscoverA2AAgentCard,\n\tgetA2ATask,\n\tsendA2AMessage,\n} from \"../../platform/a2a-client.js\";\nimport { buildA2ACockpit } from \"../../platform/a2a-cockpit.js\";\nimport { inspectA2AFleet } from \"../../platform/a2a-fleet.js\";\nimport {\n\tbuildMaestroA2APeerProjection,\n\tdefaultMaestroA2ACapabilities,\n} from \"../../platform/a2a-maestro-peer.js\";\nimport {\n\tcreateA2APeerPairingPayload,\n\tcreateA2APeerPairingPayloadFromAgentCard,\n\tdecodeA2APeerPairingCode,\n\tencodeA2APeerPairingCode,\n\tresolveA2AAgentCardUrl,\n} from \"../../platform/a2a-peer-pairing.js\";\nimport {\n\ttype A2APeerRegistryEntry,\n\tlistA2APeers,\n\tloadA2APeerRegistry,\n\tnormalizePeerName,\n\tresolveA2APeer,\n\tsaveA2APeerRegistry,\n\tupsertA2APeerFromPairingPayload,\n} from \"../../platform/a2a-peer-registry.js\";\nimport {\n\ttype A2ATaskLedgerEntry,\n\textractA2ATaskText,\n\tgetA2ATaskLedgerPath,\n\tisActionRequiredA2AState,\n\tisFinalA2AState,\n\tisTerminalA2AState,\n\tlistA2ATaskEntries,\n\tloadA2ATaskLedger,\n\trecordA2ATaskReply,\n\trecordA2ATaskStart,\n\tupdateA2ATaskInLedger,\n} from \"../../platform/a2a-task-ledger.js\";\nimport {\n\ttype A2ATelemetryCloudEventLike,\n\tinspectA2ATelemetry,\n} from \"../../platform/a2a-telemetry-inspect.js\";\nimport {\n\textractA2AWorkGraphMetadata,\n\tformatA2AWorkGraphCodexSubagents,\n\tformatA2AWorkGraphSummary,\n} from \"../../platform/a2a-work-graph.js\";\nimport {\n\tPlatformA2ADelegationTaskControlModeValue,\n\ttype PlatformAgentDiscoveryEvidence,\n\ttype PlatformAgentRegistryA2APeerCandidate,\n\ttype PlatformAgentRegistryAgent,\n\tPlatformAgentStatusValue,\n\tcontrolA2ADelegationTaskWithPlatform,\n\tdelegateAgentWithPlatform,\n\tgetA2ADelegationGraphWithPlatform,\n\theartbeatAgentWithPlatform,\n\tisAgentAlreadyExistsError,\n\tlistA2APeerCandidatesWithEvidenceWithPlatform,\n\tregisterAgentWithPlatform,\n\tupdateAgentWithPlatform,\n} from \"../../platform/agent-registry-client.js\";\nimport { getEnvValue } from \"../../platform/client.js\";\nimport { isAbortError } from \"../../utils/abort-error.js\";\n\nconst DEFAULT_WAIT_MS = 300_000;\nconst DEFAULT_WAIT_INTERVAL_MS = 5_000;\nconst A2A_VALUE_FLAGS_BY_SUBCOMMAND: Record<string, readonly string[]> = {\n\taccept: [\n\t\t\"--name\",\n\t\t\"--organization-id\",\n\t\t\"--registry\",\n\t\t\"--token-env\",\n\t\t\"--token-file\",\n\t\t\"--workspace-id\",\n\t],\n\tcard: [\"--registry\", \"--timeout-ms\"],\n\tcockpit: [\"--registry\", \"--tasks\", \"--timeout-ms\", \"--peer\", \"--limit\"],\n\tdiscover: [\n\t\t\"--capability\",\n\t\t\"--limit\",\n\t\t\"--offset\",\n\t\t\"--registry\",\n\t\t\"--skill\",\n\t\t\"--status\",\n\t\t\"--surface\",\n\t\t\"--workspace-id\",\n\t],\n\tdelegate: [\n\t\t\"--capability\",\n\t\t\"--cwd\",\n\t\t\"--from-agent-id\",\n\t\t\"--interval-ms\",\n\t\t\"--limit\",\n\t\t\"--max-wait-ms\",\n\t\t\"--objective-id\",\n\t\t\"--offset\",\n\t\t\"--registry\",\n\t\t\"--reason\",\n\t\t\"--role\",\n\t\t\"--skill\",\n\t\t\"--status\",\n\t\t\"--surface\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t\t\"--to-agent-id\",\n\t\t\"--workspace-id\",\n\t\t\"--workflow-run-id\",\n\t\t\"--workflow-step-id\",\n\t],\n\tcoordinate: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--reply\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n\tcontrol: [\n\t\t\"--child-run-id\",\n\t\t\"--delegation-id\",\n\t\t\"--idempotency-key\",\n\t\t\"--message\",\n\t\t\"--mode\",\n\t\t\"--subagent-lane-id\",\n\t\t\"--target-run-id\",\n\t\t\"--work-item-id\",\n\t\t\"--workspace-id\",\n\t],\n\tfleet: [\"--registry\", \"--tasks\", \"--timeout-ms\"],\n\tgraph: [\n\t\t\"--delegation-id\",\n\t\t\"--limit\",\n\t\t\"--max-depth\",\n\t\t\"--root\",\n\t\t\"--root-delegation-id\",\n\t\t\"--workspace-id\",\n\t],\n\toffer: [\n\t\t\"--agent-card-url\",\n\t\t\"--base-url\",\n\t\t\"--name\",\n\t\t\"--peer-id\",\n\t\t\"--ttl-minutes\",\n\t\t\"--url\",\n\t],\n\tpeers: [\"--registry\"],\n\tregister: [\n\t\t\"--agent-card-etag\",\n\t\t\"--agent-card-hash\",\n\t\t\"--agent-card-url\",\n\t\t\"--agent-id\",\n\t\t\"--capabilities\",\n\t\t\"--description\",\n\t\t\"--internal-url\",\n\t\t\"--name\",\n\t\t\"--owner-id\",\n\t\t\"--protocol-version\",\n\t\t\"--public-url\",\n\t\t\"--security-schemes\",\n\t\t\"--status\",\n\t\t\"--surface\",\n\t\t\"--surface-types\",\n\t\t\"--type\",\n\t\t\"--url\",\n\t\t\"--workspace-id\",\n\t],\n\treply: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n\tsend: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n\ttasks: [\"--registry\", \"--tasks\", \"--timeout-ms\"],\n\ttelemetry: [\"--events\", \"--swarm-id\"],\n\twait: [\n\t\t\"--interval-ms\",\n\t\t\"--max-wait-ms\",\n\t\t\"--registry\",\n\t\t\"--tasks\",\n\t\t\"--timeout-ms\",\n\t],\n};\nconst A2A_BOOLEAN_FLAGS_BY_SUBCOMMAND: Record<string, readonly string[]> = {\n\taccept: [\"--default\"],\n\tcockpit: [\"--json\"],\n\tcoordinate: [\"--json\", \"--refresh\", \"--wait\", \"--work-graph\"],\n\tdelegate: [\n\t\t\"--discover\",\n\t\t\"--platform\",\n\t\t\"--prefer-internal\",\n\t\t\"--wait\",\n\t\t\"--work-graph\",\n\t],\n\tdiscover: [\"--default\", \"--import\", \"--json\", \"--prefer-internal\"],\n\tfleet: [\"--json\"],\n\tgraph: [\"--json\"],\n\tregister: [\"--heartbeat-only\", \"--json\", \"--no-heartbeat\", \"--update-only\"],\n\treply: [\"--wait\", \"--work-graph\"],\n\tsend: [\"--wait\", \"--work-graph\"],\n\ttasks: [\"--json\", \"--refresh\", \"--work-graph\"],\n\ttelemetry: [\"--json\"],\n\twait: [\"--work-graph\"],\n};\nconst A2A_COLLECT_VALUE_FLAGS_BY_SUBCOMMAND: Record<string, readonly string[]> =\n\t{\n\t\tcoordinate: [\"--reply\"],\n\t\tcontrol: [\"--message\"],\n\t};\nconst A2A_LEADING_VALUE_FLAGS = new Set(\n\tObject.values(A2A_VALUE_FLAGS_BY_SUBCOMMAND).flat(),\n);\nconst A2A_LEADING_BOOLEAN_FLAGS = new Set(\n\tObject.values(A2A_BOOLEAN_FLAGS_BY_SUBCOMMAND).flat(),\n);\n\nexport interface ParsedA2AArgs {\n\tpositionals: string[];\n\tflags: Map<string, string | boolean>;\n}\n\ninterface A2ADiscoverySelection {\n\tsource: \"platform-agent-registry\";\n\tevidence?: PlatformAgentDiscoveryEvidence;\n\tcandidateCount: number;\n\tmatchedCount: number;\n\tselectedAgentId?: string;\n\tselectedAgentName?: string;\n\tselectedEndpointUrl?: string;\n\tselectedEndpointKind?: \"public\" | \"internal\";\n\tscore?: number;\n\treasons?: string[];\n}\n\nexport async function handleA2ACommand(args: string[]): Promise<void> {\n\tconst parsed = parseA2AArgs(args);\n\tconst subcommand = canonicalA2ASubcommand(parsed.positionals.shift());\n\tswitch (subcommand) {\n\t\tcase \"offer\":\n\t\tcase \"pair\":\n\t\tcase \"create\":\n\t\t\tawait handleA2AOffer(parsed);\n\t\t\treturn;\n\t\tcase \"accept\":\n\t\t\tawait handleA2AAccept(parsed);\n\t\t\treturn;\n\t\tcase \"peers\":\n\t\tcase \"list\":\n\t\t\tawait handleA2APeers(parsed);\n\t\t\treturn;\n\t\tcase \"discover\":\n\t\t\tawait handleA2ADiscover(parsed);\n\t\t\treturn;\n\t\tcase \"register\":\n\t\t\tawait handleA2ARegister(parsed);\n\t\t\treturn;\n\t\tcase \"fleet\":\n\t\t\tawait handleA2AFleet(parsed);\n\t\t\treturn;\n\t\tcase \"cockpit\":\n\t\tcase \"dashboard\":\n\t\t\tawait handleA2ACockpit(parsed);\n\t\t\treturn;\n\t\tcase \"card\":\n\t\t\tawait handleA2ACard(parsed);\n\t\t\treturn;\n\t\tcase \"send\":\n\t\t\tawait handleA2ASend(parsed);\n\t\t\treturn;\n\t\tcase \"delegate\":\n\t\tcase \"delegation\":\n\t\t\tawait handleA2ADelegate(parsed);\n\t\t\treturn;\n\t\tcase \"control\":\n\t\t\tawait handleA2AControl(parsed);\n\t\t\treturn;\n\t\tcase \"graph\":\n\t\t\tawait handleA2AGraph(parsed);\n\t\t\treturn;\n\t\tcase \"reply\":\n\t\tcase \"continue\":\n\t\t\tawait handleA2AReply(parsed);\n\t\t\treturn;\n\t\tcase \"coordinate\":\n\t\t\tawait handleA2ACoordinate(parsed);\n\t\t\treturn;\n\t\tcase \"tasks\":\n\t\t\tawait handleA2ATasks(parsed);\n\t\t\treturn;\n\t\tcase \"telemetry\":\n\t\t\tawait handleA2ATelemetry(parsed);\n\t\t\treturn;\n\t\tcase \"wait\":\n\t\t\tawait handleA2AWait(parsed);\n\t\t\treturn;\n\t\tdefault:\n\t\t\tprintA2AHelp();\n\t}\n}\n\nexport function parseA2AArgs(args: string[]): ParsedA2AArgs {\n\tconst flags = new Map<string, string | boolean>();\n\tconst positionals: string[] = [];\n\tconst subcommandIndex = findA2ASubcommandIndex(args);\n\tconst subcommand =\n\t\tsubcommandIndex >= 0\n\t\t\t? canonicalA2ASubcommand(args[subcommandIndex])\n\t\t\t: \"help\";\n\tconst valueFlags = new Set(A2A_VALUE_FLAGS_BY_SUBCOMMAND[subcommand] ?? []);\n\tconst booleanFlags = new Set(\n\t\tA2A_BOOLEAN_FLAGS_BY_SUBCOMMAND[subcommand] ?? [],\n\t);\n\tif (subcommand === \"delegate\" && args.includes(\"--platform\")) {\n\t\tbooleanFlags.add(\"--json\");\n\t}\n\tconst collectValueFlags = new Set(\n\t\tA2A_COLLECT_VALUE_FLAGS_BY_SUBCOMMAND[subcommand] ?? [],\n\t);\n\tfor (let index = 0; index < args.length; index++) {\n\t\tconst arg = args[index];\n\t\tif (!arg) continue;\n\t\tif (arg === \"--\") {\n\t\t\tpositionals.push(...args.slice(index + 1));\n\t\t\tbreak;\n\t\t}\n\t\tif (arg.startsWith(\"--\")) {\n\t\t\tconst [flag, inlineValue] = arg.split(\"=\", 2);\n\t\t\tif (!flag) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tindex < subcommandIndex &&\n\t\t\t\t!valueFlags.has(flag) &&\n\t\t\t\t!booleanFlags.has(flag) &&\n\t\t\t\t(A2A_LEADING_VALUE_FLAGS.has(flag) ||\n\t\t\t\t\tA2A_LEADING_BOOLEAN_FLAGS.has(flag))\n\t\t\t) {\n\t\t\t\tif (A2A_LEADING_VALUE_FLAGS.has(flag) && inlineValue === undefined) {\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!valueFlags.has(flag) && !booleanFlags.has(flag)) {\n\t\t\t\tpositionals.push(arg);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (inlineValue !== undefined) {\n\t\t\t\tif (collectValueFlags.has(flag) && !inlineValue.trim()) {\n\t\t\t\t\tthrow new Error(collectValueFlagMissingTextMessage(flag, subcommand));\n\t\t\t\t}\n\t\t\t\tflags.set(flag, inlineValue);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (booleanFlags.has(flag)) {\n\t\t\t\tflags.set(flag, true);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (collectValueFlags.has(flag)) {\n\t\t\t\tconst values: string[] = [];\n\t\t\t\twhile (args[index + 1] && args[index + 1] !== \"--\") {\n\t\t\t\t\tconst next = args[index + 1]!;\n\t\t\t\t\tconst [nextFlag] = next.split(\"=\", 2);\n\t\t\t\t\tif (\n\t\t\t\t\t\tnext.startsWith(\"--\") &&\n\t\t\t\t\t\tnextFlag &&\n\t\t\t\t\t\t(valueFlags.has(nextFlag) || booleanFlags.has(nextFlag))\n\t\t\t\t\t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tvalues.push(next);\n\t\t\t\t\tindex++;\n\t\t\t\t}\n\t\t\t\tconst value = values.join(\" \").trim();\n\t\t\t\tif (!value) {\n\t\t\t\t\tthrow new Error(collectValueFlagMissingTextMessage(flag, subcommand));\n\t\t\t\t}\n\t\t\t\tflags.set(flag, value);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst next = args[index + 1];\n\t\t\tif (next && next !== \"--\") {\n\t\t\t\tflags.set(flag, next);\n\t\t\t\tindex++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tflags.set(flag, true);\n\t\t\tcontinue;\n\t\t}\n\t\tpositionals.push(arg);\n\t}\n\treturn { flags, positionals };\n}\n\nfunction collectValueFlagMissingTextMessage(\n\tflag: string,\n\tsubcommand: string,\n): string {\n\tconst usage =\n\t\tsubcommand === \"coordinate\" && flag === \"--reply\"\n\t\t\t? \"\\nUsage: maestro a2a coordinate [peer] --reply <text> [--wait]\"\n\t\t\t: \"\";\n\treturn `${flag} requires text${usage}`;\n}\n\nfunction findA2ASubcommandIndex(args: readonly string[]): number {\n\tfor (let index = 0; index < args.length; index++) {\n\t\tconst arg = args[index];\n\t\tif (!arg || arg === \"--\") {\n\t\t\tbreak;\n\t\t}\n\t\tif (!arg.startsWith(\"--\")) {\n\t\t\treturn index;\n\t\t}\n\t\tconst [flag = \"\", inlineValue] = arg.split(\"=\", 2);\n\t\tif (A2A_LEADING_VALUE_FLAGS.has(flag) && inlineValue === undefined) {\n\t\t\tindex++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (\n\t\t\tA2A_LEADING_VALUE_FLAGS.has(flag) ||\n\t\t\tA2A_LEADING_BOOLEAN_FLAGS.has(flag)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\treturn -1;\n}\n\nfunction canonicalA2ASubcommand(input: string | undefined): string {\n\tswitch (input?.toLowerCase()) {\n\t\tcase \"pair\":\n\t\tcase \"create\":\n\t\t\treturn \"offer\";\n\t\tcase \"list\":\n\t\t\treturn \"peers\";\n\t\tcase \"dashboard\":\n\t\t\treturn \"cockpit\";\n\t\tcase \"delegation\":\n\t\t\treturn \"delegate\";\n\t\tcase \"continue\":\n\t\t\treturn \"reply\";\n\t\tcase \"publish\":\n\t\t\treturn \"register\";\n\t\tdefault:\n\t\t\treturn input?.toLowerCase() ?? \"help\";\n\t}\n}\n\nasync function handleA2AOffer(parsed: ParsedA2AArgs): Promise<void> {\n\tconst baseUrl =\n\t\tstringFlag(parsed, \"--url\") ?? stringFlag(parsed, \"--base-url\");\n\tconst agentCardUrl = resolveA2AAgentCardUrl(\n\t\tstringFlag(parsed, \"--agent-card-url\") ??\n\t\t\tbaseUrl ??\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_A2A_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_A2A_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_URL\",\n\t\t\t]) ??\n\t\t\tfail(\"Provide --url or set MAESTRO_A2A_PUBLIC_URL.\"),\n\t);\n\tconst transportUrl = baseUrlFromAgentCardUrl(agentCardUrl);\n\tconst ttlMs = minutesFlag(parsed, \"--ttl-minutes\") ?? 30 * 60 * 1000;\n\tconst peerId = stringFlag(parsed, \"--peer-id\");\n\tconst displayName = stringFlag(parsed, \"--name\");\n\tlet agentCard: A2AAgentCard | null = null;\n\ttry {\n\t\tagentCard = await discoverA2AAgentCard({\n\t\t\tbaseUrl: transportUrl,\n\t\t\ttimeoutMs: 2_500,\n\t\t\tmaxAttempts: 1,\n\t\t});\n\t} catch (error) {\n\t\tif (!displayName) {\n\t\t\tthrow new Error(\n\t\t\t\t`Could not fetch Agent Card at ${agentCardUrl}: ${errorMessage(error)}. Pass --name to create an offline pairing code.`,\n\t\t\t);\n\t\t}\n\t}\n\tconst payload = agentCard\n\t\t? createA2APeerPairingPayloadFromAgentCard({\n\t\t\t\tagentCard,\n\t\t\t\tagentCardUrl,\n\t\t\t\tdisplayName,\n\t\t\t\tpeerId,\n\t\t\t\tttlMs,\n\t\t\t})\n\t\t: createA2APeerPairingPayload({\n\t\t\t\tdisplayName: displayName ?? \"Maestro A2A Peer\",\n\t\t\t\tagentCardUrl,\n\t\t\t\ttransportUrl,\n\t\t\t\tpeerId,\n\t\t\t\tttlMs,\n\t\t\t});\n\tconst code = encodeA2APeerPairingCode(payload);\n\tconsole.log(code);\n\tconsole.error(\n\t\tchalk.dim(\n\t\t\t`Pairing code for ${payload.displayName}; expires ${payload.expiresAt}. No token or bearer secret is embedded.`,\n\t\t),\n\t);\n}\n\nasync function handleA2AAccept(parsed: ParsedA2AArgs): Promise<void> {\n\tconst code =\n\t\tparsed.positionals.shift() ?? fail(\"Usage: maestro a2a accept <code>\");\n\tconst payload = decodeA2APeerPairingCode(code);\n\tconst result = await upsertA2APeerFromPairingPayload(payload, {\n\t\tname: stringFlag(parsed, \"--name\"),\n\t\tmakeDefault: booleanFlag(parsed, \"--default\"),\n\t\ttokenEnv: stringFlag(parsed, \"--token-env\"),\n\t\ttokenFile: stringFlag(parsed, \"--token-file\"),\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\torganizationId: stringFlag(parsed, \"--organization-id\"),\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t});\n\tconsole.log(\n\t\t`Registered A2A peer ${chalk.bold(result.name)} at ${result.entry.url}`,\n\t);\n\tconsole.log(chalk.dim(`Registry: ${result.path}`));\n\tif (!result.entry.tokenEnv && !result.entry.tokenFile) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\n\t\t\t\t\"No token source configured; add --token-env or --token-file if the peer requires Authorization.\",\n\t\t\t),\n\t\t);\n\t}\n}\n\nasync function handleA2APeers(parsed: ParsedA2AArgs): Promise<void> {\n\tconst { path, registry } = await listA2APeers({\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t});\n\tconsole.log(`A2A peers (${path})`);\n\tconst entries = Object.entries(registry.peers).sort(([left], [right]) =>\n\t\tleft.localeCompare(right),\n\t);\n\tif (entries.length === 0) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\" No peers registered. Run maestro a2a accept <code>.\"),\n\t\t);\n\t\treturn;\n\t}\n\tfor (const [name, peer] of entries) {\n\t\tconst marker = registry.defaultPeer === name ? \"*\" : \" \";\n\t\tconst tokenSource = peer.tokenEnv\n\t\t\t? ` token=env:${peer.tokenEnv}`\n\t\t\t: peer.tokenFile\n\t\t\t\t? \" token=file\"\n\t\t\t\t: \"\";\n\t\tconsole.log(\n\t\t\t`${marker} ${name} ${chalk.dim(peer.url)}${tokenSource}${\n\t\t\t\tpeer.displayName ? chalk.dim(` (${peer.displayName})`) : \"\"\n\t\t\t}`,\n\t\t);\n\t}\n}\n\nasync function handleA2ADiscover(parsed: ParsedA2AArgs): Promise<void> {\n\tconst discovery = await listA2APeerCandidatesWithEvidenceWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tcapability: stringFlag(parsed, \"--capability\"),\n\t\tsurface: stringFlag(parsed, \"--surface\"),\n\t\tstatus: stringFlag(parsed, \"--status\"),\n\t\tlimit: numberFlag(parsed, \"--limit\"),\n\t\toffset: nonNegativeNumberFlag(parsed, \"--offset\"),\n\t\tskillId: stringFlag(parsed, \"--skill\"),\n\t\tpreferInternalEndpoint: booleanFlag(parsed, \"--prefer-internal\"),\n\t});\n\tif (!discovery) {\n\t\tfail(\n\t\t\t\"Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID.\",\n\t\t);\n\t}\n\tconst candidates = discovery.candidates;\n\tconst imported = booleanFlag(parsed, \"--import\")\n\t\t? await importDiscoveredA2APeers(\n\t\t\t\tparsed,\n\t\t\t\tcandidates,\n\t\t\t\tdiscovery.discoveryEvidence,\n\t\t\t)\n\t\t: [];\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tpeers: candidates.map(discoveredPeerJson),\n\t\t\t\t\timported,\n\t\t\t\t\t...(discovery.discoveryEvidence\n\t\t\t\t\t\t? { discoveryEvidence: discovery.discoveryEvidence }\n\t\t\t\t\t\t: {}),\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconsole.log(\"Platform A2A peers\");\n\tprintA2ADiscoveryEvidence(discovery.discoveryEvidence);\n\tif (candidates.length === 0) {\n\t\tconsole.log(chalk.dim(\" No Platform agents expose A2A peer endpoints.\"));\n\t\treturn;\n\t}\n\tfor (const candidate of candidates) {\n\t\tconst label =\n\t\t\tcandidate.agent.name ?? candidate.agent.id ?? candidate.endpointUrl;\n\t\tconst skillSummary = candidate.skills.map((skill) => skill.id).join(\", \");\n\t\tconsole.log(\n\t\t\t`${chalk.bold(label)} ${chalk.dim(candidate.endpointUrl)}${\n\t\t\t\tcandidate.agent.status ? chalk.dim(` ${candidate.agent.status}`) : \"\"\n\t\t\t}`,\n\t\t);\n\t\tif (candidate.agent.id || candidate.protocolBinding) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` ${[\n\t\t\t\t\t\tcandidate.agent.id ? `agent=${candidate.agent.id}` : undefined,\n\t\t\t\t\t\tcandidate.protocolBinding\n\t\t\t\t\t\t\t? `binding=${candidate.protocolBinding}`\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tcandidate.protocolVersion\n\t\t\t\t\t\t\t? `version=${candidate.protocolVersion}`\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\" \")}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (skillSummary) {\n\t\t\tconsole.log(chalk.dim(` skills=${skillSummary}`));\n\t\t}\n\t}\n\tif (imported.length > 0) {\n\t\tconsole.log(chalk.dim(`Imported ${imported.length} peer(s).`));\n\t\tconsole.log(chalk.dim(`Registry: ${imported[0]?.path}`));\n\t}\n}\n\nasync function handleA2ARegister(parsed: ParsedA2AArgs): Promise<void> {\n\tconst heartbeatOnly = booleanFlag(parsed, \"--heartbeat-only\");\n\tconst agentId =\n\t\tstringFlag(parsed, \"--agent-id\") ??\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_A2A_AGENT_ID\",\n\t\t\t\"MAESTRO_AGENT_ID\",\n\t\t\t\"EVALOPS_AGENT_ID\",\n\t\t]);\n\tconst name =\n\t\tstringFlag(parsed, \"--name\") ??\n\t\tgetEnvValue([\"MAESTRO_A2A_AGENT_NAME\", \"MAESTRO_AGENT_NAME\"]) ??\n\t\t\"Maestro A2A Peer\";\n\tconst description =\n\t\tstringFlag(parsed, \"--description\") ??\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_A2A_AGENT_DESCRIPTION\",\n\t\t\t\"MAESTRO_AGENT_DESCRIPTION\",\n\t\t]) ??\n\t\t\"Maestro peer exposing governed Codex subagent lanes through A2A.\";\n\tconst workspaceId = stringFlag(parsed, \"--workspace-id\");\n\tconst capabilities = stringListFlag(\n\t\tparsed,\n\t\t\"--capabilities\",\n\t\tdefaultMaestroA2ACapabilities(),\n\t);\n\tconst surfaces = stringListFlag(parsed, \"--surface\", [\"a2a\", \"maestro\"]);\n\tconst surfaceTypes = stringListFlag(parsed, \"--surface-types\", [\n\t\t\"SURFACE_MAESTRO\",\n\t]);\n\tconst publicEndpointUrl = heartbeatOnly\n\t\t? undefined\n\t\t: (stringFlag(parsed, \"--public-url\") ??\n\t\t\tstringFlag(parsed, \"--url\") ??\n\t\t\tgetEnvValue([\n\t\t\t\t\"MAESTRO_A2A_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_PUBLIC_URL\",\n\t\t\t\t\"MAESTRO_A2A_URL\",\n\t\t\t\t\"MAESTRO_CONTROL_URL\",\n\t\t\t]) ??\n\t\t\tfail(\"Provide --url or set MAESTRO_A2A_PUBLIC_URL.\"));\n\tconst a2a = publicEndpointUrl\n\t\t? buildMaestroA2APeerProjection({\n\t\t\t\tpublicEndpointUrl,\n\t\t\t\tinternalEndpointUrl:\n\t\t\t\t\tstringFlag(parsed, \"--internal-url\") ??\n\t\t\t\t\tgetEnvValue([\n\t\t\t\t\t\t\"MAESTRO_A2A_INTERNAL_URL\",\n\t\t\t\t\t\t\"MAESTRO_CONTROL_INTERNAL_URL\",\n\t\t\t\t\t]),\n\t\t\t\tagentCardUrl: stringFlag(parsed, \"--agent-card-url\"),\n\t\t\t\tprotocolVersion: stringFlag(parsed, \"--protocol-version\"),\n\t\t\t\tagentCardETag: stringFlag(parsed, \"--agent-card-etag\"),\n\t\t\t\tagentCardHash: stringFlag(parsed, \"--agent-card-hash\"),\n\t\t\t\tsecuritySchemes: stringListFlag(parsed, \"--security-schemes\", [\n\t\t\t\t\t\"evalops-agent-token\",\n\t\t\t\t]),\n\t\t\t\tattributes: {\n\t\t\t\t\tpublishedBy: \"maestro a2a register\",\n\t\t\t\t},\n\t\t\t})\n\t\t: undefined;\n\tconst updateOnly = booleanFlag(parsed, \"--update-only\");\n\tconst shouldHeartbeat = !booleanFlag(parsed, \"--no-heartbeat\");\n\tif (heartbeatOnly && !shouldHeartbeat) {\n\t\tfail(\"--heartbeat-only cannot be combined with --no-heartbeat.\");\n\t}\n\tlet operation: \"registered\" | \"updated\" | \"heartbeat\" = \"registered\";\n\tlet agent: PlatformAgentRegistryAgent | undefined;\n\n\tif (heartbeatOnly) {\n\t\tif (!agentId) {\n\t\t\tfail(\"Usage: maestro a2a register --heartbeat-only --agent-id <id>\");\n\t\t}\n\t\toperation = \"heartbeat\";\n\t} else if (updateOnly) {\n\t\tif (!agentId) {\n\t\t\tfail(\n\t\t\t\t\"Usage: maestro a2a register --update-only --agent-id <id> --url <base-url>\",\n\t\t\t);\n\t\t}\n\t\tconst updated = await updateAgentWithPlatform({\n\t\t\tworkspaceId,\n\t\t\tid: agentId,\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tcapabilities,\n\t\t\tsurfaces,\n\t\t\tsurfaceTypes,\n\t\t\ta2a,\n\t\t});\n\t\tif (!updated) {\n\t\t\tfail(agentRegistryNotConfiguredMessage());\n\t\t}\n\t\toperation = \"updated\";\n\t\tagent = updated.agent;\n\t} else {\n\t\ttry {\n\t\t\tconst registered = await registerAgentWithPlatform({\n\t\t\t\tworkspaceId,\n\t\t\t\tid: agentId,\n\t\t\t\tname,\n\t\t\t\tdescription,\n\t\t\t\tagentType: stringFlag(parsed, \"--type\") ?? \"maestro\",\n\t\t\t\tcapabilities,\n\t\t\t\tsurfaces,\n\t\t\t\tsurfaceTypes,\n\t\t\t\townerId: stringFlag(parsed, \"--owner-id\"),\n\t\t\t\ta2a,\n\t\t\t});\n\t\t\tif (!registered) {\n\t\t\t\tfail(agentRegistryNotConfiguredMessage());\n\t\t\t}\n\t\t\tagent = registered.agent;\n\t\t} catch (error) {\n\t\t\tif (!agentId || !isAgentAlreadyExistsError(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst updated = await updateAgentWithPlatform({\n\t\t\t\tworkspaceId,\n\t\t\t\tid: agentId,\n\t\t\t\tname,\n\t\t\t\tdescription,\n\t\t\t\tcapabilities,\n\t\t\t\tsurfaces,\n\t\t\t\tsurfaceTypes,\n\t\t\t\ta2a,\n\t\t\t});\n\t\t\tif (!updated) {\n\t\t\t\tfail(agentRegistryNotConfiguredMessage());\n\t\t\t}\n\t\t\toperation = \"updated\";\n\t\t\tagent = updated.agent;\n\t\t}\n\t}\n\n\tconst resolvedAgentId =\n\t\tagent?.id ?? agentId ?? fail(\"Agent Registry did not return an agent id.\");\n\tconst heartbeat = shouldHeartbeat\n\t\t? await heartbeatAgentWithPlatform({\n\t\t\t\tworkspaceId,\n\t\t\t\tagentId: resolvedAgentId,\n\t\t\t\tstatus: stringFlag(parsed, \"--status\") ?? PlatformAgentStatusValue.Idle,\n\t\t\t\tsurface: surfaces[0],\n\t\t\t\tsurfaceType: surfaceTypes[0],\n\t\t\t\ta2a,\n\t\t\t})\n\t\t: null;\n\tif (shouldHeartbeat && !heartbeat) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\toperation,\n\t\t\t\t\tagentId: resolvedAgentId,\n\t\t\t\t\tagent,\n\t\t\t\t\theartbeat,\n\t\t\t\t\ta2a,\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\n\tconst verb = operation === \"registered\" ? \"Registered\" : \"Updated\";\n\tconsole.log(\n\t\toperation === \"heartbeat\"\n\t\t\t? `Sent Platform A2A heartbeat for ${chalk.bold(resolvedAgentId)}${a2a ? ` at ${a2a.publicEndpointUrl}` : \"\"}`\n\t\t\t: `${verb} Platform A2A peer ${chalk.bold(resolvedAgentId)} at ${\n\t\t\t\t\ta2a?.publicEndpointUrl ?? publicEndpointUrl\n\t\t\t\t}`,\n\t);\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t`Skills: ${a2a?.skills?.map((skill) => skill.id).join(\", \") ?? \"none\"}`,\n\t\t),\n\t);\n\tif (heartbeat?.nextHeartbeatBy) {\n\t\tconsole.log(chalk.dim(`Next heartbeat by: ${heartbeat.nextHeartbeatBy}`));\n\t}\n}\n\nasync function importDiscoveredA2APeers(\n\tparsed: ParsedA2AArgs,\n\tcandidates: PlatformAgentRegistryA2APeerCandidate[],\n\tdiscoveryEvidence?: PlatformAgentDiscoveryEvidence,\n): Promise<\n\tArray<{\n\t\tname: string;\n\t\tpath: string;\n\t\turl: string;\n\t\tagentId?: string;\n\t}>\n> {\n\tconst registryPath = stringFlag(parsed, \"--registry\");\n\tconst registry = await loadA2APeerRegistry({ path: registryPath });\n\tconst now = new Date().toISOString();\n\tconst makeDefault = booleanFlag(parsed, \"--default\");\n\tlet defaultAssigned = false;\n\tconst importedNames = new Set<string>();\n\tconst imported: Array<{\n\t\tname: string;\n\t\tpath: string;\n\t\turl: string;\n\t\tagentId?: string;\n\t}> = [];\n\tcandidates.forEach((candidate, index) => {\n\t\tconst name = uniqueDiscoveredPeerName({\n\t\t\tbaseName: discoveredPeerName(candidate, index),\n\t\t\tcandidate,\n\t\t\timportedNames,\n\t\t\tpeers: registry.peers,\n\t\t});\n\t\tconst previous = registry.peers[name];\n\t\tconst entry: A2APeerRegistryEntry = {\n\t\t\t...previous,\n\t\t\turl: candidate.endpointUrl,\n\t\t\tdisplayName: candidate.agent.name ?? previous?.displayName,\n\t\t\tagentCardUrl: candidate.agentCardUrl ?? previous?.agentCardUrl,\n\t\t\tprotocolBinding: candidate.protocolBinding ?? previous?.protocolBinding,\n\t\t\tprotocolVersion: candidate.protocolVersion ?? previous?.protocolVersion,\n\t\t\tworkspaceId: candidate.agent.workspaceId ?? previous?.workspaceId,\n\t\t\tagentId: candidate.agent.id ?? previous?.agentId,\n\t\t\tcapabilities: {\n\t\t\t\t...previous?.capabilities,\n\t\t\t\t...(candidate.pushNotifications === undefined\n\t\t\t\t\t? {}\n\t\t\t\t\t: { pushNotifications: candidate.pushNotifications }),\n\t\t\t},\n\t\t\tskills:\n\t\t\t\tcandidate.skills.length > 0\n\t\t\t\t\t? candidate.skills.map((skill) => ({\n\t\t\t\t\t\t\tid: skill.id,\n\t\t\t\t\t\t\tname: skill.name ?? skill.id,\n\t\t\t\t\t\t\t...(skill.description ? { description: skill.description } : {}),\n\t\t\t\t\t\t\t...(skill.tags ? { tags: skill.tags } : {}),\n\t\t\t\t\t\t\t...(skill.inputModes ? { inputModes: skill.inputModes } : {}),\n\t\t\t\t\t\t\t...(skill.outputModes ? { outputModes: skill.outputModes } : {}),\n\t\t\t\t\t\t\t...(skill.requiredContextGrants\n\t\t\t\t\t\t\t\t? { requiredContextGrants: skill.requiredContextGrants }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.approvalPolicyRef\n\t\t\t\t\t\t\t\t? { approvalPolicyRef: skill.approvalPolicyRef }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.maxAutonomy ? { maxAutonomy: skill.maxAutonomy } : {}),\n\t\t\t\t\t\t\t...(skill.requiredArtifactKinds\n\t\t\t\t\t\t\t\t? { requiredArtifactKinds: skill.requiredArtifactKinds }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.optionalArtifactKinds\n\t\t\t\t\t\t\t\t? { optionalArtifactKinds: skill.optionalArtifactKinds }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.allowedTaskClasses\n\t\t\t\t\t\t\t\t? { allowedTaskClasses: skill.allowedTaskClasses }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.deniedTaskClasses\n\t\t\t\t\t\t\t\t? { deniedTaskClasses: skill.deniedTaskClasses }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...(skill.attributes ? { attributes: skill.attributes } : {}),\n\t\t\t\t\t\t\t...(skill.metadata ? { metadata: skill.metadata } : {}),\n\t\t\t\t\t\t}))\n\t\t\t\t\t: previous?.skills,\n\t\t\tmetadata: compactA2APeerMetadata({\n\t\t\t\t...a2APeerMetadataWithoutDiscoveryEvidence(previous?.metadata),\n\t\t\t\tsource: \"platform-agent-registry\",\n\t\t\t\tplatformAgentId: candidate.agent.id,\n\t\t\t\tplatformAgentType: candidate.agent.agentType,\n\t\t\t\tplatformAgentStatus: candidate.agent.status,\n\t\t\t\tselectedEndpoint: candidate.endpointKind,\n\t\t\t\ta2aPushNotifications: candidate.pushNotifications,\n\t\t\t\t...a2ADiscoveryEvidenceMetadata(discoveryEvidence),\n\t\t\t}),\n\t\t\tcreatedAt: previous?.createdAt ?? now,\n\t\t\tupdatedAt: now,\n\t\t};\n\t\tregistry.peers[name] = entry;\n\t\tif ((makeDefault || !registry.defaultPeer) && !defaultAssigned) {\n\t\t\tregistry.defaultPeer = name;\n\t\t\tdefaultAssigned = true;\n\t\t}\n\t\timported.push({\n\t\t\tname,\n\t\t\tpath: \"\",\n\t\t\turl: entry.url,\n\t\t\t...(entry.agentId ? { agentId: entry.agentId } : {}),\n\t\t});\n\t});\n\treturn saveA2APeerRegistry(registry, { path: registryPath }).then((path) =>\n\t\timported.map((entry) => ({ ...entry, path })),\n\t);\n}\n\nasync function handleA2ACard(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName = parsed.positionals.shift();\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t});\n\tconst card = await discoverA2AAgentCard(peer.config);\n\tconsole.log(JSON.stringify(card, null, 2));\n}\n\nasync function handleA2AFleet(parsed: ParsedA2AArgs): Promise<void> {\n\tconst fleet = await inspectA2AFleet({\n\t\tregistryPath: stringFlag(parsed, \"--registry\"),\n\t\ttasksPath: stringFlag(parsed, \"--tasks\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(fleet, null, 2));\n\t\treturn;\n\t}\n\tconsole.log(`A2A fleet (${fleet.registryPath})`);\n\tif (fleet.peers.length === 0) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\" No peers registered. Run maestro a2a accept <code>.\"),\n\t\t);\n\t\treturn;\n\t}\n\tfor (const peer of fleet.peers) {\n\t\tconst status =\n\t\t\tpeer.status === \"online\" ? chalk.green(\"online\") : chalk.yellow(\"down\");\n\t\tconst label = peer.displayName\n\t\t\t? `${peer.name} (${peer.displayName})`\n\t\t\t: peer.name;\n\t\tconsole.log(`${status} ${chalk.bold(label)} ${chalk.dim(peer.url)}`);\n\t\tif (peer.model || peer.cwd || peer.auth) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` ${[\n\t\t\t\t\t\tpeer.model ? `model=${peer.model}` : undefined,\n\t\t\t\t\t\tpeer.cwd ? `cwd=${peer.cwd}` : undefined,\n\t\t\t\t\t\tpeer.auth ? `auth=${peer.auth}` : undefined,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\" \")}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (peer.lastTask) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` last=${peer.lastTask.id} ${peer.lastTask.state} ${peer.lastTask.text}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t\tif (peer.error) {\n\t\t\tconsole.log(chalk.dim(` error=${peer.error}`));\n\t\t}\n\t}\n}\n\nasync function handleA2ACockpit(parsed: ParsedA2AArgs): Promise<void> {\n\tconst cockpit = await buildA2ACockpit({\n\t\tregistryPath: stringFlag(parsed, \"--registry\"),\n\t\ttasksPath: stringFlag(parsed, \"--tasks\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\tpeer: stringFlag(parsed, \"--peer\"),\n\t\tlimit: numberFlag(parsed, \"--limit\"),\n\t});\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(cockpit, null, 2));\n\t\treturn;\n\t}\n\n\tconsole.log(`A2A cockpit (${cockpit.registryPath})`);\n\tconsole.log(chalk.dim(` tasks=${cockpit.tasksPath}`));\n\tconsole.log(\n\t\t[\n\t\t\t`${cockpit.counts.onlinePeers}/${cockpit.counts.peers} peers online`,\n\t\t\t`${cockpit.counts.runningTasks} running`,\n\t\t\t`${cockpit.counts.actionRequiredTasks} waiting`,\n\t\t\t`${cockpit.counts.failedTasks} failed`,\n\t\t\t`${cockpit.counts.completedTasks} completed`,\n\t\t].join(\" · \"),\n\t);\n\tconsole.log(chalk.bold(\"\\nPeers\"));\n\tif (cockpit.peers.length === 0) {\n\t\tconsole.log(\n\t\t\tchalk.dim(\" No peers registered. Run maestro a2a accept <code>.\"),\n\t\t);\n\t} else {\n\t\tfor (const peer of cockpit.peers) {\n\t\t\tconst status =\n\t\t\t\tpeer.status === \"online\" ? chalk.green(\"online\") : chalk.yellow(\"down\");\n\t\t\tconst waiting = peer.taskCounts.actionRequiredTasks;\n\t\t\tconst failed = peer.taskCounts.failedTasks;\n\t\t\tconst taskSummary = [\n\t\t\t\tpeer.taskCounts.runningTasks\n\t\t\t\t\t? `${peer.taskCounts.runningTasks} running`\n\t\t\t\t\t: \"\",\n\t\t\t\twaiting ? chalk.yellow(`${waiting} waiting`) : \"\",\n\t\t\t\tfailed ? chalk.red(`${failed} failed`) : \"\",\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\", \");\n\t\t\tconsole.log(\n\t\t\t\t`${status} ${chalk.bold(peer.name)} ${chalk.dim(peer.url)}${\n\t\t\t\t\ttaskSummary ? ` ${chalk.dim(`(${taskSummary})`)}` : \"\"\n\t\t\t\t}`,\n\t\t\t);\n\t\t\tif (peer.lastTask) {\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\n\t\t\t\t\t\t` last=${peer.lastTask.id} ${peer.lastTask.state} ${peer.lastTask.text}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (peer.error) {\n\t\t\t\tconsole.log(chalk.dim(` error=${peer.error}`));\n\t\t\t}\n\t\t}\n\t}\n\n\tconsole.log(chalk.bold(\"\\nTasks\"));\n\tif (cockpit.tasks.length === 0) {\n\t\tconsole.log(chalk.dim(\" No delegated tasks recorded yet.\"));\n\t} else {\n\t\tfor (const task of cockpit.tasks) {\n\t\t\tconst peerLabel = task.orphanedPeer\n\t\t\t\t? `${task.peer} ${chalk.yellow(\"(orphaned peer)\")}`\n\t\t\t\t: task.peer;\n\t\t\tconsole.log(\n\t\t\t\t`${peerLabel} ${chalk.bold(task.taskId)} ${formatCockpitTaskStatus(\n\t\t\t\t\ttask.status,\n\t\t\t\t)} ${chalk.dim(task.updatedAt)}`,\n\t\t\t);\n\t\t\tconsole.log(chalk.dim(` ${task.text}`));\n\t\t\tif (task.nextCommand) {\n\t\t\t\tconsole.log(chalk.dim(` next: ${task.nextCommand}`));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (cockpit.nextActions.length > 0) {\n\t\tconsole.log(chalk.bold(\"\\nNext actions\"));\n\t\tfor (const action of cockpit.nextActions) {\n\t\t\tconsole.log(\n\t\t\t\t`${formatCockpitActionSeverity(action.severity)} ${action.label}`,\n\t\t\t);\n\t\t\tconsole.log(chalk.dim(` ${action.command}`));\n\t\t}\n\t}\n}\n\nasync function handleA2ASend(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName =\n\t\tparsed.positionals.shift() ?? fail(\"Usage: maestro a2a send <peer> <text>\");\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\"Usage: maestro a2a send <peer> <text>\");\n\t}\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst wait = booleanFlag(parsed, \"--wait\");\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst contextId = `maestro-a2a-context-${randomUUID()}`;\n\tconst metadata = {\n\t\trequestKind: \"maestro-peer-message\",\n\t\trelayPeer: peer.name,\n\t};\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\ttext,\n\t\t\tmetadata,\n\t\t}),\n\t\t...(wait ? { configuration: { returnImmediately: true } } : {}),\n\t});\n\tawait persistA2ALedgerBestEffort(\"record sent task locally\", () =>\n\t\trecordA2ATaskStart({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: sent.task,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\tkind: \"message\",\n\t\t\tmetadata,\n\t\t}),\n\t);\n\tconst task = wait\n\t\t? await waitForA2ATask(peer.config, sent.task.id, parsed)\n\t\t: sent.task;\n\tif (wait) {\n\t\tawait persistA2ALedgerBestEffort(\"sync sent task result locally\", () =>\n\t\t\tupdateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: peer.name,\n\t\t\t\ttask,\n\t\t\t}),\n\t\t);\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function handleA2ADelegate(parsed: ParsedA2AArgs): Promise<void> {\n\tif (booleanFlag(parsed, \"--platform\")) {\n\t\tawait handleA2APlatformDelegate(parsed);\n\t\treturn;\n\t}\n\tconst discover = booleanFlag(parsed, \"--discover\");\n\tconst peerName = discover\n\t\t? undefined\n\t\t: (parsed.positionals.shift() ??\n\t\t\tfail(\"Usage: maestro a2a delegate <peer> <text>\"));\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\n\t\t\tdiscover\n\t\t\t\t? \"Usage: maestro a2a delegate --discover --skill <skill-id> <text>\"\n\t\t\t\t: \"Usage: maestro a2a delegate <peer> <text>\",\n\t\t);\n\t}\n\tconst discoveredPeer = discover\n\t\t? await resolveDiscoveredA2ADelegatePeer(parsed)\n\t\t: undefined;\n\tconst peer = discoveredPeer\n\t\t? discoveredPeer.peer\n\t\t: await resolveA2APeer(peerName, {\n\t\t\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\t\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\t\t});\n\tconst wait = booleanFlag(parsed, \"--wait\");\n\tconst role = stringFlag(parsed, \"--role\");\n\tconst cwd = stringFlag(parsed, \"--cwd\") ?? process.cwd();\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst contextId = `maestro-a2a-context-${randomUUID()}`;\n\tconst skillId = stringFlag(parsed, \"--skill\");\n\tconst skill = selectA2APeerSkill(peer.entry.skills, skillId);\n\tconst delegationMetadata = buildA2ADelegationMetadata({\n\t\tpeerName: peer.name,\n\t\trole,\n\t\tcwd,\n\t\tskillId,\n\t\tskill,\n\t\tdiscoverySource: discover ? \"platform-agent-registry\" : undefined,\n\t\tdiscoverySelection: discoveredPeer?.discoverySelection,\n\t});\n\tconst ledgerMetadata = buildA2ADelegationLedgerMetadata({\n\t\tpeerName: peer.name,\n\t\trole,\n\t\tcwd,\n\t\tskillId,\n\t\tdiscoverySource: discover ? \"platform-agent-registry\" : undefined,\n\t\tdiscoverySelection: discoveredPeer?.discoverySelection,\n\t});\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\ttext,\n\t\t\tmetadata: delegationMetadata,\n\t\t}),\n\t\tconfiguration: { returnImmediately: true },\n\t});\n\tconsole.log(`Delegated to ${chalk.bold(peer.name)} as task ${sent.task.id}`);\n\tawait persistA2ALedgerBestEffort(\"record delegated task locally\", () =>\n\t\trecordA2ATaskStart({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: sent.task,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tcontextId,\n\t\t\tkind: \"delegation\",\n\t\t\trole,\n\t\t\tcwd,\n\t\t\tmetadata: ledgerMetadata,\n\t\t}),\n\t);\n\tconst task = wait\n\t\t? await waitForA2ATask(peer.config, sent.task.id, parsed)\n\t\t: sent.task;\n\tif (wait) {\n\t\tawait persistA2ALedgerBestEffort(\"sync delegated task result locally\", () =>\n\t\t\tupdateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: peer.name,\n\t\t\t\ttask,\n\t\t\t}),\n\t\t);\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function handleA2APlatformDelegate(parsed: ParsedA2AArgs): Promise<void> {\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\n\t\t\t\"Usage: maestro a2a delegate --platform --from-agent-id <agent-id> [--to-agent-id <agent-id>|--capability <capability>] --skill <skill-id> <text>\",\n\t\t);\n\t}\n\tconst fromAgentId =\n\t\tstringFlag(parsed, \"--from-agent-id\") ??\n\t\tgetEnvValue([\n\t\t\t\"MAESTRO_A2A_AGENT_ID\",\n\t\t\t\"MAESTRO_AGENT_ID\",\n\t\t\t\"MAESTRO_EVALOPS_AGENT_ID\",\n\t\t\t\"EVALOPS_AGENT_ID\",\n\t\t]) ??\n\t\tfail(\n\t\t\t\"Provide --from-agent-id or set MAESTRO_A2A_AGENT_ID/MAESTRO_AGENT_ID.\",\n\t\t);\n\tconst toAgentId = stringFlag(parsed, \"--to-agent-id\");\n\tconst requiredCapability = stringFlag(parsed, \"--capability\");\n\tconst skillId = stringFlag(parsed, \"--skill\");\n\tif (!toAgentId && !requiredCapability && !skillId) {\n\t\tfail(\n\t\t\t\"Provide --to-agent-id, --capability, or --skill for Platform routing.\",\n\t\t);\n\t}\n\tconst role = stringFlag(parsed, \"--role\");\n\tconst cwd = stringFlag(parsed, \"--cwd\") ?? process.cwd();\n\tconst requestedAt = new Date().toISOString();\n\tconst result = await delegateAgentWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tfromAgentId,\n\t\ttoAgentId,\n\t\trequiredCapability,\n\t\ta2aSkillId: skillId,\n\t\tobjectiveId: stringFlag(parsed, \"--objective-id\"),\n\t\tworkflowRunId: stringFlag(parsed, \"--workflow-run-id\"),\n\t\tworkflowStepId: stringFlag(parsed, \"--workflow-step-id\"),\n\t\tcontextPayload: {\n\t\t\trequestKind: \"maestro-peer-delegation\",\n\t\t\ttransport: \"platform-a2a\",\n\t\t\tprompt: text,\n\t\t\tsource: \"maestro-cli\",\n\t\t\trequestedAt,\n\t\t\t...(role ? { role } : {}),\n\t\t\t...(cwd ? { cwd } : {}),\n\t\t\t...(skillId ? { a2aSkillId: skillId } : {}),\n\t\t\t...(requiredCapability ? { requiredCapability } : {}),\n\t\t},\n\t\treason:\n\t\t\tstringFlag(parsed, \"--reason\") ??\n\t\t\tplatformDelegationReason(text, skillId, requiredCapability),\n\t});\n\tif (!result) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(result, null, 2));\n\t\treturn;\n\t}\n\tconst delegation = result.delegation;\n\tconsole.log(\n\t\t`Platform A2A delegation ${chalk.bold(delegation?.id ?? \"(submitted)\")}: ${\n\t\t\tdelegation?.status ?? \"submitted\"\n\t\t}`,\n\t);\n\tconsole.log(chalk.dim(`From: ${fromAgentId}`));\n\tif (delegation?.toAgentId ?? toAgentId) {\n\t\tconsole.log(chalk.dim(`To: ${delegation?.toAgentId ?? toAgentId}`));\n\t}\n\tif (delegation?.a2aTaskId) {\n\t\tconsole.log(chalk.dim(`Remote task: ${delegation.a2aTaskId}`));\n\t}\n\tif (delegation?.a2aEndpointUrl) {\n\t\tconsole.log(chalk.dim(`Endpoint: ${delegation.a2aEndpointUrl}`));\n\t}\n\tif (delegation?.a2aDispatchStatus) {\n\t\tconsole.log(chalk.dim(`Dispatch: ${delegation.a2aDispatchStatus}`));\n\t}\n\tif (delegation?.a2aResumeWaitContracts?.length) {\n\t\tconsole.log(\n\t\t\tchalk.dim(`Resume waits: ${delegation.a2aResumeWaitContracts.length}`),\n\t\t);\n\t}\n}\n\nfunction platformDelegationReason(\n\ttext: string,\n\tskillId: string | undefined,\n\trequiredCapability: string | undefined,\n): string {\n\tconst target = skillId ?? requiredCapability ?? \"a2a peer\";\n\tconst compact = text.replace(/\\s+/g, \" \").trim();\n\treturn `maestro a2a delegate ${target}: ${compact.slice(0, 120)}`;\n}\n\nasync function handleA2AControl(parsed: ParsedA2AArgs): Promise<void> {\n\tconst delegationId =\n\t\tstringFlag(parsed, \"--delegation-id\") ??\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a control <delegation-id> --mode <mode> [message]\");\n\tconst mode = normalizeA2AControlMode(\n\t\tstringFlag(parsed, \"--mode\") ??\n\t\t\tparsed.positionals.shift() ??\n\t\t\tfail(\"Provide --mode steer|followup|collect|interrupt|cancel\"),\n\t);\n\tconst message =\n\t\tstringFlag(parsed, \"--message\") ?? parsed.positionals.join(\" \").trim();\n\tconst result = await controlA2ADelegationTaskWithPlatform({\n\t\tdelegationId,\n\t\tmode,\n\t\tmessage: message || undefined,\n\t\tidempotencyKey: stringFlag(parsed, \"--idempotency-key\"),\n\t\ttargetRunId: stringFlag(parsed, \"--target-run-id\"),\n\t\tchildRunId: stringFlag(parsed, \"--child-run-id\"),\n\t\tsubagentLaneId: stringFlag(parsed, \"--subagent-lane-id\"),\n\t\tworkItemId: stringFlag(parsed, \"--work-item-id\"),\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tmetadata: {\n\t\t\tsource: \"maestro-cli\",\n\t\t\trequestedAt: new Date().toISOString(),\n\t\t},\n\t});\n\tif (!result) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\tconsole.log(\n\t\t`Control ${chalk.bold(result.remoteTask?.controlId ?? \"(queued)\")}: ${\n\t\t\tresult.remoteTask?.state ?? \"submitted\"\n\t\t}`,\n\t);\n\tif (result.remoteTask?.taskId) {\n\t\tconsole.log(chalk.dim(`Task: ${result.remoteTask.taskId}`));\n\t}\n\tif (result.delegation?.id) {\n\t\tconsole.log(chalk.dim(`Delegation: ${result.delegation.id}`));\n\t}\n}\n\nasync function handleA2AGraph(parsed: ParsedA2AArgs): Promise<void> {\n\tconst delegationId =\n\t\tstringFlag(parsed, \"--delegation-id\") ?? parsed.positionals.shift();\n\tconst rootDelegationId =\n\t\tstringFlag(parsed, \"--root-delegation-id\") ?? stringFlag(parsed, \"--root\");\n\tif (!delegationId && !rootDelegationId) {\n\t\tfail(\n\t\t\t\"Usage: maestro a2a graph <delegation-id> [--root <root-delegation-id>] [--json]\",\n\t\t);\n\t}\n\tconst result = await getA2ADelegationGraphWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tdelegationId,\n\t\trootDelegationId,\n\t\tmaxDepth: nonNegativeNumberFlag(parsed, \"--max-depth\"),\n\t\tlimit: nonNegativeNumberFlag(parsed, \"--limit\"),\n\t});\n\tif (!result) {\n\t\tfail(agentRegistryNotConfiguredMessage());\n\t}\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(result, null, 2));\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`Platform A2A delegation graph ${\n\t\t\tresult.rootDelegationId ? chalk.dim(result.rootDelegationId) : \"\"\n\t\t}`.trim(),\n\t);\n\tconst summary = [\n\t\tresult.total !== undefined ? `total=${result.total}` : undefined,\n\t\tresult.truncated !== undefined\n\t\t\t? `truncated=${result.truncated}`\n\t\t\t: undefined,\n\t\tresult.missingParentDelegationIds?.length\n\t\t\t? `missing_parents=${result.missingParentDelegationIds.length}`\n\t\t\t: undefined,\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n\tif (summary) {\n\t\tconsole.log(chalk.dim(` ${summary}`));\n\t}\n\tif (result.nodes.length === 0) {\n\t\tconsole.log(chalk.dim(\" No delegation graph nodes returned.\"));\n\t\treturn;\n\t}\n\tfor (const node of result.nodes) {\n\t\tconst delegation = node.delegation;\n\t\tconst label =\n\t\t\tdelegation?.id ??\n\t\t\t(node.depth !== undefined ? `depth-${node.depth}` : \"delegation\");\n\t\tconsole.log(\n\t\t\t`${chalk.bold(label)} ${chalk.dim(\n\t\t\t\t[\n\t\t\t\t\tnode.depth !== undefined ? `depth=${node.depth}` : undefined,\n\t\t\t\t\tdelegation?.status,\n\t\t\t\t\tnode.terminal ? \"terminal\" : undefined,\n\t\t\t\t\tnode.childCount !== undefined\n\t\t\t\t\t\t? `children=${node.childCount}`\n\t\t\t\t\t\t: undefined,\n\t\t\t\t]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(\" \"),\n\t\t\t)}`,\n\t\t);\n\t\tconst lineage = delegation?.a2aDelegationChain?.join(\" -> \");\n\t\tconst taskId = delegation?.a2aTaskId;\n\t\tif (taskId || lineage) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.dim(\n\t\t\t\t\t` ${[\n\t\t\t\t\t\ttaskId ? `task=${taskId}` : undefined,\n\t\t\t\t\t\tlineage ? `lineage=${lineage}` : undefined,\n\t\t\t\t\t]\n\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t.join(\" \")}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\tif (result.edges.length > 0) {\n\t\tconsole.log(chalk.dim(` edges=${result.edges.length}`));\n\t}\n}\n\nasync function resolveDiscoveredA2ADelegatePeer(\n\tparsed: ParsedA2AArgs,\n): Promise<{\n\tpeer: Awaited<ReturnType<typeof resolveA2APeer>>;\n\tdiscoverySelection: A2ADiscoverySelection;\n}> {\n\tconst skillId = stringFlag(parsed, \"--skill\");\n\tif (!skillId) {\n\t\tfail(\"Usage: maestro a2a delegate --discover --skill <skill-id> <text>\");\n\t}\n\tconst discovery = await listA2APeerCandidatesWithEvidenceWithPlatform({\n\t\tworkspaceId: stringFlag(parsed, \"--workspace-id\"),\n\t\tcapability: stringFlag(parsed, \"--capability\"),\n\t\tsurface: stringFlag(parsed, \"--surface\") ?? \"a2a\",\n\t\tstatus: stringFlag(parsed, \"--status\") ?? PlatformAgentStatusValue.Idle,\n\t\tlimit: numberFlag(parsed, \"--limit\") ?? 10,\n\t\toffset: nonNegativeNumberFlag(parsed, \"--offset\"),\n\t\tskillId,\n\t\tpreferInternalEndpoint: booleanFlag(parsed, \"--prefer-internal\"),\n\t});\n\tif (!discovery) {\n\t\tfail(\n\t\t\t\"Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID.\",\n\t\t);\n\t}\n\tconst candidates = discovery.candidates;\n\tif (candidates.length === 0) {\n\t\tfail(`No Platform A2A peers advertise skill ${skillId}.`);\n\t}\n\tconst selected = selectA2ACapabilityPeer(candidates, {\n\t\tskillId,\n\t\tpreferInternalEndpoint: booleanFlag(parsed, \"--prefer-internal\"),\n\t});\n\tconst candidate = selected?.candidate;\n\tif (!candidate || !selected) {\n\t\tfail(`No Platform A2A peers advertise skill ${skillId}.`);\n\t}\n\tconst imported = await importDiscoveredA2APeers(\n\t\tparsed,\n\t\t[candidate],\n\t\tdiscovery.discoveryEvidence,\n\t);\n\tconst importedPeer = imported[0];\n\tif (!importedPeer) {\n\t\tfail(`Could not import Platform A2A peer for skill ${skillId}.`);\n\t}\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t`Selected Platform A2A peer ${importedPeer.name} (${importedPeer.url}) for ${skillId}`,\n\t\t),\n\t);\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t`Capability score: ${selected.score} (${selected.reasons.join(\", \")})`,\n\t\t),\n\t);\n\treturn {\n\t\tpeer: await resolveA2APeer(importedPeer.name, {\n\t\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\t}),\n\t\tdiscoverySelection: {\n\t\t\tsource: \"platform-agent-registry\",\n\t\t\tevidence: discovery.discoveryEvidence,\n\t\t\tcandidateCount:\n\t\t\t\tdiscovery.discoveryEvidence?.candidateCount ?? candidates.length,\n\t\t\tmatchedCount:\n\t\t\t\tdiscovery.discoveryEvidence?.matchedCount ?? candidates.length,\n\t\t\tselectedAgentId: candidate.agent.id,\n\t\t\tselectedAgentName: candidate.agent.name,\n\t\t\tselectedEndpointUrl: candidate.endpointUrl,\n\t\t\tselectedEndpointKind: candidate.endpointKind,\n\t\t\tscore: selected.score,\n\t\t\treasons: selected.reasons,\n\t\t},\n\t};\n}\n\nfunction selectA2APeerSkill(\n\tskills: A2APeerRegistryEntry[\"skills\"] | undefined,\n\tskillId: string | undefined,\n): NonNullable<A2APeerRegistryEntry[\"skills\"]>[number] | undefined {\n\tif (!skillId) {\n\t\treturn undefined;\n\t}\n\treturn skills?.find((skill) => skill.id === skillId);\n}\n\nfunction buildA2ADelegationMetadata(input: {\n\tpeerName: string;\n\trole?: string;\n\tcwd?: string;\n\tskillId?: string;\n\tskill?: NonNullable<A2APeerRegistryEntry[\"skills\"]>[number];\n\tdiscoverySource?: string;\n\tdiscoverySelection?: A2ADiscoverySelection;\n}): Record<string, unknown> {\n\tconst skill = input.skill;\n\tconst subagentRequestMetadataPath = a2ASkillRequestMetadataPath(skill);\n\tconst discoverySelection = a2ADiscoverySelectionPayload(\n\t\tinput.discoverySelection,\n\t);\n\tconst subagentRequest = input.skillId\n\t\t? {\n\t\t\t\tskillId: input.skillId,\n\t\t\t\t...(skill?.name ? { skillName: skill.name } : {}),\n\t\t\t\t...(skill?.description ? { description: skill.description } : {}),\n\t\t\t\t...(input.role ? { role: input.role } : {}),\n\t\t\t\t...(input.cwd ? { cwd: input.cwd } : {}),\n\t\t\t\t...(skill?.requiredContextGrants\n\t\t\t\t\t? { requiredContextGrants: skill.requiredContextGrants }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.approvalPolicyRef\n\t\t\t\t\t? { approvalPolicyRef: skill.approvalPolicyRef }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.maxAutonomy ? { maxAutonomy: skill.maxAutonomy } : {}),\n\t\t\t\t...(skill?.requiredArtifactKinds\n\t\t\t\t\t? { requiredArtifactKinds: skill.requiredArtifactKinds }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.optionalArtifactKinds\n\t\t\t\t\t? { optionalArtifactKinds: skill.optionalArtifactKinds }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.allowedTaskClasses\n\t\t\t\t\t? { allowedTaskClasses: skill.allowedTaskClasses }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.deniedTaskClasses\n\t\t\t\t\t? { deniedTaskClasses: skill.deniedTaskClasses }\n\t\t\t\t\t: {}),\n\t\t\t\t...(skill?.attributes ? { attributes: skill.attributes } : {}),\n\t\t\t\t...(skill?.metadata ? { metadata: skill.metadata } : {}),\n\t\t\t}\n\t\t: undefined;\n\treturn {\n\t\trequestKind: \"maestro-peer-delegation\",\n\t\trelayPeer: input.peerName,\n\t\t...(input.role ? { delegationRole: input.role } : {}),\n\t\t...(input.cwd ? { delegationCwd: input.cwd } : {}),\n\t\t...(input.discoverySource\n\t\t\t? { discoverySource: input.discoverySource }\n\t\t\t: {}),\n\t\t...(input.skillId ? { a2aSkillId: input.skillId } : {}),\n\t\t...(discoverySelection\n\t\t\t? { \"evalops.a2aDiscovery\": discoverySelection }\n\t\t\t: {}),\n\t\t...(subagentRequest\n\t\t\t? { [subagentRequestMetadataPath]: subagentRequest }\n\t\t\t: {}),\n\t};\n}\n\nfunction a2ASkillRequestMetadataPath(\n\tskill: NonNullable<A2APeerRegistryEntry[\"skills\"]>[number] | undefined,\n): string {\n\treturn (\n\t\tstringMetadataValue(skill?.metadata, \"requestMetadataPath\") ??\n\t\tstringMetadataValue(skill?.metadata, \"request_metadata_path\") ??\n\t\tstringMetadataValue(skill?.attributes, \"requestMetadataPath\") ??\n\t\tstringMetadataValue(skill?.attributes, \"request_metadata_path\") ??\n\t\t\"evalops.subagentRequest\"\n\t);\n}\n\nfunction stringMetadataValue(\n\trecord: Record<string, string | number | boolean> | undefined,\n\tkey: string,\n): string | undefined {\n\tconst value = record?.[key];\n\tif (typeof value !== \"string\") {\n\t\treturn undefined;\n\t}\n\tconst trimmed = value.trim();\n\treturn trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction buildA2ADelegationLedgerMetadata(input: {\n\tpeerName: string;\n\trole?: string;\n\tcwd?: string;\n\tskillId?: string;\n\tdiscoverySource?: string;\n\tdiscoverySelection?: A2ADiscoverySelection;\n}): Record<string, string | number | boolean> | undefined {\n\treturn compactA2APeerMetadata({\n\t\trequestKind: \"maestro-peer-delegation\",\n\t\trelayPeer: input.peerName,\n\t\tdelegationRole: input.role,\n\t\tdelegationCwd: input.cwd,\n\t\tdiscoverySource: input.discoverySource,\n\t\ta2aSkillId: input.skillId,\n\t\t...(input.discoverySelection\n\t\t\t? {\n\t\t\t\t\tplatformDiscoveryDecision:\n\t\t\t\t\t\tinput.discoverySelection.evidence?.decision,\n\t\t\t\t\tplatformDiscoveryCandidateCount:\n\t\t\t\t\t\tinput.discoverySelection.candidateCount,\n\t\t\t\t\tplatformDiscoveryMatchedCount: input.discoverySelection.matchedCount,\n\t\t\t\t\tplatformDiscoverySelectedAgentId:\n\t\t\t\t\t\tinput.discoverySelection.selectedAgentId,\n\t\t\t\t\tplatformDiscoverySelectedEndpoint:\n\t\t\t\t\t\tinput.discoverySelection.selectedEndpointKind,\n\t\t\t\t\ta2aCapabilityScore: input.discoverySelection.score,\n\t\t\t\t}\n\t\t\t: {}),\n\t});\n}\n\nasync function handleA2AReply(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a reply <peer> <task-id> <text>\");\n\tconst taskId =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a reply <peer> <task-id> <text>\");\n\tconst text = parsed.positionals.join(\" \").trim();\n\tif (!text) {\n\t\tfail(\"Usage: maestro a2a reply <peer> <task-id> <text>\");\n\t}\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst existing = await loadA2AReplyLedgerEntry(parsed, peer.name, taskId);\n\tconst wait = booleanFlag(parsed, \"--wait\");\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId: existing?.contextId,\n\t\t\ttaskId,\n\t\t\ttext,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-task-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: taskId,\n\t\t\t},\n\t\t}),\n\t\tconfiguration: { returnImmediately: true },\n\t});\n\tconsole.log(`Replied to ${chalk.bold(peer.name)} task ${sent.task.id}`);\n\tawait persistA2ALedgerBestEffort(\"record task reply locally\", () =>\n\t\trecordA2ATaskReply({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: sent.task,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-task-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: taskId,\n\t\t\t},\n\t\t}),\n\t);\n\tconst task = wait\n\t\t? await waitForA2ATask(peer.config, sent.task.id, parsed)\n\t\t: sent.task;\n\tif (wait) {\n\t\tawait persistA2ALedgerBestEffort(\"sync replied task result locally\", () =>\n\t\t\tupdateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: peer.name,\n\t\t\t\ttask,\n\t\t\t}),\n\t\t);\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function handleA2ACoordinate(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName = parsed.positionals.shift();\n\tif (parsed.positionals.length > 0) {\n\t\tfail(\"Usage: maestro a2a coordinate [peer] [--reply <text>] [--wait]\");\n\t}\n\tconst replyText = stringFlag(parsed, \"--reply\");\n\tif (parsed.flags.has(\"--reply\") && !replyText) {\n\t\tfail(\"Usage: maestro a2a coordinate [peer] --reply <text> [--wait]\");\n\t}\n\tif (replyText) {\n\t\tawait handleA2ACoordinateReply(parsed, peerName, replyText);\n\t\treturn;\n\t}\n\tawait refreshA2ANonFinalTaskLedger(parsed, peerName);\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tconst tasks = actionableA2ATaskEntries(ledger, peerName);\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tpath: getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\")),\n\t\t\t\t\ttasks: tasks.map((entry) => ({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\tkind: entry.kind,\n\t\t\t\t\t\tpeer: entry.peer,\n\t\t\t\t\t\ttaskId: entry.taskId,\n\t\t\t\t\t\tcontextId: entry.contextId,\n\t\t\t\t\t\tstate: entry.state,\n\t\t\t\t\t\ttext: entry.text,\n\t\t\t\t\t\tresponseText: entry.responseText,\n\t\t\t\t\t\tworkGraph: entry.workGraph,\n\t\t\t\t\t\tupdatedAt: entry.updatedAt,\n\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`A2A coordinate (${getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\"))})`,\n\t);\n\tif (tasks.length === 0) {\n\t\tconsole.log(chalk.dim(\" No actionable A2A tasks require coordination.\"));\n\t\treturn;\n\t}\n\tfor (const task of tasks) {\n\t\tconsole.log(\n\t\t\t`${task.peer} ${chalk.bold(task.taskId)} ${task.state} ${chalk.dim(task.updatedAt)}`,\n\t\t);\n\t\tconsole.log(chalk.dim(` ${task.text}`));\n\t\tif (task.responseText) {\n\t\t\tconsole.log(` ${task.responseText}`);\n\t\t}\n\t\tprintLedgerWorkGraph(task, booleanFlag(parsed, \"--work-graph\"));\n\t}\n}\n\nasync function handleA2ACoordinateReply(\n\tparsed: ParsedA2AArgs,\n\tpeerName: string | undefined,\n\ttext: string,\n): Promise<void> {\n\tawait refreshA2ANonFinalTaskLedger(parsed, peerName);\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tconst entry = selectCoordinateReplyTask(ledger, peerName);\n\tif (!entry) {\n\t\tfail(\"No actionable A2A task is waiting for coordinator input.\");\n\t}\n\tconst peer = await resolveA2APeer(entry.peer, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst messageId = `maestro-a2a-message-${randomUUID()}`;\n\tconst sent = await sendA2AMessage(peer.config, {\n\t\tmessage: buildA2AUserMessage({\n\t\t\tmessageId,\n\t\t\tcontextId: entry.contextId,\n\t\t\ttaskId: entry.taskId,\n\t\t\ttext,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-coordinate-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: entry.taskId,\n\t\t\t},\n\t\t}),\n\t\tconfiguration: { returnImmediately: true },\n\t});\n\tconst replyTask: A2ATask = {\n\t\t...sent.task,\n\t\tid: entry.taskId,\n\t\tcontextId: sent.task.contextId ?? entry.contextId,\n\t};\n\tconst json = booleanFlag(parsed, \"--json\");\n\tif (!json) {\n\t\tconsole.log(`Coordinated ${chalk.bold(peer.name)} task ${entry.taskId}`);\n\t}\n\tawait persistA2ALedgerBestEffort(\"record coordinate reply locally\", () =>\n\t\trecordA2ATaskReply({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\tpeerDisplayName: peer.entry.displayName,\n\t\t\ttask: replyTask,\n\t\t\ttext,\n\t\t\tmessageId,\n\t\t\tmetadata: {\n\t\t\t\trequestKind: \"maestro-peer-coordinate-reply\",\n\t\t\t\trelayPeer: peer.name,\n\t\t\t\treferencedTaskId: entry.taskId,\n\t\t\t},\n\t\t}),\n\t);\n\tconst task = booleanFlag(parsed, \"--wait\")\n\t\t? await waitForA2ATask(peer.config, entry.taskId, parsed)\n\t\t: replyTask;\n\tif (booleanFlag(parsed, \"--wait\")) {\n\t\tawait persistA2ALedgerBestEffort(\n\t\t\t\"sync coordinate task result locally\",\n\t\t\t() =>\n\t\t\t\tupdateA2ATaskInLedger({\n\t\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\t\tpeer: peer.name,\n\t\t\t\t\ttask,\n\t\t\t\t}),\n\t\t);\n\t}\n\tif (json) {\n\t\tconsole.log(JSON.stringify({ peer: peer.name, task }, null, 2));\n\t\treturn;\n\t}\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nfunction actionableA2ATaskEntries(\n\tledger: { tasks: A2ATaskLedgerEntry[] },\n\tpeerName: string | undefined,\n): A2ATaskLedgerEntry[] {\n\treturn listA2ATaskEntries(ledger, { peer: peerName }).filter((entry) =>\n\t\tisActionRequiredA2AState(entry.state),\n\t);\n}\n\nfunction selectCoordinateReplyTask(\n\tledger: { tasks: A2ATaskLedgerEntry[] },\n\tpeerName: string | undefined,\n): A2ATaskLedgerEntry | undefined {\n\tconst tasks = actionableA2ATaskEntries(ledger, peerName);\n\tif (tasks.length > 1) {\n\t\tfail(\n\t\t\t\"Multiple actionable A2A tasks found; use `maestro a2a reply <peer> <task-id> <text>`.\",\n\t\t);\n\t}\n\treturn tasks[0];\n}\n\nasync function loadA2AReplyLedgerEntry(\n\tparsed: ParsedA2AArgs,\n\tpeerName: string,\n\ttaskId: string,\n): Promise<A2ATaskLedgerEntry | undefined> {\n\ttry {\n\t\tconst ledger = await loadA2ATaskLedger({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t});\n\t\treturn listA2ATaskEntries(ledger, { peer: peerName }).find(\n\t\t\t(entry) => entry.taskId === taskId,\n\t\t);\n\t} catch (error) {\n\t\tif (isAbortError(error)) {\n\t\t\tthrow error;\n\t\t}\n\t\tconsole.error(\n\t\t\tchalk.yellow(\n\t\t\t\t`A2A task ledger warning: could not load task reply context: ${errorMessage(error)}`,\n\t\t\t),\n\t\t);\n\t\treturn undefined;\n\t}\n}\n\nasync function handleA2ATelemetry(parsed: ParsedA2AArgs): Promise<void> {\n\tconst eventsPath =\n\t\tstringFlag(parsed, \"--events\") ??\n\t\tfail(\"Usage: maestro a2a telemetry --events <path> --swarm-id <id>\");\n\tconst swarmId =\n\t\tstringFlag(parsed, \"--swarm-id\") ??\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a telemetry --events <path> --swarm-id <id>\");\n\tconst events = await loadA2ATelemetryEvents(eventsPath);\n\tconst inspection = inspectA2ATelemetry({ swarmId, events });\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(JSON.stringify(inspection, null, 2));\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`A2A telemetry ${chalk.bold(swarmId)} ${inspection.complete ? \"complete\" : \"incomplete\"}`,\n\t);\n\tconsole.log(\n\t\tchalk.dim(\n\t\t\t` events=${inspection.counts.events} lanes=${inspection.counts.lanes} completed=${inspection.counts.completedLanes} failed=${inspection.counts.failedLanes} missing=${inspection.counts.missingTelemetryLanes}`,\n\t\t),\n\t);\n\tif (inspection.counts.orderingAnomalyLanes > 0) {\n\t\tconsole.log(\n\t\t\tchalk.yellow(\n\t\t\t\t` ordering_anomalies=${inspection.counts.orderingAnomalyLanes}`,\n\t\t\t),\n\t\t);\n\t}\n\tfor (const lane of inspection.lanes) {\n\t\tconsole.log(\n\t\t\t`${lane.laneId} ${lane.status ?? \"(unknown)\"} ${\n\t\t\t\tlane.peer ? chalk.dim(lane.peer) : \"\"\n\t\t\t}`.trim(),\n\t\t);\n\t\tconst details = [\n\t\t\tlane.parentTaskId ? `parent=${lane.parentTaskId}` : undefined,\n\t\t\tlane.a2aTaskId ? `task=${lane.a2aTaskId}` : undefined,\n\t\t\tlane.a2aMessageId ? `message=${lane.a2aMessageId}` : undefined,\n\t\t\tlane.contextId ? `context=${lane.contextId}` : undefined,\n\t\t\tlane.source ? `source=${lane.source}` : undefined,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\" \");\n\t\tif (details) {\n\t\t\tconsole.log(chalk.dim(` ${details}`));\n\t\t}\n\t\tconst timing = [\n\t\t\tlane.timing.selectionToDispatchMs !== undefined\n\t\t\t\t? `selected_to_dispatch=${lane.timing.selectionToDispatchMs}ms`\n\t\t\t\t: undefined,\n\t\t\tlane.timing.observedDurationMs !== undefined\n\t\t\t\t? `observed_duration=${lane.timing.observedDurationMs}ms`\n\t\t\t\t: undefined,\n\t\t\tlane.timing.reportedDurationMs !== undefined\n\t\t\t\t? `reported_duration=${lane.timing.reportedDurationMs}ms`\n\t\t\t\t: undefined,\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(\" \");\n\t\tif (timing) {\n\t\t\tconsole.log(chalk.dim(` ${timing}`));\n\t\t}\n\t\tif (lane.missingEventTypes.length > 0) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.yellow(` missing: ${lane.missingEventTypes.join(\", \")}`),\n\t\t\t);\n\t\t}\n\t\tif (lane.orderingAnomalies.length > 0) {\n\t\t\tconsole.log(\n\t\t\t\tchalk.yellow(` anomalies: ${lane.orderingAnomalies.join(\", \")}`),\n\t\t\t);\n\t\t}\n\t}\n}\n\nasync function loadA2ATelemetryEvents(\n\tpath: string,\n): Promise<A2ATelemetryCloudEventLike[]> {\n\tconst parsed = JSON.parse(await readFile(path, \"utf8\")) as unknown;\n\tconst events = Array.isArray(parsed)\n\t\t? parsed\n\t\t: isRecord(parsed) && Array.isArray(parsed.events)\n\t\t\t? parsed.events\n\t\t\t: undefined;\n\tif (!events) {\n\t\tthrow new Error(\"A2A telemetry events file must be an array or { events }\");\n\t}\n\treturn events.filter(isA2ATelemetryCloudEventLike);\n}\n\nfunction isA2ATelemetryCloudEventLike(\n\tvalue: unknown,\n): value is A2ATelemetryCloudEventLike {\n\treturn (\n\t\tisRecord(value) &&\n\t\ttypeof value.type === \"string\" &&\n\t\t(value.data === undefined || isRecord(value.data))\n\t);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n\nasync function handleA2ATasks(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName = parsed.positionals.shift();\n\tif (booleanFlag(parsed, \"--refresh\")) {\n\t\tawait refreshA2ATaskLedger(parsed, peerName);\n\t}\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tconst tasks = listA2ATaskEntries(ledger, { peer: peerName });\n\tif (booleanFlag(parsed, \"--json\")) {\n\t\tconsole.log(\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tpath: getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\")),\n\t\t\t\t\ttasks: tasks.map((entry) => ({\n\t\t\t\t\t\tid: entry.id,\n\t\t\t\t\t\tkind: entry.kind,\n\t\t\t\t\t\tpeer: entry.peer,\n\t\t\t\t\t\ttaskId: entry.taskId,\n\t\t\t\t\t\tstate: entry.state,\n\t\t\t\t\t\ttext: entry.text,\n\t\t\t\t\t\tresponseText: entry.responseText,\n\t\t\t\t\t\tworkGraph: entry.workGraph,\n\t\t\t\t\t\tupdatedAt: entry.updatedAt,\n\t\t\t\t\t})),\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\t\treturn;\n\t}\n\tconsole.log(\n\t\t`A2A tasks (${getA2ATaskLedgerPath(stringFlag(parsed, \"--tasks\"))})`,\n\t);\n\tif (tasks.length === 0) {\n\t\tconsole.log(chalk.dim(\" No delegated tasks recorded yet.\"));\n\t\treturn;\n\t}\n\tfor (const task of tasks) {\n\t\tconsole.log(\n\t\t\t`${task.peer} ${chalk.bold(task.taskId)} ${task.state} ${chalk.dim(task.updatedAt)}`,\n\t\t);\n\t\tconsole.log(chalk.dim(` ${task.text}`));\n\t\tif (task.responseText) {\n\t\t\tconsole.log(` ${task.responseText}`);\n\t\t}\n\t\tprintLedgerWorkGraph(task, booleanFlag(parsed, \"--work-graph\"));\n\t}\n}\n\nasync function handleA2AWait(parsed: ParsedA2AArgs): Promise<void> {\n\tconst peerName =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a wait <peer> <task-id>\");\n\tconst taskId =\n\t\tparsed.positionals.shift() ??\n\t\tfail(\"Usage: maestro a2a wait <peer> <task-id>\");\n\tconst peer = await resolveA2APeer(peerName, {\n\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t});\n\tconst task = await waitForA2ATask(peer.config, taskId, parsed);\n\tawait persistA2ALedgerBestEffort(\"sync task result locally\", () =>\n\t\tupdateA2ATaskInLedger({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: peer.name,\n\t\t\ttask,\n\t\t}),\n\t);\n\tprintTask(task, {\n\t\tincludeWorkGraphDetails: booleanFlag(parsed, \"--work-graph\"),\n\t});\n}\n\nasync function refreshA2ATaskLedger(\n\tparsed: ParsedA2AArgs,\n\tpeerFilter: string | undefined,\n): Promise<void> {\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tfor (const entry of listA2ATaskEntries(ledger, { peer: peerFilter })) {\n\t\tif (isTerminalA2AState(entry.state)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst peer = await resolveA2APeer(entry.peer, {\n\t\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\t});\n\t\tconst task = await getA2ATask(peer.config, entry.taskId);\n\t\tawait updateA2ATaskInLedger({\n\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\tpeer: entry.peer,\n\t\t\ttask,\n\t\t});\n\t}\n}\n\nasync function refreshA2ANonFinalTaskLedger(\n\tparsed: ParsedA2AArgs,\n\tpeerFilter: string | undefined,\n): Promise<void> {\n\tconst ledger = await loadA2ATaskLedger({\n\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t});\n\tfor (const entry of listA2ATaskEntries(ledger, { peer: peerFilter })) {\n\t\tif (isFinalA2AState(entry.state)) {\n\t\t\tcontinue;\n\t\t}\n\t\ttry {\n\t\t\tconst peer = await resolveA2APeer(entry.peer, {\n\t\t\t\tpath: stringFlag(parsed, \"--registry\"),\n\t\t\t\ttimeoutMs: numberFlag(parsed, \"--timeout-ms\"),\n\t\t\t});\n\t\t\tconst task = await getA2ATask(peer.config, entry.taskId);\n\t\t\tawait updateA2ATaskInLedger({\n\t\t\t\tpath: stringFlag(parsed, \"--tasks\"),\n\t\t\t\tpeer: entry.peer,\n\t\t\t\ttask,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (isAbortError(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconsole.error(\n\t\t\t\tchalk.yellow(\n\t\t\t\t\t`A2A coordinate warning: could not refresh ${entry.peer} task ${entry.taskId}: ${errorMessage(error)}`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n}\n\nasync function waitForA2ATask(\n\tconfig: A2AServiceConfig,\n\ttaskId: string,\n\tparsed: ParsedA2AArgs,\n): Promise<A2ATask> {\n\tconst maxWaitMs = numberFlag(parsed, \"--max-wait-ms\") ?? DEFAULT_WAIT_MS;\n\tconst intervalMs =\n\t\tnumberFlag(parsed, \"--interval-ms\") ?? DEFAULT_WAIT_INTERVAL_MS;\n\tconst deadline = Date.now() + maxWaitMs;\n\tlet lastTask = await getA2ATask(config, taskId);\n\twhile (!isTerminalA2AState(lastTask.status.state) && Date.now() < deadline) {\n\t\tawait sleep(intervalMs);\n\t\tlastTask = await getA2ATask(config, taskId);\n\t}\n\tif (!isTerminalA2AState(lastTask.status.state)) {\n\t\tthrow new Error(\n\t\t\t`Timed out waiting for A2A task ${taskId}; last state ${lastTask.status.state}`,\n\t\t);\n\t}\n\treturn lastTask;\n}\n\nfunction printTask(\n\ttask: A2ATask,\n\toptions: { includeWorkGraphDetails?: boolean } = {},\n): void {\n\tconsole.log(`Task ${task.id}: ${task.status.state}`);\n\tconst text = a2aTaskText(task);\n\tif (text) {\n\t\tconsole.log(text);\n\t}\n\tprintTaskWorkGraph(task, Boolean(options.includeWorkGraphDetails));\n}\n\nfunction a2aTaskText(task: A2ATask): string | undefined {\n\treturn extractA2ATaskText(task);\n}\n\nfunction printTaskWorkGraph(task: A2ATask, includeDetails: boolean): void {\n\tprintWorkGraphLines(extractA2AWorkGraphMetadata(task), includeDetails);\n}\n\nfunction printLedgerWorkGraph(\n\tentry: A2ATaskLedgerEntry,\n\tincludeDetails: boolean,\n): void {\n\tprintWorkGraphLines(entry.workGraph, includeDetails);\n}\n\nfunction printWorkGraphLines(\n\tworkGraph: A2ATaskLedgerEntry[\"workGraph\"],\n\tincludeDetails: boolean,\n): void {\n\tconst summary = formatA2AWorkGraphSummary(workGraph);\n\tif (summary) {\n\t\tconsole.log(chalk.dim(` ${summary}`));\n\t}\n\tif (!includeDetails) {\n\t\treturn;\n\t}\n\tconst codexSubagents = formatA2AWorkGraphCodexSubagents(workGraph);\n\tif (codexSubagents) {\n\t\tconsole.log(chalk.dim(` ${codexSubagents}`));\n\t}\n\tif (workGraph?.correlationPath) {\n\t\tconsole.log(chalk.dim(` Correlation: ${workGraph.correlationPath}`));\n\t}\n}\n\nfunction printA2ADiscoveryEvidence(\n\tevidence: PlatformAgentDiscoveryEvidence | undefined,\n): void {\n\tif (!evidence) {\n\t\treturn;\n\t}\n\tconst summary = [\n\t\tevidence.decision ? `decision=${evidence.decision}` : undefined,\n\t\tevidence.reason ? `reason=${evidence.reason}` : undefined,\n\t\tevidence.matchedCount !== undefined\n\t\t\t? `matched=${evidence.matchedCount}`\n\t\t\t: undefined,\n\t\tevidence.candidateCount !== undefined\n\t\t\t? `candidates=${evidence.candidateCount}`\n\t\t\t: undefined,\n\t\tevidence.a2aSkillId ? `skill=${evidence.a2aSkillId}` : undefined,\n\t\tevidence.capability ? `capability=${evidence.capability}` : undefined,\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n\tif (summary) {\n\t\tconsole.log(chalk.dim(` discovery ${summary}`));\n\t}\n\tif (evidence.exclusions?.length) {\n\t\tconst exclusions = evidence.exclusions\n\t\t\t.map((exclusion) =>\n\t\t\t\t[\n\t\t\t\t\texclusion.reason,\n\t\t\t\t\texclusion.count !== undefined ? `count=${exclusion.count}` : \"\",\n\t\t\t\t]\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(\":\"),\n\t\t\t)\n\t\t\t.filter(Boolean)\n\t\t\t.join(\", \");\n\t\tif (exclusions) {\n\t\t\tconsole.log(chalk.dim(` exclusions ${exclusions}`));\n\t\t}\n\t}\n}\n\nexport const isA2AWaitCompletionState = isTerminalA2AState;\n\nfunction discoveredPeerJson(candidate: PlatformAgentRegistryA2APeerCandidate): {\n\tagentId?: string;\n\tname?: string;\n\tstatus?: string;\n\tendpointUrl: string;\n\tendpointKind?: \"public\" | \"internal\";\n\tagentCardUrl?: string;\n\tprotocolBinding?: string;\n\tprotocolVersion?: string;\n\tskills: PlatformAgentRegistryA2APeerCandidate[\"skills\"];\n\tsupportedExtensions?: string[];\n\tpushNotifications?: boolean;\n} {\n\treturn {\n\t\t...(candidate.agent.id ? { agentId: candidate.agent.id } : {}),\n\t\t...(candidate.agent.name ? { name: candidate.agent.name } : {}),\n\t\t...(candidate.agent.status ? { status: candidate.agent.status } : {}),\n\t\tendpointUrl: candidate.endpointUrl,\n\t\t...(candidate.endpointKind ? { endpointKind: candidate.endpointKind } : {}),\n\t\t...(candidate.agentCardUrl ? { agentCardUrl: candidate.agentCardUrl } : {}),\n\t\t...(candidate.protocolBinding\n\t\t\t? { protocolBinding: candidate.protocolBinding }\n\t\t\t: {}),\n\t\t...(candidate.protocolVersion\n\t\t\t? { protocolVersion: candidate.protocolVersion }\n\t\t\t: {}),\n\t\tskills: candidate.skills,\n\t\t...(candidate.supportedExtensions\n\t\t\t? { supportedExtensions: candidate.supportedExtensions }\n\t\t\t: {}),\n\t\t...(candidate.pushNotifications === undefined\n\t\t\t? {}\n\t\t\t: { pushNotifications: candidate.pushNotifications }),\n\t};\n}\n\nfunction discoveredPeerName(\n\tcandidate: PlatformAgentRegistryA2APeerCandidate,\n\tindex: number,\n): string {\n\tconst raw =\n\t\tcandidate.agent.id ??\n\t\tcandidate.agent.name ??\n\t\t`platform-a2a-peer-${index + 1}`;\n\tconst sanitized =\n\t\traw\n\t\t\t.trim()\n\t\t\t.replace(/[^A-Za-z0-9_.-]+/gu, \"-\")\n\t\t\t.replace(/^-+|-+$/gu, \"\")\n\t\t\t.slice(0, 80) || `platform-a2a-peer-${index + 1}`;\n\treturn normalizePeerName(sanitized);\n}\n\nfunction uniqueDiscoveredPeerName(input: {\n\tbaseName: string;\n\tcandidate: PlatformAgentRegistryA2APeerCandidate;\n\timportedNames: Set<string>;\n\tpeers: Record<string, A2APeerRegistryEntry>;\n}): string {\n\tfor (let suffix = 1; suffix <= 100; suffix++) {\n\t\tconst name =\n\t\t\tsuffix === 1 ? input.baseName : suffixedPeerName(input.baseName, suffix);\n\t\tconst existing = input.peers[name];\n\t\tconst hasSameAgentId = Boolean(\n\t\t\texisting?.agentId &&\n\t\t\t\tinput.candidate.agent.id &&\n\t\t\t\texisting.agentId === input.candidate.agent.id,\n\t\t);\n\t\tconst hasSameEndpoint = existing?.url === input.candidate.endpointUrl;\n\t\tif (\n\t\t\t!input.importedNames.has(name) &&\n\t\t\t(!existing || hasSameAgentId || hasSameEndpoint)\n\t\t) {\n\t\t\tinput.importedNames.add(name);\n\t\t\treturn name;\n\t\t}\n\t}\n\tthrow new Error(\n\t\t`Could not derive a unique A2A peer name for ${input.baseName}`,\n\t);\n}\n\nfunction suffixedPeerName(baseName: string, suffix: number): string {\n\tconst suffixText = `-${suffix}`;\n\treturn normalizePeerName(\n\t\t`${baseName.slice(0, 80 - suffixText.length)}${suffixText}`,\n\t);\n}\n\nfunction a2ADiscoveryEvidenceMetadata(\n\tevidence: PlatformAgentDiscoveryEvidence | undefined,\n): Record<string, string | number | boolean> {\n\tif (!evidence) {\n\t\treturn {};\n\t}\n\treturn (\n\t\tcompactA2APeerMetadata({\n\t\t\tplatformDiscoverySchema: evidence.schema,\n\t\t\tplatformDiscoveryDecision: evidence.decision,\n\t\t\tplatformDiscoveryReason: evidence.reason,\n\t\t\tplatformDiscoveryWorkspaceId: evidence.workspaceId,\n\t\t\tplatformDiscoveryCapability: evidence.capability,\n\t\t\tplatformDiscoveryAgentType: evidence.agentType,\n\t\t\tplatformDiscoveryA2ASkillId: evidence.a2aSkillId,\n\t\t\tplatformDiscoveryTaskClass: evidence.taskClass,\n\t\t\tplatformDiscoveryRequireA2ADispatch: evidence.requireA2ADispatch,\n\t\t\tplatformDiscoverySurface: evidence.surface,\n\t\t\tplatformDiscoveryStatus: evidence.status,\n\t\t\tplatformDiscoveryCandidateCount: evidence.candidateCount,\n\t\t\tplatformDiscoveryMatchedCount: evidence.matchedCount,\n\t\t}) ?? {}\n\t);\n}\n\nfunction a2APeerMetadataWithoutDiscoveryEvidence(\n\tmetadata: A2APeerRegistryEntry[\"metadata\"] | undefined,\n): Record<string, string | number | boolean> | undefined {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\tconst entries = Object.entries(metadata).filter(\n\t\t([key]) => !key.startsWith(\"platformDiscovery\"),\n\t);\n\treturn entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\nfunction a2ADiscoverySelectionPayload(\n\tselection: A2ADiscoverySelection | undefined,\n): Record<string, unknown> | undefined {\n\tif (!selection) {\n\t\treturn undefined;\n\t}\n\treturn compactA2AUnknownRecord({\n\t\tsource: selection.source,\n\t\t...a2ADiscoveryEvidenceMetadata(selection.evidence),\n\t\tselectedAgentId: selection.selectedAgentId,\n\t\tselectedAgentName: selection.selectedAgentName,\n\t\tselectedEndpointUrl: selection.selectedEndpointUrl,\n\t\tselectedEndpointKind: selection.selectedEndpointKind,\n\t\tscore: selection.score,\n\t\treasons: selection.reasons,\n\t\tcandidateCount: selection.candidateCount,\n\t\tmatchedCount: selection.matchedCount,\n\t});\n}\n\nfunction compactA2AUnknownRecord(\n\trecord: Record<string, unknown>,\n): Record<string, unknown> | undefined {\n\tconst entries = Object.entries(record).filter(([, value]) => {\n\t\tif (value === undefined) {\n\t\t\treturn false;\n\t\t}\n\t\treturn !Array.isArray(value) || value.length > 0;\n\t});\n\treturn entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\nfunction compactA2APeerMetadata(\n\trecord: Record<string, string | number | boolean | undefined>,\n): Record<string, string | number | boolean> | undefined {\n\tconst entries = Object.entries(record).filter(\n\t\t(entry): entry is [string, string | number | boolean] =>\n\t\t\tentry[1] !== undefined,\n\t);\n\treturn entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\nfunction baseUrlFromAgentCardUrl(agentCardUrl: string): string {\n\tconst parsed = new URL(agentCardUrl);\n\tparsed.pathname = parsed.pathname.replace(\n\t\t/\\/\\.well-known\\/agent-card\\.json$/u,\n\t\t\"\",\n\t);\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\treturn parsed.toString().replace(/\\/+$/u, \"\");\n}\n\nfunction stringFlag(parsed: ParsedA2AArgs, name: string): string | undefined {\n\tconst value = parsed.flags.get(name);\n\treturn typeof value === \"string\" && value.trim() ? value.trim() : undefined;\n}\n\nfunction stringListFlag(\n\tparsed: ParsedA2AArgs,\n\tname: string,\n\tfallback: string[],\n): string[] {\n\tconst value = stringFlag(parsed, name);\n\tif (!value) {\n\t\treturn fallback;\n\t}\n\tconst parsedValues = value\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter(Boolean);\n\treturn parsedValues.length > 0 ? parsedValues : fallback;\n}\n\nfunction numberFlag(parsed: ParsedA2AArgs, name: string): number | undefined {\n\tconst value = stringFlag(parsed, name);\n\tif (!value) {\n\t\treturn undefined;\n\t}\n\tconst parsedValue = Number(value);\n\tif (!Number.isFinite(parsedValue) || parsedValue <= 0) {\n\t\tthrow new Error(`${name} must be a positive number`);\n\t}\n\treturn parsedValue;\n}\n\nfunction nonNegativeNumberFlag(\n\tparsed: ParsedA2AArgs,\n\tname: string,\n): number | undefined {\n\tconst value = stringFlag(parsed, name);\n\tif (!value) {\n\t\treturn undefined;\n\t}\n\tconst parsedValue = Number(value);\n\tif (!Number.isFinite(parsedValue) || parsedValue < 0) {\n\t\tthrow new Error(`${name} must be a non-negative number`);\n\t}\n\treturn parsedValue;\n}\n\nfunction minutesFlag(parsed: ParsedA2AArgs, name: string): number | undefined {\n\tconst value = numberFlag(parsed, name);\n\treturn value === undefined ? undefined : value * 60 * 1000;\n}\n\nfunction booleanFlag(parsed: ParsedA2AArgs, name: string): boolean {\n\treturn parsed.flags.get(name) === true;\n}\n\nfunction formatCockpitTaskStatus(status: string): string {\n\tswitch (status) {\n\t\tcase \"waiting\":\n\t\t\treturn chalk.yellow(status);\n\t\tcase \"failed\":\n\t\t\treturn chalk.red(status);\n\t\tcase \"completed\":\n\t\t\treturn chalk.green(status);\n\t\tcase \"running\":\n\t\t\treturn chalk.cyan(status);\n\t\tdefault:\n\t\t\treturn chalk.dim(status);\n\t}\n}\n\nfunction formatCockpitActionSeverity(severity: string): string {\n\tswitch (severity) {\n\t\tcase \"critical\":\n\t\t\treturn chalk.red(\"!\");\n\t\tcase \"warning\":\n\t\t\treturn chalk.yellow(\"!\");\n\t\tdefault:\n\t\t\treturn chalk.cyan(\">\");\n\t}\n}\n\nasync function persistA2ALedgerBestEffort(\n\tdescription: string,\n\taction: () => Promise<unknown>,\n): Promise<void> {\n\ttry {\n\t\tawait action();\n\t} catch (error) {\n\t\tif (isAbortError(error)) {\n\t\t\tthrow error;\n\t\t}\n\t\tconsole.error(\n\t\t\tchalk.yellow(\n\t\t\t\t`A2A task ledger warning: could not ${description}: ${errorMessage(error)}`,\n\t\t\t),\n\t\t);\n\t}\n}\n\nfunction fail(message: string): never {\n\tthrow new Error(message);\n}\n\nfunction sleep(ms: number): Promise<void> {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction errorMessage(error: unknown): string {\n\treturn error instanceof Error ? error.message : String(error);\n}\n\nfunction agentRegistryNotConfiguredMessage(): string {\n\treturn \"Agent Registry service is not configured. Set AGENT_REGISTRY_SERVICE_URL, AGENT_REGISTRY_SERVICE_TOKEN, AGENT_REGISTRY_ORGANIZATION_ID, and AGENT_REGISTRY_WORKSPACE_ID, or pass --workspace-id with shared EvalOps credentials.\";\n}\n\nfunction normalizeA2AControlMode(\n\tvalue: string,\n): PlatformA2ADelegationTaskControlModeValue {\n\tswitch (value.toLowerCase()) {\n\t\tcase \"steer\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Steer;\n\t\tcase \"followup\":\n\t\tcase \"follow-up\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Followup;\n\t\tcase \"collect\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Collect;\n\t\tcase \"interrupt\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Interrupt;\n\t\tcase \"cancel\":\n\t\t\treturn PlatformA2ADelegationTaskControlModeValue.Cancel;\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported A2A control mode: ${value}`);\n\t}\n}\n\nfunction printA2AHelp(): void {\n\tconsole.log(`Usage:\n maestro a2a offer --url <base-url> [--name <display-name>] [--peer-id <id>]\n maestro a2a accept <pairing-code> [--name <peer>] [--default] [--token-env ENV]\n maestro a2a peers\n maestro a2a discover [--capability <capability>] [--skill <skill-id>] [--import]\n maestro a2a register --url <base-url> [--agent-id <id>] [--workspace-id <id>] [--json]\n maestro a2a fleet [--json]\n maestro a2a cockpit [--peer <peer>] [--json]\n maestro a2a card <peer>\n maestro a2a coordinate [peer] [--reply <text>] [--wait] [--json] [--work-graph]\n maestro a2a delegate <peer> <text> [--role <role>] [--cwd <path>] [--wait] [--work-graph]\n maestro a2a delegate --discover --skill <skill-id> <text> [--capability <capability>] [--prefer-internal]\n maestro a2a delegate --platform --from-agent-id <agent-id> [--to-agent-id <agent-id>|--capability <capability>] --skill <skill-id> <text> [--json]\n maestro a2a control <delegation-id> --mode steer|followup|collect|interrupt|cancel [--workspace-id <id>] [message]\n maestro a2a graph <delegation-id> [--workspace-id <id>] [--json]\n maestro a2a telemetry --events <path> --swarm-id <id> [--json]\n maestro a2a reply <peer> <task-id> <text> [--wait] [--work-graph]\n maestro a2a send <peer> <text> [--wait] [--tasks <path>] [--work-graph]\n maestro a2a tasks [peer] [--json] [--refresh] [--work-graph]\n maestro a2a wait <peer> <task-id> [--work-graph]\n\nPairing codes carry Agent Card and transport coordinates only. Configure auth with\n--token-env or --token-file when accepting a peer; bearer tokens are never embedded.`);\n}\n"]}
|