@evalops/maestro 0.10.49 → 0.10.51
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/dist/agent/agent-outcome.d.ts +54 -0
- package/dist/agent/agent-outcome.d.ts.map +1 -0
- package/dist/agent/agent-outcome.js +142 -0
- package/dist/agent/agent-outcome.js.map +1 -0
- package/dist/agent/agent-resume.d.ts.map +1 -1
- package/dist/agent/agent-resume.js +3 -3
- package/dist/agent/agent-resume.js.map +1 -1
- package/dist/agent/agent-run-summary.d.ts +37 -0
- package/dist/agent/agent-run-summary.d.ts.map +1 -0
- package/dist/agent/agent-run-summary.js +15 -0
- package/dist/agent/agent-run-summary.js.map +1 -0
- package/dist/agent/agent-work-board.d.ts +82 -0
- package/dist/agent/agent-work-board.d.ts.map +1 -0
- package/dist/agent/agent-work-board.js +312 -0
- package/dist/agent/agent-work-board.js.map +1 -0
- package/dist/agent/auto-compaction.d.ts +7 -2
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js +23 -10
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/mission-artifacts.d.ts +62 -0
- package/dist/agent/mission-artifacts.d.ts.map +1 -0
- package/dist/agent/mission-artifacts.js +438 -0
- package/dist/agent/mission-artifacts.js.map +1 -0
- package/dist/agent/mission-manifest.d.ts +139 -3
- package/dist/agent/mission-manifest.d.ts.map +1 -1
- package/dist/agent/mission-manifest.js +549 -3
- package/dist/agent/mission-manifest.js.map +1 -1
- package/dist/agent/mission-store.d.ts +80 -0
- package/dist/agent/mission-store.d.ts.map +1 -0
- package/dist/agent/mission-store.js +603 -0
- package/dist/agent/mission-store.js.map +1 -0
- package/dist/agent/modes.d.ts +2 -2
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +10 -3
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
- package/dist/agent/providers/codex-app-server.js +1 -3
- package/dist/agent/providers/codex-app-server.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +203 -107
- package/dist/agent/providers/google.js +100 -41
- package/dist/agent/providers/scripted.d.ts.map +1 -1
- package/dist/agent/providers/scripted.js +1 -3
- package/dist/agent/providers/scripted.js.map +1 -1
- package/dist/agent/providers/validation.d.ts.map +1 -1
- package/dist/agent/providers/validation.js +1 -3
- package/dist/agent/providers/validation.js.map +1 -1
- package/dist/agent/providers/vertex.js +203 -107
- package/dist/agent/snapshot-store.d.ts +32 -0
- package/dist/agent/snapshot-store.d.ts.map +1 -0
- package/dist/agent/snapshot-store.js +195 -0
- package/dist/agent/snapshot-store.js.map +1 -0
- package/dist/agent/specialist-profiles.d.ts +36 -0
- package/dist/agent/specialist-profiles.d.ts.map +1 -0
- package/dist/agent/specialist-profiles.js +159 -0
- package/dist/agent/specialist-profiles.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +4 -1
- package/dist/agent/subagent-specs.d.ts.map +1 -1
- package/dist/agent/subagent-specs.js +81 -8
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/swarm/coverage-gate.d.ts +37 -0
- package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
- package/dist/agent/swarm/coverage-gate.js +48 -0
- package/dist/agent/swarm/coverage-gate.js.map +1 -0
- package/dist/agent/swarm/executor.d.ts +1 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +151 -15
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
- package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
- package/dist/agent/swarm/orchestrator-prompt.js +48 -0
- package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
- package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
- package/dist/agent/swarm/plan-parser.js +27 -2
- package/dist/agent/swarm/plan-parser.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +17 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/swarm/validation-directive.d.ts +21 -0
- package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
- package/dist/agent/swarm/validation-directive.js +25 -0
- package/dist/agent/swarm/validation-directive.js.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +4 -1
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/api/enterprise-routes.d.ts.map +1 -1
- package/dist/api/enterprise-routes.js +87 -10
- package/dist/api/enterprise-routes.js.map +1 -1
- package/dist/api/org-settings-merge.d.ts +12 -0
- package/dist/api/org-settings-merge.d.ts.map +1 -0
- package/dist/api/org-settings-merge.js +38 -0
- package/dist/api/org-settings-merge.js.map +1 -0
- package/dist/api/user-settings-merge.d.ts +16 -0
- package/dist/api/user-settings-merge.d.ts.map +1 -0
- package/dist/api/user-settings-merge.js +37 -0
- package/dist/api/user-settings-merge.js.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.js +1 -3
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
- package/dist/app-server/external-agent-import-api.js +1 -3
- package/dist/app-server/external-agent-import-api.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts.map +1 -1
- package/dist/app-server/network-governance-api.js +1 -3
- package/dist/app-server/network-governance-api.js.map +1 -1
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
- package/dist/app-server/plugin-bundle-api.js +1 -3
- package/dist/app-server/plugin-bundle-api.js.map +1 -1
- package/dist/app-server/policy-control-api.d.ts.map +1 -1
- package/dist/app-server/policy-control-api.js +1 -3
- package/dist/app-server/policy-control-api.js.map +1 -1
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
- package/dist/app-server/protocol-modes-api.js +1 -3
- package/dist/app-server/protocol-modes-api.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +15 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +1 -3
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/agents.d.ts +4 -0
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +149 -0
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/mission.d.ts +4 -0
- package/dist/cli/commands/mission.d.ts.map +1 -0
- package/dist/cli/commands/mission.js +196 -0
- package/dist/cli/commands/mission.js.map +1 -0
- package/dist/cli/commands/value.d.ts +10 -0
- package/dist/cli/commands/value.d.ts.map +1 -0
- package/dist/cli/commands/value.js +33 -0
- package/dist/cli/commands/value.js.map +1 -0
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +1 -3
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +10 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/system-prompt.d.ts.map +1 -1
- package/dist/cli/system-prompt.js +38 -7
- package/dist/cli/system-prompt.js.map +1 -1
- package/dist/cli-command-runtime.js +2 -2
- package/dist/cli-command-runtime.js.map +1 -1
- package/dist/cli-runtime.js +7798 -2805
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +1 -3
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
- package/dist/cli-tui/commands/undo-handlers.d.ts.map +1 -1
- package/dist/cli-tui/commands/undo-handlers.js +7 -2
- package/dist/cli-tui/commands/undo-handlers.js.map +1 -1
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts +3 -0
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/skills-controller.js +77 -33
- package/dist/cli-tui/tui-renderer/skills-controller.js.map +1 -1
- package/dist/cli.js +4 -6
- package/dist/cli.js.map +1 -1
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +1 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +1 -3
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/codex/subagent-dispatch-table.d.ts +8 -0
- package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
- package/dist/codex/subagent-dispatch-table.js +23 -0
- package/dist/codex/subagent-dispatch-table.js.map +1 -1
- package/dist/context/manifest.d.ts.map +1 -1
- package/dist/context/manifest.js +1 -3
- package/dist/context/manifest.js.map +1 -1
- package/dist/conversation/render-model.d.ts +0 -36
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +1 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/customer-value/ambient-learning.d.ts +75 -0
- package/dist/customer-value/ambient-learning.d.ts.map +1 -0
- package/dist/customer-value/ambient-learning.js +472 -0
- package/dist/customer-value/ambient-learning.js.map +1 -0
- package/dist/customer-value/internal-helpers.d.ts +13 -0
- package/dist/customer-value/internal-helpers.d.ts.map +1 -0
- package/dist/customer-value/internal-helpers.js +70 -0
- package/dist/customer-value/internal-helpers.js.map +1 -0
- package/dist/customer-value/report.d.ts +282 -0
- package/dist/customer-value/report.d.ts.map +1 -0
- package/dist/customer-value/report.js +2085 -0
- package/dist/customer-value/report.js.map +1 -0
- package/dist/db/health.d.ts +1 -1
- package/dist/db/health.d.ts.map +1 -1
- package/dist/db/health.js +10 -0
- package/dist/db/health.js.map +1 -1
- package/dist/db/migrations/0009_operating_layer_evidence.sql +30 -0
- package/dist/db/migrations/meta/_journal.json +7 -0
- package/dist/db/schema.d.ts +268 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +28 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +1 -3
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
- package/dist/evalops/agent-mcp-metadata.js +1 -3
- package/dist/evalops/agent-mcp-metadata.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/installers/maestro-review-workflow.d.ts +38 -0
- package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
- package/dist/installers/maestro-review-workflow.js +163 -0
- package/dist/installers/maestro-review-workflow.js.map +1 -0
- package/dist/load-env.d.ts +13 -0
- package/dist/load-env.d.ts.map +1 -1
- package/dist/load-env.js +17 -0
- package/dist/load-env.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +96 -7
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +1 -3
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/elicitation.d.ts.map +1 -1
- package/dist/mcp/elicitation.js +1 -3
- package/dist/mcp/elicitation.js.map +1 -1
- package/dist/mcp/official-registry.d.ts.map +1 -1
- package/dist/mcp/official-registry.js +1 -3
- package/dist/mcp/official-registry.js.map +1 -1
- package/dist/mcp/workspace-trust.d.ts.map +1 -1
- package/dist/mcp/workspace-trust.js +1 -3
- package/dist/mcp/workspace-trust.js.map +1 -1
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -3
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -3
- package/dist/models/config-loader.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
- 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.map +1 -1
- package/dist/oauth/connectors.js +1 -3
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +1 -3
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/platform/a2a-client.d.ts.map +1 -1
- package/dist/platform/a2a-client.js +1 -3
- package/dist/platform/a2a-client.js.map +1 -1
- package/dist/platform/a2a-cockpit.d.ts +1 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -1
- package/dist/platform/a2a-cockpit.js +42 -11
- package/dist/platform/a2a-cockpit.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +1 -1
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
- package/dist/platform/a2a-completion-audit.js +7 -11
- package/dist/platform/a2a-completion-audit.js.map +1 -1
- package/dist/platform/a2a-maestro-peer.js +16 -0
- package/dist/platform/a2a-maestro-peer.js.map +1 -1
- package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
- package/dist/platform/a2a-peer-pairing.js +1 -3
- package/dist/platform/a2a-peer-pairing.js.map +1 -1
- package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
- package/dist/platform/a2a-peer-registry.js +1 -3
- package/dist/platform/a2a-peer-registry.js.map +1 -1
- package/dist/platform/a2a-task-ledger.d.ts +20 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +207 -11
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-work-graph.d.ts.map +1 -1
- package/dist/platform/a2a-work-graph.js +1 -3
- package/dist/platform/a2a-work-graph.js.map +1 -1
- package/dist/platform/operating-layer.d.ts +127 -0
- package/dist/platform/operating-layer.d.ts.map +1 -0
- package/dist/platform/operating-layer.js +360 -0
- package/dist/platform/operating-layer.js.map +1 -0
- package/dist/platform/tool-execution-client.d.ts.map +1 -1
- package/dist/platform/tool-execution-client.js +19 -2
- package/dist/platform/tool-execution-client.js.map +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/runtime/env.d.ts +9 -1
- package/dist/runtime/env.d.ts.map +1 -1
- package/dist/runtime/env.js +63 -1
- package/dist/runtime/env.js.map +1 -1
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +1 -4
- package/dist/safety/policy.js.map +1 -1
- package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/sandbox/docker-sandbox.js +6 -1
- package/dist/sandbox/docker-sandbox.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +1 -3
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
- package/dist/server/handlers/platform-a2a-push.js +53 -2
- package/dist/server/handlers/platform-a2a-push.js.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.js +1 -3
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +16 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +232 -206
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +12 -3
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/pending-request-payload.d.ts.map +1 -1
- package/dist/server/pending-request-payload.js +1 -3
- package/dist/server/pending-request-payload.js.map +1 -1
- package/dist/server/route-auth.d.ts.map +1 -1
- package/dist/server/route-auth.js +2 -0
- package/dist/server/route-auth.js.map +1 -1
- package/dist/server/session-serialization.d.ts.map +1 -1
- package/dist/server/session-serialization.js +1 -3
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/services/compliance/normalize.d.ts.map +1 -1
- package/dist/services/compliance/normalize.js +1 -3
- package/dist/services/compliance/normalize.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +1 -3
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
- package/dist/services/revenue-attribution/normalize.js +1 -3
- package/dist/services/revenue-attribution/normalize.js.map +1 -1
- package/dist/services/traces/normalize.d.ts.map +1 -1
- package/dist/services/traces/normalize.js +1 -3
- package/dist/services/traces/normalize.js.map +1 -1
- package/dist/services/workspace-config/normalize.d.ts.map +1 -1
- package/dist/services/workspace-config/normalize.js +1 -3
- package/dist/services/workspace-config/normalize.js.map +1 -1
- package/dist/skills/composer.d.ts.map +1 -1
- package/dist/skills/composer.js +13 -1
- package/dist/skills/composer.js.map +1 -1
- package/dist/skills/index.d.ts +1 -0
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/learned-guidelines.d.ts +33 -0
- package/dist/skills/learned-guidelines.d.ts.map +1 -0
- package/dist/skills/learned-guidelines.js +291 -0
- package/dist/skills/learned-guidelines.js.map +1 -0
- package/dist/skills/linter.d.ts.map +1 -1
- package/dist/skills/linter.js +1 -3
- package/dist/skills/linter.js.map +1 -1
- package/dist/skills/runtime-activation.d.ts +1 -0
- package/dist/skills/runtime-activation.d.ts.map +1 -1
- package/dist/skills/runtime-activation.js +2 -3
- package/dist/skills/runtime-activation.js.map +1 -1
- package/dist/skills/tool.d.ts.map +1 -1
- package/dist/skills/tool.js +26 -21
- package/dist/skills/tool.js.map +1 -1
- package/dist/skills/trust-cache.d.ts +7 -0
- package/dist/skills/trust-cache.d.ts.map +1 -1
- package/dist/skills/trust-cache.js +16 -0
- package/dist/skills/trust-cache.js.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.js +1 -3
- package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +42 -81
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +54 -43
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.d.ts.map +1 -1
- package/dist/theme/theme-loader.js +1 -3
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +76 -8
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/diff-preview.d.ts.map +1 -1
- package/dist/tools/diff-preview.js +10 -1
- package/dist/tools/diff-preview.js.map +1 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +17 -0
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +9 -0
- package/dist/tools/write.js.map +1 -1
- package/dist/undo/tracker.d.ts +5 -0
- package/dist/undo/tracker.d.ts.map +1 -1
- package/dist/undo/tracker.js +13 -0
- package/dist/undo/tracker.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +29 -2
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-stash.d.ts.map +1 -1
- package/dist/utils/git-stash.js +15 -8
- package/dist/utils/git-stash.js.map +1 -1
- package/dist/utils/json.d.ts +11 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +9 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/shell-env.d.ts.map +1 -1
- package/dist/utils/shell-env.js +2 -0
- package/dist/utils/shell-env.js.map +1 -1
- package/dist/utils/url-extractor-git.d.ts +26 -0
- package/dist/utils/url-extractor-git.d.ts.map +1 -0
- package/dist/utils/url-extractor-git.js +259 -0
- package/dist/utils/url-extractor-git.js.map +1 -0
- package/dist/utils/url-extractor.d.ts.map +1 -1
- package/dist/utils/url-extractor.js +23 -251
- package/dist/utils/url-extractor.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +2 -5
- package/dist/web-server.js.map +1 -1
- package/package.json +310 -306
- package/skills/incident-triage/SKILL.md +19 -1
- package/skills/install-code-review/SKILL.md +69 -0
- package/skills/security-review/SKILL.md +68 -0
- package/skills/security-review/reference/rubric.md +85 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-server-client.js","sourceRoot":"","sources":["../../src/codex/app-server-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn as spawnChild } from \"node:child_process\";\nimport type { ChildProcessWithoutNullStreams } from \"node:child_process\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport type { Interface as ReadlineInterface } from \"node:readline\";\nimport type { Readable, Writable } from \"node:stream\";\nimport { readPackageVersion } from \"../package-version.js\";\n\ntype JsonRpcId = number | string;\n\nexport interface CodexAppServerTransport {\n\tstdin: Writable;\n\tstdout: Readable;\n\tstderr?: Readable | null;\n\tkill?: (signal?: NodeJS.Signals | number) => boolean;\n\ton?: (event: string, listener: (...args: unknown[]) => void) => unknown;\n\tonce?: (event: string, listener: (...args: unknown[]) => void) => unknown;\n}\n\nexport interface CodexAppServerClientInfo {\n\tname: string;\n\ttitle?: string;\n\tversion?: string;\n}\n\nexport interface CodexAppServerInitializeOptions {\n\tclientInfo?: CodexAppServerClientInfo;\n\texperimentalApi?: boolean;\n\toptOutNotificationMethods?: string[];\n\ttimeoutMs?: number;\n}\n\nexport interface CreateCodexAppServerClientOptions {\n\tcommand?: string;\n\targs?: string[];\n\tcwd?: string;\n\tenv?: NodeJS.ProcessEnv;\n\trequestTimeoutMs?: number;\n}\n\nexport type CodexAccount =\n\t| { type: \"apiKey\" }\n\t| { type: \"chatgpt\"; email: string; planType: string }\n\t| { type: string; [key: string]: unknown };\n\nexport interface CodexAccountReadResult {\n\taccount: CodexAccount | null;\n\trequiresOpenaiAuth: boolean;\n}\n\nexport type CodexLoginStartResult =\n\t| { type: \"apiKey\" }\n\t| { type: \"chatgpt\"; loginId: string; authUrl: string }\n\t| {\n\t\t\ttype: \"chatgptDeviceCode\";\n\t\t\tloginId: string;\n\t\t\tverificationUrl: string;\n\t\t\tuserCode: string;\n\t }\n\t| { type: \"chatgptAuthTokens\" }\n\t| { type: string; [key: string]: unknown };\n\nexport interface CodexLoginCompletedNotification {\n\tloginId: string | null;\n\tsuccess: boolean;\n\terror: string | null;\n}\n\nexport interface CodexAppServerNotification<TParams = unknown> {\n\tmethod: string;\n\tparams?: TParams;\n}\n\nexport interface CodexAppServerRequest<TParams = unknown> {\n\tid: JsonRpcId;\n\tmethod: string;\n\tparams?: TParams;\n}\n\nexport type CodexAppServerRequestHandlerResult =\n\t| {\n\t\t\thandled: true;\n\t\t\tresult?: unknown;\n\t }\n\t| {\n\t\t\thandled: true;\n\t\t\terror: {\n\t\t\t\tcode?: number;\n\t\t\t\tmessage: string;\n\t\t\t\tdata?: unknown;\n\t\t\t};\n\t }\n\t| {\n\t\t\thandled: false;\n\t };\n\nexport type CodexAppServerRequestHandler = (\n\trequest: CodexAppServerRequest,\n) =>\n\t| CodexAppServerRequestHandlerResult\n\t| Promise<CodexAppServerRequestHandlerResult>;\n\nexport interface CodexAppServerClientLike {\n\tinitialize(options?: CodexAppServerInitializeOptions): Promise<unknown>;\n\trequest<TResult = unknown>(\n\t\tmethod: string,\n\t\tparams?: unknown,\n\t\toptions?: { timeoutMs?: number },\n\t): Promise<TResult>;\n\tnotify(method: string, params?: unknown): void;\n\tonNotification(\n\t\tlistener: (notification: CodexAppServerNotification) => void,\n\t): () => void;\n\tonRequest(listener: CodexAppServerRequestHandler): () => void;\n\treadAccount(refreshToken?: boolean): Promise<CodexAccountReadResult>;\n\tstartChatGptLogin(\n\t\tflow?: \"browser\" | \"device\",\n\t\toptions?: { codexStreamlinedLogin?: boolean },\n\t): Promise<CodexLoginStartResult>;\n\twaitForLoginCompletion(\n\t\tloginId: string,\n\t\ttimeoutMs?: number,\n\t): Promise<CodexLoginCompletedNotification>;\n\tlogout(): Promise<void>;\n\tclose(): void;\n}\n\ninterface PendingRequest {\n\tresolve: (value: unknown) => void;\n\treject: (error: Error) => void;\n\ttimer: NodeJS.Timeout;\n}\n\ninterface PendingNotification {\n\treject: (error: Error) => void;\n\ttimer: NodeJS.Timeout;\n\tunsubscribe: () => void;\n}\n\ninterface JsonRpcResponse {\n\tid?: JsonRpcId;\n\tresult?: unknown;\n\terror?: {\n\t\tcode?: number;\n\t\tmessage?: string;\n\t\tdata?: unknown;\n\t};\n}\n\nconst DEFAULT_REQUEST_TIMEOUT_MS = 30_000;\nconst DEFAULT_LOGIN_TIMEOUT_MS = 5 * 60_000;\nconst MAX_NOTIFICATION_HISTORY = 100;\nconst DEFAULT_CODEX_COMMAND = \"codex\";\nconst DEFAULT_CODEX_APP_SERVER_ARGS = [\"app-server\", \"--listen\", \"stdio://\"];\nconst DEFAULT_CLIENT_INFO: CodexAppServerClientInfo = {\n\tname: \"maestro\",\n\ttitle: \"Maestro\",\n\tversion: readPackageVersion(),\n};\nconst moduleRequire = createRequire(import.meta.url);\n\nexport interface CodexAppServerSpawnCommand {\n\tcommand: string;\n\targs: string[];\n\tsource: \"override\" | \"bundled-package\" | \"path\";\n}\n\nexport class CodexAppServerRpcClient implements CodexAppServerClientLike {\n\tprivate readonly pending = new Map<JsonRpcId, PendingRequest>();\n\tprivate readonly notificationListeners = new Set<\n\t\t(notification: CodexAppServerNotification) => void\n\t>();\n\tprivate readonly notificationHistory: CodexAppServerNotification[] = [];\n\tprivate readonly notificationWaiters = new Set<PendingNotification>();\n\tprivate readonly requestHandlers = new Set<CodexAppServerRequestHandler>();\n\tprivate readonly stderrTail: string[] = [];\n\tprivate readonly rl: ReadlineInterface;\n\tprivate nextId = 1;\n\tprivate closed = false;\n\n\tconstructor(\n\t\tprivate readonly transport: CodexAppServerTransport,\n\t\tprivate readonly options: {\n\t\t\trequestTimeoutMs?: number;\n\t\t\tcommandLabel?: string;\n\t\t} = {},\n\t) {\n\t\tthis.rl = createInterface({ input: transport.stdout });\n\t\tthis.rl.on(\"line\", (line) => this.handleLine(line));\n\t\tthis.rl.on(\"close\", () => this.rejectAll(\"Codex app-server closed stdout\"));\n\t\ttransport.stderr?.on(\"data\", (chunk) => this.captureStderr(chunk));\n\t\ttransport.once?.(\"exit\", (code, signal) => {\n\t\t\tconst suffix =\n\t\t\t\tcode === null || code === undefined\n\t\t\t\t\t? `signal ${String(signal)}`\n\t\t\t\t\t: `code ${String(code)}`;\n\t\t\tthis.rejectAll(`Codex app-server exited with ${suffix}`);\n\t\t});\n\t\ttransport.once?.(\"error\", (error) => {\n\t\t\tconst message =\n\t\t\t\terror instanceof Error\n\t\t\t\t\t? formatTransportError(error, this.options.commandLabel)\n\t\t\t\t\t: `Process error: ${String(error)}`;\n\t\t\tthis.rejectAll(message);\n\t\t});\n\t}\n\n\tstatic spawn(\n\t\toptions: CreateCodexAppServerClientOptions = {},\n\t): CodexAppServerRpcClient {\n\t\tconst { command, args, source } =\n\t\t\tresolveCodexAppServerSpawnCommand(options);\n\t\tconst child: ChildProcessWithoutNullStreams = spawnChild(command, args, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env ?? process.env,\n\t\t\tstdio: \"pipe\",\n\t\t});\n\t\treturn new CodexAppServerRpcClient(child, {\n\t\t\trequestTimeoutMs: options.requestTimeoutMs,\n\t\t\tcommandLabel:\n\t\t\t\tsource === \"bundled-package\"\n\t\t\t\t\t? \"@openai/codex\"\n\t\t\t\t\t: [command, ...args].join(\" \"),\n\t\t});\n\t}\n\n\tasync initialize(\n\t\toptions: CodexAppServerInitializeOptions = {},\n\t): Promise<unknown> {\n\t\tconst capabilities =\n\t\t\toptions.experimentalApi || options.optOutNotificationMethods?.length\n\t\t\t\t? {\n\t\t\t\t\t\texperimentalApi: options.experimentalApi || undefined,\n\t\t\t\t\t\toptOutNotificationMethods:\n\t\t\t\t\t\t\toptions.optOutNotificationMethods ?? undefined,\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\tconst result = await this.request(\n\t\t\t\"initialize\",\n\t\t\t{\n\t\t\t\tclientInfo: options.clientInfo ?? DEFAULT_CLIENT_INFO,\n\t\t\t\tcapabilities,\n\t\t\t},\n\t\t\t{ timeoutMs: options.timeoutMs },\n\t\t);\n\t\tthis.notify(\"initialized\");\n\t\treturn result;\n\t}\n\n\trequest<TResult = unknown>(\n\t\tmethod: string,\n\t\tparams?: unknown,\n\t\toptions: { timeoutMs?: number } = {},\n\t): Promise<TResult> {\n\t\tif (this.closed) {\n\t\t\treturn Promise.reject(new Error(\"Codex app-server client is closed\"));\n\t\t}\n\t\tconst id = this.nextId++;\n\t\tconst timeoutMs =\n\t\t\toptions.timeoutMs ??\n\t\t\tthis.options.requestTimeoutMs ??\n\t\t\tDEFAULT_REQUEST_TIMEOUT_MS;\n\t\treturn new Promise<TResult>((resolve, reject) => {\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\treject(new Error(`Codex app-server request timed out: ${method}`));\n\t\t\t}, timeoutMs);\n\t\t\tthis.pending.set(id, {\n\t\t\t\tresolve: (value) => resolve(value as TResult),\n\t\t\t\treject,\n\t\t\t\ttimer,\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tthis.writeMessage({ id, method, params });\n\t\t\t} catch (error) {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\treject(error instanceof Error ? error : new Error(String(error)));\n\t\t\t}\n\t\t});\n\t}\n\n\tnotify(method: string, params?: unknown): void {\n\t\tthis.writeMessage({ method, params });\n\t}\n\n\tonNotification(\n\t\tlistener: (notification: CodexAppServerNotification) => void,\n\t): () => void {\n\t\tthis.notificationListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.notificationListeners.delete(listener);\n\t\t};\n\t}\n\n\tonRequest(listener: CodexAppServerRequestHandler): () => void {\n\t\tthis.requestHandlers.add(listener);\n\t\treturn () => {\n\t\t\tthis.requestHandlers.delete(listener);\n\t\t};\n\t}\n\n\twaitForNotification<TParams = unknown>(\n\t\tpredicate: (notification: CodexAppServerNotification) => boolean,\n\t\ttimeoutMs = DEFAULT_REQUEST_TIMEOUT_MS,\n\t): Promise<CodexAppServerNotification<TParams>> {\n\t\tconst buffered = this.notificationHistory.find(predicate);\n\t\tif (buffered) {\n\t\t\treturn Promise.resolve(buffered as CodexAppServerNotification<TParams>);\n\t\t}\n\t\tif (this.closed) {\n\t\t\treturn Promise.reject(new Error(\"Codex app-server client is closed\"));\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet unsubscribe = () => {};\n\t\t\tconst waiter: PendingNotification = {\n\t\t\t\treject: (error) => {\n\t\t\t\t\tclearTimeout(waiter.timer);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t\tthis.notificationWaiters.delete(waiter);\n\t\t\t\t\treject(error);\n\t\t\t\t},\n\t\t\t\ttimer: setTimeout(() => {\n\t\t\t\t\twaiter.reject(\n\t\t\t\t\t\tnew Error(\"Timed out waiting for Codex app-server notification\"),\n\t\t\t\t\t);\n\t\t\t\t}, timeoutMs),\n\t\t\t\tunsubscribe: () => unsubscribe(),\n\t\t\t};\n\t\t\tunsubscribe = this.onNotification((notification) => {\n\t\t\t\tif (!predicate(notification)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tclearTimeout(waiter.timer);\n\t\t\t\twaiter.unsubscribe();\n\t\t\t\tthis.notificationWaiters.delete(waiter);\n\t\t\t\tresolve(notification as CodexAppServerNotification<TParams>);\n\t\t\t});\n\t\t\tthis.notificationWaiters.add(waiter);\n\t\t});\n\t}\n\n\treadAccount(refreshToken = false): Promise<CodexAccountReadResult> {\n\t\treturn this.request(\"account/read\", { refreshToken });\n\t}\n\n\tstartChatGptLogin(\n\t\tflow: \"browser\" | \"device\" = \"browser\",\n\t\toptions: { codexStreamlinedLogin?: boolean } = {},\n\t): Promise<CodexLoginStartResult> {\n\t\tconst params =\n\t\t\tflow === \"device\"\n\t\t\t\t? { type: \"chatgptDeviceCode\" }\n\t\t\t\t: {\n\t\t\t\t\t\ttype: \"chatgpt\",\n\t\t\t\t\t\tcodexStreamlinedLogin: options.codexStreamlinedLogin || undefined,\n\t\t\t\t\t};\n\t\treturn this.request(\"account/login/start\", params);\n\t}\n\n\tasync waitForLoginCompletion(\n\t\tloginId: string,\n\t\ttimeoutMs = DEFAULT_LOGIN_TIMEOUT_MS,\n\t): Promise<CodexLoginCompletedNotification> {\n\t\tconst notification =\n\t\t\tawait this.waitForNotification<CodexLoginCompletedNotification>(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.method === \"account/login/completed\" &&\n\t\t\t\t\tisRecord(candidate.params) &&\n\t\t\t\t\tcandidate.params.loginId === loginId,\n\t\t\t\ttimeoutMs,\n\t\t\t);\n\t\tconst params = notification.params;\n\t\tif (!params?.success) {\n\t\t\tthrow new Error(params?.error || \"ChatGPT sign-in did not complete\");\n\t\t}\n\t\treturn params;\n\t}\n\n\tasync logout(): Promise<void> {\n\t\tawait this.request(\"account/logout\", undefined);\n\t}\n\n\tclose(): void {\n\t\tif (this.closed) {\n\t\t\treturn;\n\t\t}\n\t\tthis.closed = true;\n\t\tthis.rejectAll(\"Codex app-server client closed\");\n\t\tthis.rl.close();\n\t\ttry {\n\t\t\tthis.transport.stdin.end();\n\t\t} catch {\n\t\t\t// Best-effort shutdown only.\n\t\t}\n\t\tthis.transport.kill?.(\"SIGTERM\");\n\t}\n\n\tprivate handleLine(line: string): void {\n\t\tconst trimmed = line.trim();\n\t\tif (!trimmed) {\n\t\t\treturn;\n\t\t}\n\t\tlet message: unknown;\n\t\ttry {\n\t\t\tmessage = JSON.parse(trimmed);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\t\tif (!isRecord(message)) {\n\t\t\treturn;\n\t\t}\n\t\tif (\"id\" in message && (\"result\" in message || \"error\" in message)) {\n\t\t\tthis.handleResponse(message as JsonRpcResponse);\n\t\t\treturn;\n\t\t}\n\t\tif (typeof message.method === \"string\" && \"id\" in message) {\n\t\t\tvoid this.handleServerRequest(\n\t\t\t\tmessage as unknown as CodexAppServerRequest,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tif (typeof message.method === \"string\") {\n\t\t\tthis.emitNotification({\n\t\t\t\tmethod: message.method,\n\t\t\t\tparams: message.params,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleResponse(response: JsonRpcResponse): void {\n\t\tif (response.id === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst pending = this.pending.get(response.id);\n\t\tif (!pending) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pending.delete(response.id);\n\t\tclearTimeout(pending.timer);\n\t\tif (response.error) {\n\t\t\tconst message =\n\t\t\t\tresponse.error.message ?? \"Codex app-server request failed\";\n\t\t\tpending.reject(new Error(message));\n\t\t\treturn;\n\t\t}\n\t\tpending.resolve(response.result);\n\t}\n\n\tprivate async handleServerRequest(\n\t\trequest: CodexAppServerRequest,\n\t): Promise<void> {\n\t\tthis.emitNotification({\n\t\t\tmethod: request.method,\n\t\t\tparams: request.params,\n\t\t});\n\n\t\tif (request.method === \"account/chatgptAuthTokens/refresh\") {\n\t\t\tthis.writeMessage({\n\t\t\t\tid: request.id,\n\t\t\t\terror: {\n\t\t\t\t\tcode: -32601,\n\t\t\t\t\tmessage:\n\t\t\t\t\t\t\"Maestro does not manage Codex ChatGPT auth tokens directly. Run `maestro codex login` or `codex login` so Codex app-server owns ChatGPT auth refresh.\",\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const handler of Array.from(this.requestHandlers)) {\n\t\t\ttry {\n\t\t\t\tconst handled = await handler(request);\n\t\t\t\tif (!handled.handled) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (\"error\" in handled) {\n\t\t\t\t\tthis.writeMessage({\n\t\t\t\t\t\tid: request.id,\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tcode: handled.error.code ?? -32000,\n\t\t\t\t\t\t\tmessage: handled.error.message,\n\t\t\t\t\t\t\tdata: handled.error.data,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.writeMessage({ id: request.id, result: handled.result });\n\t\t\t\treturn;\n\t\t\t} catch (error: unknown) {\n\t\t\t\tthis.writeMessage({\n\t\t\t\t\tid: request.id,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: -32000,\n\t\t\t\t\t\tmessage: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst fallback = defaultServerRequestResponse(request.method);\n\t\tif (fallback.ok) {\n\t\t\tthis.writeMessage({ id: request.id, result: fallback.result });\n\t\t\treturn;\n\t\t}\n\t\tthis.writeMessage({\n\t\t\tid: request.id,\n\t\t\terror: {\n\t\t\t\tcode: -32601,\n\t\t\t\tmessage: `Unsupported Codex app-server request: ${request.method}`,\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate emitNotification(notification: CodexAppServerNotification): void {\n\t\tthis.notificationHistory.push(notification);\n\t\tif (this.notificationHistory.length > MAX_NOTIFICATION_HISTORY) {\n\t\t\tthis.notificationHistory.shift();\n\t\t}\n\t\tfor (const listener of this.notificationListeners) {\n\t\t\tlistener(notification);\n\t\t}\n\t}\n\n\tprivate writeMessage(message: Record<string, unknown>): void {\n\t\tconst compact = Object.fromEntries(\n\t\t\tObject.entries(message).filter(([, value]) => value !== undefined),\n\t\t);\n\t\tconst line = `${JSON.stringify(compact)}\\n`;\n\t\tif (!this.transport.stdin.write(line)) {\n\t\t\t// Backpressure is tiny for JSON-RPC control messages; the stream queues it.\n\t\t}\n\t}\n\n\tprivate captureStderr(chunk: unknown): void {\n\t\tconst text = Buffer.isBuffer(chunk)\n\t\t\t? chunk.toString(\"utf8\")\n\t\t\t: String(chunk);\n\t\tfor (const line of text.split(/\\r?\\n/)) {\n\t\t\tconst trimmed = line.trim();\n\t\t\tif (!trimmed) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.stderrTail.push(trimmed);\n\t\t\tif (this.stderrTail.length > 20) {\n\t\t\t\tthis.stderrTail.shift();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate rejectAll(message: string): void {\n\t\tthis.closed = true;\n\t\tconst stderr = this.stderrTail.length\n\t\t\t? `\\n${this.stderrTail.slice(-5).join(\"\\n\")}`\n\t\t\t: \"\";\n\t\tconst error = new Error(`${message}${stderr}`);\n\t\tfor (const pending of this.pending.values()) {\n\t\t\tclearTimeout(pending.timer);\n\t\t\tpending.reject(error);\n\t\t}\n\t\tthis.pending.clear();\n\t\tfor (const waiter of Array.from(this.notificationWaiters)) {\n\t\t\twaiter.reject(error);\n\t\t}\n\t\tthis.notificationWaiters.clear();\n\t}\n}\n\nexport function createCodexAppServerClient(\n\toptions: CreateCodexAppServerClientOptions = {},\n): CodexAppServerRpcClient {\n\treturn CodexAppServerRpcClient.spawn(options);\n}\n\nexport function resolveCodexAppServerSpawnCommand(\n\toptions: Pick<CreateCodexAppServerClientOptions, \"command\" | \"args\"> = {},\n\tresolveBundledBin: () => string | null = resolveBundledCodexBinPath,\n): CodexAppServerSpawnCommand {\n\tconst args = options.args ?? DEFAULT_CODEX_APP_SERVER_ARGS;\n\tif (options.command) {\n\t\treturn { command: options.command, args, source: \"override\" };\n\t}\n\n\tconst bundledCodexBin = resolveBundledBin();\n\tif (bundledCodexBin) {\n\t\treturn {\n\t\t\tcommand: process.execPath,\n\t\t\targs: [bundledCodexBin, ...args],\n\t\t\tsource: \"bundled-package\",\n\t\t};\n\t}\n\n\treturn { command: DEFAULT_CODEX_COMMAND, args, source: \"path\" };\n}\n\nexport function resolveBundledCodexBinPath(): string | null {\n\ttry {\n\t\treturn moduleRequire.resolve(\"@openai/codex/bin/codex.js\");\n\t} catch {\n\t\t// Some package managers enforce package exports more strictly; fall back to\n\t\t// package.json resolution and the published bin layout.\n\t}\n\n\ttry {\n\t\tconst packageJsonPath = moduleRequire.resolve(\"@openai/codex/package.json\");\n\t\treturn join(dirname(packageJsonPath), \"bin\", \"codex.js\");\n\t} catch {\n\t\treturn null;\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\nfunction defaultServerRequestResponse(\n\tmethod: string,\n): { ok: true; result: unknown } | { ok: false } {\n\tswitch (method) {\n\t\tcase \"item/commandExecution/requestApproval\":\n\t\t\treturn { ok: true, result: { decision: \"decline\" } };\n\t\tcase \"item/fileChange/requestApproval\":\n\t\t\treturn { ok: true, result: { decision: \"decline\" } };\n\t\tcase \"item/permissions/requestApproval\":\n\t\t\treturn { ok: true, result: { permissions: {}, scope: \"turn\" } };\n\t\tcase \"item/tool/requestUserInput\":\n\t\t\treturn { ok: true, result: { answers: {} } };\n\t\tcase \"mcpServer/elicitation/request\":\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tresult: { action: \"decline\", content: null, _meta: null },\n\t\t\t};\n\t\tcase \"applyPatchApproval\":\n\t\tcase \"execCommandApproval\":\n\t\t\treturn { ok: true, result: { decision: \"denied\" } };\n\t\tdefault:\n\t\t\treturn { ok: false };\n\t}\n}\n\nfunction formatTransportError(error: Error, commandLabel?: string): string {\n\tconst code = (error as NodeJS.ErrnoException).code;\n\tif (code === \"ENOENT\") {\n\t\tconst command = commandLabel ? ` (${commandLabel})` : \"\";\n\t\treturn `Codex app-server executable was not found${command}. Maestro uses the bundled @openai/codex package when installed and falls back to a codex binary on PATH; run your package manager install in this checkout or install Codex with \\`npm install -g @openai/codex\\`.`;\n\t}\n\treturn error.message;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"app-server-client.js","sourceRoot":"","sources":["../../src/codex/app-server-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn as spawnChild } from \"node:child_process\";\nimport type { ChildProcessWithoutNullStreams } from \"node:child_process\";\nimport { createRequire } from \"node:module\";\nimport { dirname, join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport type { Interface as ReadlineInterface } from \"node:readline\";\nimport type { Readable, Writable } from \"node:stream\";\nimport { readPackageVersion } from \"../package-version.js\";\nimport { isRecord } from \"../utils/json.js\";\n\ntype JsonRpcId = number | string;\n\nexport interface CodexAppServerTransport {\n\tstdin: Writable;\n\tstdout: Readable;\n\tstderr?: Readable | null;\n\tkill?: (signal?: NodeJS.Signals | number) => boolean;\n\ton?: (event: string, listener: (...args: unknown[]) => void) => unknown;\n\tonce?: (event: string, listener: (...args: unknown[]) => void) => unknown;\n}\n\nexport interface CodexAppServerClientInfo {\n\tname: string;\n\ttitle?: string;\n\tversion?: string;\n}\n\nexport interface CodexAppServerInitializeOptions {\n\tclientInfo?: CodexAppServerClientInfo;\n\texperimentalApi?: boolean;\n\toptOutNotificationMethods?: string[];\n\ttimeoutMs?: number;\n}\n\nexport interface CreateCodexAppServerClientOptions {\n\tcommand?: string;\n\targs?: string[];\n\tcwd?: string;\n\tenv?: NodeJS.ProcessEnv;\n\trequestTimeoutMs?: number;\n}\n\nexport type CodexAccount =\n\t| { type: \"apiKey\" }\n\t| { type: \"chatgpt\"; email: string; planType: string }\n\t| { type: string; [key: string]: unknown };\n\nexport interface CodexAccountReadResult {\n\taccount: CodexAccount | null;\n\trequiresOpenaiAuth: boolean;\n}\n\nexport type CodexLoginStartResult =\n\t| { type: \"apiKey\" }\n\t| { type: \"chatgpt\"; loginId: string; authUrl: string }\n\t| {\n\t\t\ttype: \"chatgptDeviceCode\";\n\t\t\tloginId: string;\n\t\t\tverificationUrl: string;\n\t\t\tuserCode: string;\n\t }\n\t| { type: \"chatgptAuthTokens\" }\n\t| { type: string; [key: string]: unknown };\n\nexport interface CodexLoginCompletedNotification {\n\tloginId: string | null;\n\tsuccess: boolean;\n\terror: string | null;\n}\n\nexport interface CodexAppServerNotification<TParams = unknown> {\n\tmethod: string;\n\tparams?: TParams;\n}\n\nexport interface CodexAppServerRequest<TParams = unknown> {\n\tid: JsonRpcId;\n\tmethod: string;\n\tparams?: TParams;\n}\n\nexport type CodexAppServerRequestHandlerResult =\n\t| {\n\t\t\thandled: true;\n\t\t\tresult?: unknown;\n\t }\n\t| {\n\t\t\thandled: true;\n\t\t\terror: {\n\t\t\t\tcode?: number;\n\t\t\t\tmessage: string;\n\t\t\t\tdata?: unknown;\n\t\t\t};\n\t }\n\t| {\n\t\t\thandled: false;\n\t };\n\nexport type CodexAppServerRequestHandler = (\n\trequest: CodexAppServerRequest,\n) =>\n\t| CodexAppServerRequestHandlerResult\n\t| Promise<CodexAppServerRequestHandlerResult>;\n\nexport interface CodexAppServerClientLike {\n\tinitialize(options?: CodexAppServerInitializeOptions): Promise<unknown>;\n\trequest<TResult = unknown>(\n\t\tmethod: string,\n\t\tparams?: unknown,\n\t\toptions?: { timeoutMs?: number },\n\t): Promise<TResult>;\n\tnotify(method: string, params?: unknown): void;\n\tonNotification(\n\t\tlistener: (notification: CodexAppServerNotification) => void,\n\t): () => void;\n\tonRequest(listener: CodexAppServerRequestHandler): () => void;\n\treadAccount(refreshToken?: boolean): Promise<CodexAccountReadResult>;\n\tstartChatGptLogin(\n\t\tflow?: \"browser\" | \"device\",\n\t\toptions?: { codexStreamlinedLogin?: boolean },\n\t): Promise<CodexLoginStartResult>;\n\twaitForLoginCompletion(\n\t\tloginId: string,\n\t\ttimeoutMs?: number,\n\t): Promise<CodexLoginCompletedNotification>;\n\tlogout(): Promise<void>;\n\tclose(): void;\n}\n\ninterface PendingRequest {\n\tresolve: (value: unknown) => void;\n\treject: (error: Error) => void;\n\ttimer: NodeJS.Timeout;\n}\n\ninterface PendingNotification {\n\treject: (error: Error) => void;\n\ttimer: NodeJS.Timeout;\n\tunsubscribe: () => void;\n}\n\ninterface JsonRpcResponse {\n\tid?: JsonRpcId;\n\tresult?: unknown;\n\terror?: {\n\t\tcode?: number;\n\t\tmessage?: string;\n\t\tdata?: unknown;\n\t};\n}\n\nconst DEFAULT_REQUEST_TIMEOUT_MS = 30_000;\nconst DEFAULT_LOGIN_TIMEOUT_MS = 5 * 60_000;\nconst MAX_NOTIFICATION_HISTORY = 100;\nconst DEFAULT_CODEX_COMMAND = \"codex\";\nconst DEFAULT_CODEX_APP_SERVER_ARGS = [\"app-server\", \"--listen\", \"stdio://\"];\nconst DEFAULT_CLIENT_INFO: CodexAppServerClientInfo = {\n\tname: \"maestro\",\n\ttitle: \"Maestro\",\n\tversion: readPackageVersion(),\n};\nconst moduleRequire = createRequire(import.meta.url);\n\nexport interface CodexAppServerSpawnCommand {\n\tcommand: string;\n\targs: string[];\n\tsource: \"override\" | \"bundled-package\" | \"path\";\n}\n\nexport class CodexAppServerRpcClient implements CodexAppServerClientLike {\n\tprivate readonly pending = new Map<JsonRpcId, PendingRequest>();\n\tprivate readonly notificationListeners = new Set<\n\t\t(notification: CodexAppServerNotification) => void\n\t>();\n\tprivate readonly notificationHistory: CodexAppServerNotification[] = [];\n\tprivate readonly notificationWaiters = new Set<PendingNotification>();\n\tprivate readonly requestHandlers = new Set<CodexAppServerRequestHandler>();\n\tprivate readonly stderrTail: string[] = [];\n\tprivate readonly rl: ReadlineInterface;\n\tprivate nextId = 1;\n\tprivate closed = false;\n\n\tconstructor(\n\t\tprivate readonly transport: CodexAppServerTransport,\n\t\tprivate readonly options: {\n\t\t\trequestTimeoutMs?: number;\n\t\t\tcommandLabel?: string;\n\t\t} = {},\n\t) {\n\t\tthis.rl = createInterface({ input: transport.stdout });\n\t\tthis.rl.on(\"line\", (line) => this.handleLine(line));\n\t\tthis.rl.on(\"close\", () => this.rejectAll(\"Codex app-server closed stdout\"));\n\t\ttransport.stderr?.on(\"data\", (chunk) => this.captureStderr(chunk));\n\t\ttransport.once?.(\"exit\", (code, signal) => {\n\t\t\tconst suffix =\n\t\t\t\tcode === null || code === undefined\n\t\t\t\t\t? `signal ${String(signal)}`\n\t\t\t\t\t: `code ${String(code)}`;\n\t\t\tthis.rejectAll(`Codex app-server exited with ${suffix}`);\n\t\t});\n\t\ttransport.once?.(\"error\", (error) => {\n\t\t\tconst message =\n\t\t\t\terror instanceof Error\n\t\t\t\t\t? formatTransportError(error, this.options.commandLabel)\n\t\t\t\t\t: `Process error: ${String(error)}`;\n\t\t\tthis.rejectAll(message);\n\t\t});\n\t}\n\n\tstatic spawn(\n\t\toptions: CreateCodexAppServerClientOptions = {},\n\t): CodexAppServerRpcClient {\n\t\tconst { command, args, source } =\n\t\t\tresolveCodexAppServerSpawnCommand(options);\n\t\tconst child: ChildProcessWithoutNullStreams = spawnChild(command, args, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: options.env ?? process.env,\n\t\t\tstdio: \"pipe\",\n\t\t});\n\t\treturn new CodexAppServerRpcClient(child, {\n\t\t\trequestTimeoutMs: options.requestTimeoutMs,\n\t\t\tcommandLabel:\n\t\t\t\tsource === \"bundled-package\"\n\t\t\t\t\t? \"@openai/codex\"\n\t\t\t\t\t: [command, ...args].join(\" \"),\n\t\t});\n\t}\n\n\tasync initialize(\n\t\toptions: CodexAppServerInitializeOptions = {},\n\t): Promise<unknown> {\n\t\tconst capabilities =\n\t\t\toptions.experimentalApi || options.optOutNotificationMethods?.length\n\t\t\t\t? {\n\t\t\t\t\t\texperimentalApi: options.experimentalApi || undefined,\n\t\t\t\t\t\toptOutNotificationMethods:\n\t\t\t\t\t\t\toptions.optOutNotificationMethods ?? undefined,\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\tconst result = await this.request(\n\t\t\t\"initialize\",\n\t\t\t{\n\t\t\t\tclientInfo: options.clientInfo ?? DEFAULT_CLIENT_INFO,\n\t\t\t\tcapabilities,\n\t\t\t},\n\t\t\t{ timeoutMs: options.timeoutMs },\n\t\t);\n\t\tthis.notify(\"initialized\");\n\t\treturn result;\n\t}\n\n\trequest<TResult = unknown>(\n\t\tmethod: string,\n\t\tparams?: unknown,\n\t\toptions: { timeoutMs?: number } = {},\n\t): Promise<TResult> {\n\t\tif (this.closed) {\n\t\t\treturn Promise.reject(new Error(\"Codex app-server client is closed\"));\n\t\t}\n\t\tconst id = this.nextId++;\n\t\tconst timeoutMs =\n\t\t\toptions.timeoutMs ??\n\t\t\tthis.options.requestTimeoutMs ??\n\t\t\tDEFAULT_REQUEST_TIMEOUT_MS;\n\t\treturn new Promise<TResult>((resolve, reject) => {\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\treject(new Error(`Codex app-server request timed out: ${method}`));\n\t\t\t}, timeoutMs);\n\t\t\tthis.pending.set(id, {\n\t\t\t\tresolve: (value) => resolve(value as TResult),\n\t\t\t\treject,\n\t\t\t\ttimer,\n\t\t\t});\n\t\t\ttry {\n\t\t\t\tthis.writeMessage({ id, method, params });\n\t\t\t} catch (error) {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\tthis.pending.delete(id);\n\t\t\t\treject(error instanceof Error ? error : new Error(String(error)));\n\t\t\t}\n\t\t});\n\t}\n\n\tnotify(method: string, params?: unknown): void {\n\t\tthis.writeMessage({ method, params });\n\t}\n\n\tonNotification(\n\t\tlistener: (notification: CodexAppServerNotification) => void,\n\t): () => void {\n\t\tthis.notificationListeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.notificationListeners.delete(listener);\n\t\t};\n\t}\n\n\tonRequest(listener: CodexAppServerRequestHandler): () => void {\n\t\tthis.requestHandlers.add(listener);\n\t\treturn () => {\n\t\t\tthis.requestHandlers.delete(listener);\n\t\t};\n\t}\n\n\twaitForNotification<TParams = unknown>(\n\t\tpredicate: (notification: CodexAppServerNotification) => boolean,\n\t\ttimeoutMs = DEFAULT_REQUEST_TIMEOUT_MS,\n\t): Promise<CodexAppServerNotification<TParams>> {\n\t\tconst buffered = this.notificationHistory.find(predicate);\n\t\tif (buffered) {\n\t\t\treturn Promise.resolve(buffered as CodexAppServerNotification<TParams>);\n\t\t}\n\t\tif (this.closed) {\n\t\t\treturn Promise.reject(new Error(\"Codex app-server client is closed\"));\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet unsubscribe = () => {};\n\t\t\tconst waiter: PendingNotification = {\n\t\t\t\treject: (error) => {\n\t\t\t\t\tclearTimeout(waiter.timer);\n\t\t\t\t\tunsubscribe();\n\t\t\t\t\tthis.notificationWaiters.delete(waiter);\n\t\t\t\t\treject(error);\n\t\t\t\t},\n\t\t\t\ttimer: setTimeout(() => {\n\t\t\t\t\twaiter.reject(\n\t\t\t\t\t\tnew Error(\"Timed out waiting for Codex app-server notification\"),\n\t\t\t\t\t);\n\t\t\t\t}, timeoutMs),\n\t\t\t\tunsubscribe: () => unsubscribe(),\n\t\t\t};\n\t\t\tunsubscribe = this.onNotification((notification) => {\n\t\t\t\tif (!predicate(notification)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tclearTimeout(waiter.timer);\n\t\t\t\twaiter.unsubscribe();\n\t\t\t\tthis.notificationWaiters.delete(waiter);\n\t\t\t\tresolve(notification as CodexAppServerNotification<TParams>);\n\t\t\t});\n\t\t\tthis.notificationWaiters.add(waiter);\n\t\t});\n\t}\n\n\treadAccount(refreshToken = false): Promise<CodexAccountReadResult> {\n\t\treturn this.request(\"account/read\", { refreshToken });\n\t}\n\n\tstartChatGptLogin(\n\t\tflow: \"browser\" | \"device\" = \"browser\",\n\t\toptions: { codexStreamlinedLogin?: boolean } = {},\n\t): Promise<CodexLoginStartResult> {\n\t\tconst params =\n\t\t\tflow === \"device\"\n\t\t\t\t? { type: \"chatgptDeviceCode\" }\n\t\t\t\t: {\n\t\t\t\t\t\ttype: \"chatgpt\",\n\t\t\t\t\t\tcodexStreamlinedLogin: options.codexStreamlinedLogin || undefined,\n\t\t\t\t\t};\n\t\treturn this.request(\"account/login/start\", params);\n\t}\n\n\tasync waitForLoginCompletion(\n\t\tloginId: string,\n\t\ttimeoutMs = DEFAULT_LOGIN_TIMEOUT_MS,\n\t): Promise<CodexLoginCompletedNotification> {\n\t\tconst notification =\n\t\t\tawait this.waitForNotification<CodexLoginCompletedNotification>(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.method === \"account/login/completed\" &&\n\t\t\t\t\tisRecord(candidate.params) &&\n\t\t\t\t\tcandidate.params.loginId === loginId,\n\t\t\t\ttimeoutMs,\n\t\t\t);\n\t\tconst params = notification.params;\n\t\tif (!params?.success) {\n\t\t\tthrow new Error(params?.error || \"ChatGPT sign-in did not complete\");\n\t\t}\n\t\treturn params;\n\t}\n\n\tasync logout(): Promise<void> {\n\t\tawait this.request(\"account/logout\", undefined);\n\t}\n\n\tclose(): void {\n\t\tif (this.closed) {\n\t\t\treturn;\n\t\t}\n\t\tthis.closed = true;\n\t\tthis.rejectAll(\"Codex app-server client closed\");\n\t\tthis.rl.close();\n\t\ttry {\n\t\t\tthis.transport.stdin.end();\n\t\t} catch {\n\t\t\t// Best-effort shutdown only.\n\t\t}\n\t\tthis.transport.kill?.(\"SIGTERM\");\n\t}\n\n\tprivate handleLine(line: string): void {\n\t\tconst trimmed = line.trim();\n\t\tif (!trimmed) {\n\t\t\treturn;\n\t\t}\n\t\tlet message: unknown;\n\t\ttry {\n\t\t\tmessage = JSON.parse(trimmed);\n\t\t} catch {\n\t\t\treturn;\n\t\t}\n\t\tif (!isRecord(message)) {\n\t\t\treturn;\n\t\t}\n\t\tif (\"id\" in message && (\"result\" in message || \"error\" in message)) {\n\t\t\tthis.handleResponse(message as JsonRpcResponse);\n\t\t\treturn;\n\t\t}\n\t\tif (typeof message.method === \"string\" && \"id\" in message) {\n\t\t\tvoid this.handleServerRequest(\n\t\t\t\tmessage as unknown as CodexAppServerRequest,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tif (typeof message.method === \"string\") {\n\t\t\tthis.emitNotification({\n\t\t\t\tmethod: message.method,\n\t\t\t\tparams: message.params,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate handleResponse(response: JsonRpcResponse): void {\n\t\tif (response.id === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tconst pending = this.pending.get(response.id);\n\t\tif (!pending) {\n\t\t\treturn;\n\t\t}\n\t\tthis.pending.delete(response.id);\n\t\tclearTimeout(pending.timer);\n\t\tif (response.error) {\n\t\t\tconst message =\n\t\t\t\tresponse.error.message ?? \"Codex app-server request failed\";\n\t\t\tpending.reject(new Error(message));\n\t\t\treturn;\n\t\t}\n\t\tpending.resolve(response.result);\n\t}\n\n\tprivate async handleServerRequest(\n\t\trequest: CodexAppServerRequest,\n\t): Promise<void> {\n\t\tthis.emitNotification({\n\t\t\tmethod: request.method,\n\t\t\tparams: request.params,\n\t\t});\n\n\t\tif (request.method === \"account/chatgptAuthTokens/refresh\") {\n\t\t\tthis.writeMessage({\n\t\t\t\tid: request.id,\n\t\t\t\terror: {\n\t\t\t\t\tcode: -32601,\n\t\t\t\t\tmessage:\n\t\t\t\t\t\t\"Maestro does not manage Codex ChatGPT auth tokens directly. Run `maestro codex login` or `codex login` so Codex app-server owns ChatGPT auth refresh.\",\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const handler of Array.from(this.requestHandlers)) {\n\t\t\ttry {\n\t\t\t\tconst handled = await handler(request);\n\t\t\t\tif (!handled.handled) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (\"error\" in handled) {\n\t\t\t\t\tthis.writeMessage({\n\t\t\t\t\t\tid: request.id,\n\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\tcode: handled.error.code ?? -32000,\n\t\t\t\t\t\t\tmessage: handled.error.message,\n\t\t\t\t\t\t\tdata: handled.error.data,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.writeMessage({ id: request.id, result: handled.result });\n\t\t\t\treturn;\n\t\t\t} catch (error: unknown) {\n\t\t\t\tthis.writeMessage({\n\t\t\t\t\tid: request.id,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tcode: -32000,\n\t\t\t\t\t\tmessage: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst fallback = defaultServerRequestResponse(request.method);\n\t\tif (fallback.ok) {\n\t\t\tthis.writeMessage({ id: request.id, result: fallback.result });\n\t\t\treturn;\n\t\t}\n\t\tthis.writeMessage({\n\t\t\tid: request.id,\n\t\t\terror: {\n\t\t\t\tcode: -32601,\n\t\t\t\tmessage: `Unsupported Codex app-server request: ${request.method}`,\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate emitNotification(notification: CodexAppServerNotification): void {\n\t\tthis.notificationHistory.push(notification);\n\t\tif (this.notificationHistory.length > MAX_NOTIFICATION_HISTORY) {\n\t\t\tthis.notificationHistory.shift();\n\t\t}\n\t\tfor (const listener of this.notificationListeners) {\n\t\t\tlistener(notification);\n\t\t}\n\t}\n\n\tprivate writeMessage(message: Record<string, unknown>): void {\n\t\tconst compact = Object.fromEntries(\n\t\t\tObject.entries(message).filter(([, value]) => value !== undefined),\n\t\t);\n\t\tconst line = `${JSON.stringify(compact)}\\n`;\n\t\tif (!this.transport.stdin.write(line)) {\n\t\t\t// Backpressure is tiny for JSON-RPC control messages; the stream queues it.\n\t\t}\n\t}\n\n\tprivate captureStderr(chunk: unknown): void {\n\t\tconst text = Buffer.isBuffer(chunk)\n\t\t\t? chunk.toString(\"utf8\")\n\t\t\t: String(chunk);\n\t\tfor (const line of text.split(/\\r?\\n/)) {\n\t\t\tconst trimmed = line.trim();\n\t\t\tif (!trimmed) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.stderrTail.push(trimmed);\n\t\t\tif (this.stderrTail.length > 20) {\n\t\t\t\tthis.stderrTail.shift();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate rejectAll(message: string): void {\n\t\tthis.closed = true;\n\t\tconst stderr = this.stderrTail.length\n\t\t\t? `\\n${this.stderrTail.slice(-5).join(\"\\n\")}`\n\t\t\t: \"\";\n\t\tconst error = new Error(`${message}${stderr}`);\n\t\tfor (const pending of this.pending.values()) {\n\t\t\tclearTimeout(pending.timer);\n\t\t\tpending.reject(error);\n\t\t}\n\t\tthis.pending.clear();\n\t\tfor (const waiter of Array.from(this.notificationWaiters)) {\n\t\t\twaiter.reject(error);\n\t\t}\n\t\tthis.notificationWaiters.clear();\n\t}\n}\n\nexport function createCodexAppServerClient(\n\toptions: CreateCodexAppServerClientOptions = {},\n): CodexAppServerRpcClient {\n\treturn CodexAppServerRpcClient.spawn(options);\n}\n\nexport function resolveCodexAppServerSpawnCommand(\n\toptions: Pick<CreateCodexAppServerClientOptions, \"command\" | \"args\"> = {},\n\tresolveBundledBin: () => string | null = resolveBundledCodexBinPath,\n): CodexAppServerSpawnCommand {\n\tconst args = options.args ?? DEFAULT_CODEX_APP_SERVER_ARGS;\n\tif (options.command) {\n\t\treturn { command: options.command, args, source: \"override\" };\n\t}\n\n\tconst bundledCodexBin = resolveBundledBin();\n\tif (bundledCodexBin) {\n\t\treturn {\n\t\t\tcommand: process.execPath,\n\t\t\targs: [bundledCodexBin, ...args],\n\t\t\tsource: \"bundled-package\",\n\t\t};\n\t}\n\n\treturn { command: DEFAULT_CODEX_COMMAND, args, source: \"path\" };\n}\n\nexport function resolveBundledCodexBinPath(): string | null {\n\ttry {\n\t\treturn moduleRequire.resolve(\"@openai/codex/bin/codex.js\");\n\t} catch {\n\t\t// Some package managers enforce package exports more strictly; fall back to\n\t\t// package.json resolution and the published bin layout.\n\t}\n\n\ttry {\n\t\tconst packageJsonPath = moduleRequire.resolve(\"@openai/codex/package.json\");\n\t\treturn join(dirname(packageJsonPath), \"bin\", \"codex.js\");\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction defaultServerRequestResponse(\n\tmethod: string,\n): { ok: true; result: unknown } | { ok: false } {\n\tswitch (method) {\n\t\tcase \"item/commandExecution/requestApproval\":\n\t\t\treturn { ok: true, result: { decision: \"decline\" } };\n\t\tcase \"item/fileChange/requestApproval\":\n\t\t\treturn { ok: true, result: { decision: \"decline\" } };\n\t\tcase \"item/permissions/requestApproval\":\n\t\t\treturn { ok: true, result: { permissions: {}, scope: \"turn\" } };\n\t\tcase \"item/tool/requestUserInput\":\n\t\t\treturn { ok: true, result: { answers: {} } };\n\t\tcase \"mcpServer/elicitation/request\":\n\t\t\treturn {\n\t\t\t\tok: true,\n\t\t\t\tresult: { action: \"decline\", content: null, _meta: null },\n\t\t\t};\n\t\tcase \"applyPatchApproval\":\n\t\tcase \"execCommandApproval\":\n\t\t\treturn { ok: true, result: { decision: \"denied\" } };\n\t\tdefault:\n\t\t\treturn { ok: false };\n\t}\n}\n\nfunction formatTransportError(error: Error, commandLabel?: string): string {\n\tconst code = (error as NodeJS.ErrnoException).code;\n\tif (code === \"ENOENT\") {\n\t\tconst command = commandLabel ? ` (${commandLabel})` : \"\";\n\t\treturn `Codex app-server executable was not found${command}. Maestro uses the bundled @openai/codex package when installed and falls back to a codex binary on PATH; run your package manager install in this checkout or install Codex with \\`npm install -g @openai/codex\\`.`;\n\t}\n\treturn error.message;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../src/codex/compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../src/codex/compatibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAG1C,KAAK,mBAAmB,GAAG,IAAI,CAC9B,IAAI,EACJ,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,oBAAoB,CAC5D,GAAG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IAC1C,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACzC,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,WAAW,EAAE,4BAA4B,EAAE,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;CAwBjC,CAAC;AAEX,eAAO,MAAM,gCAAgC,2CAInC,CAAC;AAEX,eAAO,MAAM,4BAA4B,+DAO/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,wHAa7B,CAAC;AAEX,eAAO,MAAM,2BAA2B,uLAiB9B,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;CAMtB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAYpE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACrE,KAAK,EAAE,SAAS,KAAK,EAAE,GACrB,KAAK,EAAE,CAET;AAED,wBAAgB,sBAAsB,CAAC,KAAK,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EACpE,KAAK,EAAE,SAAS,KAAK,EAAE,EACvB,WAAW,EAAE,oBAAoB,GAC/B,KAAK,EAAE,CAMT;AAED,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,oBAAoB,CAWtB;AAED,wBAAgB,wBAAwB,IAAI,oBAAoB,EAAE,CAEjE;AAMD,wBAAgB,4BAA4B,CAC3C,KAAK,EAAE,SAAS,mBAAmB,EAAE,GACnC,2BAA2B,CAqC7B;AAED,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,SAAS,uBAAuB,EAAE,GAC1C,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIrB;AAED,wBAAgB,oCAAoC,CACnD,MAAM,EAAE,OAAO,GACb,UAAU,CAyBZ"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isRecord } from "../utils/json.js";
|
|
1
2
|
export const CODEX_DYNAMIC_TOOL_CONFORMANCE = {
|
|
2
3
|
nameMaxLength: 128,
|
|
3
4
|
namespaceMaxLength: 64,
|
|
@@ -394,7 +395,4 @@ function readSchemaType(schema) {
|
|
|
394
395
|
? schema.type
|
|
395
396
|
: undefined;
|
|
396
397
|
}
|
|
397
|
-
function isRecord(value) {
|
|
398
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
399
|
-
}
|
|
400
398
|
//# sourceMappingURL=compatibility.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/codex/compatibility.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Tool } from \"../agent/types.js\";\n\ntype JsonObject = Record<string, unknown>;\ntype AdditionalPropertiesConstraint = boolean | JsonObject;\n\ntype CodexCompatibleTool = Pick<\n\tTool,\n\t\"name\" | \"description\" | \"parameters\" | \"deferApiDefinition\"\n> & {\n\texecutionLocation?: \"server\" | \"client\";\n};\n\nexport type CodexDynamicToolSpec = {\n\tnamespace?: string;\n\tname: string;\n\tdescription: string;\n\tinputSchema: JsonObject;\n\tdeferLoading?: boolean;\n};\n\nexport type CodexCompatibilityDiagnostic = {\n\tseverity: \"info\" | \"warning\" | \"error\";\n\tcode: string;\n\tmessage: string;\n\ttoolName?: string;\n\tcodexName?: string;\n};\n\nexport type CodexDynamicToolBinding = {\n\tcodexName: string;\n\toriginalName: string;\n};\n\nexport type CodexDynamicToolCompilation = {\n\tspecs: CodexDynamicToolSpec[];\n\tbindings: CodexDynamicToolBinding[];\n\tdiagnostics: CodexCompatibilityDiagnostic[];\n};\n\nexport const CODEX_DYNAMIC_TOOL_CONFORMANCE = {\n\tnameMaxLength: 128,\n\tnamespaceMaxLength: 64,\n\tidentifierPattern: /^[a-zA-Z0-9_-]+$/,\n\treservedNamespaces: [\n\t\t\"api_tool\",\n\t\t\"browser\",\n\t\t\"computer\",\n\t\t\"container\",\n\t\t\"file_search\",\n\t\t\"functions\",\n\t\t\"image_gen\",\n\t\t\"multi_tool_use\",\n\t\t\"python\",\n\t\t\"python_user_visible\",\n\t\t\"submodel_delegator\",\n\t\t\"terminal\",\n\t\t\"tool_search\",\n\t\t\"web\",\n\t],\n\treservedNames: [\"mcp\"],\n\treservedNamePrefixes: [\"mcp__\"],\n\tunsupportedTopLevelSchemaKeywords: [\"anyOf\", \"oneOf\", \"allOf\", \"enum\", \"not\"],\n\tdynamicToolCallMethod: \"item/tool/call\",\n} as const;\n\nexport const CODEX_FILE_MUTATION_TOOL_PROFILE = [\n\t\"apply_patch\",\n\t\"edit\",\n\t\"write\",\n] as const;\n\nexport const CODEX_READ_ONLY_TOOL_PROFILE = [\n\t\"read\",\n\t\"list\",\n\t\"find\",\n\t\"search\",\n\t\"diff\",\n\t\"status\",\n] as const;\n\nexport const CODEX_DEFAULT_TOOL_PROFILE = [\n\t\"read\",\n\t\"list\",\n\t\"find\",\n\t\"search\",\n\t\"diff\",\n\t\"bash\",\n\t\"apply_patch\",\n\t\"edit\",\n\t\"write\",\n\t\"todo\",\n\t\"status\",\n\t\"gh_pr\",\n] as const;\n\nexport const CODEX_EXTENDED_TOOL_PROFILE = [\n\t\"read\",\n\t\"list\",\n\t\"find\",\n\t\"search\",\n\t\"parallel_ripgrep\",\n\t\"diff\",\n\t\"bash\",\n\t\"background_tasks\",\n\t\"apply_patch\",\n\t\"edit\",\n\t\"write\",\n\t\"todo\",\n\t\"status\",\n\t\"gh_pr\",\n\t\"gh_issue\",\n\t\"gh_repo\",\n] as const;\n\nexport const CODEX_TOOL_PROFILES = {\n\tlean: CODEX_DEFAULT_TOOL_PROFILE,\n\tdefault: CODEX_DEFAULT_TOOL_PROFILE,\n\t\"read-only\": CODEX_READ_ONLY_TOOL_PROFILE,\n\treadonly: CODEX_READ_ONLY_TOOL_PROFILE,\n\textended: CODEX_EXTENDED_TOOL_PROFILE,\n} as const;\n\nexport type CodexToolProfileName = keyof typeof CODEX_TOOL_PROFILES;\n\nconst CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS = [\n\t\"anyOf\",\n\t\"oneOf\",\n\t\"allOf\",\n] as const;\n\nconst UNSUPPORTED_CODEX_DYNAMIC_TOOL_TOP_LEVEL_SCHEMA_KEYS = new Set<string>(\n\tCODEX_DYNAMIC_TOOL_CONFORMANCE.unsupportedTopLevelSchemaKeywords,\n);\n\nexport function isCodexAppServerApi(api: unknown): boolean {\n\treturn api === \"openai-codex-app-server\";\n}\n\nexport function selectCodexDefaultTools<TTool extends { name: string }>(\n\ttools: readonly TTool[],\n): TTool[] {\n\treturn selectCodexToolProfile(tools, \"lean\");\n}\n\nexport function selectCodexToolProfile<TTool extends { name: string }>(\n\ttools: readonly TTool[],\n\tprofileName: CodexToolProfileName,\n): TTool[] {\n\tconst profile = CODEX_TOOL_PROFILES[profileName];\n\tconst byName = new Map(tools.map((tool) => [tool.name, tool]));\n\treturn profile\n\t\t.map((name) => byName.get(name))\n\t\t.filter((tool): tool is TTool => Boolean(tool));\n}\n\nexport function resolveCodexToolProfileName(\n\tvalue: string | undefined,\n): CodexToolProfileName {\n\tif (!value || value.trim().length === 0) {\n\t\treturn \"lean\";\n\t}\n\tconst normalized = value.trim().toLowerCase().replace(/_/g, \"-\");\n\tif (isCodexToolProfileName(normalized)) {\n\t\treturn normalized;\n\t}\n\tthrow new Error(\n\t\t`Unknown Codex tool profile \"${value}\". Available profiles: ${getCodexToolProfileNames().join(\", \")}`,\n\t);\n}\n\nexport function getCodexToolProfileNames(): CodexToolProfileName[] {\n\treturn Object.keys(CODEX_TOOL_PROFILES) as CodexToolProfileName[];\n}\n\nfunction isCodexToolProfileName(value: string): value is CodexToolProfileName {\n\treturn Object.hasOwn(CODEX_TOOL_PROFILES, value);\n}\n\nexport function compileCodexDynamicToolSpecs(\n\ttools: readonly CodexCompatibleTool[],\n): CodexDynamicToolCompilation {\n\tconst specs: CodexDynamicToolSpec[] = [];\n\tconst bindings: CodexDynamicToolBinding[] = [];\n\tconst diagnostics: CodexCompatibilityDiagnostic[] = [];\n\tconst seenOriginalNames = new Set<string>();\n\tconst seenCodexNames = new Set<string>();\n\n\tfor (const tool of tools) {\n\t\tif (tool.deferApiDefinition || tool.executionLocation === \"client\") {\n\t\t\tcontinue;\n\t\t}\n\t\tif (seenOriginalNames.has(tool.name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseenOriginalNames.add(tool.name);\n\n\t\tconst codexName = toUniqueCodexDynamicToolName(tool.name, seenCodexNames);\n\t\tif (codexName !== tool.name) {\n\t\t\tdiagnostics.push({\n\t\t\t\tseverity: \"warning\",\n\t\t\t\tcode: \"renamed_tool\",\n\t\t\t\tmessage: `Tool \"${tool.name}\" is exposed to Codex as \"${codexName}\" to match app-server dynamic tool identifier rules.`,\n\t\t\t\ttoolName: tool.name,\n\t\t\t\tcodexName,\n\t\t\t});\n\t\t}\n\n\t\tseenCodexNames.add(codexName);\n\t\tspecs.push({\n\t\t\tname: codexName,\n\t\t\tdescription: tool.description,\n\t\t\tinputSchema: normalizeCodexDynamicToolInputSchema(tool.parameters),\n\t\t});\n\t\tbindings.push({ codexName, originalName: tool.name });\n\t}\n\n\treturn { specs, bindings, diagnostics };\n}\n\nexport function createCodexDynamicToolNameMap(\n\tbindings: readonly CodexDynamicToolBinding[],\n): Map<string, string> {\n\treturn new Map(\n\t\tbindings.map((binding) => [binding.codexName, binding.originalName]),\n\t);\n}\n\nexport function normalizeCodexDynamicToolInputSchema(\n\tschema: unknown,\n): JsonObject {\n\tif (!isRecord(schema)) {\n\t\treturn emptyCodexDynamicToolInputSchema();\n\t}\n\n\tconst flattened = flattenTopLevelCompositionSchema(schema);\n\tif (flattened) {\n\t\treturn flattened;\n\t}\n\n\tconst normalized: JsonObject = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (UNSUPPORTED_CODEX_DYNAMIC_TOOL_TOP_LEVEL_SCHEMA_KEYS.has(key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tnormalized[key] = value;\n\t}\n\tnormalized.type = \"object\";\n\tif (!isRecord(normalized.properties)) {\n\t\tnormalized.properties = {};\n\t}\n\tif (!(\"additionalProperties\" in normalized)) {\n\t\tnormalized.additionalProperties = false;\n\t}\n\treturn normalized;\n}\n\nfunction toUniqueCodexDynamicToolName(\n\ttoolName: string,\n\tseenCodexNames: ReadonlySet<string>,\n): string {\n\tconst baseName = toCodexDynamicToolName(toolName);\n\tif (!seenCodexNames.has(baseName)) {\n\t\treturn baseName;\n\t}\n\tfor (let index = 2; ; index += 1) {\n\t\tconst suffix = `_${index}`;\n\t\tconst candidate = `${truncateIdentifier(\n\t\t\tbaseName,\n\t\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.nameMaxLength - suffix.length,\n\t\t)}${suffix}`;\n\t\tif (!seenCodexNames.has(candidate)) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n}\n\nfunction toCodexDynamicToolName(toolName: string): string {\n\tconst trimmed = toolName.trim();\n\tlet codexName = trimmed.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n\tif (codexName.length === 0) {\n\t\tcodexName = \"maestro_tool\";\n\t}\n\tif (isReservedCodexDynamicToolIdentifier(codexName)) {\n\t\tcodexName = `maestro_${codexName}`;\n\t}\n\treturn truncateIdentifier(\n\t\tcodexName,\n\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.nameMaxLength,\n\t);\n}\n\nfunction isReservedCodexDynamicToolIdentifier(value: string): boolean {\n\treturn (\n\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.reservedNames.some(\n\t\t\t(reservedName) => value === reservedName,\n\t\t) ||\n\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.reservedNamePrefixes.some((prefix) =>\n\t\t\tvalue.startsWith(prefix),\n\t\t)\n\t);\n}\n\nfunction truncateIdentifier(value: string, maxLength: number): string {\n\tif (value.length <= maxLength) {\n\t\treturn value;\n\t}\n\treturn value.slice(0, Math.max(1, maxLength));\n}\n\nfunction emptyCodexDynamicToolInputSchema(): JsonObject {\n\treturn {\n\t\ttype: \"object\",\n\t\tproperties: {},\n\t\tadditionalProperties: false,\n\t};\n}\n\nfunction flattenTopLevelCompositionSchema(\n\tschema: JsonObject,\n): JsonObject | null {\n\tfor (const key of CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS) {\n\t\tconst branches = schema[key];\n\t\tif (!Array.isArray(branches)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (branches.length === 0 || !branches.every(isRecord)) {\n\t\t\treturn emptyCodexDynamicToolInputSchema();\n\t\t}\n\t\treturn flattenObjectSchemaBranches(schema, key, branches);\n\t}\n\treturn null;\n}\n\nfunction flattenObjectSchemaBranches(\n\tschema: JsonObject,\n\tcompositionKey: (typeof CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS)[number],\n\tbranches: JsonObject[],\n): JsonObject {\n\tconst propertySchemas = new Map<string, unknown[]>();\n\tconst topLevelProperties = schema.properties;\n\tif (isRecord(topLevelProperties)) {\n\t\tfor (const [name, propertySchema] of Object.entries(topLevelProperties)) {\n\t\t\taddPropertySchema(propertySchemas, name, propertySchema);\n\t\t}\n\t}\n\n\tconst branchRequiredSets: Array<Set<string>> = [];\n\tfor (const branch of branches) {\n\t\tconst branchProperties = branch.properties;\n\t\tif (isRecord(branchProperties)) {\n\t\t\tfor (const [name, propertySchema] of Object.entries(branchProperties)) {\n\t\t\t\taddPropertySchema(propertySchemas, name, propertySchema);\n\t\t\t}\n\t\t}\n\t\tbranchRequiredSets.push(new Set(readStringArray(branch.required)));\n\t}\n\n\tconst properties: JsonObject = {};\n\tfor (const [name, schemas] of propertySchemas.entries()) {\n\t\tproperties[name] = mergePropertySchemas(schemas);\n\t}\n\n\tconst required = computeFlattenedRequired(\n\t\tschema,\n\t\tcompositionKey,\n\t\tbranchRequiredSets,\n\t).filter((name) => name in properties);\n\tconst flattened: JsonObject = {\n\t\ttype: \"object\",\n\t\tproperties,\n\t\tadditionalProperties: computeFlattenedAdditionalProperties(\n\t\t\tschema,\n\t\t\tcompositionKey,\n\t\t\tbranches,\n\t\t),\n\t};\n\tif (typeof schema.description === \"string\") {\n\t\tflattened.description = schema.description;\n\t}\n\tif (required.length > 0) {\n\t\tflattened.required = required;\n\t}\n\treturn flattened;\n}\n\nfunction addPropertySchema(\n\tpropertySchemas: Map<string, unknown[]>,\n\tname: string,\n\tpropertySchema: unknown,\n): void {\n\tconst schemas = propertySchemas.get(name);\n\tif (schemas) {\n\t\tschemas.push(propertySchema);\n\t\treturn;\n\t}\n\tpropertySchemas.set(name, [propertySchema]);\n}\n\nfunction computeFlattenedRequired(\n\tschema: JsonObject,\n\tcompositionKey: (typeof CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS)[number],\n\tbranchRequiredSets: Array<Set<string>>,\n): string[] {\n\tconst topLevelRequired = readStringArray(schema.required);\n\tif (branchRequiredSets.length === 0) {\n\t\treturn topLevelRequired;\n\t}\n\tif (compositionKey === \"allOf\") {\n\t\treturn uniqueStrings([\n\t\t\t...topLevelRequired,\n\t\t\t...branchRequiredSets.flatMap((set) => [...set]),\n\t\t]);\n\t}\n\tconst firstBranchRequired = branchRequiredSets[0] ?? new Set<string>();\n\tconst requiredByEveryBranch = [...firstBranchRequired].filter((name) =>\n\t\tbranchRequiredSets.every((set) => set.has(name)),\n\t);\n\treturn uniqueStrings([...topLevelRequired, ...requiredByEveryBranch]);\n}\n\nfunction mergePropertySchemas(schemas: unknown[]): unknown {\n\tconst uniqueSchemas = uniqueJsonItems(schemas);\n\tif (uniqueSchemas.length <= 1) {\n\t\treturn uniqueSchemas[0] ?? {};\n\t}\n\n\tconst constValues = uniqueSchemas.map(readConstValue);\n\tif (constValues.every((entry) => entry.found)) {\n\t\tconst schemaTypes = uniqueSchemas.map(readSchemaType);\n\t\tconst commonType = schemaTypes.every((type) => type === schemaTypes[0])\n\t\t\t? schemaTypes[0]\n\t\t\t: undefined;\n\t\treturn {\n\t\t\t...(commonType ? { type: commonType } : {}),\n\t\t\tenum: uniqueJsonItems(constValues.map((entry) => entry.value)),\n\t\t};\n\t}\n\n\treturn { anyOf: uniqueSchemas };\n}\n\nfunction computeFlattenedAdditionalProperties(\n\tschema: JsonObject,\n\tcompositionKey: (typeof CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS)[number],\n\tbranches: JsonObject[],\n): AdditionalPropertiesConstraint {\n\tconst topLevelConstraint = readAdditionalPropertiesConstraint(\n\t\tschema.additionalProperties,\n\t);\n\tif (topLevelConstraint === false) {\n\t\treturn false;\n\t}\n\tconst branchConstraint =\n\t\tcompositionKey === \"allOf\"\n\t\t\t? intersectAdditionalPropertiesConstraints(\n\t\t\t\t\tbranches.map((branch) =>\n\t\t\t\t\t\treadAdditionalPropertiesConstraint(branch.additionalProperties),\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t: unionAdditionalPropertiesConstraints(\n\t\t\t\t\tbranches.map((branch) =>\n\t\t\t\t\t\treadAdditionalPropertiesConstraint(branch.additionalProperties),\n\t\t\t\t\t),\n\t\t\t\t);\n\treturn intersectAdditionalPropertiesConstraints([\n\t\ttopLevelConstraint,\n\t\tbranchConstraint,\n\t]);\n}\n\nfunction readAdditionalPropertiesConstraint(\n\tvalue: unknown,\n): AdditionalPropertiesConstraint {\n\tif (value === false) {\n\t\treturn false;\n\t}\n\tif (isRecord(value)) {\n\t\treturn value;\n\t}\n\treturn true;\n}\n\nfunction unionAdditionalPropertiesConstraints(\n\tconstraints: AdditionalPropertiesConstraint[],\n): AdditionalPropertiesConstraint {\n\tif (constraints.some((constraint) => constraint === false)) {\n\t\treturn false;\n\t}\n\tif (constraints.some((constraint) => constraint === true)) {\n\t\treturn true;\n\t}\n\tconst schemas = constraints.filter(isRecord);\n\tif (schemas.length === 0) {\n\t\treturn false;\n\t}\n\treturn combineAdditionalPropertiesSchemas(\"anyOf\", schemas);\n}\n\nfunction intersectAdditionalPropertiesConstraints(\n\tconstraints: AdditionalPropertiesConstraint[],\n): AdditionalPropertiesConstraint {\n\tif (constraints.some((constraint) => constraint === false)) {\n\t\treturn false;\n\t}\n\tconst schemas = constraints.filter(isRecord);\n\tif (schemas.length === 0) {\n\t\treturn true;\n\t}\n\treturn combineAdditionalPropertiesSchemas(\"allOf\", schemas);\n}\n\nfunction combineAdditionalPropertiesSchemas(\n\tcompositionKey: \"allOf\" | \"anyOf\",\n\tschemas: JsonObject[],\n): JsonObject {\n\tconst uniqueSchemas = uniqueJsonItems(schemas).filter(isRecord);\n\tif (uniqueSchemas.length <= 1) {\n\t\treturn uniqueSchemas[0] ?? {};\n\t}\n\treturn { [compositionKey]: uniqueSchemas };\n}\n\nfunction readStringArray(value: unknown): string[] {\n\treturn Array.isArray(value)\n\t\t? value.filter((item): item is string => typeof item === \"string\")\n\t\t: [];\n}\n\nfunction uniqueStrings(values: string[]): string[] {\n\treturn Array.from(new Set(values));\n}\n\nfunction uniqueJsonItems(values: unknown[]): unknown[] {\n\tconst seen = new Set<string>();\n\tconst unique: unknown[] = [];\n\tfor (const value of values) {\n\t\tconst key = schemaJsonKey(value);\n\t\tif (seen.has(key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(key);\n\t\tunique.push(value);\n\t}\n\treturn unique;\n}\n\nfunction schemaJsonKey(value: unknown): string {\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn String(value);\n\t}\n}\n\nfunction readConstValue(schema: unknown): { found: boolean; value?: unknown } {\n\tif (!isRecord(schema) || !(\"const\" in schema)) {\n\t\treturn { found: false };\n\t}\n\treturn { found: true, value: schema.const };\n}\n\nfunction readSchemaType(schema: unknown): string | undefined {\n\treturn isRecord(schema) && typeof schema.type === \"string\"\n\t\t? schema.type\n\t\t: undefined;\n}\n\nfunction isRecord(value: unknown): value is JsonObject {\n\treturn Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../src/codex/compatibility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuC5C,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC7C,aAAa,EAAE,GAAG;IAClB,kBAAkB,EAAE,EAAE;IACtB,iBAAiB,EAAE,kBAAkB;IACrC,kBAAkB,EAAE;QACnB,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,aAAa;QACb,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,QAAQ;QACR,qBAAqB;QACrB,oBAAoB;QACpB,UAAU;QACV,aAAa;QACb,KAAK;KACL;IACD,aAAa,EAAE,CAAC,KAAK,CAAC;IACtB,oBAAoB,EAAE,CAAC,OAAO,CAAC;IAC/B,iCAAiC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;IAC7E,qBAAqB,EAAE,gBAAgB;CAC9B,CAAC;AAEX,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C,aAAa;IACb,MAAM;IACN,OAAO;CACE,CAAC;AAEX,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC3C,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;CACC,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACzC,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,aAAa;IACb,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;CACE,CAAC;AAEX,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,kBAAkB;IAClB,MAAM;IACN,MAAM;IACN,kBAAkB;IAClB,aAAa;IACb,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,SAAS;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,0BAA0B;IACnC,WAAW,EAAE,4BAA4B;IACzC,QAAQ,EAAE,4BAA4B;IACtC,QAAQ,EAAE,2BAA2B;CAC5B,CAAC;AAIX,MAAM,0CAA0C,GAAG;IAClD,OAAO;IACP,OAAO;IACP,OAAO;CACE,CAAC;AAEX,MAAM,oDAAoD,GAAG,IAAI,GAAG,CACnE,8BAA8B,CAAC,iCAAiC,CAChE,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC/C,OAAO,GAAG,KAAK,yBAAyB,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,KAAuB;IAEvB,OAAO,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACrC,KAAuB,EACvB,WAAiC;IAEjC,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,OAAO,OAAO;SACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAI,EAAiB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,KAAyB;IAEzB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjE,IAAI,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,KAAK,CACd,+BAA+B,KAAK,0BAA0B,wBAAwB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAA2B,CAAC;AACnE,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC3C,KAAqC;IAErC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAmC,EAAE,CAAC;IACvD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACpE,SAAS;QACV,CAAC;QACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,SAAS;QACV,CAAC;QACD,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1E,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC;gBAChB,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,6BAA6B,SAAS,sDAAsD;gBACvH,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,SAAS;aACT,CAAC,CAAC;QACJ,CAAC;QAED,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,oCAAoC,CAAC,IAAI,CAAC,UAAU,CAAC;SAClE,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC5C,QAA4C;IAE5C,OAAO,IAAI,GAAG,CACb,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oCAAoC,CACnD,MAAe;IAEf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,gCAAgC,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,SAAS,GAAG,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAe,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,oDAAoD,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnE,SAAS;QACV,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC3B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,CAAC,sBAAsB,IAAI,UAAU,CAAC,EAAE,CAAC;QAC7C,UAAU,CAAC,oBAAoB,GAAG,KAAK,CAAC;IACzC,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,4BAA4B,CACpC,QAAgB,EAChB,cAAmC;IAEnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,GAAG,kBAAkB,CACtC,QAAQ,EACR,8BAA8B,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAC5D,GAAG,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,SAAS,GAAG,cAAc,CAAC;IAC5B,CAAC;IACD,IAAI,oCAAoC,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,SAAS,GAAG,WAAW,SAAS,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,kBAAkB,CACxB,SAAS,EACT,8BAA8B,CAAC,aAAa,CAC5C,CAAC;AACH,CAAC;AAED,SAAS,oCAAoC,CAAC,KAAa;IAC1D,OAAO,CACN,8BAA8B,CAAC,aAAa,CAAC,IAAI,CAChD,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,KAAK,YAAY,CACxC;QACD,8BAA8B,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACnE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CACxB,CACD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,SAAiB;IAC3D,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gCAAgC;IACxC,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC3B,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CACxC,MAAkB;IAElB,KAAK,MAAM,GAAG,IAAI,0CAA0C,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,SAAS;QACV,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,gCAAgC,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,2BAA2B,CACnC,MAAkB,EAClB,cAA2E,EAC3E,QAAsB;IAEtB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAqB,CAAC;IACrD,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC;IAC7C,IAAI,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACzE,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IAED,MAAM,kBAAkB,GAAuB,EAAE,CAAC;IAClD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC;QAC3C,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACvE,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAC1D,CAAC;QACF,CAAC;QACD,kBAAkB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,UAAU,GAAe,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CACxC,MAAM,EACN,cAAc,EACd,kBAAkB,CAClB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;IACvC,MAAM,SAAS,GAAe;QAC7B,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,oBAAoB,EAAE,oCAAoC,CACzD,MAAM,EACN,cAAc,EACd,QAAQ,CACR;KACD,CAAC;IACF,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC5C,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC/B,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CACzB,eAAuC,EACvC,IAAY,EACZ,cAAuB;IAEvB,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,OAAO;IACR,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,wBAAwB,CAChC,MAAkB,EAClB,cAA2E,EAC3E,kBAAsC;IAEtC,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,gBAAgB,CAAC;IACzB,CAAC;IACD,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;YACpB,GAAG,gBAAgB;YACnB,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;SAChD,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IACvE,MAAM,qBAAqB,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACtE,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;IACF,OAAO,aAAa,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAkB;IAC/C,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAChB,CAAC,CAAC,SAAS,CAAC;QACb,OAAO;YACN,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC9D,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,oCAAoC,CAC5C,MAAkB,EAClB,cAA2E,EAC3E,QAAsB;IAEtB,MAAM,kBAAkB,GAAG,kCAAkC,CAC5D,MAAM,CAAC,oBAAoB,CAC3B,CAAC;IACF,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,gBAAgB,GACrB,cAAc,KAAK,OAAO;QACzB,CAAC,CAAC,wCAAwC,CACxC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACvB,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAC/D,CACD;QACF,CAAC,CAAC,oCAAoC,CACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACvB,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAC/D,CACD,CAAC;IACL,OAAO,wCAAwC,CAAC;QAC/C,kBAAkB;QAClB,gBAAgB;KAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kCAAkC,CAC1C,KAAc;IAEd,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,oCAAoC,CAC5C,WAA6C;IAE7C,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,kCAAkC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,wCAAwC,CAChD,WAA6C;IAE7C,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,kCAAkC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,kCAAkC,CAC1C,cAAiC,EACjC,OAAqB;IAErB,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,MAAiB;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,SAAS;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACpC,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,MAAe;IACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,MAAe;IACtC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;QACzD,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,SAAS,CAAC;AACd,CAAC","sourcesContent":["import type { Tool } from \"../agent/types.js\";\nimport { isRecord } from \"../utils/json.js\";\n\ntype JsonObject = Record<string, unknown>;\ntype AdditionalPropertiesConstraint = boolean | JsonObject;\n\ntype CodexCompatibleTool = Pick<\n\tTool,\n\t\"name\" | \"description\" | \"parameters\" | \"deferApiDefinition\"\n> & {\n\texecutionLocation?: \"server\" | \"client\";\n};\n\nexport type CodexDynamicToolSpec = {\n\tnamespace?: string;\n\tname: string;\n\tdescription: string;\n\tinputSchema: JsonObject;\n\tdeferLoading?: boolean;\n};\n\nexport type CodexCompatibilityDiagnostic = {\n\tseverity: \"info\" | \"warning\" | \"error\";\n\tcode: string;\n\tmessage: string;\n\ttoolName?: string;\n\tcodexName?: string;\n};\n\nexport type CodexDynamicToolBinding = {\n\tcodexName: string;\n\toriginalName: string;\n};\n\nexport type CodexDynamicToolCompilation = {\n\tspecs: CodexDynamicToolSpec[];\n\tbindings: CodexDynamicToolBinding[];\n\tdiagnostics: CodexCompatibilityDiagnostic[];\n};\n\nexport const CODEX_DYNAMIC_TOOL_CONFORMANCE = {\n\tnameMaxLength: 128,\n\tnamespaceMaxLength: 64,\n\tidentifierPattern: /^[a-zA-Z0-9_-]+$/,\n\treservedNamespaces: [\n\t\t\"api_tool\",\n\t\t\"browser\",\n\t\t\"computer\",\n\t\t\"container\",\n\t\t\"file_search\",\n\t\t\"functions\",\n\t\t\"image_gen\",\n\t\t\"multi_tool_use\",\n\t\t\"python\",\n\t\t\"python_user_visible\",\n\t\t\"submodel_delegator\",\n\t\t\"terminal\",\n\t\t\"tool_search\",\n\t\t\"web\",\n\t],\n\treservedNames: [\"mcp\"],\n\treservedNamePrefixes: [\"mcp__\"],\n\tunsupportedTopLevelSchemaKeywords: [\"anyOf\", \"oneOf\", \"allOf\", \"enum\", \"not\"],\n\tdynamicToolCallMethod: \"item/tool/call\",\n} as const;\n\nexport const CODEX_FILE_MUTATION_TOOL_PROFILE = [\n\t\"apply_patch\",\n\t\"edit\",\n\t\"write\",\n] as const;\n\nexport const CODEX_READ_ONLY_TOOL_PROFILE = [\n\t\"read\",\n\t\"list\",\n\t\"find\",\n\t\"search\",\n\t\"diff\",\n\t\"status\",\n] as const;\n\nexport const CODEX_DEFAULT_TOOL_PROFILE = [\n\t\"read\",\n\t\"list\",\n\t\"find\",\n\t\"search\",\n\t\"diff\",\n\t\"bash\",\n\t\"apply_patch\",\n\t\"edit\",\n\t\"write\",\n\t\"todo\",\n\t\"status\",\n\t\"gh_pr\",\n] as const;\n\nexport const CODEX_EXTENDED_TOOL_PROFILE = [\n\t\"read\",\n\t\"list\",\n\t\"find\",\n\t\"search\",\n\t\"parallel_ripgrep\",\n\t\"diff\",\n\t\"bash\",\n\t\"background_tasks\",\n\t\"apply_patch\",\n\t\"edit\",\n\t\"write\",\n\t\"todo\",\n\t\"status\",\n\t\"gh_pr\",\n\t\"gh_issue\",\n\t\"gh_repo\",\n] as const;\n\nexport const CODEX_TOOL_PROFILES = {\n\tlean: CODEX_DEFAULT_TOOL_PROFILE,\n\tdefault: CODEX_DEFAULT_TOOL_PROFILE,\n\t\"read-only\": CODEX_READ_ONLY_TOOL_PROFILE,\n\treadonly: CODEX_READ_ONLY_TOOL_PROFILE,\n\textended: CODEX_EXTENDED_TOOL_PROFILE,\n} as const;\n\nexport type CodexToolProfileName = keyof typeof CODEX_TOOL_PROFILES;\n\nconst CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS = [\n\t\"anyOf\",\n\t\"oneOf\",\n\t\"allOf\",\n] as const;\n\nconst UNSUPPORTED_CODEX_DYNAMIC_TOOL_TOP_LEVEL_SCHEMA_KEYS = new Set<string>(\n\tCODEX_DYNAMIC_TOOL_CONFORMANCE.unsupportedTopLevelSchemaKeywords,\n);\n\nexport function isCodexAppServerApi(api: unknown): boolean {\n\treturn api === \"openai-codex-app-server\";\n}\n\nexport function selectCodexDefaultTools<TTool extends { name: string }>(\n\ttools: readonly TTool[],\n): TTool[] {\n\treturn selectCodexToolProfile(tools, \"lean\");\n}\n\nexport function selectCodexToolProfile<TTool extends { name: string }>(\n\ttools: readonly TTool[],\n\tprofileName: CodexToolProfileName,\n): TTool[] {\n\tconst profile = CODEX_TOOL_PROFILES[profileName];\n\tconst byName = new Map(tools.map((tool) => [tool.name, tool]));\n\treturn profile\n\t\t.map((name) => byName.get(name))\n\t\t.filter((tool): tool is TTool => Boolean(tool));\n}\n\nexport function resolveCodexToolProfileName(\n\tvalue: string | undefined,\n): CodexToolProfileName {\n\tif (!value || value.trim().length === 0) {\n\t\treturn \"lean\";\n\t}\n\tconst normalized = value.trim().toLowerCase().replace(/_/g, \"-\");\n\tif (isCodexToolProfileName(normalized)) {\n\t\treturn normalized;\n\t}\n\tthrow new Error(\n\t\t`Unknown Codex tool profile \"${value}\". Available profiles: ${getCodexToolProfileNames().join(\", \")}`,\n\t);\n}\n\nexport function getCodexToolProfileNames(): CodexToolProfileName[] {\n\treturn Object.keys(CODEX_TOOL_PROFILES) as CodexToolProfileName[];\n}\n\nfunction isCodexToolProfileName(value: string): value is CodexToolProfileName {\n\treturn Object.hasOwn(CODEX_TOOL_PROFILES, value);\n}\n\nexport function compileCodexDynamicToolSpecs(\n\ttools: readonly CodexCompatibleTool[],\n): CodexDynamicToolCompilation {\n\tconst specs: CodexDynamicToolSpec[] = [];\n\tconst bindings: CodexDynamicToolBinding[] = [];\n\tconst diagnostics: CodexCompatibilityDiagnostic[] = [];\n\tconst seenOriginalNames = new Set<string>();\n\tconst seenCodexNames = new Set<string>();\n\n\tfor (const tool of tools) {\n\t\tif (tool.deferApiDefinition || tool.executionLocation === \"client\") {\n\t\t\tcontinue;\n\t\t}\n\t\tif (seenOriginalNames.has(tool.name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseenOriginalNames.add(tool.name);\n\n\t\tconst codexName = toUniqueCodexDynamicToolName(tool.name, seenCodexNames);\n\t\tif (codexName !== tool.name) {\n\t\t\tdiagnostics.push({\n\t\t\t\tseverity: \"warning\",\n\t\t\t\tcode: \"renamed_tool\",\n\t\t\t\tmessage: `Tool \"${tool.name}\" is exposed to Codex as \"${codexName}\" to match app-server dynamic tool identifier rules.`,\n\t\t\t\ttoolName: tool.name,\n\t\t\t\tcodexName,\n\t\t\t});\n\t\t}\n\n\t\tseenCodexNames.add(codexName);\n\t\tspecs.push({\n\t\t\tname: codexName,\n\t\t\tdescription: tool.description,\n\t\t\tinputSchema: normalizeCodexDynamicToolInputSchema(tool.parameters),\n\t\t});\n\t\tbindings.push({ codexName, originalName: tool.name });\n\t}\n\n\treturn { specs, bindings, diagnostics };\n}\n\nexport function createCodexDynamicToolNameMap(\n\tbindings: readonly CodexDynamicToolBinding[],\n): Map<string, string> {\n\treturn new Map(\n\t\tbindings.map((binding) => [binding.codexName, binding.originalName]),\n\t);\n}\n\nexport function normalizeCodexDynamicToolInputSchema(\n\tschema: unknown,\n): JsonObject {\n\tif (!isRecord(schema)) {\n\t\treturn emptyCodexDynamicToolInputSchema();\n\t}\n\n\tconst flattened = flattenTopLevelCompositionSchema(schema);\n\tif (flattened) {\n\t\treturn flattened;\n\t}\n\n\tconst normalized: JsonObject = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (UNSUPPORTED_CODEX_DYNAMIC_TOOL_TOP_LEVEL_SCHEMA_KEYS.has(key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tnormalized[key] = value;\n\t}\n\tnormalized.type = \"object\";\n\tif (!isRecord(normalized.properties)) {\n\t\tnormalized.properties = {};\n\t}\n\tif (!(\"additionalProperties\" in normalized)) {\n\t\tnormalized.additionalProperties = false;\n\t}\n\treturn normalized;\n}\n\nfunction toUniqueCodexDynamicToolName(\n\ttoolName: string,\n\tseenCodexNames: ReadonlySet<string>,\n): string {\n\tconst baseName = toCodexDynamicToolName(toolName);\n\tif (!seenCodexNames.has(baseName)) {\n\t\treturn baseName;\n\t}\n\tfor (let index = 2; ; index += 1) {\n\t\tconst suffix = `_${index}`;\n\t\tconst candidate = `${truncateIdentifier(\n\t\t\tbaseName,\n\t\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.nameMaxLength - suffix.length,\n\t\t)}${suffix}`;\n\t\tif (!seenCodexNames.has(candidate)) {\n\t\t\treturn candidate;\n\t\t}\n\t}\n}\n\nfunction toCodexDynamicToolName(toolName: string): string {\n\tconst trimmed = toolName.trim();\n\tlet codexName = trimmed.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n\tif (codexName.length === 0) {\n\t\tcodexName = \"maestro_tool\";\n\t}\n\tif (isReservedCodexDynamicToolIdentifier(codexName)) {\n\t\tcodexName = `maestro_${codexName}`;\n\t}\n\treturn truncateIdentifier(\n\t\tcodexName,\n\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.nameMaxLength,\n\t);\n}\n\nfunction isReservedCodexDynamicToolIdentifier(value: string): boolean {\n\treturn (\n\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.reservedNames.some(\n\t\t\t(reservedName) => value === reservedName,\n\t\t) ||\n\t\tCODEX_DYNAMIC_TOOL_CONFORMANCE.reservedNamePrefixes.some((prefix) =>\n\t\t\tvalue.startsWith(prefix),\n\t\t)\n\t);\n}\n\nfunction truncateIdentifier(value: string, maxLength: number): string {\n\tif (value.length <= maxLength) {\n\t\treturn value;\n\t}\n\treturn value.slice(0, Math.max(1, maxLength));\n}\n\nfunction emptyCodexDynamicToolInputSchema(): JsonObject {\n\treturn {\n\t\ttype: \"object\",\n\t\tproperties: {},\n\t\tadditionalProperties: false,\n\t};\n}\n\nfunction flattenTopLevelCompositionSchema(\n\tschema: JsonObject,\n): JsonObject | null {\n\tfor (const key of CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS) {\n\t\tconst branches = schema[key];\n\t\tif (!Array.isArray(branches)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (branches.length === 0 || !branches.every(isRecord)) {\n\t\t\treturn emptyCodexDynamicToolInputSchema();\n\t\t}\n\t\treturn flattenObjectSchemaBranches(schema, key, branches);\n\t}\n\treturn null;\n}\n\nfunction flattenObjectSchemaBranches(\n\tschema: JsonObject,\n\tcompositionKey: (typeof CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS)[number],\n\tbranches: JsonObject[],\n): JsonObject {\n\tconst propertySchemas = new Map<string, unknown[]>();\n\tconst topLevelProperties = schema.properties;\n\tif (isRecord(topLevelProperties)) {\n\t\tfor (const [name, propertySchema] of Object.entries(topLevelProperties)) {\n\t\t\taddPropertySchema(propertySchemas, name, propertySchema);\n\t\t}\n\t}\n\n\tconst branchRequiredSets: Array<Set<string>> = [];\n\tfor (const branch of branches) {\n\t\tconst branchProperties = branch.properties;\n\t\tif (isRecord(branchProperties)) {\n\t\t\tfor (const [name, propertySchema] of Object.entries(branchProperties)) {\n\t\t\t\taddPropertySchema(propertySchemas, name, propertySchema);\n\t\t\t}\n\t\t}\n\t\tbranchRequiredSets.push(new Set(readStringArray(branch.required)));\n\t}\n\n\tconst properties: JsonObject = {};\n\tfor (const [name, schemas] of propertySchemas.entries()) {\n\t\tproperties[name] = mergePropertySchemas(schemas);\n\t}\n\n\tconst required = computeFlattenedRequired(\n\t\tschema,\n\t\tcompositionKey,\n\t\tbranchRequiredSets,\n\t).filter((name) => name in properties);\n\tconst flattened: JsonObject = {\n\t\ttype: \"object\",\n\t\tproperties,\n\t\tadditionalProperties: computeFlattenedAdditionalProperties(\n\t\t\tschema,\n\t\t\tcompositionKey,\n\t\t\tbranches,\n\t\t),\n\t};\n\tif (typeof schema.description === \"string\") {\n\t\tflattened.description = schema.description;\n\t}\n\tif (required.length > 0) {\n\t\tflattened.required = required;\n\t}\n\treturn flattened;\n}\n\nfunction addPropertySchema(\n\tpropertySchemas: Map<string, unknown[]>,\n\tname: string,\n\tpropertySchema: unknown,\n): void {\n\tconst schemas = propertySchemas.get(name);\n\tif (schemas) {\n\t\tschemas.push(propertySchema);\n\t\treturn;\n\t}\n\tpropertySchemas.set(name, [propertySchema]);\n}\n\nfunction computeFlattenedRequired(\n\tschema: JsonObject,\n\tcompositionKey: (typeof CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS)[number],\n\tbranchRequiredSets: Array<Set<string>>,\n): string[] {\n\tconst topLevelRequired = readStringArray(schema.required);\n\tif (branchRequiredSets.length === 0) {\n\t\treturn topLevelRequired;\n\t}\n\tif (compositionKey === \"allOf\") {\n\t\treturn uniqueStrings([\n\t\t\t...topLevelRequired,\n\t\t\t...branchRequiredSets.flatMap((set) => [...set]),\n\t\t]);\n\t}\n\tconst firstBranchRequired = branchRequiredSets[0] ?? new Set<string>();\n\tconst requiredByEveryBranch = [...firstBranchRequired].filter((name) =>\n\t\tbranchRequiredSets.every((set) => set.has(name)),\n\t);\n\treturn uniqueStrings([...topLevelRequired, ...requiredByEveryBranch]);\n}\n\nfunction mergePropertySchemas(schemas: unknown[]): unknown {\n\tconst uniqueSchemas = uniqueJsonItems(schemas);\n\tif (uniqueSchemas.length <= 1) {\n\t\treturn uniqueSchemas[0] ?? {};\n\t}\n\n\tconst constValues = uniqueSchemas.map(readConstValue);\n\tif (constValues.every((entry) => entry.found)) {\n\t\tconst schemaTypes = uniqueSchemas.map(readSchemaType);\n\t\tconst commonType = schemaTypes.every((type) => type === schemaTypes[0])\n\t\t\t? schemaTypes[0]\n\t\t\t: undefined;\n\t\treturn {\n\t\t\t...(commonType ? { type: commonType } : {}),\n\t\t\tenum: uniqueJsonItems(constValues.map((entry) => entry.value)),\n\t\t};\n\t}\n\n\treturn { anyOf: uniqueSchemas };\n}\n\nfunction computeFlattenedAdditionalProperties(\n\tschema: JsonObject,\n\tcompositionKey: (typeof CODEX_DYNAMIC_TOOL_COMPOSITION_SCHEMA_KEYS)[number],\n\tbranches: JsonObject[],\n): AdditionalPropertiesConstraint {\n\tconst topLevelConstraint = readAdditionalPropertiesConstraint(\n\t\tschema.additionalProperties,\n\t);\n\tif (topLevelConstraint === false) {\n\t\treturn false;\n\t}\n\tconst branchConstraint =\n\t\tcompositionKey === \"allOf\"\n\t\t\t? intersectAdditionalPropertiesConstraints(\n\t\t\t\t\tbranches.map((branch) =>\n\t\t\t\t\t\treadAdditionalPropertiesConstraint(branch.additionalProperties),\n\t\t\t\t\t),\n\t\t\t\t)\n\t\t\t: unionAdditionalPropertiesConstraints(\n\t\t\t\t\tbranches.map((branch) =>\n\t\t\t\t\t\treadAdditionalPropertiesConstraint(branch.additionalProperties),\n\t\t\t\t\t),\n\t\t\t\t);\n\treturn intersectAdditionalPropertiesConstraints([\n\t\ttopLevelConstraint,\n\t\tbranchConstraint,\n\t]);\n}\n\nfunction readAdditionalPropertiesConstraint(\n\tvalue: unknown,\n): AdditionalPropertiesConstraint {\n\tif (value === false) {\n\t\treturn false;\n\t}\n\tif (isRecord(value)) {\n\t\treturn value;\n\t}\n\treturn true;\n}\n\nfunction unionAdditionalPropertiesConstraints(\n\tconstraints: AdditionalPropertiesConstraint[],\n): AdditionalPropertiesConstraint {\n\tif (constraints.some((constraint) => constraint === false)) {\n\t\treturn false;\n\t}\n\tif (constraints.some((constraint) => constraint === true)) {\n\t\treturn true;\n\t}\n\tconst schemas = constraints.filter(isRecord);\n\tif (schemas.length === 0) {\n\t\treturn false;\n\t}\n\treturn combineAdditionalPropertiesSchemas(\"anyOf\", schemas);\n}\n\nfunction intersectAdditionalPropertiesConstraints(\n\tconstraints: AdditionalPropertiesConstraint[],\n): AdditionalPropertiesConstraint {\n\tif (constraints.some((constraint) => constraint === false)) {\n\t\treturn false;\n\t}\n\tconst schemas = constraints.filter(isRecord);\n\tif (schemas.length === 0) {\n\t\treturn true;\n\t}\n\treturn combineAdditionalPropertiesSchemas(\"allOf\", schemas);\n}\n\nfunction combineAdditionalPropertiesSchemas(\n\tcompositionKey: \"allOf\" | \"anyOf\",\n\tschemas: JsonObject[],\n): JsonObject {\n\tconst uniqueSchemas = uniqueJsonItems(schemas).filter(isRecord);\n\tif (uniqueSchemas.length <= 1) {\n\t\treturn uniqueSchemas[0] ?? {};\n\t}\n\treturn { [compositionKey]: uniqueSchemas };\n}\n\nfunction readStringArray(value: unknown): string[] {\n\treturn Array.isArray(value)\n\t\t? value.filter((item): item is string => typeof item === \"string\")\n\t\t: [];\n}\n\nfunction uniqueStrings(values: string[]): string[] {\n\treturn Array.from(new Set(values));\n}\n\nfunction uniqueJsonItems(values: unknown[]): unknown[] {\n\tconst seen = new Set<string>();\n\tconst unique: unknown[] = [];\n\tfor (const value of values) {\n\t\tconst key = schemaJsonKey(value);\n\t\tif (seen.has(key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(key);\n\t\tunique.push(value);\n\t}\n\treturn unique;\n}\n\nfunction schemaJsonKey(value: unknown): string {\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn String(value);\n\t}\n}\n\nfunction readConstValue(schema: unknown): { found: boolean; value?: unknown } {\n\tif (!isRecord(schema) || !(\"const\" in schema)) {\n\t\treturn { found: false };\n\t}\n\treturn { found: true, value: schema.const };\n}\n\nfunction readSchemaType(schema: unknown): string | undefined {\n\treturn isRecord(schema) && typeof schema.type === \"string\"\n\t\t? schema.type\n\t\t: undefined;\n}\n"]}
|
|
@@ -39,6 +39,14 @@ export declare const CODEX_SUBAGENT_DISPATCH_TABLE: {
|
|
|
39
39
|
readonly tags: readonly ["maestro", "subagent", "test", "ci"];
|
|
40
40
|
readonly typeAliases: readonly ["test", "qa", "ci", "ci-monitor", "test-runner"];
|
|
41
41
|
readonly capabilityAliases: readonly ["code:test", "code-test", "test:run", "test-run", "test-runner"];
|
|
42
|
+
}, {
|
|
43
|
+
readonly laneId: "browser-qa";
|
|
44
|
+
readonly skillId: "maestro.subagent.browser-qa";
|
|
45
|
+
readonly displayName: "Maestro browser QA subagent";
|
|
46
|
+
readonly description: "Delegate browser-based product QA, console inspection, screenshots, repro videos, and evidence-backed bug reports to a target-owned Maestro child agent.";
|
|
47
|
+
readonly tags: readonly ["maestro", "subagent", "browser", "qa", "evidence"];
|
|
48
|
+
readonly typeAliases: readonly ["browser-qa", "browser", "dogfood", "product-qa", "e2e-qa", "ux-qa"];
|
|
49
|
+
readonly capabilityAliases: readonly ["product:qa", "product-qa", "browser:qa", "browser-qa", "e2e:qa", "e2e-qa"];
|
|
42
50
|
}, {
|
|
43
51
|
readonly laneId: "repo-explorer";
|
|
44
52
|
readonly skillId: "maestro.subagent.repo-explorer";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-dispatch-table.d.ts","sourceRoot":"","sources":["../../src/codex/subagent-dispatch-table.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IAC1C,aAAa,EAAE,kDAAkD,CAAC;IAClE,iBAAiB,EAAE,YAAY,CAAC;IAChC,aAAa,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACpD;AAED,eAAO,MAAM,6BAA6B
|
|
1
|
+
{"version":3,"file":"subagent-dispatch-table.d.ts","sourceRoot":"","sources":["../../src/codex/subagent-dispatch-table.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,0BAA0B;IAC1C,aAAa,EAAE,kDAAkD,CAAC;IAClE,iBAAiB,EAAE,YAAY,CAAC;IAChC,aAAa,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACpD;AAED,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoHK,CAAC;AAEhD,eAAO,MAAM,4CAA4C,cACT,CAAC;AAyBjD,wBAAgB,wBAAwB,CACvC,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,yBAAyB,GAAG,SAAS,CAGvC;AAED,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,yBAAyB,GAAG,SAAS,CAGvC;AAED,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,uBAAuB,CACtC,KAAK,EAAE,MAAM,GAAG,SAAS,GACvB,MAAM,GAAG,SAAS,CAQpB"}
|
|
@@ -48,6 +48,29 @@ export const CODEX_SUBAGENT_DISPATCH_TABLE = {
|
|
|
48
48
|
"test-runner",
|
|
49
49
|
],
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
laneId: "browser-qa",
|
|
53
|
+
skillId: "maestro.subagent.browser-qa",
|
|
54
|
+
displayName: "Maestro browser QA subagent",
|
|
55
|
+
description: "Delegate browser-based product QA, console inspection, screenshots, repro videos, and evidence-backed bug reports to a target-owned Maestro child agent.",
|
|
56
|
+
tags: ["maestro", "subagent", "browser", "qa", "evidence"],
|
|
57
|
+
typeAliases: [
|
|
58
|
+
"browser-qa",
|
|
59
|
+
"browser",
|
|
60
|
+
"dogfood",
|
|
61
|
+
"product-qa",
|
|
62
|
+
"e2e-qa",
|
|
63
|
+
"ux-qa",
|
|
64
|
+
],
|
|
65
|
+
capabilityAliases: [
|
|
66
|
+
"product:qa",
|
|
67
|
+
"product-qa",
|
|
68
|
+
"browser:qa",
|
|
69
|
+
"browser-qa",
|
|
70
|
+
"e2e:qa",
|
|
71
|
+
"e2e-qa",
|
|
72
|
+
],
|
|
73
|
+
},
|
|
51
74
|
{
|
|
52
75
|
laneId: "repo-explorer",
|
|
53
76
|
skillId: "maestro.subagent.repo-explorer",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-dispatch-table.js","sourceRoot":"","sources":["../../src/codex/subagent-dispatch-table.ts"],"names":[],"mappings":"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","sourcesContent":["export interface CodexSubagentDispatchLane {\n\tlaneId: string;\n\tskillId: string;\n\tdisplayName: string;\n\tdescription: string;\n\ttags: readonly string[];\n\ttypeAliases: readonly string[];\n\tcapabilityAliases: readonly string[];\n}\n\nexport interface CodexSubagentDispatchTable {\n\tschemaVersion: \"evalops.maestro.codex.subagent-dispatch-table.v1\";\n\tdefaultCapability: \"code:write\";\n\ta2aSkillLanes: readonly CodexSubagentDispatchLane[];\n}\n\nexport const CODEX_SUBAGENT_DISPATCH_TABLE = {\n\tschemaVersion: \"evalops.maestro.codex.subagent-dispatch-table.v1\",\n\tdefaultCapability: \"code:write\",\n\ta2aSkillLanes: [\n\t\t{\n\t\t\tlaneId: \"code-writer\",\n\t\t\tskillId: \"maestro.subagent.code-writer\",\n\t\t\tdisplayName: \"Maestro code writer subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate bounded implementation work to a target-owned Maestro coding child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"code\", \"write\"],\n\t\t\ttypeAliases: [\"worker\", \"coder\", \"code\", \"code-writer\", \"default\"],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"code:write\",\n\t\t\t\t\"code-write\",\n\t\t\t\t\"code:edit\",\n\t\t\t\t\"code-edit\",\n\t\t\t\t\"code:implement\",\n\t\t\t\t\"code-implement\",\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"code-review\",\n\t\t\tskillId: \"maestro.subagent.code-review\",\n\t\t\tdisplayName: \"Maestro code review subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate code review and risk analysis to a target-owned Maestro review child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"code\", \"review\"],\n\t\t\ttypeAliases: [\n\t\t\t\t\"pr-review\",\n\t\t\t\t\"review\",\n\t\t\t\t\"reviewer\",\n\t\t\t\t\"code-review\",\n\t\t\t\t\"code-reviewer\",\n\t\t\t],\n\t\t\tcapabilityAliases: [\"code:review\", \"code-review\"],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"test-runner\",\n\t\t\tskillId: \"maestro.subagent.test-runner\",\n\t\t\tdisplayName: \"Maestro test runner subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate test execution, failure triage, and result artifact capture to a target-owned Maestro child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"test\", \"ci\"],\n\t\t\ttypeAliases: [\"test\", \"qa\", \"ci\", \"ci-monitor\", \"test-runner\"],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"code:test\",\n\t\t\t\t\"code-test\",\n\t\t\t\t\"test:run\",\n\t\t\t\t\"test-run\",\n\t\t\t\t\"test-runner\",\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"repo-explorer\",\n\t\t\tskillId: \"maestro.subagent.repo-explorer\",\n\t\t\tdisplayName: \"Maestro repo explorer subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate repository inspection and context gathering to a target-owned Maestro exploration child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"repo\", \"explore\"],\n\t\t\ttypeAliases: [\n\t\t\t\t\"explore\",\n\t\t\t\t\"explorer\",\n\t\t\t\t\"repo-explorer\",\n\t\t\t\t\"research\",\n\t\t\t\t\"competitive-intel\",\n\t\t\t\t\"people-research\",\n\t\t\t],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"repo:explore\",\n\t\t\t\t\"repo-explore\",\n\t\t\t\t\"repo-explorer\",\n\t\t\t\t\"code:search\",\n\t\t\t\t\"code-search\",\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"release-shepherd\",\n\t\t\tskillId: \"maestro.subagent.release-shepherd\",\n\t\t\tdisplayName: \"Maestro release shepherd subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate release, rollout, and merge-follow-through work to a target-owned Maestro child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"release\", \"deploy\"],\n\t\t\ttypeAliases: [\"release\", \"release-shepherd\"],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"release:shepherd\",\n\t\t\t\t\"release-shepherd\",\n\t\t\t\t\"release:manage\",\n\t\t\t\t\"release-manage\",\n\t\t\t],\n\t\t},\n\t],\n} as const satisfies CodexSubagentDispatchTable;\n\nexport const DEFAULT_CODEX_SUBAGENT_DELEGATION_CAPABILITY =\n\tCODEX_SUBAGENT_DISPATCH_TABLE.defaultCapability;\n\nfunction tokenSet(values: readonly string[]): ReadonlySet<string> {\n\treturn new Set(\n\t\tvalues\n\t\t\t.map((value) => codexSubagentSkillToken(value))\n\t\t\t.filter((token): token is string => Boolean(token)),\n\t);\n}\n\nconst lanesByTypeToken = new Map(\n\tCODEX_SUBAGENT_DISPATCH_TABLE.a2aSkillLanes.flatMap((lane) =>\n\t\tArray.from(tokenSet(lane.typeAliases), (token) => [token, lane] as const),\n\t),\n);\n\nconst lanesByCapabilityToken = new Map(\n\tCODEX_SUBAGENT_DISPATCH_TABLE.a2aSkillLanes.flatMap((lane) =>\n\t\tArray.from(\n\t\t\ttokenSet(lane.capabilityAliases),\n\t\t\t(token) => [token, lane] as const,\n\t\t),\n\t),\n);\n\nexport function codexSubagentLaneForType(\n\tvalue: string | undefined,\n): CodexSubagentDispatchLane | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\treturn token ? lanesByTypeToken.get(token) : undefined;\n}\n\nexport function codexSubagentLaneForCapability(\n\tvalue: string | undefined,\n): CodexSubagentDispatchLane | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\treturn token ? lanesByCapabilityToken.get(token) : undefined;\n}\n\nexport function codexSubagentTypeA2ASkillID(\n\tvalue: string | undefined,\n): string | undefined {\n\treturn codexSubagentA2ASkillID(\n\t\tvalue,\n\t\tcodexSubagentLaneForType(value)?.skillId,\n\t);\n}\n\nexport function codexSubagentCapabilityA2ASkillID(\n\tvalue: string | undefined,\n): string | undefined {\n\treturn codexSubagentA2ASkillID(\n\t\tvalue,\n\t\tcodexSubagentLaneForCapability(value)?.skillId,\n\t);\n}\n\nexport function codexSubagentSkillToken(\n\tvalue: string | undefined,\n): string | undefined {\n\tconst token = value\n\t\t?.trim()\n\t\t.toLowerCase()\n\t\t.replace(/[:_/. ]+/g, \"-\")\n\t\t.replace(/-{2,}/g, \"-\")\n\t\t.replace(/^-|-$/g, \"\");\n\treturn token || undefined;\n}\n\nfunction codexSubagentA2ASkillID(\n\tvalue: string | undefined,\n\tmappedSkillId: string | undefined,\n): string | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\tif (!token) {\n\t\treturn undefined;\n\t}\n\treturn mappedSkillId ?? `maestro.subagent.${token}`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"subagent-dispatch-table.js","sourceRoot":"","sources":["../../src/codex/subagent-dispatch-table.ts"],"names":[],"mappings":"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","sourcesContent":["export interface CodexSubagentDispatchLane {\n\tlaneId: string;\n\tskillId: string;\n\tdisplayName: string;\n\tdescription: string;\n\ttags: readonly string[];\n\ttypeAliases: readonly string[];\n\tcapabilityAliases: readonly string[];\n}\n\nexport interface CodexSubagentDispatchTable {\n\tschemaVersion: \"evalops.maestro.codex.subagent-dispatch-table.v1\";\n\tdefaultCapability: \"code:write\";\n\ta2aSkillLanes: readonly CodexSubagentDispatchLane[];\n}\n\nexport const CODEX_SUBAGENT_DISPATCH_TABLE = {\n\tschemaVersion: \"evalops.maestro.codex.subagent-dispatch-table.v1\",\n\tdefaultCapability: \"code:write\",\n\ta2aSkillLanes: [\n\t\t{\n\t\t\tlaneId: \"code-writer\",\n\t\t\tskillId: \"maestro.subagent.code-writer\",\n\t\t\tdisplayName: \"Maestro code writer subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate bounded implementation work to a target-owned Maestro coding child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"code\", \"write\"],\n\t\t\ttypeAliases: [\"worker\", \"coder\", \"code\", \"code-writer\", \"default\"],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"code:write\",\n\t\t\t\t\"code-write\",\n\t\t\t\t\"code:edit\",\n\t\t\t\t\"code-edit\",\n\t\t\t\t\"code:implement\",\n\t\t\t\t\"code-implement\",\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"code-review\",\n\t\t\tskillId: \"maestro.subagent.code-review\",\n\t\t\tdisplayName: \"Maestro code review subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate code review and risk analysis to a target-owned Maestro review child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"code\", \"review\"],\n\t\t\ttypeAliases: [\n\t\t\t\t\"pr-review\",\n\t\t\t\t\"review\",\n\t\t\t\t\"reviewer\",\n\t\t\t\t\"code-review\",\n\t\t\t\t\"code-reviewer\",\n\t\t\t],\n\t\t\tcapabilityAliases: [\"code:review\", \"code-review\"],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"test-runner\",\n\t\t\tskillId: \"maestro.subagent.test-runner\",\n\t\t\tdisplayName: \"Maestro test runner subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate test execution, failure triage, and result artifact capture to a target-owned Maestro child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"test\", \"ci\"],\n\t\t\ttypeAliases: [\"test\", \"qa\", \"ci\", \"ci-monitor\", \"test-runner\"],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"code:test\",\n\t\t\t\t\"code-test\",\n\t\t\t\t\"test:run\",\n\t\t\t\t\"test-run\",\n\t\t\t\t\"test-runner\",\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"browser-qa\",\n\t\t\tskillId: \"maestro.subagent.browser-qa\",\n\t\t\tdisplayName: \"Maestro browser QA subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate browser-based product QA, console inspection, screenshots, repro videos, and evidence-backed bug reports to a target-owned Maestro child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"browser\", \"qa\", \"evidence\"],\n\t\t\ttypeAliases: [\n\t\t\t\t\"browser-qa\",\n\t\t\t\t\"browser\",\n\t\t\t\t\"dogfood\",\n\t\t\t\t\"product-qa\",\n\t\t\t\t\"e2e-qa\",\n\t\t\t\t\"ux-qa\",\n\t\t\t],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"product:qa\",\n\t\t\t\t\"product-qa\",\n\t\t\t\t\"browser:qa\",\n\t\t\t\t\"browser-qa\",\n\t\t\t\t\"e2e:qa\",\n\t\t\t\t\"e2e-qa\",\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"repo-explorer\",\n\t\t\tskillId: \"maestro.subagent.repo-explorer\",\n\t\t\tdisplayName: \"Maestro repo explorer subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate repository inspection and context gathering to a target-owned Maestro exploration child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"repo\", \"explore\"],\n\t\t\ttypeAliases: [\n\t\t\t\t\"explore\",\n\t\t\t\t\"explorer\",\n\t\t\t\t\"repo-explorer\",\n\t\t\t\t\"research\",\n\t\t\t\t\"competitive-intel\",\n\t\t\t\t\"people-research\",\n\t\t\t],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"repo:explore\",\n\t\t\t\t\"repo-explore\",\n\t\t\t\t\"repo-explorer\",\n\t\t\t\t\"code:search\",\n\t\t\t\t\"code-search\",\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tlaneId: \"release-shepherd\",\n\t\t\tskillId: \"maestro.subagent.release-shepherd\",\n\t\t\tdisplayName: \"Maestro release shepherd subagent\",\n\t\t\tdescription:\n\t\t\t\t\"Delegate release, rollout, and merge-follow-through work to a target-owned Maestro child agent.\",\n\t\t\ttags: [\"maestro\", \"subagent\", \"release\", \"deploy\"],\n\t\t\ttypeAliases: [\"release\", \"release-shepherd\"],\n\t\t\tcapabilityAliases: [\n\t\t\t\t\"release:shepherd\",\n\t\t\t\t\"release-shepherd\",\n\t\t\t\t\"release:manage\",\n\t\t\t\t\"release-manage\",\n\t\t\t],\n\t\t},\n\t],\n} as const satisfies CodexSubagentDispatchTable;\n\nexport const DEFAULT_CODEX_SUBAGENT_DELEGATION_CAPABILITY =\n\tCODEX_SUBAGENT_DISPATCH_TABLE.defaultCapability;\n\nfunction tokenSet(values: readonly string[]): ReadonlySet<string> {\n\treturn new Set(\n\t\tvalues\n\t\t\t.map((value) => codexSubagentSkillToken(value))\n\t\t\t.filter((token): token is string => Boolean(token)),\n\t);\n}\n\nconst lanesByTypeToken = new Map(\n\tCODEX_SUBAGENT_DISPATCH_TABLE.a2aSkillLanes.flatMap((lane) =>\n\t\tArray.from(tokenSet(lane.typeAliases), (token) => [token, lane] as const),\n\t),\n);\n\nconst lanesByCapabilityToken = new Map(\n\tCODEX_SUBAGENT_DISPATCH_TABLE.a2aSkillLanes.flatMap((lane) =>\n\t\tArray.from(\n\t\t\ttokenSet(lane.capabilityAliases),\n\t\t\t(token) => [token, lane] as const,\n\t\t),\n\t),\n);\n\nexport function codexSubagentLaneForType(\n\tvalue: string | undefined,\n): CodexSubagentDispatchLane | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\treturn token ? lanesByTypeToken.get(token) : undefined;\n}\n\nexport function codexSubagentLaneForCapability(\n\tvalue: string | undefined,\n): CodexSubagentDispatchLane | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\treturn token ? lanesByCapabilityToken.get(token) : undefined;\n}\n\nexport function codexSubagentTypeA2ASkillID(\n\tvalue: string | undefined,\n): string | undefined {\n\treturn codexSubagentA2ASkillID(\n\t\tvalue,\n\t\tcodexSubagentLaneForType(value)?.skillId,\n\t);\n}\n\nexport function codexSubagentCapabilityA2ASkillID(\n\tvalue: string | undefined,\n): string | undefined {\n\treturn codexSubagentA2ASkillID(\n\t\tvalue,\n\t\tcodexSubagentLaneForCapability(value)?.skillId,\n\t);\n}\n\nexport function codexSubagentSkillToken(\n\tvalue: string | undefined,\n): string | undefined {\n\tconst token = value\n\t\t?.trim()\n\t\t.toLowerCase()\n\t\t.replace(/[:_/. ]+/g, \"-\")\n\t\t.replace(/-{2,}/g, \"-\")\n\t\t.replace(/^-|-$/g, \"\");\n\treturn token || undefined;\n}\n\nfunction codexSubagentA2ASkillID(\n\tvalue: string | undefined,\n\tmappedSkillId: string | undefined,\n): string | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\tif (!token) {\n\t\treturn undefined;\n\t}\n\treturn mappedSkillId ?? `maestro.subagent.${token}`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/context/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAE7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACX,SAAS,EACT,gBAAgB,EAIhB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/context/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAE7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACX,SAAS,EACT,gBAAgB,EAIhB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAKN,KAAK,sBAAsB,EAC3B,KAAK,mCAAmC,EAExC,KAAK,0BAA0B,EAG/B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,iCAAiC,EACjC,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,mCAAmC,EACxC,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,EAC/B,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,GAChC,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,iCAAiC;IACjD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAiMD,wBAAgB,sCAAsC,CACrD,QAAQ,EAAE,sBAAsB,GAC9B,mCAAmC,EAAE,CA4CvC;AAED,wBAAgB,oCAAoC,CACnD,QAAQ,EAAE,sBAAsB,GAC9B,IAAI,CAWN;AAoSD,wBAAgB,0BAA0B,CACzC,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,iCAAsC,GAC7C,sBAAsB,CAsBxB;AAED,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,sBAAsB,EAC9B,KAAK,EAAE,sBAAsB,GAC3B,0BAA0B,CAmE5B"}
|
package/dist/context/manifest.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { relative, resolve } from "node:path";
|
|
3
3
|
import { loadPromptProjectDocManifest, } from "../config/index.js";
|
|
4
4
|
import { loadMcpConfig } from "../mcp/config.js";
|
|
5
|
+
import { isRecord } from "../utils/json.js";
|
|
5
6
|
import { UNIFIED_CONTEXT_MANIFEST_PROTOCOL, } from "./manifest-types.js";
|
|
6
7
|
export { UNIFIED_CONTEXT_MANIFEST_PROTOCOL, } from "./manifest-types.js";
|
|
7
8
|
const ENTRY_KINDS = new Set([
|
|
@@ -65,9 +66,6 @@ function stableJson(value) {
|
|
|
65
66
|
function hashValue(value) {
|
|
66
67
|
return createHash("sha256").update(stableJson(value)).digest("hex");
|
|
67
68
|
}
|
|
68
|
-
function isRecord(value) {
|
|
69
|
-
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
70
|
-
}
|
|
71
69
|
function hasRedactedTrue(value) {
|
|
72
70
|
return isRecord(value) && value.redacted === true;
|
|
73
71
|
}
|