@claudexor/orchestrator 4.1.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-pool.d.ts +11 -0
- package/dist/account-pool.d.ts.map +1 -1
- package/dist/account-pool.js +9 -0
- package/dist/account-pool.js.map +1 -1
- package/dist/account-resolution.d.ts +3 -0
- package/dist/account-resolution.d.ts.map +1 -1
- package/dist/account-resolution.js +1 -0
- package/dist/account-resolution.js.map +1 -1
- package/dist/attemptTelemetry.d.ts +4 -6
- package/dist/attemptTelemetry.d.ts.map +1 -1
- package/dist/attemptTelemetry.js +1 -1
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/budgetFailure.d.ts +4 -1
- package/dist/budgetFailure.d.ts.map +1 -1
- package/dist/budgetFailure.js +4 -2
- package/dist/budgetFailure.js.map +1 -1
- package/dist/candidateEvidence.d.ts.map +1 -1
- package/dist/candidateEvidence.js +7 -2
- package/dist/candidateEvidence.js.map +1 -1
- package/dist/candidateOutputs.d.ts.map +1 -1
- package/dist/candidateOutputs.js +6 -0
- package/dist/candidateOutputs.js.map +1 -1
- package/dist/candidateTerminals.d.ts +12 -1
- package/dist/candidateTerminals.d.ts.map +1 -1
- package/dist/candidateTerminals.js +51 -21
- package/dist/candidateTerminals.js.map +1 -1
- package/dist/captureRefusal.d.ts +28 -0
- package/dist/captureRefusal.d.ts.map +1 -0
- package/dist/captureRefusal.js +54 -0
- package/dist/captureRefusal.js.map +1 -0
- package/dist/continuity-terminal.d.ts +3 -1
- package/dist/continuity-terminal.d.ts.map +1 -1
- package/dist/continuity-terminal.js.map +1 -1
- package/dist/credential-profile-rotation.js +2 -3
- package/dist/credential-profile-rotation.js.map +1 -1
- package/dist/delegationFailure.d.ts +104 -7
- package/dist/delegationFailure.d.ts.map +1 -1
- package/dist/delegationFailure.js +47 -31
- package/dist/delegationFailure.js.map +1 -1
- package/dist/inrun-continuity-types.d.ts +13 -1
- package/dist/inrun-continuity-types.d.ts.map +1 -1
- package/dist/inrun-continuity.d.ts +9 -2
- package/dist/inrun-continuity.d.ts.map +1 -1
- package/dist/inrun-continuity.js +43 -23
- package/dist/inrun-continuity.js.map +1 -1
- package/dist/inrun-continuity.test-support.d.ts +6 -2
- package/dist/inrun-continuity.test-support.d.ts.map +1 -1
- package/dist/inrun-continuity.test-support.js +4 -1
- package/dist/inrun-continuity.test-support.js.map +1 -1
- package/dist/orchestrator-credentials.d.ts +5 -4
- package/dist/orchestrator-credentials.d.ts.map +1 -1
- package/dist/orchestrator-credentials.js +7 -4
- package/dist/orchestrator-credentials.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +277 -335
- package/dist/orchestrator.js.map +1 -1
- package/dist/persistedPatch.js +2 -2
- package/dist/persistedPatch.js.map +1 -1
- package/dist/pool-attempt-evidence.d.ts +62 -0
- package/dist/pool-attempt-evidence.d.ts.map +1 -0
- package/dist/pool-attempt-evidence.js +153 -0
- package/dist/pool-attempt-evidence.js.map +1 -0
- package/dist/pre-progress-refusal.d.ts +43 -6
- package/dist/pre-progress-refusal.d.ts.map +1 -1
- package/dist/pre-progress-refusal.js +53 -8
- package/dist/pre-progress-refusal.js.map +1 -1
- package/dist/readonlyTerminals.d.ts +55 -0
- package/dist/readonlyTerminals.d.ts.map +1 -0
- package/dist/readonlyTerminals.js +205 -0
- package/dist/readonlyTerminals.js.map +1 -0
- package/dist/rotation-predicate.d.ts +7 -23
- package/dist/rotation-predicate.d.ts.map +1 -1
- package/dist/rotation-predicate.js +45 -0
- package/dist/rotation-predicate.js.map +1 -1
- package/dist/runEventLog.d.ts +1 -0
- package/dist/runEventLog.d.ts.map +1 -1
- package/dist/runEventLog.js +3 -2
- package/dist/runEventLog.js.map +1 -1
- package/dist/runTerminalContext.d.ts +4 -0
- package/dist/runTerminalContext.d.ts.map +1 -1
- package/dist/runTerminalContext.js.map +1 -1
- package/dist/runTerminalHelpers.d.ts +25 -1
- package/dist/runTerminalHelpers.d.ts.map +1 -1
- package/dist/runTerminalHelpers.js +69 -6
- package/dist/runTerminalHelpers.js.map +1 -1
- package/dist/runTerminalResults.d.ts +25 -3
- package/dist/runTerminalResults.d.ts.map +1 -1
- package/dist/runTerminalResults.js +61 -29
- package/dist/runTerminalResults.js.map +1 -1
- package/dist/runTerminals.d.ts +0 -1
- package/dist/runTerminals.d.ts.map +1 -1
- package/dist/runTerminals.js +47 -11
- package/dist/runTerminals.js.map +1 -1
- package/dist/secretDiff.d.ts +14 -11
- package/dist/secretDiff.d.ts.map +1 -1
- package/dist/secretDiff.js +21 -28
- package/dist/secretDiff.js.map +1 -1
- package/dist/terminalOutcome.d.ts +24 -4
- package/dist/terminalOutcome.d.ts.map +1 -1
- package/dist/terminalOutcome.js +32 -5
- package/dist/terminalOutcome.js.map +1 -1
- package/package.json +17 -17
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { makeOutcomeFacts } from "@claudexor/schema";
|
|
3
|
+
import { readOnlyNoSuccessTerminal } from "./attemptFinalize.js";
|
|
4
|
+
import { budgetFailureRecord, classifyBudgetFailure } from "./budgetFailure.js";
|
|
5
|
+
import { unanimousDeclaredFailure } from "./candidateEvidence.js";
|
|
6
|
+
import { resumableTerminal } from "./continuity-terminal.js";
|
|
7
|
+
import { attemptVendorFailure, dominantHarnessFailureCategory, harnessFailureNextActions, } from "./harnessFailure.js";
|
|
8
|
+
import { poolFailure } from "./pool-attempt-evidence.js";
|
|
9
|
+
import { writeFailure } from "./runTerminalResults.js";
|
|
10
|
+
/** A read-only chain with no successful attempt (QA-036/QA-050/A5). */
|
|
11
|
+
export function readOnlyChainFailureResult(input) {
|
|
12
|
+
const { store, paths, log, runId, taskId, mode, ledger, attempts, attemptTelemetries } = input;
|
|
13
|
+
const { budgetStopped, budgetDenial } = input;
|
|
14
|
+
const last = attempts[attempts.length - 1];
|
|
15
|
+
const webBlocked = attempts.some((a) => a.status === "blocked");
|
|
16
|
+
// QA-050: a budget refusal is a BUDGET failure, not a harness one — route
|
|
17
|
+
// it through the shared classifier so phase/category/code/route and the
|
|
18
|
+
// remediation are budget-typed (never auth/setup) across every mode.
|
|
19
|
+
const budgetMapping = budgetStopped && !webBlocked
|
|
20
|
+
? classifyBudgetFailure({ denial: budgetDenial, terminal: ledger.terminal() })
|
|
21
|
+
: null;
|
|
22
|
+
const { message: singleError, poolAttempts } = poolFailure(budgetMapping?.safeMessage ??
|
|
23
|
+
last?.error ??
|
|
24
|
+
(budgetStopped ? "budget exhausted before any attempt" : "harness failed"), attempts);
|
|
25
|
+
if (input.fallbackOpen || webBlocked) {
|
|
26
|
+
log.emit("route.fallback.exhausted", {
|
|
27
|
+
harness_id: last?.harnessId ?? null,
|
|
28
|
+
attempt_id: last?.attemptId ?? null,
|
|
29
|
+
reason: "web_evidence_unsatisfied",
|
|
30
|
+
error: singleError,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const partialReport = [...attempts].reverse().find((a) => a.report)?.report ?? "";
|
|
34
|
+
input.writeTelemetry();
|
|
35
|
+
store.writeText(join(paths.contextDir, "context_error.md"), `# ${budgetMapping ? "Budget Denied" : "Harness Error"}\n\n${singleError}\n`);
|
|
36
|
+
const roEventRefs = attempts.map((a) => `attempts/${a.attemptId}/events.jsonl`);
|
|
37
|
+
if (budgetMapping) {
|
|
38
|
+
writeFailure(store, paths, {
|
|
39
|
+
...budgetFailureRecord(budgetMapping, { eventRefs: roEventRefs, runDir: paths.root }),
|
|
40
|
+
safeMessage: singleError,
|
|
41
|
+
poolAttempts,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// #31: classify the harness cause across the read-only attempts so auth
|
|
46
|
+
// guidance appears only on a real auth failure.
|
|
47
|
+
const roCategory = dominantHarnessFailureCategory(attemptTelemetries.flatMap((a) => a.telemetry.transientFailures));
|
|
48
|
+
// A5: the terminal already speaks with the LAST attempt's message; its
|
|
49
|
+
// typed refusal rides along machine-readably instead of reducing to it.
|
|
50
|
+
const roDeclared = webBlocked ? undefined : last?.declaredFailure;
|
|
51
|
+
writeFailure(store, paths, {
|
|
52
|
+
phase: "harness",
|
|
53
|
+
category: webBlocked ? "policy" : (roDeclared?.category ?? "harness_error"),
|
|
54
|
+
code: roDeclared?.code ?? null,
|
|
55
|
+
harnessId: last?.harnessId,
|
|
56
|
+
attemptId: last?.attemptId,
|
|
57
|
+
safeMessage: singleError,
|
|
58
|
+
eventRefs: roEventRefs,
|
|
59
|
+
runDir: paths.root,
|
|
60
|
+
resetsAt: roDeclared?.resetsAt ?? null,
|
|
61
|
+
requestRefusal: roDeclared?.requestRefusal,
|
|
62
|
+
vendorFailure: attemptVendorFailure(attemptTelemetries, last?.attemptId),
|
|
63
|
+
poolAttempts,
|
|
64
|
+
nextActions: harnessFailureNextActions(roCategory),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// QA-036: re-check the DELIVERABLE through the shared finalizer helper —
|
|
68
|
+
// a blocked Ask that produced NO answer can no longer read as a succeeded
|
|
69
|
+
// "Needs review" run (exit 0); it is an honest failure (exit 1).
|
|
70
|
+
const roTerminal = readOnlyNoSuccessTerminal({
|
|
71
|
+
webBlocked,
|
|
72
|
+
hasDeliverable: partialReport.trim().length > 0,
|
|
73
|
+
budgetStopped,
|
|
74
|
+
attemptsCount: attempts.length,
|
|
75
|
+
});
|
|
76
|
+
const terminalFacts = makeOutcomeFacts(roTerminal.lifecycle, {
|
|
77
|
+
...(roTerminal.review ? { review: roTerminal.review } : {}),
|
|
78
|
+
reason: budgetMapping?.reason ?? roTerminal.reason,
|
|
79
|
+
});
|
|
80
|
+
const terminalHarnessId = budgetMapping?.harnessId ?? last?.harnessId;
|
|
81
|
+
store.writeText(join(paths.finalDir, "summary.md"), `# Run ${runId} (${mode})\n\n- Harness: ${terminalHarnessId ?? "none"}\n- Lifecycle: ${terminalFacts.lifecycle}${terminalFacts.reason ? ` (${terminalFacts.reason})` : ""}\n\n${singleError}\n`);
|
|
82
|
+
log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
|
|
83
|
+
if (terminalFacts.lifecycle === "succeeded") {
|
|
84
|
+
log.emit("run.blocked", {
|
|
85
|
+
lifecycle: terminalFacts.lifecycle,
|
|
86
|
+
facts: terminalFacts,
|
|
87
|
+
harness_id: terminalHarnessId,
|
|
88
|
+
error: singleError,
|
|
89
|
+
pool_attempts: poolAttempts,
|
|
90
|
+
failure_ref: "final/failure.yaml",
|
|
91
|
+
...resumableTerminal(store, paths, attempts, true),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
log.emit("run.failed", {
|
|
96
|
+
lifecycle: terminalFacts.lifecycle,
|
|
97
|
+
facts: terminalFacts,
|
|
98
|
+
reason: terminalFacts.reason,
|
|
99
|
+
phase: budgetMapping?.phase,
|
|
100
|
+
harness_id: terminalHarnessId,
|
|
101
|
+
error: singleError,
|
|
102
|
+
pool_attempts: poolAttempts,
|
|
103
|
+
failure_ref: "final/failure.yaml",
|
|
104
|
+
...resumableTerminal(store, paths, attempts, true),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
spendUsd: ledger.spend(),
|
|
109
|
+
runId,
|
|
110
|
+
taskId,
|
|
111
|
+
mode,
|
|
112
|
+
lifecycle: terminalFacts.lifecycle,
|
|
113
|
+
facts: terminalFacts,
|
|
114
|
+
winner: null,
|
|
115
|
+
runDir: paths.root,
|
|
116
|
+
summary: singleError,
|
|
117
|
+
candidates: attempts.map((a) => ({
|
|
118
|
+
attemptId: a.attemptId,
|
|
119
|
+
harnessId: a.harnessId,
|
|
120
|
+
status: a.status,
|
|
121
|
+
})),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/** A deep scan whose every explorer failed: no synthesizable deliverable (QA-036). */
|
|
125
|
+
export function deepScanFailureResult(input) {
|
|
126
|
+
const { store, paths, log, runId, taskId, mode, ledger, attempts, attemptTelemetries } = input;
|
|
127
|
+
const { budgetStopped, budgetDenial } = input;
|
|
128
|
+
const blocked = attempts.some((a) => a.status === "blocked");
|
|
129
|
+
// QA-050/QA-019: only a pure-denial scan may claim a budget failure.
|
|
130
|
+
const scanBudgetMapping = budgetStopped && !blocked && attempts.every((a) => a.budgetDenied === true)
|
|
131
|
+
? classifyBudgetFailure({ denial: budgetDenial, terminal: ledger.terminal() })
|
|
132
|
+
: null;
|
|
133
|
+
// D-16 r8: ALL scouts out of context → the aggregate is interrupted.
|
|
134
|
+
const allInterrupted = attempts.length > 0 && attempts.every((a) => a.interrupted === true);
|
|
135
|
+
const scanFailFacts = allInterrupted
|
|
136
|
+
? makeOutcomeFacts("interrupted", { reason: "context_capacity_exhausted" })
|
|
137
|
+
: makeOutcomeFacts("failed", {
|
|
138
|
+
reason: scanBudgetMapping ? scanBudgetMapping.reason : "harness_failed",
|
|
139
|
+
});
|
|
140
|
+
const { message, poolAttempts } = poolFailure(scanBudgetMapping
|
|
141
|
+
? scanBudgetMapping.safeMessage
|
|
142
|
+
: attempts.map((a) => `${a.attemptId}/${a.harnessId}: ${a.error ?? "failed"}`).join("\n"), attempts);
|
|
143
|
+
input.writeTelemetry();
|
|
144
|
+
if (scanBudgetMapping) {
|
|
145
|
+
writeFailure(store, paths, {
|
|
146
|
+
...budgetFailureRecord(scanBudgetMapping, {
|
|
147
|
+
eventRefs: attempts.map((a) => `attempts/${a.attemptId}/events.jsonl`),
|
|
148
|
+
runDir: paths.root,
|
|
149
|
+
}),
|
|
150
|
+
safeMessage: message,
|
|
151
|
+
poolAttempts,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// Mixed causes stay generic; only unanimous evidence may name the scan's cause.
|
|
156
|
+
const declared = blocked ? null : unanimousDeclaredFailure(attempts);
|
|
157
|
+
const scanCategory = dominantHarnessFailureCategory(attemptTelemetries.flatMap((a) => a.telemetry.transientFailures));
|
|
158
|
+
writeFailure(store, paths, {
|
|
159
|
+
phase: "harness",
|
|
160
|
+
category: blocked ? "policy" : (declared?.category ?? "harness_error"),
|
|
161
|
+
code: declared?.code,
|
|
162
|
+
resetsAt: declared?.resetsAt,
|
|
163
|
+
requestRefusal: declared?.requestRefusal,
|
|
164
|
+
safeMessage: message || "all explorers failed",
|
|
165
|
+
eventRefs: attempts.map((a) => `attempts/${a.attemptId}/events.jsonl`),
|
|
166
|
+
runDir: paths.root,
|
|
167
|
+
poolAttempts,
|
|
168
|
+
nextActions: [
|
|
169
|
+
...harnessFailureNextActions(scanCategory).filter((a) => !a.startsWith("Retry")),
|
|
170
|
+
"Reduce explore width",
|
|
171
|
+
"Retry after setup",
|
|
172
|
+
],
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
// QA-036: no successful explorer means no synthesizable deliverable.
|
|
176
|
+
store.writeText(join(paths.finalDir, "summary.md"), `# Run ${runId} (${mode})\n\n- Lifecycle: ${scanFailFacts.lifecycle}${scanFailFacts.reason ? ` (${scanFailFacts.reason})` : ""}\n\n${message}\n`);
|
|
177
|
+
log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
|
|
178
|
+
log.emit("run.failed", {
|
|
179
|
+
lifecycle: scanFailFacts.lifecycle,
|
|
180
|
+
facts: scanFailFacts,
|
|
181
|
+
reason: scanFailFacts.reason,
|
|
182
|
+
phase: scanBudgetMapping ? scanBudgetMapping.phase : "harness",
|
|
183
|
+
error: message,
|
|
184
|
+
pool_attempts: poolAttempts,
|
|
185
|
+
failure_ref: "final/failure.yaml",
|
|
186
|
+
...resumableTerminal(store, paths, attempts, true),
|
|
187
|
+
});
|
|
188
|
+
return {
|
|
189
|
+
spendUsd: ledger.spend(),
|
|
190
|
+
runId,
|
|
191
|
+
taskId,
|
|
192
|
+
mode,
|
|
193
|
+
lifecycle: scanFailFacts.lifecycle,
|
|
194
|
+
facts: scanFailFacts,
|
|
195
|
+
winner: null,
|
|
196
|
+
runDir: paths.root,
|
|
197
|
+
summary: message,
|
|
198
|
+
candidates: attempts.map((a) => ({
|
|
199
|
+
attemptId: a.attemptId,
|
|
200
|
+
harnessId: a.harnessId,
|
|
201
|
+
status: a.status,
|
|
202
|
+
})),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=readonlyTerminals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonlyTerminals.js","sourceRoot":"","sources":["../src/readonlyTerminals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A2: the WIDENED reactive rotation predicate (W5.4 + the structural branch).
|
|
3
|
-
*
|
|
4
|
-
* Two independent ways an attempt becomes rotation-eligible:
|
|
5
|
-
*
|
|
6
|
-
* 1. TYPED fast path (W5.4 canon, unchanged): the attempt saw a TYPED vendor
|
|
7
|
-
* rate-limit signal. Deliberately NOT hardened against thinking/tool
|
|
8
|
-
* activity — the canon guard is no-deliverable/no-mutation, not
|
|
9
|
-
* no-progress.
|
|
10
|
-
*
|
|
11
|
-
* 2. STRUCTURAL branch (owner decision 7=A): the attempt ended in a TERMINAL,
|
|
12
|
-
* non-transient death BEFORE the agent demonstrably did any work. This
|
|
13
|
-
* deliberately covers ANY pre-progress non-transient death — an invalid
|
|
14
|
-
* flag, a missing binary, an untyped vendor refusal — bounded by the
|
|
15
|
-
* profile pool size, and is NEVER narrowed by error-text matching.
|
|
16
|
-
* Transient-retryable deaths are excluded: the transient machinery retries
|
|
17
|
-
* them on the SAME profile first (rotation never fires on a plain
|
|
18
|
-
* transient).
|
|
19
|
-
*
|
|
20
|
-
* Both branches require an empty deliverable and no observed workspace
|
|
21
|
-
* mutation — a partially-acted attempt never silently reruns under another
|
|
22
|
-
* credential.
|
|
23
|
-
*/
|
|
24
1
|
import type { AttemptOutputMarkers } from "./attemptOutputMarkers.js";
|
|
2
|
+
import type { TryFacts } from "./inrun-continuity-types.js";
|
|
25
3
|
/** Typed evidence one native try presents to the rotation predicate. */
|
|
26
4
|
export interface RotationEvidence {
|
|
27
5
|
requestRefused?: boolean;
|
|
@@ -71,4 +49,10 @@ export declare function reactiveRotationEvidence(args: {
|
|
|
71
49
|
deliverableEmpty: boolean;
|
|
72
50
|
workspaceDiffNonEmpty?: boolean;
|
|
73
51
|
}): RotationEvidence;
|
|
52
|
+
/**
|
|
53
|
+
* One settled in-run try's facts as that fold's input. After progress
|
|
54
|
+
* (`forceEligible`) the no-deliverable/no-mutation fence scopes only the
|
|
55
|
+
* `fresh` carrier: the planner picks the carrier, rotation only the account.
|
|
56
|
+
*/
|
|
57
|
+
export declare function inRunRotationArgs(facts: TryFacts, forceEligible: boolean): Parameters<typeof reactiveRotationEvidence>[0];
|
|
74
58
|
//# sourceMappingURL=rotation-predicate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotation-predicate.d.ts","sourceRoot":"","sources":["../src/rotation-predicate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rotation-predicate.d.ts","sourceRoot":"","sources":["../src/rotation-predicate.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE5D,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,aAAa,EAAE,OAAO,CAAC;IACvB;;gFAE4E;IAC5E,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;iFAE6E;IAC7E,gBAAgB,EAAE,OAAO,CAAC;IAC1B;iFAC6E;IAC7E,yBAAyB,EAAE,OAAO,CAAC;IACnC;gFAC4E;IAC5E,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,OAAO,CAKV;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,gBAAgB,CASnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,EACf,aAAa,EAAE,OAAO,GACrB,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAehD"}
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A2: the WIDENED reactive rotation predicate (W5.4 + the structural branch).
|
|
3
|
+
*
|
|
4
|
+
* Two independent ways an attempt becomes rotation-eligible:
|
|
5
|
+
*
|
|
6
|
+
* 1. TYPED fast path (W5.4 canon, unchanged): the attempt saw a TYPED vendor
|
|
7
|
+
* rate-limit signal. Deliberately NOT hardened against thinking/tool
|
|
8
|
+
* activity — the canon guard is no-deliverable/no-mutation, not
|
|
9
|
+
* no-progress.
|
|
10
|
+
*
|
|
11
|
+
* 2. STRUCTURAL branch (owner decision 7=A): the attempt ended in a TERMINAL,
|
|
12
|
+
* non-transient death BEFORE the agent demonstrably did any work. This
|
|
13
|
+
* deliberately covers ANY pre-progress non-transient death — an invalid
|
|
14
|
+
* flag, a missing binary, an untyped vendor refusal — bounded by the
|
|
15
|
+
* profile pool size, and is NEVER narrowed by error-text matching.
|
|
16
|
+
* Transient-retryable deaths are excluded: the transient machinery retries
|
|
17
|
+
* them on the SAME profile first (rotation never fires on a plain
|
|
18
|
+
* transient).
|
|
19
|
+
*
|
|
20
|
+
* Both branches require an empty deliverable and no observed workspace
|
|
21
|
+
* mutation — a partially-acted attempt never silently reruns under another
|
|
22
|
+
* credential.
|
|
23
|
+
*/
|
|
24
|
+
import { acceptedTryOutput } from "@claudexor/core";
|
|
1
25
|
/**
|
|
2
26
|
* `rotation_retry_eligible`: the one predicate both lanes and both branches
|
|
3
27
|
* read. Optional fields default CONSERVATIVELY (absent evidence never widens
|
|
@@ -29,4 +53,25 @@ export function reactiveRotationEvidence(args) {
|
|
|
29
53
|
sawAgentProgress: args.markers.sawAgentProgress,
|
|
30
54
|
};
|
|
31
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* One settled in-run try's facts as that fold's input. After progress
|
|
58
|
+
* (`forceEligible`) the no-deliverable/no-mutation fence scopes only the
|
|
59
|
+
* `fresh` carrier: the planner picks the carrier, rotation only the account.
|
|
60
|
+
*/
|
|
61
|
+
export function inRunRotationArgs(facts, forceEligible) {
|
|
62
|
+
const accepted = acceptedTryOutput(facts.answer, facts.harnessErrored);
|
|
63
|
+
return {
|
|
64
|
+
markers: forceEligible
|
|
65
|
+
? { sawAgentProgress: false, fileChanges: 0, sawSessionStart: facts.markers.sawSessionStart }
|
|
66
|
+
: facts.markers,
|
|
67
|
+
requestRefused: facts.requestRefused,
|
|
68
|
+
sawTypedLimit: facts.sawTypedLimit,
|
|
69
|
+
sawRetryable: facts.sawRetryable,
|
|
70
|
+
attemptErrored: facts.harnessErrored,
|
|
71
|
+
deliverableEmpty: forceEligible
|
|
72
|
+
? true
|
|
73
|
+
: facts.workspaceDiffNonEmpty !== true && accepted.length === 0,
|
|
74
|
+
workspaceDiffNonEmpty: forceEligible ? false : facts.workspaceDiffNonEmpty,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
32
77
|
//# sourceMappingURL=rotation-predicate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotation-predicate.js","sourceRoot":"","sources":["../src/rotation-predicate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rotation-predicate.js","sourceRoot":"","sources":["../src/rotation-predicate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAyBpD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAOrC;IACC,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC7E,IAAI,KAAK,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,KAAK,CAAC,yBAAyB,KAAK,IAAI,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC;AACrF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAQxC;IACC,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,gBAAgB,EAAE,CAAC,IAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC;QACvF,yBAAyB,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY;QACpE,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB;KAChD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAe,EACf,aAAsB;IAEtB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,aAAa;YACpB,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE;YAC7F,CAAC,CAAC,KAAK,CAAC,OAAO;QACjB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,gBAAgB,EAAE,aAAa;YAC7B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,CAAC,qBAAqB,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACjE,qBAAqB,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB;KAC3E,CAAC;AACJ,CAAC"}
|
package/dist/runEventLog.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runEventLog.d.ts","sourceRoot":"","sources":["../src/runEventLog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGzF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAExF,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,GACtB,QAAQ,CAWV;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAO5E;AAcD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,GAC/C;
|
|
1
|
+
{"version":3,"file":"runEventLog.d.ts","sourceRoot":"","sources":["../src/runEventLog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGzF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAExF,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,gBAAgB,GACtB,QAAQ,CAWV;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAO5E;AAcD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,GAC/C;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,mBAAmB,CAAC;CACjC,CA4BA"}
|
package/dist/runEventLog.js
CHANGED
|
@@ -63,9 +63,10 @@ export function beginAnnouncedRun(start, announce) {
|
|
|
63
63
|
log.emit("run.created", { mode, prompt: redactSecrets(start.prompt) });
|
|
64
64
|
return preparedLedger;
|
|
65
65
|
});
|
|
66
|
-
|
|
66
|
+
const runContext = announcedRunContext({ log, store, paths, runId, taskId, mode, phase }, ledger, () => authority?.hasParent(runId) === true);
|
|
67
|
+
announce(runContext);
|
|
67
68
|
safeInvoke(input.onRunStart, { runId, taskId, runDir: paths.root });
|
|
68
69
|
announcePreparedProjectGitInitialization(input, log);
|
|
69
|
-
return { store, paths, log, ledger };
|
|
70
|
+
return { store, paths, log, ledger, runContext };
|
|
70
71
|
}
|
|
71
72
|
//# sourceMappingURL=runEventLog.js.map
|
package/dist/runEventLog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runEventLog.js","sourceRoot":"","sources":["../src/runEventLog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAgC,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAA4B,MAAM,yBAAyB,CAAC;AAsBxF,mGAAmG;AACnG,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,KAAa,EACb,MAAc,EACd,KAAuB;IAEvB,MAAM,GAAG,GAAG,IAAI,QAAQ,CACtB,UAAU,EACV,KAAK,EACL,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,OAAO,CACd,CAAC;IACF,IAAI,KAAK,CAAC,iBAAiB;QAAE,GAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAI,GAAa,EAAE,OAAgB;IACvE,IAAI,CAAC;QACH,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,wCAAwC,CAAC,KAAe,EAAE,GAAa;IAC9E,MAAM,MAAM,GAAG,KAAK,CAAC,wBAAwB,CAAC;IAC9C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAAE,OAAO;IAC1E,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;QAClC,SAAS,EAAE,KAAK,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,kBAAkB,EAAE,MAAM,CAAC,iBAAiB;QAC5C,gBAAgB,EAAE,MAAM,CAAC,eAAe;QACxC,QAAQ,EAAE,MAAM,CAAC,OAAO;KACzB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA2B,EAC3B,QAAgD;
|
|
1
|
+
{"version":3,"file":"runEventLog.js","sourceRoot":"","sources":["../src/runEventLog.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { ArtifactStore } from "@claudexor/artifact-store";
|
|
|
2
2
|
import type { BudgetLedger, BudgetTerminal } from "@claudexor/budget";
|
|
3
3
|
import type { EventLog } from "@claudexor/event-log";
|
|
4
4
|
import type { ModeKind } from "@claudexor/schema";
|
|
5
|
+
import type { ContinuityTerminalFacts } from "./continuity-terminal.js";
|
|
5
6
|
export interface AnnouncedRunContext {
|
|
6
7
|
log: EventLog;
|
|
7
8
|
store: ArtifactStore;
|
|
@@ -24,6 +25,9 @@ export interface AnnouncedRunContext {
|
|
|
24
25
|
* Ordinary runs may already have emitted a non-deferred terminal and must
|
|
25
26
|
* never be terminalized a second time by the post-drain recheck. */
|
|
26
27
|
recheckBudgetAfterBarrier?: () => boolean;
|
|
28
|
+
/** The lane's own attempts once they exist (each with its tries' accounts):
|
|
29
|
+
* a failure this owner stamps after the strategy names their failed tries. */
|
|
30
|
+
attempts?: () => readonly ContinuityTerminalFacts[];
|
|
27
31
|
}
|
|
28
32
|
type AnnouncedRunIdentity = Pick<AnnouncedRunContext, "log" | "store" | "paths" | "runId" | "taskId" | "mode" | "phase">;
|
|
29
33
|
export declare function announcedRunContext(identity: AnnouncedRunIdentity, ledger: BudgetLedger, hasDelegateAuthority: () => boolean): AnnouncedRunContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runTerminalContext.d.ts","sourceRoot":"","sources":["../src/runTerminalContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runTerminalContext.d.ts","sourceRoot":"","sources":["../src/runTerminalContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd;oEACgE;IAChE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IAC7D;kFAC8E;IAC9E,cAAc,CAAC,EAAE,MAAM,cAAc,CAAC;IACtC;;wEAEoE;IACpE,yBAAyB,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1C;kFAC8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,SAAS,uBAAuB,EAAE,CAAC;CACrD;AAED,KAAK,oBAAoB,GAAG,IAAI,CAC9B,mBAAmB,EACnB,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAClE,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,YAAY,EACpB,oBAAoB,EAAE,MAAM,OAAO,GAClC,mBAAmB,CAUrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runTerminalContext.js","sourceRoot":"","sources":["../src/runTerminalContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runTerminalContext.js","sourceRoot":"","sources":["../src/runTerminalContext.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,mBAAmB,CACjC,QAA8B,EAC9B,MAAoB,EACpB,oBAAmC;IAEnC,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;QACnC,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;QACxC,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE;QACrD,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,yBAAyB,EAAE,oBAAoB;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CancelReasonCode, type RunOutcomeFacts as RunOutcomeFactsType } from "@claudexor/schema";
|
|
1
|
+
import { type CancelReasonCode, type PoolAttemptFailure, type RunOutcomeFacts as RunOutcomeFactsType } from "@claudexor/schema";
|
|
2
2
|
import type { BudgetTerminal } from "@claudexor/budget";
|
|
3
3
|
import type { TerminalRunEventType } from "@claudexor/event-log";
|
|
4
4
|
import { type SettledBudgetSnapshot } from "./decisionBudget.js";
|
|
@@ -6,6 +6,30 @@ import type { OrchestratorResult } from "./orchestrator.js";
|
|
|
6
6
|
import type { AnnouncedRunContext } from "./runTerminalContext.js";
|
|
7
7
|
export declare function ownsDelegateDrain(context: AnnouncedRunContext): boolean;
|
|
8
8
|
export declare function postDrainBudgetFailure(context: AnnouncedRunContext, terminal: Exclude<BudgetTerminal, null>, budget: SettledBudgetSnapshot, prior: OrchestratorResult): OrchestratorResult;
|
|
9
|
+
/** The terminal-facts failure's message with the run's list, like every
|
|
10
|
+
* failure terminal; an unreadable history costs only the list, never the terminal. */
|
|
11
|
+
export declare function terminalFactsFailure(context: AnnouncedRunContext, detail: string): {
|
|
12
|
+
message: string;
|
|
13
|
+
poolAttempts: PoolAttemptFailure[];
|
|
14
|
+
};
|
|
15
|
+
/** A cancellation the terminal commit chose over the strategy's own verdict. */
|
|
16
|
+
export interface CommittedCancellation {
|
|
17
|
+
summary: string;
|
|
18
|
+
cancelReason?: string;
|
|
19
|
+
payload: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The cancel landed after the strategy's last checkpoint, so the terminal
|
|
23
|
+
* commit (not the strategy) chose it: state it like every cancelled terminal.
|
|
24
|
+
* The run's collected attempts name their earlier failed tries on the event and
|
|
25
|
+
* in summary.md; the verdict's own failure cause and record are not the
|
|
26
|
+
* cancel's (a cancellation has none), except a record that carries capture
|
|
27
|
+
* facts: it stays on the public failure surface re-labelled with this same
|
|
28
|
+
* statement (`clearFailureArtifact`), and the event keeps its address. Best
|
|
29
|
+
* effort: an unreadable history costs only the list, an unwritable artifact
|
|
30
|
+
* never the terminal.
|
|
31
|
+
*/
|
|
32
|
+
export declare function commitCancellation(context: AnnouncedRunContext, signal: AbortSignal, payload: Record<string, unknown>): CommittedCancellation;
|
|
9
33
|
export declare function terminalEventTypeFor(_originalType: TerminalRunEventType, outcome: RunOutcomeFactsType): TerminalRunEventType;
|
|
10
34
|
/** Map an abort-signal reason token to its typed terminal RunReason. The
|
|
11
35
|
* abort reason is the ONE channel a cancel's provenance survives on — before
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runTerminalHelpers.d.ts","sourceRoot":"","sources":["../src/runTerminalHelpers.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,gBAAgB,EAKrB,KAAK,eAAe,IAAI,mBAAmB,EAC5C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"runTerminalHelpers.d.ts","sourceRoot":"","sources":["../src/runTerminalHelpers.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,gBAAgB,EAKrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,IAAI,mBAAmB,EAC5C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,OAAO,EAA2B,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQnE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CASvE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,EACvC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,kBAAkB,GACxB,kBAAkB,CAoCpB;AAED;sFACsF;AACtF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAOzD;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,qBAAqB,CA8BvB;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,oBAAoB,EACnC,OAAO,EAAE,mBAAmB,GAC3B,oBAAoB,CAOtB;AAED;;;;;;;;yBAQyB;AACzB,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,OAAO,GACd,qBAAqB,GAAG,gBAAgB,CAG1C;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,mBAAmB,GACzB,mBAAmB,CAErB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAmBhG;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAMlE;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOlE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,IAAI,CAWnF;AAED,wBAAgB,eAAe,CAC7B,CAAC,EAAE,mBAAmB,EACtB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,kBAAkB,CAgBpB"}
|
|
@@ -7,9 +7,10 @@ import { join } from "node:path";
|
|
|
7
7
|
import { makeOutcomeFacts, needsOperatorAttention, normalizeCancelReasonCode, RunOutcomeFacts, } from "@claudexor/schema";
|
|
8
8
|
import { readTextSafe } from "@claudexor/util";
|
|
9
9
|
import { budgetFailureRecord, classifyBudgetFailure } from "./budgetFailure.js";
|
|
10
|
+
import { poolFailure } from "./pool-attempt-evidence.js";
|
|
10
11
|
import { reconcileDecisionBudget } from "./decisionBudget.js";
|
|
11
|
-
import { writeFailure } from "./runTerminalResults.js";
|
|
12
|
-
import { reconcileWorkProductTerminal, terminalOutcomeFacts } from "./terminalOutcome.js";
|
|
12
|
+
import { cancellationStatement, writeFailure } from "./runTerminalResults.js";
|
|
13
|
+
import { clearFailureArtifact, reconcileWorkProductTerminal, terminalOutcomeFacts, } from "./terminalOutcome.js";
|
|
13
14
|
export function ownsDelegateDrain(context) {
|
|
14
15
|
try {
|
|
15
16
|
return context.recheckBudgetAfterBarrier?.() === true;
|
|
@@ -26,8 +27,13 @@ export function postDrainBudgetFailure(context, terminal, budget, prior) {
|
|
|
26
27
|
const facts = terminalOutcomeFacts(prior.facts, "failed", mapping.reason);
|
|
27
28
|
reconcileDecisionBudget(context, budget, { facts, why: mapping.safeMessage });
|
|
28
29
|
reconcileWorkProductTerminal(context, facts);
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
const { message, poolAttempts } = poolFailure(mapping.safeMessage, context.attempts?.() ?? []);
|
|
31
|
+
context.store.writeText(join(context.paths.finalDir, "summary.md"), `# Run ${context.runId} (${context.mode})\n\n- Lifecycle: failed (${mapping.reason})\n- Phase: budget\n\n${message}\n`);
|
|
32
|
+
writeFailure(context.store, context.paths, {
|
|
33
|
+
...budgetFailureRecord(mapping, { runDir: context.paths.root }),
|
|
34
|
+
safeMessage: message,
|
|
35
|
+
poolAttempts,
|
|
36
|
+
});
|
|
31
37
|
context.log.emit("output.ready", {
|
|
32
38
|
kind: "summary",
|
|
33
39
|
path: "final/summary.md",
|
|
@@ -38,17 +44,74 @@ export function postDrainBudgetFailure(context, terminal, budget, prior) {
|
|
|
38
44
|
facts,
|
|
39
45
|
reason: mapping.reason,
|
|
40
46
|
phase: "budget",
|
|
41
|
-
error:
|
|
47
|
+
error: message,
|
|
48
|
+
pool_attempts: poolAttempts,
|
|
42
49
|
failure_ref: "final/failure.yaml",
|
|
43
50
|
});
|
|
44
51
|
return {
|
|
45
52
|
...prior,
|
|
46
53
|
lifecycle: "failed",
|
|
47
54
|
facts,
|
|
48
|
-
summary:
|
|
55
|
+
summary: message,
|
|
49
56
|
spendUsd: budget.spendUsd,
|
|
50
57
|
};
|
|
51
58
|
}
|
|
59
|
+
/** The terminal-facts failure's message with the run's list, like every
|
|
60
|
+
* failure terminal; an unreadable history costs only the list, never the terminal. */
|
|
61
|
+
export function terminalFactsFailure(context, detail) {
|
|
62
|
+
const message = `terminal facts preparation failed: ${detail}`;
|
|
63
|
+
try {
|
|
64
|
+
return poolFailure(message, context.attempts?.() ?? []);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return { message, poolAttempts: [] };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The cancel landed after the strategy's last checkpoint, so the terminal
|
|
72
|
+
* commit (not the strategy) chose it: state it like every cancelled terminal.
|
|
73
|
+
* The run's collected attempts name their earlier failed tries on the event and
|
|
74
|
+
* in summary.md; the verdict's own failure cause and record are not the
|
|
75
|
+
* cancel's (a cancellation has none), except a record that carries capture
|
|
76
|
+
* facts: it stays on the public failure surface re-labelled with this same
|
|
77
|
+
* statement (`clearFailureArtifact`), and the event keeps its address. Best
|
|
78
|
+
* effort: an unreadable history costs only the list, an unwritable artifact
|
|
79
|
+
* never the terminal.
|
|
80
|
+
*/
|
|
81
|
+
export function commitCancellation(context, signal, payload) {
|
|
82
|
+
let attempts = null;
|
|
83
|
+
try {
|
|
84
|
+
attempts = context.attempts?.() ?? null;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
/* the cancellation stands without its list */
|
|
88
|
+
}
|
|
89
|
+
const statement = cancellationStatement(context.runId, context.mode, signal, attempts ?? []);
|
|
90
|
+
try {
|
|
91
|
+
context.store.writeText(join(context.paths.finalDir, "summary.md"), statement.markdown);
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
/* the terminal event remains the authority */
|
|
95
|
+
}
|
|
96
|
+
let failureKept = false;
|
|
97
|
+
try {
|
|
98
|
+
failureKept = clearFailureArtifact(context, { summary: statement.summary });
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
/* the terminal event remains the authority */
|
|
102
|
+
}
|
|
103
|
+
const { phase: _phase, error: _error, failure_ref: _failureRef, ...kept } = payload;
|
|
104
|
+
return {
|
|
105
|
+
summary: statement.summary,
|
|
106
|
+
...(statement.cancelReason ? { cancelReason: statement.cancelReason } : {}),
|
|
107
|
+
payload: {
|
|
108
|
+
...kept,
|
|
109
|
+
...(failureKept ? { failure_ref: "final/failure.yaml" } : {}),
|
|
110
|
+
...(statement.cancelReason ? { cancel_reason: statement.cancelReason } : {}),
|
|
111
|
+
...(attempts ? { pool_attempts: statement.poolAttempts } : {}),
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
52
115
|
export function terminalEventTypeFor(_originalType, outcome) {
|
|
53
116
|
if (outcome.lifecycle !== "succeeded")
|
|
54
117
|
return "run.failed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runTerminalHelpers.js","sourceRoot":"","sources":["../src/runTerminalHelpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAEL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,
|
|
1
|
+
{"version":3,"file":"runTerminalHelpers.js","sourceRoot":"","sources":["../src/runTerminalHelpers.ts"],"names":[],"mappings":"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"}
|