@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,125 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tracks file accesses and tool invocations inside a sub-agent run so the
|
|
3
|
-
* runner can report what the worker actually did. Reads, writes, and tool
|
|
4
|
-
* calls are stored separately because they answer different questions for
|
|
5
|
-
* the caller:
|
|
6
|
-
*
|
|
7
|
-
* - filesRead → "what did the worker look at?" (debugging, audit trail)
|
|
8
|
-
* - directoriesListed → "which directories were enumerated?" (exploration)
|
|
9
|
-
* - filesWritten → "what changed on disk?" (review, rollback)
|
|
10
|
-
* - toolCalls → "what did the worker actually do, in order?"
|
|
11
|
-
* (debugging, post-mortem)
|
|
12
|
-
*
|
|
13
|
-
* Read-only tasks (audits, surveys, exploration) used to return an empty
|
|
14
|
-
* `files` array because the original tracker only recorded writes. That made
|
|
15
|
-
* it impossible to tell whether the worker had done substantial work or had
|
|
16
|
-
* bailed out immediately.
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* A4b §2a path-validity filter (4.2.2+).
|
|
20
|
-
*
|
|
21
|
-
* Returns true iff `entry` is a real, sandbox-safe relative filesystem
|
|
22
|
-
* path that the platform can verify via `stat(taskSpec.cwd, entry)`.
|
|
23
|
-
* Returns false for anything that looks like a shell-channel artifact,
|
|
24
|
-
* shell injection, or sandbox-escape attempt.
|
|
25
|
-
*
|
|
26
|
-
* The five rules (in order — first match wins):
|
|
27
|
-
* 1. Reject the literal `shell:` prefix (used by Gap-11 shell-detection
|
|
28
|
-
* to attribute heuristic shell writes; A4b stops conflating those
|
|
29
|
-
* with real paths).
|
|
30
|
-
* 2. Reject entries with shell control characters: < > | & ; ` $ ( )
|
|
31
|
-
* 3. Reject entries that don't match ^[A-Za-z0-9_.][^\s'"]*$
|
|
32
|
-
* (must start with alphanumeric/underscore/dot; no whitespace/quotes).
|
|
33
|
-
* 4. Reject entries longer than 4096 chars (PATH_MAX guard).
|
|
34
|
-
* 5. Reject absolute paths. `path.join(cwd, '/etc/passwd')` returns
|
|
35
|
-
* `/etc/passwd` (path.join ignores cwd when arg2 is absolute) — silent
|
|
36
|
-
* sandbox escape.
|
|
37
|
-
*/
|
|
38
|
-
export function filterValidWritePath(entry) {
|
|
39
|
-
if (typeof entry !== 'string' || entry.length === 0)
|
|
40
|
-
return false;
|
|
41
|
-
if (entry.length > 4096)
|
|
42
|
-
return false;
|
|
43
|
-
if (entry.startsWith('shell:'))
|
|
44
|
-
return false;
|
|
45
|
-
// Shell control chars: <, >, |, &, ;, backtick (`), $, (, )
|
|
46
|
-
if (/[<>|&;`$()]/.test(entry))
|
|
47
|
-
return false;
|
|
48
|
-
// Path shape: alphanumeric/_/. start, no whitespace, no quotes
|
|
49
|
-
if (!/^[A-Za-z0-9_.][^\s'"]*$/.test(entry))
|
|
50
|
-
return false;
|
|
51
|
-
// Sandbox-escape guard
|
|
52
|
-
if (entry.startsWith('/'))
|
|
53
|
-
return false;
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
export class FileTracker {
|
|
57
|
-
reads = new Set();
|
|
58
|
-
/**
|
|
59
|
-
* Per-path read counter (4.3.0+, pipeline-redesign read-budget guard).
|
|
60
|
-
* trackRead increments on every read; `readCount(path)` exposes it so
|
|
61
|
-
* tool implementations can append a warning when a worker re-reads the
|
|
62
|
-
* same file too many times in a single stage. Counts reset with the
|
|
63
|
-
* tracker on `reset()`.
|
|
64
|
-
*/
|
|
65
|
-
readCounts = new Map();
|
|
66
|
-
dirs = [];
|
|
67
|
-
writes = new Set();
|
|
68
|
-
toolCalls = [];
|
|
69
|
-
onToolCall;
|
|
70
|
-
/**
|
|
71
|
-
* @param onToolCall Optional callback invoked synchronously after every
|
|
72
|
-
* `trackToolCall(...)`. Used by runners (Task 9+) to stream tool
|
|
73
|
-
* invocations out as `InternalRunnerEvent`s in real time. The callback must
|
|
74
|
-
* not throw; the runner wraps it in `safeSink` before passing it in.
|
|
75
|
-
*/
|
|
76
|
-
constructor(onToolCall) {
|
|
77
|
-
this.onToolCall = onToolCall;
|
|
78
|
-
}
|
|
79
|
-
trackRead(filePath) {
|
|
80
|
-
this.reads.add(filePath);
|
|
81
|
-
this.readCounts.set(filePath, (this.readCounts.get(filePath) ?? 0) + 1);
|
|
82
|
-
}
|
|
83
|
-
/** How many times `trackRead(filePath)` has been called for this path
|
|
84
|
-
* in the current tracker lifetime. 0 if never. Used by the read-budget
|
|
85
|
-
* guard in tool-implementations.ts to warn the worker after N re-reads. */
|
|
86
|
-
readCount(filePath) {
|
|
87
|
-
return this.readCounts.get(filePath) ?? 0;
|
|
88
|
-
}
|
|
89
|
-
trackDirectoryList(dirPath) {
|
|
90
|
-
this.dirs.push(dirPath);
|
|
91
|
-
}
|
|
92
|
-
trackWrite(filePath) {
|
|
93
|
-
this.writes.add(filePath);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Record a one-line summary of a tool invocation. Order is preserved so
|
|
97
|
-
* the caller can reconstruct what the worker actually did. If an
|
|
98
|
-
* `onToolCall` callback was supplied at construction, it is fired
|
|
99
|
-
* synchronously after the summary is recorded.
|
|
100
|
-
*/
|
|
101
|
-
trackToolCall(summary) {
|
|
102
|
-
this.toolCalls.push(summary);
|
|
103
|
-
this.onToolCall?.(summary);
|
|
104
|
-
}
|
|
105
|
-
getReads() {
|
|
106
|
-
return [...this.reads].sort();
|
|
107
|
-
}
|
|
108
|
-
getDirectoriesListed() {
|
|
109
|
-
return [...this.dirs];
|
|
110
|
-
}
|
|
111
|
-
getWrites() {
|
|
112
|
-
return [...this.writes].sort();
|
|
113
|
-
}
|
|
114
|
-
getToolCalls() {
|
|
115
|
-
return [...this.toolCalls];
|
|
116
|
-
}
|
|
117
|
-
reset() {
|
|
118
|
-
this.reads.clear();
|
|
119
|
-
this.readCounts.clear();
|
|
120
|
-
this.dirs = [];
|
|
121
|
-
this.writes.clear();
|
|
122
|
-
this.toolCalls = [];
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=file-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-tracker.js","sourceRoot":"","sources":["../../src/providers/file-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,4DAA4D;IAC5D,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,+DAA+D;IAC/D,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,uBAAuB;IACvB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,WAAW;IACd,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC;;;;;;OAMG;IACK,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,IAAI,GAAa,EAAE,CAAC;IACpB,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3B,SAAS,GAAa,EAAE,CAAC;IAChB,UAAU,CAA6B;IAExD;;;;;OAKG;IACH,YAAY,UAAsC;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;gFAE4E;IAC5E,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,OAAe;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,oBAAoB;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { DegenerateKind } from './supervision.js';
|
|
2
|
-
/**
|
|
3
|
-
* Map a supervision `validation.kind` to the `injectionType` label used in
|
|
4
|
-
* the `InternalRunnerEvent` emitted when the runner injects a supervision
|
|
5
|
-
* re-prompt.
|
|
6
|
-
*
|
|
7
|
-
* `fragment` and `no_terminator` collapse onto `supervise_fragment` because
|
|
8
|
-
* they share a re-prompt style (we quote the tail back at the model) and
|
|
9
|
-
* belong to the same observer bucket — distinguishing them on the event
|
|
10
|
-
* stream would just leak an implementation detail of `validateCompletion`.
|
|
11
|
-
*
|
|
12
|
-
* `insufficient_coverage` gets its own distinct type because the re-prompt
|
|
13
|
-
* is structurally different (it lists specific missing items rather than
|
|
14
|
-
* quoting the output tail), so observers benefit from being able to
|
|
15
|
-
* distinguish it without peeking at the re-prompt content.
|
|
16
|
-
*
|
|
17
|
-
* Shared by every runner (openai / claude / codex) per the "3+ concrete use
|
|
18
|
-
* cases" rule — inlining it three times was the prior state. The helper is
|
|
19
|
-
* deliberately free of any runner- or SDK-specific knowledge.
|
|
20
|
-
*/
|
|
21
|
-
export declare function injectionTypeFor(kind: DegenerateKind | undefined): 'supervise_empty' | 'supervise_thinking' | 'supervise_fragment' | 'supervise_insufficient_coverage';
|
|
22
|
-
//# sourceMappingURL=injection-type.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"injection-type.d.ts","sourceRoot":"","sources":["../../src/providers/injection-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,cAAc,GAAG,SAAS,GAE9B,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,iCAAiC,CAcpC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Map a supervision `validation.kind` to the `injectionType` label used in
|
|
3
|
-
* the `InternalRunnerEvent` emitted when the runner injects a supervision
|
|
4
|
-
* re-prompt.
|
|
5
|
-
*
|
|
6
|
-
* `fragment` and `no_terminator` collapse onto `supervise_fragment` because
|
|
7
|
-
* they share a re-prompt style (we quote the tail back at the model) and
|
|
8
|
-
* belong to the same observer bucket — distinguishing them on the event
|
|
9
|
-
* stream would just leak an implementation detail of `validateCompletion`.
|
|
10
|
-
*
|
|
11
|
-
* `insufficient_coverage` gets its own distinct type because the re-prompt
|
|
12
|
-
* is structurally different (it lists specific missing items rather than
|
|
13
|
-
* quoting the output tail), so observers benefit from being able to
|
|
14
|
-
* distinguish it without peeking at the re-prompt content.
|
|
15
|
-
*
|
|
16
|
-
* Shared by every runner (openai / claude / codex) per the "3+ concrete use
|
|
17
|
-
* cases" rule — inlining it three times was the prior state. The helper is
|
|
18
|
-
* deliberately free of any runner- or SDK-specific knowledge.
|
|
19
|
-
*/
|
|
20
|
-
export function injectionTypeFor(kind) {
|
|
21
|
-
switch (kind) {
|
|
22
|
-
case 'empty':
|
|
23
|
-
return 'supervise_empty';
|
|
24
|
-
case 'thinking_only':
|
|
25
|
-
return 'supervise_thinking';
|
|
26
|
-
case 'insufficient_coverage':
|
|
27
|
-
return 'supervise_insufficient_coverage';
|
|
28
|
-
case 'fragment':
|
|
29
|
-
case 'no_terminator':
|
|
30
|
-
default:
|
|
31
|
-
return 'supervise_fragment';
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=injection-type.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"injection-type.js","sourceRoot":"","sources":["../../src/providers/injection-type.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAgC;IAOhC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,oBAAoB,CAAC;QAC9B,KAAK,uBAAuB;YAC1B,OAAO,iCAAiC,CAAC;QAC3C,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe,CAAC;QACrB;YACE,OAAO,oBAAoB,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"make-runner-shell.d.ts","sourceRoot":"","sources":["../../src/providers/make-runner-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CA0E/D"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { RunnerShell } from './runner-shell.js';
|
|
2
|
-
import { buildAdapter } from './provider-factory.js';
|
|
3
|
-
export function makeRunnerShell(provider) {
|
|
4
|
-
// Test/mock providers expose `__mockAdapter` so the engine path can run
|
|
5
|
-
// without making real HTTP calls. Production providers carry a real config
|
|
6
|
-
// and use `buildAdapter` to produce a real runner adapter.
|
|
7
|
-
const cfgModel = provider.config?.model;
|
|
8
|
-
const maybeMock = provider.__mockAdapter;
|
|
9
|
-
if (maybeMock)
|
|
10
|
-
return new RunnerShell(maybeMock, cfgModel);
|
|
11
|
-
// If the provider looks like a test mock (named 'mock' OR config.model === 'mock'),
|
|
12
|
-
// synthesize a bridge adapter from `provider.run(prompt)` so the engine path
|
|
13
|
-
// works in tests without each test wiring `__mockAdapter` explicitly.
|
|
14
|
-
const cfg = provider.config;
|
|
15
|
-
const isMock = provider.name === 'mock' || cfgModel === 'mock' || cfgModel === 'mock-model';
|
|
16
|
-
if (isMock && typeof provider.run === 'function') {
|
|
17
|
-
const adapter = {
|
|
18
|
-
providerType: 'mock',
|
|
19
|
-
async turn(input) {
|
|
20
|
-
const prompt = `${input.systemPrompt}\n\n${input.userMessage}`;
|
|
21
|
-
const result = await provider.run(prompt);
|
|
22
|
-
return {
|
|
23
|
-
assistantText: result.output ?? '',
|
|
24
|
-
toolCalls: [],
|
|
25
|
-
finishReason: 'stop',
|
|
26
|
-
usage: {
|
|
27
|
-
inputTokens: result.usage?.inputTokens ?? 0,
|
|
28
|
-
outputTokens: result.usage?.outputTokens ?? 0,
|
|
29
|
-
cachedReadTokens: result.usage?.cachedReadTokens ?? 0,
|
|
30
|
-
cachedNonReadTokens: result.usage?.cachedNonReadTokens ?? 0,
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
return new RunnerShell(adapter, cfgModel);
|
|
36
|
-
}
|
|
37
|
-
let adapter;
|
|
38
|
-
try {
|
|
39
|
-
adapter = buildAdapter(provider.config);
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
adapter = undefined;
|
|
43
|
-
}
|
|
44
|
-
// Fallback bridge for any provider whose config doesn't yield a real adapter
|
|
45
|
-
// (typical in tests). Lets every test that has a working `provider.run(prompt)`
|
|
46
|
-
// exercise the engine path without per-test wiring.
|
|
47
|
-
if (!adapter && typeof provider.run === 'function') {
|
|
48
|
-
const bridgeAdapter = {
|
|
49
|
-
providerType: 'mock',
|
|
50
|
-
async turn(input) {
|
|
51
|
-
const prompt = `${input.systemPrompt}\n\n${input.userMessage}`;
|
|
52
|
-
const result = await provider.run(prompt);
|
|
53
|
-
return {
|
|
54
|
-
assistantText: result.output ?? '',
|
|
55
|
-
toolCalls: [],
|
|
56
|
-
finishReason: 'stop',
|
|
57
|
-
usage: {
|
|
58
|
-
inputTokens: result.usage?.inputTokens ?? 0,
|
|
59
|
-
outputTokens: result.usage?.outputTokens ?? 0,
|
|
60
|
-
cachedReadTokens: result.usage?.cachedReadTokens ?? 0,
|
|
61
|
-
cachedNonReadTokens: result.usage?.cachedNonReadTokens ?? 0,
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
return new RunnerShell(bridgeAdapter, cfgModel);
|
|
67
|
-
}
|
|
68
|
-
return new RunnerShell(adapter, cfgModel);
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=make-runner-shell.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"make-runner-shell.js","sourceRoot":"","sources":["../../src/providers/make-runner-shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { RunnerAdapter, AdapterTurnInput, AdapterTurnResult } from './runner-adapter.js';
|
|
2
|
-
export declare class OpenAIChatAdapter implements RunnerAdapter {
|
|
3
|
-
readonly providerType: 'openai' | 'openai-compatible';
|
|
4
|
-
private client;
|
|
5
|
-
private model;
|
|
6
|
-
constructor(opts: {
|
|
7
|
-
apiKey: string;
|
|
8
|
-
baseURL?: string;
|
|
9
|
-
model: string;
|
|
10
|
-
providerType?: 'openai' | 'openai-compatible';
|
|
11
|
-
});
|
|
12
|
-
turn(input: AdapterTurnInput): Promise<AdapterTurnResult>;
|
|
13
|
-
private priorToMessages;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=openai-chat-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,YAAY,EAAE,QAAQ,GAAG,mBAAmB,CAAC;IACtD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,QAAQ,GAAG,mBAAmB,CAAC;KAC/C;IAMK,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4D/D,OAAO,CAAC,eAAe;CAkBxB"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import OpenAI from 'openai';
|
|
2
|
-
export class OpenAIChatAdapter {
|
|
3
|
-
providerType;
|
|
4
|
-
client;
|
|
5
|
-
model;
|
|
6
|
-
constructor(opts) {
|
|
7
|
-
this.client = new OpenAI({ apiKey: opts.apiKey, baseURL: opts.baseURL });
|
|
8
|
-
this.providerType = opts.providerType ?? 'openai';
|
|
9
|
-
this.model = opts.model;
|
|
10
|
-
}
|
|
11
|
-
async turn(input) {
|
|
12
|
-
// No max_completion_tokens — let the model use its full output budget.
|
|
13
|
-
// Wall-clock + cost ceilings are the only worker bounds.
|
|
14
|
-
const response = await this.client.chat.completions.create({
|
|
15
|
-
model: this.model,
|
|
16
|
-
messages: [
|
|
17
|
-
{ role: 'system', content: input.systemPrompt },
|
|
18
|
-
...this.priorToMessages(input.priorTurns),
|
|
19
|
-
{ role: 'user', content: input.userMessage },
|
|
20
|
-
],
|
|
21
|
-
tools: input.toolDefinitions.map(d => ({
|
|
22
|
-
type: 'function',
|
|
23
|
-
function: { name: d.name, description: d.description, parameters: d.schema },
|
|
24
|
-
})),
|
|
25
|
-
});
|
|
26
|
-
const reasoning = response.usage?.completion_tokens_details?.reasoning_tokens ?? 0;
|
|
27
|
-
const usage = {
|
|
28
|
-
inputTokens: response.usage?.prompt_tokens ?? 0,
|
|
29
|
-
outputTokens: (response.usage?.completion_tokens ?? 0) + reasoning,
|
|
30
|
-
cachedReadTokens: response.usage?.prompt_tokens_details?.cached_tokens ?? 0,
|
|
31
|
-
cachedNonReadTokens: 0,
|
|
32
|
-
};
|
|
33
|
-
const choice = response.choices[0];
|
|
34
|
-
if (!choice) {
|
|
35
|
-
return {
|
|
36
|
-
assistantText: '',
|
|
37
|
-
toolCalls: [],
|
|
38
|
-
usage,
|
|
39
|
-
finishReason: 'error',
|
|
40
|
-
errorCode: 'empty_choices',
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
// OpenAI v6: ChatCompletionMessageToolCall = FunctionToolCall | CustomToolCall.
|
|
44
|
-
// We only send type:'function' tools, so every response call carries .function.
|
|
45
|
-
const toolCalls = (choice.message.tool_calls ?? []).map(c => {
|
|
46
|
-
const fn = c.function;
|
|
47
|
-
let input;
|
|
48
|
-
if (fn) {
|
|
49
|
-
try {
|
|
50
|
-
input = JSON.parse(fn.arguments);
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
input = { __mma_invalid_arguments: fn.arguments, __mma_parse_error: e.message };
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return { id: c.id, name: fn?.name ?? c.type, input };
|
|
57
|
-
});
|
|
58
|
-
return {
|
|
59
|
-
assistantText: choice.message.content ?? '',
|
|
60
|
-
toolCalls,
|
|
61
|
-
usage,
|
|
62
|
-
finishReason: toolCalls.length > 0
|
|
63
|
-
? 'tool_use'
|
|
64
|
-
: (choice.finish_reason === 'stop' ? 'stop' : 'max_tokens'),
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
priorToMessages(priors) {
|
|
68
|
-
return priors.flatMap((t, turnIdx) => [
|
|
69
|
-
{
|
|
70
|
-
role: 'assistant',
|
|
71
|
-
content: t.assistantText || null,
|
|
72
|
-
tool_calls: t.toolCalls.map((c, callIdx) => ({
|
|
73
|
-
id: c.id ?? `call_${turnIdx}_${callIdx}`,
|
|
74
|
-
type: 'function',
|
|
75
|
-
function: { name: c.name, arguments: JSON.stringify(c.input) },
|
|
76
|
-
})),
|
|
77
|
-
},
|
|
78
|
-
...t.toolCalls.map((c, callIdx) => ({
|
|
79
|
-
role: 'tool',
|
|
80
|
-
tool_call_id: c.id ?? `call_${turnIdx}_${callIdx}`,
|
|
81
|
-
content: typeof c.result === 'string' ? c.result : JSON.stringify(c.result ?? null),
|
|
82
|
-
})),
|
|
83
|
-
]);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=openai-chat-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-chat-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { RunnerAdapter, AdapterTurnInput, AdapterTurnResult } from './runner-adapter.js';
|
|
2
|
-
export declare class OpenAIResponsesAdapter implements RunnerAdapter {
|
|
3
|
-
readonly providerType: "codex";
|
|
4
|
-
private client;
|
|
5
|
-
private model;
|
|
6
|
-
constructor(opts: {
|
|
7
|
-
apiKey: string;
|
|
8
|
-
baseURL?: string;
|
|
9
|
-
model: string;
|
|
10
|
-
defaultHeaders?: Record<string, string>;
|
|
11
|
-
});
|
|
12
|
-
turn(input: AdapterTurnInput): Promise<AdapterTurnResult>;
|
|
13
|
-
private buildInputItems;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=openai-responses-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses-adapter.d.ts","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,QAAQ,CAAC,YAAY,EAAG,OAAO,CAAU;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;gBAEV,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IASxG,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgG/D,OAAO,CAAC,eAAe;CA+BxB"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import OpenAI from 'openai';
|
|
2
|
-
export class OpenAIResponsesAdapter {
|
|
3
|
-
providerType = 'codex';
|
|
4
|
-
client;
|
|
5
|
-
model;
|
|
6
|
-
constructor(opts) {
|
|
7
|
-
this.client = new OpenAI({
|
|
8
|
-
apiKey: opts.apiKey,
|
|
9
|
-
baseURL: opts.baseURL,
|
|
10
|
-
...(opts.defaultHeaders && { defaultHeaders: opts.defaultHeaders }),
|
|
11
|
-
});
|
|
12
|
-
this.model = opts.model;
|
|
13
|
-
}
|
|
14
|
-
async turn(input) {
|
|
15
|
-
const inputItems = this.buildInputItems(input);
|
|
16
|
-
// Stream the response. Two reasons:
|
|
17
|
-
// 1. The chatgpt.com/backend-api/codex endpoint (used when codex
|
|
18
|
-
// OAuth is the auth path) only accepts streaming + store:false;
|
|
19
|
-
// a non-streaming responses.create returns 400-no-body there.
|
|
20
|
-
// 2. api.openai.com supports streaming the same shape, so streaming
|
|
21
|
-
// is the universal path.
|
|
22
|
-
// store:false tells the server not to persist response state — required
|
|
23
|
-
// by chatgpt backend, harmless for api.openai.com.
|
|
24
|
-
const stream = await this.client.responses.create({
|
|
25
|
-
model: this.model,
|
|
26
|
-
instructions: input.systemPrompt,
|
|
27
|
-
input: inputItems,
|
|
28
|
-
stream: true,
|
|
29
|
-
store: false,
|
|
30
|
-
tools: input.toolDefinitions.length > 0
|
|
31
|
-
? input.toolDefinitions.map(d => ({
|
|
32
|
-
type: 'function',
|
|
33
|
-
name: d.name,
|
|
34
|
-
description: d.description,
|
|
35
|
-
parameters: d.schema,
|
|
36
|
-
strict: false,
|
|
37
|
-
}))
|
|
38
|
-
: undefined,
|
|
39
|
-
});
|
|
40
|
-
let assistantText = '';
|
|
41
|
-
const toolCalls = [];
|
|
42
|
-
let inputTokens = 0;
|
|
43
|
-
let outputTokens = 0;
|
|
44
|
-
let cachedReadTokens = 0;
|
|
45
|
-
let reasoningTokens = 0;
|
|
46
|
-
let status;
|
|
47
|
-
let sawCompleted = false;
|
|
48
|
-
for await (const event of stream) {
|
|
49
|
-
const et = event?.type;
|
|
50
|
-
if (!et)
|
|
51
|
-
continue;
|
|
52
|
-
if (et === 'response.output_text.delta') {
|
|
53
|
-
assistantText += event.delta ?? '';
|
|
54
|
-
}
|
|
55
|
-
else if (et === 'response.output_item.done') {
|
|
56
|
-
const item = event.item;
|
|
57
|
-
if (item?.type === 'function_call') {
|
|
58
|
-
let inputObj;
|
|
59
|
-
try {
|
|
60
|
-
inputObj = JSON.parse(item.arguments ?? '{}');
|
|
61
|
-
}
|
|
62
|
-
catch (e) {
|
|
63
|
-
inputObj = {
|
|
64
|
-
__mma_invalid_arguments: item.arguments,
|
|
65
|
-
__mma_parse_error: e.message,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
toolCalls.push({ id: item.call_id, name: item.name, input: inputObj });
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else if (et === 'response.completed') {
|
|
72
|
-
sawCompleted = true;
|
|
73
|
-
const r = event.response;
|
|
74
|
-
if (r?.usage) {
|
|
75
|
-
const u = r.usage;
|
|
76
|
-
inputTokens = u.input_tokens ?? 0;
|
|
77
|
-
outputTokens = u.output_tokens ?? 0;
|
|
78
|
-
reasoningTokens = u.output_tokens_details?.reasoning_tokens ?? u.reasoning_tokens ?? 0;
|
|
79
|
-
cachedReadTokens = u.input_tokens_details?.cached_tokens ?? u.cached_input_tokens ?? 0;
|
|
80
|
-
}
|
|
81
|
-
if (r?.status)
|
|
82
|
-
status = r.status;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (!sawCompleted) {
|
|
86
|
-
throw new Error('Codex stream ended without a response.completed event');
|
|
87
|
-
}
|
|
88
|
-
const usage = {
|
|
89
|
-
inputTokens,
|
|
90
|
-
outputTokens: outputTokens + reasoningTokens,
|
|
91
|
-
cachedReadTokens,
|
|
92
|
-
cachedNonReadTokens: 0,
|
|
93
|
-
};
|
|
94
|
-
let finishReason;
|
|
95
|
-
if (toolCalls.length > 0) {
|
|
96
|
-
finishReason = 'tool_use';
|
|
97
|
-
}
|
|
98
|
-
else if (status === 'completed') {
|
|
99
|
-
finishReason = 'stop';
|
|
100
|
-
}
|
|
101
|
-
else if (status === 'incomplete' || status === 'cancelled') {
|
|
102
|
-
finishReason = 'max_tokens';
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
finishReason = 'error';
|
|
106
|
-
}
|
|
107
|
-
return { assistantText, toolCalls, usage, finishReason };
|
|
108
|
-
}
|
|
109
|
-
buildInputItems(input) {
|
|
110
|
-
const items = [];
|
|
111
|
-
for (const t of input.priorTurns) {
|
|
112
|
-
// Assistant message with text content
|
|
113
|
-
items.push({ role: 'assistant', content: t.assistantText });
|
|
114
|
-
// Each tool call + its result as a function_call / function_call_output pair.
|
|
115
|
-
// The Responses API requires both items so the model can see its tool history.
|
|
116
|
-
for (let ci = 0; ci < t.toolCalls.length; ci++) {
|
|
117
|
-
const c = t.toolCalls[ci];
|
|
118
|
-
const callId = c.id ?? `call_${input.priorTurns.indexOf(t)}_${ci}`;
|
|
119
|
-
items.push({
|
|
120
|
-
type: 'function_call',
|
|
121
|
-
call_id: callId,
|
|
122
|
-
name: c.name,
|
|
123
|
-
arguments: JSON.stringify(c.input),
|
|
124
|
-
});
|
|
125
|
-
items.push({
|
|
126
|
-
type: 'function_call_output',
|
|
127
|
-
call_id: callId,
|
|
128
|
-
output: typeof c.result === 'string' ? c.result : JSON.stringify(c.result ?? null),
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
// Current user message
|
|
133
|
-
items.push({ role: 'user', content: input.userMessage });
|
|
134
|
-
return items;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=openai-responses-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses-adapter.js","sourceRoot":"","sources":["../../src/providers/openai-responses-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type OpenAI from 'openai';
|
|
2
|
-
export interface UsageSnapshot {
|
|
3
|
-
promptTokens: number;
|
|
4
|
-
completionTokens: number;
|
|
5
|
-
cachedReadTokens: number;
|
|
6
|
-
reasoningTokens: number;
|
|
7
|
-
/** Number of completed HTTP responses observed (one per SDK turn). */
|
|
8
|
-
responses: number;
|
|
9
|
-
}
|
|
10
|
-
export interface UsageAccumulator {
|
|
11
|
-
/** Latest cumulative usage from the wrapped client. Returns a fresh snapshot. */
|
|
12
|
-
snapshot(): UsageSnapshot;
|
|
13
|
-
/** True if at least one response observed real (non-zero) usage. Used by
|
|
14
|
-
* the runner to decide whether to trust SDK state.usage or fall back here. */
|
|
15
|
-
hasObservedUsage(): boolean;
|
|
16
|
-
}
|
|
17
|
-
/** Wrap an OpenAI client so usage from every chat.completions.create response
|
|
18
|
-
* is captured into the returned UsageAccumulator.
|
|
19
|
-
*
|
|
20
|
-
* Mutates `client.chat.completions.create` in place. The wrapped client is
|
|
21
|
-
* otherwise unchanged — same return shapes, same error behavior. The SDK
|
|
22
|
-
* sees the same response stream byte-for-byte (we tee, we don't transform).
|
|
23
|
-
*/
|
|
24
|
-
export declare function wrapClientForUsageCapture(client: OpenAI): UsageAccumulator;
|
|
25
|
-
//# sourceMappingURL=openai-usage-interceptor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-usage-interceptor.d.ts","sourceRoot":"","sources":["../../src/providers/openai-usage-interceptor.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,QAAQ,IAAI,aAAa,CAAC;IAC1B;mFAC+E;IAC/E,gBAAgB,IAAI,OAAO,CAAC;CAC7B;AAmBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAoF1E"}
|