@claudexor/orchestrator 4.1.1 → 4.3.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 +5 -13
- package/dist/account-resolution.d.ts.map +1 -1
- package/dist/account-resolution.js +14 -15
- 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 +6 -10
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/attemptUsageCost.d.ts +6 -1
- package/dist/attemptUsageCost.d.ts.map +1 -1
- package/dist/attemptUsageCost.js +16 -1
- package/dist/attemptUsageCost.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/candidateReview.d.ts.map +1 -1
- package/dist/candidateReview.js +1 -0
- package/dist/candidateReview.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/continuation-evidence.d.ts.map +1 -1
- package/dist/continuation-evidence.js +1 -0
- package/dist/continuation-evidence.js.map +1 -1
- package/dist/continuity-notice.d.ts.map +1 -1
- package/dist/continuity-notice.js +1 -0
- package/dist/continuity-notice.js.map +1 -1
- 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-cooldown.d.ts +2 -0
- package/dist/credential-cooldown.d.ts.map +1 -1
- package/dist/credential-cooldown.js +7 -1
- package/dist/credential-cooldown.js.map +1 -1
- package/dist/credential-preflight.d.ts.map +1 -1
- package/dist/credential-preflight.js +1 -0
- package/dist/credential-preflight.js.map +1 -1
- package/dist/credential-profile-rotation.d.ts.map +1 -1
- package/dist/credential-profile-rotation.js +4 -3
- package/dist/credential-profile-rotation.js.map +1 -1
- package/dist/decisionBudget.d.ts +17 -5
- package/dist/decisionBudget.d.ts.map +1 -1
- package/dist/decisionBudget.js +28 -6
- package/dist/decisionBudget.js.map +1 -1
- package/dist/deepScanReducer.d.ts +1 -1
- package/dist/deepScanReducer.d.ts.map +1 -1
- package/dist/delegationBudgetAuthority.d.ts +2 -2
- package/dist/delegationBudgetAuthority.d.ts.map +1 -1
- package/dist/delegationBudgetAuthority.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.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 +10 -2
- package/dist/inrun-continuity.d.ts.map +1 -1
- package/dist/inrun-continuity.js +69 -50
- package/dist/inrun-continuity.js.map +1 -1
- package/dist/inrun-continuity.test-support.d.ts +17 -3
- 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/interaction.d.ts +5 -5
- package/dist/interaction.d.ts.map +1 -1
- package/dist/interaction.js +58 -26
- package/dist/interaction.js.map +1 -1
- package/dist/modelGovernance.d.ts +3 -1
- package/dist/modelGovernance.d.ts.map +1 -1
- package/dist/modelGovernance.js +4 -0
- package/dist/modelGovernance.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 +10 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +283 -335
- package/dist/orchestrator.js.map +1 -1
- package/dist/persistedPatch.js +2 -2
- package/dist/persistedPatch.js.map +1 -1
- package/dist/plannerAttempt.d.ts +1 -1
- package/dist/plannerAttempt.d.ts.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/processing-routing.d.ts.map +1 -1
- package/dist/processing-routing.js +9 -0
- package/dist/processing-routing.js.map +1 -1
- package/dist/quota-refusal-scope.d.ts +11 -0
- package/dist/quota-refusal-scope.d.ts.map +1 -0
- package/dist/quota-refusal-scope.js +21 -0
- package/dist/quota-refusal-scope.js.map +1 -0
- 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/retry-processing-intent.d.ts +19 -0
- package/dist/retry-processing-intent.d.ts.map +1 -0
- package/dist/retry-processing-intent.js +32 -0
- package/dist/retry-processing-intent.js.map +1 -0
- package/dist/root-ledger.d.ts.map +1 -1
- package/dist/root-ledger.js +3 -1
- package/dist/root-ledger.js.map +1 -1
- 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/runSupport.d.ts +2 -2
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +3 -4
- package/dist/runSupport.js.map +1 -1
- package/dist/runTerminalContext.d.ts +7 -1
- package/dist/runTerminalContext.d.ts.map +1 -1
- package/dist/runTerminalContext.js +1 -0
- 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/dist/transientClassify.d.ts +1 -0
- package/dist/transientClassify.d.ts.map +1 -1
- package/dist/transientClassify.js +3 -0
- package/dist/transientClassify.js.map +1 -1
- package/package.json +17 -17
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ArtifactStore, RunPaths } from "@claudexor/artifact-store";
|
|
2
|
+
import type { BudgetLedger } from "@claudexor/budget";
|
|
3
|
+
import type { EventLog } from "@claudexor/event-log";
|
|
4
|
+
import { type ModeKind } from "@claudexor/schema";
|
|
5
|
+
import type { OrchestratorResult } from "./orchestrator.js";
|
|
6
|
+
import type { AttemptTelemetry } from "./attemptTelemetry.js";
|
|
7
|
+
import { type BudgetDenial } from "./budgetFailure.js";
|
|
8
|
+
import { type ContinuityTerminalFacts } from "./continuity-terminal.js";
|
|
9
|
+
import { type declaredFailure } from "./runTerminalResults.js";
|
|
10
|
+
/** One read-only (Ask/Plan chain or deep-scan scout) attempt as its terminals see it. */
|
|
11
|
+
export interface ReadonlyAttempt extends ContinuityTerminalFacts {
|
|
12
|
+
attemptId: string;
|
|
13
|
+
harnessId: string;
|
|
14
|
+
status: "success" | "failed" | "blocked";
|
|
15
|
+
report: string;
|
|
16
|
+
answerMatches?: number;
|
|
17
|
+
error: string | null;
|
|
18
|
+
telemetry: AttemptTelemetry;
|
|
19
|
+
/** QA-019: this scout was refused BEFORE spawn by the budget gate — it
|
|
20
|
+
* belongs in the denominator/omissions but never ran the harness, so the
|
|
21
|
+
* all-denied terminal still routes through the QA-050 budget classifier. */
|
|
22
|
+
budgetDenied?: boolean;
|
|
23
|
+
/** D-16 r8: scout ran out of context — a failed omission, never reducer
|
|
24
|
+
* input; ALL-interrupted terminalizes interrupted. */
|
|
25
|
+
interrupted?: boolean;
|
|
26
|
+
/** A5: the typed refusal (exhausted credential pool / spent window) this
|
|
27
|
+
* attempt died on, so the chain terminal can speak it machine-readably. */
|
|
28
|
+
declaredFailure?: ReturnType<typeof declaredFailure>;
|
|
29
|
+
}
|
|
30
|
+
interface ReadonlyTerminalContext {
|
|
31
|
+
store: ArtifactStore;
|
|
32
|
+
paths: RunPaths;
|
|
33
|
+
log: EventLog;
|
|
34
|
+
runId: string;
|
|
35
|
+
taskId: string;
|
|
36
|
+
mode: ModeKind;
|
|
37
|
+
ledger: BudgetLedger;
|
|
38
|
+
attempts: ReadonlyAttempt[];
|
|
39
|
+
attemptTelemetries: {
|
|
40
|
+
attemptId: string;
|
|
41
|
+
harnessId: string;
|
|
42
|
+
telemetry: AttemptTelemetry;
|
|
43
|
+
}[];
|
|
44
|
+
budgetStopped: boolean;
|
|
45
|
+
budgetDenial: BudgetDenial | null;
|
|
46
|
+
writeTelemetry(): void;
|
|
47
|
+
}
|
|
48
|
+
/** A read-only chain with no successful attempt (QA-036/QA-050/A5). */
|
|
49
|
+
export declare function readOnlyChainFailureResult(input: ReadonlyTerminalContext & {
|
|
50
|
+
fallbackOpen: boolean;
|
|
51
|
+
}): OrchestratorResult;
|
|
52
|
+
/** A deep scan whose every explorer failed: no synthesizable deliverable (QA-036). */
|
|
53
|
+
export declare function deepScanFailureResult(input: ReadonlyTerminalContext): OrchestratorResult;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=readonlyTerminals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readonlyTerminals.d.ts","sourceRoot":"","sources":["../src/readonlyTerminals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAA8C,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAO3F,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE7E,yFAAyF;AACzF,MAAM,WAAW,eAAgB,SAAQ,uBAAuB;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;gFAE4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;0DACsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;+EAC2E;IAC3E,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;CACtD;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAE,EAAE,CAAC;IAC5F,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,uEAAuE;AACvE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,uBAAuB,GAAG;IAAE,YAAY,EAAE,OAAO,CAAA;CAAE,GACzD,kBAAkB,CA0HpB;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,CAuFxF"}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ArtifactStore } from "@claudexor/artifact-store";
|
|
2
|
+
import { type ProcessingReceipt } from "@claudexor/schema";
|
|
3
|
+
export declare const PROCESSING_INTENT_FILE = "processing_intent.yaml";
|
|
4
|
+
/**
|
|
5
|
+
* Freeze the speed each routed harness chose without a preference at its first
|
|
6
|
+
* routing (the earliest typed selection, before any attempt). An Exact Retry
|
|
7
|
+
* records the intent it was given, not its own fallback, so a retry chain keeps
|
|
8
|
+
* the original choice and provenance. Later routings in the same run only add
|
|
9
|
+
* harnesses that were not routed before.
|
|
10
|
+
*/
|
|
11
|
+
export declare function recordProcessingIntent(store: Pick<ArtifactStore, "readYaml" | "writeYaml">, contextDir: string, intents: Readonly<Record<string, ProcessingReceipt>>): void;
|
|
12
|
+
/**
|
|
13
|
+
* The speed an Exact Retry keeps: its source run's frozen routing-time intent,
|
|
14
|
+
* like the frozen model and effort (QA-035), so a settings or account change
|
|
15
|
+
* between the runs never re-resolves it. A source without that record (an older
|
|
16
|
+
* run, or one routed with a preference) yields nothing.
|
|
17
|
+
*/
|
|
18
|
+
export declare function retryProcessingIntent(store: Pick<ArtifactStore, "readYaml">, sourceRunDir: string): Record<string, ProcessingReceipt> | undefined;
|
|
19
|
+
//# sourceMappingURL=retry-processing-intent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-processing-intent.d.ts","sourceRoot":"","sources":["../src/retry-processing-intent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEhF,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC,EACpD,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,GACnD,IAAI,CAYN;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EACtC,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,SAAS,CAK/C"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { RunProcessingIntent } from "@claudexor/schema";
|
|
3
|
+
export const PROCESSING_INTENT_FILE = "processing_intent.yaml";
|
|
4
|
+
/**
|
|
5
|
+
* Freeze the speed each routed harness chose without a preference at its first
|
|
6
|
+
* routing (the earliest typed selection, before any attempt). An Exact Retry
|
|
7
|
+
* records the intent it was given, not its own fallback, so a retry chain keeps
|
|
8
|
+
* the original choice and provenance. Later routings in the same run only add
|
|
9
|
+
* harnesses that were not routed before.
|
|
10
|
+
*/
|
|
11
|
+
export function recordProcessingIntent(store, contextDir, intents) {
|
|
12
|
+
const path = join(contextDir, PROCESSING_INTENT_FILE);
|
|
13
|
+
const recorded = RunProcessingIntent.safeParse(store.readYaml(path)).data?.harnesses ?? {};
|
|
14
|
+
const added = Object.entries(intents).filter(([harnessId]) => !(harnessId in recorded));
|
|
15
|
+
if (added.length === 0)
|
|
16
|
+
return;
|
|
17
|
+
store.writeYaml(path, RunProcessingIntent.parse({
|
|
18
|
+
schema_version: 1,
|
|
19
|
+
harnesses: { ...recorded, ...Object.fromEntries(added) },
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The speed an Exact Retry keeps: its source run's frozen routing-time intent,
|
|
24
|
+
* like the frozen model and effort (QA-035), so a settings or account change
|
|
25
|
+
* between the runs never re-resolves it. A source without that record (an older
|
|
26
|
+
* run, or one routed with a preference) yields nothing.
|
|
27
|
+
*/
|
|
28
|
+
export function retryProcessingIntent(store, sourceRunDir) {
|
|
29
|
+
const recorded = RunProcessingIntent.safeParse(store.readYaml(join(sourceRunDir, "context", PROCESSING_INTENT_FILE))).data?.harnesses;
|
|
30
|
+
return recorded && Object.keys(recorded).length > 0 ? recorded : undefined;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=retry-processing-intent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry-processing-intent.js","sourceRoot":"","sources":["../src/retry-processing-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAA0B,MAAM,mBAAmB,CAAC;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAoD,EACpD,UAAkB,EAClB,OAAoD;IAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,KAAK,CAAC,SAAS,CACb,IAAI,EACJ,mBAAmB,CAAC,KAAK,CAAC;QACxB,cAAc,EAAE,CAAC;QACjB,SAAS,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;KACzD,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAsC,EACtC,YAAoB;IAEpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAC5C,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC,CACtE,CAAC,IAAI,EAAE,SAAS,CAAC;IAClB,OAAO,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-ledger.d.ts","sourceRoot":"","sources":["../src/root-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"root-ledger.d.ts","sourceRoot":"","sources":["../src/root-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C,GAAG,YAAY,CAsCf"}
|
package/dist/root-ledger.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { BudgetLedger } from "@claudexor/budget";
|
|
2
2
|
export function createRootLedger(args) {
|
|
3
|
-
const onCashSettled = (cashSpendUsd, valuationUsd, cashEstimated, valuationKnowledge, cashKnowledge) => args.log.emit("budget.cash", {
|
|
3
|
+
const onCashSettled = (cashSpendUsd, valuationUsd, cashEstimated, valuationKnowledge, cashKnowledge, controllableCashKnowledge) => args.log.emit("budget.cash", {
|
|
4
4
|
cash_spend_usd: cashSpendUsd,
|
|
5
5
|
valuation_usd: valuationUsd,
|
|
6
6
|
estimated: cashEstimated,
|
|
7
7
|
valuation_knowledge: valuationKnowledge,
|
|
8
8
|
cash_knowledge: cashKnowledge,
|
|
9
|
+
// The finite cap governs this; reported cash can stay unknown beside it.
|
|
10
|
+
controllable_cash_knowledge: controllableCashKnowledge,
|
|
9
11
|
});
|
|
10
12
|
const ledger = args.input.delegatedFromRunId
|
|
11
13
|
? args.authority?.attachChild(args.input.delegatedFromRunId, args.input.delegationAdmissionId ?? "", args.input.runId, args.contract.task_id, onCashSettled)
|
package/dist/root-ledger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-ledger.js","sourceRoot":"","sources":["../src/root-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"root-ledger.js","sourceRoot":"","sources":["../src/root-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC;AAM3E,MAAM,UAAU,gBAAgB,CAAC,IAMhC;IACC,MAAM,aAAa,GAAwB,CACzC,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,yBAAyB,EACzB,EAAE,CACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE;QAC3B,cAAc,EAAE,YAAY;QAC5B,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,aAAa;QACxB,mBAAmB,EAAE,kBAAkB;QACvC,cAAc,EAAE,aAAa;QAC7B,yEAAyE;QACzE,2BAA2B,EAAE,yBAAyB;KACvD,CAAC,CAAC;IACL,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CACzB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAC7B,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,EACtC,IAAI,CAAC,KAAK,CAAC,KAAM,EACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrB,aAAa,CACd;QACH,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,iBAAiB,IAAI,CAAC,QAAQ,CAAC,OAAO,uDAAuD,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAC7H,EACD,EAAE,IAAI,EAAE,sCAAsC,EAAE,MAAM,EAAE,GAAG,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAAE,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,CAAC;IAC5E,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc;QAAE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAClF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -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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"}
|
package/dist/runSupport.d.ts
CHANGED
|
@@ -127,14 +127,14 @@ export interface ResolvedConfigLike {
|
|
|
127
127
|
max_delay_ms: number;
|
|
128
128
|
};
|
|
129
129
|
reviewer_timeout_ms: number;
|
|
130
|
-
harness_inactivity_timeout_ms: number;
|
|
130
|
+
harness_inactivity_timeout_ms: number | null;
|
|
131
131
|
};
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
134
|
export declare function envInheritance(cfg: ResolvedConfigLike): "mirror_native" | "clean";
|
|
135
135
|
export declare function transientRetryPolicy(cfg: ResolvedConfigLike): TransientRetryPolicy;
|
|
136
136
|
export declare function reviewerTimeoutMs(cfg: ResolvedConfigLike): number;
|
|
137
|
-
export declare function harnessInactivityTimeoutMs(cfg: ResolvedConfigLike): number;
|
|
137
|
+
export declare function harnessInactivityTimeoutMs(cfg: ResolvedConfigLike): number | null;
|
|
138
138
|
/** Typed auth-switch disclosure: adapters mark auth_switched on a message;
|
|
139
139
|
* the run event log gets the typed route.fallback payload. */
|
|
140
140
|
export declare function observeAuthSwitch(log: EventLog | undefined, harnessId: string, attemptId: string, ev: HarnessEvent): void;
|
package/dist/runSupport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runSupport.d.ts","sourceRoot":"","sources":["../src/runSupport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D;;;;;;;qDAOqD;AACrD,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC,GAC1E,OAAO,CAOT;AAED;;6EAE6E;AAC7E,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,eAAe;IAGrB,KAAK;;;;;;;;;;;;;;;;;;IACL,oBAAoB,EAAE,SAAS;IAC/B,cAAc;EAEjB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;EAYpE;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE;IACL,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,GACA,IAAI,CAiBN;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,MAAM,EAAE,oBAAoB,EAC5B,UAAU,EAAE,MAAM,GACjB,MAAM,CAIR;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAiCpE;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EAAE,EACxB,kBAAkB,GAAE,MAAM,EAAO,EACjC,SAAS,GAAE,qBAAqB,EAAO,EACvC,KAAK,GAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAM,GACtE,MAAM,CA2BR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,GACjE,MAAM,CAcR;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGrD;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,YAAY,CAWjE;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,YAAY,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"runSupport.d.ts","sourceRoot":"","sources":["../src/runSupport.ts"],"names":[],"mappings":"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"}
|
package/dist/runSupport.js
CHANGED
|
@@ -217,12 +217,11 @@ export function harnessEventPayload(harnessId, attemptId, ev) {
|
|
|
217
217
|
quota: safe.quota,
|
|
218
218
|
rate_limit: safe.rate_limit,
|
|
219
219
|
request_refusal: safe.request_refusal,
|
|
220
|
+
permission_denial: safe.permission_denial,
|
|
220
221
|
tool: safe.tool,
|
|
221
222
|
interaction: safe.interaction,
|
|
222
|
-
//
|
|
223
|
-
//
|
|
224
|
-
// activity feed on `status` — dropping them here silently killed both
|
|
225
|
-
// on the LIVE path (caught by the F2.5 E2E smoke, not unit tests).
|
|
223
|
+
// Preserve finality/status for answer dedup and activity (W-C1/W-C2);
|
|
224
|
+
// losing them here broke both on the live path (F2.5 E2E).
|
|
226
225
|
final: safe.final,
|
|
227
226
|
status: safe.status,
|
|
228
227
|
payload: safe.payload,
|