@telora/daemon 0.22.226 → 0.22.233
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/build-info.json +4 -3
- package/dist/completion/codex-activity.d.ts +40 -0
- package/dist/completion/codex-activity.d.ts.map +1 -0
- package/dist/completion/codex-activity.js +69 -0
- package/dist/completion/codex-activity.js.map +1 -0
- package/dist/completion/completion-phase-registry.d.ts +2 -1
- package/dist/completion/completion-phase-registry.d.ts.map +1 -1
- package/dist/completion/completion-phase-registry.js +15 -3
- package/dist/completion/completion-phase-registry.js.map +1 -1
- package/dist/completion/exit-classification.d.ts.map +1 -1
- package/dist/completion/exit-classification.js +3 -1
- package/dist/completion/exit-classification.js.map +1 -1
- package/dist/completion/index.js +1 -1
- package/dist/completion/review-defect-detector.d.ts +58 -18
- package/dist/completion/review-defect-detector.d.ts.map +1 -1
- package/dist/completion/review-defect-detector.js +62 -27
- package/dist/completion/review-defect-detector.js.map +1 -1
- package/dist/completion/review-exit-attribution.d.ts +6 -3
- package/dist/completion/review-exit-attribution.d.ts.map +1 -1
- package/dist/completion/review-exit-attribution.js +9 -7
- package/dist/completion/review-exit-attribution.js.map +1 -1
- package/dist/completion/review-exit-deps.d.ts +2 -0
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +3 -0
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-evidence.d.ts +8 -0
- package/dist/completion/review-exit-evidence.d.ts.map +1 -1
- package/dist/completion/review-exit-evidence.js +39 -27
- package/dist/completion/review-exit-evidence.js.map +1 -1
- package/dist/completion/review-exit-foreign-findings.d.ts +5 -1
- package/dist/completion/review-exit-foreign-findings.d.ts.map +1 -1
- package/dist/completion/review-exit-foreign-findings.js +4 -4
- package/dist/completion/review-exit-foreign-findings.js.map +1 -1
- package/dist/completion/review-exit-phase.js +5 -5
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +3 -2
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/completion/team-progress-measure.d.ts +22 -1
- package/dist/completion/team-progress-measure.d.ts.map +1 -1
- package/dist/completion/team-progress-measure.js +53 -6
- package/dist/completion/team-progress-measure.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +3 -3
- package/dist/directive/agentless-directive.d.ts +28 -0
- package/dist/directive/agentless-directive.d.ts.map +1 -0
- package/dist/directive/agentless-directive.js +12 -0
- package/dist/directive/agentless-directive.js.map +1 -0
- package/dist/directive/directive-dispatch.d.ts +1 -20
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +4 -22
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +1 -20
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/drift/artifact-ref-shape.d.ts +23 -0
- package/dist/drift/artifact-ref-shape.d.ts.map +1 -1
- package/dist/drift/artifact-ref-shape.js +49 -0
- package/dist/drift/artifact-ref-shape.js.map +1 -1
- package/dist/focus/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus/focus-lifecycle.js +3 -2
- package/dist/focus/focus-lifecycle.js.map +1 -1
- package/dist/focus/focus-team-state.js +1 -1
- package/dist/focus/listener-spawn.js +8 -8
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +29 -0
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +82 -21
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/testing-standard.d.ts +4 -1
- package/dist/prompt-sections/testing-standard.d.ts.map +1 -1
- package/dist/prompt-sections/testing-standard.js +14 -4
- package/dist/prompt-sections/testing-standard.js.map +1 -1
- package/dist/queries/escalations.js +1 -1
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +1 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/review-finding-facts.d.ts +38 -0
- package/dist/queries/review-finding-facts.d.ts.map +1 -0
- package/dist/queries/review-finding-facts.js +43 -0
- package/dist/queries/review-finding-facts.js.map +1 -0
- package/dist/queries/shortfall-rulings.d.ts +13 -0
- package/dist/queries/shortfall-rulings.d.ts.map +1 -1
- package/dist/queries/shortfall-rulings.js +14 -0
- package/dist/queries/shortfall-rulings.js.map +1 -1
- package/dist/spawn/codex-limit.d.ts +42 -0
- package/dist/spawn/codex-limit.d.ts.map +1 -0
- package/dist/spawn/codex-limit.js +146 -0
- package/dist/spawn/codex-limit.js.map +1 -0
- package/dist/spawn/directive-route.d.ts +41 -0
- package/dist/spawn/directive-route.d.ts.map +1 -0
- package/dist/spawn/directive-route.js +54 -0
- package/dist/spawn/directive-route.js.map +1 -0
- package/dist/spawn/guards.d.ts.map +1 -1
- package/dist/spawn/guards.js +4 -2
- package/dist/spawn/guards.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +29 -1
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/index.d.ts +1 -0
- package/dist/spawn/index.d.ts.map +1 -1
- package/dist/spawn/index.js +1 -0
- package/dist/spawn/index.js.map +1 -1
- package/dist/spawn/next-spawn-cooldown.d.ts +43 -0
- package/dist/spawn/next-spawn-cooldown.d.ts.map +1 -0
- package/dist/spawn/next-spawn-cooldown.js +123 -0
- package/dist/spawn/next-spawn-cooldown.js.map +1 -0
- package/dist/spawn/one-shot-model.d.ts +4 -3
- package/dist/spawn/one-shot-model.d.ts.map +1 -1
- package/dist/spawn/one-shot-model.js +8 -6
- package/dist/spawn/one-shot-model.js.map +1 -1
- package/dist/spawn/provider-window.d.ts +39 -0
- package/dist/spawn/provider-window.d.ts.map +1 -0
- package/dist/spawn/provider-window.js +99 -0
- package/dist/spawn/provider-window.js.map +1 -0
- package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
- package/dist/spawn/routing-decider-spawn.js +4 -3
- package/dist/spawn/routing-decider-spawn.js.map +1 -1
- package/dist/spawn/routing-decider.js +2 -2
- package/dist/spawn/routing-decider.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts +43 -12
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +51 -58
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts +11 -2
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +28 -60
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +16 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +45 -12
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/codex-stream-session.d.ts +10 -0
- package/dist/testing/fixtures/codex-stream-session.d.ts.map +1 -0
- package/dist/testing/fixtures/codex-stream-session.js +47 -0
- package/dist/testing/fixtures/codex-stream-session.js.map +1 -0
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/types/focus.d.ts +20 -0
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/ai-inspection-runner.js +5 -5
- package/dist/verify/ai-inspection-runner.js.map +1 -1
- package/dist/verify/parked-shortfall-reuse.d.ts.map +1 -1
- package/dist/verify/parked-shortfall-reuse.js +3 -0
- package/dist/verify/parked-shortfall-reuse.js.map +1 -1
- package/dist/verify/ruling-evidence-resolution.d.ts +36 -0
- package/dist/verify/ruling-evidence-resolution.d.ts.map +1 -0
- package/dist/verify/ruling-evidence-resolution.js +133 -0
- package/dist/verify/ruling-evidence-resolution.js.map +1 -0
- package/dist/verify/shortfall-rulings.d.ts +30 -2
- package/dist/verify/shortfall-rulings.d.ts.map +1 -1
- package/dist/verify/shortfall-rulings.js +35 -3
- package/dist/verify/shortfall-rulings.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +3 -0
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +9 -0
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +4 -4
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verify-restatement.d.ts.map +1 -1
- package/dist/verify/verify-restatement.js +1 -19
- package/dist/verify/verify-restatement.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-decider-spawn.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"routing-decider-spawn.d.ts","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ import { bufferMetric as defaultBufferMetric } from '../otlp/telemetry-writer.js
|
|
|
23
23
|
import { estimateLoopCostUsd } from '../loops/index.js';
|
|
24
24
|
import { createLogger } from '../shell/log.js';
|
|
25
25
|
import { parseRateLimitInfo } from './rate-limit.js';
|
|
26
|
-
import {
|
|
26
|
+
import { CLAUDE_PROVIDER, openProviderWindow, providerWindowHoldUntilMs } from './provider-window.js';
|
|
27
27
|
import { providerRefusalInProse } from './one-shot-model.js';
|
|
28
28
|
const log = createLogger({ module: 'routing-decider' });
|
|
29
29
|
/**
|
|
@@ -122,7 +122,8 @@ export function buildRoutingDeciderMetricRow(params) {
|
|
|
122
122
|
* as an attempt; the sweep re-hands it after the reset.
|
|
123
123
|
*/
|
|
124
124
|
function providerHoldResult(escalationId) {
|
|
125
|
-
|
|
125
|
+
// The decider is a `claude --print` one-shot: the claude backend's provider.
|
|
126
|
+
const holdUntil = providerWindowHoldUntilMs(CLAUDE_PROVIDER);
|
|
126
127
|
if (holdUntil === null)
|
|
127
128
|
return null;
|
|
128
129
|
const until = new Date(holdUntil).toISOString();
|
|
@@ -146,7 +147,7 @@ function attachProviderFacts(parser, escalationId) {
|
|
|
146
147
|
if (rl && rl.status === 'rejected') {
|
|
147
148
|
facts.rateLimitRejected = { resetAtMs: rl.resetsAtMs };
|
|
148
149
|
if (rl.resetsAtMs !== null)
|
|
149
|
-
|
|
150
|
+
openProviderWindow(CLAUDE_PROVIDER, rl.resetsAtMs);
|
|
150
151
|
log.warn(`[routing-decider] decider for ${escalationId}: provider rate limit REJECTED` +
|
|
151
152
|
`${rl.rateLimitType ? ` [${rl.rateLimitType}]` : ''}` +
|
|
152
153
|
`${rl.resetsAtMs !== null ? ` -- resets ${new Date(rl.resetsAtMs).toISOString()}` : ''}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-decider-spawn.js","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,gBAAgB;AAEhB;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAqB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GAIjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAA2B,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"routing-decider-spawn.js","sourceRoot":"","sources":["../../src/spawn/routing-decider-spawn.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,gBAAgB;AAEhB;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAqB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GAIjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAA2B,MAAM,6BAA6B,CAAC;AAC3G,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAA6B,MAAM,qBAAqB,CAAC;AAExF,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,0EAA0E;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEzD,wFAAwF;AACxF,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,oCAAoC;IACpC,sCAAsC;IACtC,4CAA4C;IAC5C,+CAA+C;IAC/C,4CAA4C;IAC5C,oDAAoD;IACpD,0CAA0C;CAC3C,CAAC;AA8CF;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAA2B;IACpE,IAAI,KAAK,CAAC,iBAAiB;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;IACzG,IAAI,KAAK,CAAC,cAAc,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACjF,IAAI,KAAK,CAAC,cAAc,KAAK,GAAG,IAAI,KAAK,CAAC,cAAc,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3G,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtG,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAQD,MAAM,WAAW,GAA4B;IAC3C,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CACvC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CACpG,CAAC;AAEF,wCAAwC;AACxC,MAAM,UAAU,uBAAuB,CAAC,IAA2E;IACjH,OAAO;QACL,SAAS;QACT,iBAAiB,EAAE,aAAa;QAChC,WAAW;QACX,gCAAgC;QAChC,mBAAmB,EAAE,eAAe;QACpC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,IAAI,CAAC,MAAM;KACZ,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAU5C;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;QAC/E,CAAC,CAAC,MAAM,CAAC,YAAY;QACrB,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,mBAAmB,CAAC;QAC9B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,CAAC;QACd,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,OAAO;QACL,GAAG,GAAG;QACN,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,qBAAqB;QAC5B,QAAQ,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE;KAC3E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,6EAA6E;IAC7E,MAAM,SAAS,GAAG,yBAAyB,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,GAAG,CAAC,IAAI,CAAC,gDAAgD,YAAY,iDAAiD,KAAK,EAAE,CAAC,CAAC;IAC/H,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI;QACxF,YAAY,EAAE,+CAA+C,KAAK,EAAE;QACpE,gBAAgB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,MAAwB,EAAE,YAAoB;IACzE,MAAM,KAAK,GAAyB,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC7G,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACnC,KAAK,CAAC,iBAAiB,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;YACvD,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI;gBAAE,kBAAkB,CAAC,eAAe,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;YAC/E,GAAG,CAAC,IAAI,CACN,iCAAiC,YAAY,gCAAgC;gBAC7E,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrD,GAAG,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACzF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAA+B,EAAE,EAAE;QACtD,IAAK,EAA6B,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO;QAC7D,MAAM,MAAM,GAAI,EAAqC,CAAC,gBAAgB,CAAC;QACvE,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;QAC9D,MAAM,IAAI,GAAI,EAA2B,CAAC,MAAM,CAAC;QACjD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAAmB,EAAE,QAAiB,EAAE,KAA2B;IAC3F,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5C,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAgC,EAChC,OAAgC,WAAW;IAE3C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC/C,MAAM,QAAQ,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACpD,KAAK,EAAE,MAAM,CAAC,cAAc;QAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,qBAAqB;KAC7B,CAAC,CAAC;IACH,QAAQ,CAAC,6BAA6B,GAAG,YAAY,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEtB,OAAO,MAAM,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,EAAE;QAC9D,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE;gBAC9E,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,sBAAsB,CAAC,QAAQ,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAkB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/J,OAAO;QACT,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,OAAO,GAAG,IAAI,CAAC;YACf,+EAA+E;YAC/E,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAEnB,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;oBAAE,aAAa,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAA0D,CAAC,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAA+B,EAAE,EAAE;YACtD,IAAI,CAAC,EAAE,CAAC,KAAK;gBAAE,OAAO;YACtB,IAAI,CAAC;gBACH,CAAC,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC,CAAC,4BAA4B,CAAC;oBACtE,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,OAAO;oBACP,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;oBACnC,YAAY;oBACZ,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,YAAY,EAAE,OAAO,EAAE,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;oBACpH,WAAW;oBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,2DAA4D,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAChG,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,iCAAiC,YAAY,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YACzH,IAAI,CAAC;gBAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC7D,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnB,MAAM,IAAI,GAAG,GAAW,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/L,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;YACxC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAClJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { resolveAssemblyRecipeWithManifest } from '../resolvers/assembly-engine.
|
|
|
5
5
|
import { initResolvers } from '../resolvers/index.js';
|
|
6
6
|
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
7
7
|
import { configForProduct, findProduct } from '../shell/config.js';
|
|
8
|
-
import {
|
|
8
|
+
import { CLAUDE_PROVIDER, providerWindowHoldUntilMs } from './provider-window.js';
|
|
9
9
|
import { buildRoutingDeciderPrompt, parseRoutingDecision } from '../prompt-sections/routing-decider-sections.js';
|
|
10
10
|
import { spawnRoutingDecider, ROUTING_DECIDER_MCP_TOOLS, ROUTING_DECIDER_MODEL, ROUTING_DECIDER_TIMEOUT_MS, } from './routing-decider-spawn.js';
|
|
11
11
|
/** The intent ladder a decider reads first. */
|
|
@@ -64,7 +64,7 @@ async function defaultAssembleLadder(request, config) {
|
|
|
64
64
|
async function runDecider(deps, request) {
|
|
65
65
|
// Inside the provider-wide rate-limit window nothing can run: say so before
|
|
66
66
|
// the ladder assembly spends its API reads (the spawn checks again, last).
|
|
67
|
-
const holdUntil =
|
|
67
|
+
const holdUntil = providerWindowHoldUntilMs(CLAUDE_PROVIDER); // the decider runs `claude --print`
|
|
68
68
|
if (holdUntil !== null) {
|
|
69
69
|
return toRoutingDecisionResult({
|
|
70
70
|
started: false, exitCode: null, timedOut: false, stdout: '', stderr: '', sessionId: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing-decider.js","sourceRoot":"","sources":["../../src/spawn/routing-decider.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,gBAAgB;AAuBhB,OAAO,EAAE,iCAAiC,EAAwB,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"routing-decider.js","sourceRoot":"","sources":["../../src/spawn/routing-decider.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,gBAAgB;AAuBhB,OAAO,EAAE,iCAAiC,EAAwB,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACjH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,GAG3B,MAAM,4BAA4B,CAAC;AAEpC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,6BAA6B,GAAsB,CAAC,eAAe,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAEtH;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAAC;AASjE,mGAAmG;AACnG,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,SAAwB;IAC7E,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,OAAO,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9D,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,uBAAuB,CAAC,MAAiC;IACvE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,6EAA6E;QAC7E,2EAA2E;QAC3E,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACpD,OAAO;YACL,GAAG,EAAE,KAAK;YACV,OAAO,EAAE,KAAK;YACd,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,6CAA6C,IAAI,EAAE;gBACzD,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;SAClF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,IAAI,+BAA+B,EAAE,CAAC;IACxG,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAChG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACjD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,MAAM,CAAC,QAAQ,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;IACvJ,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,8BAA8B,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,EAAE,CAAC;AACjI,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAA+B,EAAE,MAAoB;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,aAAa,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,GAAG,GAAoB;QAC3B,OAAO;QACP,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,YAAY,EAAE,IAAI;QAClB,MAAM;QACN,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;QACpE,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;KACtD,CAAC;IACF,OAAO,CAAC,MAAM,iCAAiC,CAAC,CAAC,GAAG,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACpG,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAwB,EAAE,OAA+B;IACjF,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,SAAS,GAAG,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC,oCAAoC;IAClG,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,uBAAuB,CAAC;YAC7B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI;YACxF,gBAAgB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE;SAC/D,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,qBAAqB,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,GAAI,GAAa,CAAC,OAAO,CAAC;IACvC,CAAC;IACD,MAAM,MAAM,GAAG,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvG,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;QACvD,MAAM;QACN,MAAM;QACN,GAAG,EAAE,MAAM,CAAC,QAAQ;QACpB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;QAC7B,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;QAC7B,KAAK,EAAE,qBAAqB;QAC5B,SAAS,EAAE,0BAA0B;QACrC,YAAY,EAAE,yBAAyB;KACxC,CAAC,CAAC;IACH,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,IAAI,KAAK,GAAqB,IAAI,CAAC;QACnC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QACrF,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAiC,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1G,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ModelProvider } from './provider-window.js';
|
|
1
2
|
/**
|
|
2
3
|
* Spawn cooldown: prevents crash loops by tracking recently-torn-down focuses.
|
|
3
4
|
*
|
|
@@ -58,6 +59,13 @@ interface TeardownEntry {
|
|
|
58
59
|
* Undefined for an ordinary (blind exponential) cooldown.
|
|
59
60
|
*/
|
|
60
61
|
rateLimitResetAtMs?: number | null;
|
|
62
|
+
/**
|
|
63
|
+
* The provider whose limit `rateLimitResetAtMs` records (the provider of the
|
|
64
|
+
* team that saw it). A reader asking about another provider does not see the
|
|
65
|
+
* reset: that limit does not reach its spawn. Undefined reads as the claude
|
|
66
|
+
* backend's provider, the only one that recorded before windows were keyed.
|
|
67
|
+
*/
|
|
68
|
+
rateLimitProvider?: ModelProvider;
|
|
61
69
|
}
|
|
62
70
|
/**
|
|
63
71
|
* The durable spawn-cooldown state persisted per focus (mirrors the
|
|
@@ -155,21 +163,42 @@ export declare function resolveCooldownUntilMs(entry: Pick<TeardownEntry, 'time'
|
|
|
155
163
|
*/
|
|
156
164
|
export declare function getSpawnCooldownFocusIds(): string[];
|
|
157
165
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
166
|
+
* A provider rate limit is ACCOUNT-wide, not per focus: when one team or one
|
|
167
|
+
* one-shot is rejected, every other spawn on that provider is rejected too,
|
|
168
|
+
* until the same reset instant. The per-focus entry above records the hold for
|
|
169
|
+
* the focus whose team saw the rejection; the provider's window records it for
|
|
170
|
+
* every spawn that would run on that provider -- and only for those
|
|
171
|
+
* (spawn/provider-window.ts keys the windows).
|
|
172
|
+
*
|
|
173
|
+
* Measured 2026-09-23 (mars): with only the per-focus hold, the verification
|
|
174
|
+
* loop and the routing decider kept spawning `claude --print` one-shots every
|
|
175
|
+
* tick for ten hours (each exited 1, each consumed as a result), and a second
|
|
176
|
+
* focus's team was spawned and torn down four times in one minute.
|
|
177
|
+
*
|
|
178
|
+
* The two functions below are the claude backend's window under the names the
|
|
179
|
+
* single window had, kept so the tests written against it still read it.
|
|
180
|
+
* Production code names the provider of the spawn it makes: it calls
|
|
181
|
+
* openProviderWindow / providerWindowHoldUntilMs, never these (pinned by
|
|
182
|
+
* provider-window.test.ts).
|
|
160
183
|
*/
|
|
161
184
|
export declare function recordProviderRateLimit(resetAtMs: number, nowMs?: number): boolean;
|
|
162
|
-
/**
|
|
163
|
-
* The instant the provider-wide window closes, or null when no window is open.
|
|
164
|
-
* A window whose reset has passed reads as closed and is dropped.
|
|
165
|
-
*/
|
|
185
|
+
/** The claude backend's window: the instant it closes, or null when not open. See recordProviderRateLimit. */
|
|
166
186
|
export declare function providerRateLimitHoldUntilMs(nowMs?: number): number | null;
|
|
167
187
|
/**
|
|
168
|
-
* Check if a focus is in spawn cooldown
|
|
169
|
-
* rate-limit window whatever the focus's own entry says: a spawn
|
|
170
|
-
* rejected on the same limit, and the teardown it costs is not a
|
|
188
|
+
* Check if a focus is in spawn cooldown for a spawn on `provider`. True during
|
|
189
|
+
* that provider's rate-limit window whatever the focus's own entry says: a spawn
|
|
190
|
+
* now would be rejected on the same limit, and the teardown it costs is not a
|
|
191
|
+
* team failure. Another provider's window, and a reset the focus's entry records
|
|
192
|
+
* for another provider, do not hold it.
|
|
193
|
+
*
|
|
194
|
+
* `provider` is the provider of the spawn the caller is about to make. Omitted,
|
|
195
|
+
* it is the default engine's (a spawn with no engine selection runs on claude).
|
|
196
|
+
* `null` means the caller cannot yet name it (the spawn gate before the pass is
|
|
197
|
+
* resolved): no rate-limit window or reset is read, only the teardown streak,
|
|
198
|
+
* and the spawn checks its own provider once its engine is resolved
|
|
199
|
+
* (focus/focus-executor.ts).
|
|
171
200
|
*/
|
|
172
|
-
export declare function isInSpawnCooldown(focusId: string): boolean;
|
|
201
|
+
export declare function isInSpawnCooldown(focusId: string, provider?: ModelProvider | null): boolean;
|
|
173
202
|
/**
|
|
174
203
|
* Record a provider rate-limit-induced cooldown: hold spawning until the reset
|
|
175
204
|
* instant `resetAtMs` (when capacity returns), taking precedence over the blind
|
|
@@ -184,7 +213,7 @@ export declare function isInSpawnCooldown(focusId: string): boolean;
|
|
|
184
213
|
* is short-lived and a daemon restart re-reads capacity from the provider on the
|
|
185
214
|
* next spawn attempt anyway.
|
|
186
215
|
*/
|
|
187
|
-
export declare function recordRateLimitCooldown(focusId: string, resetAtMs: number): void;
|
|
216
|
+
export declare function recordRateLimitCooldown(focusId: string, resetAtMs: number, provider?: ModelProvider): void;
|
|
188
217
|
/**
|
|
189
218
|
* What cooldown, if any, a team exit should record. Pure decision, exported for
|
|
190
219
|
* direct unit testing.
|
|
@@ -220,6 +249,8 @@ export declare function recordRespawnCooldown(args: {
|
|
|
220
249
|
focusId: string;
|
|
221
250
|
disposition: 'completed' | 'stopped' | 'failed';
|
|
222
251
|
rateLimitResetAtMs: number | null | undefined;
|
|
252
|
+
/** The provider the exiting team ran on (its limit opens only that window). Omitted = the claude backend's. */
|
|
253
|
+
provider?: ModelProvider;
|
|
223
254
|
nowMs?: number;
|
|
224
255
|
}): RespawnCooldownAction;
|
|
225
256
|
/**
|
|
@@ -229,7 +260,7 @@ export declare function recordRespawnCooldown(args: {
|
|
|
229
260
|
* falls back to recordFocusTeardown). Pure decision + delegated write, injectable
|
|
230
261
|
* for tests.
|
|
231
262
|
*/
|
|
232
|
-
export declare function maybeRecordRateLimitCooldown(focusId: string, rateLimitResetAtMs: number | null | undefined, nowMs?: number, record?: (focusId: string, resetAtMs: number) => void): boolean;
|
|
263
|
+
export declare function maybeRecordRateLimitCooldown(focusId: string, rateLimitResetAtMs: number | null | undefined, nowMs?: number, record?: (focusId: string, resetAtMs: number, provider: ModelProvider) => void, provider?: ModelProvider): boolean;
|
|
233
264
|
/** Clear cooldown for a focus (e.g. after successful long-running session). */
|
|
234
265
|
export declare function clearSpawnCooldown(focusId: string): void;
|
|
235
266
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-cooldown.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-cooldown.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH;;;;;;;;;;GAUG;AACH,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAC;CACnC;AAMD;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAI5G,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAEjF;AAiDD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAc5F;AAKD,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,CAAC,EACjD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAGT;AAsBD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAwBlE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIlG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,oBAAoB,CAAC,GAChF,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAGnD;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,OAAO,CAE9F;AAED,8GAA8G;AAC9G,wBAAgB,4BAA4B,CAAC,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,IAAI,CAEtF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,aAAa,GAAG,IAAsB,GAAG,OAAO,CAY5G;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,aAA+B,GACxC,IAAI,CAwBN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAEvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,qBAAqB,CAIxB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,qBAAqB,CAcxB;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7C,KAAK,GAAE,MAAmB,EAC1B,MAAM,GAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,IAA8B,EACvG,QAAQ,GAAE,aAA+B,GACxC,OAAO,CAMT;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMxD;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BjF;AAED,sGAAsG;AACtG,wBAAgB,4BAA4B,IAAI,IAAI,CAInD"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: 27 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/spawn/spawn-cooldown.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
import { createLogger } from '../shell/log.js';
|
|
5
5
|
import { resolveRespawnCycleMaxHours, resolveRespawnCycleMaxCount, } from '../verify/stall-detector-config.js';
|
|
6
|
+
import { CLAUDE_PROVIDER, openProviderWindow, providerWindowHoldUntilMs, __resetProviderWindowsForTests, } from './provider-window.js';
|
|
6
7
|
const log = createLogger({ module: 'spawn-cooldown' });
|
|
7
8
|
const teardownTimestamps = new Map();
|
|
8
9
|
const SPAWN_COOLDOWN_BASE_MS = 60_000; // 1 minute base cooldown
|
|
@@ -207,73 +208,62 @@ export function getSpawnCooldownFocusIds() {
|
|
|
207
208
|
return [...teardownTimestamps.keys()];
|
|
208
209
|
}
|
|
209
210
|
// ---------------------------------------------------------------------------
|
|
210
|
-
// Provider
|
|
211
|
+
// Provider rate-limit windows (spawn/provider-window.ts)
|
|
211
212
|
// ---------------------------------------------------------------------------
|
|
212
213
|
/**
|
|
213
|
-
*
|
|
214
|
-
* one-shot is rejected, every other spawn on
|
|
215
|
-
* the same reset instant. The per-focus entry above records the hold for
|
|
216
|
-
* focus whose team saw the rejection;
|
|
214
|
+
* A provider rate limit is ACCOUNT-wide, not per focus: when one team or one
|
|
215
|
+
* one-shot is rejected, every other spawn on that provider is rejected too,
|
|
216
|
+
* until the same reset instant. The per-focus entry above records the hold for
|
|
217
|
+
* the focus whose team saw the rejection; the provider's window records it for
|
|
218
|
+
* every spawn that would run on that provider -- and only for those
|
|
219
|
+
* (spawn/provider-window.ts keys the windows).
|
|
217
220
|
*
|
|
218
221
|
* Measured 2026-09-23 (mars): with only the per-focus hold, the verification
|
|
219
222
|
* loop and the routing decider kept spawning `claude --print` one-shots every
|
|
220
223
|
* tick for ten hours (each exited 1, each consumed as a result), and a second
|
|
221
|
-
* focus's team was spawned and torn down four times in one minute.
|
|
222
|
-
* spawner -- team or one-shot -- reads this window; the one-shot wrapper
|
|
223
|
-
* (spawn/one-shot-model.ts) also writes it.
|
|
224
|
+
* focus's team was spawned and torn down four times in one minute.
|
|
224
225
|
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
* provider
|
|
230
|
-
*/
|
|
231
|
-
let providerRateLimitResetAtMs = null;
|
|
232
|
-
/**
|
|
233
|
-
* Record a provider rate-limit signal. Returns true when the window is now open
|
|
234
|
-
* (the reset is in the future), false when the signal closed it.
|
|
226
|
+
* The two functions below are the claude backend's window under the names the
|
|
227
|
+
* single window had, kept so the tests written against it still read it.
|
|
228
|
+
* Production code names the provider of the spawn it makes: it calls
|
|
229
|
+
* openProviderWindow / providerWindowHoldUntilMs, never these (pinned by
|
|
230
|
+
* provider-window.test.ts).
|
|
235
231
|
*/
|
|
236
232
|
export function recordProviderRateLimit(resetAtMs, nowMs = Date.now()) {
|
|
237
|
-
|
|
238
|
-
if (providerRateLimitResetAtMs !== null) {
|
|
239
|
-
log.info('Provider rate limit: window closed (reset instant has passed); spawns resume');
|
|
240
|
-
}
|
|
241
|
-
providerRateLimitResetAtMs = null;
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
const next = Math.max(providerRateLimitResetAtMs ?? 0, resetAtMs);
|
|
245
|
-
if (providerRateLimitResetAtMs !== next) {
|
|
246
|
-
log.warn(`Provider rate limit: holding EVERY spawn (teams and one-shots) until ` +
|
|
247
|
-
`${new Date(next).toISOString()} -- account-wide window`);
|
|
248
|
-
}
|
|
249
|
-
providerRateLimitResetAtMs = next;
|
|
250
|
-
return true;
|
|
233
|
+
return openProviderWindow(CLAUDE_PROVIDER, resetAtMs, nowMs);
|
|
251
234
|
}
|
|
252
|
-
/**
|
|
253
|
-
* The instant the provider-wide window closes, or null when no window is open.
|
|
254
|
-
* A window whose reset has passed reads as closed and is dropped.
|
|
255
|
-
*/
|
|
235
|
+
/** The claude backend's window: the instant it closes, or null when not open. See recordProviderRateLimit. */
|
|
256
236
|
export function providerRateLimitHoldUntilMs(nowMs = Date.now()) {
|
|
257
|
-
|
|
258
|
-
return null;
|
|
259
|
-
if (providerRateLimitResetAtMs <= nowMs) {
|
|
260
|
-
providerRateLimitResetAtMs = null;
|
|
261
|
-
return null;
|
|
262
|
-
}
|
|
263
|
-
return providerRateLimitResetAtMs;
|
|
237
|
+
return providerWindowHoldUntilMs(CLAUDE_PROVIDER, nowMs);
|
|
264
238
|
}
|
|
265
239
|
/**
|
|
266
|
-
* Check if a focus is in spawn cooldown
|
|
267
|
-
* rate-limit window whatever the focus's own entry says: a spawn
|
|
268
|
-
* rejected on the same limit, and the teardown it costs is not a
|
|
240
|
+
* Check if a focus is in spawn cooldown for a spawn on `provider`. True during
|
|
241
|
+
* that provider's rate-limit window whatever the focus's own entry says: a spawn
|
|
242
|
+
* now would be rejected on the same limit, and the teardown it costs is not a
|
|
243
|
+
* team failure. Another provider's window, and a reset the focus's entry records
|
|
244
|
+
* for another provider, do not hold it.
|
|
245
|
+
*
|
|
246
|
+
* `provider` is the provider of the spawn the caller is about to make. Omitted,
|
|
247
|
+
* it is the default engine's (a spawn with no engine selection runs on claude).
|
|
248
|
+
* `null` means the caller cannot yet name it (the spawn gate before the pass is
|
|
249
|
+
* resolved): no rate-limit window or reset is read, only the teardown streak,
|
|
250
|
+
* and the spawn checks its own provider once its engine is resolved
|
|
251
|
+
* (focus/focus-executor.ts).
|
|
269
252
|
*/
|
|
270
|
-
export function isInSpawnCooldown(focusId) {
|
|
253
|
+
export function isInSpawnCooldown(focusId, provider = CLAUDE_PROVIDER) {
|
|
271
254
|
cleanupStaleEntries();
|
|
272
|
-
if (
|
|
255
|
+
if (provider !== null && providerWindowHoldUntilMs(provider) !== null)
|
|
273
256
|
return true;
|
|
274
257
|
const entry = teardownTimestamps.get(focusId);
|
|
275
258
|
if (!entry)
|
|
276
259
|
return false;
|
|
260
|
+
if (entry.rateLimitResetAtMs != null && (entry.rateLimitProvider ?? CLAUDE_PROVIDER) !== provider) {
|
|
261
|
+
// The recorded reset is another provider's limit: it does not hold this
|
|
262
|
+
// spawn. A rate-limit-only entry (count 0) then holds nothing at all.
|
|
263
|
+
if (entry.count === 0 && !entry.exhausted)
|
|
264
|
+
return false;
|
|
265
|
+
return Date.now() < resolveCooldownUntilMs({ ...entry, rateLimitResetAtMs: null });
|
|
266
|
+
}
|
|
277
267
|
return Date.now() < resolveCooldownUntilMs(entry);
|
|
278
268
|
}
|
|
279
269
|
/**
|
|
@@ -290,14 +280,16 @@ export function isInSpawnCooldown(focusId) {
|
|
|
290
280
|
* is short-lived and a daemon restart re-reads capacity from the provider on the
|
|
291
281
|
* next spawn attempt anyway.
|
|
292
282
|
*/
|
|
293
|
-
export function recordRateLimitCooldown(focusId, resetAtMs) {
|
|
283
|
+
export function recordRateLimitCooldown(focusId, resetAtMs, provider = CLAUDE_PROVIDER) {
|
|
294
284
|
cleanupStaleEntries();
|
|
295
285
|
const now = Date.now();
|
|
296
|
-
// The limit the team hit is
|
|
297
|
-
|
|
286
|
+
// The limit the team hit is its provider's account's, so that provider's
|
|
287
|
+
// window opens for every spawn on it -- and for no other provider.
|
|
288
|
+
openProviderWindow(provider, resetAtMs, now);
|
|
298
289
|
const existing = teardownTimestamps.get(focusId);
|
|
299
290
|
if (existing) {
|
|
300
291
|
existing.rateLimitResetAtMs = resetAtMs;
|
|
292
|
+
existing.rateLimitProvider = provider;
|
|
301
293
|
}
|
|
302
294
|
else {
|
|
303
295
|
teardownTimestamps.set(focusId, {
|
|
@@ -306,10 +298,11 @@ export function recordRateLimitCooldown(focusId, resetAtMs) {
|
|
|
306
298
|
count: 0,
|
|
307
299
|
exhausted: false,
|
|
308
300
|
rateLimitResetAtMs: resetAtMs,
|
|
301
|
+
rateLimitProvider: provider,
|
|
309
302
|
});
|
|
310
303
|
}
|
|
311
|
-
log.info(`Focus ${focusId} rate-limit cooldown: holding
|
|
312
|
-
|
|
304
|
+
log.info(`Focus ${focusId} rate-limit cooldown (${provider}): holding ${provider} spawns until ` +
|
|
305
|
+
`${new Date(resetAtMs).toISOString()} (reset-aware; respawn-cycle budget untouched)`);
|
|
313
306
|
}
|
|
314
307
|
export function decideRespawnCooldown(args) {
|
|
315
308
|
if (args.disposition === 'completed')
|
|
@@ -335,7 +328,7 @@ export function recordRespawnCooldown(args) {
|
|
|
335
328
|
});
|
|
336
329
|
if (action === 'rate_limit') {
|
|
337
330
|
// rateLimitResetAtMs is non-null when decideRespawnCooldown returns 'rate_limit'.
|
|
338
|
-
recordRateLimitCooldown(args.focusId, args.rateLimitResetAtMs);
|
|
331
|
+
recordRateLimitCooldown(args.focusId, args.rateLimitResetAtMs, args.provider ?? CLAUDE_PROVIDER);
|
|
339
332
|
}
|
|
340
333
|
else if (action === 'teardown') {
|
|
341
334
|
recordFocusTeardown(args.focusId);
|
|
@@ -349,9 +342,9 @@ export function recordRespawnCooldown(args) {
|
|
|
349
342
|
* falls back to recordFocusTeardown). Pure decision + delegated write, injectable
|
|
350
343
|
* for tests.
|
|
351
344
|
*/
|
|
352
|
-
export function maybeRecordRateLimitCooldown(focusId, rateLimitResetAtMs, nowMs = Date.now(), record = recordRateLimitCooldown) {
|
|
345
|
+
export function maybeRecordRateLimitCooldown(focusId, rateLimitResetAtMs, nowMs = Date.now(), record = recordRateLimitCooldown, provider = CLAUDE_PROVIDER) {
|
|
353
346
|
if (rateLimitResetAtMs != null && rateLimitResetAtMs > nowMs) {
|
|
354
|
-
record(focusId, rateLimitResetAtMs);
|
|
347
|
+
record(focusId, rateLimitResetAtMs, provider);
|
|
355
348
|
return true;
|
|
356
349
|
}
|
|
357
350
|
return false;
|
|
@@ -414,6 +407,6 @@ export async function clearSpawnCooldownDurably(focusId) {
|
|
|
414
407
|
export function __resetSpawnCooldownForTests() {
|
|
415
408
|
teardownTimestamps.clear();
|
|
416
409
|
writeChains.clear();
|
|
417
|
-
|
|
410
|
+
__resetProviderWindowsForTests();
|
|
418
411
|
}
|
|
419
412
|
//# sourceMappingURL=spawn-cooldown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0GAA0G;AAC1G,gBAAgB;AAGhB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-cooldown.js","sourceRoot":"","sources":["../../src/spawn/spawn-cooldown.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
* Cycle rule: this module must NOT import from '../focus/focus-executor.js'.
|
|
14
14
|
*/
|
|
15
15
|
import type { DaemonConfig, AgentRole, FocusTeamState, PipelineConfig } from '../types/index.js';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
16
|
+
import { getActiveFocuses } from '../queries/focus-discovery.js';
|
|
17
|
+
import { getFocusDeliveries, getFocusIssues, fetchFocusWorkflow } from '../queries/focuses.js';
|
|
18
|
+
import { getPendingSpawnDirective, assembleDirectiveContentWithManifest, syncFocusPhase } from '../directive/directive-executor.js';
|
|
18
19
|
import { type AssemblyManifestEntry } from '../resolvers/assembly-engine.js';
|
|
19
20
|
import { type ArmFacts } from '../focus/recorded-new-intent.js';
|
|
20
21
|
import { type EngineOverride } from '../backends/index.js';
|
|
@@ -261,6 +262,13 @@ export declare function willSendDirectiveBody(args: {
|
|
|
261
262
|
issues: Awaited<ReturnType<typeof getFocusIssues>>;
|
|
262
263
|
readOnly: boolean;
|
|
263
264
|
}): boolean;
|
|
265
|
+
/** The reads resolveDirectiveOrFallback makes; injectable so a test can drive a real stage directive through it. */
|
|
266
|
+
export interface DirectiveResolutionDeps {
|
|
267
|
+
getActiveFocuses: typeof getActiveFocuses;
|
|
268
|
+
syncFocusPhase: typeof syncFocusPhase;
|
|
269
|
+
fetchFocusWorkflow: typeof fetchFocusWorkflow;
|
|
270
|
+
assembleDirectiveContentWithManifest: typeof assembleDirectiveContentWithManifest;
|
|
271
|
+
}
|
|
264
272
|
export declare function resolveDirectiveOrFallback(args: {
|
|
265
273
|
config: DaemonConfig;
|
|
266
274
|
focusId: string;
|
|
@@ -279,5 +287,6 @@ export declare function resolveDirectiveOrFallback(args: {
|
|
|
279
287
|
deliveries: Awaited<ReturnType<typeof getFocusDeliveries>>;
|
|
280
288
|
issues: Awaited<ReturnType<typeof getFocusIssues>>;
|
|
281
289
|
readOnly: boolean;
|
|
290
|
+
deps?: DirectiveResolutionDeps;
|
|
282
291
|
}): Promise<DirectiveResolution>;
|
|
283
292
|
//# sourceMappingURL=spawn-decision.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-decision.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-decision.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn-decision.d.ts","sourceRoot":"","sources":["../../src/spawn/spawn-decision.ts"],"names":[],"mappings":"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"}
|