@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,934 +0,0 @@
|
|
|
1
|
-
import { Agent, run as agentRun, setTracingDisabled, OpenAIChatCompletionsModel, MaxTurnsExceededError, tool, } from '@openai/agents';
|
|
2
|
-
import { createHash } from 'node:crypto';
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
import { withTimeout, } from '../types.js';
|
|
5
|
-
import { priceTokens, subtractTokens, resolveRateCard } from '../cost/compute.js';
|
|
6
|
-
import { injectionTypeFor } from './injection-type.js';
|
|
7
|
-
import { reviewerEmittedFindingSchema, evidenceIsGrounded, } from '../executors/_shared/findings-schema.js';
|
|
8
|
-
import { FileTracker } from '../tools/tracker.js';
|
|
9
|
-
import { createToolImplementations } from '../tools/definitions.js';
|
|
10
|
-
import { createOpenAITools } from '../tools/openai-adapter.js';
|
|
11
|
-
import { TextScratchpad } from '../tools/scratchpad.js';
|
|
12
|
-
import { CostMeter } from '../cost/cost-meter.js';
|
|
13
|
-
import { CallCache } from '../tools/call-cache.js';
|
|
14
|
-
import { buildSystemPrompt, buildBudgetHint, buildReGroundingMessage, buildFormatConstraintSuffix, RE_GROUNDING_INTERVAL_TURNS, } from './prevention.js';
|
|
15
|
-
import { validateSubAgentOutput, buildRePrompt, sameDegenerateOutput, THINKING_DIAGNOSTIC_MARKER, hasCompletedWork, MAX_DEGENERATE_RETRIES, STALL_DETECTION_TURNS, detectToolCallLoop, hasNewFileActivity, } from './supervision.js';
|
|
16
|
-
import { classifyError, isRateLimit, isProviderContextLimit } from './error-classification.js';
|
|
17
|
-
import { buildOkResult as sharedBuildOkResult, buildIncompleteResult as sharedBuildIncompleteResult, buildTimeCeilingResult as sharedBuildTimeCeilingResult, } from './base/result-builders.js';
|
|
18
|
-
import { checkTimeCeiling } from './base/time-check.js';
|
|
19
|
-
// Disable tracing — not all OpenAI-compatible providers support it
|
|
20
|
-
setTracingDisabled(true);
|
|
21
|
-
/**
|
|
22
|
-
* OpenAI Structured Outputs requires an object root (not a bare array). The
|
|
23
|
-
* `findings` field carries the array of reviewer-emitted findings. After the
|
|
24
|
-
* run, each finding is annotated with `evidenceGrounded` to produce the
|
|
25
|
-
* final `AnnotatedFinding[]` stored in `RunResult.parsedFindings`.
|
|
26
|
-
*/
|
|
27
|
-
const reviewerOutputType = z.object({
|
|
28
|
-
findings: z.array(reviewerEmittedFindingSchema),
|
|
29
|
-
}).strict();
|
|
30
|
-
/**
|
|
31
|
-
* Normalize a {@link ResearchToolDefinition.inputSchema} to a Zod schema.
|
|
32
|
-
* Research adapters supply either a Zod schema directly or a JSON-Schema object;
|
|
33
|
-
* the OpenAI Agents SDK requires Zod schemas for tool parameters, so we convert
|
|
34
|
-
* JSON-Schema via {@link z.fromJSONSchema} when needed.
|
|
35
|
-
*/
|
|
36
|
-
function normalizeCustomToolSchema(inputSchema) {
|
|
37
|
-
if (inputSchema instanceof z.ZodType)
|
|
38
|
-
return inputSchema;
|
|
39
|
-
try {
|
|
40
|
-
const jsonSchema = inputSchema;
|
|
41
|
-
return z.fromJSONSchema(jsonSchema);
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
return z.object({}).passthrough();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Remove `<think>...</think>` reasoning blocks from model output.
|
|
49
|
-
*
|
|
50
|
-
* Several reasoning models (MiniMax, DeepSeek, Qwen variants) emit their
|
|
51
|
-
* chain-of-thought inline wrapped in `<think>...</think>` tags. These are
|
|
52
|
-
* scratch-pad content and should not surface to the caller. Stripping is
|
|
53
|
-
* non-greedy, multi-line, and handles multiple blocks.
|
|
54
|
-
*
|
|
55
|
-
* If the entire input was reasoning (stripping leaves nothing), return an
|
|
56
|
-
* explicit marker instead of an empty string. Silently swallowing
|
|
57
|
-
* "all thinking, no answer" responses leaves the caller with `output: ""`
|
|
58
|
-
* and no idea what happened — see the openai-runner empty-output diagnostic.
|
|
59
|
-
*/
|
|
60
|
-
export function stripThinkingTags(text) {
|
|
61
|
-
if (!text)
|
|
62
|
-
return '';
|
|
63
|
-
const stripped = text.replace(/<think>[\s\S]*?<\/think>\s*/gi, '').trimStart();
|
|
64
|
-
if (!stripped && /<think>[\s\S]*?<\/think>/i.test(text)) {
|
|
65
|
-
return THINKING_DIAGNOSTIC_MARKER;
|
|
66
|
-
}
|
|
67
|
-
return stripped;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Extract every assistant text emission from a single `agentRun(...)` result.
|
|
71
|
-
* See the SDK introspection finding in supervision.ts: `result.newItems` is a
|
|
72
|
-
* discriminated union and entries of type `"message_output_item"` wrap an
|
|
73
|
-
* `AssistantMessageItem` whose `content` is a list of `{ type: 'output_text',
|
|
74
|
-
* text }` / `refusal` / `audio` / `image` parts. We concatenate every
|
|
75
|
-
* `output_text` part from every assistant `message_output_item`. Refusals
|
|
76
|
-
* and non-text parts are ignored (they have no salvage value for a
|
|
77
|
-
* text-in-text-out sub-agent).
|
|
78
|
-
*/
|
|
79
|
-
function extractAssistantText(newItems) {
|
|
80
|
-
const chunks = [];
|
|
81
|
-
for (const item of newItems) {
|
|
82
|
-
if (item.type !== 'message_output_item')
|
|
83
|
-
continue;
|
|
84
|
-
const raw = item.rawItem;
|
|
85
|
-
if (raw.role !== 'assistant')
|
|
86
|
-
continue;
|
|
87
|
-
const content = raw.content;
|
|
88
|
-
if (!Array.isArray(content))
|
|
89
|
-
continue;
|
|
90
|
-
for (const part of content) {
|
|
91
|
-
if (part.type === 'output_text' && typeof part.text === 'string') {
|
|
92
|
-
chunks.push(part.text);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return chunks.join('');
|
|
97
|
-
}
|
|
98
|
-
export async function runOpenAI(prompt, options, runner) {
|
|
99
|
-
const timeoutMs = options.timeoutMs ?? runner.providerConfig.timeoutMs ?? runner.defaults.timeoutMs;
|
|
100
|
-
const toolMode = options.tools ?? runner.defaults.tools;
|
|
101
|
-
const cwd = options.cwd ?? process.cwd();
|
|
102
|
-
const effort = options.effort ?? runner.providerConfig.effort;
|
|
103
|
-
const runMode = options.runMode ?? 'standard';
|
|
104
|
-
const sandboxPolicy = options.sandboxPolicy ?? runner.providerConfig.sandboxPolicy ?? 'cwd-only';
|
|
105
|
-
const abortController = new AbortController();
|
|
106
|
-
// --- Task timing + parent model (Task 9) --------------------------------
|
|
107
|
-
const taskStartMs = Date.now();
|
|
108
|
-
const parentModel = options.parentModel;
|
|
109
|
-
// --- Progress event emission (Task 9) -----------------------------------
|
|
110
|
-
//
|
|
111
|
-
// `onProgress` is already wrapped in `safeSink` by the orchestrator
|
|
112
|
-
// (Task 8), so any throw from the consumer callback is swallowed
|
|
113
|
-
// upstream and cannot corrupt this loop. We do not need to wrap it
|
|
114
|
-
// again here.
|
|
115
|
-
const onProgress = options.onProgress;
|
|
116
|
-
const emit = (event) => {
|
|
117
|
-
if (onProgress)
|
|
118
|
-
onProgress(event);
|
|
119
|
-
};
|
|
120
|
-
// --- Cost meter (Task 25) ------------------------------------------------
|
|
121
|
-
const costMeter = new CostMeter({ ceiling: options.maxCostUSD });
|
|
122
|
-
// --- Call cache (Task 25) ------------------------------------------------
|
|
123
|
-
const callCache = new CallCache();
|
|
124
|
-
const agentType = runner.providerConfig.type ?? 'openai-compatible';
|
|
125
|
-
// Hoisted out of `run()` so the withTimeout callback (which runs in a
|
|
126
|
-
// different microtask chain) can still read partial usage from the last
|
|
127
|
-
// successful agentRun. `run()` updates this on every turn. Declared
|
|
128
|
-
// here (before the tracker) so the FileTracker callback closure can
|
|
129
|
-
// reference it without a TDZ issue at construction.
|
|
130
|
-
let currentResult;
|
|
131
|
-
// Track last turn cost for estimating next turn cost (used by runTurnAndBuffer)
|
|
132
|
-
let lastTurnCostUSD = 0;
|
|
133
|
-
// Per-turn cumulative → delta tracking state (§3.5 point 2)
|
|
134
|
-
let lastCumulative = {
|
|
135
|
-
inputTokens: 0, outputTokens: 0,
|
|
136
|
-
cachedReadTokens: 0, cachedCreationTokens: 0, reasoningTokens: 0,
|
|
137
|
-
};
|
|
138
|
-
// The tracker fires `onToolCall` synchronously inside every
|
|
139
|
-
// `trackToolCall(...)` — which itself is called from inside a tool
|
|
140
|
-
// implementation during an `agentRun` turn. That means `currentResult`
|
|
141
|
-
// may still hold the PREVIOUS turn's request count when the callback
|
|
142
|
-
// fires. We read it with an optional chain + fallback and attribute
|
|
143
|
-
// the tool call to the in-flight turn (previous turn + 1).
|
|
144
|
-
const tracker = new FileTracker((summary) => {
|
|
145
|
-
const inflightTurn = (currentResult?.state.usage.requests ?? 0) + 1;
|
|
146
|
-
emit({ kind: 'tool_call', turn: inflightTurn, toolSummary: summary });
|
|
147
|
-
});
|
|
148
|
-
const toolImpls = createToolImplementations(tracker, cwd, sandboxPolicy, abortController.signal);
|
|
149
|
-
const fileTools = createOpenAITools(toolImpls, sandboxPolicy, toolMode);
|
|
150
|
-
// Add hosted tools (web_search, image_generation, etc.) if configured — only when tools are enabled
|
|
151
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
152
|
-
const hostedTools = toolMode !== 'none'
|
|
153
|
-
? (runner.providerConfig.hostedTools ?? []).map(t => ({ type: t }))
|
|
154
|
-
: [];
|
|
155
|
-
const tools = [...fileTools, ...hostedTools];
|
|
156
|
-
// --- Custom toolset injection (explore executor, taskIndex=1) ---
|
|
157
|
-
if (options.customToolset && options.customToolset.length > 0) {
|
|
158
|
-
for (const ct of options.customToolset) {
|
|
159
|
-
const params = ct.inputSchema instanceof z.ZodType
|
|
160
|
-
? ct.inputSchema
|
|
161
|
-
: normalizeCustomToolSchema(ct.inputSchema);
|
|
162
|
-
tools.push(tool({
|
|
163
|
-
name: ct.name,
|
|
164
|
-
description: ct.description,
|
|
165
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
166
|
-
parameters: params,
|
|
167
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
168
|
-
execute: async (args) => ct.invoke(args),
|
|
169
|
-
}));
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
173
|
-
const model = new OpenAIChatCompletionsModel(runner.client, runner.providerConfig.model);
|
|
174
|
-
// --- Prevention layer: system prompt + budget hint ---
|
|
175
|
-
//
|
|
176
|
-
// buildSystemPrompt() is deliberately static and parameter-free. The Task 1
|
|
177
|
-
// review rejected speculative `providerLabel` parameters — the system prompt
|
|
178
|
-
// is generic ~400 tokens of discipline that applies to every provider.
|
|
179
|
-
// Budget information is threaded through buildBudgetHint (prepended to the
|
|
180
|
-
// first user prompt) and buildReGroundingMessage (injected every
|
|
181
|
-
// RE_GROUNDING_INTERVAL_TURNS turns).
|
|
182
|
-
const systemPrompt = buildSystemPrompt() + buildFormatConstraintSuffix(options.formatConstraints ?? {});
|
|
183
|
-
const instructions = options.instructionsSuffix
|
|
184
|
-
? `${systemPrompt}\n\n${options.instructionsSuffix}`
|
|
185
|
-
: systemPrompt;
|
|
186
|
-
const budgetHint = buildBudgetHint({ timeoutMs, maxCostUSD: options.maxCostUSD });
|
|
187
|
-
const promptWithBudgetHint = `${budgetHint}\n\n${prompt}`;
|
|
188
|
-
// --- onInitialRequest (Task 12) ----------------------------------------
|
|
189
|
-
//
|
|
190
|
-
// Fire once per attempt with the canonical orchestrator-side initial
|
|
191
|
-
// brief: `${systemPrompt}\n\n${promptWithBudgetHint}`. This is NOT the
|
|
192
|
-
// literal request body the `@openai/agents` SDK transmits — the SDK
|
|
193
|
-
// wraps our systemPrompt in the Agent `instructions` field and our
|
|
194
|
-
// user prompt in a messages array. We hash the canonical form instead
|
|
195
|
-
// so the hash is cross-runner stable: the same canonical brief on any
|
|
196
|
-
// of the three runners produces the same hash, even though each SDK's
|
|
197
|
-
// wire format differs. This answers "did the orchestrator send the
|
|
198
|
-
// same brief across retries?" — not "were the literal wire bytes
|
|
199
|
-
// identical?". See `AttemptRecord.initialPromptHash` in types.ts for
|
|
200
|
-
// the full caveat. We guard with try/catch because the orchestrator
|
|
201
|
-
// owns the callback and a throw would corrupt its closure (symmetry
|
|
202
|
-
// with safeSink around onProgress).
|
|
203
|
-
if (options.onInitialRequest) {
|
|
204
|
-
const canonicalInitialBrief = `${systemPrompt}\n\n${promptWithBudgetHint}`;
|
|
205
|
-
try {
|
|
206
|
-
options.onInitialRequest({
|
|
207
|
-
lengthChars: canonicalInitialBrief.length,
|
|
208
|
-
sha256: createHash('sha256').update(canonicalInitialBrief).digest('hex'),
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
catch {
|
|
212
|
-
// Swallow — a broken callback must not affect dispatch.
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
// DeepSeek's V4 hybrid models default to thinking mode and emit a
|
|
216
|
-
// `reasoning_content` field on every assistant turn. The OpenAI Chat
|
|
217
|
-
// Completions wire format the @openai/agents SDK uses doesn't preserve
|
|
218
|
-
// that field across turns, which causes a 400 on the second turn
|
|
219
|
-
// ("reasoning_content ... must be passed back to the API"). For users
|
|
220
|
-
// who put DeepSeek behind `openai-compatible` we opt out of thinking
|
|
221
|
-
// so multi-turn tool use works. Users who want DeepSeek's reasoning ON
|
|
222
|
-
// should configure it as `claude-compatible` instead — the Anthropic
|
|
223
|
-
// wire format preserves thinking blocks natively.
|
|
224
|
-
const baseUrl = runner.providerConfig.baseUrl ?? '';
|
|
225
|
-
const isDeepSeek = /(?:^|[\\/.])deepseek\b/i.test(baseUrl)
|
|
226
|
-
|| /^deepseek-/i.test(runner.providerConfig.model);
|
|
227
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
228
|
-
const providerData = {};
|
|
229
|
-
if (isDeepSeek)
|
|
230
|
-
providerData.thinking = { type: 'disabled' };
|
|
231
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
232
|
-
const modelSettings = {};
|
|
233
|
-
if (effort && effort !== 'none')
|
|
234
|
-
modelSettings.reasoning = { effort };
|
|
235
|
-
if (Object.keys(providerData).length > 0)
|
|
236
|
-
modelSettings.providerData = providerData;
|
|
237
|
-
// outputType is disabled for DeepSeek in review mode. DeepSeek's V4 hybrid
|
|
238
|
-
// models either fail schema-conformance enforcement OR the @openai/agents
|
|
239
|
-
// SDK's schema-enforcement code path skips usage aggregation on this
|
|
240
|
-
// backend specifically, leaving every review call with
|
|
241
|
-
// `state.usage = {inputTokens: 0, outputTokens: 0}` despite real tokens
|
|
242
|
-
// being burned (3.12.2 telemetry showed every audit's quality_review with
|
|
243
|
-
// 30+ turns and 0 cost). The downstream text-parser fallback in
|
|
244
|
-
// runAnnotationReview (parseReviewerFindings → fallbackExtractFindings)
|
|
245
|
-
// recovers findings from prose, so dropping the schema costs us nothing
|
|
246
|
-
// for DeepSeek. Other openai-compatible backends (OpenAI proper,
|
|
247
|
-
// structured-output-capable proxies like vLLM) keep outputType.
|
|
248
|
-
const useOutputType = runMode === 'review' && !isDeepSeek;
|
|
249
|
-
const agent = new Agent({
|
|
250
|
-
name: 'sub-agent',
|
|
251
|
-
model,
|
|
252
|
-
instructions,
|
|
253
|
-
tools,
|
|
254
|
-
...(Object.keys(modelSettings).length > 0 && { modelSettings }),
|
|
255
|
-
...(useOutputType && { outputType: reviewerOutputType }),
|
|
256
|
-
});
|
|
257
|
-
// --- Scratchpad: buffers assistant text across every agentRun() call so
|
|
258
|
-
// that every termination path (ok/incomplete/max_turns/error/timeout)
|
|
259
|
-
// can return the best text we heard, even if the final message is junk. ---
|
|
260
|
-
const scratchpad = new TextScratchpad();
|
|
261
|
-
/**
|
|
262
|
-
* Build an AgentInputItem[] for continuing `prev` with a new user message.
|
|
263
|
-
*
|
|
264
|
-
* @openai/agents does NOT expose a `conversation:` option on `run()`. It
|
|
265
|
-
* accepts `string | AgentInputItem[] | RunState` as the input. The idiomatic
|
|
266
|
-
* way to "continue" a completed run with a new user turn is to pass
|
|
267
|
-
* `[...prev.history, { role: 'user', content: newText }]` as the input on
|
|
268
|
-
* the next call. `result.history` is the full conversation (system prompt
|
|
269
|
-
* + original input + every new item generated during the run), typed as
|
|
270
|
-
* `AgentInputItem[]`. See node_modules/@openai/agents-core/dist/run.d.ts
|
|
271
|
-
* line 182 and result.d.ts line 84 (history getter).
|
|
272
|
-
*/
|
|
273
|
-
const continueWith = (prev, nextUserMessage) => {
|
|
274
|
-
const history = prev.history;
|
|
275
|
-
return [
|
|
276
|
-
...history,
|
|
277
|
-
{ role: 'user', content: nextUserMessage },
|
|
278
|
-
];
|
|
279
|
-
};
|
|
280
|
-
/**
|
|
281
|
-
* Local helper: run one agent turn and buffer its assistant text into
|
|
282
|
-
* the scratchpad. Closes over `agent`, `abortController`, `scratchpad`
|
|
283
|
-
* and `emit` so every call site in `run()` is just one line AND every
|
|
284
|
-
* turn automatically emits the correct `turn_start` / `text_emission`
|
|
285
|
-
* / `turn_complete` progress events.
|
|
286
|
-
*
|
|
287
|
-
* Event ordering:
|
|
288
|
-
* 1. `turn_start` — fires BEFORE agentRun. Turn number is the NEXT
|
|
289
|
-
* request count (prev + 1) because the SDK won't bump
|
|
290
|
-
* `state.usage.requests` until the call completes.
|
|
291
|
-
* 2. `text_emission` — fires AFTER scratchpad.append, only when the
|
|
292
|
-
* stripped assistant text is non-empty. Skipping empty emissions
|
|
293
|
-
* keeps the event stream useful (empty-text turns are observable
|
|
294
|
-
* via `turn_complete` alone).
|
|
295
|
-
* 3. `turn_complete` — fires AFTER agentRun, with the post-call
|
|
296
|
-
* cumulative usage from `result.state.usage`.
|
|
297
|
-
*/
|
|
298
|
-
const runTurnAndBuffer = async (input) => {
|
|
299
|
-
const ceilingMs = checkTimeCeiling(taskStartMs, timeoutMs);
|
|
300
|
-
if (ceilingMs !== null) {
|
|
301
|
-
const err = new Error('time_ceiling');
|
|
302
|
-
err.__timeCeiling = ceilingMs;
|
|
303
|
-
throw err;
|
|
304
|
-
}
|
|
305
|
-
const nextTurn = (currentResult?.state.usage.requests ?? 0) + 1;
|
|
306
|
-
emit({ kind: 'turn_start', turn: nextTurn, provider: 'openai-compatible', model: runner.providerConfig.model });
|
|
307
|
-
const result = (await agentRun(agent, input, {
|
|
308
|
-
maxTurns: Number.MAX_SAFE_INTEGER,
|
|
309
|
-
signal: abortController.signal,
|
|
310
|
-
}));
|
|
311
|
-
const text = stripThinkingTags(extractAssistantText(result.newItems));
|
|
312
|
-
scratchpad.append(result.state.usage.requests, text);
|
|
313
|
-
if (text.length > 0) {
|
|
314
|
-
emit({
|
|
315
|
-
kind: 'text_emission',
|
|
316
|
-
turn: result.state.usage.requests,
|
|
317
|
-
chars: text.length,
|
|
318
|
-
preview: text.slice(0, 200),
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
const cachedRead = sumCachedReadTokens(result.state.usage.inputTokensDetails) ?? 0;
|
|
322
|
-
const reasoning = sumReasoningTokens(result.state.usage.outputTokensDetails) ?? 0;
|
|
323
|
-
emit({
|
|
324
|
-
kind: 'turn_complete',
|
|
325
|
-
turn: result.state.usage.requests,
|
|
326
|
-
cumulativeInputTokens: result.state.usage.inputTokens,
|
|
327
|
-
cumulativeOutputTokens: result.state.usage.outputTokens,
|
|
328
|
-
cumulativeCachedReadTokens: cachedRead > 0 ? cachedRead : undefined,
|
|
329
|
-
cumulativeReasoningTokens: reasoning > 0 ? reasoning : undefined,
|
|
330
|
-
});
|
|
331
|
-
// Track cost for this turn using per-turn delta from cumulative
|
|
332
|
-
const cur = {
|
|
333
|
-
inputTokens: Math.max(0, result.state.usage.inputTokens - cachedRead),
|
|
334
|
-
outputTokens: result.state.usage.outputTokens,
|
|
335
|
-
cachedReadTokens: cachedRead,
|
|
336
|
-
cachedCreationTokens: 0,
|
|
337
|
-
reasoningTokens: reasoning,
|
|
338
|
-
};
|
|
339
|
-
const turnTokens = subtractTokens(cur, lastCumulative);
|
|
340
|
-
lastCumulative = cur;
|
|
341
|
-
const rateCard = resolveProviderRateCard(runner.providerConfig);
|
|
342
|
-
const turnCost = rateCard ? priceTokens(turnTokens, rateCard) : null;
|
|
343
|
-
if (turnCost !== null) {
|
|
344
|
-
lastTurnCostUSD = turnCost;
|
|
345
|
-
costMeter.add(turnCost);
|
|
346
|
-
}
|
|
347
|
-
return result;
|
|
348
|
-
};
|
|
349
|
-
const run = async () => {
|
|
350
|
-
try {
|
|
351
|
-
currentResult = await runTurnAndBuffer(promptWithBudgetHint);
|
|
352
|
-
// --- Supervision state: monitor model replaces gatekeeper ---
|
|
353
|
-
// Only count degenerate retries when worker has NO tool calls in a turn.
|
|
354
|
-
// If the worker is still making tool calls, it's making progress even
|
|
355
|
-
// if the output text is degenerate — don't count against budget.
|
|
356
|
-
let degenerateRetries = 0;
|
|
357
|
-
let stallTurnCounter = 0;
|
|
358
|
-
let lastFilesRead = tracker.getReads().length;
|
|
359
|
-
let lastFilesWritten = tracker.getWrites().length;
|
|
360
|
-
// Continuation-exhausted flag: set when runContinuationTurn catches a
|
|
361
|
-
// MaxTurnsExceededError on a re-prompt or re-ground continuation.
|
|
362
|
-
// The break below lands in the exhausted handler so we don't conflate
|
|
363
|
-
// a continuation-exhaustion with the user-declared limits.
|
|
364
|
-
let supervisionExhausted = false;
|
|
365
|
-
// Initialized to `null` (NOT ''): on the first turn there is no
|
|
366
|
-
// previous degenerate output to compare against, so the
|
|
367
|
-
// same-output early-out must be skipped. Initialising to ''
|
|
368
|
-
// would cause `sameDegenerateOutput('', '')` to fire on a first-
|
|
369
|
-
// turn empty output and break the loop before retries run.
|
|
370
|
-
let lastDegenerateOutput = null;
|
|
371
|
-
let lastValidationKind = undefined;
|
|
372
|
-
/**
|
|
373
|
-
* Check if we can afford the next turn based on previous turn cost estimate.
|
|
374
|
-
*/
|
|
375
|
-
function canAffordNextTurn() {
|
|
376
|
-
if (!costMeter.canProceed(lastTurnCostUSD > 0 ? lastTurnCostUSD : 0.001)) {
|
|
377
|
-
return false;
|
|
378
|
-
}
|
|
379
|
-
return true;
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* Build a cost_exceeded result.
|
|
383
|
-
*/
|
|
384
|
-
function buildCostExceededResult(turnsAtFailure) {
|
|
385
|
-
const partial = partialUsage(currentResult, runner.providerConfig, parentModel, runner.usageAccumulator);
|
|
386
|
-
return {
|
|
387
|
-
output: `Cost ceiling exceeded: maxCostUSD=${options.maxCostUSD}`,
|
|
388
|
-
status: 'cost_exceeded',
|
|
389
|
-
usage: partial,
|
|
390
|
-
turns: turnsAtFailure,
|
|
391
|
-
filesRead: tracker.getReads(),
|
|
392
|
-
directoriesListed: tracker.getDirectoriesListed(),
|
|
393
|
-
filesWritten: tracker.getWrites(),
|
|
394
|
-
toolCalls: tracker.getToolCalls(),
|
|
395
|
-
outputIsDiagnostic: true,
|
|
396
|
-
escalationLog: [],
|
|
397
|
-
durationMs: Date.now() - taskStartMs,
|
|
398
|
-
parsedFindings: null,
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
/**
|
|
402
|
-
* Wraps a continuation turn (re-prompt or re-ground). Time and cost bounds
|
|
403
|
-
* are the only effective limits; no turn-count sub-budget is imposed.
|
|
404
|
-
* Catches MaxTurnsExceededError from the SDK as a safety net.
|
|
405
|
-
*/
|
|
406
|
-
async function runContinuationTurn(currentResult, instruction) {
|
|
407
|
-
try {
|
|
408
|
-
const result = await runTurnAndBuffer(continueWith(currentResult, instruction));
|
|
409
|
-
return { ok: true, result };
|
|
410
|
-
}
|
|
411
|
-
catch (err) {
|
|
412
|
-
if (err instanceof MaxTurnsExceededError) {
|
|
413
|
-
return { ok: false, cause: err, label: 'continuation_exhausted', turnAtFailure: currentResult.state.usage.requests };
|
|
414
|
-
}
|
|
415
|
-
throw err;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
// Supervision loop. On each iteration we:
|
|
419
|
-
// 1. Validate the final message (may re-prompt)
|
|
420
|
-
// 2. Inject re-grounding every RE_GROUNDING_INTERVAL_TURNS turns
|
|
421
|
-
// A single pass where validateCompletion returns `valid` is the clean
|
|
422
|
-
// exit. Otherwise we either re-prompt (and loop) or salvage.
|
|
423
|
-
// eslint-disable-next-line no-constant-condition
|
|
424
|
-
while (true) {
|
|
425
|
-
// --- Validation check ---
|
|
426
|
-
// In review mode the SDK returns a structured object in finalOutput
|
|
427
|
-
// (from Agent.outputType). Validation text comes from newItems.
|
|
428
|
-
const rawOutput = runMode === 'review'
|
|
429
|
-
? extractAssistantText(currentResult.newItems)
|
|
430
|
-
: String(currentResult.finalOutput ?? '');
|
|
431
|
-
const stripped = stripThinkingTags(rawOutput);
|
|
432
|
-
const validation = validateSubAgentOutput(stripped, {
|
|
433
|
-
expectedCoverage: options.expectedCoverage,
|
|
434
|
-
skipCompletionHeuristic: options.skipCompletionHeuristic,
|
|
435
|
-
hasCompletedWork: hasCompletedWork(tracker.getToolCalls()),
|
|
436
|
-
});
|
|
437
|
-
if (validation.valid) {
|
|
438
|
-
const ok = buildOkResult(stripped, currentResult, tracker, runner.providerConfig, Date.now() - taskStartMs, parentModel, runner.usageAccumulator);
|
|
439
|
-
if (runMode === 'review' && useOutputType) {
|
|
440
|
-
const parsed = reviewerOutputType.safeParse(currentResult.finalOutput);
|
|
441
|
-
if (parsed.success) {
|
|
442
|
-
ok.parsedFindings = parsed.data.findings.map(f => ({
|
|
443
|
-
...f,
|
|
444
|
-
evidenceGrounded: evidenceIsGrounded(f.evidence, stripped),
|
|
445
|
-
}));
|
|
446
|
-
}
|
|
447
|
-
else {
|
|
448
|
-
// OpenAI-proper structured-output failure: should be rare since
|
|
449
|
-
// OpenAI honors the schema, but if it happens we still don't
|
|
450
|
-
// want to discard the call — fall through to the text parser.
|
|
451
|
-
ok.parsedFindings = null;
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
else {
|
|
455
|
-
// Review mode on non-OpenAI provider, OR delegate mode: text-parser
|
|
456
|
-
// fallback in runAnnotationReview handles findings extraction.
|
|
457
|
-
ok.parsedFindings = null;
|
|
458
|
-
}
|
|
459
|
-
emit({ kind: 'done', status: ok.status });
|
|
460
|
-
return ok;
|
|
461
|
-
}
|
|
462
|
-
// Track last validation kind so the exhausted handler can report it.
|
|
463
|
-
lastValidationKind = validation.kind;
|
|
464
|
-
// --- Loop detection (advisory) ---
|
|
465
|
-
// After a turn with tool calls, check for repetitive patterns.
|
|
466
|
-
// If stuck in a loop, inject re-grounding — don't terminate or count as degenerate.
|
|
467
|
-
if (detectToolCallLoop(tracker.getToolCalls())) {
|
|
468
|
-
const reground = buildReGroundingMessage({
|
|
469
|
-
originalPromptExcerpt: prompt,
|
|
470
|
-
elapsedMs: Date.now() - taskStartMs,
|
|
471
|
-
timeoutMs,
|
|
472
|
-
toolCallsSoFar: tracker.getToolCalls().length,
|
|
473
|
-
filesReadSoFar: tracker.getReads().length,
|
|
474
|
-
});
|
|
475
|
-
emit({
|
|
476
|
-
kind: 'injection',
|
|
477
|
-
injectionType: 'reground',
|
|
478
|
-
turn: currentResult.state.usage.requests,
|
|
479
|
-
contentLengthChars: reground.length,
|
|
480
|
-
});
|
|
481
|
-
if (canAffordNextTurn()) {
|
|
482
|
-
const regroundCont = await runContinuationTurn(currentResult, reground);
|
|
483
|
-
if (regroundCont.ok) {
|
|
484
|
-
currentResult = regroundCont.result;
|
|
485
|
-
continue;
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
// --- Stall detection (advisory) ---
|
|
490
|
-
// Track consecutive turns without new file activity.
|
|
491
|
-
// If stalled, inject re-grounding — don't terminate.
|
|
492
|
-
const currentFilesRead = tracker.getReads().length;
|
|
493
|
-
const currentFilesWritten = tracker.getWrites().length;
|
|
494
|
-
const hasActivity = hasNewFileActivity(lastFilesRead, lastFilesWritten, currentFilesRead, currentFilesWritten);
|
|
495
|
-
if (hasActivity) {
|
|
496
|
-
stallTurnCounter = 0;
|
|
497
|
-
lastFilesRead = currentFilesRead;
|
|
498
|
-
lastFilesWritten = currentFilesWritten;
|
|
499
|
-
}
|
|
500
|
-
else {
|
|
501
|
-
stallTurnCounter++;
|
|
502
|
-
if (stallTurnCounter >= STALL_DETECTION_TURNS) {
|
|
503
|
-
const reground = buildReGroundingMessage({
|
|
504
|
-
originalPromptExcerpt: prompt,
|
|
505
|
-
elapsedMs: Date.now() - taskStartMs,
|
|
506
|
-
timeoutMs,
|
|
507
|
-
toolCallsSoFar: tracker.getToolCalls().length,
|
|
508
|
-
filesReadSoFar: tracker.getReads().length,
|
|
509
|
-
});
|
|
510
|
-
emit({
|
|
511
|
-
kind: 'injection',
|
|
512
|
-
injectionType: 'reground',
|
|
513
|
-
turn: currentResult.state.usage.requests,
|
|
514
|
-
contentLengthChars: reground.length,
|
|
515
|
-
});
|
|
516
|
-
if (canAffordNextTurn()) {
|
|
517
|
-
const regroundCont = await runContinuationTurn(currentResult, reground);
|
|
518
|
-
if (regroundCont.ok) {
|
|
519
|
-
currentResult = regroundCont.result;
|
|
520
|
-
stallTurnCounter = 0;
|
|
521
|
-
continue;
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
// Degenerate. Apply same-output early-out (only when we have a
|
|
527
|
-
// prior degenerate output to compare against) and retry budget.
|
|
528
|
-
// Only count as degenerate when worker has NO tool calls in this turn.
|
|
529
|
-
if (lastDegenerateOutput !== null && sameDegenerateOutput(stripped, lastDegenerateOutput))
|
|
530
|
-
break;
|
|
531
|
-
lastDegenerateOutput = stripped;
|
|
532
|
-
// Only increment degenerate retries when no tool calls were made this turn.
|
|
533
|
-
// If the worker is still calling tools, it's making progress even if the
|
|
534
|
-
// output text is incomplete.
|
|
535
|
-
if (!hasCompletedWork(tracker.getToolCalls())) {
|
|
536
|
-
degenerateRetries++;
|
|
537
|
-
if (degenerateRetries >= MAX_DEGENERATE_RETRIES)
|
|
538
|
-
break;
|
|
539
|
-
}
|
|
540
|
-
// --- Re-prompt the model to recover ---
|
|
541
|
-
const rePrompt = buildRePrompt(validation);
|
|
542
|
-
emit({
|
|
543
|
-
kind: 'injection',
|
|
544
|
-
injectionType: injectionTypeFor(validation.kind),
|
|
545
|
-
turn: currentResult.state.usage.requests,
|
|
546
|
-
contentLengthChars: rePrompt.length,
|
|
547
|
-
});
|
|
548
|
-
// Give the model a small budget to recover. One extra turn per
|
|
549
|
-
// retry is enough for the "emit your final answer" nudge.
|
|
550
|
-
if (!canAffordNextTurn()) {
|
|
551
|
-
const costExceeded = buildCostExceededResult(currentResult.state.usage.requests);
|
|
552
|
-
emit({ kind: 'done', status: costExceeded.status });
|
|
553
|
-
return costExceeded;
|
|
554
|
-
}
|
|
555
|
-
const rePromptCont = await runContinuationTurn(currentResult, rePrompt);
|
|
556
|
-
if (!rePromptCont.ok) {
|
|
557
|
-
supervisionExhausted = true;
|
|
558
|
-
break;
|
|
559
|
-
}
|
|
560
|
-
currentResult = rePromptCont.result;
|
|
561
|
-
// --- Periodic re-grounding ---
|
|
562
|
-
const turnsSoFar = currentResult.state.usage.requests;
|
|
563
|
-
if (turnsSoFar > 0 && turnsSoFar % RE_GROUNDING_INTERVAL_TURNS === 0) {
|
|
564
|
-
if (!canAffordNextTurn()) {
|
|
565
|
-
const costExceeded = buildCostExceededResult(currentResult.state.usage.requests);
|
|
566
|
-
emit({ kind: 'done', status: costExceeded.status });
|
|
567
|
-
return costExceeded;
|
|
568
|
-
}
|
|
569
|
-
const reground = buildReGroundingMessage({
|
|
570
|
-
originalPromptExcerpt: prompt,
|
|
571
|
-
elapsedMs: Date.now() - taskStartMs,
|
|
572
|
-
timeoutMs,
|
|
573
|
-
toolCallsSoFar: tracker.getToolCalls().length,
|
|
574
|
-
filesReadSoFar: tracker.getReads().length,
|
|
575
|
-
});
|
|
576
|
-
emit({
|
|
577
|
-
kind: 'injection',
|
|
578
|
-
injectionType: 'reground',
|
|
579
|
-
turn: currentResult.state.usage.requests,
|
|
580
|
-
contentLengthChars: reground.length,
|
|
581
|
-
});
|
|
582
|
-
if (!canAffordNextTurn()) {
|
|
583
|
-
const costExceeded = buildCostExceededResult(currentResult.state.usage.requests);
|
|
584
|
-
emit({ kind: 'done', status: costExceeded.status });
|
|
585
|
-
return costExceeded;
|
|
586
|
-
}
|
|
587
|
-
const regroundCont = await runContinuationTurn(currentResult, reground);
|
|
588
|
-
if (!regroundCont.ok) {
|
|
589
|
-
supervisionExhausted = true;
|
|
590
|
-
break;
|
|
591
|
-
}
|
|
592
|
-
currentResult = regroundCont.result;
|
|
593
|
-
}
|
|
594
|
-
}
|
|
595
|
-
// Supervision exhausted (either retry budget or same-output early-out or
|
|
596
|
-
// continuation-exhausted break). Salvage from the scratchpad if we have
|
|
597
|
-
// anything; otherwise return the existing incomplete diagnostic.
|
|
598
|
-
const exhaustedReason = supervisionExhausted
|
|
599
|
-
? `supervision continuation sub-budget exhausted at turn ${currentResult.state.usage.requests}`
|
|
600
|
-
: `supervision loop exhausted after ${degenerateRetries} degenerate retries without tool calls (last kind: ${lastValidationKind ?? 'unknown'})`;
|
|
601
|
-
const exhausted = buildSupervisionExhaustedResult(currentResult, scratchpad, tracker, runner.providerConfig, Date.now() - taskStartMs, parentModel, { reason: exhaustedReason });
|
|
602
|
-
emit({ kind: 'done', status: exhausted.status });
|
|
603
|
-
return exhausted;
|
|
604
|
-
}
|
|
605
|
-
catch (err) {
|
|
606
|
-
if (err instanceof MaxTurnsExceededError) {
|
|
607
|
-
// MaxTurnsExceededError from the SDK: map to incomplete with degenerate_exhausted.
|
|
608
|
-
// Prefer scratchpad salvage over the bare diagnostic.
|
|
609
|
-
// Preserve whatever partial usage we accumulated in the last
|
|
610
|
-
// successful agentRun so the caller sees real numbers, not zeros.
|
|
611
|
-
const filesRead = tracker.getReads();
|
|
612
|
-
const filesWritten = tracker.getWrites();
|
|
613
|
-
const toolCalls = tracker.getToolCalls();
|
|
614
|
-
const partial = partialUsage(currentResult, runner.providerConfig, parentModel, runner.usageAccumulator);
|
|
615
|
-
emit({ kind: 'done', status: 'incomplete' });
|
|
616
|
-
const hasSalvage = !scratchpad.isEmpty();
|
|
617
|
-
const turnsAtFailure = currentResult?.state.usage.requests ?? 0;
|
|
618
|
-
return {
|
|
619
|
-
output: hasSalvage
|
|
620
|
-
? scratchpad.latest()
|
|
621
|
-
: `Agent exceeded time or cost limits.`,
|
|
622
|
-
status: 'incomplete',
|
|
623
|
-
errorCode: 'degenerate_exhausted',
|
|
624
|
-
error: `agent exhausted time/cost budget after ${turnsAtFailure} turns`,
|
|
625
|
-
usage: partial,
|
|
626
|
-
turns: turnsAtFailure,
|
|
627
|
-
filesRead,
|
|
628
|
-
directoriesListed: tracker.getDirectoriesListed(),
|
|
629
|
-
filesWritten,
|
|
630
|
-
toolCalls,
|
|
631
|
-
outputIsDiagnostic: !hasSalvage,
|
|
632
|
-
escalationLog: [],
|
|
633
|
-
durationMs: Date.now() - taskStartMs,
|
|
634
|
-
parsedFindings: null,
|
|
635
|
-
};
|
|
636
|
-
}
|
|
637
|
-
if (err instanceof Error && '__timeCeiling' in err) {
|
|
638
|
-
const ceilingMs = err.__timeCeiling;
|
|
639
|
-
emit({ kind: 'done', status: 'incomplete' });
|
|
640
|
-
const partial = partialUsage(currentResult, runner.providerConfig, parentModel, runner.usageAccumulator);
|
|
641
|
-
return sharedBuildTimeCeilingResult({
|
|
642
|
-
usage: { inputTokens: partial.inputTokens, outputTokens: partial.outputTokens, totalTokens: partial.totalTokens, costUSD: partial.costUSD, costDeltaVsParentUSD: partial.costDeltaVsParentUSD ?? null, cachedTokens: partial.cachedTokens ?? null, reasoningTokens: partial.reasoningTokens ?? null },
|
|
643
|
-
turns: currentResult?.state.usage.requests ?? 0,
|
|
644
|
-
tracker,
|
|
645
|
-
scratchpad,
|
|
646
|
-
wallClockMs: ceilingMs,
|
|
647
|
-
timeoutMs,
|
|
648
|
-
durationMs: Date.now() - taskStartMs,
|
|
649
|
-
});
|
|
650
|
-
}
|
|
651
|
-
// Classify the thrown error into a finer-grained RunStatus so the
|
|
652
|
-
// escalation orchestrator (and downstream observers) can distinguish
|
|
653
|
-
// abort / network / HTTP-error / generic failure modes. We still
|
|
654
|
-
// surface the original error message as the `error` field — the
|
|
655
|
-
// classifier's `reason` is deliberately a stable category label and
|
|
656
|
-
// NOT the human-readable message.
|
|
657
|
-
const { status, reason } = classifyError(err);
|
|
658
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
659
|
-
emit({ kind: 'done', status });
|
|
660
|
-
const hasSalvage = !scratchpad.isEmpty();
|
|
661
|
-
const partial = partialUsage(currentResult, runner.providerConfig, parentModel, runner.usageAccumulator);
|
|
662
|
-
return {
|
|
663
|
-
output: hasSalvage ? scratchpad.latest() : `Sub-agent error: ${msg}`,
|
|
664
|
-
status,
|
|
665
|
-
usage: partial,
|
|
666
|
-
turns: currentResult?.state.usage.requests ?? 0,
|
|
667
|
-
filesRead: tracker.getReads(),
|
|
668
|
-
directoriesListed: tracker.getDirectoriesListed(),
|
|
669
|
-
filesWritten: tracker.getWrites(),
|
|
670
|
-
toolCalls: tracker.getToolCalls(),
|
|
671
|
-
outputIsDiagnostic: !hasSalvage,
|
|
672
|
-
escalationLog: [],
|
|
673
|
-
error: msg || reason,
|
|
674
|
-
durationMs: Date.now() - taskStartMs,
|
|
675
|
-
...(isRateLimit(err) && {
|
|
676
|
-
structuredError: { code: 'rate_limit_exceeded', message: 'rate limited by provider', where: 'runner:openai-compatible' },
|
|
677
|
-
}),
|
|
678
|
-
...(isProviderContextLimit(err) && {
|
|
679
|
-
errorCode: 'provider_context_limit',
|
|
680
|
-
}),
|
|
681
|
-
parsedFindings: null,
|
|
682
|
-
};
|
|
683
|
-
}
|
|
684
|
-
};
|
|
685
|
-
return withTimeout(run(), timeoutMs, () => {
|
|
686
|
-
emit({ kind: 'done', status: 'timeout' });
|
|
687
|
-
const hasSalvage = !scratchpad.isEmpty();
|
|
688
|
-
const partial = partialUsage(currentResult, runner.providerConfig, parentModel, runner.usageAccumulator);
|
|
689
|
-
return {
|
|
690
|
-
output: hasSalvage
|
|
691
|
-
? scratchpad.latest()
|
|
692
|
-
: `Agent timed out after ${timeoutMs}ms.`,
|
|
693
|
-
status: 'timeout',
|
|
694
|
-
filesRead: tracker.getReads(),
|
|
695
|
-
directoriesListed: tracker.getDirectoriesListed(),
|
|
696
|
-
filesWritten: tracker.getWrites(),
|
|
697
|
-
toolCalls: tracker.getToolCalls(),
|
|
698
|
-
// Preserve partial usage from the last successful agentRun so the
|
|
699
|
-
// caller sees real numbers, not zeros, on a timeout.
|
|
700
|
-
usage: partial,
|
|
701
|
-
turns: currentResult?.state.usage.requests ?? 0,
|
|
702
|
-
outputIsDiagnostic: !hasSalvage,
|
|
703
|
-
escalationLog: [],
|
|
704
|
-
durationMs: Date.now() - taskStartMs,
|
|
705
|
-
parsedFindings: null,
|
|
706
|
-
};
|
|
707
|
-
}, abortController, options.abortSignal);
|
|
708
|
-
}
|
|
709
|
-
// --- Helpers: canonical return-shape builders -------------------------------
|
|
710
|
-
function resolveProviderRateCard(config) {
|
|
711
|
-
return resolveRateCard(config.model, {
|
|
712
|
-
inputCostPerMTok: config.inputCostPerMTok,
|
|
713
|
-
outputCostPerMTok: config.outputCostPerMTok,
|
|
714
|
-
});
|
|
715
|
-
}
|
|
716
|
-
/**
|
|
717
|
-
* Sum cached_tokens across inputTokensDetails records.
|
|
718
|
-
* OpenAI exposes cache reads only via `cached_tokens` in inputTokensDetails;
|
|
719
|
-
* there is no cache creation exposure.
|
|
720
|
-
*/
|
|
721
|
-
function sumCachedReadTokens(details) {
|
|
722
|
-
if (!details || details.length === 0)
|
|
723
|
-
return null;
|
|
724
|
-
let sum = 0;
|
|
725
|
-
let hasAny = false;
|
|
726
|
-
for (const d of details) {
|
|
727
|
-
if (typeof d.cached_tokens === 'number') {
|
|
728
|
-
sum += d.cached_tokens;
|
|
729
|
-
hasAny = true;
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
return hasAny ? sum : null;
|
|
733
|
-
}
|
|
734
|
-
/**
|
|
735
|
-
* Sum reasoning_tokens across outputTokensDetails records.
|
|
736
|
-
*/
|
|
737
|
-
function sumReasoningTokens(details) {
|
|
738
|
-
if (!details || details.length === 0)
|
|
739
|
-
return null;
|
|
740
|
-
let sum = 0;
|
|
741
|
-
let hasAny = false;
|
|
742
|
-
for (const d of details) {
|
|
743
|
-
if (typeof d.reasoning_tokens === 'number') {
|
|
744
|
-
sum += d.reasoning_tokens;
|
|
745
|
-
hasAny = true;
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
return hasAny ? sum : null;
|
|
749
|
-
}
|
|
750
|
-
/**
|
|
751
|
-
* Extract split cache/reasoning tokens into {@link CanonicalUsage} shape (§3.6).
|
|
752
|
-
*
|
|
753
|
-
* OpenAI exposes cache reads via `cached_tokens` in `inputTokensDetails` and
|
|
754
|
-
* reasoning tokens via `reasoning_tokens` in `outputTokensDetails`. There is
|
|
755
|
-
* no cache creation dimension in OpenAI's API, so `cachedCreationTokens` is
|
|
756
|
-
* always null.
|
|
757
|
-
*/
|
|
758
|
-
function extractCanonicalTokens(usage) {
|
|
759
|
-
return {
|
|
760
|
-
cachedReadTokens: sumCachedReadTokens(usage.inputTokensDetails),
|
|
761
|
-
cachedCreationTokens: null,
|
|
762
|
-
reasoningTokens: sumReasoningTokens(usage.outputTokensDetails),
|
|
763
|
-
};
|
|
764
|
-
}
|
|
765
|
-
export function openAIUsage(currentResult, providerConfig, parentModel, usageAccumulator) {
|
|
766
|
-
const sdk = currentResult.state.usage;
|
|
767
|
-
const sdkExtra = extractCanonicalTokens(sdk);
|
|
768
|
-
// SDK fallback path. Use the HTTP-level accumulator (if present) when
|
|
769
|
-
// the SDK reports zero input tokens despite at least one completed
|
|
770
|
-
// request — the @openai/agents stream consumer is known to drop usage
|
|
771
|
-
// on multi-turn DeepSeek calls. Trust SDK numbers when they're present
|
|
772
|
-
// (OpenAI proper) so we don't double-count or lose details the
|
|
773
|
-
// accumulator can't see (e.g. reasoning tokens for o1-style models).
|
|
774
|
-
const sdkLooksDropped = sdk.inputTokens === 0
|
|
775
|
-
&& sdk.outputTokens === 0
|
|
776
|
-
&& sdk.requests > 0
|
|
777
|
-
&& (usageAccumulator?.hasObservedUsage() ?? false);
|
|
778
|
-
let inputTokensRaw;
|
|
779
|
-
let outputTokens;
|
|
780
|
-
let cachedRead;
|
|
781
|
-
let reasoning;
|
|
782
|
-
if (sdkLooksDropped) {
|
|
783
|
-
const snap = usageAccumulator.snapshot();
|
|
784
|
-
inputTokensRaw = snap.promptTokens;
|
|
785
|
-
outputTokens = snap.completionTokens;
|
|
786
|
-
cachedRead = snap.cachedReadTokens;
|
|
787
|
-
reasoning = snap.reasoningTokens;
|
|
788
|
-
}
|
|
789
|
-
else {
|
|
790
|
-
inputTokensRaw = sdk.inputTokens;
|
|
791
|
-
outputTokens = sdk.outputTokens;
|
|
792
|
-
cachedRead = sdkExtra.cachedReadTokens ?? 0;
|
|
793
|
-
reasoning = sdkExtra.reasoningTokens ?? 0;
|
|
794
|
-
}
|
|
795
|
-
const nonCachedInput = Math.max(0, inputTokensRaw - cachedRead);
|
|
796
|
-
const workerCard = resolveProviderRateCard(providerConfig);
|
|
797
|
-
const tokenCounts = {
|
|
798
|
-
inputTokens: nonCachedInput,
|
|
799
|
-
outputTokens,
|
|
800
|
-
cachedReadTokens: cachedRead,
|
|
801
|
-
cachedCreationTokens: 0,
|
|
802
|
-
reasoningTokens: reasoning,
|
|
803
|
-
};
|
|
804
|
-
const costUSD = workerCard ? priceTokens(tokenCounts, workerCard) : null;
|
|
805
|
-
let costDeltaVsParentUSD = null;
|
|
806
|
-
if (costUSD !== null && parentModel) {
|
|
807
|
-
const parentCard = resolveRateCard(parentModel);
|
|
808
|
-
if (parentCard) {
|
|
809
|
-
costDeltaVsParentUSD = costUSD - priceTokens(tokenCounts, parentCard);
|
|
810
|
-
}
|
|
811
|
-
}
|
|
812
|
-
const totalTokens = inputTokensRaw + outputTokens;
|
|
813
|
-
const legacyCached = sdkExtra.cachedReadTokens !== null || sdkLooksDropped ? cachedRead : null;
|
|
814
|
-
return {
|
|
815
|
-
inputTokens: inputTokensRaw,
|
|
816
|
-
outputTokens,
|
|
817
|
-
totalTokens,
|
|
818
|
-
costUSD,
|
|
819
|
-
costDeltaVsParentUSD,
|
|
820
|
-
cachedTokens: legacyCached,
|
|
821
|
-
cachedReadTokens: sdkLooksDropped ? cachedRead : sdkExtra.cachedReadTokens,
|
|
822
|
-
cachedCreationTokens: null,
|
|
823
|
-
reasoningTokens: sdkLooksDropped ? reasoning : sdkExtra.reasoningTokens,
|
|
824
|
-
};
|
|
825
|
-
}
|
|
826
|
-
function buildOkResult(output, currentResult, tracker, providerConfig, durationMs, parentModel, usageAccumulator) {
|
|
827
|
-
return sharedBuildOkResult({
|
|
828
|
-
output,
|
|
829
|
-
usage: openAIUsage(currentResult, providerConfig, parentModel, usageAccumulator),
|
|
830
|
-
turns: currentResult.state.usage.requests,
|
|
831
|
-
tracker,
|
|
832
|
-
durationMs,
|
|
833
|
-
});
|
|
834
|
-
}
|
|
835
|
-
function buildSupervisionExhaustedResult(currentResult, scratchpad, tracker, providerConfig, durationMs, parentModel, opts, usageAccumulator) {
|
|
836
|
-
return sharedBuildIncompleteResult({
|
|
837
|
-
usage: openAIUsage(currentResult, providerConfig, parentModel, usageAccumulator),
|
|
838
|
-
turns: currentResult.state.usage.requests,
|
|
839
|
-
tracker,
|
|
840
|
-
scratchpad,
|
|
841
|
-
buildDiagnostic: (ctx) => buildIncompleteDiagnostic({ providerLabel: 'openai-compatible', ...ctx }),
|
|
842
|
-
durationMs,
|
|
843
|
-
reason: opts?.reason,
|
|
844
|
-
stampExhausted: true,
|
|
845
|
-
});
|
|
846
|
-
}
|
|
847
|
-
/**
|
|
848
|
-
* Synthesise a diagnostic message for runs that completed without producing
|
|
849
|
-
* usable final output. Surfaces enough metadata for the caller to debug:
|
|
850
|
-
* how many turns were spent, what the model burnt token-wise, and what files
|
|
851
|
-
* the worker actually looked at before giving up.
|
|
852
|
-
*/
|
|
853
|
-
function buildIncompleteDiagnostic(opts) {
|
|
854
|
-
const lines = [
|
|
855
|
-
`[${opts.providerLabel} sub-agent terminated without producing a final answer]`,
|
|
856
|
-
'',
|
|
857
|
-
'The agent loop ended on a message with no tool calls and no plain-text content. ' +
|
|
858
|
-
'This usually means one of:',
|
|
859
|
-
' • the model emitted only <think> reasoning, then stopped',
|
|
860
|
-
' • the model produced a conversational fragment instead of a final answer',
|
|
861
|
-
' • a tool call was malformed and the SDK treated the response as terminal',
|
|
862
|
-
'',
|
|
863
|
-
`Turns used: ${opts.turns}`,
|
|
864
|
-
`Input tokens: ${opts.inputTokens}`,
|
|
865
|
-
`Output tokens: ${opts.outputTokens}`,
|
|
866
|
-
`Files read: ${opts.filesRead.length}${opts.filesRead.length > 0 ? ` (${formatFileList(opts.filesRead)})` : ''}`,
|
|
867
|
-
`Files written: ${opts.filesWritten.length}${opts.filesWritten.length > 0 ? ` (${formatFileList(opts.filesWritten)})` : ''}`,
|
|
868
|
-
'',
|
|
869
|
-
'Recommended action: re-dispatch with a tighter, more explicit brief, or escalate to a higher-tier provider.',
|
|
870
|
-
];
|
|
871
|
-
return lines.join('\n');
|
|
872
|
-
}
|
|
873
|
-
function formatFileList(files) {
|
|
874
|
-
const MAX_SHOWN = 10;
|
|
875
|
-
if (files.length <= MAX_SHOWN)
|
|
876
|
-
return files.join(', ');
|
|
877
|
-
return `${files.slice(0, MAX_SHOWN).join(', ')}, … ${files.length - MAX_SHOWN} more`;
|
|
878
|
-
}
|
|
879
|
-
/**
|
|
880
|
-
* Read whatever usage we managed to accumulate from the last successful
|
|
881
|
-
* `agentRun` before a throw, max_turns, or timeout. Used by every
|
|
882
|
-
* non-happy-path return so the caller sees real token counts (and a
|
|
883
|
-
* real cost estimate) instead of zeros.
|
|
884
|
-
*/
|
|
885
|
-
function partialUsage(result, providerConfig, parentModel, usageAccumulator) {
|
|
886
|
-
if (!result) {
|
|
887
|
-
// No SDK result yet — but if the HTTP interceptor saw at least one
|
|
888
|
-
// response, surface that as the partial. Otherwise zeros.
|
|
889
|
-
if (usageAccumulator?.hasObservedUsage()) {
|
|
890
|
-
const snap = usageAccumulator.snapshot();
|
|
891
|
-
const tc = {
|
|
892
|
-
inputTokens: Math.max(0, snap.promptTokens - snap.cachedReadTokens),
|
|
893
|
-
outputTokens: snap.completionTokens,
|
|
894
|
-
cachedReadTokens: snap.cachedReadTokens,
|
|
895
|
-
cachedCreationTokens: 0,
|
|
896
|
-
reasoningTokens: snap.reasoningTokens,
|
|
897
|
-
};
|
|
898
|
-
const card = resolveProviderRateCard(providerConfig);
|
|
899
|
-
const costUSD = card ? priceTokens(tc, card) : null;
|
|
900
|
-
const parentCard = parentModel ? resolveRateCard(parentModel) : null;
|
|
901
|
-
const costDeltaVsParentUSD = (costUSD !== null && parentCard)
|
|
902
|
-
? costUSD - priceTokens(tc, parentCard)
|
|
903
|
-
: null;
|
|
904
|
-
return {
|
|
905
|
-
inputTokens: snap.promptTokens,
|
|
906
|
-
outputTokens: snap.completionTokens,
|
|
907
|
-
totalTokens: snap.promptTokens + snap.completionTokens,
|
|
908
|
-
costUSD,
|
|
909
|
-
costDeltaVsParentUSD,
|
|
910
|
-
cachedTokens: snap.cachedReadTokens || null,
|
|
911
|
-
cachedReadTokens: snap.cachedReadTokens || null,
|
|
912
|
-
cachedCreationTokens: null,
|
|
913
|
-
reasoningTokens: snap.reasoningTokens || null,
|
|
914
|
-
};
|
|
915
|
-
}
|
|
916
|
-
return { inputTokens: 0, outputTokens: 0, totalTokens: 0, costUSD: null, costDeltaVsParentUSD: null, cachedTokens: null, cachedReadTokens: null, cachedCreationTokens: null, reasoningTokens: null };
|
|
917
|
-
}
|
|
918
|
-
// Reuse openAIUsage's SDK-vs-accumulator selection logic so the timeout
|
|
919
|
-
// / cost-exceeded paths get the same fallback semantics as the ok path.
|
|
920
|
-
return openAIUsage(result, providerConfig, parentModel, usageAccumulator);
|
|
921
|
-
}
|
|
922
|
-
/**
|
|
923
|
-
* Review-mode entry: routes `systemPrefix` into Agent.instructions
|
|
924
|
-
* (cacheable by OpenAI's prefix-caching rules for instructions > 1024 tokens)
|
|
925
|
-
* and `userBody` as the first user message. The standard prevention-layer
|
|
926
|
-
* system prompt is prepended to instructions.
|
|
927
|
-
*/
|
|
928
|
-
export async function runOpenAIReview(parts, options, runner) {
|
|
929
|
-
return runOpenAI(parts.userBody, {
|
|
930
|
-
...options,
|
|
931
|
-
instructionsSuffix: parts.systemPrefix,
|
|
932
|
-
}, runner);
|
|
933
|
-
}
|
|
934
|
-
//# sourceMappingURL=openai-runner.js.map
|