@zhixuan92/multi-model-agent-core 4.5.4 → 4.7.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 +6 -2
- package/dist/bounded-execution/file-artifact-check.d.ts +4 -11
- package/dist/bounded-execution/file-artifact-check.d.ts.map +1 -1
- package/dist/bounded-execution/file-artifact-check.js +7 -22
- package/dist/bounded-execution/file-artifact-check.js.map +1 -1
- package/dist/bounded-execution/progress-watchdog.d.ts.map +1 -1
- package/dist/bounded-execution/progress-watchdog.js +60 -27
- package/dist/bounded-execution/progress-watchdog.js.map +1 -1
- package/dist/bounded-execution/stall-watchdog.d.ts.map +1 -1
- package/dist/bounded-execution/stall-watchdog.js +29 -12
- package/dist/bounded-execution/stall-watchdog.js.map +1 -1
- package/dist/bounded-execution/wall-clock-guard.d.ts +4 -0
- package/dist/bounded-execution/wall-clock-guard.d.ts.map +1 -1
- package/dist/bounded-execution/wall-clock-guard.js +1 -1
- package/dist/bounded-execution/wall-clock-guard.js.map +1 -1
- package/dist/config/canonical-model-identity.d.ts.map +1 -1
- package/dist/config/canonical-model-identity.js.map +1 -1
- package/dist/config/config-resolver.d.ts +1 -41
- package/dist/config/config-resolver.d.ts.map +1 -1
- package/dist/config/config-resolver.js +1 -43
- package/dist/config/config-resolver.js.map +1 -1
- package/dist/config/load.d.ts +0 -2
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +0 -4
- package/dist/config/load.js.map +1 -1
- package/dist/config/model-profile-registry.d.ts.map +1 -1
- package/dist/config/model-profile-registry.js +13 -7
- package/dist/config/model-profile-registry.js.map +1 -1
- package/dist/config/schema.d.ts +1 -19
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +12 -38
- package/dist/config/schema.js.map +1 -1
- package/dist/error-codes.d.ts +0 -1
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +0 -1
- package/dist/error-codes.js.map +1 -1
- package/dist/events/cloud-events.d.ts +0 -1
- package/dist/events/cloud-events.d.ts.map +1 -1
- package/dist/events/cloud-events.js +1 -1
- package/dist/events/cloud-events.js.map +1 -1
- package/dist/events/event-builder.d.ts +36 -5
- package/dist/events/event-builder.d.ts.map +1 -1
- package/dist/events/event-builder.js +174 -33
- package/dist/events/event-builder.js.map +1 -1
- package/dist/events/event-emitter.d.ts +2 -1
- package/dist/events/event-emitter.d.ts.map +1 -1
- package/dist/events/event-emitter.js +6 -1
- package/dist/events/event-emitter.js.map +1 -1
- package/dist/events/observability-events.d.ts +6 -26
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/observability-events.js +6 -11
- package/dist/events/observability-events.js.map +1 -1
- package/dist/events/telemetry-types.d.ts +10 -7
- package/dist/events/telemetry-types.d.ts.map +1 -1
- package/dist/events/telemetry-types.js +1 -1
- package/dist/events/telemetry-types.js.map +1 -1
- package/dist/events/verbose-log-channel.d.ts +7 -7
- package/dist/events/verbose-log-channel.js +10 -10
- package/dist/index.d.ts +13 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/intake/resolve.d.ts.map +1 -1
- package/dist/intake/resolve.js +0 -1
- package/dist/intake/resolve.js.map +1 -1
- package/dist/lifecycle/annotate-parser.d.ts +9 -0
- package/dist/lifecycle/annotate-parser.d.ts.map +1 -0
- package/dist/lifecycle/annotate-parser.js +83 -0
- package/dist/lifecycle/annotate-parser.js.map +1 -0
- package/dist/lifecycle/annotate-prompts.d.ts +9 -0
- package/dist/lifecycle/annotate-prompts.d.ts.map +1 -0
- package/dist/lifecycle/annotate-prompts.js +86 -0
- package/dist/lifecycle/annotate-prompts.js.map +1 -0
- package/dist/lifecycle/auto-register-context-block.d.ts +2 -2
- package/dist/lifecycle/auto-register-context-block.d.ts.map +1 -1
- package/dist/lifecycle/auto-register-context-block.js.map +1 -1
- package/dist/lifecycle/build-cancelled-result.d.ts +11 -0
- package/dist/lifecycle/build-cancelled-result.d.ts.map +1 -0
- package/dist/lifecycle/build-cancelled-result.js +27 -0
- package/dist/lifecycle/build-cancelled-result.js.map +1 -0
- package/dist/lifecycle/executor-output-types.d.ts +2 -2
- package/dist/lifecycle/executor-output-types.d.ts.map +1 -1
- package/dist/lifecycle/fallback-report.d.ts +2 -2
- package/dist/lifecycle/fallback-report.d.ts.map +1 -1
- package/dist/lifecycle/fallback-report.js.map +1 -1
- package/dist/lifecycle/findings-parser.d.ts +2 -0
- package/dist/lifecycle/findings-parser.d.ts.map +1 -1
- package/dist/lifecycle/findings-parser.js +9 -4
- package/dist/lifecycle/findings-parser.js.map +1 -1
- package/dist/lifecycle/git-toplevel.d.ts +12 -0
- package/dist/lifecycle/git-toplevel.d.ts.map +1 -0
- package/dist/lifecycle/git-toplevel.js +49 -0
- package/dist/lifecycle/git-toplevel.js.map +1 -0
- package/dist/lifecycle/handlers/{annotator.d.ts → annotate-stage.d.ts} +3 -2
- package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/annotate-stage.js +289 -0
- package/dist/lifecycle/handlers/annotate-stage.js.map +1 -0
- package/dist/lifecycle/handlers/baseline-handlers.d.ts +10 -5
- package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.js +206 -316
- package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts +3 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.js +191 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -0
- package/dist/lifecycle/handlers/git-commit-handler.d.ts +3 -2
- package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.js +158 -114
- package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
- package/dist/lifecycle/handlers/implement-stage.d.ts +10 -0
- package/dist/lifecycle/handlers/implement-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/implement-stage.js +206 -0
- package/dist/lifecycle/handlers/implement-stage.js.map +1 -0
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +7 -13
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js +72 -49
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +2 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.js +35 -14
- package/dist/lifecycle/handlers/register-context-block-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/review-stage.d.ts +4 -0
- package/dist/lifecycle/handlers/review-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/review-stage.js +184 -0
- package/dist/lifecycle/handlers/review-stage.js.map +1 -0
- package/dist/lifecycle/handlers/rework-stage.d.ts +4 -0
- package/dist/lifecycle/handlers/rework-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{rework-handler.js → rework-stage.js} +79 -15
- package/dist/lifecycle/handlers/rework-stage.js.map +1 -0
- package/dist/lifecycle/handlers/terminal-handlers.d.ts +22 -0
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.js +86 -5
- package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
- package/dist/lifecycle/lifecycle-context.d.ts +41 -7
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts +19 -20
- package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.js +39 -23
- package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
- package/dist/lifecycle/lifecycle-driver.d.ts +15 -8
- package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-driver.js +130 -29
- package/dist/lifecycle/lifecycle-driver.js.map +1 -1
- package/dist/lifecycle/merge-stage-stats.d.ts +3 -3
- 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/normalize-output-targets.d.ts +2 -0
- package/dist/lifecycle/normalize-output-targets.d.ts.map +1 -0
- package/dist/lifecycle/normalize-output-targets.js +14 -0
- package/dist/lifecycle/normalize-output-targets.js.map +1 -0
- package/dist/lifecycle/perform-implementation.d.ts +3 -0
- package/dist/lifecycle/perform-implementation.d.ts.map +1 -0
- package/dist/lifecycle/perform-implementation.js +301 -0
- package/dist/lifecycle/perform-implementation.js.map +1 -0
- package/dist/lifecycle/repo-hygiene.d.ts +14 -0
- package/dist/lifecycle/repo-hygiene.d.ts.map +1 -0
- package/dist/lifecycle/repo-hygiene.js +71 -0
- package/dist/lifecycle/repo-hygiene.js.map +1 -0
- package/dist/lifecycle/rework-budget.d.ts +3 -0
- package/dist/lifecycle/rework-budget.d.ts.map +1 -0
- package/dist/lifecycle/rework-budget.js +9 -0
- package/dist/lifecycle/rework-budget.js.map +1 -0
- package/dist/lifecycle/shared-compute.d.ts +4 -4
- package/dist/lifecycle/shared-compute.d.ts.map +1 -1
- package/dist/lifecycle/shared-compute.js +1 -1
- package/dist/lifecycle/shared-compute.js.map +1 -1
- package/dist/lifecycle/stage-io.d.ts +140 -0
- package/dist/lifecycle/stage-io.d.ts.map +1 -0
- package/dist/lifecycle/stage-io.js +20 -0
- package/dist/lifecycle/stage-io.js.map +1 -0
- package/dist/lifecycle/stage-plan-builder.d.ts +3 -3
- package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
- package/dist/lifecycle/stage-plan-builder.js +157 -128
- package/dist/lifecycle/stage-plan-builder.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +6 -25
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.d.ts +3 -15
- package/dist/lifecycle/stage-progression.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.js +48 -91
- package/dist/lifecycle/stage-progression.js.map +1 -1
- package/dist/lifecycle/task-completion-summary.d.ts +2 -2
- package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
- package/dist/lifecycle/task-completion-summary.js +0 -7
- package/dist/lifecycle/task-completion-summary.js.map +1 -1
- package/dist/lifecycle/task-executor.d.ts +23 -0
- package/dist/lifecycle/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/task-executor.js +79 -6
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/task-grouping.d.ts +19 -0
- package/dist/lifecycle/task-grouping.d.ts.map +1 -0
- package/dist/lifecycle/task-grouping.js +48 -0
- package/dist/lifecycle/task-grouping.js.map +1 -0
- package/dist/lifecycle/task-runner.d.ts +25 -8
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +123 -313
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/lifecycle/tool-config-types.d.ts +9 -0
- package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
- package/dist/lifecycle/worker-output-contract.d.ts +9 -15
- package/dist/lifecycle/worker-output-contract.d.ts.map +1 -1
- package/dist/lifecycle/worker-output-contract.js +45 -30
- package/dist/lifecycle/worker-output-contract.js.map +1 -1
- package/dist/providers/agent-resolver.d.ts.map +1 -0
- package/dist/{escalation → providers}/agent-resolver.js +1 -1
- package/dist/providers/agent-resolver.js.map +1 -0
- package/dist/providers/assemble-run-result.d.ts +3 -3
- package/dist/providers/assemble-run-result.d.ts.map +1 -1
- package/dist/providers/assemble-run-result.js +20 -11
- package/dist/providers/assemble-run-result.js.map +1 -1
- package/dist/providers/claude-session.d.ts +12 -0
- package/dist/providers/claude-session.d.ts.map +1 -1
- package/dist/providers/claude-session.js +39 -1
- package/dist/providers/claude-session.js.map +1 -1
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/codex-cli-launch.js +1 -1
- package/dist/providers/codex-cli-launch.js.map +1 -1
- package/dist/providers/codex-cli-session.d.ts +20 -2
- package/dist/providers/codex-cli-session.d.ts.map +1 -1
- package/dist/providers/codex-cli-session.js +148 -52
- package/dist/providers/codex-cli-session.js.map +1 -1
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/normalize-claude.d.ts +2 -0
- package/dist/providers/normalize-claude.d.ts.map +1 -1
- package/dist/providers/normalize-claude.js +2 -1
- package/dist/providers/normalize-claude.js.map +1 -1
- package/dist/providers/provider-factory.d.ts +8 -0
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +64 -3
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/run-annotator-turn.d.ts +24 -0
- package/dist/providers/run-annotator-turn.d.ts.map +1 -0
- package/dist/providers/run-annotator-turn.js +44 -0
- package/dist/providers/run-annotator-turn.js.map +1 -0
- package/dist/providers/run-worker-turn.d.ts +26 -0
- package/dist/providers/run-worker-turn.d.ts.map +1 -0
- package/dist/providers/run-worker-turn.js +57 -0
- package/dist/providers/run-worker-turn.js.map +1 -0
- package/dist/providers/runner-types.d.ts +6 -7
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/providers/stall-detector.d.ts +1 -1
- package/dist/providers/stall-detector.d.ts.map +1 -1
- package/dist/providers/stall-detector.js +1 -1
- package/dist/providers/stall-detector.js.map +1 -1
- package/dist/reporting/derive-investigate-status.d.ts +1 -1
- package/dist/reporting/derive-investigate-status.d.ts.map +1 -1
- package/dist/reporting/headline-composer.d.ts +3 -3
- package/dist/reporting/headline-composer.d.ts.map +1 -1
- package/dist/reporting/headline-templates/investigate.d.ts +1 -1
- package/dist/reporting/headline-templates/investigate.d.ts.map +1 -1
- package/dist/reporting/headline-templates/research.d.ts.map +1 -1
- package/dist/reporting/headline-templates/research.js +0 -1
- package/dist/reporting/headline-templates/research.js.map +1 -1
- package/dist/reporting/terminal-status-deriver.d.ts +1 -1
- package/dist/reporting/terminal-status-deriver.d.ts.map +1 -1
- package/dist/reporting/terminal-status-deriver.js +1 -4
- package/dist/reporting/terminal-status-deriver.js.map +1 -1
- package/dist/review/index.d.ts +4 -3
- package/dist/review/index.d.ts.map +1 -1
- package/dist/review/index.js +7 -4
- package/dist/review/index.js.map +1 -1
- package/dist/review/parse-review-report.d.ts +7 -1
- package/dist/review/parse-review-report.d.ts.map +1 -1
- package/dist/review/parse-review-report.js +13 -21
- package/dist/review/parse-review-report.js.map +1 -1
- package/dist/review/review-verdict-mapping.d.ts +3 -3
- package/dist/review/review-verdict-mapping.d.ts.map +1 -1
- package/dist/review/review-verdict-mapping.js +1 -1
- package/dist/review/review-verdict-mapping.js.map +1 -1
- package/dist/review/run-reviewer.d.ts +40 -0
- package/dist/review/run-reviewer.d.ts.map +1 -0
- package/dist/review/run-reviewer.js +55 -0
- package/dist/review/run-reviewer.js.map +1 -0
- package/dist/review/templates/quality-review.d.ts +5 -0
- package/dist/review/templates/quality-review.d.ts.map +1 -1
- package/dist/review/templates/quality-review.js +35 -25
- package/dist/review/templates/quality-review.js.map +1 -1
- package/dist/review/templates/spec-review.d.ts +6 -0
- package/dist/review/templates/spec-review.d.ts.map +1 -1
- package/dist/review/templates/spec-review.js +36 -8
- package/dist/review/templates/spec-review.js.map +1 -1
- package/dist/stores/batch-cache.d.ts +3 -3
- package/dist/stores/batch-cache.d.ts.map +1 -1
- package/dist/stores/batch-cache.js.map +1 -1
- package/dist/stores/batch-registry.d.ts +46 -1
- package/dist/stores/batch-registry.d.ts.map +1 -1
- package/dist/stores/batch-registry.js +39 -0
- package/dist/stores/batch-registry.js.map +1 -1
- package/dist/tool-surface/tool-surface-registry.d.ts +1 -1
- package/dist/tool-surface/tool-surface-registry.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.js +0 -1
- package/dist/tools/audit/tool-config.js.map +1 -1
- package/dist/tools/debug/tool-config.d.ts.map +1 -1
- package/dist/tools/debug/tool-config.js +1 -2
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/delegate/schema.d.ts +1 -1
- package/dist/tools/delegate/schema.d.ts.map +1 -1
- package/dist/tools/delegate/schema.js +2 -1
- package/dist/tools/delegate/schema.js.map +1 -1
- package/dist/tools/delegate/tool-config.d.ts +0 -1
- package/dist/tools/delegate/tool-config.d.ts.map +1 -1
- package/dist/tools/delegate/tool-config.js +3 -3
- package/dist/tools/delegate/tool-config.js.map +1 -1
- package/dist/tools/execute-plan/schema.d.ts +1 -1
- package/dist/tools/execute-plan/schema.d.ts.map +1 -1
- package/dist/tools/execute-plan/schema.js +2 -2
- package/dist/tools/execute-plan/schema.js.map +1 -1
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +3 -2
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/investigate/tool-config.d.ts.map +1 -1
- package/dist/tools/investigate/tool-config.js +1 -2
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/register-context-block/tool-config.d.ts.map +1 -1
- package/dist/tools/register-context-block/tool-config.js +0 -1
- package/dist/tools/register-context-block/tool-config.js.map +1 -1
- package/dist/tools/research/tool-config.d.ts.map +1 -1
- package/dist/tools/research/tool-config.js +0 -1
- package/dist/tools/research/tool-config.js.map +1 -1
- package/dist/tools/retry/tool-config.d.ts.map +1 -1
- package/dist/tools/retry/tool-config.js +0 -1
- package/dist/tools/retry/tool-config.js.map +1 -1
- package/dist/tools/review/tool-config.d.ts.map +1 -1
- package/dist/tools/review/tool-config.js +0 -1
- package/dist/tools/review/tool-config.js.map +1 -1
- package/dist/types/config.d.ts +0 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/enums.d.ts +0 -3
- 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 +177 -213
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/run-result.js +17 -0
- package/dist/types/run-result.js.map +1 -1
- package/dist/types/task-spec.d.ts +1 -1
- 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 +1 -1
- package/dist/bounded-execution/cost-meter.d.ts +0 -20
- package/dist/bounded-execution/cost-meter.d.ts.map +0 -1
- package/dist/bounded-execution/cost-meter.js +0 -21
- package/dist/bounded-execution/cost-meter.js.map +0 -1
- package/dist/bounded-execution/error-classifier.d.ts +0 -11
- package/dist/bounded-execution/error-classifier.d.ts.map +0 -1
- package/dist/bounded-execution/error-classifier.js +0 -23
- package/dist/bounded-execution/error-classifier.js.map +0 -1
- package/dist/bounded-execution/idle-guard.d.ts +0 -8
- package/dist/bounded-execution/idle-guard.d.ts.map +0 -1
- package/dist/bounded-execution/idle-guard.js +0 -18
- package/dist/bounded-execution/idle-guard.js.map +0 -1
- package/dist/bounded-execution/index.d.ts +0 -10
- package/dist/bounded-execution/index.d.ts.map +0 -1
- package/dist/bounded-execution/index.js +0 -11
- package/dist/bounded-execution/index.js.map +0 -1
- package/dist/bounded-execution/safety-max-turns.d.ts +0 -17
- package/dist/bounded-execution/safety-max-turns.d.ts.map +0 -1
- package/dist/bounded-execution/safety-max-turns.js +0 -17
- package/dist/bounded-execution/safety-max-turns.js.map +0 -1
- package/dist/cleanup/batch-retention-sweeper.d.ts +0 -7
- package/dist/cleanup/batch-retention-sweeper.d.ts.map +0 -1
- package/dist/cleanup/batch-retention-sweeper.js +0 -10
- package/dist/cleanup/batch-retention-sweeper.js.map +0 -1
- package/dist/cleanup/context-block-gc-sweeper.d.ts +0 -8
- package/dist/cleanup/context-block-gc-sweeper.d.ts.map +0 -1
- package/dist/cleanup/context-block-gc-sweeper.js +0 -12
- package/dist/cleanup/context-block-gc-sweeper.js.map +0 -1
- package/dist/cleanup/index.d.ts +0 -5
- package/dist/cleanup/index.d.ts.map +0 -1
- package/dist/cleanup/index.js +0 -6
- package/dist/cleanup/index.js.map +0 -1
- package/dist/cleanup/project-idle-cleanup.d.ts +0 -7
- package/dist/cleanup/project-idle-cleanup.d.ts.map +0 -1
- package/dist/cleanup/project-idle-cleanup.js +0 -15
- package/dist/cleanup/project-idle-cleanup.js.map +0 -1
- package/dist/cleanup/shutdown-coordinator.d.ts +0 -7
- package/dist/cleanup/shutdown-coordinator.d.ts.map +0 -1
- package/dist/cleanup/shutdown-coordinator.js +0 -13
- package/dist/cleanup/shutdown-coordinator.js.map +0 -1
- package/dist/config/index.d.ts +0 -8
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -9
- package/dist/config/index.js.map +0 -1
- package/dist/config/pricing-table.d.ts +0 -16
- package/dist/config/pricing-table.d.ts.map +0 -1
- package/dist/config/pricing-table.js +0 -51
- package/dist/config/pricing-table.js.map +0 -1
- package/dist/escalation/agent-resolver.d.ts.map +0 -1
- package/dist/escalation/agent-resolver.js.map +0 -1
- package/dist/escalation/delegate-with-escalation.d.ts +0 -52
- package/dist/escalation/delegate-with-escalation.d.ts.map +0 -1
- package/dist/escalation/delegate-with-escalation.js +0 -207
- package/dist/escalation/delegate-with-escalation.js.map +0 -1
- package/dist/escalation/escalation-policy.d.ts +0 -18
- package/dist/escalation/escalation-policy.d.ts.map +0 -1
- package/dist/escalation/escalation-policy.js +0 -33
- package/dist/escalation/escalation-policy.js.map +0 -1
- package/dist/escalation/fallback-helpers.d.ts +0 -22
- package/dist/escalation/fallback-helpers.d.ts.map +0 -1
- package/dist/escalation/fallback-helpers.js +0 -45
- package/dist/escalation/fallback-helpers.js.map +0 -1
- package/dist/escalation/fallback-types.d.ts +0 -60
- package/dist/escalation/fallback-types.d.ts.map +0 -1
- package/dist/escalation/fallback-types.js +0 -11
- package/dist/escalation/fallback-types.js.map +0 -1
- package/dist/escalation/fallback.d.ts +0 -5
- package/dist/escalation/fallback.d.ts.map +0 -1
- package/dist/escalation/fallback.js +0 -387
- package/dist/escalation/fallback.js.map +0 -1
- package/dist/escalation/index.d.ts +0 -3
- package/dist/escalation/index.d.ts.map +0 -1
- package/dist/escalation/index.js +0 -4
- package/dist/escalation/index.js.map +0 -1
- package/dist/escalation/policy.d.ts +0 -37
- package/dist/escalation/policy.d.ts.map +0 -1
- package/dist/escalation/policy.js +0 -67
- package/dist/escalation/policy.js.map +0 -1
- package/dist/escalation/types.d.ts +0 -15
- package/dist/escalation/types.d.ts.map +0 -1
- package/dist/escalation/types.js +0 -2
- package/dist/escalation/types.js.map +0 -1
- package/dist/events/running-headline-sink.d.ts +0 -27
- package/dist/events/running-headline-sink.d.ts.map +0 -1
- package/dist/events/running-headline-sink.js +0 -156
- package/dist/events/running-headline-sink.js.map +0 -1
- package/dist/lifecycle/handlers/annotator.d.ts.map +0 -1
- package/dist/lifecycle/handlers/annotator.js +0 -59
- package/dist/lifecycle/handlers/annotator.js.map +0 -1
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts +0 -10
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts.map +0 -1
- package/dist/lifecycle/handlers/derive-terminal-status.js +0 -35
- package/dist/lifecycle/handlers/derive-terminal-status.js.map +0 -1
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts +0 -27
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts.map +0 -1
- package/dist/lifecycle/handlers/files-written-cross-check.js +0 -91
- package/dist/lifecycle/handlers/files-written-cross-check.js.map +0 -1
- package/dist/lifecycle/handlers/review-handler.d.ts +0 -3
- package/dist/lifecycle/handlers/review-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/review-handler.js +0 -169
- package/dist/lifecycle/handlers/review-handler.js.map +0 -1
- package/dist/lifecycle/handlers/rework-handler.d.ts +0 -3
- package/dist/lifecycle/handlers/rework-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/rework-handler.js.map +0 -1
- package/dist/lifecycle/handlers/task-executor.d.ts +0 -9
- package/dist/lifecycle/handlers/task-executor.d.ts.map +0 -1
- package/dist/lifecycle/handlers/task-executor.js +0 -98
- package/dist/lifecycle/handlers/task-executor.js.map +0 -1
- package/dist/lifecycle/handlers/verify-stage.d.ts +0 -37
- package/dist/lifecycle/handlers/verify-stage.d.ts.map +0 -1
- package/dist/lifecycle/handlers/verify-stage.js +0 -208
- package/dist/lifecycle/handlers/verify-stage.js.map +0 -1
- package/dist/lifecycle/metadata-repair.d.ts +0 -15
- package/dist/lifecycle/metadata-repair.d.ts.map +0 -1
- package/dist/lifecycle/metadata-repair.js +0 -33
- package/dist/lifecycle/metadata-repair.js.map +0 -1
- package/dist/review/default-engines.d.ts +0 -3
- package/dist/review/default-engines.d.ts.map +0 -1
- package/dist/review/default-engines.js +0 -22
- package/dist/review/default-engines.js.map +0 -1
- package/dist/review/reviewer-engine.d.ts +0 -53
- package/dist/review/reviewer-engine.d.ts.map +0 -1
- package/dist/review/reviewer-engine.js +0 -47
- package/dist/review/reviewer-engine.js.map +0 -1
- package/dist/review/reviewer-output-parser.d.ts +0 -12
- package/dist/review/reviewer-output-parser.d.ts.map +0 -1
- package/dist/review/reviewer-output-parser.js +0 -213
- package/dist/review/reviewer-output-parser.js.map +0 -1
- package/dist/review/reviewer-prompt-builder.d.ts +0 -21
- package/dist/review/reviewer-prompt-builder.d.ts.map +0 -1
- package/dist/review/reviewer-prompt-builder.js +0 -22
- package/dist/review/reviewer-prompt-builder.js.map +0 -1
- package/dist/review/templates/annotate-completion.d.ts +0 -12
- package/dist/review/templates/annotate-completion.d.ts.map +0 -1
- package/dist/review/templates/annotate-completion.js +0 -72
- package/dist/review/templates/annotate-completion.js.map +0 -1
- /package/dist/{escalation → providers}/agent-resolver.d.ts +0 -0
package/README.md
CHANGED
|
@@ -228,9 +228,13 @@ mmagent logs --follow --batch=<id> # tail + filter
|
|
|
228
228
|
|
|
229
229
|
As of 3.4.0 every task-execution event the worker emits to the verbose stderr stream is also written to the JSONL log via a single `emit(TaskEvent)` writer — schema parity across both sinks. Crash/disconnect events (`startup`, `request_start`, `request_complete`, `shutdown`, `error`) are written unconditionally; per-task events (`heartbeat`, `stage_change`, `tool_call`, `turn_complete`, etc.) flow through the same writer.
|
|
230
230
|
|
|
231
|
-
## What's new in 4.
|
|
231
|
+
## What's new in 4.7.0
|
|
232
232
|
|
|
233
|
-
-
|
|
233
|
+
- **BREAKING: USD cost caps removed across the entire surface.** `defaults.maxCostUSD`, `tasks[].maxCostUSD`, `TaskSpec.maxCostUSD`, `RunOptions.maxCostUSD`, `DEFAULT_MAX_COST_USD`, `MAX_COST_PRESTOP_RATIO`, `pricingSchema`, `CostCheckEvent`, `'cost_exceeded'` terminal status, `'cost_cap'` incomplete reason — all deleted. Reported cost (`actualCostUSD`, `costUSD`) is unchanged; only the *cap* is gone. Migration: drop `maxCostUSD` everywhere.
|
|
234
|
+
- **Polling headline now reflects live stage + counts.** The server's `recordHeartbeat` callback writes a structured per-task snapshot (`stageLabel`, `stageDone`, `stageTotal`, `toolReads`/`toolWrites`/`toolTotal`). `/batch/:id` 202 responses advance through `Implementing → Review → Annotating → Committing` instead of staying frozen on the seed value.
|
|
235
|
+
- **`outputTargets` contract.** `/delegate` and `/execute-plan` tasks accept an optional `outputTargets: string[]`; missing paths post-run produce a `severity: high` finding (`missing_output_targets`).
|
|
236
|
+
- **Module removal:** `packages/core/src/escalation/` deleted entirely. Write routes now go through `ctx.getSession(tier)` directly. Also deleted: `RunningHeadlineSink`, `cleanup/` folder, `body-size.ts` middleware, dormant bounded-execution helpers (`IdleGuard`, `CostMeter`, etc.), and `config/pricing-table.ts`.
|
|
237
|
+
- **From 4.6.0, still relevant:** `isLlmStage` flag + `StageModelMissingError` defensive build, tier-uniformity invariant in `rollupByTier`, full token attribution on `RunAnnotatorResult` / `RunReviewerResult`, cross-tier reviewer policy via `invertedReviewerTier()`.
|
|
234
238
|
|
|
235
239
|
Full history: [CHANGELOG](https://github.com/zhixuan312/multi-model-agent/blob/master/CHANGELOG.md).
|
|
236
240
|
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
export interface FilePathPartition {
|
|
2
|
-
outputTargets: string[];
|
|
3
|
-
}
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Returns the subset of `outputTargets` that do NOT exist on disk.
|
|
3
|
+
* Empty array means all targets exist. Caller decides whether non-empty
|
|
4
|
+
* is a failure (typically yes — surface as a structured finding).
|
|
7
5
|
*/
|
|
8
|
-
export declare function
|
|
9
|
-
/**
|
|
10
|
-
* Check whether any output targets are still missing on disk.
|
|
11
|
-
* Returns true if any target does not exist.
|
|
12
|
-
*/
|
|
13
|
-
export declare function checkOutputTargets(outputTargets: string[]): boolean;
|
|
6
|
+
export declare function checkOutputTargets(outputTargets: string[]): string[];
|
|
14
7
|
//# sourceMappingURL=file-artifact-check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-artifact-check.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/file-artifact-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-artifact-check.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/file-artifact-check.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEpE"}
|
|
@@ -1,28 +1,13 @@
|
|
|
1
|
+
// Post-task verifier for declared output files.
|
|
2
|
+
// Callers set ctx.outputTargets in task-runner; the implementer stage handler
|
|
3
|
+
// invokes checkOutputTargets() post-task to verify each path exists on disk.
|
|
1
4
|
import { existsSync } from 'fs';
|
|
2
|
-
import { resolve } from 'path';
|
|
3
5
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
export function partitionFilePaths(filePaths, cwd) {
|
|
8
|
-
if (!filePaths || filePaths.length === 0)
|
|
9
|
-
return { outputTargets: [] };
|
|
10
|
-
const outputTargets = [];
|
|
11
|
-
for (const fp of filePaths) {
|
|
12
|
-
const abs = resolve(cwd, fp);
|
|
13
|
-
if (!existsSync(abs)) {
|
|
14
|
-
outputTargets.push(abs);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return { outputTargets };
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Check whether any output targets are still missing on disk.
|
|
21
|
-
* Returns true if any target does not exist.
|
|
6
|
+
* Returns the subset of `outputTargets` that do NOT exist on disk.
|
|
7
|
+
* Empty array means all targets exist. Caller decides whether non-empty
|
|
8
|
+
* is a failure (typically yes — surface as a structured finding).
|
|
22
9
|
*/
|
|
23
10
|
export function checkOutputTargets(outputTargets) {
|
|
24
|
-
|
|
25
|
-
return false;
|
|
26
|
-
return outputTargets.some(t => !existsSync(t));
|
|
11
|
+
return outputTargets.filter((p) => !existsSync(p));
|
|
27
12
|
}
|
|
28
13
|
//# sourceMappingURL=file-artifact-check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-artifact-check.js","sourceRoot":"","sources":["../../src/bounded-execution/file-artifact-check.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"file-artifact-check.js","sourceRoot":"","sources":["../../src/bounded-execution/file-artifact-check.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,8EAA8E;AAC9E,6EAA6E;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAuB;IACxD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-watchdog.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/progress-watchdog.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"progress-watchdog.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/progress-watchdog.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5B;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,GAAG,MAAM,IAAI,CAwF9E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,sBAAsB,EAC9B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAC9C,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAqCf"}
|
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
// packages/core/src/bounded-execution/progress-watchdog.ts
|
|
2
|
-
import {
|
|
2
|
+
import { spawn } from 'node:child_process';
|
|
3
3
|
import { getRealFilesChanged } from '../lifecycle/real-diff.js';
|
|
4
4
|
import { normalizeScopeEntry, isInScope } from '../lifecycle/scope-match.js';
|
|
5
|
+
async function gitDiffNameOnly(cwd, preSha) {
|
|
6
|
+
return new Promise((resolve) => {
|
|
7
|
+
let out = '';
|
|
8
|
+
let settled = false;
|
|
9
|
+
const done = (v) => { if (!settled) {
|
|
10
|
+
settled = true;
|
|
11
|
+
resolve(v);
|
|
12
|
+
} };
|
|
13
|
+
const child = spawn('git', ['diff', '--name-only', `${preSha}..`], { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
14
|
+
child.stdout.on('data', (b) => { out += b.toString('utf8'); });
|
|
15
|
+
child.on('error', () => done([]));
|
|
16
|
+
child.on('exit', (code) => {
|
|
17
|
+
if (code !== 0) {
|
|
18
|
+
done([]);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
done(out.split('\n').filter(Boolean));
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
5
25
|
/**
|
|
6
26
|
* Starts the progress watchdog. Returns a disposer that MUST be called in a
|
|
7
27
|
* finally{} block. Mirrors startStallWatchdog(): same shape, single function
|
|
@@ -37,6 +57,7 @@ export function startProgressWatchdog(ctx) {
|
|
|
37
57
|
// because git diff is heavier than just checking idle time. Total cost: a
|
|
38
58
|
// few git invocations per task — negligible.
|
|
39
59
|
const pollIntervalMs = Math.min(30_000, Math.max(5_000, Math.floor(ctx.config.thrashWallClockMs / 60)));
|
|
60
|
+
let pollInFlight = false;
|
|
40
61
|
const interval = setInterval(() => {
|
|
41
62
|
if (ctx.state2.fired)
|
|
42
63
|
return;
|
|
@@ -49,32 +70,44 @@ export function startProgressWatchdog(ctx) {
|
|
|
49
70
|
// point grepping git every 30s during the first few minutes of a task).
|
|
50
71
|
if (wallClockMs < ctx.config.thrashSoftWallClockMs)
|
|
51
72
|
return;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
if (pollInFlight)
|
|
74
|
+
return; // skip tick if previous diff still running
|
|
75
|
+
pollInFlight = true;
|
|
76
|
+
void (async () => {
|
|
77
|
+
try {
|
|
78
|
+
const cwd = ctx.state.cwd ?? '';
|
|
79
|
+
const preSha = ctx.state.preTaskHeadSha;
|
|
80
|
+
const files = await gitDiffNameOnly(cwd, preSha);
|
|
81
|
+
const diffEmpty = files.length === 0;
|
|
82
|
+
if (!diffEmpty)
|
|
83
|
+
return; // diff is non-empty; not thrashing
|
|
84
|
+
// Signal 2: soft warn (fires once per task)
|
|
85
|
+
if (!warned && wallClockMs >= ctx.config.thrashSoftWallClockMs) {
|
|
86
|
+
warned = true;
|
|
87
|
+
ctx.emit({ event: 'progress_watchdog_warn', ts: ts(), wallClockMs, ...meta });
|
|
88
|
+
}
|
|
89
|
+
// Signal 1: hard thrash — wall-clock exceeded + diff still empty → abort
|
|
90
|
+
if (wallClockMs >= ctx.config.thrashWallClockMs) {
|
|
91
|
+
ctx.state2.fired = true;
|
|
92
|
+
ctx.state.thrashingDetected = true;
|
|
93
|
+
ctx.state.preStopReason = 'thrashing';
|
|
94
|
+
ctx.controller.abort();
|
|
95
|
+
ctx.emit({
|
|
96
|
+
event: 'progress_watchdog_fired_thrash',
|
|
97
|
+
ts: ts(),
|
|
98
|
+
wallClockMs,
|
|
99
|
+
threshold: 'wallclock',
|
|
100
|
+
...meta,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// non-fatal: continue polling
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
pollInFlight = false;
|
|
109
|
+
}
|
|
110
|
+
})();
|
|
78
111
|
}, pollIntervalMs);
|
|
79
112
|
return () => {
|
|
80
113
|
clearInterval(interval);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-watchdog.js","sourceRoot":"","sources":["../../src/bounded-execution/progress-watchdog.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"progress-watchdog.js","sourceRoot":"","sources":["../../src/bounded-execution/progress-watchdog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-watchdog.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/stall-watchdog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"stall-watchdog.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/stall-watchdog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAsC/D,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE;QAAE,UAAU,EAAE,eAAe,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9E,MAAM,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAqDxE"}
|
|
@@ -15,10 +15,22 @@
|
|
|
15
15
|
* Returns a disposer; the orchestrator MUST call it in a finally{} block
|
|
16
16
|
* so the timer is cleared on the success path too.
|
|
17
17
|
*/
|
|
18
|
+
// RESET_EVENTS: any event that proves a task is making real progress.
|
|
19
|
+
// MUST be names actually emitted by the providers (see codex-cli-session.ts
|
|
20
|
+
// + claude-session.ts). The previous values (runner_turn_*) were aspirational
|
|
21
|
+
// — never wired anywhere — so the watchdog was acting as a dumb deadline
|
|
22
|
+
// timer regardless of stage progress.
|
|
18
23
|
const RESET_EVENTS = new Set([
|
|
19
|
-
|
|
20
|
-
'
|
|
21
|
-
'
|
|
24
|
+
// codex CLI
|
|
25
|
+
'codex_turn_started',
|
|
26
|
+
'codex_turn_completed',
|
|
27
|
+
'codex_agent_message',
|
|
28
|
+
'codex_command_completed',
|
|
29
|
+
// claude SDK
|
|
30
|
+
'claude_turn_started',
|
|
31
|
+
'claude_turn_completed',
|
|
32
|
+
'claude_text_emission',
|
|
33
|
+
'claude_tool_call',
|
|
22
34
|
]);
|
|
23
35
|
export function startStallWatchdog(ctx) {
|
|
24
36
|
ctx.bus?.emit({
|
|
@@ -28,12 +40,20 @@ export function startStallWatchdog(ctx) {
|
|
|
28
40
|
...(ctx.taskIndex !== undefined && { taskIndex: ctx.taskIndex }),
|
|
29
41
|
stallTimeoutMs: ctx.timing.stallTimeoutMs,
|
|
30
42
|
});
|
|
31
|
-
|
|
43
|
+
const busHandler = (event) => {
|
|
32
44
|
const eventName = typeof event.event === 'string' ? event.event : '';
|
|
33
|
-
if (RESET_EVENTS.has(eventName))
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
45
|
+
if (!RESET_EVENTS.has(eventName))
|
|
46
|
+
return;
|
|
47
|
+
// Filter by task identity — the bus is process-wide and shared across all
|
|
48
|
+
// in-flight tasks. Without this filter, every task's progress events reset
|
|
49
|
+
// every other task's idle timer, and the watchdog never fires under load.
|
|
50
|
+
if (ctx.batchId !== undefined && event['batchId'] !== ctx.batchId)
|
|
51
|
+
return;
|
|
52
|
+
if (ctx.taskIndex !== undefined && event['taskIndex'] !== ctx.taskIndex)
|
|
53
|
+
return;
|
|
54
|
+
ctx.stall.lastEventAtMs = Date.now();
|
|
55
|
+
};
|
|
56
|
+
ctx.bus?.on(busHandler);
|
|
37
57
|
// Poll interval: fine enough to fire promptly, coarse enough to avoid
|
|
38
58
|
// burning CPU on idle batches. Clamped to [1s, 5s].
|
|
39
59
|
const pollIntervalMs = Math.min(5_000, Math.max(1_000, Math.floor(ctx.timing.stallTimeoutMs / 60)));
|
|
@@ -60,10 +80,7 @@ export function startStallWatchdog(ctx) {
|
|
|
60
80
|
}, pollIntervalMs);
|
|
61
81
|
return () => {
|
|
62
82
|
clearInterval(interval);
|
|
63
|
-
|
|
64
|
-
// after the orchestrator returns and the listener is no longer
|
|
65
|
-
// reachable in a way that matters. Adding off() is a follow-up if
|
|
66
|
-
// listener accumulation shows up in profiling.
|
|
83
|
+
ctx.bus?.off(busHandler);
|
|
67
84
|
};
|
|
68
85
|
}
|
|
69
86
|
//# sourceMappingURL=stall-watchdog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stall-watchdog.js","sourceRoot":"","sources":["../../src/bounded-execution/stall-watchdog.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAS;IACnC,qBAAqB;IACrB,
|
|
1
|
+
{"version":3,"file":"stall-watchdog.js","sourceRoot":"","sources":["../../src/bounded-execution/stall-watchdog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wall-clock-guard.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/wall-clock-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wall-clock-guard.d.ts","sourceRoot":"","sources":["../../src/bounded-execution/wall-clock-guard.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;IACC,SAAS,EAAE,MAAM;gBAAzC,OAAO,EAAE,MAAM,EAAS,SAAS,EAAE,MAAM;CAItD;AAED,qBAAa,cAAc;IAGb,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,WAAW,CAAS;gBAER,QAAQ,EAAE,MAAM;IAKpC,YAAY,IAAI,IAAI;IASpB,SAAS,IAAI,MAAM;CAGpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wall-clock-guard.js","sourceRoot":"","sources":["../../src/bounded-execution/wall-clock-guard.ts"],"names":[],"mappings":"AAAA,MAAM,UAAW,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"wall-clock-guard.js","sourceRoot":"","sources":["../../src/bounded-execution/wall-clock-guard.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IACC;IAApC,YAAY,OAAe,EAAS,SAAiB;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,cAAS,GAAT,SAAS,CAAQ;QAEnD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,cAAc;IAGL;IAFZ,WAAW,CAAS;IAE5B,YAAoB,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAClC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACvC,CAAC;IAED,YAAY;QACV,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,UAAU,CAClB,+BAA+B,IAAI,CAAC,QAAQ,KAAK,EACjD,kBAAkB,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-model-identity.d.ts","sourceRoot":"","sources":["../../src/config/canonical-model-identity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canonical-model-identity.d.ts","sourceRoot":"","sources":["../../src/config/canonical-model-identity.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAkCD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,CAO3E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAIlF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-model-identity.js","sourceRoot":"","sources":["../../src/config/canonical-model-identity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canonical-model-identity.js","sourceRoot":"","sources":["../../src/config/canonical-model-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +1,9 @@
|
|
|
1
1
|
import type { MultiModelConfig } from '../types.js';
|
|
2
|
-
export type Pricing = {
|
|
3
|
-
inputUSDPerMillion: number;
|
|
4
|
-
outputUSDPerMillion: number;
|
|
5
|
-
cachedReadUSDPerMillion: number;
|
|
6
|
-
cachedNonReadUSDPerMillion: number;
|
|
7
|
-
};
|
|
8
|
-
export type MainAgentModelResolution = {
|
|
9
|
-
kind: 'shipped';
|
|
10
|
-
model: string;
|
|
11
|
-
pricing: Pricing;
|
|
12
|
-
} | {
|
|
13
|
-
kind: 'shipped_overrides_user';
|
|
14
|
-
model: string;
|
|
15
|
-
pricing: Pricing;
|
|
16
|
-
warning: string;
|
|
17
|
-
} | {
|
|
18
|
-
kind: 'user_for_unknown';
|
|
19
|
-
model: string;
|
|
20
|
-
pricing: Pricing;
|
|
21
|
-
} | {
|
|
22
|
-
kind: 'fail';
|
|
23
|
-
reason: string;
|
|
24
|
-
};
|
|
25
2
|
/**
|
|
26
3
|
* Return the names of agents carrying an inline `apiKey` instead of using
|
|
27
4
|
* `apiKeyEnv`. The schema permits both, but plaintext API keys in a config
|
|
28
5
|
* file are a backup/dotfile/git footgun — serve surfaces this once at
|
|
29
|
-
* startup so the operator can react.
|
|
30
|
-
* that has been configured against a non-default backend (`baseUrl` set)
|
|
31
|
-
* and chosen to inline the key.
|
|
6
|
+
* startup so the operator can react.
|
|
32
7
|
*/
|
|
33
8
|
export declare function collectInlineApiKeyOffenders(config: MultiModelConfig): string[];
|
|
34
|
-
/**
|
|
35
|
-
* Resolve pricing for the main agent model.
|
|
36
|
-
*
|
|
37
|
-
* Four cases per spec contract:
|
|
38
|
-
* 1. Known model + no user pricing → shipped pricing.
|
|
39
|
-
* 2. Known model + user pricing → shipped pricing WINS; caller should emit a one-time boot warning.
|
|
40
|
-
* 3. Unknown model + user pricing → user pricing as the delta-calculation baseline.
|
|
41
|
-
* 4. Unknown model + no user pricing → fail-loud at boot.
|
|
42
|
-
*/
|
|
43
|
-
export declare function resolveMainAgentModel(modelId: string, userPricing: Pricing | undefined, shippedPricing: Map<string, Pricing>): MainAgentModelResolution;
|
|
44
|
-
/**
|
|
45
|
-
* Parse a user-supplied pricing object through the pricing schema.
|
|
46
|
-
* Returns the validated Pricing or a ZodError.
|
|
47
|
-
*/
|
|
48
|
-
export declare function validateUserPricing(raw: unknown): Pricing;
|
|
49
9
|
//# sourceMappingURL=config-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-resolver.d.ts","sourceRoot":"","sources":["../../src/config/config-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-resolver.d.ts","sourceRoot":"","sources":["../../src/config/config-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAQ/E"}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
// packages/core/src/config/config-resolver.ts
|
|
2
|
-
// Layered-defaults resolution per architecture.md:58.
|
|
3
|
-
// Extracted from load.ts; file-IO stays there, the resolution helpers
|
|
4
|
-
// (decide-which-source-wins) live here.
|
|
5
|
-
import { pricingSchema } from './schema.js';
|
|
6
1
|
/**
|
|
7
2
|
* Return the names of agents carrying an inline `apiKey` instead of using
|
|
8
3
|
* `apiKeyEnv`. The schema permits both, but plaintext API keys in a config
|
|
9
4
|
* file are a backup/dotfile/git footgun — serve surfaces this once at
|
|
10
|
-
* startup so the operator can react.
|
|
11
|
-
* that has been configured against a non-default backend (`baseUrl` set)
|
|
12
|
-
* and chosen to inline the key.
|
|
5
|
+
* startup so the operator can react.
|
|
13
6
|
*/
|
|
14
7
|
export function collectInlineApiKeyOffenders(config) {
|
|
15
8
|
const offenders = [];
|
|
@@ -20,39 +13,4 @@ export function collectInlineApiKeyOffenders(config) {
|
|
|
20
13
|
}
|
|
21
14
|
return offenders;
|
|
22
15
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Resolve pricing for the main agent model.
|
|
25
|
-
*
|
|
26
|
-
* Four cases per spec contract:
|
|
27
|
-
* 1. Known model + no user pricing → shipped pricing.
|
|
28
|
-
* 2. Known model + user pricing → shipped pricing WINS; caller should emit a one-time boot warning.
|
|
29
|
-
* 3. Unknown model + user pricing → user pricing as the delta-calculation baseline.
|
|
30
|
-
* 4. Unknown model + no user pricing → fail-loud at boot.
|
|
31
|
-
*/
|
|
32
|
-
export function resolveMainAgentModel(modelId, userPricing, shippedPricing) {
|
|
33
|
-
const known = shippedPricing.get(modelId);
|
|
34
|
-
if (known && !userPricing)
|
|
35
|
-
return { kind: 'shipped', model: modelId, pricing: known };
|
|
36
|
-
if (known && userPricing) {
|
|
37
|
-
return {
|
|
38
|
-
kind: 'shipped_overrides_user',
|
|
39
|
-
model: modelId,
|
|
40
|
-
pricing: known,
|
|
41
|
-
warning: `user supplied pricing for known model '${modelId}'; ignoring user value in favor of shipped pricing`,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
if (!known && userPricing)
|
|
45
|
-
return { kind: 'user_for_unknown', model: modelId, pricing: userPricing };
|
|
46
|
-
return {
|
|
47
|
-
kind: 'fail',
|
|
48
|
-
reason: `mainAgentModel '${modelId}' is unknown to shipped pricing; supply 'mainAgentPricing' in config or use a shipped model id.`,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Parse a user-supplied pricing object through the pricing schema.
|
|
53
|
-
* Returns the validated Pricing or a ZodError.
|
|
54
|
-
*/
|
|
55
|
-
export function validateUserPricing(raw) {
|
|
56
|
-
return pricingSchema.parse(raw);
|
|
57
|
-
}
|
|
58
16
|
//# sourceMappingURL=config-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../src/config/config-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../src/config/config-resolver.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAwB;IACnE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,IAAI,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/config/load.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { MultiModelConfig } from '../types.js';
|
|
2
|
-
export { collectInlineApiKeyOffenders, resolveMainAgentModel, validateUserPricing, } from './config-resolver.js';
|
|
3
|
-
export type { Pricing, MainAgentModelResolution } from './config-resolver.js';
|
|
4
2
|
/**
|
|
5
3
|
* Load the auth token for the HTTP server.
|
|
6
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAUpD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAkBjE;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBhF"}
|
package/dist/config/load.js
CHANGED
|
@@ -2,10 +2,6 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import os from 'os';
|
|
4
4
|
import { multiModelConfigSchema } from './schema.js';
|
|
5
|
-
// Re-export resolution helpers + types so existing callers that import them
|
|
6
|
-
// from './load.js' keep working. The canonical home is './config-resolver.js'
|
|
7
|
-
// per architecture.md:58.
|
|
8
|
-
export { collectInlineApiKeyOffenders, resolveMainAgentModel, validateUserPricing, } from './config-resolver.js';
|
|
9
5
|
const TOKEN_REGEX = /^[A-Za-z0-9_\-+=/.]+$/;
|
|
10
6
|
function expandTilde(p) {
|
|
11
7
|
if (p.startsWith('~/'))
|
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,IAA2B;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oEAAoE,YAAY,GAAG,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+DAA+D,YAAY,GAAG,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2FAA2F,YAAY,GAAG,CAAC,CAAC;IAC9H,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-profile-registry.d.ts","sourceRoot":"","sources":["../../src/config/model-profile-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA+J5D,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4B7D;AAsBD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCjB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"model-profile-registry.d.ts","sourceRoot":"","sources":["../../src/config/model-profile-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA+J5D,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4B7D;AAsBD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCjB,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAsK9D;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAI1C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAM9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAErE"}
|
|
@@ -391,6 +391,14 @@ const PROFILE_ENTRIES = (() => {
|
|
|
391
391
|
// Return sorted by prefix length descending (longest prefix wins on lookup)
|
|
392
392
|
return [...resolved.values()].sort((a, b) => b.prefix.length - a.prefix.length);
|
|
393
393
|
})();
|
|
394
|
+
// Precompute lowercase prefixes once at module load. findModelProfile is in the
|
|
395
|
+
// hot path for telemetry normalization and cost compute; lowercasing each
|
|
396
|
+
// prefix per call would re-allocate N strings per lookup.
|
|
397
|
+
const PROFILE_LOOKUP = Object.freeze(PROFILE_ENTRIES.map(e => Object.freeze({
|
|
398
|
+
entry: Object.freeze(e),
|
|
399
|
+
prefixLc: e.prefix.toLowerCase(),
|
|
400
|
+
})));
|
|
401
|
+
const FROZEN_DEFAULT_PROFILE = Object.freeze({ ...DEFAULT_PROFILE });
|
|
394
402
|
/**
|
|
395
403
|
* Used for model COST/PROFILE lookup only — NOT a telemetry allowlist.
|
|
396
404
|
* Adding/removing entries here does NOT affect what telemetry accepts.
|
|
@@ -401,14 +409,12 @@ export const ALL_MODEL_IDS = Object.freeze(PROFILE_ENTRIES
|
|
|
401
409
|
.map(p => p.prefix)
|
|
402
410
|
.filter((id) => typeof id === 'string' && id.length > 0));
|
|
403
411
|
export function findModelProfile(modelId) {
|
|
404
|
-
const
|
|
405
|
-
const
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
return { ...entry };
|
|
409
|
-
}
|
|
412
|
+
const normalized = extractCanonicalModelName(modelId).toLowerCase();
|
|
413
|
+
for (const { entry, prefixLc } of PROFILE_LOOKUP) {
|
|
414
|
+
if (normalized.startsWith(prefixLc))
|
|
415
|
+
return entry;
|
|
410
416
|
}
|
|
411
|
-
return
|
|
417
|
+
return FROZEN_DEFAULT_PROFILE;
|
|
412
418
|
}
|
|
413
419
|
export function getEffectiveCostTier(config) {
|
|
414
420
|
return config.costTier ?? findModelProfile(config.model).defaultCost;
|