@zhixuan92/multi-model-agent-core 4.3.0 → 4.4.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 +7 -8
- package/dist/bounded-execution/activity-tracker-types.d.ts +1 -1
- package/dist/bounded-execution/activity-tracker-types.d.ts.map +1 -1
- package/dist/bounded-execution/activity-tracker-types.js +4 -9
- package/dist/bounded-execution/activity-tracker-types.js.map +1 -1
- package/dist/bounded-execution/cost-compute.d.ts.map +1 -1
- package/dist/bounded-execution/cost-compute.js +10 -0
- package/dist/bounded-execution/cost-compute.js.map +1 -1
- package/dist/config/config-resolver.d.ts +6 -4
- package/dist/config/config-resolver.d.ts.map +1 -1
- package/dist/config/config-resolver.js +7 -6
- package/dist/config/config-resolver.js.map +1 -1
- package/dist/config/schema.d.ts +8 -76
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +11 -18
- package/dist/config/schema.js.map +1 -1
- package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
- package/dist/escalation/delegate-with-escalation.js +35 -38
- package/dist/escalation/delegate-with-escalation.js.map +1 -1
- package/dist/escalation/escalation-policy.d.ts +1 -1
- package/dist/escalation/escalation-policy.d.ts.map +1 -1
- package/dist/escalation/escalation-policy.js +0 -1
- package/dist/escalation/escalation-policy.js.map +1 -1
- package/dist/events/clamp.d.ts.map +1 -1
- package/dist/events/clamp.js +17 -6
- package/dist/events/clamp.js.map +1 -1
- package/dist/events/cloud-events.d.ts +2 -4
- package/dist/events/cloud-events.d.ts.map +1 -1
- package/dist/events/event-builder.d.ts +1 -1
- package/dist/events/event-builder.d.ts.map +1 -1
- package/dist/events/event-builder.js +28 -56
- package/dist/events/event-builder.js.map +1 -1
- package/dist/events/observability-events.d.ts +21 -110
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/observability-events.js +6 -12
- package/dist/events/observability-events.js.map +1 -1
- package/dist/events/running-headline-sink.d.ts +2 -1
- package/dist/events/running-headline-sink.d.ts.map +1 -1
- package/dist/events/running-headline-sink.js.map +1 -1
- package/dist/events/telemetry-types.d.ts +45 -86
- package/dist/events/telemetry-types.d.ts.map +1 -1
- package/dist/events/telemetry-types.js +30 -55
- package/dist/events/telemetry-types.js.map +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/intake/source-schema.js +1 -1
- package/dist/intake/source-schema.js.map +1 -1
- package/dist/intake/types.d.ts +1 -1
- package/dist/intake/types.d.ts.map +1 -1
- package/dist/intake/verify-command-validator.d.ts +6 -0
- package/dist/intake/verify-command-validator.d.ts.map +1 -0
- package/dist/intake/verify-command-validator.js +47 -0
- package/dist/intake/verify-command-validator.js.map +1 -0
- package/dist/lifecycle/findings-parser.d.ts +9 -0
- package/dist/lifecycle/findings-parser.d.ts.map +1 -0
- package/dist/lifecycle/findings-parser.js +47 -0
- package/dist/lifecycle/findings-parser.js.map +1 -0
- package/dist/lifecycle/handlers/annotator.d.ts +35 -0
- package/dist/lifecycle/handlers/annotator.d.ts.map +1 -0
- package/dist/lifecycle/handlers/annotator.js +38 -0
- package/dist/lifecycle/handlers/annotator.js.map +1 -0
- package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.js +34 -37
- package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts +6 -0
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts.map +1 -1
- package/dist/lifecycle/handlers/files-written-cross-check.js +7 -1
- package/dist/lifecycle/handlers/files-written-cross-check.js.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.d.ts +1 -16
- package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.js +149 -42
- package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
- package/dist/lifecycle/handlers/read-route-implementer.d.ts +41 -0
- package/dist/lifecycle/handlers/read-route-implementer.d.ts.map +1 -0
- package/dist/lifecycle/handlers/read-route-implementer.js +84 -0
- package/dist/lifecycle/handlers/read-route-implementer.js.map +1 -0
- package/dist/lifecycle/handlers/review-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/review-handler.js +98 -70
- package/dist/lifecycle/handlers/review-handler.js.map +1 -1
- package/dist/lifecycle/handlers/rework-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/rework-handler.js +64 -25
- package/dist/lifecycle/handlers/rework-handler.js.map +1 -1
- package/dist/lifecycle/handlers/task-executor.d.ts +1 -3
- package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/handlers/task-executor.js +88 -8
- package/dist/lifecycle/handlers/task-executor.js.map +1 -1
- package/dist/lifecycle/lifecycle-context.d.ts +13 -0
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
- package/dist/lifecycle/merge-stage-stats.d.ts +3 -4
- package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
- package/dist/lifecycle/merge-stage-stats.js +2 -2
- package/dist/lifecycle/merge-stage-stats.js.map +1 -1
- package/dist/lifecycle/parallel-criteria-routes.d.ts +20 -6
- package/dist/lifecycle/parallel-criteria-routes.d.ts.map +1 -1
- package/dist/lifecycle/parallel-criteria-routes.js +36 -142
- package/dist/lifecycle/parallel-criteria-routes.js.map +1 -1
- package/dist/lifecycle/read-only-subtype-spec.d.ts +18 -0
- package/dist/lifecycle/read-only-subtype-spec.d.ts.map +1 -0
- package/dist/lifecycle/read-only-subtype-spec.js +2 -0
- package/dist/lifecycle/read-only-subtype-spec.js.map +1 -0
- package/dist/lifecycle/stage-labels.d.ts +22 -0
- package/dist/lifecycle/stage-labels.d.ts.map +1 -0
- package/dist/lifecycle/stage-labels.js +42 -0
- package/dist/lifecycle/stage-labels.js.map +1 -0
- package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
- package/dist/lifecycle/stage-plan-builder.js +25 -54
- package/dist/lifecycle/stage-plan-builder.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +0 -23
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.js +10 -10
- package/dist/lifecycle/stage-progression.js.map +1 -1
- package/dist/lifecycle/stage-stats.d.ts +3 -3
- package/dist/lifecycle/stage-stats.d.ts.map +1 -1
- package/dist/lifecycle/stage-stats.js +6 -9
- package/dist/lifecycle/stage-stats.js.map +1 -1
- package/dist/lifecycle/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/task-executor.js +20 -17
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +83 -72
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/lifecycle/tool-config-types.d.ts +1 -2
- package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
- package/dist/lifecycle/warm-followup.d.ts +3 -0
- package/dist/lifecycle/warm-followup.d.ts.map +1 -0
- package/dist/lifecycle/warm-followup.js +16 -0
- package/dist/lifecycle/warm-followup.js.map +1 -0
- package/dist/lifecycle/worker-output-contract.d.ts +26 -0
- package/dist/lifecycle/worker-output-contract.d.ts.map +1 -0
- package/dist/lifecycle/worker-output-contract.js +73 -0
- package/dist/lifecycle/worker-output-contract.js.map +1 -0
- package/dist/providers/assemble-run-result.d.ts +17 -0
- package/dist/providers/assemble-run-result.d.ts.map +1 -0
- package/dist/providers/assemble-run-result.js +76 -0
- package/dist/providers/assemble-run-result.js.map +1 -0
- package/dist/providers/brief-preamble.d.ts +4 -0
- package/dist/providers/brief-preamble.d.ts.map +1 -0
- package/dist/providers/brief-preamble.js +39 -0
- package/dist/providers/brief-preamble.js.map +1 -0
- package/dist/providers/claude-session.d.ts +23 -0
- package/dist/providers/claude-session.d.ts.map +1 -0
- package/dist/providers/claude-session.js +185 -0
- package/dist/providers/claude-session.js.map +1 -0
- package/dist/providers/claude.d.ts +4 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +35 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex-cli-event.d.ts +44 -0
- package/dist/providers/codex-cli-event.d.ts.map +1 -0
- package/dist/providers/codex-cli-event.js +43 -0
- package/dist/providers/codex-cli-event.js.map +1 -0
- package/dist/providers/codex-cli-launch.d.ts +26 -0
- package/dist/providers/codex-cli-launch.d.ts.map +1 -0
- package/dist/providers/codex-cli-launch.js +47 -0
- package/dist/providers/codex-cli-launch.js.map +1 -0
- package/dist/providers/codex-cli-session.d.ts +55 -0
- package/dist/providers/codex-cli-session.d.ts.map +1 -0
- package/dist/providers/codex-cli-session.js +417 -0
- package/dist/providers/codex-cli-session.js.map +1 -0
- package/dist/providers/codex.d.ts +4 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +28 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/index.d.ts +0 -12
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -13
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/normalize-claude.d.ts +10 -0
- package/dist/providers/normalize-claude.d.ts.map +1 -0
- package/dist/providers/normalize-claude.js +89 -0
- package/dist/providers/normalize-claude.js.map +1 -0
- package/dist/providers/provider-factory.d.ts +1 -9
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +35 -167
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/runner-adapter.d.ts +5 -16
- package/dist/providers/runner-adapter.d.ts.map +1 -1
- package/dist/providers/runner-adapter.js +6 -0
- package/dist/providers/runner-adapter.js.map +1 -1
- package/dist/providers/runner-types.d.ts +21 -3
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/reporting/report-parser-slots/research-report.d.ts +21 -17
- package/dist/reporting/report-parser-slots/research-report.d.ts.map +1 -1
- package/dist/reporting/report-parser-slots/research-report.js +28 -67
- package/dist/reporting/report-parser-slots/research-report.js.map +1 -1
- package/dist/review/annotator-engine.d.ts +2 -2
- package/dist/review/annotator-engine.d.ts.map +1 -1
- package/dist/review/annotator-engine.js +16 -20
- package/dist/review/annotator-engine.js.map +1 -1
- package/dist/review/annotator-prompt-builder.d.ts +1 -1
- package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
- package/dist/review/default-engines.d.ts.map +1 -1
- package/dist/review/default-engines.js +2 -4
- package/dist/review/default-engines.js.map +1 -1
- package/dist/review/review-types.d.ts +0 -1
- package/dist/review/review-types.d.ts.map +1 -1
- package/dist/review/reviewer-engine.d.ts +5 -40
- package/dist/review/reviewer-engine.d.ts.map +1 -1
- package/dist/review/reviewer-engine.js +19 -49
- package/dist/review/reviewer-engine.js.map +1 -1
- package/dist/review/reviewer-output-parser.d.ts +1 -6
- package/dist/review/reviewer-output-parser.d.ts.map +1 -1
- package/dist/review/reviewer-output-parser.js +0 -26
- package/dist/review/reviewer-output-parser.js.map +1 -1
- package/dist/review/reviewer-prompt-builder.d.ts +1 -6
- package/dist/review/reviewer-prompt-builder.d.ts.map +1 -1
- package/dist/review/reviewer-prompt-builder.js +0 -6
- package/dist/review/reviewer-prompt-builder.js.map +1 -1
- package/dist/review/templates/quality-review.d.ts.map +1 -1
- package/dist/review/templates/quality-review.js +28 -0
- package/dist/review/templates/quality-review.js.map +1 -1
- package/dist/review/templates/rework.d.ts.map +1 -1
- package/dist/review/templates/rework.js +15 -9
- package/dist/review/templates/rework.js.map +1 -1
- package/dist/review/templates/shared.d.ts +9 -0
- package/dist/review/templates/shared.d.ts.map +1 -1
- package/dist/stores/context-block-project-cap.d.ts +1 -1
- package/dist/stores/context-block-project-cap.d.ts.map +1 -1
- package/dist/stores/context-block-project-cap.js +17 -5
- package/dist/stores/context-block-project-cap.js.map +1 -1
- package/dist/stores/file-backed-context-block-store.d.ts +7 -0
- package/dist/stores/file-backed-context-block-store.d.ts.map +1 -1
- package/dist/stores/file-backed-context-block-store.js +8 -0
- package/dist/stores/file-backed-context-block-store.js.map +1 -1
- package/dist/tool-surface/discover.d.ts +1 -1
- package/dist/tool-surface/discover.d.ts.map +1 -1
- package/dist/tool-surface/discover.js +0 -1
- package/dist/tool-surface/discover.js.map +1 -1
- package/dist/tool-surface/openapi-generator.d.ts.map +1 -1
- package/dist/tool-surface/openapi-generator.js +0 -2
- package/dist/tool-surface/openapi-generator.js.map +1 -1
- package/dist/tool-surface/register-all-tools.d.ts.map +1 -1
- package/dist/tool-surface/register-all-tools.js +1 -3
- package/dist/tool-surface/register-all-tools.js.map +1 -1
- package/dist/tools/audit/schema.d.ts +4 -4
- package/dist/tools/audit/schema.d.ts.map +1 -1
- package/dist/tools/audit/schema.js +4 -4
- package/dist/tools/audit/schema.js.map +1 -1
- package/dist/tools/audit/skill-audit-criteria.d.ts +9 -0
- package/dist/tools/audit/skill-audit-criteria.d.ts.map +1 -0
- package/dist/tools/audit/skill-audit-criteria.js +51 -0
- package/dist/tools/audit/skill-audit-criteria.js.map +1 -0
- package/dist/tools/audit/spec-audit-criteria.d.ts +9 -0
- package/dist/tools/audit/spec-audit-criteria.d.ts.map +1 -0
- package/dist/tools/audit/spec-audit-criteria.js +52 -0
- package/dist/tools/audit/spec-audit-criteria.js.map +1 -0
- package/dist/tools/audit/subtypes.d.ts +4 -0
- package/dist/tools/audit/subtypes.d.ts.map +1 -0
- package/dist/tools/audit/subtypes.js +67 -0
- package/dist/tools/audit/subtypes.js.map +1 -0
- package/dist/tools/audit/tool-config.d.ts +4 -4
- package/dist/tools/audit/tool-config.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.js +31 -29
- package/dist/tools/audit/tool-config.js.map +1 -1
- package/dist/tools/debug/schema.d.ts +3 -0
- package/dist/tools/debug/schema.d.ts.map +1 -1
- package/dist/tools/debug/schema.js +1 -0
- package/dist/tools/debug/schema.js.map +1 -1
- package/dist/tools/debug/subtypes.d.ts +4 -0
- package/dist/tools/debug/subtypes.d.ts.map +1 -0
- package/dist/tools/debug/subtypes.js +25 -0
- package/dist/tools/debug/subtypes.js.map +1 -0
- package/dist/tools/delegate/tool-config.d.ts.map +1 -1
- package/dist/tools/delegate/tool-config.js +0 -1
- package/dist/tools/delegate/tool-config.js.map +1 -1
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +5 -2
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/investigate/schema.d.ts +3 -0
- package/dist/tools/investigate/schema.d.ts.map +1 -1
- package/dist/tools/investigate/schema.js +1 -0
- package/dist/tools/investigate/schema.js.map +1 -1
- package/dist/tools/investigate/subtypes.d.ts +4 -0
- package/dist/tools/investigate/subtypes.d.ts.map +1 -0
- package/dist/tools/investigate/subtypes.js +25 -0
- package/dist/tools/investigate/subtypes.js.map +1 -0
- package/dist/tools/research/implementer-criteria.d.ts +12 -5
- package/dist/tools/research/implementer-criteria.d.ts.map +1 -1
- package/dist/tools/research/implementer-criteria.js +40 -9
- package/dist/tools/research/implementer-criteria.js.map +1 -1
- package/dist/tools/research/schema.d.ts +3 -0
- package/dist/tools/research/schema.d.ts.map +1 -1
- package/dist/tools/research/schema.js +2 -1
- package/dist/tools/research/schema.js.map +1 -1
- package/dist/tools/research/subtypes.d.ts +4 -0
- package/dist/tools/research/subtypes.d.ts.map +1 -0
- package/dist/tools/research/subtypes.js +24 -0
- package/dist/tools/research/subtypes.js.map +1 -0
- package/dist/tools/research/tool-config.js +2 -2
- package/dist/tools/research/tool-config.js.map +1 -1
- package/dist/tools/review/schema.d.ts +3 -0
- package/dist/tools/review/schema.d.ts.map +1 -1
- package/dist/tools/review/schema.js +1 -0
- package/dist/tools/review/schema.js.map +1 -1
- package/dist/tools/review/subtypes.d.ts +4 -0
- package/dist/tools/review/subtypes.d.ts.map +1 -0
- package/dist/tools/review/subtypes.js +26 -0
- package/dist/tools/review/subtypes.js.map +1 -0
- package/dist/types/config.d.ts +14 -28
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/enums.d.ts +3 -8
- package/dist/types/enums.d.ts.map +1 -1
- package/dist/types/enums.js +3 -3
- package/dist/types/enums.js.map +1 -1
- package/dist/types/run-result.d.ts +57 -22
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/stage-stats.d.ts +10 -29
- package/dist/types/stage-stats.d.ts.map +1 -1
- package/dist/types/task-spec.d.ts +17 -15
- package/dist/types/task-spec.d.ts.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -3
- package/dist/identity/main-model-resolver.d.ts +0 -14
- package/dist/identity/main-model-resolver.d.ts.map +0 -1
- package/dist/identity/main-model-resolver.js +0 -83
- package/dist/identity/main-model-resolver.js.map +0 -1
- package/dist/lifecycle/handlers/annotate-completion-handler.d.ts +0 -9
- package/dist/lifecycle/handlers/annotate-completion-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/annotate-completion-handler.js +0 -171
- package/dist/lifecycle/handlers/annotate-completion-handler.js.map +0 -1
- package/dist/lifecycle/handlers/annotate-criteria-handler.d.ts +0 -3
- package/dist/lifecycle/handlers/annotate-criteria-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/annotate-criteria-handler.js +0 -67
- package/dist/lifecycle/handlers/annotate-criteria-handler.js.map +0 -1
- package/dist/lifecycle/handlers/execution-context-builder.d.ts +0 -5
- package/dist/lifecycle/handlers/execution-context-builder.d.ts.map +0 -1
- package/dist/lifecycle/handlers/execution-context-builder.js +0 -17
- package/dist/lifecycle/handlers/execution-context-builder.js.map +0 -1
- package/dist/lifecycle/parallel-criteria-dispatcher.d.ts +0 -62
- package/dist/lifecycle/parallel-criteria-dispatcher.d.ts.map +0 -1
- package/dist/lifecycle/parallel-criteria-dispatcher.js +0 -328
- package/dist/lifecycle/parallel-criteria-dispatcher.js.map +0 -1
- package/dist/providers/anthropic-messages-adapter.d.ts +0 -26
- package/dist/providers/anthropic-messages-adapter.d.ts.map +0 -1
- package/dist/providers/anthropic-messages-adapter.js +0 -127
- package/dist/providers/anthropic-messages-adapter.js.map +0 -1
- package/dist/providers/base/research-tools.d.ts +0 -47
- package/dist/providers/base/research-tools.d.ts.map +0 -1
- package/dist/providers/base/research-tools.js +0 -67
- package/dist/providers/base/research-tools.js.map +0 -1
- package/dist/providers/base/result-builders.d.ts +0 -82
- package/dist/providers/base/result-builders.d.ts.map +0 -1
- package/dist/providers/base/result-builders.js +0 -112
- package/dist/providers/base/result-builders.js.map +0 -1
- package/dist/providers/base/time-check.d.ts +0 -9
- package/dist/providers/base/time-check.d.ts.map +0 -1
- package/dist/providers/base/time-check.js +0 -18
- package/dist/providers/base/time-check.js.map +0 -1
- package/dist/providers/base/types.d.ts +0 -53
- package/dist/providers/base/types.d.ts.map +0 -1
- package/dist/providers/base/types.js +0 -2
- package/dist/providers/base/types.js.map +0 -1
- package/dist/providers/base/usage-accumulator.d.ts +0 -9
- package/dist/providers/base/usage-accumulator.d.ts.map +0 -1
- package/dist/providers/base/usage-accumulator.js +0 -20
- package/dist/providers/base/usage-accumulator.js.map +0 -1
- package/dist/providers/call-cache.d.ts +0 -16
- package/dist/providers/call-cache.d.ts.map +0 -1
- package/dist/providers/call-cache.js +0 -28
- package/dist/providers/call-cache.js.map +0 -1
- package/dist/providers/file-tracker.d.ts +0 -80
- package/dist/providers/file-tracker.d.ts.map +0 -1
- package/dist/providers/file-tracker.js +0 -125
- package/dist/providers/file-tracker.js.map +0 -1
- package/dist/providers/injection-type.d.ts +0 -22
- package/dist/providers/injection-type.d.ts.map +0 -1
- package/dist/providers/injection-type.js +0 -34
- package/dist/providers/injection-type.js.map +0 -1
- package/dist/providers/make-runner-shell.d.ts +0 -4
- package/dist/providers/make-runner-shell.d.ts.map +0 -1
- package/dist/providers/make-runner-shell.js +0 -70
- package/dist/providers/make-runner-shell.js.map +0 -1
- package/dist/providers/openai-chat-adapter.d.ts +0 -15
- package/dist/providers/openai-chat-adapter.d.ts.map +0 -1
- package/dist/providers/openai-chat-adapter.js +0 -86
- package/dist/providers/openai-chat-adapter.js.map +0 -1
- package/dist/providers/openai-responses-adapter.d.ts +0 -15
- package/dist/providers/openai-responses-adapter.d.ts.map +0 -1
- package/dist/providers/openai-responses-adapter.js +0 -137
- package/dist/providers/openai-responses-adapter.js.map +0 -1
- package/dist/providers/openai-usage-interceptor.d.ts +0 -25
- package/dist/providers/openai-usage-interceptor.d.ts.map +0 -1
- package/dist/providers/openai-usage-interceptor.js +0 -121
- package/dist/providers/openai-usage-interceptor.js.map +0 -1
- package/dist/providers/prevention.d.ts +0 -44
- package/dist/providers/prevention.d.ts.map +0 -1
- package/dist/providers/prevention.js +0 -108
- package/dist/providers/prevention.js.map +0 -1
- package/dist/providers/runner-shell-types.d.ts +0 -91
- package/dist/providers/runner-shell-types.d.ts.map +0 -1
- package/dist/providers/runner-shell-types.js +0 -2
- package/dist/providers/runner-shell-types.js.map +0 -1
- package/dist/providers/runner-shell.d.ts +0 -67
- package/dist/providers/runner-shell.d.ts.map +0 -1
- package/dist/providers/runner-shell.js +0 -518
- package/dist/providers/runner-shell.js.map +0 -1
- package/dist/providers/scratchpad-salvager.d.ts +0 -19
- package/dist/providers/scratchpad-salvager.d.ts.map +0 -1
- package/dist/providers/scratchpad-salvager.js +0 -44
- package/dist/providers/scratchpad-salvager.js.map +0 -1
- package/dist/providers/supervision.d.ts +0 -108
- package/dist/providers/supervision.d.ts.map +0 -1
- package/dist/providers/supervision.js +0 -272
- package/dist/providers/supervision.js.map +0 -1
- package/dist/providers/text-scratchpad.d.ts +0 -28
- package/dist/providers/text-scratchpad.d.ts.map +0 -1
- package/dist/providers/text-scratchpad.js +0 -49
- package/dist/providers/text-scratchpad.js.map +0 -1
- package/dist/providers/tool-definitions.d.ts +0 -6
- package/dist/providers/tool-definitions.d.ts.map +0 -1
- package/dist/providers/tool-definitions.js +0 -236
- package/dist/providers/tool-definitions.js.map +0 -1
- package/dist/providers/tool-implementations.d.ts +0 -38
- package/dist/providers/tool-implementations.d.ts.map +0 -1
- package/dist/providers/tool-implementations.js +0 -254
- package/dist/providers/tool-implementations.js.map +0 -1
- package/dist/providers/tool-tracker.d.ts +0 -14
- package/dist/providers/tool-tracker.d.ts.map +0 -1
- package/dist/providers/tool-tracker.js +0 -13
- package/dist/providers/tool-tracker.js.map +0 -1
- package/dist/reporting/headline-templates/verify.d.ts +0 -3
- package/dist/reporting/headline-templates/verify.d.ts.map +0 -1
- package/dist/reporting/headline-templates/verify.js +0 -29
- package/dist/reporting/headline-templates/verify.js.map +0 -1
- package/dist/reporting/report-parser-slots/verify-report.d.ts +0 -27
- package/dist/reporting/report-parser-slots/verify-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/verify-report.js +0 -51
- package/dist/reporting/report-parser-slots/verify-report.js.map +0 -1
- package/dist/review/templates/annotator-verify.d.ts +0 -3
- package/dist/review/templates/annotator-verify.d.ts.map +0 -1
- package/dist/review/templates/annotator-verify.js +0 -21
- package/dist/review/templates/annotator-verify.js.map +0 -1
- package/dist/review/templates/quality-review-verify.d.ts +0 -3
- package/dist/review/templates/quality-review-verify.d.ts.map +0 -1
- package/dist/review/templates/quality-review-verify.js +0 -10
- package/dist/review/templates/quality-review-verify.js.map +0 -1
- package/dist/tools/verify/implementer-criteria.d.ts +0 -61
- package/dist/tools/verify/implementer-criteria.d.ts.map +0 -1
- package/dist/tools/verify/implementer-criteria.js +0 -125
- package/dist/tools/verify/implementer-criteria.js.map +0 -1
- package/dist/tools/verify/schema.d.ts +0 -56
- package/dist/tools/verify/schema.d.ts.map +0 -1
- package/dist/tools/verify/schema.js +0 -16
- package/dist/tools/verify/schema.js.map +0 -1
- package/dist/tools/verify/tool-config.d.ts +0 -14
- package/dist/tools/verify/tool-config.d.ts.map +0 -1
- package/dist/tools/verify/tool-config.js +0 -146
- package/dist/tools/verify/tool-config.js.map +0 -1
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
// HTTP-level usage capture for openai-compatible providers, independent of
|
|
2
|
-
// @openai/agents' internal aggregation.
|
|
3
|
-
//
|
|
4
|
-
// Why this exists: the @openai/agents SDK's stream consumer
|
|
5
|
-
// (node_modules/@openai/agents-openai/dist/openaiChatCompletionsStreaming.js
|
|
6
|
-
// line ~38) overwrites its local `usage` variable on every SSE chunk:
|
|
7
|
-
//
|
|
8
|
-
// usage = chunk.usage || undefined;
|
|
9
|
-
//
|
|
10
|
-
// For OpenAI proper this is benign — only the final `[DONE]`-adjacent chunk
|
|
11
|
-
// carries usage, so the last write is the right one. For DeepSeek (and
|
|
12
|
-
// likely other openai-compatible providers) with multi-turn tool-use, later
|
|
13
|
-
// chunks can have `usage:undefined` AFTER an earlier chunk reported real
|
|
14
|
-
// numbers, wiping the captured usage. The SDK then ends with
|
|
15
|
-
// `state.usage.inputTokens=0`, costUSD=0, despite real tokens having
|
|
16
|
-
// flowed. Telemetry first surfaced this on DeepSeek-as-reviewer calls —
|
|
17
|
-
// every call logged 21+ turns and zero tokens, untraceable until the SDK
|
|
18
|
-
// source was inspected.
|
|
19
|
-
//
|
|
20
|
-
// Fix: wrap the OpenAI client's `chat.completions.create` so we see the
|
|
21
|
-
// raw HTTP response (or the raw SSE stream) BEFORE the SDK consumes it, and
|
|
22
|
-
// accumulate usage into an out-of-band counter the runner can read at
|
|
23
|
-
// result-time as a source-of-truth fallback. The wrapper does not modify
|
|
24
|
-
// SDK-visible behavior — it observes only.
|
|
25
|
-
function addUsage(acc, u) {
|
|
26
|
-
return {
|
|
27
|
-
promptTokens: acc.promptTokens + (u.prompt_tokens ?? 0),
|
|
28
|
-
completionTokens: acc.completionTokens + (u.completion_tokens ?? 0),
|
|
29
|
-
cachedReadTokens: acc.cachedReadTokens + (u.prompt_tokens_details?.cached_tokens ?? 0),
|
|
30
|
-
reasoningTokens: acc.reasoningTokens + (u.completion_tokens_details?.reasoning_tokens ?? 0),
|
|
31
|
-
responses: acc.responses + 1,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
/** Wrap an OpenAI client so usage from every chat.completions.create response
|
|
35
|
-
* is captured into the returned UsageAccumulator.
|
|
36
|
-
*
|
|
37
|
-
* Mutates `client.chat.completions.create` in place. The wrapped client is
|
|
38
|
-
* otherwise unchanged — same return shapes, same error behavior. The SDK
|
|
39
|
-
* sees the same response stream byte-for-byte (we tee, we don't transform).
|
|
40
|
-
*/
|
|
41
|
-
export function wrapClientForUsageCapture(client) {
|
|
42
|
-
let acc = {
|
|
43
|
-
promptTokens: 0,
|
|
44
|
-
completionTokens: 0,
|
|
45
|
-
cachedReadTokens: 0,
|
|
46
|
-
reasoningTokens: 0,
|
|
47
|
-
responses: 0,
|
|
48
|
-
};
|
|
49
|
-
let observedNonZero = false;
|
|
50
|
-
const observe = (u) => {
|
|
51
|
-
if (!u)
|
|
52
|
-
return;
|
|
53
|
-
const before = acc;
|
|
54
|
-
acc = addUsage(acc, u);
|
|
55
|
-
// hasObservedUsage flips true the first time a response carries real
|
|
56
|
-
// input or output tokens. Counters can stay at 0 for empty responses
|
|
57
|
-
// (auth failures, immediate refusals) — those don't count as evidence
|
|
58
|
-
// that the provider IS reporting usage.
|
|
59
|
-
if ((u.prompt_tokens ?? 0) > 0 || (u.completion_tokens ?? 0) > 0) {
|
|
60
|
-
observedNonZero = true;
|
|
61
|
-
}
|
|
62
|
-
void before;
|
|
63
|
-
};
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
-
const completions = client.chat.completions;
|
|
66
|
-
const originalCreate = completions.create.bind(completions);
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
-
completions.create = async function wrappedCreate(...args) {
|
|
69
|
-
const result = await originalCreate(...args);
|
|
70
|
-
// Non-streaming branch: result is a ChatCompletion object with usage.
|
|
71
|
-
// Detect via the presence of `choices` (eagerly resolved) and `usage`.
|
|
72
|
-
if (result && typeof result === 'object' && Array.isArray(result.choices)) {
|
|
73
|
-
observe(result.usage);
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
76
|
-
// Streaming branch: result is an AsyncIterable of chunks. We wrap the
|
|
77
|
-
// iterator so each yielded chunk's usage feeds the accumulator without
|
|
78
|
-
// changing what the SDK sees.
|
|
79
|
-
if (result && typeof result[Symbol.asyncIterator] === 'function') {
|
|
80
|
-
const inner = result;
|
|
81
|
-
// Build a thin wrapper that preserves the original async-iterable
|
|
82
|
-
// identity (so the SDK can still .controller-abort if it does), but
|
|
83
|
-
// observes usage on every chunk that has it. Note: we accumulate the
|
|
84
|
-
// FIRST non-null usage we see from each request (chunks-with-usage are
|
|
85
|
-
// typically only 1 per stream, sent on the [DONE] frame). If a
|
|
86
|
-
// provider sends multiple usage frames, we add each one — that matches
|
|
87
|
-
// the cumulative semantics.
|
|
88
|
-
const wrapped = {
|
|
89
|
-
async *[Symbol.asyncIterator]() {
|
|
90
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
91
|
-
let lastUsage;
|
|
92
|
-
for await (const chunk of inner) {
|
|
93
|
-
if (chunk && chunk.usage) {
|
|
94
|
-
lastUsage = chunk.usage;
|
|
95
|
-
}
|
|
96
|
-
yield chunk;
|
|
97
|
-
}
|
|
98
|
-
// Accumulate at end-of-stream so multiple intra-stream `usage`
|
|
99
|
-
// chunks (DeepSeek behavior) don't double-count. The last seen
|
|
100
|
-
// usage is the cumulative-for-this-request value the provider
|
|
101
|
-
// wanted us to see.
|
|
102
|
-
observe(lastUsage);
|
|
103
|
-
},
|
|
104
|
-
};
|
|
105
|
-
// Some SDK call sites poke at `.controller` on the stream object for
|
|
106
|
-
// abort handling. Forward it if present.
|
|
107
|
-
const ctrl = result.controller;
|
|
108
|
-
if (ctrl !== undefined)
|
|
109
|
-
wrapped.controller = ctrl;
|
|
110
|
-
return wrapped;
|
|
111
|
-
}
|
|
112
|
-
// Unknown shape (shouldn't happen for chat.completions.create) — pass
|
|
113
|
-
// through unmodified.
|
|
114
|
-
return result;
|
|
115
|
-
};
|
|
116
|
-
return {
|
|
117
|
-
snapshot: () => ({ ...acc }),
|
|
118
|
-
hasObservedUsage: () => observedNonZero,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=openai-usage-interceptor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-usage-interceptor.js","sourceRoot":"","sources":["../../src/providers/openai-usage-interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sub-agent prevention layer.
|
|
3
|
-
*
|
|
4
|
-
* Provides the strong default system prompt, the budget hint preamble,
|
|
5
|
-
* and the periodic re-grounding message that the runners inject to keep
|
|
6
|
-
* the model focused. The goal is to make the first attempt succeed.
|
|
7
|
-
*
|
|
8
|
-
* All builders here MUST be deterministic: same input → byte-identical
|
|
9
|
-
* output. No Date.now(), no Math.random(), no environment variable
|
|
10
|
-
* leakage. Tests in tests/runners/prevention.test.ts assert this.
|
|
11
|
-
*
|
|
12
|
-
* See spec Part A.1 for the design rationale.
|
|
13
|
-
*/
|
|
14
|
-
import type { FormatConstraints } from '../types.js';
|
|
15
|
-
export declare function buildSystemPrompt(): string;
|
|
16
|
-
export interface BuildBudgetHintOptions {
|
|
17
|
-
timeoutMs: number;
|
|
18
|
-
maxCostUSD?: number;
|
|
19
|
-
}
|
|
20
|
-
export declare function buildBudgetHint(opts: BuildBudgetHintOptions): string;
|
|
21
|
-
export declare const RE_GROUNDING_INTERVAL_TURNS = 10;
|
|
22
|
-
export interface BuildReGroundingMessageOptions {
|
|
23
|
-
originalPromptExcerpt: string;
|
|
24
|
-
elapsedMs: number;
|
|
25
|
-
timeoutMs: number;
|
|
26
|
-
toolCallsSoFar: number;
|
|
27
|
-
filesReadSoFar: number;
|
|
28
|
-
}
|
|
29
|
-
export declare function buildReGroundingMessage(opts: BuildReGroundingMessageOptions): string;
|
|
30
|
-
export interface BuildBudgetPressureNudgeOptions {
|
|
31
|
-
inputTokens: number;
|
|
32
|
-
softLimit: number;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Nudge message the runner injects when the watchdog crosses its
|
|
36
|
-
* `warning` threshold (see supervision.checkWatchdogThreshold). The text
|
|
37
|
-
* is deliberately terse: the model is already close to the soft limit, so
|
|
38
|
-
* we tell it to stop exploring and produce a final answer from whatever
|
|
39
|
-
* it has gathered. Kept here so every runner (openai, claude, codex)
|
|
40
|
-
* uses byte-identical wording.
|
|
41
|
-
*/
|
|
42
|
-
export declare function buildBudgetPressureNudge(opts: BuildBudgetPressureNudgeOptions): string;
|
|
43
|
-
export declare function buildFormatConstraintSuffix(constraints: FormatConstraints): string;
|
|
44
|
-
//# sourceMappingURL=prevention.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prevention.d.ts","sourceRoot":"","sources":["../../src/providers/prevention.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,wBAAgB,iBAAiB,IAAI,MAAM,CA8C1C;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAQpE;AAED,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,MAAM,WAAW,8BAA8B;IAC7C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,MAAM,CAWpF;AAED,MAAM,WAAW,+BAA+B;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,+BAA+B,GAAG,MAAM,CAMtF;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,CAYlF"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sub-agent prevention layer.
|
|
3
|
-
*
|
|
4
|
-
* Provides the strong default system prompt, the budget hint preamble,
|
|
5
|
-
* and the periodic re-grounding message that the runners inject to keep
|
|
6
|
-
* the model focused. The goal is to make the first attempt succeed.
|
|
7
|
-
*
|
|
8
|
-
* All builders here MUST be deterministic: same input → byte-identical
|
|
9
|
-
* output. No Date.now(), no Math.random(), no environment variable
|
|
10
|
-
* leakage. Tests in tests/runners/prevention.test.ts assert this.
|
|
11
|
-
*
|
|
12
|
-
* See spec Part A.1 for the design rationale.
|
|
13
|
-
*/
|
|
14
|
-
export function buildSystemPrompt() {
|
|
15
|
-
return [
|
|
16
|
-
'You are a sub-agent completing a single task end-to-end. Read these rules before you begin any tool calls.',
|
|
17
|
-
'',
|
|
18
|
-
'The deliverable. Your final assistant message — and only your final assistant message — is what gets returned to the caller. Intermediate tool outputs and earlier turns are discarded. Your final message must be complete, substantive, and in plain text. Content inside <think> tags is stripped — only plain text reaches the caller.',
|
|
19
|
-
'',
|
|
20
|
-
'Plan before you act. Before your first tool call, identify (1) what the task is asking for, (2) its success criteria (output format, required sections, acceptance tests), (3) what files or information you need, and (4) how many tool calls you expect. State this plan in your first assistant message.',
|
|
21
|
-
'',
|
|
22
|
-
'Tool rules:',
|
|
23
|
-
'- Use grep to locate content. Use readFile when you need the full file context that grep cannot provide.',
|
|
24
|
-
'- Read each file at most once. Note relevant parts in your assistant messages for later reference. Exception: re-read after editing to confirm the edit landed.',
|
|
25
|
-
'- Use glob to find files by name, then grep to search inside them.',
|
|
26
|
-
'- Batch grep patterns: use regex alternation (a|b|c) in one call, not separate calls per pattern.',
|
|
27
|
-
'- Use edit_file to modify part of a file. Provide enough surrounding context in oldContent to match exactly one location. Use write_file only to create new files or rewrite an entire file.',
|
|
28
|
-
'',
|
|
29
|
-
'Shell rules:',
|
|
30
|
-
'- Use run_shell to run tests, build, and execute any command-line task the brief requires.',
|
|
31
|
-
'- In parallel tasks, run targeted tests (e.g., "npx vitest run tests/specific.test.ts") instead of full suites (e.g., "npm test").',
|
|
32
|
-
'- Use edit_file or write_file for all file modifications. Shell-based edits (sed, awk, perl -i) are error-prone and not tracked by the harness.',
|
|
33
|
-
'- Only install packages, run destructive commands, or modify system state when the task explicitly requests it.',
|
|
34
|
-
'',
|
|
35
|
-
'Progress and completion:',
|
|
36
|
-
'- Write findings as you discover them in your assistant turns. This is saved in the scratchpad and recovered if the run is interrupted.',
|
|
37
|
-
'- Always execute tool calls you describe. If you write "let me check X next", call the tool immediately or produce your final answer.',
|
|
38
|
-
'- If you hit a problem (tool failure, missing file, unclear task), produce a partial answer explaining what you found and what blocked you.',
|
|
39
|
-
'',
|
|
40
|
-
'Output format: if the task specifies a format, follow it exactly. Match headers, table structures, prefixes (e.g., "start with # Gap Report:"), and section order. The caller validates the format.',
|
|
41
|
-
'',
|
|
42
|
-
'If you wrote, modified, or deleted files, your structured report MUST include a `commit:` block as a JSON object with these fields:',
|
|
43
|
-
'',
|
|
44
|
-
' {',
|
|
45
|
-
' "type": "feat" | "fix" | "refactor" | "test" | "docs" | "chore" | "style",',
|
|
46
|
-
' "scope": "<optional, 1-24 chars: lowercase letters, digits, dot, underscore, slash, hyphen; must start with letter or digit>",',
|
|
47
|
-
' "subject": "<1-50 chars, lowercase first letter, no trailing colon, no leading/trailing whitespace>",',
|
|
48
|
-
' "body": "<optional multi-paragraph plain text explaining WHY>"',
|
|
49
|
-
' }',
|
|
50
|
-
'',
|
|
51
|
-
'Examples:',
|
|
52
|
-
' type: "feat", scope: "core", subject: "add x"',
|
|
53
|
-
' type: "refactor", scope: "lifecycle", subject: "extract Y from Z"',
|
|
54
|
-
' type: "fix", subject: "guard against undefined"',
|
|
55
|
-
'',
|
|
56
|
-
'Do NOT write narrative ("Now I\'m going to...") in the subject. The runner will compose `<type>(<scope>): <subject>` as the commit message; your subject becomes the commit subject line verbatim.',
|
|
57
|
-
'',
|
|
58
|
-
'If you did not write any files, omit the commit block entirely.',
|
|
59
|
-
].join('\n');
|
|
60
|
-
}
|
|
61
|
-
export function buildBudgetHint(opts) {
|
|
62
|
-
const timeMin = Math.round(opts.timeoutMs / 60_000);
|
|
63
|
-
const parts = [`Budget: you have ${timeMin} minutes for this task.`];
|
|
64
|
-
if (opts.maxCostUSD !== undefined) {
|
|
65
|
-
parts.push(`Cost ceiling: $${opts.maxCostUSD}.`);
|
|
66
|
-
}
|
|
67
|
-
parts.push('Work efficiently. Write findings as you go.');
|
|
68
|
-
return parts.join(' ');
|
|
69
|
-
}
|
|
70
|
-
export const RE_GROUNDING_INTERVAL_TURNS = 10;
|
|
71
|
-
export function buildReGroundingMessage(opts) {
|
|
72
|
-
const excerpt = opts.originalPromptExcerpt.slice(0, 200);
|
|
73
|
-
const elapsedMin = Math.round(opts.elapsedMs / 60_000);
|
|
74
|
-
const totalMin = Math.round(opts.timeoutMs / 60_000);
|
|
75
|
-
return [
|
|
76
|
-
`Reminder: your task is "${excerpt}${opts.originalPromptExcerpt.length > 200 ? '...' : ''}".`,
|
|
77
|
-
`Elapsed: ${elapsedMin} of ${totalMin} minutes.`,
|
|
78
|
-
`Tool calls: ${opts.toolCallsSoFar}. Files read: ${opts.filesReadSoFar}.`,
|
|
79
|
-
'Start drafting your final answer now.',
|
|
80
|
-
'Use your remaining time to fill gaps, then finalize.',
|
|
81
|
-
].join(' ');
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Nudge message the runner injects when the watchdog crosses its
|
|
85
|
-
* `warning` threshold (see supervision.checkWatchdogThreshold). The text
|
|
86
|
-
* is deliberately terse: the model is already close to the soft limit, so
|
|
87
|
-
* we tell it to stop exploring and produce a final answer from whatever
|
|
88
|
-
* it has gathered. Kept here so every runner (openai, claude, codex)
|
|
89
|
-
* uses byte-identical wording.
|
|
90
|
-
*/
|
|
91
|
-
export function buildBudgetPressureNudge(opts) {
|
|
92
|
-
return (`Budget pressure: you have used approximately ${opts.inputTokens} ` +
|
|
93
|
-
`input tokens out of a soft limit of ${opts.softLimit}. ` +
|
|
94
|
-
`Produce your complete final answer now with whatever you have gathered.`);
|
|
95
|
-
}
|
|
96
|
-
export function buildFormatConstraintSuffix(constraints) {
|
|
97
|
-
if (!constraints.inputFormat && !constraints.outputFormat)
|
|
98
|
-
return '';
|
|
99
|
-
const parts = [];
|
|
100
|
-
if (constraints.inputFormat) {
|
|
101
|
-
parts.push(`input format: ${constraints.inputFormat}`);
|
|
102
|
-
}
|
|
103
|
-
if (constraints.outputFormat) {
|
|
104
|
-
parts.push(`output format: ${constraints.outputFormat}`);
|
|
105
|
-
}
|
|
106
|
-
return '\n\n' + parts.join(' ');
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=prevention.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prevention.js","sourceRoot":"","sources":["../../src/providers/prevention.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import type { TokenUsage } from './runner-types.js';
|
|
2
|
-
import type { EventEmitter } from '../events/event-emitter.js';
|
|
3
|
-
export type WorkerStatus = 'done' | 'done_with_concerns' | 'needs_context' | 'blocked' | 'failed';
|
|
4
|
-
export interface RunInput {
|
|
5
|
-
systemPrompt: string;
|
|
6
|
-
userMessage: string;
|
|
7
|
-
toolDefinitions: ToolDefinition[];
|
|
8
|
-
maxTurns: number;
|
|
9
|
-
cwd: string;
|
|
10
|
-
capabilities?: import('./runner-adapter.js').AdapterCapabilities;
|
|
11
|
-
abortSignal?: AbortSignal;
|
|
12
|
-
deadlineMs?: number;
|
|
13
|
-
/** Bus for per-turn / per-runner-call observability events. When present,
|
|
14
|
-
* shell + adapter emit `runner_turn_started` / `runner_response_received`
|
|
15
|
-
* / `runner_turn_completed` events so VerboseLogChannel surfaces them
|
|
16
|
-
* on stderr in real time during a long task run. */
|
|
17
|
-
bus?: EventEmitter;
|
|
18
|
-
/** Identifies the in-flight batch in emitted events. */
|
|
19
|
-
batchId?: string;
|
|
20
|
-
/** Identifies which task within a batch is running. Carried through to
|
|
21
|
-
* every emitted event so polling can show per-task progress when a
|
|
22
|
-
* batch has multiple parallel tasks. */
|
|
23
|
-
taskIndex?: number;
|
|
24
|
-
/** Tier label (`'standard'` | `'complex'`) included in emitted events. */
|
|
25
|
-
tier?: string;
|
|
26
|
-
/** Provider model id included in emitted events. */
|
|
27
|
-
model?: string;
|
|
28
|
-
/** Lifecycle stage label (e.g. 'Implementing', 'Spec review'). Surfaced
|
|
29
|
-
* on the running-headline polling response so the main agent's poll
|
|
30
|
-
* loop shows which lifecycle stage is currently active. */
|
|
31
|
-
stageLabel?: string;
|
|
32
|
-
/** When set, ask the provider to attach a cache_control marker to the
|
|
33
|
-
* system prompt so the prefix can be reused by subsequent calls.
|
|
34
|
-
* Honored by adapters that expose explicit cache control (Anthropic);
|
|
35
|
-
* no-op on adapters that auto-cache (OpenAI) or don't cache (codex). */
|
|
36
|
-
cacheControl?: {
|
|
37
|
-
type: 'ephemeral';
|
|
38
|
-
};
|
|
39
|
-
/** Wall-clock guard threaded from LifecycleContext. When present, the
|
|
40
|
-
* runner-shell calls guard.checkOrThrow() before each tool execution so
|
|
41
|
-
* long-running shell/network calls can't drift past the per-task budget. */
|
|
42
|
-
wallClockGuard?: {
|
|
43
|
-
checkOrThrow(): void;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
export interface RunResult {
|
|
47
|
-
workerStatus: WorkerStatus;
|
|
48
|
-
finalAssistantText: string;
|
|
49
|
-
toolCalls: ToolCall[];
|
|
50
|
-
usage: TokenUsage;
|
|
51
|
-
errorCode?: ErrorCode;
|
|
52
|
-
/** Number of LLM turns executed (one per adapter.turn() call). Distinct
|
|
53
|
-
* from toolCalls.length — a turn can return multiple tool calls or none. */
|
|
54
|
-
turns: number;
|
|
55
|
-
/** Wall-clock for the entire shell.run() invocation. */
|
|
56
|
-
durationMs: number;
|
|
57
|
-
/** Files read during this run (paths from successful read_file/readFile tool calls). */
|
|
58
|
-
filesRead: string[];
|
|
59
|
-
/** Files written during this run (paths from successful write_file/writeFile/edit_file tool calls). */
|
|
60
|
-
filesWritten: string[];
|
|
61
|
-
/** A4b §2a (4.2.2+): worker write attempts that failed the path-validity
|
|
62
|
-
* filter — shell heredoc commands, absolute paths, paths containing
|
|
63
|
-
* shell metacharacters. NOT real, verifiable disk artifacts. The
|
|
64
|
-
* lifecycle layer drains this into LifecycleContext.diagnostics for
|
|
65
|
-
* the `writes_unverifiable` daemon-log message; not surfaced on the
|
|
66
|
-
* public HTTP envelope. Optional so legacy consumers / mocks compile
|
|
67
|
-
* without setting the field. */
|
|
68
|
-
filesWrittenRejected?: string[];
|
|
69
|
-
/** USD cost computed from usage tokens and the model's rate card.
|
|
70
|
-
* null when the model isn't in the rate-card registry (treated as honest-null
|
|
71
|
-
* by the wire, not zero). */
|
|
72
|
-
costUSD: number | null;
|
|
73
|
-
}
|
|
74
|
-
export interface ToolDefinition {
|
|
75
|
-
name: string;
|
|
76
|
-
description: string;
|
|
77
|
-
schema: object;
|
|
78
|
-
execute(input: unknown, ctx: ExecutionContext): Promise<unknown>;
|
|
79
|
-
}
|
|
80
|
-
export interface ExecutionContext {
|
|
81
|
-
cwd: string;
|
|
82
|
-
callCache: Map<string, unknown>;
|
|
83
|
-
}
|
|
84
|
-
export interface ToolCall {
|
|
85
|
-
name: string;
|
|
86
|
-
input: unknown;
|
|
87
|
-
result?: unknown;
|
|
88
|
-
id?: string;
|
|
89
|
-
}
|
|
90
|
-
export type ErrorCode = string;
|
|
91
|
-
//# sourceMappingURL=runner-shell-types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-shell-types.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,oBAAoB,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElG,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,qBAAqB,EAAE,mBAAmB,CAAC;IACjE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;yDAGqD;IACrD,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;6CAEyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;gEAE4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;6EAGyE;IACzE,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IACrC;;iFAE6E;IAC7E,cAAc,CAAC,EAAE;QAAE,YAAY,IAAI,IAAI,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;iFAC6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uGAAuG;IACvG,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;qCAMiC;IACjC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;kCAE8B;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-shell-types.js","sourceRoot":"","sources":["../../src/providers/runner-shell-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { RunInput, RunResult } from './runner-shell-types.js';
|
|
2
|
-
import type { RunnerAdapter, AdapterCapabilities } from './runner-adapter.js';
|
|
3
|
-
export declare function shellCommandWritesFs(command: string): boolean;
|
|
4
|
-
export declare class RunnerShell {
|
|
5
|
-
private adapter;
|
|
6
|
-
/** Default model id used for cost computation when input.model is absent.
|
|
7
|
-
* Reviewer/annotator engines call shell.run() without setting input.model,
|
|
8
|
-
* so without this default every reviewer-side stage would record costUSD=null. */
|
|
9
|
-
private defaultModel?;
|
|
10
|
-
constructor(adapter: RunnerAdapter,
|
|
11
|
-
/** Default model id used for cost computation when input.model is absent.
|
|
12
|
-
* Reviewer/annotator engines call shell.run() without setting input.model,
|
|
13
|
-
* so without this default every reviewer-side stage would record costUSD=null. */
|
|
14
|
-
defaultModel?: string | undefined);
|
|
15
|
-
run(input: RunInput): Promise<RunResult>;
|
|
16
|
-
/**
|
|
17
|
-
* Cache-warmer call: sends one minimal turn with the cached prefix so the
|
|
18
|
-
* upstream provider's prompt cache writes the prefix. Subsequent fan-out
|
|
19
|
-
* sub-workers using the same prefix serve from cache.
|
|
20
|
-
*
|
|
21
|
-
* The user message is a single token ("ready") and the assistant response
|
|
22
|
-
* is discarded. For providers that don't honor `cache_control` (codex,
|
|
23
|
-
* future providers), this still runs but produces no measurable cache
|
|
24
|
-
* benefit.
|
|
25
|
-
*
|
|
26
|
-
* Bounded by an internal 10-min hard cap (5-min soft warning) so a slow
|
|
27
|
-
* or hanging warmer cannot blow the route's overall wall-clock. On cap
|
|
28
|
-
* hit, the warmer returns with capHit=true and the dispatcher proceeds
|
|
29
|
-
* to fan-out WITHOUT cache priming — sub-workers will pay full input
|
|
30
|
-
* cost but the route still completes (correctness > optimization).
|
|
31
|
-
*/
|
|
32
|
-
prime(systemPrompt: string, opts: PrimeOptions): Promise<PrimeResult>;
|
|
33
|
-
}
|
|
34
|
-
export interface PrimeOptions {
|
|
35
|
-
cwd: string;
|
|
36
|
-
cacheControl?: {
|
|
37
|
-
type: 'ephemeral';
|
|
38
|
-
};
|
|
39
|
-
abortSignal?: AbortSignal;
|
|
40
|
-
deadlineMs?: number;
|
|
41
|
-
capabilities?: AdapterCapabilities;
|
|
42
|
-
bus?: import('../events/event-emitter.js').EventEmitter;
|
|
43
|
-
batchId?: string;
|
|
44
|
-
taskIndex?: number;
|
|
45
|
-
tier?: string;
|
|
46
|
-
stageLabel?: string;
|
|
47
|
-
}
|
|
48
|
-
export interface PrimeResult {
|
|
49
|
-
/** Whether the warmer attempted to register a cacheable prefix
|
|
50
|
-
* (i.e. opts.cacheControl was set and the call returned). The actual
|
|
51
|
-
* cache effectiveness surfaces in subsequent sub-worker
|
|
52
|
-
* cachedReadTokens, NOT here — see criteria_fanout_summary's
|
|
53
|
-
* totalCachedReadTokens / cacheHitConfirmed. */
|
|
54
|
-
cacheControlSent: boolean;
|
|
55
|
-
/** True iff the warmer hit the 10-min hard cap and was force-aborted.
|
|
56
|
-
* Dispatcher proceeds to fan-out anyway; sub-workers pay full input
|
|
57
|
-
* cost since no cache was primed. */
|
|
58
|
-
capHit: boolean;
|
|
59
|
-
durationMs: number;
|
|
60
|
-
usage: {
|
|
61
|
-
inputTokens: number;
|
|
62
|
-
outputTokens: number;
|
|
63
|
-
cachedReadTokens: number;
|
|
64
|
-
cachedNonReadTokens: number;
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=runner-shell.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner-shell.d.ts","sourceRoot":"","sources":["../../src/providers/runner-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAA8B,MAAM,yBAAyB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAwC,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AA0EpH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7D;AAaD,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;IACf;;uFAEmF;IACnF,OAAO,CAAC,YAAY,CAAC;gBAJb,OAAO,EAAE,aAAa;IAC9B;;uFAEmF;IAC3E,YAAY,CAAC,EAAE,MAAM,YAAA;IAGzB,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAwR9C;;;;;;;;;;;;;;;OAeG;IACG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;CA2G5E;AAQD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,GAAG,CAAC,EAAE,OAAO,4BAA4B,EAAE,YAAY,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B;;;;qDAIiD;IACjD,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;0CAEsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7G"}
|