@zhixuan92/multi-model-agent-core 4.6.0 → 4.7.1
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 -8
- package/dist/bounded-execution/activity-tracker.d.ts +1 -0
- package/dist/bounded-execution/activity-tracker.d.ts.map +1 -1
- package/dist/bounded-execution/activity-tracker.js +5 -0
- package/dist/bounded-execution/activity-tracker.js.map +1 -1
- 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-events-subscriber.d.ts +41 -0
- package/dist/bounded-execution/progress-events-subscriber.d.ts.map +1 -0
- package/dist/bounded-execution/progress-events-subscriber.js +53 -0
- package/dist/bounded-execution/progress-events-subscriber.js.map +1 -0
- 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.js +1 -2
- 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 +0 -26
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/observability-events.js +1 -11
- package/dist/events/observability-events.js.map +1 -1
- package/dist/events/telemetry-types.d.ts +0 -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/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- 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/handlers/{annotator.d.ts → annotate-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{annotator.js → annotate-stage.js} +1 -1
- package/dist/lifecycle/handlers/annotate-stage.js.map +1 -0
- package/dist/lifecycle/handlers/{task-executor.d.ts → implement-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/implement-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{task-executor.js → implement-stage.js} +31 -2
- package/dist/lifecycle/handlers/implement-stage.js.map +1 -0
- package/dist/lifecycle/handlers/{review-handler.d.ts → review-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/review-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{review-handler.js → review-stage.js} +1 -1
- package/dist/lifecycle/handlers/review-stage.js.map +1 -0
- package/dist/lifecycle/handlers/{rework-handler.d.ts → rework-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/rework-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{rework-handler.js → rework-stage.js} +1 -1
- package/dist/lifecycle/handlers/rework-stage.js.map +1 -0
- package/dist/lifecycle/lifecycle-context.d.ts +10 -4
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.js +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
- package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-driver.js +77 -2
- package/dist/lifecycle/lifecycle-driver.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.map +1 -1
- package/dist/lifecycle/perform-implementation.js +62 -26
- package/dist/lifecycle/perform-implementation.js.map +1 -1
- 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/stage-io.d.ts +3 -2
- package/dist/lifecycle/stage-io.d.ts.map +1 -1
- package/dist/lifecycle/stage-io.js.map +1 -1
- package/dist/lifecycle/stage-plan-builder.js +4 -4
- package/dist/lifecycle/stage-plan-builder.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +1 -4
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
- package/dist/lifecycle/task-completion-summary.js +0 -1
- package/dist/lifecycle/task-completion-summary.js.map +1 -1
- package/dist/lifecycle/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/task-executor.js +2 -1
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/task-runner.d.ts +5 -1
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +102 -46
- package/dist/lifecycle/task-runner.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.js +0 -2
- 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 +38 -1
- package/dist/providers/claude-session.js.map +1 -1
- package/dist/providers/codex-cli-session.d.ts +16 -1
- package/dist/providers/codex-cli-session.d.ts.map +1 -1
- package/dist/providers/codex-cli-session.js +75 -6
- package/dist/providers/codex-cli-session.js.map +1 -1
- package/dist/providers/normalize-claude.js +1 -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.map +1 -1
- package/dist/providers/run-annotator-turn.js +2 -1
- package/dist/providers/run-annotator-turn.js.map +1 -1
- package/dist/providers/run-worker-turn.d.ts +1 -1
- package/dist/providers/run-worker-turn.d.ts.map +1 -1
- package/dist/providers/run-worker-turn.js +0 -1
- package/dist/providers/run-worker-turn.js.map +1 -1
- package/dist/providers/runner-types.d.ts +5 -6
- 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-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/run-reviewer.d.ts.map +1 -1
- package/dist/review/run-reviewer.js +4 -3
- package/dist/review/run-reviewer.js.map +1 -1
- package/dist/stores/batch-registry.d.ts +15 -1
- package/dist/stores/batch-registry.d.ts.map +1 -1
- package/dist/stores/batch-registry.js +27 -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 +0 -1
- 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 +0 -2
- 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 +0 -1
- 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 +0 -1
- 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 +14 -1
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/task-spec.d.ts +1 -1
- package/dist/types/task-spec.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 -201
- 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 -47
- 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.map +0 -1
- package/dist/lifecycle/handlers/review-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/review-handler.js.map +0 -1
- 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.map +0 -1
- package/dist/lifecycle/handlers/task-executor.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/{escalation → providers}/agent-resolver.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch-retention-sweeper.js","sourceRoot":"","sources":["../../src/cleanup/batch-retention-sweeper.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IACZ;IAApB,YAAoB,QAAuB;QAAvB,aAAQ,GAAR,QAAQ,CAAe;IAAG,CAAC;IAE/C,IAAI;QACF,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ContextBlockStore } from '../stores/context-block-tool.js';
|
|
2
|
-
export declare class ContextBlockGCSweeper {
|
|
3
|
-
private store;
|
|
4
|
-
private idleTtlMs;
|
|
5
|
-
constructor(store: ContextBlockStore, idleTtlMs: number);
|
|
6
|
-
tick(): number;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=context-block-gc-sweeper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-block-gc-sweeper.d.ts","sourceRoot":"","sources":["../../src/cleanup/context-block-gc-sweeper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;gBADT,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM;IAG3B,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export class ContextBlockGCSweeper {
|
|
2
|
-
store;
|
|
3
|
-
idleTtlMs;
|
|
4
|
-
constructor(store, idleTtlMs) {
|
|
5
|
-
this.store = store;
|
|
6
|
-
this.idleTtlMs = idleTtlMs;
|
|
7
|
-
}
|
|
8
|
-
tick() {
|
|
9
|
-
return this.store.runIdleSweep(Date.now(), this.idleTtlMs);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=context-block-gc-sweeper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context-block-gc-sweeper.js","sourceRoot":"","sources":["../../src/cleanup/context-block-gc-sweeper.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IAEtB;IACA;IAFV,YACU,KAAwB,EACxB,SAAiB;QADjB,UAAK,GAAL,KAAK,CAAmB;QACxB,cAAS,GAAT,SAAS,CAAQ;IACxB,CAAC;IAEJ,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACF"}
|
package/dist/cleanup/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cleanup/index.ts"],"names":[],"mappings":"AAEA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC"}
|
package/dist/cleanup/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// cleanup/index.ts — public surface barrel; per architecture.md:262-275.
|
|
2
|
-
export * from './batch-retention-sweeper.js';
|
|
3
|
-
export * from './project-idle-cleanup.js';
|
|
4
|
-
export * from './context-block-gc-sweeper.js';
|
|
5
|
-
export * from './shutdown-coordinator.js';
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cleanup/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { ProjectContext } from '../stores/project-context-registry.js';
|
|
2
|
-
export declare class ProjectIdleCleanup {
|
|
3
|
-
private projects;
|
|
4
|
-
constructor(projects: Map<string, ProjectContext>);
|
|
5
|
-
tick(idleThresholdMs: number): void;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=project-idle-cleanup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-idle-cleanup.d.ts","sourceRoot":"","sources":["../../src/cleanup/project-idle-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAE5E,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAEzD,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;CAQpC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export class ProjectIdleCleanup {
|
|
2
|
-
projects;
|
|
3
|
-
constructor(projects) {
|
|
4
|
-
this.projects = projects;
|
|
5
|
-
}
|
|
6
|
-
tick(idleThresholdMs) {
|
|
7
|
-
const now = Date.now();
|
|
8
|
-
for (const [cwd, ctx] of this.projects) {
|
|
9
|
-
if (now - ctx.lastActivityAt > idleThresholdMs) {
|
|
10
|
-
this.projects.delete(cwd);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=project-idle-cleanup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-idle-cleanup.js","sourceRoot":"","sources":["../../src/cleanup/project-idle-cleanup.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IACT;IAApB,YAAoB,QAAqC;QAArC,aAAQ,GAAR,QAAQ,CAA6B;IAAG,CAAC;IAE7D,IAAI,CAAC,eAAuB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,GAAG,GAAG,GAAG,CAAC,cAAc,GAAG,eAAe,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-coordinator.d.ts","sourceRoot":"","sources":["../../src/cleanup/shutdown-coordinator.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAE3B,MAAM,IAAI,IAAI;IAId,oBAAoB,IAAI,OAAO;IAIzB,KAAK,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxD"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export class ShutdownCoordinator {
|
|
2
|
-
inProgress = false;
|
|
3
|
-
signal() {
|
|
4
|
-
this.inProgress = true;
|
|
5
|
-
}
|
|
6
|
-
isShutdownInProgress() {
|
|
7
|
-
return this.inProgress;
|
|
8
|
-
}
|
|
9
|
-
async drain(action) {
|
|
10
|
-
await action();
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=shutdown-coordinator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shutdown-coordinator.js","sourceRoot":"","sources":["../../src/cleanup/shutdown-coordinator.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAmB;IACtB,UAAU,GAAG,KAAK,CAAC;IAE3B,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAA2B;QACrC,MAAM,MAAM,EAAE,CAAC;IACjB,CAAC;CACF"}
|
package/dist/config/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './config-resolver.js';
|
|
2
|
-
export * from './model-profile-registry.js';
|
|
3
|
-
export * from './canonical-model-identity.js';
|
|
4
|
-
export * from './tier-policy-registry.js';
|
|
5
|
-
export * from './pricing-table.js';
|
|
6
|
-
export * from './load.js';
|
|
7
|
-
export * from './schema.js';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
package/dist/config/index.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// config/index.ts — public surface barrel; per architecture.md:262-275.
|
|
2
|
-
export * from './config-resolver.js';
|
|
3
|
-
export * from './model-profile-registry.js';
|
|
4
|
-
export * from './canonical-model-identity.js';
|
|
5
|
-
export * from './tier-policy-registry.js';
|
|
6
|
-
export * from './pricing-table.js';
|
|
7
|
-
export * from './load.js';
|
|
8
|
-
export * from './schema.js';
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const modelPricingSchema: z.ZodObject<{
|
|
3
|
-
inputCostPerMTok: z.ZodOptional<z.ZodNumber>;
|
|
4
|
-
outputCostPerMTok: z.ZodOptional<z.ZodNumber>;
|
|
5
|
-
cachedReadCostPerMTok: z.ZodOptional<z.ZodNumber>;
|
|
6
|
-
cachedNonReadCostPerMTok: z.ZodOptional<z.ZodNumber>;
|
|
7
|
-
reasoningCostPerMTok: z.ZodOptional<z.ZodNumber>;
|
|
8
|
-
rateSource: z.ZodOptional<z.ZodString>;
|
|
9
|
-
rateLookupDate: z.ZodOptional<z.ZodString>;
|
|
10
|
-
}, z.core.$strip>;
|
|
11
|
-
export type ModelPricing = z.infer<typeof modelPricingSchema>;
|
|
12
|
-
/** Look up per-model pricing. Returns the pricing fields from the matching
|
|
13
|
-
* ModelProfile, or undefined when the model id matches no profile or the
|
|
14
|
-
* matched profile lacks pricing data. */
|
|
15
|
-
export declare function priceFor(modelId: string): ModelPricing | undefined;
|
|
16
|
-
//# sourceMappingURL=pricing-table.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pricing-table.d.ts","sourceRoot":"","sources":["../../src/config/pricing-table.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;iBAQ7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;0CAE0C;AAC1C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAqBlE"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// packages/core/src/config/pricing-table.ts
|
|
2
|
-
// Per-model pricing schema + lookup helpers per architecture.md:62.
|
|
3
|
-
//
|
|
4
|
-
// Pricing data is embedded in ModelProfile entries (model-profiles.json).
|
|
5
|
-
// This module exposes:
|
|
6
|
-
// - the Zod sub-schema for the pricing fields, composed by modelProfileSchema
|
|
7
|
-
// - ModelPricing type
|
|
8
|
-
// - priceFor(modelId) lookup that returns the pricing fields for a given
|
|
9
|
-
// model, or undefined if the model is unknown
|
|
10
|
-
//
|
|
11
|
-
// `load.ts` carries a separate `Pricing` shape (`inputUSDPerMillion` etc.)
|
|
12
|
-
// used by the main-agent pricing resolution path. The two shapes are
|
|
13
|
-
// distinct: model-profile pricing is per-million-tokens (`*PerMTok`),
|
|
14
|
-
// the main-agent shape uses `*USDPerMillion`. Both record the same
|
|
15
|
-
// economic fact at different granularities.
|
|
16
|
-
import { z } from 'zod';
|
|
17
|
-
import { findModelProfile } from './model-profile-registry.js';
|
|
18
|
-
export const modelPricingSchema = z.object({
|
|
19
|
-
inputCostPerMTok: z.number().finite().nonnegative().optional(),
|
|
20
|
-
outputCostPerMTok: z.number().finite().nonnegative().optional(),
|
|
21
|
-
cachedReadCostPerMTok: z.number().finite().nonnegative().optional(),
|
|
22
|
-
cachedNonReadCostPerMTok: z.number().finite().nonnegative().optional(),
|
|
23
|
-
reasoningCostPerMTok: z.number().finite().nonnegative().optional(),
|
|
24
|
-
rateSource: z.string().min(1).optional(),
|
|
25
|
-
rateLookupDate: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
|
|
26
|
-
});
|
|
27
|
-
/** Look up per-model pricing. Returns the pricing fields from the matching
|
|
28
|
-
* ModelProfile, or undefined when the model id matches no profile or the
|
|
29
|
-
* matched profile lacks pricing data. */
|
|
30
|
-
export function priceFor(modelId) {
|
|
31
|
-
const profile = findModelProfile(modelId);
|
|
32
|
-
const pricing = {
|
|
33
|
-
inputCostPerMTok: profile.inputCostPerMTok,
|
|
34
|
-
outputCostPerMTok: profile.outputCostPerMTok,
|
|
35
|
-
cachedReadCostPerMTok: profile.cachedReadCostPerMTok,
|
|
36
|
-
cachedNonReadCostPerMTok: profile.cachedNonReadCostPerMTok,
|
|
37
|
-
reasoningCostPerMTok: profile.reasoningCostPerMTok,
|
|
38
|
-
rateSource: profile.rateSource,
|
|
39
|
-
rateLookupDate: profile.rateLookupDate,
|
|
40
|
-
};
|
|
41
|
-
// Only return pricing when at least one rate field is set; otherwise the
|
|
42
|
-
// profile carries no rate-card information and the caller should treat
|
|
43
|
-
// the model as unpriced.
|
|
44
|
-
const hasAnyRate = pricing.inputCostPerMTok !== undefined ||
|
|
45
|
-
pricing.outputCostPerMTok !== undefined ||
|
|
46
|
-
pricing.cachedReadCostPerMTok !== undefined ||
|
|
47
|
-
pricing.cachedNonReadCostPerMTok !== undefined ||
|
|
48
|
-
pricing.reasoningCostPerMTok !== undefined;
|
|
49
|
-
return hasAnyRate ? pricing : undefined;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=pricing-table.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pricing-table.js","sourceRoot":"","sources":["../../src/config/pricing-table.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,oEAAoE;AACpE,EAAE;AACF,0EAA0E;AAC1E,uBAAuB;AACvB,gFAAgF;AAChF,wBAAwB;AACxB,2EAA2E;AAC3E,kDAAkD;AAClD,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,sEAAsE;AACtE,mEAAmE;AACnE,4CAA4C;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAqB,MAAM,6BAA6B,CAAC;AAElF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,gBAAgB,EAAW,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,iBAAiB,EAAU,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,qBAAqB,EAAM,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,wBAAwB,EAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,oBAAoB,EAAO,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACvE,UAAU,EAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvD,cAAc,EAAa,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAC9E,CAAC,CAAC;AAIH;;0CAE0C;AAC1C,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,OAAO,GAAiB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAiB;QAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IACF,yEAAyE;IACzE,uEAAuE;IACvE,yBAAyB;IACzB,MAAM,UAAU,GACd,OAAO,CAAC,gBAAgB,KAAK,SAAS;QACtC,OAAO,CAAC,iBAAiB,KAAK,SAAS;QACvC,OAAO,CAAC,qBAAqB,KAAK,SAAS;QAC3C,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAC9C,OAAO,CAAC,oBAAoB,KAAK,SAAS,CAAC;IAC7C,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolver.d.ts","sourceRoot":"","sources":["../../src/escalation/agent-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGzE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,GACvB,aAAa,CAaf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/escalation/agent-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAOlE,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,MAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,uBAAuB,CAAC,CAAC;IACpF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5C,CAAC;AACJ,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { TaskSpec, RuntimeRunResult, Provider, AgentType } from '../types.js';
|
|
2
|
-
import type { InternalRunnerEvent } from '../providers/runner-types.js';
|
|
3
|
-
import type { EventEmitter } from '../events/event-emitter.js';
|
|
4
|
-
export interface DelegateOptions {
|
|
5
|
-
explicitlyPinned?: boolean;
|
|
6
|
-
onProgress?: (event: InternalRunnerEvent) => void;
|
|
7
|
-
/**
|
|
8
|
-
* Absolute Date.now() deadline for the entire task — across retries AND
|
|
9
|
-
* tier fallbacks. Each provider.run gets at most `deadline - Date.now()`
|
|
10
|
-
* as its per-call timeout. When the deadline is hit between calls, the
|
|
11
|
-
* loop breaks and returns the best salvage so far.
|
|
12
|
-
*/
|
|
13
|
-
taskDeadlineMs?: number;
|
|
14
|
-
/**
|
|
15
|
-
* External abort signal — when fired (e.g. by the orchestrator's stall
|
|
16
|
-
* watchdog when nothing has progressed for `defaults.stallTimeoutMs`),
|
|
17
|
-
* the in-flight provider.run force-salvages and returns; the retry/
|
|
18
|
-
* fallback loops short-circuit so the user gets *something* back.
|
|
19
|
-
*/
|
|
20
|
-
abortSignal?: AbortSignal;
|
|
21
|
-
/**
|
|
22
|
-
* Tier the caller is invoking this delegate for. Forwarded onto the
|
|
23
|
-
* per-attempt `worker_start` runner event so observability can attribute
|
|
24
|
-
* each provider attempt to its assigned tier.
|
|
25
|
-
*/
|
|
26
|
-
assignedTier?: AgentType;
|
|
27
|
-
/**
|
|
28
|
-
* Bus for runner-shell and adapter events (`runner_turn_started`,
|
|
29
|
-
* `runner_response_received`, `runner_turn_completed`). When set, the
|
|
30
|
-
* server's VerboseLogChannel + LocalLogSink + TelemetrySink consume them.
|
|
31
|
-
* Forwarded into provider.run as `RunOptions.bus`.
|
|
32
|
-
*/
|
|
33
|
-
bus?: EventEmitter;
|
|
34
|
-
/**
|
|
35
|
-
* Batch identifier propagated onto runner events so verbose stderr lines
|
|
36
|
-
* carry the same `batch=...` field as the HTTP-handler breadcrumbs.
|
|
37
|
-
*/
|
|
38
|
-
batchId?: string;
|
|
39
|
-
/**
|
|
40
|
-
* Identifies which task within the batch is running. Threaded through to
|
|
41
|
-
* runner events so per-task progress can be tracked separately when a
|
|
42
|
-
* batch has multiple parallel tasks.
|
|
43
|
-
*/
|
|
44
|
-
taskIndex?: number;
|
|
45
|
-
/**
|
|
46
|
-
* Lifecycle stage label forwarded to RunInput.stageLabel so the running-
|
|
47
|
-
* headline polling response shows the current stage (e.g. 'Implementing').
|
|
48
|
-
*/
|
|
49
|
-
stageLabel?: string;
|
|
50
|
-
}
|
|
51
|
-
export declare function delegateWithEscalation(task: TaskSpec, chain: Provider[], options?: DelegateOptions): Promise<RuntimeRunResult>;
|
|
52
|
-
//# sourceMappingURL=delegate-with-escalation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegate-with-escalation.d.ts","sourceRoot":"","sources":["../../src/escalation/delegate-with-escalation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAEV,mBAAmB,EAGpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAe/D,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiBD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAmL3B"}
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
// NOTE: Despite the name "delegateWithEscalation", this function does NOT
|
|
2
|
-
// perform status-level tier escalation. Escalation policy lives in
|
|
3
|
-
// escalation/policy.ts and is invoked via runWithFallback by the
|
|
4
|
-
// lifecycle review-chain handlers. This function only handles transient
|
|
5
|
-
// retries (api_error / network_error).
|
|
6
|
-
import { retryableFor } from '../error-codes.js';
|
|
7
|
-
import { extractToolName } from '../providers/stall-detector.js';
|
|
8
|
-
import { assembleRunResult } from '../providers/assemble-run-result.js';
|
|
9
|
-
import { HUMAN_LABEL } from '../lifecycle/stage-labels.js';
|
|
10
|
-
function deriveCause(status, errorCode) {
|
|
11
|
-
if (errorCode === 'degenerate_exhausted')
|
|
12
|
-
return 'degenerate_exhausted';
|
|
13
|
-
if (status === 'ok')
|
|
14
|
-
return 'finished';
|
|
15
|
-
if (status === 'incomplete')
|
|
16
|
-
return 'incomplete';
|
|
17
|
-
if (status === 'unavailable')
|
|
18
|
-
return 'error';
|
|
19
|
-
return status;
|
|
20
|
-
}
|
|
21
|
-
const TRANSIENT_STATUSES = new Set(['api_error', 'provider_transport_failure']);
|
|
22
|
-
const TIMEOUT_STATUS = 'timeout';
|
|
23
|
-
const MAX_RETRIES = 2;
|
|
24
|
-
const BASE_DELAY_MS = 1000;
|
|
25
|
-
function sleep(ms) {
|
|
26
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
27
|
-
}
|
|
28
|
-
function maxRetriesForStatus(status) {
|
|
29
|
-
if (TRANSIENT_STATUSES.has(status))
|
|
30
|
-
return MAX_RETRIES;
|
|
31
|
-
if (status === TIMEOUT_STATUS)
|
|
32
|
-
return 1;
|
|
33
|
-
return 0;
|
|
34
|
-
}
|
|
35
|
-
export async function delegateWithEscalation(task, chain, options = {}) {
|
|
36
|
-
if (chain.length === 0) {
|
|
37
|
-
throw new Error('delegateWithEscalation called with empty chain');
|
|
38
|
-
}
|
|
39
|
-
const safeSink = options.onProgress
|
|
40
|
-
? (event) => {
|
|
41
|
-
try {
|
|
42
|
-
options.onProgress(event);
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
: undefined;
|
|
48
|
-
const attempts = [];
|
|
49
|
-
for (let i = 0; i < chain.length; i++) {
|
|
50
|
-
const provider = chain[i];
|
|
51
|
-
if (i > 0 && safeSink) {
|
|
52
|
-
const prev = attempts[attempts.length - 1].record;
|
|
53
|
-
safeSink({
|
|
54
|
-
kind: 'escalation_start',
|
|
55
|
-
previousProvider: prev.provider,
|
|
56
|
-
previousReason: prev.reason ?? `status=${prev.status}`,
|
|
57
|
-
nextProvider: provider.name,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
const initialPromptLengthChars = 0;
|
|
61
|
-
const initialPromptHash = '';
|
|
62
|
-
let result;
|
|
63
|
-
let cumulativeCostUSD = 0;
|
|
64
|
-
for (let attempt = 0;; attempt++) {
|
|
65
|
-
// Cap per-call timeout at the remaining task-level budget.
|
|
66
|
-
let effectiveTimeoutMs = task.timeoutMs;
|
|
67
|
-
if (options.taskDeadlineMs !== undefined) {
|
|
68
|
-
const remaining = options.taskDeadlineMs - Date.now();
|
|
69
|
-
const remainingClamped = remaining > 0 ? remaining : 1;
|
|
70
|
-
effectiveTimeoutMs =
|
|
71
|
-
effectiveTimeoutMs !== undefined
|
|
72
|
-
? Math.min(effectiveTimeoutMs, remainingClamped)
|
|
73
|
-
: remainingClamped;
|
|
74
|
-
}
|
|
75
|
-
// v4.4: ProviderConfig.type is one of: 'claude' | 'codex'.
|
|
76
|
-
const cfg = provider.config;
|
|
77
|
-
const cfgType = cfg.type ?? 'codex';
|
|
78
|
-
const providerTypeName = cfgType === 'claude' ? 'claude' : 'codex';
|
|
79
|
-
safeSink?.({
|
|
80
|
-
kind: 'worker_start',
|
|
81
|
-
model: cfg.model ?? 'unknown',
|
|
82
|
-
providerType: providerTypeName,
|
|
83
|
-
tier: options.assignedTier ?? 'standard',
|
|
84
|
-
});
|
|
85
|
-
const cwd = task.cwd ?? process.cwd();
|
|
86
|
-
const wallClockDeadline = options.taskDeadlineMs ?? (Date.now() + (effectiveTimeoutMs ?? 60 * 60 * 1000));
|
|
87
|
-
const idleStallTimeoutMs = 20 * 60 * 1000;
|
|
88
|
-
const abortCtrl = new AbortController();
|
|
89
|
-
if (options.abortSignal) {
|
|
90
|
-
if (options.abortSignal.aborted)
|
|
91
|
-
abortCtrl.abort();
|
|
92
|
-
else
|
|
93
|
-
options.abortSignal.addEventListener('abort', () => abortCtrl.abort(), { once: true });
|
|
94
|
-
}
|
|
95
|
-
const session = provider.openSession({
|
|
96
|
-
cwd,
|
|
97
|
-
wallClockDeadline,
|
|
98
|
-
idleStallTimeoutMs,
|
|
99
|
-
abortSignal: abortCtrl.signal,
|
|
100
|
-
...(options.bus && { bus: options.bus }),
|
|
101
|
-
});
|
|
102
|
-
try {
|
|
103
|
-
const turn = await session.send(task.prompt, {
|
|
104
|
-
stageLabel: options.stageLabel ?? HUMAN_LABEL.implementing,
|
|
105
|
-
});
|
|
106
|
-
result = assembleRunResult(turn);
|
|
107
|
-
}
|
|
108
|
-
finally {
|
|
109
|
-
try {
|
|
110
|
-
await session.close();
|
|
111
|
-
}
|
|
112
|
-
catch { /* idempotent */ }
|
|
113
|
-
}
|
|
114
|
-
const maxRetries = maxRetriesForStatus(result.status);
|
|
115
|
-
if (result.status === 'ok' || maxRetries === 0 || attempt >= maxRetries)
|
|
116
|
-
break;
|
|
117
|
-
const attemptCost = result.cost?.costUSD ?? result.actualCostUSD ?? 0;
|
|
118
|
-
cumulativeCostUSD += attemptCost;
|
|
119
|
-
if (task.maxCostUSD !== undefined && cumulativeCostUSD >= task.maxCostUSD)
|
|
120
|
-
break;
|
|
121
|
-
if (options.taskDeadlineMs !== undefined && Date.now() >= options.taskDeadlineMs)
|
|
122
|
-
break;
|
|
123
|
-
if (options.abortSignal?.aborted)
|
|
124
|
-
break;
|
|
125
|
-
const delayMs = BASE_DELAY_MS * Math.pow(2, attempt);
|
|
126
|
-
safeSink?.({ kind: 'retry', attempt: attempt + 1, previousStatus: result.status, delayMs });
|
|
127
|
-
await sleep(delayMs);
|
|
128
|
-
}
|
|
129
|
-
const record = {
|
|
130
|
-
provider: provider.name,
|
|
131
|
-
status: result.status,
|
|
132
|
-
turns: result.turns,
|
|
133
|
-
inputTokens: result.usage.inputTokens,
|
|
134
|
-
outputTokens: result.usage.outputTokens,
|
|
135
|
-
costUSD: result.cost?.costUSD ?? null,
|
|
136
|
-
initialPromptLengthChars,
|
|
137
|
-
initialPromptHash,
|
|
138
|
-
reason: result.status === 'ok'
|
|
139
|
-
? undefined
|
|
140
|
-
: (result.error || `status=${result.status}`),
|
|
141
|
-
};
|
|
142
|
-
attempts.push({ result, record });
|
|
143
|
-
if (result.status === 'ok') {
|
|
144
|
-
const terminationReason = {
|
|
145
|
-
cause: 'finished',
|
|
146
|
-
turnsUsed: result.turns,
|
|
147
|
-
hasFileArtifacts: result.filesWritten.length > 0,
|
|
148
|
-
usedShell: result.toolCalls.some(tc => extractToolName(tc) === 'runShell'),
|
|
149
|
-
workerSelfAssessment: result.workerStatus ?? null,
|
|
150
|
-
wasPromoted: false,
|
|
151
|
-
};
|
|
152
|
-
return { ...result, terminationReason, escalationLog: attempts.map((a) => a.record) };
|
|
153
|
-
}
|
|
154
|
-
// Skip the next provider in the fallback chain if the task-level
|
|
155
|
-
// deadline has been hit or the stall watchdog aborted.
|
|
156
|
-
if (options.taskDeadlineMs !== undefined && Date.now() >= options.taskDeadlineMs) {
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
if (options.abortSignal?.aborted) {
|
|
160
|
-
break;
|
|
161
|
-
}
|
|
162
|
-
if (options.explicitlyPinned) {
|
|
163
|
-
return {
|
|
164
|
-
...result,
|
|
165
|
-
errorCode: result.errorCode ?? result.status,
|
|
166
|
-
retryable: result.retryable ?? retryableFor(result.status),
|
|
167
|
-
escalationLog: attempts.map((a) => a.record),
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
const realContentAttempts = attempts.filter((a) => !a.result.outputIsDiagnostic);
|
|
172
|
-
const pool = realContentAttempts.length > 0 ? realContentAttempts : attempts;
|
|
173
|
-
let best = pool[0].result;
|
|
174
|
-
for (const a of pool) {
|
|
175
|
-
if (a.result.output.length > best.output.length) {
|
|
176
|
-
best = a.result;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
// v5: escalation no longer gates on workerSelfAssessment. Annotate is the
|
|
180
|
-
// single point of truth for `completed` (spec §5.7 + §9 M1/M3 fixes).
|
|
181
|
-
// Escalation only records attempts and selects the best one; status flows
|
|
182
|
-
// through unchanged to annotate which makes the final verdict.
|
|
183
|
-
const finalStatus = best.status === 'ok' ? 'incomplete' : best.status;
|
|
184
|
-
const terminationReason = {
|
|
185
|
-
cause: deriveCause(finalStatus, best.errorCode),
|
|
186
|
-
turnsUsed: best.turns,
|
|
187
|
-
hasFileArtifacts: best.filesWritten.length > 0,
|
|
188
|
-
usedShell: best.toolCalls.some(tc => extractToolName(tc) === 'runShell'),
|
|
189
|
-
workerSelfAssessment: best.workerStatus ?? null, // truthful read; NOT stamped (M3 fix)
|
|
190
|
-
wasPromoted: false,
|
|
191
|
-
};
|
|
192
|
-
return {
|
|
193
|
-
...best,
|
|
194
|
-
status: finalStatus,
|
|
195
|
-
terminationReason,
|
|
196
|
-
errorCode: best.errorCode ?? finalStatus,
|
|
197
|
-
retryable: best.retryable ?? retryableFor(finalStatus),
|
|
198
|
-
escalationLog: attempts.map((a) => a.record),
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
//# sourceMappingURL=delegate-with-escalation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegate-with-escalation.js","sourceRoot":"","sources":["../../src/escalation/delegate-with-escalation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { AgentType } from '../types.js';
|
|
2
|
-
export type ToolCategory = 'artifact_producing' | 'read_only' | 'assist';
|
|
3
|
-
export declare const ATTEMPT_BUDGETS: Record<ToolCategory, number>;
|
|
4
|
-
export declare class EscalationPolicy {
|
|
5
|
-
/**
|
|
6
|
-
* Returns the tier to use for the implementer at the given chain attempt.
|
|
7
|
-
* Per spec § C9 (overall.md lines 1247-1252): attempts 0 and 1 hold the caller's tier;
|
|
8
|
-
* attempt 2 (the 3rd try) rotates to otherTier. attempt >= 3 means budget exhausted.
|
|
9
|
-
*/
|
|
10
|
-
rotateImpl(currentTier: AgentType, attempt: number): AgentType;
|
|
11
|
-
/**
|
|
12
|
-
* Reviewer always sits on otherTier of the current implementer tier.
|
|
13
|
-
* On attempt 2 when implementer rotated, reviewer auto-flips back to the caller's original tier.
|
|
14
|
-
*/
|
|
15
|
-
rotateReviewer(currentImplTier: AgentType): AgentType;
|
|
16
|
-
attemptBudget(category: ToolCategory): number;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=escalation-policy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escalation-policy.d.ts","sourceRoot":"","sources":["../../src/escalation/escalation-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAIxD,CAAC;AAEF,qBAAa,gBAAgB;IAC3B;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS;IAO9D;;;OAGG;IACH,cAAc,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS;IAIrD,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;CAG9C"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { otherTier } from '../config/tier-policy-registry.js';
|
|
2
|
-
export const ATTEMPT_BUDGETS = {
|
|
3
|
-
artifact_producing: 7, // 3 spec + 3 quality + 1 diff
|
|
4
|
-
read_only: 2, // 1 implementer + 1 annotator (no rework)
|
|
5
|
-
assist: 1, // register_context_block, retry_tasks — sync state ops, no rework
|
|
6
|
-
};
|
|
7
|
-
export class EscalationPolicy {
|
|
8
|
-
/**
|
|
9
|
-
* Returns the tier to use for the implementer at the given chain attempt.
|
|
10
|
-
* Per spec § C9 (overall.md lines 1247-1252): attempts 0 and 1 hold the caller's tier;
|
|
11
|
-
* attempt 2 (the 3rd try) rotates to otherTier. attempt >= 3 means budget exhausted.
|
|
12
|
-
*/
|
|
13
|
-
rotateImpl(currentTier, attempt) {
|
|
14
|
-
if (attempt < 0)
|
|
15
|
-
throw new Error(`attempt must be >= 0, got ${attempt}`);
|
|
16
|
-
if (attempt >= 3)
|
|
17
|
-
throw new Error(`per-chain attempt budget exhausted (attempt=${attempt}); chain should have terminated`);
|
|
18
|
-
if (attempt === 2)
|
|
19
|
-
return otherTier(currentTier); // 3rd attempt rotates
|
|
20
|
-
return currentTier; // attempts 0 + 1 hold caller tier
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Reviewer always sits on otherTier of the current implementer tier.
|
|
24
|
-
* On attempt 2 when implementer rotated, reviewer auto-flips back to the caller's original tier.
|
|
25
|
-
*/
|
|
26
|
-
rotateReviewer(currentImplTier) {
|
|
27
|
-
return otherTier(currentImplTier);
|
|
28
|
-
}
|
|
29
|
-
attemptBudget(category) {
|
|
30
|
-
return ATTEMPT_BUDGETS[category];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=escalation-policy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"escalation-policy.js","sourceRoot":"","sources":["../../src/escalation/escalation-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAI9D,MAAM,CAAC,MAAM,eAAe,GAAiC;IAC3D,kBAAkB,EAAE,CAAC,EAAK,8BAA8B;IACxD,SAAS,EAAE,CAAC,EAAe,0CAA0C;IACrE,MAAM,EAAE,CAAC,EAAkB,kEAAkE;CAC9F,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAC3B;;;;OAIG;IACH,UAAU,CAAC,WAAsB,EAAE,OAAe;QAChD,IAAI,OAAO,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;QACzE,IAAI,OAAO,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,OAAO,iCAAiC,CAAC,CAAC;QAC3H,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,CAAG,sBAAsB;QAC1E,OAAO,WAAW,CAAC,CAAkC,kCAAkC;IACzF,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,eAA0B;QACvC,OAAO,SAAS,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,QAAsB;QAClC,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Provider, AgentType, RuntimeRunResult } from '../types.js';
|
|
2
|
-
/** Two providers are "identical" iff they resolve to the same effective backend
|
|
3
|
-
* (type + model + baseUrl + apiKey wiring). When an operator points both tiers
|
|
4
|
-
* at the same backend (one-provider deployment), cross-tier fallback is
|
|
5
|
-
* structurally pointless — alt would just hit the same place. Comparing the
|
|
6
|
-
* serialized config catches this without a new operator-facing flag. */
|
|
7
|
-
export declare function providersIdentical(a: Provider, b: Provider): boolean;
|
|
8
|
-
/** Lifecycle helper: builds the synthetic RuntimeRunResult expected when both tiers are
|
|
9
|
-
* unavailable. Status is the new 'unavailable' value (NOT 'api_error') so
|
|
10
|
-
* re-passing the synthetic into runWithFallback's isTransportFailure cannot
|
|
11
|
-
* retrigger fallback.
|
|
12
|
-
*
|
|
13
|
-
* IMPORTANT: This shape MUST satisfy `RuntimeRunResult` (see types.ts). Confirmed
|
|
14
|
-
* required fields: output, status, usage, turns, filesRead, filesWritten,
|
|
15
|
-
* toolCalls, outputIsDiagnostic, escalationLog. All other RuntimeRunResult fields
|
|
16
|
-
* are optional. */
|
|
17
|
-
export declare function makeSyntheticRunResult(assigned: AgentType, errorCode: string): RuntimeRunResult;
|
|
18
|
-
export declare function isReviewTransportFailure(r: {
|
|
19
|
-
status?: string;
|
|
20
|
-
}): boolean;
|
|
21
|
-
export declare function scoreWork<T>(r: T | undefined): number;
|
|
22
|
-
//# sourceMappingURL=fallback-helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fallback-helpers.d.ts","sourceRoot":"","sources":["../../src/escalation/fallback-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEzE;;;;yEAIyE;AACzE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAEpE;AAED;;;;;;;;oBAQoB;AACpB,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAiB/F;AAED,wBAAgB,wBAAwB,CACtC,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrB,OAAO,CAET;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAMrD"}
|