@zhixuan92/multi-model-agent-core 3.12.7 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +135 -2
- package/dist/bounded-execution/activity-tracker-types.d.ts +77 -0
- package/dist/bounded-execution/activity-tracker-types.d.ts.map +1 -0
- package/dist/bounded-execution/activity-tracker-types.js +23 -0
- package/dist/bounded-execution/activity-tracker-types.js.map +1 -0
- package/dist/bounded-execution/activity-tracker.d.ts +67 -0
- package/dist/bounded-execution/activity-tracker.d.ts.map +1 -0
- package/dist/bounded-execution/activity-tracker.js +381 -0
- package/dist/bounded-execution/activity-tracker.js.map +1 -0
- package/dist/bounded-execution/cost-compute.d.ts +27 -0
- package/dist/bounded-execution/cost-compute.d.ts.map +1 -0
- package/dist/bounded-execution/cost-compute.js +72 -0
- package/dist/bounded-execution/cost-compute.js.map +1 -0
- package/dist/bounded-execution/cost-meter.d.ts +20 -0
- package/dist/bounded-execution/cost-meter.d.ts.map +1 -0
- package/dist/bounded-execution/cost-meter.js +21 -0
- package/dist/bounded-execution/cost-meter.js.map +1 -0
- package/dist/bounded-execution/cost-rollup.d.ts +17 -0
- package/dist/bounded-execution/cost-rollup.d.ts.map +1 -0
- package/dist/bounded-execution/cost-rollup.js +40 -0
- package/dist/bounded-execution/cost-rollup.js.map +1 -0
- package/dist/bounded-execution/error-classifier.d.ts +11 -0
- package/dist/bounded-execution/error-classifier.d.ts.map +1 -0
- package/dist/bounded-execution/error-classifier.js +23 -0
- package/dist/bounded-execution/error-classifier.js.map +1 -0
- package/dist/bounded-execution/file-artifact-check.d.ts.map +1 -0
- package/dist/bounded-execution/file-artifact-check.js.map +1 -0
- package/dist/bounded-execution/idle-guard.d.ts +8 -0
- package/dist/bounded-execution/idle-guard.d.ts.map +1 -0
- package/dist/bounded-execution/idle-guard.js +18 -0
- package/dist/bounded-execution/idle-guard.js.map +1 -0
- package/dist/bounded-execution/index.d.ts +7 -0
- package/dist/bounded-execution/index.d.ts.map +1 -0
- package/dist/bounded-execution/index.js +8 -0
- package/dist/bounded-execution/index.js.map +1 -0
- package/dist/bounded-execution/wall-clock-guard.d.ts +8 -0
- package/dist/bounded-execution/wall-clock-guard.d.ts.map +1 -0
- package/dist/bounded-execution/wall-clock-guard.js +27 -0
- package/dist/bounded-execution/wall-clock-guard.js.map +1 -0
- package/dist/cleanup/batch-retention-sweeper.d.ts +7 -0
- package/dist/cleanup/batch-retention-sweeper.d.ts.map +1 -0
- package/dist/cleanup/batch-retention-sweeper.js +10 -0
- package/dist/cleanup/batch-retention-sweeper.js.map +1 -0
- package/dist/cleanup/context-block-gc-sweeper.d.ts +8 -0
- package/dist/cleanup/context-block-gc-sweeper.d.ts.map +1 -0
- package/dist/cleanup/context-block-gc-sweeper.js +12 -0
- package/dist/cleanup/context-block-gc-sweeper.js.map +1 -0
- package/dist/cleanup/index.d.ts +5 -0
- package/dist/cleanup/index.d.ts.map +1 -0
- package/dist/cleanup/index.js +6 -0
- package/dist/cleanup/index.js.map +1 -0
- package/dist/cleanup/project-idle-cleanup.d.ts +7 -0
- package/dist/cleanup/project-idle-cleanup.d.ts.map +1 -0
- package/dist/cleanup/project-idle-cleanup.js +15 -0
- package/dist/cleanup/project-idle-cleanup.js.map +1 -0
- package/dist/cleanup/shutdown-coordinator.d.ts +7 -0
- package/dist/cleanup/shutdown-coordinator.d.ts.map +1 -0
- package/dist/cleanup/shutdown-coordinator.js +13 -0
- package/dist/cleanup/shutdown-coordinator.js.map +1 -0
- package/dist/config/canonical-model-identity.d.ts.map +1 -0
- package/dist/config/canonical-model-identity.js.map +1 -0
- package/dist/config/config-resolver.d.ts +47 -0
- package/dist/config/config-resolver.d.ts.map +1 -0
- package/dist/config/config-resolver.js +57 -0
- package/dist/config/config-resolver.js.map +1 -0
- package/dist/config/index.d.ts +8 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +9 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/load.d.ts +2 -7
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +4 -16
- package/dist/config/load.js.map +1 -1
- package/dist/config/model-profile-registry.d.ts +121 -0
- package/dist/config/model-profile-registry.d.ts.map +1 -0
- package/dist/config/model-profile-registry.js +382 -0
- package/dist/config/model-profile-registry.js.map +1 -0
- package/dist/config/pricing-table.d.ts +16 -0
- package/dist/config/pricing-table.d.ts.map +1 -0
- package/dist/config/pricing-table.js +51 -0
- package/dist/config/pricing-table.js.map +1 -0
- package/dist/config/schema.d.ts +8 -72
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +8 -12
- package/dist/config/schema.js.map +1 -1
- package/dist/config/tier-policy-registry.d.ts +12 -0
- package/dist/config/tier-policy-registry.d.ts.map +1 -0
- package/dist/config/tier-policy-registry.js +13 -0
- package/dist/config/tier-policy-registry.js.map +1 -0
- package/dist/error-codes.d.ts +36 -1
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +52 -1
- package/dist/error-codes.js.map +1 -1
- package/dist/escalation/agent-resolver.d.ts +7 -0
- package/dist/escalation/agent-resolver.d.ts.map +1 -0
- package/dist/escalation/agent-resolver.js +16 -0
- package/dist/escalation/agent-resolver.js.map +1 -0
- package/dist/escalation/delegate-with-escalation.d.ts +28 -0
- package/dist/escalation/delegate-with-escalation.d.ts.map +1 -0
- package/dist/escalation/delegate-with-escalation.js +205 -0
- package/dist/escalation/delegate-with-escalation.js.map +1 -0
- package/dist/escalation/escalation-policy.d.ts +18 -0
- package/dist/escalation/escalation-policy.d.ts.map +1 -0
- package/dist/escalation/escalation-policy.js +34 -0
- package/dist/escalation/escalation-policy.js.map +1 -0
- package/dist/escalation/fallback-helpers.d.ts +22 -0
- package/dist/escalation/fallback-helpers.d.ts.map +1 -0
- package/dist/escalation/fallback-helpers.js +46 -0
- package/dist/escalation/fallback-helpers.js.map +1 -0
- package/dist/escalation/fallback-types.d.ts +60 -0
- package/dist/escalation/fallback-types.d.ts.map +1 -0
- package/dist/escalation/fallback-types.js +11 -0
- package/dist/escalation/fallback-types.js.map +1 -0
- package/dist/escalation/fallback.d.ts +3 -85
- package/dist/escalation/fallback.d.ts.map +1 -1
- package/dist/escalation/fallback.js +26 -130
- package/dist/escalation/fallback.js.map +1 -1
- package/dist/escalation/index.d.ts +3 -0
- package/dist/escalation/index.d.ts.map +1 -0
- package/dist/escalation/index.js +4 -0
- package/dist/escalation/index.js.map +1 -0
- package/dist/escalation/types.d.ts.map +1 -0
- package/dist/escalation/types.js.map +1 -0
- package/dist/events/caller-response-channel.d.ts +17 -0
- package/dist/events/caller-response-channel.d.ts.map +1 -0
- package/dist/events/caller-response-channel.js +10 -0
- package/dist/events/caller-response-channel.js.map +1 -0
- package/dist/events/clamp.d.ts.map +1 -0
- package/dist/events/clamp.js.map +1 -0
- package/dist/events/cloud-events.d.ts +114 -0
- package/dist/events/cloud-events.d.ts.map +1 -0
- package/dist/events/cloud-events.js +59 -0
- package/dist/events/cloud-events.js.map +1 -0
- package/dist/events/concern-classifier.d.ts +9 -0
- package/dist/events/concern-classifier.d.ts.map +1 -0
- package/dist/events/concern-classifier.js.map +1 -0
- package/dist/events/consent-rules.d.ts.map +1 -0
- package/dist/events/consent-rules.js.map +1 -0
- package/dist/events/diagnostics-types.d.ts +65 -0
- package/dist/events/diagnostics-types.d.ts.map +1 -0
- package/dist/events/diagnostics-types.js +2 -0
- package/dist/events/diagnostics-types.js.map +1 -0
- package/dist/events/event-base.d.ts +14 -0
- package/dist/events/event-base.d.ts.map +1 -0
- package/dist/events/event-base.js +24 -0
- package/dist/events/event-base.js.map +1 -0
- package/dist/events/event-builder.d.ts +20 -0
- package/dist/events/event-builder.d.ts.map +1 -0
- package/dist/events/event-builder.js +347 -0
- package/dist/events/event-builder.js.map +1 -0
- package/dist/events/event-emitter.d.ts +30 -0
- package/dist/events/event-emitter.d.ts.map +1 -0
- package/dist/events/event-emitter.js +58 -0
- package/dist/events/event-emitter.js.map +1 -0
- package/dist/events/http-server-log.d.ts +63 -0
- package/dist/events/http-server-log.d.ts.map +1 -0
- package/dist/events/http-server-log.js.map +1 -0
- package/dist/events/index.d.ts +6 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +7 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/jsonl-writer.d.ts.map +1 -0
- package/dist/events/jsonl-writer.js.map +1 -0
- package/dist/events/local-log-sink.d.ts +10 -0
- package/dist/events/local-log-sink.d.ts.map +1 -0
- package/dist/events/local-log-sink.js.map +1 -0
- package/dist/events/normalize.d.ts +18 -0
- package/dist/events/normalize.d.ts.map +1 -0
- package/dist/events/normalize.js +18 -0
- package/dist/events/normalize.js.map +1 -0
- package/dist/events/observability-events.d.ts +1196 -0
- package/dist/events/observability-events.d.ts.map +1 -0
- package/dist/events/observability-events.js +380 -0
- package/dist/events/observability-events.js.map +1 -0
- package/dist/events/privacy-filter.d.ts +2 -0
- package/dist/events/privacy-filter.d.ts.map +1 -0
- package/dist/events/privacy-filter.js +10 -0
- package/dist/events/privacy-filter.js.map +1 -0
- package/dist/events/request-spill.d.ts.map +1 -0
- package/dist/events/request-spill.js.map +1 -0
- package/dist/events/telemetry-channel.d.ts +9 -0
- package/dist/events/telemetry-channel.d.ts.map +1 -0
- package/dist/events/telemetry-channel.js +16 -0
- package/dist/events/telemetry-channel.js.map +1 -0
- package/dist/events/telemetry-sink.d.ts +12 -0
- package/dist/events/telemetry-sink.d.ts.map +1 -0
- package/dist/events/telemetry-sink.js +24 -0
- package/dist/events/telemetry-sink.js.map +1 -0
- package/dist/events/telemetry-types.d.ts +1509 -0
- package/dist/events/telemetry-types.d.ts.map +1 -0
- package/dist/events/telemetry-types.js +289 -0
- package/dist/events/telemetry-types.js.map +1 -0
- package/dist/events/verbose-line.d.ts.map +1 -0
- package/dist/events/verbose-line.js +99 -0
- package/dist/events/verbose-line.js.map +1 -0
- package/dist/events/verbose-log-channel.d.ts +9 -0
- package/dist/events/verbose-log-channel.d.ts.map +1 -0
- package/dist/events/verbose-log-channel.js +26 -0
- package/dist/events/verbose-log-channel.js.map +1 -0
- package/dist/identity/auth-token-store.d.ts +17 -0
- package/dist/identity/auth-token-store.d.ts.map +1 -0
- package/dist/identity/auth-token-store.js +67 -0
- package/dist/identity/auth-token-store.js.map +1 -0
- package/dist/identity/cwd-validator.d.ts +6 -0
- package/dist/identity/cwd-validator.d.ts.map +1 -0
- package/dist/identity/cwd-validator.js +16 -0
- package/dist/identity/cwd-validator.js.map +1 -0
- package/dist/identity/host-allowlist.d.ts +6 -0
- package/dist/identity/host-allowlist.d.ts.map +1 -0
- package/dist/identity/host-allowlist.js +11 -0
- package/dist/identity/host-allowlist.js.map +1 -0
- package/dist/identity/index.d.ts +6 -0
- package/dist/identity/index.d.ts.map +1 -0
- package/dist/identity/index.js +7 -0
- package/dist/identity/index.js.map +1 -0
- package/dist/identity/secret-redactor.d.ts +2 -0
- package/dist/identity/secret-redactor.d.ts.map +1 -0
- package/dist/identity/secret-redactor.js +35 -0
- package/dist/identity/secret-redactor.js.map +1 -0
- package/dist/identity/ssrf-guard.d.ts +4 -0
- package/dist/identity/ssrf-guard.d.ts.map +1 -0
- package/dist/identity/ssrf-guard.js +19 -0
- package/dist/identity/ssrf-guard.js.map +1 -0
- package/dist/index.d.ts +69 -46
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -30
- package/dist/index.js.map +1 -1
- package/dist/intake/brief-compiler-slots/audit.d.ts +23 -0
- package/dist/intake/brief-compiler-slots/audit.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/audit.js +61 -0
- package/dist/intake/brief-compiler-slots/audit.js.map +1 -0
- package/dist/intake/brief-compiler-slots/debug.d.ts +41 -0
- package/dist/intake/brief-compiler-slots/debug.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/debug.js +49 -0
- package/dist/intake/brief-compiler-slots/debug.js.map +1 -0
- package/dist/intake/brief-compiler-slots/delegate.d.ts +29 -0
- package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/delegate.js +44 -0
- package/dist/intake/brief-compiler-slots/delegate.js.map +1 -0
- package/dist/intake/brief-compiler-slots/execute-plan.d.ts +49 -0
- package/dist/intake/brief-compiler-slots/execute-plan.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/execute-plan.js +146 -0
- package/dist/intake/brief-compiler-slots/execute-plan.js.map +1 -0
- package/dist/intake/brief-compiler-slots/explore.d.ts +43 -0
- package/dist/intake/brief-compiler-slots/explore.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/explore.js +116 -0
- package/dist/intake/brief-compiler-slots/explore.js.map +1 -0
- package/dist/intake/brief-compiler-slots/investigate.d.ts +26 -0
- package/dist/intake/brief-compiler-slots/investigate.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/investigate.js +42 -0
- package/dist/intake/brief-compiler-slots/investigate.js.map +1 -0
- package/dist/intake/brief-compiler-slots/register-context-block.d.ts +17 -0
- package/dist/intake/brief-compiler-slots/register-context-block.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/register-context-block.js +17 -0
- package/dist/intake/brief-compiler-slots/register-context-block.js.map +1 -0
- package/dist/intake/brief-compiler-slots/retry.d.ts +20 -0
- package/dist/intake/brief-compiler-slots/retry.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/retry.js +37 -0
- package/dist/intake/brief-compiler-slots/retry.js.map +1 -0
- package/dist/intake/brief-compiler-slots/review.d.ts +34 -0
- package/dist/intake/brief-compiler-slots/review.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/review.js +85 -0
- package/dist/intake/brief-compiler-slots/review.js.map +1 -0
- package/dist/intake/brief-compiler-slots/verify.d.ts +21 -0
- package/dist/intake/brief-compiler-slots/verify.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/verify.js +62 -0
- package/dist/intake/brief-compiler-slots/verify.js.map +1 -0
- package/dist/intake/brief-compiler.d.ts +9 -0
- package/dist/intake/brief-compiler.d.ts.map +1 -0
- package/dist/intake/brief-compiler.js +8 -0
- package/dist/intake/brief-compiler.js.map +1 -0
- package/dist/intake/classify.d.ts.map +1 -1
- package/dist/intake/classify.js +3 -2
- package/dist/intake/classify.js.map +1 -1
- package/dist/intake/field-inferer.d.ts +10 -0
- package/dist/intake/field-inferer.d.ts.map +1 -0
- package/dist/intake/field-inferer.js +57 -0
- package/dist/intake/field-inferer.js.map +1 -0
- package/dist/intake/host-allowlist-builder.d.ts +25 -0
- package/dist/intake/host-allowlist-builder.d.ts.map +1 -0
- package/dist/intake/host-allowlist-builder.js +102 -0
- package/dist/intake/host-allowlist-builder.js.map +1 -0
- package/dist/intake/index.d.ts +5 -0
- package/dist/intake/index.d.ts.map +1 -0
- package/dist/intake/index.js +6 -0
- package/dist/intake/index.js.map +1 -0
- package/dist/intake/pipeline.d.ts +2 -2
- package/dist/intake/pipeline.d.ts.map +1 -1
- package/dist/intake/pipeline.js +7 -73
- package/dist/intake/pipeline.js.map +1 -1
- package/dist/intake/plan-extractor.d.ts +20 -0
- package/dist/intake/plan-extractor.d.ts.map +1 -0
- package/dist/intake/plan-extractor.js +87 -0
- package/dist/intake/plan-extractor.js.map +1 -0
- package/dist/intake/resolve.d.ts +2 -3
- package/dist/intake/resolve.d.ts.map +1 -1
- package/dist/intake/resolve.js +4 -12
- package/dist/intake/resolve.js.map +1 -1
- package/dist/intake/types.d.ts +3 -53
- package/dist/intake/types.d.ts.map +1 -1
- package/dist/intake/verify-referenced-blocks.d.ts +5 -0
- package/dist/intake/verify-referenced-blocks.d.ts.map +1 -0
- package/dist/intake/verify-referenced-blocks.js +9 -0
- package/dist/intake/verify-referenced-blocks.js.map +1 -0
- package/dist/lifecycle/auto-commit.d.ts +18 -0
- package/dist/lifecycle/auto-commit.d.ts.map +1 -0
- package/dist/lifecycle/auto-commit.js.map +1 -0
- package/dist/lifecycle/auto-register-context-block.d.ts +11 -0
- package/dist/lifecycle/auto-register-context-block.d.ts.map +1 -0
- package/dist/lifecycle/auto-register-context-block.js +18 -0
- package/dist/lifecycle/auto-register-context-block.js.map +1 -0
- package/dist/lifecycle/executor-output-types.d.ts +51 -0
- package/dist/lifecycle/executor-output-types.d.ts.map +1 -0
- package/dist/lifecycle/executor-output-types.js +2 -0
- package/dist/lifecycle/executor-output-types.js.map +1 -0
- package/dist/lifecycle/fallback-report.d.ts.map +1 -0
- package/dist/lifecycle/fallback-report.js.map +1 -0
- package/dist/lifecycle/handlers/baseline-handlers.d.ts +7 -0
- package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -0
- package/dist/lifecycle/handlers/baseline-handlers.js +193 -0
- package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -0
- package/dist/lifecycle/handlers/commit-stage.d.ts +16 -0
- package/dist/lifecycle/handlers/commit-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/commit-stage.js +52 -0
- package/dist/lifecycle/handlers/commit-stage.js.map +1 -0
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts +10 -0
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts.map +1 -0
- package/dist/lifecycle/handlers/derive-terminal-status.js +35 -0
- package/dist/lifecycle/handlers/derive-terminal-status.js.map +1 -0
- package/dist/lifecycle/handlers/execution-context-builder.d.ts +5 -0
- package/dist/lifecycle/handlers/execution-context-builder.d.ts.map +1 -0
- package/dist/lifecycle/handlers/execution-context-builder.js +16 -0
- package/dist/lifecycle/handlers/execution-context-builder.js.map +1 -0
- package/dist/lifecycle/handlers/git-commit-handler.d.ts +19 -0
- package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -0
- package/dist/lifecycle/handlers/git-commit-handler.js +52 -0
- package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -0
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +19 -0
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -0
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js +38 -0
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -0
- package/dist/lifecycle/handlers/quality-chain-handlers.d.ts +22 -0
- package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -0
- package/dist/lifecycle/handlers/quality-chain-handlers.js +189 -0
- package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -0
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +3 -0
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +1 -0
- package/dist/lifecycle/handlers/register-context-block-handlers.js +18 -0
- package/dist/lifecycle/handlers/register-context-block-handlers.js.map +1 -0
- package/dist/lifecycle/handlers/review-diff-handler.d.ts +31 -0
- package/dist/lifecycle/handlers/review-diff-handler.d.ts.map +1 -0
- package/dist/lifecycle/handlers/review-diff-handler.js +107 -0
- package/dist/lifecycle/handlers/review-diff-handler.js.map +1 -0
- package/dist/lifecycle/handlers/run-verify-command-handler.d.ts +25 -0
- package/dist/lifecycle/handlers/run-verify-command-handler.d.ts.map +1 -0
- package/dist/lifecycle/handlers/run-verify-command-handler.js +75 -0
- package/dist/lifecycle/handlers/run-verify-command-handler.js.map +1 -0
- package/dist/lifecycle/handlers/spec-chain-handlers.d.ts +21 -0
- package/dist/lifecycle/handlers/spec-chain-handlers.d.ts.map +1 -0
- package/dist/lifecycle/handlers/spec-chain-handlers.js +158 -0
- package/dist/lifecycle/handlers/spec-chain-handlers.js.map +1 -0
- package/dist/lifecycle/handlers/task-executor.d.ts +10 -0
- package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -0
- package/dist/lifecycle/handlers/task-executor.js +16 -0
- package/dist/lifecycle/handlers/task-executor.js.map +1 -0
- package/dist/lifecycle/handlers/terminal-handlers.d.ts +6 -0
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -0
- package/dist/lifecycle/handlers/terminal-handlers.js +106 -0
- package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -0
- package/dist/lifecycle/handlers/verify-stage.d.ts +37 -0
- package/dist/lifecycle/handlers/verify-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/verify-stage.js +208 -0
- package/dist/lifecycle/handlers/verify-stage.js.map +1 -0
- package/dist/lifecycle/index.d.ts +3 -0
- package/dist/lifecycle/index.d.ts.map +1 -0
- package/dist/lifecycle/index.js +4 -0
- package/dist/lifecycle/index.js.map +1 -0
- package/dist/lifecycle/lifecycle-context.d.ts +98 -0
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle-context.js +2 -0
- package/dist/lifecycle/lifecycle-context.js.map +1 -0
- package/dist/lifecycle/lifecycle-dispatcher.d.ts +36 -0
- package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle-dispatcher.js +51 -0
- package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -0
- package/dist/lifecycle/lifecycle-driver.d.ts +9 -0
- package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -0
- package/dist/lifecycle/lifecycle-driver.js +30 -0
- package/dist/lifecycle/lifecycle-driver.js.map +1 -0
- package/dist/lifecycle/metadata-repair.d.ts.map +1 -0
- package/dist/lifecycle/metadata-repair.js +33 -0
- package/dist/lifecycle/metadata-repair.js.map +1 -0
- package/dist/lifecycle/plan-extraction.d.ts.map +1 -0
- package/dist/lifecycle/plan-extraction.js.map +1 -0
- package/dist/lifecycle/shared-compute.d.ts +5 -0
- package/dist/lifecycle/shared-compute.d.ts.map +1 -0
- package/dist/lifecycle/shared-compute.js +19 -0
- package/dist/lifecycle/shared-compute.js.map +1 -0
- package/dist/lifecycle/stage-idle-tracker.d.ts.map +1 -0
- package/dist/lifecycle/stage-idle-tracker.js.map +1 -0
- package/dist/lifecycle/stage-plan-builder.d.ts +4 -0
- package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -0
- package/dist/lifecycle/stage-plan-builder.js +173 -0
- package/dist/lifecycle/stage-plan-builder.js.map +1 -0
- package/dist/lifecycle/stage-plan-types.d.ts +102 -0
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -0
- package/dist/lifecycle/stage-plan-types.js +2 -0
- package/dist/lifecycle/stage-plan-types.js.map +1 -0
- package/dist/lifecycle/stage-stats.d.ts +88 -0
- package/dist/lifecycle/stage-stats.d.ts.map +1 -0
- package/dist/lifecycle/stage-stats.js +156 -0
- package/dist/lifecycle/stage-stats.js.map +1 -0
- package/dist/lifecycle/task-completion-summary.d.ts.map +1 -0
- package/dist/lifecycle/task-completion-summary.js +93 -0
- package/dist/lifecycle/task-completion-summary.js.map +1 -0
- package/dist/lifecycle/task-executor.d.ts +24 -0
- package/dist/lifecycle/task-executor.d.ts.map +1 -0
- package/dist/lifecycle/task-executor.js +207 -0
- package/dist/lifecycle/task-executor.js.map +1 -0
- package/dist/lifecycle/task-runner.d.ts +79 -0
- package/dist/lifecycle/task-runner.d.ts.map +1 -0
- package/dist/lifecycle/task-runner.js +254 -0
- package/dist/lifecycle/task-runner.js.map +1 -0
- package/dist/lifecycle/tool-config-types.d.ts +27 -0
- package/dist/lifecycle/tool-config-types.d.ts.map +1 -0
- package/dist/lifecycle/tool-config-types.js +2 -0
- package/dist/lifecycle/tool-config-types.js.map +1 -0
- package/dist/lifecycle/worker-status.d.ts +9 -0
- package/dist/lifecycle/worker-status.d.ts.map +1 -0
- package/dist/lifecycle/worker-status.js +19 -0
- package/dist/lifecycle/worker-status.js.map +1 -0
- package/dist/model-profiles.json +607 -125
- package/dist/providers/anthropic-messages-adapter.d.ts +18 -0
- package/dist/providers/anthropic-messages-adapter.d.ts.map +1 -0
- package/dist/providers/anthropic-messages-adapter.js +81 -0
- package/dist/providers/anthropic-messages-adapter.js.map +1 -0
- package/dist/providers/base/research-tools.d.ts.map +1 -0
- package/dist/providers/base/research-tools.js.map +1 -0
- package/dist/providers/base/result-builders.d.ts +82 -0
- package/dist/providers/base/result-builders.d.ts.map +1 -0
- package/dist/providers/base/result-builders.js +112 -0
- package/dist/providers/base/result-builders.js.map +1 -0
- package/dist/providers/base/time-check.d.ts.map +1 -0
- package/dist/providers/base/time-check.js.map +1 -0
- package/dist/providers/base/types.d.ts +53 -0
- package/dist/providers/base/types.d.ts.map +1 -0
- package/dist/providers/base/types.js.map +1 -0
- package/dist/providers/base/usage-accumulator.d.ts +9 -0
- package/dist/providers/base/usage-accumulator.d.ts.map +1 -0
- package/dist/providers/base/usage-accumulator.js +20 -0
- package/dist/providers/base/usage-accumulator.js.map +1 -0
- package/dist/providers/call-cache.d.ts.map +1 -0
- package/dist/providers/call-cache.js.map +1 -0
- package/dist/providers/error-classification.d.ts +49 -0
- package/dist/providers/error-classification.d.ts.map +1 -0
- package/dist/providers/error-classification.js +140 -0
- package/dist/providers/error-classification.js.map +1 -0
- package/dist/providers/file-tracker.d.ts +47 -0
- package/dist/providers/file-tracker.d.ts.map +1 -0
- package/dist/providers/file-tracker.js +71 -0
- package/dist/providers/file-tracker.js.map +1 -0
- package/dist/providers/index.d.ts +16 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +17 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/injection-type.d.ts.map +1 -0
- package/dist/providers/injection-type.js.map +1 -0
- package/dist/providers/make-runner-shell.d.ts +4 -0
- package/dist/providers/make-runner-shell.d.ts.map +1 -0
- package/dist/providers/make-runner-shell.js +69 -0
- package/dist/providers/make-runner-shell.js.map +1 -0
- package/dist/providers/openai-chat-adapter.d.ts +17 -0
- package/dist/providers/openai-chat-adapter.d.ts.map +1 -0
- package/dist/providers/openai-chat-adapter.js +87 -0
- package/dist/providers/openai-chat-adapter.js.map +1 -0
- package/dist/providers/openai-responses-adapter.d.ts +16 -0
- package/dist/providers/openai-responses-adapter.d.ts.map +1 -0
- package/dist/providers/openai-responses-adapter.js +109 -0
- package/dist/providers/openai-responses-adapter.js.map +1 -0
- package/dist/providers/openai-usage-interceptor.d.ts.map +1 -0
- package/dist/providers/openai-usage-interceptor.js +121 -0
- package/dist/providers/openai-usage-interceptor.js.map +1 -0
- package/dist/providers/prevention.d.ts.map +1 -0
- package/dist/providers/prevention.js +108 -0
- package/dist/providers/prevention.js.map +1 -0
- package/dist/providers/provider-factory.d.ts +13 -0
- package/dist/providers/provider-factory.d.ts.map +1 -0
- package/dist/providers/provider-factory.js +127 -0
- package/dist/providers/provider-factory.js.map +1 -0
- package/dist/providers/runner-adapter.d.ts +42 -0
- package/dist/providers/runner-adapter.d.ts.map +1 -0
- package/dist/providers/runner-adapter.js +2 -0
- package/dist/providers/runner-adapter.js.map +1 -0
- package/dist/providers/runner-shell-types.d.ts +37 -0
- package/dist/providers/runner-shell-types.d.ts.map +1 -0
- package/dist/providers/runner-shell-types.js +2 -0
- package/dist/providers/runner-shell-types.js.map +1 -0
- package/dist/providers/runner-shell.d.ts +8 -0
- package/dist/providers/runner-shell.d.ts.map +1 -0
- package/dist/providers/runner-shell.js +78 -0
- package/dist/providers/runner-shell.js.map +1 -0
- package/dist/providers/runner-types.d.ts +174 -0
- package/dist/providers/runner-types.d.ts.map +1 -0
- package/dist/providers/runner-types.js +2 -0
- package/dist/providers/runner-types.js.map +1 -0
- package/dist/providers/scratchpad-salvager.d.ts +19 -0
- package/dist/providers/scratchpad-salvager.d.ts.map +1 -0
- package/dist/providers/scratchpad-salvager.js +44 -0
- package/dist/providers/scratchpad-salvager.js.map +1 -0
- package/dist/providers/stall-detector.d.ts +22 -0
- package/dist/providers/stall-detector.d.ts.map +1 -0
- package/dist/providers/stall-detector.js +43 -0
- package/dist/providers/stall-detector.js.map +1 -0
- package/dist/providers/supervision.d.ts +108 -0
- package/dist/providers/supervision.d.ts.map +1 -0
- package/dist/providers/supervision.js +272 -0
- package/dist/providers/supervision.js.map +1 -0
- package/dist/providers/text-scratchpad.d.ts +28 -0
- package/dist/providers/text-scratchpad.d.ts.map +1 -0
- package/dist/providers/text-scratchpad.js +49 -0
- package/dist/providers/text-scratchpad.js.map +1 -0
- package/dist/providers/tool-definitions.d.ts +6 -0
- package/dist/providers/tool-definitions.d.ts.map +1 -0
- package/dist/providers/tool-definitions.js +236 -0
- package/dist/providers/tool-definitions.js.map +1 -0
- package/dist/providers/tool-implementations.d.ts +26 -0
- package/dist/providers/tool-implementations.d.ts.map +1 -0
- package/dist/providers/tool-implementations.js +221 -0
- package/dist/providers/tool-implementations.js.map +1 -0
- package/dist/providers/tool-tracker.d.ts +14 -0
- package/dist/providers/tool-tracker.d.ts.map +1 -0
- package/dist/providers/tool-tracker.js +13 -0
- package/dist/providers/tool-tracker.js.map +1 -0
- package/dist/reporting/batch-persister.d.ts +4 -0
- package/dist/reporting/batch-persister.d.ts.map +1 -0
- package/dist/reporting/batch-persister.js +11 -0
- package/dist/reporting/batch-persister.js.map +1 -0
- package/dist/reporting/commit-stage-runner.d.ts +12 -0
- package/dist/reporting/commit-stage-runner.d.ts.map +1 -0
- package/dist/reporting/commit-stage-runner.js +43 -0
- package/dist/reporting/commit-stage-runner.js.map +1 -0
- package/dist/reporting/compose-terminal-headline.d.ts +0 -1
- package/dist/reporting/compose-terminal-headline.d.ts.map +1 -1
- package/dist/reporting/compose-terminal-headline.js +2 -5
- package/dist/reporting/compose-terminal-headline.js.map +1 -1
- package/dist/reporting/derive-explore-status.d.ts +1 -1
- package/dist/reporting/derive-explore-status.d.ts.map +1 -1
- package/dist/reporting/derive-explore-status.js +2 -6
- package/dist/reporting/derive-explore-status.js.map +1 -1
- package/dist/reporting/derive-investigate-status.d.ts +2 -4
- package/dist/reporting/derive-investigate-status.d.ts.map +1 -1
- package/dist/reporting/derive-investigate-status.js +3 -10
- package/dist/reporting/derive-investigate-status.js.map +1 -1
- package/dist/reporting/headline-composer.d.ts +17 -0
- package/dist/reporting/headline-composer.d.ts.map +1 -0
- package/dist/reporting/headline-composer.js +10 -0
- package/dist/reporting/headline-composer.js.map +1 -0
- package/dist/reporting/headline-templates/audit.d.ts +3 -0
- package/dist/reporting/headline-templates/audit.d.ts.map +1 -0
- package/dist/reporting/headline-templates/audit.js +12 -0
- package/dist/reporting/headline-templates/audit.js.map +1 -0
- package/dist/reporting/headline-templates/debug.d.ts +8 -0
- package/dist/reporting/headline-templates/debug.d.ts.map +1 -0
- package/dist/reporting/headline-templates/debug.js +15 -0
- package/dist/reporting/headline-templates/debug.js.map +1 -0
- package/dist/reporting/headline-templates/delegate.d.ts +3 -0
- package/dist/reporting/headline-templates/delegate.d.ts.map +1 -0
- package/dist/reporting/headline-templates/delegate.js +12 -0
- package/dist/reporting/headline-templates/delegate.js.map +1 -0
- package/dist/reporting/headline-templates/execute-plan.d.ts +3 -0
- package/dist/reporting/headline-templates/execute-plan.d.ts.map +1 -0
- package/dist/reporting/headline-templates/execute-plan.js +14 -0
- package/dist/reporting/headline-templates/execute-plan.js.map +1 -0
- package/dist/reporting/headline-templates/explore.d.ts +3 -0
- package/dist/reporting/headline-templates/explore.d.ts.map +1 -0
- package/dist/reporting/headline-templates/explore.js +13 -0
- package/dist/reporting/headline-templates/explore.js.map +1 -0
- package/dist/reporting/headline-templates/investigate.d.ts +13 -0
- package/dist/reporting/headline-templates/investigate.d.ts.map +1 -0
- package/dist/reporting/headline-templates/investigate.js +53 -0
- package/dist/reporting/headline-templates/investigate.js.map +1 -0
- package/dist/reporting/headline-templates/register-context-block.d.ts +3 -0
- package/dist/reporting/headline-templates/register-context-block.d.ts.map +1 -0
- package/dist/reporting/headline-templates/register-context-block.js +6 -0
- package/dist/reporting/headline-templates/register-context-block.js.map +1 -0
- package/dist/reporting/headline-templates/retry.d.ts +3 -0
- package/dist/reporting/headline-templates/retry.d.ts.map +1 -0
- package/dist/reporting/headline-templates/retry.js +9 -0
- package/dist/reporting/headline-templates/retry.js.map +1 -0
- package/dist/reporting/headline-templates/review.d.ts +3 -0
- package/dist/reporting/headline-templates/review.d.ts.map +1 -0
- package/dist/reporting/headline-templates/review.js +15 -0
- package/dist/reporting/headline-templates/review.js.map +1 -0
- package/dist/reporting/headline-templates/verify.d.ts +3 -0
- package/dist/reporting/headline-templates/verify.d.ts.map +1 -0
- package/dist/reporting/headline-templates/verify.js +12 -0
- package/dist/reporting/headline-templates/verify.js.map +1 -0
- package/dist/reporting/index.d.ts +9 -0
- package/dist/reporting/index.d.ts.map +1 -0
- package/dist/reporting/index.js +10 -0
- package/dist/reporting/index.js.map +1 -0
- package/dist/reporting/report-parser-slots/audit-report.d.ts +13 -0
- package/dist/reporting/report-parser-slots/audit-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/audit-report.js +9 -0
- package/dist/reporting/report-parser-slots/audit-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/debug-report.d.ts +9 -0
- package/dist/reporting/report-parser-slots/debug-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/debug-report.js +9 -0
- package/dist/reporting/report-parser-slots/debug-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/delegate-report.d.ts +8 -0
- package/dist/reporting/report-parser-slots/delegate-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/delegate-report.js +19 -0
- package/dist/reporting/report-parser-slots/delegate-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/execute-plan-report.d.ts +11 -0
- package/dist/reporting/report-parser-slots/execute-plan-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/execute-plan-report.js +9 -0
- package/dist/reporting/report-parser-slots/execute-plan-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/explore-report.d.ts +17 -0
- package/dist/reporting/report-parser-slots/explore-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/explore-report.js +9 -0
- package/dist/reporting/report-parser-slots/explore-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/investigate-report.d.ts +46 -0
- package/dist/reporting/report-parser-slots/investigate-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/investigate-report.js +159 -0
- package/dist/reporting/report-parser-slots/investigate-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/register-context-block-report.d.ts +8 -0
- package/dist/reporting/report-parser-slots/register-context-block-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/register-context-block-report.js +9 -0
- package/dist/reporting/report-parser-slots/register-context-block-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/retry-report.d.ts +8 -0
- package/dist/reporting/report-parser-slots/retry-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/retry-report.js +9 -0
- package/dist/reporting/report-parser-slots/retry-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/review-report.d.ts +14 -0
- package/dist/reporting/report-parser-slots/review-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/review-report.js +9 -0
- package/dist/reporting/report-parser-slots/review-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/verify-report.d.ts +10 -0
- package/dist/reporting/report-parser-slots/verify-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/verify-report.js +9 -0
- package/dist/reporting/report-parser-slots/verify-report.js.map +1 -0
- package/dist/reporting/response-envelope-builder.d.ts +32 -0
- package/dist/reporting/response-envelope-builder.d.ts.map +1 -0
- package/dist/reporting/response-envelope-builder.js +26 -0
- package/dist/reporting/response-envelope-builder.js.map +1 -0
- package/dist/reporting/structured-report-parser.d.ts +9 -0
- package/dist/reporting/structured-report-parser.d.ts.map +1 -0
- package/dist/reporting/structured-report-parser.js +8 -0
- package/dist/reporting/structured-report-parser.js.map +1 -0
- package/dist/reporting/structured-report.js +1 -1
- package/dist/reporting/terminal-block-registrar.d.ts +14 -0
- package/dist/reporting/terminal-block-registrar.d.ts.map +1 -0
- package/dist/reporting/terminal-block-registrar.js +17 -0
- package/dist/reporting/terminal-block-registrar.js.map +1 -0
- package/dist/reporting/terminal-status-deriver.d.ts +22 -0
- package/dist/reporting/terminal-status-deriver.d.ts.map +1 -0
- package/dist/reporting/terminal-status-deriver.js +38 -0
- package/dist/reporting/terminal-status-deriver.js.map +1 -0
- package/dist/reporting/verify-stage-runner.d.ts +21 -0
- package/dist/reporting/verify-stage-runner.d.ts.map +1 -0
- package/dist/reporting/verify-stage-runner.js +102 -0
- package/dist/reporting/verify-stage-runner.js.map +1 -0
- package/dist/research/explore-orchestrator.d.ts +14 -0
- package/dist/research/explore-orchestrator.d.ts.map +1 -0
- package/dist/research/explore-orchestrator.js +363 -0
- package/dist/research/explore-orchestrator.js.map +1 -0
- package/dist/research/index.d.ts +3 -0
- package/dist/research/index.d.ts.map +1 -0
- package/dist/research/index.js +4 -0
- package/dist/research/index.js.map +1 -0
- package/dist/research/web-fetch-helpers.d.ts +48 -0
- package/dist/research/web-fetch-helpers.d.ts.map +1 -0
- package/dist/research/web-fetch-helpers.js +225 -0
- package/dist/research/web-fetch-helpers.js.map +1 -0
- package/dist/research/web-fetch.d.ts.map +1 -1
- package/dist/research/web-fetch.js +1 -230
- package/dist/research/web-fetch.js.map +1 -1
- package/dist/review/annotator-engine.d.ts +30 -0
- package/dist/review/annotator-engine.d.ts.map +1 -0
- package/dist/review/annotator-engine.js +40 -0
- package/dist/review/annotator-engine.js.map +1 -0
- package/dist/review/annotator-output-parser.d.ts +13 -0
- package/dist/review/annotator-output-parser.d.ts.map +1 -0
- package/dist/review/annotator-output-parser.js +24 -0
- package/dist/review/annotator-output-parser.js.map +1 -0
- package/dist/review/annotator-prompt-builder.d.ts +9 -0
- package/dist/review/annotator-prompt-builder.d.ts.map +1 -0
- package/dist/review/annotator-prompt-builder.js +28 -0
- package/dist/review/annotator-prompt-builder.js.map +1 -0
- package/dist/review/default-engines.d.ts +5 -0
- package/dist/review/default-engines.d.ts.map +1 -0
- package/dist/review/default-engines.js +24 -0
- package/dist/review/default-engines.js.map +1 -0
- package/dist/review/index.d.ts +8 -0
- package/dist/review/index.d.ts.map +1 -0
- package/dist/review/index.js +9 -0
- package/dist/review/index.js.map +1 -0
- package/dist/review/review-types.d.ts +15 -0
- package/dist/review/review-types.d.ts.map +1 -0
- package/dist/review/review-types.js +3 -0
- package/dist/review/review-types.js.map +1 -0
- package/dist/review/review-verdict-aggregator.d.ts +17 -0
- package/dist/review/review-verdict-aggregator.d.ts.map +1 -0
- package/dist/review/review-verdict-aggregator.js +30 -0
- package/dist/review/review-verdict-aggregator.js.map +1 -0
- package/dist/review/review-verdict-mapping.d.ts +16 -0
- package/dist/review/review-verdict-mapping.d.ts.map +1 -0
- package/dist/review/review-verdict-mapping.js +24 -0
- package/dist/review/review-verdict-mapping.js.map +1 -0
- package/dist/review/reviewer-engine.d.ts +54 -0
- package/dist/review/reviewer-engine.d.ts.map +1 -0
- package/dist/review/reviewer-engine.js +58 -0
- package/dist/review/reviewer-engine.js.map +1 -0
- package/dist/review/reviewer-output-parser.d.ts +17 -0
- package/dist/review/reviewer-output-parser.d.ts.map +1 -0
- package/dist/review/reviewer-output-parser.js +62 -0
- package/dist/review/reviewer-output-parser.js.map +1 -0
- package/dist/review/reviewer-prompt-builder.d.ts +34 -0
- package/dist/review/reviewer-prompt-builder.d.ts.map +1 -0
- package/dist/review/reviewer-prompt-builder.js +28 -0
- package/dist/review/reviewer-prompt-builder.js.map +1 -0
- package/dist/review/templates/annotator-audit.d.ts +3 -0
- package/dist/review/templates/annotator-audit.d.ts.map +1 -0
- package/dist/review/templates/annotator-audit.js +5 -0
- package/dist/review/templates/annotator-audit.js.map +1 -0
- package/dist/review/templates/annotator-debug.d.ts +3 -0
- package/dist/review/templates/annotator-debug.d.ts.map +1 -0
- package/dist/review/templates/annotator-debug.js +5 -0
- package/dist/review/templates/annotator-debug.js.map +1 -0
- package/dist/review/templates/annotator-investigate.d.ts +3 -0
- package/dist/review/templates/annotator-investigate.d.ts.map +1 -0
- package/dist/review/templates/annotator-investigate.js +5 -0
- package/dist/review/templates/annotator-investigate.js.map +1 -0
- package/dist/review/templates/annotator-review.d.ts +3 -0
- package/dist/review/templates/annotator-review.d.ts.map +1 -0
- package/dist/review/templates/annotator-review.js +5 -0
- package/dist/review/templates/annotator-review.js.map +1 -0
- package/dist/review/templates/annotator-shared.d.ts +10 -0
- package/dist/review/templates/annotator-shared.d.ts.map +1 -0
- package/dist/review/templates/annotator-shared.js +62 -0
- package/dist/review/templates/annotator-shared.js.map +1 -0
- package/dist/review/templates/annotator-verify.d.ts +3 -0
- package/dist/review/templates/annotator-verify.d.ts.map +1 -0
- package/dist/review/templates/annotator-verify.js +5 -0
- package/dist/review/templates/annotator-verify.js.map +1 -0
- package/dist/review/templates/diff-review.d.ts +3 -0
- package/dist/review/templates/diff-review.d.ts.map +1 -0
- package/dist/review/templates/diff-review.js +7 -0
- package/dist/review/templates/diff-review.js.map +1 -0
- package/dist/review/templates/quality-review-artifact.d.ts +3 -0
- package/dist/review/templates/quality-review-artifact.d.ts.map +1 -0
- package/dist/review/templates/quality-review-artifact.js +8 -0
- package/dist/review/templates/quality-review-artifact.js.map +1 -0
- package/dist/review/templates/quality-review-audit.d.ts +3 -0
- package/dist/review/templates/quality-review-audit.d.ts.map +1 -0
- package/dist/review/templates/quality-review-audit.js +9 -0
- package/dist/review/templates/quality-review-audit.js.map +1 -0
- package/dist/review/templates/quality-review-debug.d.ts +3 -0
- package/dist/review/templates/quality-review-debug.d.ts.map +1 -0
- package/dist/review/templates/quality-review-debug.js +9 -0
- package/dist/review/templates/quality-review-debug.js.map +1 -0
- package/dist/review/templates/quality-review-investigate.d.ts +3 -0
- package/dist/review/templates/quality-review-investigate.d.ts.map +1 -0
- package/dist/review/templates/quality-review-investigate.js +9 -0
- package/dist/review/templates/quality-review-investigate.js.map +1 -0
- package/dist/review/templates/quality-review-review.d.ts +3 -0
- package/dist/review/templates/quality-review-review.d.ts.map +1 -0
- package/dist/review/templates/quality-review-review.js +9 -0
- package/dist/review/templates/quality-review-review.js.map +1 -0
- package/dist/review/templates/quality-review-verify.d.ts +3 -0
- package/dist/review/templates/quality-review-verify.d.ts.map +1 -0
- package/dist/review/templates/quality-review-verify.js +9 -0
- package/dist/review/templates/quality-review-verify.js.map +1 -0
- package/dist/review/templates/shared.d.ts +9 -0
- package/dist/review/templates/shared.d.ts.map +1 -0
- package/dist/review/templates/shared.js +2 -0
- package/dist/review/templates/shared.js.map +1 -0
- package/dist/review/templates/spec-review.d.ts +3 -0
- package/dist/review/templates/spec-review.d.ts.map +1 -0
- package/dist/review/templates/spec-review.js +8 -0
- package/dist/review/templates/spec-review.js.map +1 -0
- package/dist/stores/batch-cache.d.ts +29 -0
- package/dist/stores/batch-cache.d.ts.map +1 -0
- package/dist/stores/batch-cache.js +89 -0
- package/dist/stores/batch-cache.js.map +1 -0
- package/dist/stores/batch-registry.d.ts +101 -0
- package/dist/stores/batch-registry.d.ts.map +1 -0
- package/dist/stores/batch-registry.js +171 -0
- package/dist/stores/batch-registry.js.map +1 -0
- package/dist/stores/context-block-tool.d.ts +92 -0
- package/dist/stores/context-block-tool.d.ts.map +1 -0
- package/dist/stores/context-block-tool.js +137 -0
- package/dist/stores/context-block-tool.js.map +1 -0
- package/dist/stores/expand-context-blocks.d.ts +20 -0
- package/dist/stores/expand-context-blocks.d.ts.map +1 -0
- package/dist/stores/expand-context-blocks.js +46 -0
- package/dist/stores/expand-context-blocks.js.map +1 -0
- package/dist/stores/index.d.ts +4 -0
- package/dist/stores/index.d.ts.map +1 -0
- package/dist/stores/index.js +5 -0
- package/dist/stores/index.js.map +1 -0
- package/dist/stores/project-context-registry.d.ts +17 -0
- package/dist/stores/project-context-registry.d.ts.map +1 -0
- package/dist/stores/project-context-registry.js +16 -0
- package/dist/stores/project-context-registry.js.map +1 -0
- package/dist/tool-surface/discover.d.ts +27 -0
- package/dist/tool-surface/discover.d.ts.map +1 -0
- package/dist/tool-surface/discover.js +87 -0
- package/dist/tool-surface/discover.js.map +1 -0
- package/dist/tool-surface/include-utils.d.ts +27 -0
- package/dist/tool-surface/include-utils.d.ts.map +1 -0
- package/dist/tool-surface/include-utils.js +90 -0
- package/dist/tool-surface/include-utils.js.map +1 -0
- package/dist/tool-surface/index.d.ts +6 -0
- package/dist/tool-surface/index.d.ts.map +1 -0
- package/dist/tool-surface/index.js +7 -0
- package/dist/tool-surface/index.js.map +1 -0
- package/dist/tool-surface/manifest.d.ts +94 -0
- package/dist/tool-surface/manifest.d.ts.map +1 -0
- package/dist/tool-surface/manifest.js +234 -0
- package/dist/tool-surface/manifest.js.map +1 -0
- package/dist/tool-surface/openapi-generator.d.ts +15 -0
- package/dist/tool-surface/openapi-generator.d.ts.map +1 -0
- package/dist/tool-surface/openapi-generator.js +261 -0
- package/dist/tool-surface/openapi-generator.js.map +1 -0
- package/dist/tool-surface/register-all-tools.d.ts +4 -0
- package/dist/tool-surface/register-all-tools.d.ts.map +1 -0
- package/dist/tool-surface/register-all-tools.js +33 -0
- package/dist/tool-surface/register-all-tools.js.map +1 -0
- package/dist/tool-surface/skill-installer-common.d.ts +48 -0
- package/dist/tool-surface/skill-installer-common.d.ts.map +1 -0
- package/dist/tool-surface/skill-installer-common.js +195 -0
- package/dist/tool-surface/skill-installer-common.js.map +1 -0
- package/dist/tool-surface/skill-installer.d.ts +10 -0
- package/dist/tool-surface/skill-installer.d.ts.map +1 -0
- package/dist/tool-surface/skill-installer.js +20 -0
- package/dist/tool-surface/skill-installer.js.map +1 -0
- package/dist/tool-surface/skill-installers/claude-code.d.ts +43 -0
- package/dist/tool-surface/skill-installers/claude-code.d.ts.map +1 -0
- package/dist/tool-surface/skill-installers/claude-code.js +65 -0
- package/dist/tool-surface/skill-installers/claude-code.js.map +1 -0
- package/dist/tool-surface/skill-installers/codex-cli.d.ts +27 -0
- package/dist/tool-surface/skill-installers/codex-cli.d.ts.map +1 -0
- package/dist/tool-surface/skill-installers/codex-cli.js +84 -0
- package/dist/tool-surface/skill-installers/codex-cli.js.map +1 -0
- package/dist/tool-surface/skill-installers/cursor.d.ts +72 -0
- package/dist/tool-surface/skill-installers/cursor.d.ts.map +1 -0
- package/dist/tool-surface/skill-installers/cursor.js +81 -0
- package/dist/tool-surface/skill-installers/cursor.js.map +1 -0
- package/dist/tool-surface/skill-installers/gemini-cli.d.ts +66 -0
- package/dist/tool-surface/skill-installers/gemini-cli.d.ts.map +1 -0
- package/dist/tool-surface/skill-installers/gemini-cli.js +111 -0
- package/dist/tool-surface/skill-installers/gemini-cli.js.map +1 -0
- package/dist/tool-surface/skill-manifest-sync.d.ts +11 -0
- package/dist/tool-surface/skill-manifest-sync.d.ts.map +1 -0
- package/dist/tool-surface/skill-manifest-sync.js +65 -0
- package/dist/tool-surface/skill-manifest-sync.js.map +1 -0
- package/dist/tool-surface/tool-surface-registry.d.ts +34 -0
- package/dist/tool-surface/tool-surface-registry.d.ts.map +1 -0
- package/dist/tool-surface/tool-surface-registry.js +23 -0
- package/dist/tool-surface/tool-surface-registry.js.map +1 -0
- package/dist/tools/audit/schema.d.ts +67 -0
- package/dist/tools/audit/schema.d.ts.map +1 -0
- package/dist/tools/audit/schema.js +19 -0
- package/dist/tools/audit/schema.js.map +1 -0
- package/dist/tools/audit/tool-config.d.ts +17 -0
- package/dist/tools/audit/tool-config.d.ts.map +1 -0
- package/dist/tools/audit/tool-config.js +144 -0
- package/dist/tools/audit/tool-config.js.map +1 -0
- package/dist/tools/debug/schema.d.ts +57 -0
- package/dist/tools/debug/schema.d.ts.map +1 -0
- package/dist/tools/debug/schema.js +16 -0
- package/dist/tools/debug/schema.js.map +1 -0
- package/dist/tools/debug/tool-config.d.ts +7 -0
- package/dist/tools/debug/tool-config.d.ts.map +1 -0
- package/dist/tools/debug/tool-config.js +79 -0
- package/dist/tools/debug/tool-config.js.map +1 -0
- package/dist/tools/delegate/schema.d.ts +70 -0
- package/dist/tools/delegate/schema.d.ts.map +1 -0
- package/dist/tools/delegate/schema.js +18 -0
- package/dist/tools/delegate/schema.js.map +1 -0
- package/dist/tools/delegate/tool-config.d.ts +17 -0
- package/dist/tools/delegate/tool-config.d.ts.map +1 -0
- package/dist/tools/delegate/tool-config.js +56 -0
- package/dist/tools/delegate/tool-config.js.map +1 -0
- package/dist/tools/execute-plan/schema.d.ts +66 -0
- package/dist/tools/execute-plan/schema.d.ts.map +1 -0
- package/dist/tools/execute-plan/schema.js +34 -0
- package/dist/tools/execute-plan/schema.js.map +1 -0
- package/dist/tools/execute-plan/tool-config.d.ts +21 -0
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -0
- package/dist/tools/execute-plan/tool-config.js +76 -0
- package/dist/tools/execute-plan/tool-config.js.map +1 -0
- package/dist/tools/explore/schema.d.ts +9 -0
- package/dist/tools/explore/schema.d.ts.map +1 -0
- package/dist/tools/explore/schema.js +64 -0
- package/dist/tools/explore/schema.js.map +1 -0
- package/dist/tools/explore/tool-config.d.ts +7 -0
- package/dist/tools/explore/tool-config.d.ts.map +1 -0
- package/dist/tools/explore/tool-config.js +36 -0
- package/dist/tools/explore/tool-config.js.map +1 -0
- package/dist/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/investigate/schema.d.ts +59 -0
- package/dist/tools/investigate/schema.d.ts.map +1 -0
- package/dist/tools/investigate/schema.js +12 -0
- package/dist/tools/investigate/schema.js.map +1 -0
- package/dist/tools/investigate/tool-config.d.ts +23 -0
- package/dist/tools/investigate/tool-config.d.ts.map +1 -0
- package/dist/tools/investigate/tool-config.js +93 -0
- package/dist/tools/investigate/tool-config.js.map +1 -0
- package/dist/tools/register-context-block/schema.d.ts +8 -0
- package/dist/tools/register-context-block/schema.d.ts.map +1 -0
- package/dist/tools/register-context-block/schema.js +7 -0
- package/dist/tools/register-context-block/schema.js.map +1 -0
- package/dist/tools/register-context-block/tool-config.d.ts +6 -0
- package/dist/tools/register-context-block/tool-config.d.ts.map +1 -0
- package/dist/tools/register-context-block/tool-config.js +38 -0
- package/dist/tools/register-context-block/tool-config.js.map +1 -0
- package/dist/tools/retry/schema.d.ts +54 -0
- package/dist/tools/retry/schema.d.ts.map +1 -0
- package/dist/tools/retry/schema.js +12 -0
- package/dist/tools/retry/schema.js.map +1 -0
- package/dist/tools/retry/tool-config.d.ts +11 -0
- package/dist/tools/retry/tool-config.d.ts.map +1 -0
- package/dist/tools/retry/tool-config.js +60 -0
- package/dist/tools/retry/tool-config.js.map +1 -0
- package/dist/tools/review/schema.d.ts +61 -0
- package/dist/tools/review/schema.d.ts.map +1 -0
- package/dist/tools/review/schema.js +16 -0
- package/dist/tools/review/schema.js.map +1 -0
- package/dist/tools/review/tool-config.d.ts +7 -0
- package/dist/tools/review/tool-config.d.ts.map +1 -0
- package/dist/tools/review/tool-config.js +85 -0
- package/dist/tools/review/tool-config.js.map +1 -0
- package/dist/tools/shared-output.d.ts +56 -0
- package/dist/tools/shared-output.d.ts.map +1 -0
- package/dist/tools/shared-output.js +33 -0
- package/dist/tools/shared-output.js.map +1 -0
- package/dist/tools/verify/schema.d.ts +56 -0
- package/dist/tools/verify/schema.d.ts.map +1 -0
- package/dist/tools/verify/schema.js +16 -0
- package/dist/tools/verify/schema.js.map +1 -0
- package/dist/tools/verify/tool-config.d.ts +14 -0
- package/dist/tools/verify/tool-config.d.ts.map +1 -0
- package/dist/tools/verify/tool-config.js +112 -0
- package/dist/tools/verify/tool-config.js.map +1 -0
- package/dist/transport/http-listener.d.ts +37 -0
- package/dist/transport/http-listener.d.ts.map +1 -0
- package/dist/transport/http-listener.js +50 -0
- package/dist/transport/http-listener.js.map +1 -0
- package/dist/transport/index.d.ts +4 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +4 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/loopback-enforcer.d.ts +29 -0
- package/dist/transport/loopback-enforcer.d.ts.map +1 -0
- package/dist/transport/loopback-enforcer.js +71 -0
- package/dist/transport/loopback-enforcer.js.map +1 -0
- package/dist/transport/route-dispatcher.d.ts +34 -0
- package/dist/transport/route-dispatcher.d.ts.map +1 -0
- package/dist/transport/route-dispatcher.js +62 -0
- package/dist/transport/route-dispatcher.js.map +1 -0
- package/dist/types/config.d.ts +138 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/enums.d.ts +168 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/enums.js +113 -0
- package/dist/types/enums.js.map +1 -0
- package/dist/types/run-result.d.ts +130 -0
- package/dist/types/run-result.d.ts.map +1 -0
- package/dist/types/run-result.js +2 -0
- package/dist/types/run-result.js.map +1 -0
- package/dist/types/stage-stats.d.ts +85 -0
- package/dist/types/stage-stats.d.ts.map +1 -0
- package/dist/types/stage-stats.js +6 -0
- package/dist/types/stage-stats.js.map +1 -0
- package/dist/types/task-spec.d.ts +48 -0
- package/dist/types/task-spec.d.ts.map +1 -0
- package/dist/types/task-spec.js +2 -0
- package/dist/types/task-spec.js.map +1 -0
- package/dist/types.d.ts +5 -405
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -26
- package/dist/types.js.map +1 -1
- package/package.json +221 -204
- package/dist/auth/claude-oauth.d.ts +0 -6
- package/dist/auth/claude-oauth.d.ts.map +0 -1
- package/dist/auth/claude-oauth.js +0 -8
- package/dist/auth/claude-oauth.js.map +0 -1
- package/dist/auth/codex-oauth.d.ts +0 -6
- package/dist/auth/codex-oauth.d.ts.map +0 -1
- package/dist/auth/codex-oauth.js +0 -50
- package/dist/auth/codex-oauth.js.map +0 -1
- package/dist/auto-commit.d.ts +0 -18
- package/dist/auto-commit.d.ts.map +0 -1
- package/dist/auto-commit.js.map +0 -1
- package/dist/batch-cache.d.ts +0 -27
- package/dist/batch-cache.d.ts.map +0 -1
- package/dist/batch-cache.js +0 -71
- package/dist/batch-cache.js.map +0 -1
- package/dist/batch-registry.d.ts +0 -85
- package/dist/batch-registry.d.ts.map +0 -1
- package/dist/batch-registry.js +0 -170
- package/dist/batch-registry.js.map +0 -1
- package/dist/config/read-only-review-flag.d.ts +0 -8
- package/dist/config/read-only-review-flag.d.ts.map +0 -1
- package/dist/config/read-only-review-flag.js +0 -14
- package/dist/config/read-only-review-flag.js.map +0 -1
- package/dist/context/context-block-store.d.ts +0 -85
- package/dist/context/context-block-store.d.ts.map +0 -1
- package/dist/context/context-block-store.js +0 -114
- package/dist/context/context-block-store.js.map +0 -1
- package/dist/context/expand-context-blocks.d.ts +0 -20
- package/dist/context/expand-context-blocks.d.ts.map +0 -1
- package/dist/context/expand-context-blocks.js +0 -46
- package/dist/context/expand-context-blocks.js.map +0 -1
- package/dist/cost/compute.d.ts +0 -33
- package/dist/cost/compute.d.ts.map +0 -1
- package/dist/cost/compute.js +0 -67
- package/dist/cost/compute.js.map +0 -1
- package/dist/cost/cost-meter.d.ts +0 -13
- package/dist/cost/cost-meter.d.ts.map +0 -1
- package/dist/cost/cost-meter.js +0 -20
- package/dist/cost/cost-meter.js.map +0 -1
- package/dist/cost/rollup.d.ts +0 -18
- package/dist/cost/rollup.d.ts.map +0 -1
- package/dist/cost/rollup.js +0 -43
- package/dist/cost/rollup.js.map +0 -1
- package/dist/delegate-with-escalation.d.ts +0 -28
- package/dist/delegate-with-escalation.d.ts.map +0 -1
- package/dist/delegate-with-escalation.js +0 -205
- package/dist/delegate-with-escalation.js.map +0 -1
- package/dist/diagnostics/http-server-log.d.ts +0 -63
- package/dist/diagnostics/http-server-log.d.ts.map +0 -1
- package/dist/diagnostics/http-server-log.js.map +0 -1
- package/dist/diagnostics/jsonl-writer.d.ts.map +0 -1
- package/dist/diagnostics/jsonl-writer.js.map +0 -1
- package/dist/diagnostics/request-spill.d.ts.map +0 -1
- package/dist/diagnostics/request-spill.js.map +0 -1
- package/dist/diagnostics/types.d.ts +0 -65
- package/dist/diagnostics/types.d.ts.map +0 -1
- package/dist/diagnostics/types.js.map +0 -1
- package/dist/diagnostics/verbose-line.d.ts.map +0 -1
- package/dist/diagnostics/verbose-line.js +0 -99
- package/dist/diagnostics/verbose-line.js.map +0 -1
- package/dist/effort-inference.d.ts +0 -7
- package/dist/effort-inference.d.ts.map +0 -1
- package/dist/effort-inference.js +0 -22
- package/dist/effort-inference.js.map +0 -1
- package/dist/executors/_shared/findings-schema.d.ts +0 -103
- package/dist/executors/_shared/findings-schema.d.ts.map +0 -1
- package/dist/executors/_shared/findings-schema.js +0 -73
- package/dist/executors/_shared/findings-schema.js.map +0 -1
- package/dist/executors/_shared/review-verdict-mapping.d.ts +0 -16
- package/dist/executors/_shared/review-verdict-mapping.d.ts.map +0 -1
- package/dist/executors/_shared/review-verdict-mapping.js +0 -24
- package/dist/executors/_shared/review-verdict-mapping.js.map +0 -1
- package/dist/executors/audit.d.ts +0 -7
- package/dist/executors/audit.d.ts.map +0 -1
- package/dist/executors/audit.js +0 -181
- package/dist/executors/audit.js.map +0 -1
- package/dist/executors/debug.d.ts +0 -7
- package/dist/executors/debug.d.ts.map +0 -1
- package/dist/executors/debug.js +0 -88
- package/dist/executors/debug.js.map +0 -1
- package/dist/executors/delegate.d.ts +0 -40
- package/dist/executors/delegate.d.ts.map +0 -1
- package/dist/executors/delegate.js +0 -151
- package/dist/executors/delegate.js.map +0 -1
- package/dist/executors/execute-plan.d.ts +0 -11
- package/dist/executors/execute-plan.d.ts.map +0 -1
- package/dist/executors/execute-plan.js +0 -160
- package/dist/executors/execute-plan.js.map +0 -1
- package/dist/executors/execution-context.d.ts +0 -3
- package/dist/executors/execution-context.d.ts.map +0 -1
- package/dist/executors/execution-context.js +0 -25
- package/dist/executors/execution-context.js.map +0 -1
- package/dist/executors/explore.d.ts +0 -13
- package/dist/executors/explore.d.ts.map +0 -1
- package/dist/executors/explore.js +0 -352
- package/dist/executors/explore.js.map +0 -1
- package/dist/executors/index.d.ts +0 -10
- package/dist/executors/index.d.ts.map +0 -1
- package/dist/executors/index.js +0 -11
- package/dist/executors/index.js.map +0 -1
- package/dist/executors/investigate.d.ts +0 -11
- package/dist/executors/investigate.d.ts.map +0 -1
- package/dist/executors/investigate.js +0 -131
- package/dist/executors/investigate.js.map +0 -1
- package/dist/executors/retry.d.ts +0 -20
- package/dist/executors/retry.d.ts.map +0 -1
- package/dist/executors/retry.js +0 -99
- package/dist/executors/retry.js.map +0 -1
- package/dist/executors/review.d.ts +0 -7
- package/dist/executors/review.d.ts.map +0 -1
- package/dist/executors/review.js +0 -152
- package/dist/executors/review.js.map +0 -1
- package/dist/executors/shared-compute.d.ts +0 -5
- package/dist/executors/shared-compute.d.ts.map +0 -1
- package/dist/executors/shared-compute.js +0 -19
- package/dist/executors/shared-compute.js.map +0 -1
- package/dist/executors/types.d.ts +0 -129
- package/dist/executors/types.d.ts.map +0 -1
- package/dist/executors/types.js.map +0 -1
- package/dist/executors/verify.d.ts +0 -7
- package/dist/executors/verify.d.ts.map +0 -1
- package/dist/executors/verify.js +0 -163
- package/dist/executors/verify.js.map +0 -1
- package/dist/file-artifact-check.d.ts.map +0 -1
- package/dist/file-artifact-check.js.map +0 -1
- package/dist/heartbeat.d.ts +0 -139
- package/dist/heartbeat.d.ts.map +0 -1
- package/dist/heartbeat.js +0 -401
- package/dist/heartbeat.js.map +0 -1
- package/dist/intake/clarification-store.d.ts +0 -23
- package/dist/intake/clarification-store.d.ts.map +0 -1
- package/dist/intake/clarification-store.js +0 -106
- package/dist/intake/clarification-store.js.map +0 -1
- package/dist/intake/compilers/audit.d.ts +0 -8
- package/dist/intake/compilers/audit.d.ts.map +0 -1
- package/dist/intake/compilers/audit.js +0 -50
- package/dist/intake/compilers/audit.js.map +0 -1
- package/dist/intake/compilers/debug.d.ts +0 -9
- package/dist/intake/compilers/debug.d.ts.map +0 -1
- package/dist/intake/compilers/debug.js +0 -32
- package/dist/intake/compilers/debug.js.map +0 -1
- package/dist/intake/compilers/delegate.d.ts +0 -16
- package/dist/intake/compilers/delegate.d.ts.map +0 -1
- package/dist/intake/compilers/delegate.js +0 -32
- package/dist/intake/compilers/delegate.js.map +0 -1
- package/dist/intake/compilers/execute-plan.d.ts +0 -14
- package/dist/intake/compilers/execute-plan.d.ts.map +0 -1
- package/dist/intake/compilers/execute-plan.js +0 -49
- package/dist/intake/compilers/execute-plan.js.map +0 -1
- package/dist/intake/compilers/explore.d.ts +0 -29
- package/dist/intake/compilers/explore.d.ts.map +0 -1
- package/dist/intake/compilers/explore.js +0 -108
- package/dist/intake/compilers/explore.js.map +0 -1
- package/dist/intake/compilers/investigate.d.ts +0 -12
- package/dist/intake/compilers/investigate.d.ts.map +0 -1
- package/dist/intake/compilers/investigate.js +0 -34
- package/dist/intake/compilers/investigate.js.map +0 -1
- package/dist/intake/compilers/review.d.ts +0 -9
- package/dist/intake/compilers/review.d.ts.map +0 -1
- package/dist/intake/compilers/review.js +0 -51
- package/dist/intake/compilers/review.js.map +0 -1
- package/dist/intake/compilers/verify.d.ts +0 -8
- package/dist/intake/compilers/verify.d.ts.map +0 -1
- package/dist/intake/compilers/verify.js +0 -52
- package/dist/intake/compilers/verify.js.map +0 -1
- package/dist/intake/confirm.d.ts +0 -7
- package/dist/intake/confirm.d.ts.map +0 -1
- package/dist/intake/confirm.js +0 -109
- package/dist/intake/confirm.js.map +0 -1
- package/dist/intake/feature-flag.d.ts +0 -6
- package/dist/intake/feature-flag.d.ts.map +0 -1
- package/dist/intake/feature-flag.js +0 -13
- package/dist/intake/feature-flag.js.map +0 -1
- package/dist/intake/force-clarification.d.ts +0 -5
- package/dist/intake/force-clarification.d.ts.map +0 -1
- package/dist/intake/force-clarification.js +0 -44
- package/dist/intake/force-clarification.js.map +0 -1
- package/dist/intake/infer.d.ts +0 -3
- package/dist/intake/infer.d.ts.map +0 -1
- package/dist/intake/infer.js +0 -42
- package/dist/intake/infer.js.map +0 -1
- package/dist/observability/buckets.d.ts +0 -3
- package/dist/observability/buckets.d.ts.map +0 -1
- package/dist/observability/buckets.js +0 -21
- package/dist/observability/buckets.js.map +0 -1
- package/dist/observability/bus.d.ts +0 -11
- package/dist/observability/bus.d.ts.map +0 -1
- package/dist/observability/bus.js +0 -37
- package/dist/observability/bus.js.map +0 -1
- package/dist/observability/events.d.ts +0 -1276
- package/dist/observability/events.d.ts.map +0 -1
- package/dist/observability/events.js +0 -476
- package/dist/observability/events.js.map +0 -1
- package/dist/observability/local-log-sink.d.ts +0 -10
- package/dist/observability/local-log-sink.d.ts.map +0 -1
- package/dist/observability/local-log-sink.js.map +0 -1
- package/dist/observability/telemetry-sink.d.ts +0 -12
- package/dist/observability/telemetry-sink.d.ts.map +0 -1
- package/dist/observability/telemetry-sink.js +0 -24
- package/dist/observability/telemetry-sink.js.map +0 -1
- package/dist/project-context.d.ts +0 -19
- package/dist/project-context.d.ts.map +0 -1
- package/dist/project-context.js +0 -18
- package/dist/project-context.js.map +0 -1
- package/dist/provider.d.ts +0 -5
- package/dist/provider.d.ts.map +0 -1
- package/dist/provider.js +0 -127
- package/dist/provider.js.map +0 -1
- package/dist/readiness/readiness.d.ts +0 -14
- package/dist/readiness/readiness.d.ts.map +0 -1
- package/dist/readiness/readiness.js +0 -162
- package/dist/readiness/readiness.js.map +0 -1
- package/dist/reporting/compose-investigate-headline.d.ts +0 -11
- package/dist/reporting/compose-investigate-headline.d.ts.map +0 -1
- package/dist/reporting/compose-investigate-headline.js +0 -29
- package/dist/reporting/compose-investigate-headline.js.map +0 -1
- package/dist/reporting/parse-investigation-report.d.ts +0 -39
- package/dist/reporting/parse-investigation-report.d.ts.map +0 -1
- package/dist/reporting/parse-investigation-report.js +0 -150
- package/dist/reporting/parse-investigation-report.js.map +0 -1
- package/dist/research/allowlist.d.ts +0 -25
- package/dist/research/allowlist.d.ts.map +0 -1
- package/dist/research/allowlist.js +0 -102
- package/dist/research/allowlist.js.map +0 -1
- package/dist/review/aggregate-result.d.ts +0 -5
- package/dist/review/aggregate-result.d.ts.map +0 -1
- package/dist/review/aggregate-result.js +0 -35
- package/dist/review/aggregate-result.js.map +0 -1
- package/dist/review/diff-review.d.ts +0 -46
- package/dist/review/diff-review.d.ts.map +0 -1
- package/dist/review/diff-review.js +0 -65
- package/dist/review/diff-review.js.map +0 -1
- package/dist/review/evidence.d.ts +0 -15
- package/dist/review/evidence.d.ts.map +0 -1
- package/dist/review/evidence.js +0 -26
- package/dist/review/evidence.js.map +0 -1
- package/dist/review/fallback-extraction.d.ts +0 -17
- package/dist/review/fallback-extraction.d.ts.map +0 -1
- package/dist/review/fallback-extraction.js +0 -189
- package/dist/review/fallback-extraction.js.map +0 -1
- package/dist/review/parse-reviewer-findings.d.ts +0 -26
- package/dist/review/parse-reviewer-findings.d.ts.map +0 -1
- package/dist/review/parse-reviewer-findings.js +0 -73
- package/dist/review/parse-reviewer-findings.js.map +0 -1
- package/dist/review/quality-only-prompts.d.ts +0 -33
- package/dist/review/quality-only-prompts.d.ts.map +0 -1
- package/dist/review/quality-only-prompts.js +0 -106
- package/dist/review/quality-only-prompts.js.map +0 -1
- package/dist/review/quality-reviewer.d.ts +0 -67
- package/dist/review/quality-reviewer.d.ts.map +0 -1
- package/dist/review/quality-reviewer.js +0 -200
- package/dist/review/quality-reviewer.js.map +0 -1
- package/dist/review/reviewer-prompt.d.ts +0 -14
- package/dist/review/reviewer-prompt.d.ts.map +0 -1
- package/dist/review/reviewer-prompt.js +0 -54
- package/dist/review/reviewer-prompt.js.map +0 -1
- package/dist/review/spec-reviewer.d.ts +0 -26
- package/dist/review/spec-reviewer.d.ts.map +0 -1
- package/dist/review/spec-reviewer.js +0 -85
- package/dist/review/spec-reviewer.js.map +0 -1
- package/dist/routing/canonical-model-identity.d.ts.map +0 -1
- package/dist/routing/canonical-model-identity.js.map +0 -1
- package/dist/routing/canonical-model.d.ts +0 -7
- package/dist/routing/canonical-model.d.ts.map +0 -1
- package/dist/routing/canonical-model.js +0 -11
- package/dist/routing/canonical-model.js.map +0 -1
- package/dist/routing/model-profiles.d.ts +0 -126
- package/dist/routing/model-profiles.d.ts.map +0 -1
- package/dist/routing/model-profiles.js +0 -393
- package/dist/routing/model-profiles.js.map +0 -1
- package/dist/routing/resolve-agent.d.ts +0 -8
- package/dist/routing/resolve-agent.d.ts.map +0 -1
- package/dist/routing/resolve-agent.js +0 -45
- package/dist/routing/resolve-agent.js.map +0 -1
- package/dist/routing/types.d.ts.map +0 -1
- package/dist/routing/types.js +0 -2
- package/dist/routing/types.js.map +0 -1
- package/dist/run-tasks/commit-stage.d.ts +0 -16
- package/dist/run-tasks/commit-stage.d.ts.map +0 -1
- package/dist/run-tasks/commit-stage.js +0 -52
- package/dist/run-tasks/commit-stage.js.map +0 -1
- package/dist/run-tasks/derive-terminal-status.d.ts +0 -4
- package/dist/run-tasks/derive-terminal-status.d.ts.map +0 -1
- package/dist/run-tasks/derive-terminal-status.js +0 -25
- package/dist/run-tasks/derive-terminal-status.js.map +0 -1
- package/dist/run-tasks/execute-task.d.ts +0 -20
- package/dist/run-tasks/execute-task.d.ts.map +0 -1
- package/dist/run-tasks/execute-task.js +0 -30
- package/dist/run-tasks/execute-task.js.map +0 -1
- package/dist/run-tasks/fallback-report.d.ts.map +0 -1
- package/dist/run-tasks/fallback-report.js.map +0 -1
- package/dist/run-tasks/index.d.ts +0 -59
- package/dist/run-tasks/index.d.ts.map +0 -1
- package/dist/run-tasks/index.js +0 -119
- package/dist/run-tasks/index.js.map +0 -1
- package/dist/run-tasks/metadata-repair.d.ts.map +0 -1
- package/dist/run-tasks/metadata-repair.js +0 -29
- package/dist/run-tasks/metadata-repair.js.map +0 -1
- package/dist/run-tasks/plan-extraction.d.ts.map +0 -1
- package/dist/run-tasks/plan-extraction.js.map +0 -1
- package/dist/run-tasks/reviewed-lifecycle.d.ts +0 -113
- package/dist/run-tasks/reviewed-lifecycle.d.ts.map +0 -1
- package/dist/run-tasks/reviewed-lifecycle.js +0 -1899
- package/dist/run-tasks/reviewed-lifecycle.js.map +0 -1
- package/dist/run-tasks/stage-idle-tracker.d.ts.map +0 -1
- package/dist/run-tasks/stage-idle-tracker.js.map +0 -1
- package/dist/run-tasks/task-completion-summary.d.ts.map +0 -1
- package/dist/run-tasks/task-completion-summary.js +0 -70
- package/dist/run-tasks/task-completion-summary.js.map +0 -1
- package/dist/run-tasks/verify-stage.d.ts +0 -25
- package/dist/run-tasks/verify-stage.d.ts.map +0 -1
- package/dist/run-tasks/verify-stage.js +0 -168
- package/dist/run-tasks/verify-stage.js.map +0 -1
- package/dist/run-tasks/worker-status.d.ts +0 -9
- package/dist/run-tasks/worker-status.d.ts.map +0 -1
- package/dist/run-tasks/worker-status.js +0 -19
- package/dist/run-tasks/worker-status.js.map +0 -1
- package/dist/runners/base/research-tools.d.ts.map +0 -1
- package/dist/runners/base/research-tools.js.map +0 -1
- package/dist/runners/base/result-builders.d.ts +0 -94
- package/dist/runners/base/result-builders.d.ts.map +0 -1
- package/dist/runners/base/result-builders.js +0 -134
- package/dist/runners/base/result-builders.js.map +0 -1
- package/dist/runners/base/time-check.d.ts.map +0 -1
- package/dist/runners/base/time-check.js.map +0 -1
- package/dist/runners/base/types.d.ts +0 -53
- package/dist/runners/base/types.d.ts.map +0 -1
- package/dist/runners/base/types.js +0 -2
- package/dist/runners/base/types.js.map +0 -1
- package/dist/runners/base/usage-accumulator.d.ts +0 -10
- package/dist/runners/base/usage-accumulator.d.ts.map +0 -1
- package/dist/runners/base/usage-accumulator.js +0 -22
- package/dist/runners/base/usage-accumulator.js.map +0 -1
- package/dist/runners/claude-runner.d.ts +0 -17
- package/dist/runners/claude-runner.d.ts.map +0 -1
- package/dist/runners/claude-runner.js +0 -962
- package/dist/runners/claude-runner.js.map +0 -1
- package/dist/runners/codex-runner.d.ts +0 -32
- package/dist/runners/codex-runner.d.ts.map +0 -1
- package/dist/runners/codex-runner.js +0 -992
- package/dist/runners/codex-runner.js.map +0 -1
- package/dist/runners/error-classification.d.ts +0 -49
- package/dist/runners/error-classification.d.ts.map +0 -1
- package/dist/runners/error-classification.js +0 -140
- package/dist/runners/error-classification.js.map +0 -1
- package/dist/runners/injection-type.d.ts.map +0 -1
- package/dist/runners/injection-type.js.map +0 -1
- package/dist/runners/openai-runner.d.ts +0 -74
- package/dist/runners/openai-runner.d.ts.map +0 -1
- package/dist/runners/openai-runner.js +0 -934
- package/dist/runners/openai-runner.js.map +0 -1
- package/dist/runners/openai-usage-interceptor.d.ts.map +0 -1
- package/dist/runners/openai-usage-interceptor.js +0 -121
- package/dist/runners/openai-usage-interceptor.js.map +0 -1
- package/dist/runners/prevention.d.ts.map +0 -1
- package/dist/runners/prevention.js +0 -108
- package/dist/runners/prevention.js.map +0 -1
- package/dist/runners/supervision.d.ts +0 -129
- package/dist/runners/supervision.d.ts.map +0 -1
- package/dist/runners/supervision.js +0 -310
- package/dist/runners/supervision.js.map +0 -1
- package/dist/runners/types.d.ts +0 -174
- package/dist/runners/types.d.ts.map +0 -1
- package/dist/runners/types.js +0 -2
- package/dist/runners/types.js.map +0 -1
- package/dist/telemetry/bucketing.d.ts +0 -13
- package/dist/telemetry/bucketing.d.ts.map +0 -1
- package/dist/telemetry/bucketing.js +0 -61
- package/dist/telemetry/bucketing.js.map +0 -1
- package/dist/telemetry/clamp.d.ts.map +0 -1
- package/dist/telemetry/clamp.js.map +0 -1
- package/dist/telemetry/concern-classifier.d.ts +0 -9
- package/dist/telemetry/concern-classifier.d.ts.map +0 -1
- package/dist/telemetry/concern-classifier.js.map +0 -1
- package/dist/telemetry/consent-rules.d.ts.map +0 -1
- package/dist/telemetry/consent-rules.js.map +0 -1
- package/dist/telemetry/event-builder.d.ts +0 -15
- package/dist/telemetry/event-builder.d.ts.map +0 -1
- package/dist/telemetry/event-builder.js +0 -327
- package/dist/telemetry/event-builder.js.map +0 -1
- package/dist/telemetry/field-coverage.d.ts +0 -17
- package/dist/telemetry/field-coverage.d.ts.map +0 -1
- package/dist/telemetry/field-coverage.js +0 -110
- package/dist/telemetry/field-coverage.js.map +0 -1
- package/dist/telemetry/normalize.d.ts +0 -18
- package/dist/telemetry/normalize.d.ts.map +0 -1
- package/dist/telemetry/normalize.js +0 -18
- package/dist/telemetry/normalize.js.map +0 -1
- package/dist/telemetry/types.d.ts +0 -1517
- package/dist/telemetry/types.d.ts.map +0 -1
- package/dist/telemetry/types.js +0 -320
- package/dist/telemetry/types.js.map +0 -1
- package/dist/tool-schemas/audit.d.ts +0 -71
- package/dist/tool-schemas/audit.d.ts.map +0 -1
- package/dist/tool-schemas/audit.js +0 -19
- package/dist/tool-schemas/audit.js.map +0 -1
- package/dist/tool-schemas/debug.d.ts +0 -61
- package/dist/tool-schemas/debug.d.ts.map +0 -1
- package/dist/tool-schemas/debug.js +0 -16
- package/dist/tool-schemas/debug.js.map +0 -1
- package/dist/tool-schemas/delegate.d.ts +0 -71
- package/dist/tool-schemas/delegate.d.ts.map +0 -1
- package/dist/tool-schemas/delegate.js +0 -21
- package/dist/tool-schemas/delegate.js.map +0 -1
- package/dist/tool-schemas/execute-plan.d.ts +0 -70
- package/dist/tool-schemas/execute-plan.d.ts.map +0 -1
- package/dist/tool-schemas/execute-plan.js +0 -34
- package/dist/tool-schemas/execute-plan.js.map +0 -1
- package/dist/tool-schemas/explore.d.ts +0 -9
- package/dist/tool-schemas/explore.d.ts.map +0 -1
- package/dist/tool-schemas/explore.js +0 -64
- package/dist/tool-schemas/explore.js.map +0 -1
- package/dist/tool-schemas/index.d.ts +0 -8
- package/dist/tool-schemas/index.d.ts.map +0 -1
- package/dist/tool-schemas/index.js +0 -9
- package/dist/tool-schemas/index.js.map +0 -1
- package/dist/tool-schemas/investigate.d.ts +0 -63
- package/dist/tool-schemas/investigate.d.ts.map +0 -1
- package/dist/tool-schemas/investigate.js +0 -12
- package/dist/tool-schemas/investigate.js.map +0 -1
- package/dist/tool-schemas/retry.d.ts +0 -58
- package/dist/tool-schemas/retry.d.ts.map +0 -1
- package/dist/tool-schemas/retry.js +0 -12
- package/dist/tool-schemas/retry.js.map +0 -1
- package/dist/tool-schemas/review.d.ts +0 -65
- package/dist/tool-schemas/review.d.ts.map +0 -1
- package/dist/tool-schemas/review.js +0 -16
- package/dist/tool-schemas/review.js.map +0 -1
- package/dist/tool-schemas/shared-output.d.ts +0 -60
- package/dist/tool-schemas/shared-output.d.ts.map +0 -1
- package/dist/tool-schemas/shared-output.js +0 -31
- package/dist/tool-schemas/shared-output.js.map +0 -1
- package/dist/tool-schemas/verify.d.ts +0 -60
- package/dist/tool-schemas/verify.d.ts.map +0 -1
- package/dist/tool-schemas/verify.js +0 -16
- package/dist/tool-schemas/verify.js.map +0 -1
- package/dist/tools/call-cache.d.ts.map +0 -1
- package/dist/tools/call-cache.js.map +0 -1
- package/dist/tools/claude-adapter.d.ts +0 -4
- package/dist/tools/claude-adapter.d.ts.map +0 -1
- package/dist/tools/claude-adapter.js +0 -63
- package/dist/tools/claude-adapter.js.map +0 -1
- package/dist/tools/definitions.d.ts +0 -26
- package/dist/tools/definitions.d.ts.map +0 -1
- package/dist/tools/definitions.js +0 -221
- package/dist/tools/definitions.js.map +0 -1
- package/dist/tools/openai-adapter.d.ts +0 -13
- package/dist/tools/openai-adapter.d.ts.map +0 -1
- package/dist/tools/openai-adapter.js +0 -100
- package/dist/tools/openai-adapter.js.map +0 -1
- package/dist/tools/scratchpad.d.ts +0 -28
- package/dist/tools/scratchpad.d.ts.map +0 -1
- package/dist/tools/scratchpad.js +0 -49
- package/dist/tools/scratchpad.js.map +0 -1
- package/dist/tools/tracker.d.ts +0 -47
- package/dist/tools/tracker.d.ts.map +0 -1
- package/dist/tools/tracker.js +0 -71
- package/dist/tools/tracker.js.map +0 -1
- /package/dist/{file-artifact-check.d.ts → bounded-execution/file-artifact-check.d.ts} +0 -0
- /package/dist/{file-artifact-check.js → bounded-execution/file-artifact-check.js} +0 -0
- /package/dist/{routing → config}/canonical-model-identity.d.ts +0 -0
- /package/dist/{routing → config}/canonical-model-identity.js +0 -0
- /package/dist/{routing → escalation}/types.d.ts +0 -0
- /package/dist/{diagnostics → escalation}/types.js +0 -0
- /package/dist/{telemetry → events}/clamp.d.ts +0 -0
- /package/dist/{telemetry → events}/clamp.js +0 -0
- /package/dist/{telemetry → events}/concern-classifier.js +0 -0
- /package/dist/{telemetry → events}/consent-rules.d.ts +0 -0
- /package/dist/{telemetry → events}/consent-rules.js +0 -0
- /package/dist/{diagnostics → events}/http-server-log.js +0 -0
- /package/dist/{diagnostics → events}/jsonl-writer.d.ts +0 -0
- /package/dist/{diagnostics → events}/jsonl-writer.js +0 -0
- /package/dist/{observability → events}/local-log-sink.js +0 -0
- /package/dist/{diagnostics → events}/request-spill.d.ts +0 -0
- /package/dist/{diagnostics → events}/request-spill.js +0 -0
- /package/dist/{diagnostics → events}/verbose-line.d.ts +0 -0
- /package/dist/{auto-commit.js → lifecycle/auto-commit.js} +0 -0
- /package/dist/{run-tasks → lifecycle}/fallback-report.d.ts +0 -0
- /package/dist/{run-tasks → lifecycle}/fallback-report.js +0 -0
- /package/dist/{run-tasks → lifecycle}/metadata-repair.d.ts +0 -0
- /package/dist/{run-tasks → lifecycle}/plan-extraction.d.ts +0 -0
- /package/dist/{run-tasks → lifecycle}/plan-extraction.js +0 -0
- /package/dist/{run-tasks → lifecycle}/stage-idle-tracker.d.ts +0 -0
- /package/dist/{run-tasks → lifecycle}/stage-idle-tracker.js +0 -0
- /package/dist/{run-tasks → lifecycle}/task-completion-summary.d.ts +0 -0
- /package/dist/{runners → providers}/base/research-tools.d.ts +0 -0
- /package/dist/{runners → providers}/base/research-tools.js +0 -0
- /package/dist/{runners → providers}/base/time-check.d.ts +0 -0
- /package/dist/{runners → providers}/base/time-check.js +0 -0
- /package/dist/{executors → providers/base}/types.js +0 -0
- /package/dist/{tools → providers}/call-cache.d.ts +0 -0
- /package/dist/{tools → providers}/call-cache.js +0 -0
- /package/dist/{runners → providers}/injection-type.d.ts +0 -0
- /package/dist/{runners → providers}/injection-type.js +0 -0
- /package/dist/{runners → providers}/openai-usage-interceptor.d.ts +0 -0
- /package/dist/{runners → providers}/prevention.d.ts +0 -0
|
@@ -1,992 +0,0 @@
|
|
|
1
|
-
import OpenAI from 'openai';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { createHash } from 'node:crypto';
|
|
4
|
-
import { getCodexAuth } from '../auth/codex-oauth.js';
|
|
5
|
-
import { withTimeout, } from '../types.js';
|
|
6
|
-
import { priceTokens, subtractTokens, resolveRateCard } from '../cost/compute.js';
|
|
7
|
-
import { READONLY_TOOL_IDS } from '../tools/definitions.js';
|
|
8
|
-
import { FileTracker } from '../tools/tracker.js';
|
|
9
|
-
import { createToolImplementations } from '../tools/definitions.js';
|
|
10
|
-
import { TextScratchpad } from '../tools/scratchpad.js';
|
|
11
|
-
import { CostMeter } from '../cost/cost-meter.js';
|
|
12
|
-
import { CallCache } from '../tools/call-cache.js';
|
|
13
|
-
import { buildSystemPrompt, buildBudgetHint, buildReGroundingMessage, buildFormatConstraintSuffix, RE_GROUNDING_INTERVAL_TURNS, } from './prevention.js';
|
|
14
|
-
import { validateSubAgentOutput, buildRePrompt, sameDegenerateOutput, hasCompletedWork, MAX_DEGENERATE_RETRIES, } from './supervision.js';
|
|
15
|
-
import { injectionTypeFor } from './injection-type.js';
|
|
16
|
-
import { classifyError, isRateLimit, isProviderContextLimit } from './error-classification.js';
|
|
17
|
-
import { buildOkResult as sharedBuildOkResult, buildIncompleteResult as sharedBuildIncompleteResult, buildMaxTurnsExitResult as sharedBuildMaxTurnsExitResult, buildTimeCeilingResult as sharedBuildTimeCeilingResult, } from './base/result-builders.js';
|
|
18
|
-
import { checkTimeCeiling } from './base/time-check.js';
|
|
19
|
-
import { mergeUsage, makeEmptyUsage } from './base/usage-accumulator.js';
|
|
20
|
-
// CODEX_DEBUG=1 causes the runner to log raw HTTP request/response bodies to
|
|
21
|
-
// stderr. Those bodies routinely include the user's prompt, file contents,
|
|
22
|
-
// tool arguments, and other sensitive data — fine for local debugging,
|
|
23
|
-
// dangerous in any deployment that ships logs anywhere. Surface a one-time
|
|
24
|
-
// warning at module load so an operator who flipped the env var without
|
|
25
|
-
// thinking sees it immediately.
|
|
26
|
-
if (process.env.CODEX_DEBUG === '1') {
|
|
27
|
-
// eslint-disable-next-line no-console
|
|
28
|
-
console.warn('[multi-model-agent] WARNING: CODEX_DEBUG=1 is set. Raw request/response ' +
|
|
29
|
-
'bodies (including prompts and file contents) will be logged to stderr. ' +
|
|
30
|
-
'Disable in any environment where logs may be retained or shared.');
|
|
31
|
-
}
|
|
32
|
-
export function createCodexClient(capture) {
|
|
33
|
-
const debug = process.env.CODEX_DEBUG === '1';
|
|
34
|
-
// A custom fetch that tees error-response bodies into `capture`.
|
|
35
|
-
const wrappedFetch = async (url, init) => {
|
|
36
|
-
const res = await fetch(url, init);
|
|
37
|
-
if (!res.ok && capture) {
|
|
38
|
-
const cloned = res.clone();
|
|
39
|
-
let bodyText = '';
|
|
40
|
-
try {
|
|
41
|
-
bodyText = await cloned.text();
|
|
42
|
-
}
|
|
43
|
-
catch { /* ignore */ }
|
|
44
|
-
capture.last = {
|
|
45
|
-
status: res.status,
|
|
46
|
-
bodyText,
|
|
47
|
-
url: String(url),
|
|
48
|
-
requestBodyPreview: typeof init?.body === 'string' ? init.body.slice(0, 2000) : undefined,
|
|
49
|
-
};
|
|
50
|
-
if (debug) {
|
|
51
|
-
// eslint-disable-next-line no-console
|
|
52
|
-
console.error('[codex-runner] HTTP', res.status, String(url));
|
|
53
|
-
// eslint-disable-next-line no-console
|
|
54
|
-
if (bodyText)
|
|
55
|
-
console.error('[codex-runner] body:', bodyText.slice(0, 1000));
|
|
56
|
-
// eslint-disable-next-line no-console
|
|
57
|
-
if (typeof init?.body === 'string')
|
|
58
|
-
console.error('[codex-runner] request:', init.body.slice(0, 1000));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return res;
|
|
62
|
-
};
|
|
63
|
-
// Try Codex OAuth first — route through chatgpt.com backend API
|
|
64
|
-
const auth = getCodexAuth();
|
|
65
|
-
if (auth) {
|
|
66
|
-
return new OpenAI({
|
|
67
|
-
apiKey: auth.accessToken,
|
|
68
|
-
baseURL: 'https://chatgpt.com/backend-api/codex',
|
|
69
|
-
defaultHeaders: {
|
|
70
|
-
'chatgpt-account-id': auth.accountId,
|
|
71
|
-
},
|
|
72
|
-
fetch: wrappedFetch,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
// Fall back to OPENAI_API_KEY env var — uses standard api.openai.com
|
|
76
|
-
const apiKey = process.env.OPENAI_API_KEY;
|
|
77
|
-
if (apiKey) {
|
|
78
|
-
return new OpenAI({ apiKey, fetch: wrappedFetch });
|
|
79
|
-
}
|
|
80
|
-
throw new Error('No Codex credentials found. Run `codex login` or set OPENAI_API_KEY environment variable.');
|
|
81
|
-
}
|
|
82
|
-
function buildCodexTools(impl, sandboxPolicy, toolMode = 'full') {
|
|
83
|
-
if (toolMode === 'none')
|
|
84
|
-
return [];
|
|
85
|
-
const tools = [
|
|
86
|
-
{
|
|
87
|
-
name: 'read_file',
|
|
88
|
-
description: 'Read the contents of a file at the given path. Returns the full file content as a string.',
|
|
89
|
-
parameters: z.toJSONSchema(z.object({
|
|
90
|
-
path: z.string().describe('Absolute or relative file path'),
|
|
91
|
-
})),
|
|
92
|
-
execute: async (args) => impl.readFile(args.path),
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
name: 'write_file',
|
|
96
|
-
description: 'Write content to a file, creating parent directories if needed. Overwrites existing files.',
|
|
97
|
-
parameters: z.toJSONSchema(z.object({
|
|
98
|
-
path: z.string().describe('File path to write to'),
|
|
99
|
-
content: z.string().describe('Content to write'),
|
|
100
|
-
})),
|
|
101
|
-
execute: async (args) => {
|
|
102
|
-
await impl.writeFile(args.path, args.content);
|
|
103
|
-
return `File written: ${args.path}`;
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'edit_file',
|
|
108
|
-
description: 'Replace a unique string in an existing file. Use this instead of write_file ' +
|
|
109
|
-
'when you need to change a specific part of a file without rewriting the whole thing. ' +
|
|
110
|
-
'oldContent must match exactly one location in the file — include enough surrounding ' +
|
|
111
|
-
'context (nearby lines) to make it unique.',
|
|
112
|
-
parameters: z.toJSONSchema(z.object({
|
|
113
|
-
path: z.string().describe('File path to edit'),
|
|
114
|
-
oldContent: z.string().describe('Exact string to find (must be unique in file)'),
|
|
115
|
-
newContent: z.string().describe('Replacement string'),
|
|
116
|
-
})),
|
|
117
|
-
execute: async (args) => {
|
|
118
|
-
await impl.editFile(args.path, args.oldContent, args.newContent);
|
|
119
|
-
return `File edited: ${args.path}`;
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: 'glob',
|
|
124
|
-
description: 'Find files matching a glob pattern in the working directory.',
|
|
125
|
-
parameters: z.toJSONSchema(z.object({
|
|
126
|
-
pattern: z.string().describe('Glob pattern (e.g., "*.ts", "src/**/*.js")'),
|
|
127
|
-
})),
|
|
128
|
-
execute: async (args) => {
|
|
129
|
-
const files = await impl.glob(args.pattern);
|
|
130
|
-
return files.join('\n') || 'No files found.';
|
|
131
|
-
},
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
name: 'grep',
|
|
135
|
-
description: 'Search for a pattern in a file. Returns matching lines with line numbers.',
|
|
136
|
-
parameters: z.toJSONSchema(z.object({
|
|
137
|
-
pattern: z.string().describe('Search pattern (regex)'),
|
|
138
|
-
path: z.string().describe('File path to search in'),
|
|
139
|
-
})),
|
|
140
|
-
execute: async (args) => {
|
|
141
|
-
const result = await impl.grep(args.pattern, args.path);
|
|
142
|
-
return result || 'No matches found.';
|
|
143
|
-
},
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
name: 'list_files',
|
|
147
|
-
description: 'List files and directories at the given path. Directories have a trailing "/".',
|
|
148
|
-
parameters: z.toJSONSchema(z.object({
|
|
149
|
-
path: z.string().default('.').describe('Directory path to list'),
|
|
150
|
-
})),
|
|
151
|
-
execute: async (args) => {
|
|
152
|
-
const entries = await impl.listFiles(args.path ?? '.');
|
|
153
|
-
return entries.join('\n') || 'Empty directory.';
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
];
|
|
157
|
-
if (toolMode === 'full') {
|
|
158
|
-
tools.push({
|
|
159
|
-
name: 'run_shell',
|
|
160
|
-
description: 'Execute a shell command and return stdout, stderr, and exit code. Use for running tests, installing packages, etc.',
|
|
161
|
-
parameters: z.toJSONSchema(z.object({
|
|
162
|
-
command: z.string().describe('Shell command to execute'),
|
|
163
|
-
})),
|
|
164
|
-
execute: async (args) => {
|
|
165
|
-
const result = await impl.runShell(args.command);
|
|
166
|
-
return JSON.stringify(result);
|
|
167
|
-
},
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
if (toolMode === 'readonly') {
|
|
171
|
-
return tools.filter(t => READONLY_TOOL_IDS.includes(t.name));
|
|
172
|
-
}
|
|
173
|
-
return tools;
|
|
174
|
-
}
|
|
175
|
-
export async function runCodex(prompt, options, providerConfig, defaults) {
|
|
176
|
-
const timeoutMs = options.timeoutMs ?? providerConfig.timeoutMs ?? defaults.timeoutMs;
|
|
177
|
-
const toolMode = options.tools ?? defaults.tools;
|
|
178
|
-
const cwd = options.cwd ?? process.cwd();
|
|
179
|
-
const sandboxPolicy = options.sandboxPolicy ?? providerConfig.sandboxPolicy ?? 'cwd-only';
|
|
180
|
-
const effort = options.effort ?? providerConfig.effort;
|
|
181
|
-
const abortController = new AbortController();
|
|
182
|
-
// --- Progress event emission (Task 11) ----------------------------------
|
|
183
|
-
//
|
|
184
|
-
// `onProgress` is already wrapped in `safeSink` by the orchestrator
|
|
185
|
-
// (Task 8), so any throw from the consumer callback is swallowed
|
|
186
|
-
// upstream and cannot corrupt this loop. We do not need to wrap it
|
|
187
|
-
// again here.
|
|
188
|
-
const onProgress = options.onProgress;
|
|
189
|
-
const emit = (event) => {
|
|
190
|
-
if (onProgress)
|
|
191
|
-
onProgress(event);
|
|
192
|
-
};
|
|
193
|
-
// Accumulated state (hoisted so the timeout callback can read partial
|
|
194
|
-
// progress, AND so the FileTracker callback closure — constructed below
|
|
195
|
-
// — can read the running turn count at firing time).
|
|
196
|
-
//
|
|
197
|
-
// Turn attribution for tool calls: in codex-runner, tool calls fire in
|
|
198
|
-
// the tool-execution loop AFTER the model's stream for that turn has
|
|
199
|
-
// completed but BEFORE the next iteration of `while` starts. The `turns`
|
|
200
|
-
// variable already reflects the current turn at that point (it was
|
|
201
|
-
// incremented at the top of the iteration), so the callback can read it
|
|
202
|
-
// directly — no +1 offset.
|
|
203
|
-
let usage = makeEmptyUsage();
|
|
204
|
-
let turns = 0;
|
|
205
|
-
const tracker = new FileTracker((summary) => {
|
|
206
|
-
emit({ kind: 'tool_call', turn: turns, toolSummary: summary });
|
|
207
|
-
});
|
|
208
|
-
const toolImpls = createToolImplementations(tracker, cwd, sandboxPolicy, abortController.signal);
|
|
209
|
-
// --- Cost meter (Task 25) ------------------------------------------------
|
|
210
|
-
const costMeter = new CostMeter({ ceiling: options.maxCostUSD });
|
|
211
|
-
// --- Call cache (Task 25) ------------------------------------------------
|
|
212
|
-
const callCache = new CallCache();
|
|
213
|
-
const agentType = providerConfig.type ?? 'codex';
|
|
214
|
-
// Track last turn cost for estimating next turn cost
|
|
215
|
-
let lastTurnCostUSD = 0;
|
|
216
|
-
// Per-turn cumulative → delta tracking state (§4.2)
|
|
217
|
-
let lastCumulative = {
|
|
218
|
-
inputTokens: 0, outputTokens: 0,
|
|
219
|
-
cachedReadTokens: 0, cachedCreationTokens: 0, reasoningTokens: 0,
|
|
220
|
-
};
|
|
221
|
-
/**
|
|
222
|
-
* Check if we can afford the next turn based on previous turn cost estimate.
|
|
223
|
-
*/
|
|
224
|
-
function canAffordNextTurn() {
|
|
225
|
-
if (!costMeter.canProceed(lastTurnCostUSD > 0 ? lastTurnCostUSD : 0.001)) {
|
|
226
|
-
return false;
|
|
227
|
-
}
|
|
228
|
-
return true;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Build a cost_exceeded result.
|
|
232
|
-
*/
|
|
233
|
-
function buildCostExceededResult() {
|
|
234
|
-
const tc = usageTokenCounts(usage);
|
|
235
|
-
const workerCard = resolveProviderRateCard(providerConfig);
|
|
236
|
-
const costUSD = workerCard ? priceTokens(tc, workerCard) : null;
|
|
237
|
-
let costDeltaVsParentUSD = null;
|
|
238
|
-
if (costUSD !== null && parentModel) {
|
|
239
|
-
const parentCard = resolveRateCard(parentModel);
|
|
240
|
-
if (parentCard) {
|
|
241
|
-
costDeltaVsParentUSD = costUSD - priceTokens(tc, parentCard);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
return {
|
|
245
|
-
output: `Cost ceiling exceeded: maxCostUSD=${options.maxCostUSD}`,
|
|
246
|
-
status: 'cost_exceeded',
|
|
247
|
-
usage: {
|
|
248
|
-
inputTokens: usage.inputTokens,
|
|
249
|
-
outputTokens: usage.outputTokens,
|
|
250
|
-
totalTokens: usage.inputTokens + usage.outputTokens,
|
|
251
|
-
costUSD: costUSD ?? 0,
|
|
252
|
-
costDeltaVsParentUSD,
|
|
253
|
-
cachedTokens: usage.cachedReadTokens,
|
|
254
|
-
cachedReadTokens: usage.cachedReadTokens,
|
|
255
|
-
cachedCreationTokens: usage.cachedCreationTokens,
|
|
256
|
-
reasoningTokens: usage.reasoningTokens,
|
|
257
|
-
},
|
|
258
|
-
turns,
|
|
259
|
-
filesRead: tracker.getReads(),
|
|
260
|
-
directoriesListed: tracker.getDirectoriesListed(),
|
|
261
|
-
filesWritten: tracker.getWrites(),
|
|
262
|
-
toolCalls: tracker.getToolCalls(),
|
|
263
|
-
outputIsDiagnostic: true,
|
|
264
|
-
escalationLog: [],
|
|
265
|
-
parsedFindings: null,
|
|
266
|
-
durationMs: Date.now() - taskStartMs,
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
const codexTools = buildCodexTools(toolImpls, sandboxPolicy, toolMode);
|
|
270
|
-
const toolsByName = new Map(codexTools.map(t => [t.name, t]));
|
|
271
|
-
const responsesTools = codexTools.map(t => ({
|
|
272
|
-
type: 'function',
|
|
273
|
-
name: t.name,
|
|
274
|
-
description: t.description,
|
|
275
|
-
parameters: t.parameters,
|
|
276
|
-
strict: false,
|
|
277
|
-
}));
|
|
278
|
-
// Auto-enable web_search for codex unless the user explicitly set hostedTools
|
|
279
|
-
// (including an explicit empty array to opt out). This keeps the capability
|
|
280
|
-
// matrix's claim that codex has web_search true at default settings — the
|
|
281
|
-
// user's guiding principle is to minimize required config.
|
|
282
|
-
const configuredHostedTools = providerConfig.hostedTools ?? ['web_search'];
|
|
283
|
-
const hostedTools = toolMode !== 'none'
|
|
284
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
285
|
-
? configuredHostedTools.map(t => ({ type: t }))
|
|
286
|
-
: [];
|
|
287
|
-
const allTools = [...responsesTools, ...hostedTools];
|
|
288
|
-
// --- Custom toolset injection (explore executor, taskIndex=1) ---
|
|
289
|
-
if (options.customToolset && options.customToolset.length > 0) {
|
|
290
|
-
for (const ct of options.customToolset) {
|
|
291
|
-
const jsonSchema = ct.inputSchema instanceof z.ZodType
|
|
292
|
-
? z.toJSONSchema(ct.inputSchema)
|
|
293
|
-
: ct.inputSchema;
|
|
294
|
-
const codexTool = {
|
|
295
|
-
name: ct.name,
|
|
296
|
-
description: ct.description,
|
|
297
|
-
parameters: jsonSchema,
|
|
298
|
-
execute: async (args) => {
|
|
299
|
-
const result = await ct.invoke(args);
|
|
300
|
-
return typeof result === 'string' ? result : JSON.stringify(result);
|
|
301
|
-
},
|
|
302
|
-
};
|
|
303
|
-
toolsByName.set(ct.name, codexTool);
|
|
304
|
-
allTools.push({
|
|
305
|
-
type: 'function',
|
|
306
|
-
name: ct.name,
|
|
307
|
-
description: ct.description,
|
|
308
|
-
parameters: jsonSchema,
|
|
309
|
-
strict: false,
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// --- Prevention layer: system prompt + budget hint ---
|
|
314
|
-
//
|
|
315
|
-
// buildSystemPrompt() is deliberately static and parameter-free. The budget
|
|
316
|
-
// hint is prepended to the user prompt so the model sees it as part of its
|
|
317
|
-
// task brief, while the system prompt is threaded through the Responses API
|
|
318
|
-
// `instructions` field.
|
|
319
|
-
const systemPrompt = buildSystemPrompt() + buildFormatConstraintSuffix(options.formatConstraints ?? {});
|
|
320
|
-
const instructions = options.instructionsSuffix
|
|
321
|
-
? `${systemPrompt}\n\n${options.instructionsSuffix}`
|
|
322
|
-
: systemPrompt;
|
|
323
|
-
const budgetHint = buildBudgetHint({ timeoutMs, maxCostUSD: options.maxCostUSD });
|
|
324
|
-
const promptWithBudgetHint = `${budgetHint}\n\n${prompt}`;
|
|
325
|
-
// --- onInitialRequest (Task 12) ----------------------------------------
|
|
326
|
-
//
|
|
327
|
-
// Fire once per attempt with the canonical orchestrator-side initial
|
|
328
|
-
// brief: `${systemPrompt}\n\n${promptWithBudgetHint}`. This is NOT the
|
|
329
|
-
// literal request body the OpenAI Responses API transmits — codex
|
|
330
|
-
// sends the systemPrompt via the Responses API `instructions` field
|
|
331
|
-
// and the user prompt as a structured `input` message array. We hash
|
|
332
|
-
// the canonical form instead so the hash is cross-runner stable:
|
|
333
|
-
// openai-runner and claude-runner compute the same hash from the same
|
|
334
|
-
// canonical string. See `AttemptRecord.initialPromptHash` in types.ts
|
|
335
|
-
// for the full wire-level caveat.
|
|
336
|
-
if (options.onInitialRequest) {
|
|
337
|
-
const canonicalInitialBrief = `${systemPrompt}\n\n${promptWithBudgetHint}`;
|
|
338
|
-
try {
|
|
339
|
-
options.onInitialRequest({
|
|
340
|
-
lengthChars: canonicalInitialBrief.length,
|
|
341
|
-
sha256: createHash('sha256').update(canonicalInitialBrief).digest('hex'),
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
catch {
|
|
345
|
-
// Swallow — a broken callback must not affect dispatch.
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
// --- Scratchpad: buffers every text emission the codex backend streams
|
|
349
|
-
// through our loop. Every termination path (ok / incomplete / max_turns /
|
|
350
|
-
// error / timeout) salvages `scratchpad.latest()` when the final message
|
|
351
|
-
// is empty or degenerate. ---
|
|
352
|
-
const scratchpad = new TextScratchpad();
|
|
353
|
-
// --- Task timing + parent model (Task 9) --------------------------------
|
|
354
|
-
const taskStartMs = Date.now();
|
|
355
|
-
const parentModel = options.parentModel;
|
|
356
|
-
const run = async () => {
|
|
357
|
-
const capture = {};
|
|
358
|
-
const client = createCodexClient(capture);
|
|
359
|
-
const input = [
|
|
360
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
361
|
-
{ role: 'user', content: promptWithBudgetHint },
|
|
362
|
-
];
|
|
363
|
-
let output = '';
|
|
364
|
-
// --- Abort-path investigation (plan Step 2) ---------------------------
|
|
365
|
-
//
|
|
366
|
-
// The 2026-04-10 Fate dispatch captured an error "Request was aborted |
|
|
367
|
-
// last response status: completed". The "completed" suffix was
|
|
368
|
-
// misleading: it was captured from a PREVIOUS successful turn, not the
|
|
369
|
-
// failed one. Mechanism:
|
|
370
|
-
//
|
|
371
|
-
// 1. Turn N's stream emits `response.completed` with status
|
|
372
|
-
// `'completed'`. We update `lastResponseStatus = 'completed'`.
|
|
373
|
-
// 2. Turn N+1 starts; `client.responses.create(...)` opens a new
|
|
374
|
-
// stream, but the abort signal fires before any
|
|
375
|
-
// `response.completed` event is received.
|
|
376
|
-
// 3. The thrown error is caught below. The catch branch reads
|
|
377
|
-
// `lastResponseStatus` — which is STILL `'completed'` from turn N
|
|
378
|
-
// — and appends it as "last response status: completed", making
|
|
379
|
-
// the error look like it originated from a successful response.
|
|
380
|
-
//
|
|
381
|
-
// Fix: track which turn the status was captured on. If the status was
|
|
382
|
-
// NOT captured on the current (failed) turn, drop the suffix. That way
|
|
383
|
-
// we never emit a status that belongs to a different, already-
|
|
384
|
-
// concluded request. Users saw the misleading suffix and wasted time
|
|
385
|
-
// debugging a phantom "the request completed but was aborted" condition
|
|
386
|
-
// that doesn't exist.
|
|
387
|
-
let lastResponseStatus = null;
|
|
388
|
-
let lastResponseStatusTurn = null;
|
|
389
|
-
// --- Supervision bookkeeping ---
|
|
390
|
-
// Monitor model: only count degenerate retries when worker has NO tool calls.
|
|
391
|
-
let degenerateRetries = 0;
|
|
392
|
-
let stallTurnCounter = 0;
|
|
393
|
-
let lastFilesRead = tracker.getReads().length;
|
|
394
|
-
let lastFilesWritten = tracker.getWrites().length;
|
|
395
|
-
// Initialised to `null` (NOT ''): on the first turn there is no
|
|
396
|
-
// previous degenerate output to compare against, so the same-output
|
|
397
|
-
// early-out must be skipped. Initialising to '' would cause
|
|
398
|
-
// sameDegenerateOutput('', '') to fire on a first-turn empty output
|
|
399
|
-
// and break the loop before any retries run. See openai-runner
|
|
400
|
-
// regression #5.
|
|
401
|
-
let lastDegenerateOutput = null;
|
|
402
|
-
try {
|
|
403
|
-
while (true) {
|
|
404
|
-
turns++;
|
|
405
|
-
// Emit turn_start AFTER incrementing so `turn` matches the 1-indexed
|
|
406
|
-
// turn number we use everywhere else in this runner (the scratchpad
|
|
407
|
-
// append, error diagnostics, result.turns).
|
|
408
|
-
emit({ kind: 'turn_start', turn: turns, provider: 'codex', model: providerConfig.model });
|
|
409
|
-
// Time ceiling check before dispatching a provider call.
|
|
410
|
-
const timeCeilingMs = checkTimeCeiling(taskStartMs, timeoutMs);
|
|
411
|
-
if (timeCeilingMs !== null) {
|
|
412
|
-
const tc = usageTokenCounts(usage);
|
|
413
|
-
const workerCard = resolveProviderRateCard(providerConfig);
|
|
414
|
-
const costUSD = workerCard ? priceTokens(tc, workerCard) : null;
|
|
415
|
-
let costDeltaVsParentUSD = null;
|
|
416
|
-
if (costUSD !== null && parentModel) {
|
|
417
|
-
const parentCard = resolveRateCard(parentModel);
|
|
418
|
-
if (parentCard) {
|
|
419
|
-
costDeltaVsParentUSD = costUSD - priceTokens(tc, parentCard);
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
return sharedBuildTimeCeilingResult({
|
|
423
|
-
usage: {
|
|
424
|
-
inputTokens: usage.inputTokens,
|
|
425
|
-
outputTokens: usage.outputTokens,
|
|
426
|
-
totalTokens: usage.inputTokens + usage.outputTokens,
|
|
427
|
-
costUSD,
|
|
428
|
-
costDeltaVsParentUSD,
|
|
429
|
-
cachedTokens: usage.cachedReadTokens,
|
|
430
|
-
cachedReadTokens: usage.cachedReadTokens,
|
|
431
|
-
cachedCreationTokens: usage.cachedCreationTokens,
|
|
432
|
-
reasoningTokens: usage.reasoningTokens,
|
|
433
|
-
},
|
|
434
|
-
turns,
|
|
435
|
-
tracker,
|
|
436
|
-
scratchpad,
|
|
437
|
-
wallClockMs: timeCeilingMs,
|
|
438
|
-
timeoutMs,
|
|
439
|
-
durationMs: Date.now() - taskStartMs,
|
|
440
|
-
});
|
|
441
|
-
}
|
|
442
|
-
// Codex backend requires streaming. The Codex backend's
|
|
443
|
-
// `response.completed` event does NOT populate `response.output` —
|
|
444
|
-
// we must accumulate content from individual stream events.
|
|
445
|
-
// `instructions` carries the prevention-layer system prompt; the
|
|
446
|
-
// per-run budget hint is already prepended to the first user input.
|
|
447
|
-
const stream = await client.responses.create({
|
|
448
|
-
model: providerConfig.model,
|
|
449
|
-
instructions,
|
|
450
|
-
input,
|
|
451
|
-
stream: true,
|
|
452
|
-
store: false,
|
|
453
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
454
|
-
tools: allTools.length > 0 ? allTools : undefined,
|
|
455
|
-
// Honor `effort` when set and not 'none'. Codex backend accepts
|
|
456
|
-
// reasoning.effort for reasoning-capable models (gpt-5-codex, o3, etc.).
|
|
457
|
-
// 'none' skips the reasoning block entirely.
|
|
458
|
-
...(effort && effort !== 'none' && {
|
|
459
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
460
|
-
reasoning: { effort },
|
|
461
|
-
}),
|
|
462
|
-
}, { signal: abortController.signal });
|
|
463
|
-
let textThisTurn = '';
|
|
464
|
-
const toolCalls = [];
|
|
465
|
-
const itemTypesSeen = [];
|
|
466
|
-
const completedItems = [];
|
|
467
|
-
let sawCompleted = false;
|
|
468
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
469
|
-
for await (const event of stream) {
|
|
470
|
-
const et = event?.type;
|
|
471
|
-
if (!et)
|
|
472
|
-
continue;
|
|
473
|
-
if (et === 'response.output_text.delta') {
|
|
474
|
-
textThisTurn += event.delta ?? '';
|
|
475
|
-
}
|
|
476
|
-
else if (et === 'response.output_item.added') {
|
|
477
|
-
if (event.item?.type)
|
|
478
|
-
itemTypesSeen.push(event.item.type);
|
|
479
|
-
}
|
|
480
|
-
else if (et === 'response.output_item.done') {
|
|
481
|
-
const item = event.item;
|
|
482
|
-
if (item) {
|
|
483
|
-
completedItems.push(item);
|
|
484
|
-
if (item.type === 'function_call') {
|
|
485
|
-
toolCalls.push({
|
|
486
|
-
call_id: item.call_id,
|
|
487
|
-
name: item.name,
|
|
488
|
-
arguments: item.arguments ?? '',
|
|
489
|
-
item,
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
else if (et === 'response.completed') {
|
|
495
|
-
sawCompleted = true;
|
|
496
|
-
const r = event.response;
|
|
497
|
-
if (r?.usage) {
|
|
498
|
-
// Codex SDK ResponseUsage type doesn't declare cached_input_tokens /
|
|
499
|
-
// reasoning_tokens, but the wire payload carries them when the model
|
|
500
|
-
// emits them. Cast to a wider shape to read; null when absent.
|
|
501
|
-
const wideUsage = r.usage;
|
|
502
|
-
const turnUsage = {
|
|
503
|
-
inputTokens: wideUsage.input_tokens ?? 0,
|
|
504
|
-
outputTokens: wideUsage.output_tokens ?? 0,
|
|
505
|
-
cachedReadTokens: wideUsage.cached_input_tokens ?? null,
|
|
506
|
-
cachedCreationTokens: null,
|
|
507
|
-
reasoningTokens: wideUsage.reasoning_tokens ?? null,
|
|
508
|
-
};
|
|
509
|
-
usage = mergeUsage(usage, turnUsage);
|
|
510
|
-
}
|
|
511
|
-
if (r?.status) {
|
|
512
|
-
lastResponseStatus = r.status;
|
|
513
|
-
lastResponseStatusTurn = turns;
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
if (process.env.CODEX_DEBUG === '1') {
|
|
518
|
-
// eslint-disable-next-line no-console
|
|
519
|
-
console.error('[codex-runner] item types streamed:', itemTypesSeen.join(', ') || '(none)');
|
|
520
|
-
// eslint-disable-next-line no-console
|
|
521
|
-
console.error('[codex-runner] text this turn:', JSON.stringify(textThisTurn));
|
|
522
|
-
// eslint-disable-next-line no-console
|
|
523
|
-
console.error('[codex-runner] tool calls:', toolCalls.length);
|
|
524
|
-
}
|
|
525
|
-
if (!sawCompleted) {
|
|
526
|
-
throw new Error('Codex stream ended without a response.completed event');
|
|
527
|
-
}
|
|
528
|
-
// Buffer this turn's text into the scratchpad BEFORE any exit so
|
|
529
|
-
// every termination path (including supervision exhaustion) can
|
|
530
|
-
// salvage it. Codex does not emit <think> tags
|
|
531
|
-
// by default, so there is no stripping step here.
|
|
532
|
-
if (textThisTurn) {
|
|
533
|
-
scratchpad.append(turns, textThisTurn);
|
|
534
|
-
emit({
|
|
535
|
-
kind: 'text_emission',
|
|
536
|
-
turn: turns,
|
|
537
|
-
chars: textThisTurn.length,
|
|
538
|
-
preview: textThisTurn.slice(0, 200),
|
|
539
|
-
});
|
|
540
|
-
output = textThisTurn;
|
|
541
|
-
}
|
|
542
|
-
// Replay only function_call items into the next turn's input.
|
|
543
|
-
//
|
|
544
|
-
// We send `store: false` to the Responses API, which means the server
|
|
545
|
-
// does NOT persist any items it generates (reasoning items with `rs_`
|
|
546
|
-
// ids, message items with `msg_` ids, etc.). Replaying those items
|
|
547
|
-
// wholesale causes a 404 on the next turn:
|
|
548
|
-
// "Item with id 'rs_...' not found. Items are not persisted when
|
|
549
|
-
// `store` is set to false."
|
|
550
|
-
//
|
|
551
|
-
// function_call items are part of the tool-call protocol — the next
|
|
552
|
-
// turn needs them so each function_call_output we push can be paired
|
|
553
|
-
// with its originating call_id. We strip the server-generated `id`
|
|
554
|
-
// field and rebuild the item from its protocol fields only, so the
|
|
555
|
-
// server has nothing to look up against unpersisted state.
|
|
556
|
-
//
|
|
557
|
-
// Reasoning, message, and other server-generated items are dropped.
|
|
558
|
-
// The model still sees its previous tool calls + their outputs, which
|
|
559
|
-
// is enough to continue a multi-turn agent loop.
|
|
560
|
-
for (const item of completedItems) {
|
|
561
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
562
|
-
const it = item;
|
|
563
|
-
if (it?.type === 'function_call') {
|
|
564
|
-
input.push({
|
|
565
|
-
type: 'function_call',
|
|
566
|
-
call_id: it.call_id,
|
|
567
|
-
name: it.name,
|
|
568
|
-
arguments: it.arguments ?? '',
|
|
569
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
570
|
-
});
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
// --- Periodic re-grounding inside the loop ---------------------
|
|
574
|
-
if (turns > 0 && turns % RE_GROUNDING_INTERVAL_TURNS === 0) {
|
|
575
|
-
if (!canAffordNextTurn()) {
|
|
576
|
-
return buildCostExceededResult();
|
|
577
|
-
}
|
|
578
|
-
const reground = buildReGroundingMessage({
|
|
579
|
-
originalPromptExcerpt: prompt,
|
|
580
|
-
elapsedMs: Date.now() - taskStartMs,
|
|
581
|
-
timeoutMs,
|
|
582
|
-
toolCallsSoFar: tracker.getToolCalls().length,
|
|
583
|
-
filesReadSoFar: tracker.getReads().length,
|
|
584
|
-
});
|
|
585
|
-
input.push({
|
|
586
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
587
|
-
role: 'user',
|
|
588
|
-
content: reground,
|
|
589
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
590
|
-
});
|
|
591
|
-
emit({
|
|
592
|
-
kind: 'injection',
|
|
593
|
-
injectionType: 'reground',
|
|
594
|
-
turn: turns,
|
|
595
|
-
contentLengthChars: reground.length,
|
|
596
|
-
});
|
|
597
|
-
}
|
|
598
|
-
// --- turn_complete: one event per while-iteration. Fires after the
|
|
599
|
-
// re-grounding checks have run (so cumulative token counts and any
|
|
600
|
-
// injection events are already on the wire) and BEFORE the supervision branching / tool-execution loop. Every
|
|
601
|
-
// continue/return in the branches below happens AFTER this event,
|
|
602
|
-
// so the sequence "turn_start ... text_emission ... turn_complete"
|
|
603
|
-
// is guaranteed per iteration.
|
|
604
|
-
emit({
|
|
605
|
-
kind: 'turn_complete',
|
|
606
|
-
turn: turns,
|
|
607
|
-
cumulativeInputTokens: usage.inputTokens,
|
|
608
|
-
cumulativeOutputTokens: usage.outputTokens,
|
|
609
|
-
...(usage.cachedReadTokens != null && { cumulativeCachedReadTokens: usage.cachedReadTokens }),
|
|
610
|
-
...(usage.cachedCreationTokens != null && { cumulativeCachedCreationTokens: usage.cachedCreationTokens }),
|
|
611
|
-
...(usage.reasoningTokens != null && { cumulativeReasoningTokens: usage.reasoningTokens }),
|
|
612
|
-
});
|
|
613
|
-
// Track cost for this turn using per-turn delta from cumulative
|
|
614
|
-
const cur = usageTokenCounts(usage);
|
|
615
|
-
const turnTokens = subtractTokens(cur, lastCumulative);
|
|
616
|
-
lastCumulative = cur;
|
|
617
|
-
const rateCard = resolveProviderRateCard(providerConfig);
|
|
618
|
-
const turnCost = rateCard ? priceTokens(turnTokens, rateCard) : null;
|
|
619
|
-
if (turnCost !== null) {
|
|
620
|
-
lastTurnCostUSD = turnCost;
|
|
621
|
-
costMeter.add(turnCost);
|
|
622
|
-
}
|
|
623
|
-
// If the model made no tool calls, the turn ended with either a
|
|
624
|
-
// final answer or a degenerate emission. Wrap in the supervision
|
|
625
|
-
// state machine: valid text is an immediate ok-exit; degenerate
|
|
626
|
-
// either re-prompts (and continues the loop) or — if the retry
|
|
627
|
-
// budget is spent / same-output early-out fires — exits as
|
|
628
|
-
// incomplete with scratchpad salvage.
|
|
629
|
-
if (toolCalls.length === 0) {
|
|
630
|
-
const stripped = textThisTurn; // codex does not emit <think> tags
|
|
631
|
-
const validation = validateSubAgentOutput(stripped, {
|
|
632
|
-
expectedCoverage: options.expectedCoverage,
|
|
633
|
-
skipCompletionHeuristic: options.skipCompletionHeuristic,
|
|
634
|
-
hasCompletedWork: hasCompletedWork(tracker.getToolCalls()),
|
|
635
|
-
});
|
|
636
|
-
if (validation.valid) {
|
|
637
|
-
const ok = buildCodexOkResult({
|
|
638
|
-
tracker,
|
|
639
|
-
scratchpad,
|
|
640
|
-
providerConfig,
|
|
641
|
-
inputTokens: usage.inputTokens,
|
|
642
|
-
outputTokens: usage.outputTokens,
|
|
643
|
-
cachedReadTokens: usage.cachedReadTokens,
|
|
644
|
-
reasoningTokens: usage.reasoningTokens,
|
|
645
|
-
turns,
|
|
646
|
-
output: stripped,
|
|
647
|
-
durationMs: Date.now() - taskStartMs,
|
|
648
|
-
parentModel,
|
|
649
|
-
});
|
|
650
|
-
emit({ kind: 'done', status: ok.status });
|
|
651
|
-
return ok;
|
|
652
|
-
}
|
|
653
|
-
// Same-output early-out: only compare when we have a previous
|
|
654
|
-
// degenerate output. First-turn degeneracy must still get
|
|
655
|
-
// retries — see openai-runner regression #5.
|
|
656
|
-
if ((lastDegenerateOutput !== null &&
|
|
657
|
-
sameDegenerateOutput(stripped, lastDegenerateOutput)) ||
|
|
658
|
-
degenerateRetries >= MAX_DEGENERATE_RETRIES) {
|
|
659
|
-
const exhausted = buildCodexIncompleteResult({
|
|
660
|
-
tracker,
|
|
661
|
-
scratchpad,
|
|
662
|
-
providerConfig,
|
|
663
|
-
inputTokens: usage.inputTokens,
|
|
664
|
-
outputTokens: usage.outputTokens,
|
|
665
|
-
cachedReadTokens: usage.cachedReadTokens,
|
|
666
|
-
reasoningTokens: usage.reasoningTokens,
|
|
667
|
-
turns,
|
|
668
|
-
reason: `supervision loop exhausted after ${degenerateRetries} degenerate retries without tool calls (last kind: ${validation.kind ?? 'unknown'})`,
|
|
669
|
-
durationMs: Date.now() - taskStartMs,
|
|
670
|
-
parentModel,
|
|
671
|
-
});
|
|
672
|
-
emit({ kind: 'done', status: exhausted.status });
|
|
673
|
-
return exhausted;
|
|
674
|
-
}
|
|
675
|
-
// Inject the re-prompt as the next user input and continue
|
|
676
|
-
// the loop. The next turn of the codex backend will respond
|
|
677
|
-
// to the re-prompt directly.
|
|
678
|
-
lastDegenerateOutput = stripped;
|
|
679
|
-
// Only count as degenerate when worker has NO tool calls this turn.
|
|
680
|
-
// If the worker is still calling tools, it's making progress.
|
|
681
|
-
if (!hasCompletedWork(tracker.getToolCalls())) {
|
|
682
|
-
degenerateRetries++;
|
|
683
|
-
}
|
|
684
|
-
if (!canAffordNextTurn()) {
|
|
685
|
-
return buildCostExceededResult();
|
|
686
|
-
}
|
|
687
|
-
const rePrompt = buildRePrompt(validation);
|
|
688
|
-
input.push({
|
|
689
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
690
|
-
role: 'user',
|
|
691
|
-
content: rePrompt,
|
|
692
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
693
|
-
});
|
|
694
|
-
emit({
|
|
695
|
-
kind: 'injection',
|
|
696
|
-
injectionType: injectionTypeFor(validation.kind),
|
|
697
|
-
turn: turns,
|
|
698
|
-
contentLengthChars: rePrompt.length,
|
|
699
|
-
});
|
|
700
|
-
continue;
|
|
701
|
-
}
|
|
702
|
-
// Execute tool calls and feed outputs back
|
|
703
|
-
for (const call of toolCalls) {
|
|
704
|
-
const tool = toolsByName.get(call.name);
|
|
705
|
-
let result;
|
|
706
|
-
if (!tool) {
|
|
707
|
-
result = `Error: unknown tool "${call.name}"`;
|
|
708
|
-
}
|
|
709
|
-
else {
|
|
710
|
-
try {
|
|
711
|
-
const args = call.arguments ? JSON.parse(call.arguments) : {};
|
|
712
|
-
result = await tool.execute(args);
|
|
713
|
-
}
|
|
714
|
-
catch (err) {
|
|
715
|
-
result = `Tool error: ${err instanceof Error ? err.message : String(err)}`;
|
|
716
|
-
}
|
|
717
|
-
}
|
|
718
|
-
input.push({
|
|
719
|
-
type: 'function_call_output',
|
|
720
|
-
call_id: call.call_id,
|
|
721
|
-
output: result,
|
|
722
|
-
});
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
// Loop exited without producing a clean final answer — salvage.
|
|
726
|
-
const incompleteResult = buildCodexMaxTurnsExitResult({
|
|
727
|
-
tracker,
|
|
728
|
-
scratchpad,
|
|
729
|
-
providerConfig,
|
|
730
|
-
inputTokens: usage.inputTokens,
|
|
731
|
-
outputTokens: usage.outputTokens,
|
|
732
|
-
cachedReadTokens: usage.cachedReadTokens,
|
|
733
|
-
reasoningTokens: usage.reasoningTokens,
|
|
734
|
-
turns,
|
|
735
|
-
lastOutput: output,
|
|
736
|
-
reason: `loop exited after ${turns} turns without producing a clean final answer`,
|
|
737
|
-
durationMs: Date.now() - taskStartMs,
|
|
738
|
-
parentModel,
|
|
739
|
-
});
|
|
740
|
-
emit({ kind: 'done', status: incompleteResult.status });
|
|
741
|
-
return incompleteResult;
|
|
742
|
-
}
|
|
743
|
-
catch (err) {
|
|
744
|
-
// OpenAI SDK's APIError carries status/body/headers — surface them
|
|
745
|
-
// since the Codex backend returns 400 with no body on shape mismatches.
|
|
746
|
-
// We also consult `capture.last` which holds the raw HTTP body captured
|
|
747
|
-
// by our wrapped fetch (the SDK strips the body when it can't parse JSON).
|
|
748
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
749
|
-
const e = err;
|
|
750
|
-
const pieces = [];
|
|
751
|
-
if (err instanceof Error)
|
|
752
|
-
pieces.push(err.message);
|
|
753
|
-
if (e?.status)
|
|
754
|
-
pieces.push(`HTTP ${e.status}`);
|
|
755
|
-
if (e?.error) {
|
|
756
|
-
try {
|
|
757
|
-
pieces.push(`sdk_body=${JSON.stringify(e.error)}`);
|
|
758
|
-
}
|
|
759
|
-
catch { /* ignore */ }
|
|
760
|
-
}
|
|
761
|
-
if (capture.last) {
|
|
762
|
-
pieces.push(`raw_status=${capture.last.status}`);
|
|
763
|
-
// Only leak request/response body snippets when debug is explicitly enabled;
|
|
764
|
-
// they may contain sensitive content (prompt, tools, file contents).
|
|
765
|
-
if (process.env.CODEX_DEBUG === '1' && capture.last.bodyText)
|
|
766
|
-
pieces.push(`raw_body=${capture.last.bodyText.slice(0, 500)}`);
|
|
767
|
-
if (process.env.CODEX_DEBUG === '1' && capture.last.requestBodyPreview)
|
|
768
|
-
pieces.push(`req_body=${capture.last.requestBodyPreview.slice(0, 500)}`);
|
|
769
|
-
}
|
|
770
|
-
if (e?.requestID)
|
|
771
|
-
pieces.push(`req_id=${e.requestID}`);
|
|
772
|
-
// Only include `last response status` when it was captured on the
|
|
773
|
-
// CURRENT (failing) turn — otherwise it belongs to a previous,
|
|
774
|
-
// separate request and appending it is actively misleading. See the
|
|
775
|
-
// abort-path investigation comment at the top of `run()`.
|
|
776
|
-
if (lastResponseStatus && lastResponseStatusTurn === turns) {
|
|
777
|
-
pieces.push(`last response status: ${lastResponseStatus}`);
|
|
778
|
-
}
|
|
779
|
-
else if (lastResponseStatus && lastResponseStatusTurn !== turns) {
|
|
780
|
-
pieces.push(`note: a previous request (turn ${lastResponseStatusTurn}) completed with status ` +
|
|
781
|
-
`"${lastResponseStatus}" — it is unrelated to this failure`);
|
|
782
|
-
}
|
|
783
|
-
const detailed = pieces.join(' | ') || String(err);
|
|
784
|
-
// Classify the thrown error into a finer-grained RunStatus. Task 7
|
|
785
|
-
// introduces api_aborted / api_error / network_error alongside the
|
|
786
|
-
// catch-all 'error' status. The turn-scoped `lastResponseStatus`
|
|
787
|
-
// disambiguation above is ORTHOGONAL to this classification: the
|
|
788
|
-
// `detailed` message is still the rich operator-facing diagnostic,
|
|
789
|
-
// and `classifyError` only decides which RunStatus bucket the
|
|
790
|
-
// failure lands in.
|
|
791
|
-
const { status } = classifyError(err);
|
|
792
|
-
const errorCode = isProviderContextLimit(err) ? 'provider_context_limit' : undefined;
|
|
793
|
-
// Salvage: if the scratchpad has buffered text from earlier turns,
|
|
794
|
-
// return it as the output. Pre-Task-5 behavior returned only the
|
|
795
|
-
// error string, losing 30k+ tokens of work on abort.
|
|
796
|
-
emit({ kind: 'done', status });
|
|
797
|
-
const hasSalvage = !scratchpad.isEmpty();
|
|
798
|
-
const tc = usageTokenCounts(usage);
|
|
799
|
-
const workerCard = resolveProviderRateCard(providerConfig);
|
|
800
|
-
const costUSD = workerCard ? priceTokens(tc, workerCard) : null;
|
|
801
|
-
let costDeltaVsParentUSD = null;
|
|
802
|
-
if (costUSD !== null && parentModel) {
|
|
803
|
-
const parentCard = resolveRateCard(parentModel);
|
|
804
|
-
if (parentCard) {
|
|
805
|
-
costDeltaVsParentUSD = costUSD - priceTokens(tc, parentCard);
|
|
806
|
-
}
|
|
807
|
-
}
|
|
808
|
-
return {
|
|
809
|
-
output: hasSalvage ? scratchpad.latest() : `Sub-agent error: ${detailed}`,
|
|
810
|
-
status,
|
|
811
|
-
usage: {
|
|
812
|
-
inputTokens: usage.inputTokens,
|
|
813
|
-
outputTokens: usage.outputTokens,
|
|
814
|
-
totalTokens: usage.inputTokens + usage.outputTokens,
|
|
815
|
-
costUSD,
|
|
816
|
-
costDeltaVsParentUSD,
|
|
817
|
-
cachedTokens: usage.cachedReadTokens,
|
|
818
|
-
cachedReadTokens: usage.cachedReadTokens,
|
|
819
|
-
cachedCreationTokens: usage.cachedCreationTokens,
|
|
820
|
-
reasoningTokens: usage.reasoningTokens,
|
|
821
|
-
},
|
|
822
|
-
turns,
|
|
823
|
-
filesRead: tracker.getReads(),
|
|
824
|
-
directoriesListed: tracker.getDirectoriesListed(),
|
|
825
|
-
filesWritten: tracker.getWrites(),
|
|
826
|
-
toolCalls: tracker.getToolCalls(),
|
|
827
|
-
outputIsDiagnostic: !hasSalvage,
|
|
828
|
-
escalationLog: [],
|
|
829
|
-
parsedFindings: null,
|
|
830
|
-
error: detailed,
|
|
831
|
-
durationMs: Date.now() - taskStartMs,
|
|
832
|
-
...(errorCode !== undefined && { errorCode }),
|
|
833
|
-
...(isRateLimit(err) && {
|
|
834
|
-
structuredError: { code: 'rate_limit_exceeded', message: 'rate limited by provider', where: 'runner:codex' },
|
|
835
|
-
}),
|
|
836
|
-
};
|
|
837
|
-
}
|
|
838
|
-
};
|
|
839
|
-
return withTimeout(run(), timeoutMs, () => {
|
|
840
|
-
emit({ kind: 'done', status: 'timeout' });
|
|
841
|
-
const hasSalvage = !scratchpad.isEmpty();
|
|
842
|
-
const tc = usageTokenCounts(usage);
|
|
843
|
-
const workerCard = resolveProviderRateCard(providerConfig);
|
|
844
|
-
const costUSD = workerCard ? priceTokens(tc, workerCard) : null;
|
|
845
|
-
let costDeltaVsParentUSD = null;
|
|
846
|
-
if (costUSD !== null && parentModel) {
|
|
847
|
-
const parentCard = resolveRateCard(parentModel);
|
|
848
|
-
if (parentCard) {
|
|
849
|
-
costDeltaVsParentUSD = costUSD - priceTokens(tc, parentCard);
|
|
850
|
-
}
|
|
851
|
-
}
|
|
852
|
-
return {
|
|
853
|
-
// Preserve any text the scratchpad buffered before the timeout fired.
|
|
854
|
-
// Partial usage is read from the running accumulators hoisted above —
|
|
855
|
-
// hardcoded zeros would discard every token counted on partial turns.
|
|
856
|
-
output: hasSalvage ? scratchpad.latest() : `Agent timed out after ${timeoutMs}ms.`,
|
|
857
|
-
status: 'timeout',
|
|
858
|
-
filesRead: tracker.getReads(),
|
|
859
|
-
directoriesListed: tracker.getDirectoriesListed(),
|
|
860
|
-
filesWritten: tracker.getWrites(),
|
|
861
|
-
toolCalls: tracker.getToolCalls(),
|
|
862
|
-
usage: {
|
|
863
|
-
inputTokens: usage.inputTokens,
|
|
864
|
-
outputTokens: usage.outputTokens,
|
|
865
|
-
totalTokens: usage.inputTokens + usage.outputTokens,
|
|
866
|
-
costUSD,
|
|
867
|
-
costDeltaVsParentUSD,
|
|
868
|
-
cachedTokens: usage.cachedReadTokens,
|
|
869
|
-
cachedReadTokens: usage.cachedReadTokens,
|
|
870
|
-
cachedCreationTokens: usage.cachedCreationTokens,
|
|
871
|
-
reasoningTokens: usage.reasoningTokens,
|
|
872
|
-
},
|
|
873
|
-
turns,
|
|
874
|
-
outputIsDiagnostic: !hasSalvage,
|
|
875
|
-
escalationLog: [],
|
|
876
|
-
parsedFindings: null,
|
|
877
|
-
durationMs: Date.now() - taskStartMs,
|
|
878
|
-
};
|
|
879
|
-
}, abortController, options.abortSignal);
|
|
880
|
-
}
|
|
881
|
-
function resolveProviderRateCard(config) {
|
|
882
|
-
return resolveRateCard(config.model, {
|
|
883
|
-
inputCostPerMTok: config.inputCostPerMTok,
|
|
884
|
-
outputCostPerMTok: config.outputCostPerMTok,
|
|
885
|
-
});
|
|
886
|
-
}
|
|
887
|
-
function usageTokenCounts(u) {
|
|
888
|
-
const cachedRead = u.cachedReadTokens ?? 0;
|
|
889
|
-
return {
|
|
890
|
-
inputTokens: Math.max(0, u.inputTokens - cachedRead),
|
|
891
|
-
outputTokens: u.outputTokens,
|
|
892
|
-
cachedReadTokens: cachedRead,
|
|
893
|
-
cachedCreationTokens: 0,
|
|
894
|
-
reasoningTokens: u.reasoningTokens ?? 0,
|
|
895
|
-
};
|
|
896
|
-
}
|
|
897
|
-
function codexUsage(args) {
|
|
898
|
-
const { providerConfig, inputTokens, outputTokens, cachedReadTokens, reasoningTokens, parentModel } = args;
|
|
899
|
-
const cachedRead = cachedReadTokens ?? 0;
|
|
900
|
-
const nonCachedInput = Math.max(0, inputTokens - cachedRead);
|
|
901
|
-
const workerCard = resolveProviderRateCard(providerConfig);
|
|
902
|
-
const tokenCounts = {
|
|
903
|
-
inputTokens: nonCachedInput,
|
|
904
|
-
outputTokens,
|
|
905
|
-
cachedReadTokens: cachedRead,
|
|
906
|
-
cachedCreationTokens: 0,
|
|
907
|
-
reasoningTokens: reasoningTokens ?? 0,
|
|
908
|
-
};
|
|
909
|
-
const costUSD = workerCard ? priceTokens(tokenCounts, workerCard) : null;
|
|
910
|
-
let costDeltaVsParentUSD = null;
|
|
911
|
-
if (costUSD !== null && parentModel) {
|
|
912
|
-
const parentCard = resolveRateCard(parentModel);
|
|
913
|
-
if (parentCard) {
|
|
914
|
-
costDeltaVsParentUSD = costUSD - priceTokens(tokenCounts, parentCard);
|
|
915
|
-
}
|
|
916
|
-
}
|
|
917
|
-
return {
|
|
918
|
-
inputTokens,
|
|
919
|
-
outputTokens,
|
|
920
|
-
totalTokens: inputTokens + outputTokens,
|
|
921
|
-
costUSD,
|
|
922
|
-
costDeltaVsParentUSD,
|
|
923
|
-
cachedTokens: cachedReadTokens,
|
|
924
|
-
cachedReadTokens,
|
|
925
|
-
cachedCreationTokens: null,
|
|
926
|
-
reasoningTokens,
|
|
927
|
-
};
|
|
928
|
-
}
|
|
929
|
-
function buildCodexOkResult(args) {
|
|
930
|
-
return sharedBuildOkResult({
|
|
931
|
-
output: args.output,
|
|
932
|
-
usage: codexUsage(args),
|
|
933
|
-
turns: args.turns,
|
|
934
|
-
tracker: args.tracker,
|
|
935
|
-
durationMs: args.durationMs,
|
|
936
|
-
});
|
|
937
|
-
}
|
|
938
|
-
/**
|
|
939
|
-
* Supervision-exhausted path: retry cap hit or same-output early-out. Prefer
|
|
940
|
-
* scratchpad salvage; fall back to the incomplete diagnostic.
|
|
941
|
-
*/
|
|
942
|
-
function buildCodexIncompleteResult(args) {
|
|
943
|
-
return sharedBuildIncompleteResult({
|
|
944
|
-
usage: codexUsage(args),
|
|
945
|
-
turns: args.turns,
|
|
946
|
-
tracker: args.tracker,
|
|
947
|
-
scratchpad: args.scratchpad,
|
|
948
|
-
buildDiagnostic: buildCodexIncompleteDiagnostic,
|
|
949
|
-
durationMs: args.durationMs,
|
|
950
|
-
reason: args.reason,
|
|
951
|
-
stampExhausted: true,
|
|
952
|
-
});
|
|
953
|
-
}
|
|
954
|
-
function buildCodexMaxTurnsExitResult(args) {
|
|
955
|
-
return sharedBuildMaxTurnsExitResult({
|
|
956
|
-
usage: codexUsage(args),
|
|
957
|
-
turns: args.turns,
|
|
958
|
-
tracker: args.tracker,
|
|
959
|
-
scratchpad: args.scratchpad,
|
|
960
|
-
lastOutput: args.lastOutput,
|
|
961
|
-
reason: args.reason,
|
|
962
|
-
durationMs: args.durationMs,
|
|
963
|
-
});
|
|
964
|
-
}
|
|
965
|
-
function buildCodexIncompleteDiagnostic(opts) {
|
|
966
|
-
return [
|
|
967
|
-
'[codex sub-agent terminated without producing a final answer]',
|
|
968
|
-
'',
|
|
969
|
-
'The model emitted no tool calls and no usable text on its final turn, and',
|
|
970
|
-
'supervision re-prompts did not recover a valid response.',
|
|
971
|
-
'',
|
|
972
|
-
`Turns used: ${opts.turns}`,
|
|
973
|
-
`Input tokens: ${opts.inputTokens}`,
|
|
974
|
-
`Output tokens: ${opts.outputTokens}`,
|
|
975
|
-
`Files read: ${opts.filesRead.length}`,
|
|
976
|
-
`Files written: ${opts.filesWritten.length}`,
|
|
977
|
-
'',
|
|
978
|
-
'Recommended action: re-dispatch with a tighter brief, or escalate provider tier.',
|
|
979
|
-
].join('\n');
|
|
980
|
-
}
|
|
981
|
-
/**
|
|
982
|
-
* Review-mode entry: routes `systemPrefix` into the Responses API
|
|
983
|
-
* `instructions` field (which the Codex backend can cache when the rubric
|
|
984
|
-
* is stable across calls) and `userBody` as the first user input message.
|
|
985
|
-
*/
|
|
986
|
-
export async function runCodexReview(parts, options, providerConfig, defaults) {
|
|
987
|
-
return runCodex(parts.userBody, {
|
|
988
|
-
...options,
|
|
989
|
-
instructionsSuffix: parts.systemPrefix,
|
|
990
|
-
}, providerConfig, defaults);
|
|
991
|
-
}
|
|
992
|
-
//# sourceMappingURL=codex-runner.js.map
|