@evalops/maestro 0.10.50 → 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-runtime.js +7756 -2800
- 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/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/schema.d.ts +5 -1
- package/dist/db/schema.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/load-env.js +2 -1
- package/dist/load-env.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +92 -3
- 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.map +1 -1
- package/dist/platform/operating-layer.js +14 -8
- package/dist/platform/operating-layer.js.map +1 -1
- 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/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":"validation.js","sourceRoot":"","sources":["../../../src/agent/providers/validation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/agent/providers/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Value } from \"@sinclair/typebox/value\";\nimport {\n\tAjv,\n\ttype AnySchema,\n\ttype ErrorObject,\n\ttype ValidateFunction,\n} from \"ajv\";\nimport addFormatsModule, { type FormatsPlugin } from \"ajv-formats\";\nimport { sanitizePayload } from \"../../safety/context-firewall.js\";\nimport { isRecord } from \"../../utils/json.js\";\nimport { createLogger } from \"../../utils/logger.js\";\nimport { resolveDefaultExport } from \"../../utils/module-interop.js\";\nimport { sanitizeWithStaticMask } from \"../../utils/secret-redactor.js\";\nimport type { AgentTool, ToolCall } from \"../types.js\";\n\nconst logger = createLogger(\"agent:providers:validation\");\n\n// ESM/CJS interop: ajv-formats default may be nested under .default in some loaders\nconst addFormats = resolveDefaultExport<FormatsPlugin>(addFormatsModule);\n\n// Detect if we're in a browser extension environment with strict CSP\n// Chrome extensions with Manifest V3 don't allow eval/Function constructor\ninterface ChromeRuntime {\n\tchrome?: { runtime?: { id?: string } };\n}\nconst isBrowserExtension =\n\ttypeof globalThis !== \"undefined\" &&\n\t(globalThis as typeof globalThis & ChromeRuntime).chrome?.runtime?.id !==\n\t\tundefined;\n\n// Create a singleton AJV instance with formats (only if not in browser extension)\n// AJV requires 'unsafe-eval' CSP which is not allowed in Manifest V3\nlet ajv: Ajv | null = null;\nconst validatorCache = new WeakMap<\n\tobject,\n\tValidateFunction & {\n\t\terrors?: ErrorObject[] | null;\n\t}\n>();\nif (!isBrowserExtension) {\n\ttry {\n\t\tajv = new Ajv({\n\t\t\t// Limit error output to avoid unbounded allocations on malformed input\n\t\t\tallErrors: false,\n\t\t\tstrict: false,\n\t\t});\n\t\taddFormats(ajv);\n\t} catch (e) {\n\t\t// AJV initialization failed (likely CSP restriction)\n\t\tlogger.warn(\"AJV validation disabled due to CSP restrictions\", {\n\t\t\terror: e instanceof Error ? e.message : String(e),\n\t\t\tisBrowserExtension,\n\t\t});\n\t}\n}\n\n/**\n * Validates tool call arguments against the tool's TypeBox schema\n * @param tool The tool definition with TypeBox schema\n * @param toolCall The tool call from the LLM\n * @returns The validated arguments\n * @throws Error with formatted message if validation fails\n */\nexport function validateToolArguments(\n\ttool: AgentTool,\n\ttoolCall: ToolCall,\n): Record<string, unknown> {\n\t// Skip validation in browser extension environment (CSP restrictions prevent AJV from working)\n\tif (!ajv || isBrowserExtension) {\n\t\tconst args = isRecord(toolCall.arguments) ? toolCall.arguments : {};\n\t\t// Browser extensions can't use AJV due to Manifest V3 CSP restrictions.\n\t\t// TypeBox's Value.Check avoids eval, so we can still validate safely here.\n\t\ttry {\n\t\t\tif (Value.Check(tool.parameters, args)) {\n\t\t\t\treturn args;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"TypeBox validation failed in CSP-safe mode\", {\n\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t),\n\t\t\t\ttool: tool.name,\n\t\t\t});\n\t\t}\n\t\tlogger.warn(\"Tool arguments failed validation in CSP-safe mode\", {\n\t\t\ttool: tool.name,\n\t\t});\n\t\treturn {};\n\t}\n\n\t// Compile (or reuse) the schema\n\tlet validate = validatorCache.get(tool.parameters);\n\tif (!validate) {\n\t\tvalidate = ajv.compile(tool.parameters as AnySchema);\n\t\tvalidatorCache.set(tool.parameters, validate);\n\t}\n\n\t// Validate the arguments\n\tif (validate(toolCall.arguments)) {\n\t\treturn isRecord(toolCall.arguments) ? toolCall.arguments : {};\n\t}\n\n\t// Format validation errors nicely\n\tconst errors =\n\t\t(validate.errors ?? [])\n\t\t\t.map((err: ErrorObject) => {\n\t\t\t\tconst path =\n\t\t\t\t\terr.instancePath && err.instancePath.length > 1\n\t\t\t\t\t\t? err.instancePath.substring(1)\n\t\t\t\t\t\t: (err.params as { missingProperty?: string }).missingProperty ||\n\t\t\t\t\t\t\t\"root\";\n\t\t\t\treturn ` - ${path}: ${err.message ?? \"invalid value\"}`;\n\t\t\t})\n\t\t\t.join(\"\\n\") || \"Unknown validation error\";\n\n\tconst sanitizedArgs = sanitizePayload(toolCall.arguments, {\n\t\tredactSecrets: true,\n\t\tvaultCredentials: false,\n\t});\n\tconst argsJson = JSON.stringify(sanitizedArgs, null, 2) ?? \"{}\";\n\tconst trimmedArgsJson =\n\t\targsJson.length > 2000\n\t\t\t? `${argsJson.slice(0, 2000)}\\n... (truncated ${argsJson.length - 2000} chars)`\n\t\t\t: argsJson;\n\n\tconst errorMessage = `Validation failed for tool \"${toolCall.name}\":\\n${errors}\\n\\nReceived arguments (sanitized):\\n${trimmedArgsJson}`;\n\n\tthrow new Error(errorMessage);\n}\n"]}
|
|
@@ -18490,6 +18490,28 @@ function resolveHomePath(value, raw) {
|
|
|
18490
18490
|
const expanded = value === "~" ? home : value.startsWith("~/") || value.startsWith("~\\") ? join4(home, value.slice(2)) : value;
|
|
18491
18491
|
return resolve3(expanded);
|
|
18492
18492
|
}
|
|
18493
|
+
function homeFromEnv(raw) {
|
|
18494
|
+
return trim(raw.HOME) ?? trim(raw.USERPROFILE) ?? homedir2();
|
|
18495
|
+
}
|
|
18496
|
+
function resolveDataLocalDir(raw) {
|
|
18497
|
+
const home = homeFromEnv(raw);
|
|
18498
|
+
if (process.platform === "darwin") {
|
|
18499
|
+
return join4(home, "Library", "Application Support");
|
|
18500
|
+
}
|
|
18501
|
+
if (process.platform === "win32") {
|
|
18502
|
+
return resolveHomePath(trim(raw.LOCALAPPDATA), raw) ?? resolveHomePath(trim(raw.APPDATA), raw) ?? join4(home, "AppData", "Local");
|
|
18503
|
+
}
|
|
18504
|
+
return resolveHomePath(trim(raw.XDG_DATA_HOME), raw) ?? join4(home, ".local", "share");
|
|
18505
|
+
}
|
|
18506
|
+
function resolveRuntimeDir(raw) {
|
|
18507
|
+
if (process.platform === "darwin") {
|
|
18508
|
+
return resolveDataLocalDir(raw);
|
|
18509
|
+
}
|
|
18510
|
+
const xdgRuntimeDir = resolveHomePath(trim(raw.XDG_RUNTIME_DIR), raw);
|
|
18511
|
+
if (xdgRuntimeDir)
|
|
18512
|
+
return xdgRuntimeDir;
|
|
18513
|
+
return resolveDataLocalDir(raw);
|
|
18514
|
+
}
|
|
18493
18515
|
function createRuntimeEnv(raw) {
|
|
18494
18516
|
return Object.freeze({
|
|
18495
18517
|
logLevel: parseLogLevel(trim(raw.MAESTRO_LOG_LEVEL)),
|
|
@@ -18500,6 +18522,9 @@ function createRuntimeEnv(raw) {
|
|
|
18500
18522
|
disableKeychain: parseBoolean(trim(raw.MAESTRO_DISABLE_KEYCHAIN)),
|
|
18501
18523
|
maestroHome: trim(raw.MAESTRO_HOME) ?? join4(homedir2(), ".maestro"),
|
|
18502
18524
|
maestroAgentDir: trim(raw.MAESTRO_AGENT_DIR),
|
|
18525
|
+
missionStoreDir: resolveHomePath(trim(raw.MAESTRO_MISSION_STORE_DIR), raw),
|
|
18526
|
+
snapshotBlobDir: resolveHomePath(trim(raw.MAESTRO_SNAPSHOT_BLOB_DIR), raw),
|
|
18527
|
+
skillTrustStrict: parseBoolean(trim(raw.MAESTRO_SKILL_TRUST_STRICT)),
|
|
18503
18528
|
telemetryEnabled: parseOptionalBoolean(trim(raw.MAESTRO_TELEMETRY) ?? trim(raw.PLAYWRIGHT_TELEMETRY)),
|
|
18504
18529
|
telemetryFlag: trim(raw.MAESTRO_TELEMETRY) ?? trim(raw.PLAYWRIGHT_TELEMETRY),
|
|
18505
18530
|
beaconFile: resolveHomePath(trim(raw.MAESTRO_BEACON_FILE), raw),
|
|
@@ -18523,10 +18548,31 @@ function createRuntimeEnv(raw) {
|
|
|
18523
18548
|
]),
|
|
18524
18549
|
meterBaseUrl: firstNonEmpty(raw, METER_BASE_URL_VARS),
|
|
18525
18550
|
meterAccessToken: firstNonEmpty(raw, METER_ACCESS_TOKEN_VARS),
|
|
18526
|
-
meterOrganizationId: firstNonEmpty(raw, METER_ORG_ID_VARS)
|
|
18551
|
+
meterOrganizationId: firstNonEmpty(raw, METER_ORG_ID_VARS),
|
|
18552
|
+
ambientLearnerFile: resolveHomePath(trim(raw.MAESTRO_AMBIENT_LEARNER_FILE), raw),
|
|
18553
|
+
ambientLearnerDefaultFile: join4(resolveDataLocalDir(raw), "ambient-agent", "learner.json"),
|
|
18554
|
+
ambientSocketFile: join4(resolveRuntimeDir(raw), "ambient-agent.sock")
|
|
18527
18555
|
});
|
|
18528
18556
|
}
|
|
18557
|
+
function isTestProcess() {
|
|
18558
|
+
return process.env.NODE_ENV === "test" || process.env.VITEST === "true";
|
|
18559
|
+
}
|
|
18560
|
+
function maybeReportEarlyRuntimeEnvAccess() {
|
|
18561
|
+
if (processWithRuntimeEnvCache.__MAESTRO_RUNTIME_ENV_FINALIZED__) {
|
|
18562
|
+
return;
|
|
18563
|
+
}
|
|
18564
|
+
const message = "defaultRuntimeEnv() was read before loadAndFinalizeEnv() completed. Bootstrap entry points must finish dotenv loading and security scrubbing before runtime env snapshots are created.";
|
|
18565
|
+
if (process.env.MAESTRO_RUNTIME_ENV_STRICT_BOOTSTRAP === "1") {
|
|
18566
|
+
throw new Error(message);
|
|
18567
|
+
}
|
|
18568
|
+
if (isTestProcess() || processWithRuntimeEnvCache.__MAESTRO_RUNTIME_ENV_EARLY_ACCESS_WARNED__) {
|
|
18569
|
+
return;
|
|
18570
|
+
}
|
|
18571
|
+
processWithRuntimeEnvCache.__MAESTRO_RUNTIME_ENV_EARLY_ACCESS_WARNED__ = true;
|
|
18572
|
+
console.warn(`[maestro] ${message}`);
|
|
18573
|
+
}
|
|
18529
18574
|
function defaultRuntimeEnv() {
|
|
18575
|
+
maybeReportEarlyRuntimeEnvAccess();
|
|
18530
18576
|
if (!processWithRuntimeEnvCache.__MAESTRO_DEFAULT_RUNTIME_ENV__) {
|
|
18531
18577
|
processWithRuntimeEnvCache.__MAESTRO_DEFAULT_RUNTIME_ENV__ = createRuntimeEnv(process.env);
|
|
18532
18578
|
}
|
|
@@ -18734,6 +18780,43 @@ var init_logger = __esm({
|
|
|
18734
18780
|
}
|
|
18735
18781
|
});
|
|
18736
18782
|
|
|
18783
|
+
// dist/utils/json.js
|
|
18784
|
+
function safeJsonParse(input, context) {
|
|
18785
|
+
try {
|
|
18786
|
+
const data = JSON.parse(input);
|
|
18787
|
+
return { success: true, data };
|
|
18788
|
+
} catch (error) {
|
|
18789
|
+
const message = context ? `Failed to parse JSON in ${context}` : "Failed to parse JSON";
|
|
18790
|
+
const parseError = new JsonParseError(
|
|
18791
|
+
message,
|
|
18792
|
+
input.slice(0, 200),
|
|
18793
|
+
// Limit stored input
|
|
18794
|
+
error instanceof Error ? error : void 0
|
|
18795
|
+
);
|
|
18796
|
+
logger2.debug(message, { inputLength: input.length, error });
|
|
18797
|
+
return { success: false, error: parseError };
|
|
18798
|
+
}
|
|
18799
|
+
}
|
|
18800
|
+
function isRecord(value) {
|
|
18801
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
18802
|
+
}
|
|
18803
|
+
var logger2, JsonParseError;
|
|
18804
|
+
var init_json = __esm({
|
|
18805
|
+
"dist/utils/json.js"() {
|
|
18806
|
+
"use strict";
|
|
18807
|
+
init_logger();
|
|
18808
|
+
logger2 = createLogger("json-utils");
|
|
18809
|
+
JsonParseError = class extends Error {
|
|
18810
|
+
constructor(message, input, cause) {
|
|
18811
|
+
super(message);
|
|
18812
|
+
this.input = input;
|
|
18813
|
+
this.cause = cause;
|
|
18814
|
+
this.name = "JsonParseError";
|
|
18815
|
+
}
|
|
18816
|
+
};
|
|
18817
|
+
}
|
|
18818
|
+
});
|
|
18819
|
+
|
|
18737
18820
|
// dist/safety/credential-patterns.js
|
|
18738
18821
|
import { createHash, randomBytes } from "node:crypto";
|
|
18739
18822
|
function createGlobalPatternRegex(def) {
|
|
@@ -19236,40 +19319,6 @@ var init_feature_flags = __esm({
|
|
|
19236
19319
|
}
|
|
19237
19320
|
});
|
|
19238
19321
|
|
|
19239
|
-
// dist/utils/json.js
|
|
19240
|
-
function safeJsonParse(input, context) {
|
|
19241
|
-
try {
|
|
19242
|
-
const data = JSON.parse(input);
|
|
19243
|
-
return { success: true, data };
|
|
19244
|
-
} catch (error) {
|
|
19245
|
-
const message = context ? `Failed to parse JSON in ${context}` : "Failed to parse JSON";
|
|
19246
|
-
const parseError = new JsonParseError(
|
|
19247
|
-
message,
|
|
19248
|
-
input.slice(0, 200),
|
|
19249
|
-
// Limit stored input
|
|
19250
|
-
error instanceof Error ? error : void 0
|
|
19251
|
-
);
|
|
19252
|
-
logger2.debug(message, { inputLength: input.length, error });
|
|
19253
|
-
return { success: false, error: parseError };
|
|
19254
|
-
}
|
|
19255
|
-
}
|
|
19256
|
-
var logger2, JsonParseError;
|
|
19257
|
-
var init_json = __esm({
|
|
19258
|
-
"dist/utils/json.js"() {
|
|
19259
|
-
"use strict";
|
|
19260
|
-
init_logger();
|
|
19261
|
-
logger2 = createLogger("json-utils");
|
|
19262
|
-
JsonParseError = class extends Error {
|
|
19263
|
-
constructor(message, input, cause) {
|
|
19264
|
-
super(message);
|
|
19265
|
-
this.input = input;
|
|
19266
|
-
this.cause = cause;
|
|
19267
|
-
this.name = "JsonParseError";
|
|
19268
|
-
}
|
|
19269
|
-
};
|
|
19270
|
-
}
|
|
19271
|
-
});
|
|
19272
|
-
|
|
19273
19322
|
// dist/utils/fs.js
|
|
19274
19323
|
import { randomBytes as randomBytes2 } from "node:crypto";
|
|
19275
19324
|
import { constants, closeSync, existsSync, fsyncSync, mkdirSync, openSync, readFileSync as readFileSync3, renameSync, statSync as statSync3, unlinkSync, writeFileSync } from "node:fs";
|
|
@@ -19321,7 +19370,16 @@ function readJsonFile(path, options = {}) {
|
|
|
19321
19370
|
error: result.error.message
|
|
19322
19371
|
});
|
|
19323
19372
|
if (rotateOnParseFail) {
|
|
19324
|
-
rotateCorruptJsonFile(path);
|
|
19373
|
+
const rotatedPath = rotateCorruptJsonFile(path, content);
|
|
19374
|
+
if (!rotatedPath) {
|
|
19375
|
+
const repairedContent = readTextFile(path, { fallback: "" });
|
|
19376
|
+
if (repairedContent !== "" && repairedContent !== content) {
|
|
19377
|
+
const repaired = safeJsonParse(repairedContent, path);
|
|
19378
|
+
if (repaired.success) {
|
|
19379
|
+
return repaired.data;
|
|
19380
|
+
}
|
|
19381
|
+
}
|
|
19382
|
+
}
|
|
19325
19383
|
}
|
|
19326
19384
|
return fallback;
|
|
19327
19385
|
}
|
|
@@ -19336,9 +19394,26 @@ function readJsonFile(path, options = {}) {
|
|
|
19336
19394
|
throw error;
|
|
19337
19395
|
}
|
|
19338
19396
|
}
|
|
19339
|
-
function rotateCorruptJsonFile(path) {
|
|
19397
|
+
function rotateCorruptJsonFile(path, expectedContent) {
|
|
19340
19398
|
if (!fileExists(path))
|
|
19341
19399
|
return null;
|
|
19400
|
+
if (expectedContent !== void 0) {
|
|
19401
|
+
try {
|
|
19402
|
+
const currentContent = readFileSync3(path, "utf8");
|
|
19403
|
+
if (currentContent !== expectedContent) {
|
|
19404
|
+
logger3.warn("Skipped corrupt JSON rotation; file changed after read", {
|
|
19405
|
+
path
|
|
19406
|
+
});
|
|
19407
|
+
return null;
|
|
19408
|
+
}
|
|
19409
|
+
} catch (error) {
|
|
19410
|
+
logger3.warn("Failed to re-read corrupt JSON before rotation", {
|
|
19411
|
+
path,
|
|
19412
|
+
error: error instanceof Error ? error.message : String(error)
|
|
19413
|
+
});
|
|
19414
|
+
return null;
|
|
19415
|
+
}
|
|
19416
|
+
}
|
|
19342
19417
|
const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
19343
19418
|
const nonce = randomBytes2(4).toString("hex");
|
|
19344
19419
|
const rotatedPath = `${path}.corrupt.${timestamp}.${nonce}`;
|
|
@@ -20239,7 +20314,10 @@ function defaultCorrelation(env, managedContext) {
|
|
|
20239
20314
|
remote_runner_session_id: readEnv(env, [
|
|
20240
20315
|
"MAESTRO_REMOTE_RUNNER_SESSION_ID"
|
|
20241
20316
|
]),
|
|
20242
|
-
objective_id: readEnv(env, [
|
|
20317
|
+
objective_id: readEnv(env, [
|
|
20318
|
+
"MAESTRO_OBJECTIVE_ID",
|
|
20319
|
+
"MAESTRO_EVALOPS_OBJECTIVE_ID"
|
|
20320
|
+
]),
|
|
20243
20321
|
conversation_id: readEnv(env, ["MAESTRO_CONVERSATION_ID"]),
|
|
20244
20322
|
attributes: readStringRecord(env, "MAESTRO_EVENT_BUS_ATTR_")
|
|
20245
20323
|
};
|
|
@@ -20505,28 +20583,34 @@ function contextFromMetadata(metadata, extra) {
|
|
|
20505
20583
|
Object.assign(context, extra);
|
|
20506
20584
|
return Object.keys(context).length > 0 ? context : void 0;
|
|
20507
20585
|
}
|
|
20586
|
+
function normalizeOptionalString(value) {
|
|
20587
|
+
if (typeof value !== "string")
|
|
20588
|
+
return void 0;
|
|
20589
|
+
const trimmed = value.trim();
|
|
20590
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
20591
|
+
}
|
|
20508
20592
|
function correlationFromMetadata(metadata) {
|
|
20509
20593
|
if (!metadata || typeof metadata !== "object" || Array.isArray(metadata)) {
|
|
20510
20594
|
return void 0;
|
|
20511
20595
|
}
|
|
20512
20596
|
const record = metadata;
|
|
20513
20597
|
return {
|
|
20514
|
-
session_id:
|
|
20515
|
-
workspace_id:
|
|
20516
|
-
agent_run_id:
|
|
20517
|
-
agent_run_step_id:
|
|
20518
|
-
organization_id:
|
|
20519
|
-
user_id:
|
|
20520
|
-
agent_id:
|
|
20521
|
-
actor_id:
|
|
20522
|
-
principal_id:
|
|
20523
|
-
trace_id:
|
|
20524
|
-
traceparent:
|
|
20525
|
-
tracestate:
|
|
20526
|
-
request_id:
|
|
20527
|
-
remote_runner_session_id:
|
|
20528
|
-
objective_id:
|
|
20529
|
-
conversation_id:
|
|
20598
|
+
session_id: normalizeOptionalString(record.sessionId) ?? normalizeOptionalString(record.session_id),
|
|
20599
|
+
workspace_id: normalizeOptionalString(record.workspaceId) ?? normalizeOptionalString(record.workspace_id),
|
|
20600
|
+
agent_run_id: normalizeOptionalString(record.agentRunId) ?? normalizeOptionalString(record.agent_run_id),
|
|
20601
|
+
agent_run_step_id: normalizeOptionalString(record.toolCallId) ?? normalizeOptionalString(record.tool_call_id),
|
|
20602
|
+
organization_id: normalizeOptionalString(record.organizationId) ?? normalizeOptionalString(record.organization_id),
|
|
20603
|
+
user_id: normalizeOptionalString(record.userId) ?? normalizeOptionalString(record.user_id),
|
|
20604
|
+
agent_id: normalizeOptionalString(record.agentId) ?? normalizeOptionalString(record.agent_id),
|
|
20605
|
+
actor_id: normalizeOptionalString(record.actorId) ?? normalizeOptionalString(record.actor_id),
|
|
20606
|
+
principal_id: normalizeOptionalString(record.principalId) ?? normalizeOptionalString(record.principal_id),
|
|
20607
|
+
trace_id: normalizeOptionalString(record.traceId) ?? normalizeOptionalString(record.trace_id),
|
|
20608
|
+
traceparent: normalizeOptionalString(record.traceparent) ?? normalizeOptionalString(record.trace_parent),
|
|
20609
|
+
tracestate: normalizeOptionalString(record.tracestate) ?? normalizeOptionalString(record.trace_state),
|
|
20610
|
+
request_id: normalizeOptionalString(record.requestId) ?? normalizeOptionalString(record.request_id),
|
|
20611
|
+
remote_runner_session_id: normalizeOptionalString(record.remoteRunnerSessionId) ?? normalizeOptionalString(record.remote_runner_session_id),
|
|
20612
|
+
objective_id: normalizeOptionalString(record.objectiveId) ?? normalizeOptionalString(record.objective_id),
|
|
20613
|
+
conversation_id: normalizeOptionalString(record.conversationId) ?? normalizeOptionalString(record.conversation_id)
|
|
20530
20614
|
};
|
|
20531
20615
|
}
|
|
20532
20616
|
function stringMetadata(metadata, name) {
|
|
@@ -21124,9 +21208,6 @@ function resolveBundledCodexBinPath() {
|
|
|
21124
21208
|
return null;
|
|
21125
21209
|
}
|
|
21126
21210
|
}
|
|
21127
|
-
function isRecord(value) {
|
|
21128
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
21129
|
-
}
|
|
21130
21211
|
function defaultServerRequestResponse(method) {
|
|
21131
21212
|
switch (method) {
|
|
21132
21213
|
case "item/commandExecution/requestApproval":
|
|
@@ -21162,6 +21243,7 @@ var init_app_server_client = __esm({
|
|
|
21162
21243
|
"dist/codex/app-server-client.js"() {
|
|
21163
21244
|
"use strict";
|
|
21164
21245
|
init_package_version();
|
|
21246
|
+
init_json();
|
|
21165
21247
|
DEFAULT_REQUEST_TIMEOUT_MS = 3e4;
|
|
21166
21248
|
DEFAULT_LOGIN_TIMEOUT_MS = 5 * 6e4;
|
|
21167
21249
|
MAX_NOTIFICATION_HISTORY = 100;
|
|
@@ -23092,9 +23174,6 @@ var init_service_client = __esm({
|
|
|
23092
23174
|
function isConnectorOAuthProvider(provider) {
|
|
23093
23175
|
return Object.prototype.hasOwnProperty.call(CONNECTOR_PROVIDER_BY_OAUTH_PROVIDER, provider);
|
|
23094
23176
|
}
|
|
23095
|
-
function isRecord2(value) {
|
|
23096
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
23097
|
-
}
|
|
23098
23177
|
function getMetadataString(metadata, key) {
|
|
23099
23178
|
const value = metadata?.[key];
|
|
23100
23179
|
return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
|
|
@@ -23109,7 +23188,7 @@ function getMetadataStringArray(metadata, key) {
|
|
|
23109
23188
|
}
|
|
23110
23189
|
function getMetadataStringMap(metadata, key) {
|
|
23111
23190
|
const value = metadata?.[key];
|
|
23112
|
-
if (!
|
|
23191
|
+
if (!isRecord(value)) {
|
|
23113
23192
|
return void 0;
|
|
23114
23193
|
}
|
|
23115
23194
|
const entries = Object.entries(value).map(([entryKey, entryValue]) => [
|
|
@@ -23220,6 +23299,7 @@ var init_connectors = __esm({
|
|
|
23220
23299
|
"dist/oauth/connectors.js"() {
|
|
23221
23300
|
"use strict";
|
|
23222
23301
|
init_service_client();
|
|
23302
|
+
init_json();
|
|
23223
23303
|
init_storage();
|
|
23224
23304
|
CONNECTOR_PROVIDER_BY_OAUTH_PROVIDER = {
|
|
23225
23305
|
"github-copilot": "github",
|
|
@@ -23598,9 +23678,6 @@ function parseScopesPayload(value) {
|
|
|
23598
23678
|
}
|
|
23599
23679
|
return value.filter((entry2) => typeof entry2 === "string").map((entry2) => entry2.trim()).filter((entry2) => entry2.length > 0);
|
|
23600
23680
|
}
|
|
23601
|
-
function isRecord3(value) {
|
|
23602
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
23603
|
-
}
|
|
23604
23681
|
function getMetadataString2(metadata, key) {
|
|
23605
23682
|
const value = metadata?.[key];
|
|
23606
23683
|
return typeof value === "string" && value.trim().length > 0 ? value : void 0;
|
|
@@ -23614,7 +23691,7 @@ function getMetadataScopes(metadata) {
|
|
|
23614
23691
|
}
|
|
23615
23692
|
function resolveProviderRef(metadata) {
|
|
23616
23693
|
const fallback = getProviderRef();
|
|
23617
|
-
const providerRef =
|
|
23694
|
+
const providerRef = isRecord(metadata?.providerRef) ? metadata.providerRef : void 0;
|
|
23618
23695
|
return {
|
|
23619
23696
|
provider: getMetadataString2(providerRef, "provider") ?? fallback.provider,
|
|
23620
23697
|
environment: getMetadataString2(providerRef, "environment") ?? fallback.environment,
|
|
@@ -23981,6 +24058,7 @@ var init_evalops = __esm({
|
|
|
23981
24058
|
init_env_aliases();
|
|
23982
24059
|
init_core_services();
|
|
23983
24060
|
init_downstream_http();
|
|
24061
|
+
init_json();
|
|
23984
24062
|
init_logger();
|
|
23985
24063
|
init_loopback_http();
|
|
23986
24064
|
init_device_identity();
|
|
@@ -26297,28 +26375,58 @@ __export(telemetry_exports, {
|
|
|
26297
26375
|
import { appendFile as appendFile2, mkdir as mkdir2 } from "node:fs/promises";
|
|
26298
26376
|
import { dirname as dirname6 } from "node:path";
|
|
26299
26377
|
import { SpanStatusCode } from "@opentelemetry/api";
|
|
26378
|
+
function createExporterRuntimeConfig(env) {
|
|
26379
|
+
const file = env.exporterFile;
|
|
26380
|
+
const endpoint = env.exporterEndpoint;
|
|
26381
|
+
const initialEnabled = shouldEnableTelemetryForEnv(env, file, endpoint);
|
|
26382
|
+
return {
|
|
26383
|
+
endpoint,
|
|
26384
|
+
env,
|
|
26385
|
+
file,
|
|
26386
|
+
flag: env.telemetryFlag,
|
|
26387
|
+
initialEnabled,
|
|
26388
|
+
// `RuntimeEnv.telemetrySampleRate` is already parsed and clamped to
|
|
26389
|
+
// `[0, 1]`; `null` means no signal, treated as full-sampling.
|
|
26390
|
+
sampleRate: env.telemetrySampleRate ?? 1
|
|
26391
|
+
};
|
|
26392
|
+
}
|
|
26393
|
+
function getExporterRuntimeConfig() {
|
|
26394
|
+
const env = defaultRuntimeEnv();
|
|
26395
|
+
if (!exporterRuntimeConfig || exporterRuntimeConfig.env !== env) {
|
|
26396
|
+
exporterRuntimeConfig = createExporterRuntimeConfig(env);
|
|
26397
|
+
}
|
|
26398
|
+
return exporterRuntimeConfig;
|
|
26399
|
+
}
|
|
26400
|
+
function shouldEnableTelemetryForEnv(env, file, endpoint) {
|
|
26401
|
+
if (env.telemetryEnabled === false)
|
|
26402
|
+
return false;
|
|
26403
|
+
if (env.telemetryEnabled === true)
|
|
26404
|
+
return true;
|
|
26405
|
+
return Boolean(endpoint || file || hasRemoteMeterDestination());
|
|
26406
|
+
}
|
|
26300
26407
|
function getTelemetryStatus() {
|
|
26408
|
+
const config = getExporterRuntimeConfig();
|
|
26301
26409
|
let reason = "disabled";
|
|
26302
|
-
const baseEnabled =
|
|
26303
|
-
if (!shouldEnableTelemetry()) {
|
|
26410
|
+
const baseEnabled = config.initialEnabled && config.sampleRate > 0;
|
|
26411
|
+
if (!shouldEnableTelemetry(config)) {
|
|
26304
26412
|
reason = "flag disabled";
|
|
26305
|
-
} else if (
|
|
26413
|
+
} else if (config.sampleRate === 0) {
|
|
26306
26414
|
reason = "sampling=0";
|
|
26307
|
-
} else if (
|
|
26415
|
+
} else if (config.endpoint) {
|
|
26308
26416
|
reason = "endpoint";
|
|
26309
26417
|
} else if (hasRemoteMeterDestination()) {
|
|
26310
26418
|
reason = "meter";
|
|
26311
|
-
} else if (
|
|
26419
|
+
} else if (config.file || baseEnabled) {
|
|
26312
26420
|
reason = "file";
|
|
26313
26421
|
}
|
|
26314
26422
|
const runtimeOverride = telemetryOverride === null ? void 0 : telemetryOverride ? "enabled" : "disabled";
|
|
26315
26423
|
return {
|
|
26316
|
-
enabled:
|
|
26424
|
+
enabled: (telemetryOverride === null ? config.initialEnabled : telemetryOverride) && config.sampleRate > 0,
|
|
26317
26425
|
reason,
|
|
26318
|
-
endpoint:
|
|
26319
|
-
filePath:
|
|
26320
|
-
sampleRate:
|
|
26321
|
-
flagValue:
|
|
26426
|
+
endpoint: config.endpoint ?? void 0,
|
|
26427
|
+
filePath: config.file ?? defaultTelemetryFile,
|
|
26428
|
+
sampleRate: config.sampleRate,
|
|
26429
|
+
flagValue: config.flag ?? void 0,
|
|
26322
26430
|
runtimeOverride,
|
|
26323
26431
|
overrideReason: telemetryOverrideReason
|
|
26324
26432
|
};
|
|
@@ -26326,7 +26434,6 @@ function getTelemetryStatus() {
|
|
|
26326
26434
|
function setTelemetryRuntimeOverride(enabled, reason) {
|
|
26327
26435
|
telemetryOverride = enabled;
|
|
26328
26436
|
telemetryOverrideReason = reason;
|
|
26329
|
-
telemetryEnabled = enabled === null ? initialTelemetryEnabled : enabled;
|
|
26330
26437
|
}
|
|
26331
26438
|
function normalizeTelemetryEventMetadata(event) {
|
|
26332
26439
|
if (!("metadata" in event) && !("sensitiveMetadata" in event)) {
|
|
@@ -26354,7 +26461,7 @@ function isCanonicalTurnTelemetryEvent(event) {
|
|
|
26354
26461
|
return event.type === "canonical-turn" && "model" in event && "tokens" in event;
|
|
26355
26462
|
}
|
|
26356
26463
|
async function writeToFile(payload) {
|
|
26357
|
-
const filePath =
|
|
26464
|
+
const filePath = getExporterRuntimeConfig().file || defaultTelemetryFile;
|
|
26358
26465
|
await mkdir2(dirname6(filePath), { recursive: true });
|
|
26359
26466
|
await appendFile2(filePath, `${payload}
|
|
26360
26467
|
`, "utf-8");
|
|
@@ -26365,7 +26472,7 @@ async function appendToolFailure(payload) {
|
|
|
26365
26472
|
`, "utf-8");
|
|
26366
26473
|
}
|
|
26367
26474
|
async function postToEndpoint(payload) {
|
|
26368
|
-
const endpoint =
|
|
26475
|
+
const endpoint = getExporterRuntimeConfig().endpoint;
|
|
26369
26476
|
if (!endpoint) {
|
|
26370
26477
|
return;
|
|
26371
26478
|
}
|
|
@@ -26673,17 +26780,18 @@ function maestroCorrelationSpanAttributes(event) {
|
|
|
26673
26780
|
return Object.fromEntries(Object.entries(attributes).filter((entry2) => typeof entry2[1] === "string" && entry2[1].trim().length > 0 && entry2[1] !== "unknown"));
|
|
26674
26781
|
}
|
|
26675
26782
|
async function persistTelemetry(event) {
|
|
26783
|
+
const config = getExporterRuntimeConfig();
|
|
26676
26784
|
const payload = JSON.stringify(event);
|
|
26677
26785
|
const tasks = [];
|
|
26678
26786
|
if (isCanonicalTurnTelemetryEvent(event)) {
|
|
26679
26787
|
tasks.push(mirrorCanonicalTurnEventToMeter(event).then(() => void 0));
|
|
26680
26788
|
}
|
|
26681
|
-
if (
|
|
26789
|
+
if (config.endpoint) {
|
|
26682
26790
|
tasks.push(postToEndpoint(payload));
|
|
26683
26791
|
}
|
|
26684
|
-
if (
|
|
26792
|
+
if (config.file) {
|
|
26685
26793
|
tasks.push(writeToFile(payload));
|
|
26686
|
-
} else if (
|
|
26794
|
+
} else if (config.endpoint === null && !hasRemoteMeterDestination(config.env)) {
|
|
26687
26795
|
tasks.push(writeToFile(payload));
|
|
26688
26796
|
}
|
|
26689
26797
|
await Promise.all(tasks);
|
|
@@ -26711,6 +26819,7 @@ async function recordTelemetry(event) {
|
|
|
26711
26819
|
if (isInternalTelemetryDisabled()) {
|
|
26712
26820
|
return;
|
|
26713
26821
|
}
|
|
26822
|
+
const config = getExporterRuntimeConfig();
|
|
26714
26823
|
const normalizedEvent = normalizeTelemetryEventMetadata(event);
|
|
26715
26824
|
const openTelemetryEnabled = isOpenTelemetryEnabled();
|
|
26716
26825
|
if (openTelemetryEnabled) {
|
|
@@ -26718,12 +26827,12 @@ async function recordTelemetry(event) {
|
|
|
26718
26827
|
recordOpenTelemetryMetric(normalizedEvent);
|
|
26719
26828
|
}
|
|
26720
26829
|
const eventBusTask = mirrorTelemetryToMaestroEventBus(normalizedEvent);
|
|
26721
|
-
const legacyEnabled =
|
|
26830
|
+
const legacyEnabled = (telemetryOverride === null ? config.initialEnabled : telemetryOverride) && config.sampleRate > 0;
|
|
26722
26831
|
if (!legacyEnabled) {
|
|
26723
26832
|
await eventBusTask;
|
|
26724
26833
|
return;
|
|
26725
26834
|
}
|
|
26726
|
-
if (
|
|
26835
|
+
if (config.sampleRate < 1 && Math.random() > config.sampleRate) {
|
|
26727
26836
|
await eventBusTask;
|
|
26728
26837
|
return;
|
|
26729
26838
|
}
|
|
@@ -26977,7 +27086,7 @@ function recordSandboxViolation(event, tool, action, reason, options) {
|
|
|
26977
27086
|
metadata: options?.metadata ? { ...options.metadata, sessionId: options.sessionId } : options?.sessionId ? { sessionId: options.sessionId } : void 0
|
|
26978
27087
|
});
|
|
26979
27088
|
}
|
|
26980
|
-
var
|
|
27089
|
+
var exporterRuntimeConfig, shouldEnableTelemetry, telemetryOverride, telemetryOverrideReason, A2A_PHASE_EVENT_TYPES, defaultTelemetryFile, toolFailureLogFile, BACKGROUND_TASK_HISTORY_LIMIT, backgroundTaskHistory;
|
|
26981
27090
|
var init_telemetry = __esm({
|
|
26982
27091
|
"dist/telemetry.js"() {
|
|
26983
27092
|
"use strict";
|
|
@@ -26993,20 +27102,8 @@ var init_telemetry = __esm({
|
|
|
26993
27102
|
init_wide_events();
|
|
26994
27103
|
init_secret_redactor();
|
|
26995
27104
|
init_metadata_normalization();
|
|
26996
|
-
|
|
26997
|
-
|
|
26998
|
-
telemetryEndpointEnv = exporterRuntimeEnv.exporterEndpoint;
|
|
26999
|
-
telemetryFlag = exporterRuntimeEnv.telemetryFlag;
|
|
27000
|
-
telemetrySampleRate = exporterRuntimeEnv.telemetrySampleRate;
|
|
27001
|
-
shouldEnableTelemetry = () => {
|
|
27002
|
-
if (exporterRuntimeEnv.telemetryEnabled === false)
|
|
27003
|
-
return false;
|
|
27004
|
-
if (exporterRuntimeEnv.telemetryEnabled === true)
|
|
27005
|
-
return true;
|
|
27006
|
-
return Boolean(telemetryEndpointEnv || telemetryFileEnv || hasRemoteMeterDestination());
|
|
27007
|
-
};
|
|
27008
|
-
initialTelemetryEnabled = shouldEnableTelemetry();
|
|
27009
|
-
telemetryEnabled = initialTelemetryEnabled;
|
|
27105
|
+
exporterRuntimeConfig = null;
|
|
27106
|
+
shouldEnableTelemetry = (config = getExporterRuntimeConfig()) => shouldEnableTelemetryForEnv(config.env, config.file, config.endpoint);
|
|
27010
27107
|
telemetryOverride = null;
|
|
27011
27108
|
A2A_PHASE_EVENT_TYPES = {
|
|
27012
27109
|
peer_selected: MaestroBusEventType.A2APeerSelected,
|
|
@@ -27018,7 +27115,6 @@ var init_telemetry = __esm({
|
|
|
27018
27115
|
push_received: MaestroBusEventType.A2APushReceived,
|
|
27019
27116
|
evidence_completed: MaestroBusEventType.A2AEvidenceCompleted
|
|
27020
27117
|
};
|
|
27021
|
-
samplingRate = telemetrySampleRate ?? 1;
|
|
27022
27118
|
defaultTelemetryFile = PATHS.TELEMETRY_LOG;
|
|
27023
27119
|
toolFailureLogFile = PATHS.TOOL_FAILURE_LOG;
|
|
27024
27120
|
BACKGROUND_TASK_HISTORY_LIMIT = 50;
|
|
@@ -27110,6 +27206,9 @@ ${errMsg}`);
|
|
|
27110
27206
|
return result;
|
|
27111
27207
|
}
|
|
27112
27208
|
|
|
27209
|
+
// dist/models/config-loader.js
|
|
27210
|
+
init_json();
|
|
27211
|
+
|
|
27113
27212
|
// dist/utils/jsonc-umd.js
|
|
27114
27213
|
import { parse as parseJsonc, printParseErrorCode } from "jsonc-parser";
|
|
27115
27214
|
|
|
@@ -27666,9 +27765,6 @@ var configSchema = Type2.Object({
|
|
|
27666
27765
|
var configValidator = compileTypeboxSchema(configSchema);
|
|
27667
27766
|
var TRUST_PROJECT_MODEL_CONFIG_ENV = "MAESTRO_TRUST_PROJECT_MODEL_CONFIG";
|
|
27668
27767
|
var TRUE_ENV_VALUES = /* @__PURE__ */ new Set(["1", "true", "yes", "on"]);
|
|
27669
|
-
function isRecord4(value) {
|
|
27670
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
27671
|
-
}
|
|
27672
27768
|
function isProjectModelConfigTrusted() {
|
|
27673
27769
|
const value = process.env[TRUST_PROJECT_MODEL_CONFIG_ENV];
|
|
27674
27770
|
return value !== void 0 && TRUE_ENV_VALUES.has(value.toLowerCase());
|
|
@@ -27937,7 +28033,7 @@ function loadUntrustedProjectConfigFile(path) {
|
|
|
27937
28033
|
}
|
|
27938
28034
|
function sanitizeUntrustedProjectConfig(config, path) {
|
|
27939
28035
|
const providers = [];
|
|
27940
|
-
if (!
|
|
28036
|
+
if (!isRecord(config)) {
|
|
27941
28037
|
logger19.warn("Ignoring invalid untrusted project model config", {
|
|
27942
28038
|
path,
|
|
27943
28039
|
trustEnv: TRUST_PROJECT_MODEL_CONFIG_ENV
|
|
@@ -28706,7 +28802,7 @@ function parseStreamingJson(partialJson) {
|
|
|
28706
28802
|
}
|
|
28707
28803
|
|
|
28708
28804
|
// dist/agent/providers/tool-arguments.js
|
|
28709
|
-
function
|
|
28805
|
+
function isRecord2(value) {
|
|
28710
28806
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
28711
28807
|
}
|
|
28712
28808
|
function describeValueType(value) {
|
|
@@ -28736,7 +28832,7 @@ function createToolArgumentNormalizer(options) {
|
|
|
28736
28832
|
}
|
|
28737
28833
|
function parseFromString(raw, context, parseOptions) {
|
|
28738
28834
|
const parsed = parseStreamingJson(raw);
|
|
28739
|
-
if (
|
|
28835
|
+
if (isRecord2(parsed)) {
|
|
28740
28836
|
return parsed;
|
|
28741
28837
|
}
|
|
28742
28838
|
if (parseOptions?.logInvalid ?? true) {
|
|
@@ -28751,7 +28847,7 @@ function createToolArgumentNormalizer(options) {
|
|
|
28751
28847
|
logInvalid: normalizeOptions?.logInvalid
|
|
28752
28848
|
});
|
|
28753
28849
|
}
|
|
28754
|
-
if (
|
|
28850
|
+
if (isRecord2(raw)) {
|
|
28755
28851
|
if (normalizeOptions?.expectString) {
|
|
28756
28852
|
warnOnce("raw:object", `${options.providerLabel} tool call arguments were object, expected string`, buildWarningDetails(context));
|
|
28757
28853
|
}
|
|
@@ -28774,7 +28870,7 @@ function createToolArgumentNormalizer(options) {
|
|
|
28774
28870
|
partialJson: raw
|
|
28775
28871
|
};
|
|
28776
28872
|
}
|
|
28777
|
-
if (
|
|
28873
|
+
if (isRecord2(raw)) {
|
|
28778
28874
|
if (normalizeOptions?.expectString) {
|
|
28779
28875
|
warnOnce("raw:object", `${options.providerLabel} tool call arguments were object, expected string`, buildWarningDetails(context));
|
|
28780
28876
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RewindPlan } from "./snapshot-rewind-plan.js";
|
|
2
|
+
export interface SnapshotBlobStoreConfig {
|
|
3
|
+
rootDir?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface RewindExecutionResult {
|
|
6
|
+
targetIndex: number;
|
|
7
|
+
fromIndex: number;
|
|
8
|
+
restored: string[];
|
|
9
|
+
deleted: string[];
|
|
10
|
+
bytesRestored: number;
|
|
11
|
+
dryRun: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function getSnapshotBlobRoot(rootDir?: string): string;
|
|
14
|
+
export declare function sha256Content(content: string | Buffer): string;
|
|
15
|
+
export declare class SnapshotBlobStore {
|
|
16
|
+
private readonly rootDir;
|
|
17
|
+
constructor(config?: SnapshotBlobStoreConfig);
|
|
18
|
+
put(content: string | Buffer): {
|
|
19
|
+
contentSha256: string;
|
|
20
|
+
size: number;
|
|
21
|
+
};
|
|
22
|
+
get(contentSha256: string): Buffer;
|
|
23
|
+
has(contentSha256: string): boolean;
|
|
24
|
+
getPath(contentSha256: string): string;
|
|
25
|
+
}
|
|
26
|
+
export declare function executeRewindPlan(options: {
|
|
27
|
+
plan: RewindPlan;
|
|
28
|
+
workspaceDir: string;
|
|
29
|
+
store?: SnapshotBlobStore;
|
|
30
|
+
dryRun?: boolean;
|
|
31
|
+
}): RewindExecutionResult;
|
|
32
|
+
//# sourceMappingURL=snapshot-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../src/agent/snapshot-store.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,2BAA2B,CAAC;AAI7E,MAAM,WAAW,uBAAuB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CAChB;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE9D;AAED,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,GAAE,uBAA4B;IAIhD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAYtE,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAQlC,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAInC,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;CAItC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,qBAAqB,CAgDxB"}
|