@claudexor/orchestrator 4.8.1 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-pool.d.ts +4 -1
- package/dist/account-pool.d.ts.map +1 -1
- package/dist/account-pool.js +25 -19
- package/dist/account-pool.js.map +1 -1
- package/dist/account-resolution.d.ts +1 -4
- package/dist/account-resolution.d.ts.map +1 -1
- package/dist/account-resolution.js +19 -42
- package/dist/account-resolution.js.map +1 -1
- package/dist/attemptOutputMarkers.d.ts +7 -0
- package/dist/attemptOutputMarkers.d.ts.map +1 -1
- package/dist/attemptOutputMarkers.js +1 -1
- package/dist/attemptOutputMarkers.js.map +1 -1
- package/dist/attemptTelemetry.d.ts +4 -1
- package/dist/attemptTelemetry.d.ts.map +1 -1
- package/dist/attemptTelemetry.js +9 -26
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/candidateEvidence.d.ts +12 -9
- package/dist/candidateEvidence.d.ts.map +1 -1
- package/dist/candidateEvidence.js +38 -13
- package/dist/candidateEvidence.js.map +1 -1
- package/dist/candidateOutputs.d.ts +44 -22
- package/dist/candidateOutputs.d.ts.map +1 -1
- package/dist/candidateOutputs.js +116 -72
- package/dist/candidateOutputs.js.map +1 -1
- package/dist/candidateReview.d.ts.map +1 -1
- package/dist/candidateReview.js +44 -8
- package/dist/candidateReview.js.map +1 -1
- package/dist/candidateTerminals.d.ts +1 -0
- package/dist/candidateTerminals.d.ts.map +1 -1
- package/dist/candidateTerminals.js +11 -6
- package/dist/candidateTerminals.js.map +1 -1
- package/dist/candidateWorkProduct.d.ts +2 -1
- package/dist/candidateWorkProduct.d.ts.map +1 -1
- package/dist/candidateWorkProduct.js +6 -3
- package/dist/candidateWorkProduct.js.map +1 -1
- package/dist/captureRefusal.d.ts +29 -1
- package/dist/captureRefusal.d.ts.map +1 -1
- package/dist/captureRefusal.js +114 -8
- package/dist/captureRefusal.js.map +1 -1
- package/dist/continuation-chain.test-support.d.ts +473 -0
- package/dist/continuation-chain.test-support.d.ts.map +1 -0
- package/dist/continuation-chain.test-support.js +206 -0
- package/dist/continuation-chain.test-support.js.map +1 -0
- package/dist/continuation-custody.d.ts +4 -1
- package/dist/continuation-custody.d.ts.map +1 -1
- package/dist/continuation-custody.js +68 -28
- package/dist/continuation-custody.js.map +1 -1
- package/dist/continuation-evidence-io.d.ts +30 -4
- package/dist/continuation-evidence-io.d.ts.map +1 -1
- package/dist/continuation-evidence-io.js +162 -46
- package/dist/continuation-evidence-io.js.map +1 -1
- package/dist/continuation-evidence.d.ts +40 -3
- package/dist/continuation-evidence.d.ts.map +1 -1
- package/dist/continuation-evidence.js +85 -11
- package/dist/continuation-evidence.js.map +1 -1
- package/dist/continuation-input.d.ts +10 -1
- package/dist/continuation-input.d.ts.map +1 -1
- package/dist/continuation-input.js +21 -20
- package/dist/continuation-input.js.map +1 -1
- package/dist/continuation-later.d.ts +30 -0
- package/dist/continuation-later.d.ts.map +1 -0
- package/dist/continuation-later.js +108 -0
- package/dist/continuation-later.js.map +1 -0
- package/dist/continue-from.d.ts +4 -3
- package/dist/continue-from.d.ts.map +1 -1
- package/dist/continue-from.js +62 -26
- package/dist/continue-from.js.map +1 -1
- package/dist/continuity-notice.d.ts +3 -1
- package/dist/continuity-notice.d.ts.map +1 -1
- package/dist/continuity-notice.js +3 -1
- package/dist/continuity-notice.js.map +1 -1
- package/dist/continuity-terminal.d.ts +16 -0
- package/dist/continuity-terminal.d.ts.map +1 -1
- package/dist/continuity-terminal.js +21 -0
- package/dist/continuity-terminal.js.map +1 -1
- package/dist/continuity.d.ts +1 -1
- package/dist/continuity.d.ts.map +1 -1
- package/dist/contract-gates.d.ts.map +1 -1
- package/dist/contract-gates.js +11 -6
- package/dist/contract-gates.js.map +1 -1
- package/dist/credential-cooldown.d.ts +2 -1
- package/dist/credential-cooldown.d.ts.map +1 -1
- package/dist/credential-cooldown.js +16 -7
- package/dist/credential-cooldown.js.map +1 -1
- package/dist/credential-preflight.d.ts.map +1 -1
- package/dist/credential-preflight.js +10 -7
- package/dist/credential-preflight.js.map +1 -1
- package/dist/credential-profile-rotation.d.ts +10 -3
- package/dist/credential-profile-rotation.d.ts.map +1 -1
- package/dist/credential-profile-rotation.js +28 -26
- package/dist/credential-profile-rotation.js.map +1 -1
- package/dist/deepScanReducer.d.ts +0 -3
- package/dist/deepScanReducer.d.ts.map +1 -1
- package/dist/deepScanReducer.js +22 -26
- package/dist/deepScanReducer.js.map +1 -1
- package/dist/delegationFailure.d.ts +34 -5
- package/dist/delegationFailure.d.ts.map +1 -1
- package/dist/delegationFailure.js +6 -4
- package/dist/delegationFailure.js.map +1 -1
- package/dist/delegationToolEvidence.d.ts +2 -0
- package/dist/delegationToolEvidence.d.ts.map +1 -1
- package/dist/delegationToolEvidence.js +21 -0
- package/dist/delegationToolEvidence.js.map +1 -1
- package/dist/diffReview.d.ts +1 -8
- package/dist/diffReview.d.ts.map +1 -1
- package/dist/diffReview.js +3 -18
- package/dist/diffReview.js.map +1 -1
- package/dist/directoryCandidate.d.ts +1 -1
- package/dist/directoryCandidate.d.ts.map +1 -1
- package/dist/directoryCandidate.js +13 -13
- package/dist/directoryCandidate.js.map +1 -1
- package/dist/inrun-continuity-carrier.d.ts +11 -1
- package/dist/inrun-continuity-carrier.d.ts.map +1 -1
- package/dist/inrun-continuity-carrier.js +32 -10
- package/dist/inrun-continuity-carrier.js.map +1 -1
- package/dist/inrun-continuity-types.d.ts +17 -4
- package/dist/inrun-continuity-types.d.ts.map +1 -1
- package/dist/inrun-continuity.d.ts +8 -3
- package/dist/inrun-continuity.d.ts.map +1 -1
- package/dist/inrun-continuity.js +41 -37
- package/dist/inrun-continuity.js.map +1 -1
- package/dist/inrun-continuity.test-support.d.ts +69 -4
- package/dist/inrun-continuity.test-support.d.ts.map +1 -1
- package/dist/inrun-continuity.test-support.js +12 -2
- package/dist/inrun-continuity.test-support.js.map +1 -1
- package/dist/modelGovernance.d.ts +87 -9
- package/dist/modelGovernance.d.ts.map +1 -1
- package/dist/modelGovernance.js +110 -15
- package/dist/modelGovernance.js.map +1 -1
- package/dist/orchestrator-credentials.d.ts +9 -4
- package/dist/orchestrator-credentials.d.ts.map +1 -1
- package/dist/orchestrator-credentials.js +14 -6
- package/dist/orchestrator-credentials.js.map +1 -1
- package/dist/orchestrator.d.ts +1 -2
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +248 -224
- package/dist/orchestrator.js.map +1 -1
- package/dist/planFinalize.d.ts.map +1 -1
- package/dist/planFinalize.js +3 -7
- package/dist/planFinalize.js.map +1 -1
- package/dist/planRun.js +2 -2
- package/dist/planRun.js.map +1 -1
- package/dist/plannerAttempt.d.ts +0 -2
- package/dist/plannerAttempt.d.ts.map +1 -1
- package/dist/plannerAttempt.js +64 -30
- package/dist/plannerAttempt.js.map +1 -1
- package/dist/policyFindings.d.ts +3 -0
- package/dist/policyFindings.d.ts.map +1 -1
- package/dist/policyFindings.js +11 -1
- package/dist/policyFindings.js.map +1 -1
- package/dist/pool-attempt-evidence.d.ts +1 -1
- package/dist/pool-attempt-evidence.d.ts.map +1 -1
- package/dist/pool-attempt-evidence.js +1 -1
- package/dist/pool-attempt-evidence.js.map +1 -1
- package/dist/primary-divergence.d.ts +7 -2
- package/dist/primary-divergence.d.ts.map +1 -1
- package/dist/primary-divergence.js +13 -5
- package/dist/primary-divergence.js.map +1 -1
- package/dist/quota-refusal-scope.d.ts +39 -1
- package/dist/quota-refusal-scope.d.ts.map +1 -1
- package/dist/quota-refusal-scope.js +95 -1
- package/dist/quota-refusal-scope.js.map +1 -1
- package/dist/readonlyTerminals.d.ts +0 -1
- package/dist/readonlyTerminals.d.ts.map +1 -1
- package/dist/readonlyTerminals.js +5 -3
- package/dist/readonlyTerminals.js.map +1 -1
- package/dist/requestRequirements.d.ts +23 -0
- package/dist/requestRequirements.d.ts.map +1 -1
- package/dist/requestRequirements.js +22 -0
- package/dist/requestRequirements.js.map +1 -1
- package/dist/resultNotice.d.ts +14 -0
- package/dist/resultNotice.d.ts.map +1 -0
- package/dist/resultNotice.js +21 -0
- package/dist/resultNotice.js.map +1 -0
- package/dist/reviewerInventory.d.ts +47 -0
- package/dist/reviewerInventory.d.ts.map +1 -0
- package/dist/reviewerInventory.js +74 -0
- package/dist/reviewerInventory.js.map +1 -0
- package/dist/reviewerPanel.d.ts.map +1 -1
- package/dist/reviewerPanel.js +37 -60
- package/dist/reviewerPanel.js.map +1 -1
- package/dist/routing-failure.d.ts +2 -1
- package/dist/routing-failure.d.ts.map +1 -1
- package/dist/routing-failure.js +2 -0
- package/dist/routing-failure.js.map +1 -1
- package/dist/runAdmission.d.ts.map +1 -1
- package/dist/runAdmission.js +1 -14
- package/dist/runAdmission.js.map +1 -1
- package/dist/runEventLog.js +2 -2
- package/dist/runEventLog.js.map +1 -1
- package/dist/runFactsBuilder.d.ts.map +1 -1
- package/dist/runFactsBuilder.js +18 -10
- package/dist/runFactsBuilder.js.map +1 -1
- package/dist/runFactsDeliverable.d.ts.map +1 -1
- package/dist/runFactsDeliverable.js +7 -1
- package/dist/runFactsDeliverable.js.map +1 -1
- package/dist/runSupport.d.ts +5 -10
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +40 -40
- package/dist/runSupport.js.map +1 -1
- package/dist/runTerminalResults.d.ts +9 -1
- package/dist/runTerminalResults.d.ts.map +1 -1
- package/dist/runTerminalResults.js +27 -5
- package/dist/runTerminalResults.js.map +1 -1
- package/dist/savedCandidate.d.ts +43 -0
- package/dist/savedCandidate.d.ts.map +1 -0
- package/dist/savedCandidate.js +88 -0
- package/dist/savedCandidate.js.map +1 -0
- package/dist/secretDiff.d.ts +85 -46
- package/dist/secretDiff.d.ts.map +1 -1
- package/dist/secretDiff.js +123 -126
- package/dist/secretDiff.js.map +1 -1
- package/dist/task-contract-builder.d.ts.map +1 -1
- package/dist/task-contract-builder.js +5 -7
- package/dist/task-contract-builder.js.map +1 -1
- package/dist/workReportEnvelope.d.ts.map +1 -1
- package/dist/workReportEnvelope.js +4 -16
- package/dist/workReportEnvelope.js.map +1 -1
- package/package.json +17 -17
- package/dist/persistedPatch.d.ts +0 -55
- package/dist/persistedPatch.d.ts.map +0 -1
- package/dist/persistedPatch.js +0 -132
- package/dist/persistedPatch.js.map +0 -1
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* adapter cannot move, the mind asked for a re-brief), the successor is a
|
|
6
6
|
* FRESH vendor session re-grounded by an EVIDENCE INDEX: the original work
|
|
7
7
|
* order, admitted steering (live messages) with their delivery status, the
|
|
8
|
-
* retained assistant output, a tool-call index (name, completed /
|
|
8
|
+
* retained assistant output, a tool-call index (name, completed / unconfirmed
|
|
9
|
+
* command / unresolved),
|
|
9
10
|
* the diff stat and absolute paths to the predecessor's event log and attempt
|
|
10
11
|
* artifacts readable from the new environment. Bounded inline with honest
|
|
11
12
|
* truncation (`summarized` is true also when a single section was cut). No
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
* continuation keep that packet; the evidence index serves in-run packet hops
|
|
17
18
|
* and `continueFrom`.
|
|
18
19
|
*/
|
|
19
|
-
import type
|
|
20
|
+
import { type ResumableCause } from "@claudexor/schema";
|
|
20
21
|
/** Admitted steering message of the predecessor (POST /v2/runs/:id/messages). */
|
|
21
22
|
export interface EvidenceSteering {
|
|
22
23
|
text: string;
|
|
@@ -27,7 +28,14 @@ export interface EvidenceSteering {
|
|
|
27
28
|
export interface EvidenceIndexSources {
|
|
28
29
|
runDir: string;
|
|
29
30
|
attemptId: string;
|
|
31
|
+
/** Serial attempts of this run whose evidence the source carries, in order
|
|
32
|
+
* (default: `attemptId`); each keeps its own tool-result pairing boundary. */
|
|
33
|
+
attemptIds?: readonly string[];
|
|
30
34
|
workOrder: string;
|
|
35
|
+
/** The complete chain work order file (`context/work-order.md`), when one exists. */
|
|
36
|
+
workOrderPath?: string | null;
|
|
37
|
+
/** The prompt carries the whole work order itself (a route that cannot read files). */
|
|
38
|
+
workOrderInPrompt?: boolean;
|
|
31
39
|
steering: EvidenceSteering[];
|
|
32
40
|
/** Earlier runs, oldest first; each keeps its own tool-result pairing boundary. */
|
|
33
41
|
predecessors?: readonly PredecessorEvidenceSource[];
|
|
@@ -39,14 +47,24 @@ export type PredecessorEvidenceSource = Omit<EvidenceIndexSources, "predecessors
|
|
|
39
47
|
export interface EvidenceToolCall {
|
|
40
48
|
name: string;
|
|
41
49
|
target: string | null;
|
|
42
|
-
/**
|
|
50
|
+
/** True only when a result or a typed completion was recorded for it. */
|
|
43
51
|
resolved: boolean;
|
|
52
|
+
/** A recorded non-ok outcome of that result or completion (completed is not success). */
|
|
53
|
+
outcome?: "error" | "cancelled" | "denied";
|
|
54
|
+
/** The result's stored `command_outcome` (#450), when it reported one. */
|
|
55
|
+
commandOutcome?: unknown;
|
|
56
|
+
/** An untyped edit frame repeated: the repeat may be its completion or another start. */
|
|
57
|
+
unconfirmed?: true;
|
|
58
|
+
/** The attempt that recorded it, when the evidence spans several attempts of one run. */
|
|
59
|
+
attempt?: string;
|
|
44
60
|
}
|
|
45
61
|
/** Fully-resolved inputs of the pure builder (the collector reads them from the run dir). */
|
|
46
62
|
export interface EvidenceIndexInput {
|
|
47
63
|
cause: ResumableCause;
|
|
48
64
|
completed?: boolean;
|
|
49
65
|
workOrder: string;
|
|
66
|
+
workOrderPath?: string | null;
|
|
67
|
+
workOrderInPrompt?: boolean;
|
|
50
68
|
steering: EvidenceSteering[];
|
|
51
69
|
/** The retained assistant output (`final/retained-output.md` or the attempt's answer), "" when none. */
|
|
52
70
|
retainedOutput: string;
|
|
@@ -78,4 +96,23 @@ export declare const EVIDENCE_TOTAL_BUDGET_BYTES: number;
|
|
|
78
96
|
export declare const EVIDENCE_TOOL_ROWS = 60;
|
|
79
97
|
/** Pure: render the bounded evidence index for a packet carrier. */
|
|
80
98
|
export declare function buildEvidenceIndex(input: EvidenceIndexInput): EvidenceIndex;
|
|
99
|
+
/**
|
|
100
|
+
* The complete work order a route that cannot read files must receive inline
|
|
101
|
+
* (`git_patch_envelope`: its process reads no path), set only when the index
|
|
102
|
+
* would cut it and the prompt does not already carry it. Every other route
|
|
103
|
+
* keeps the bounded section plus the file.
|
|
104
|
+
*/
|
|
105
|
+
export declare function readlessWorkOrder(route: {
|
|
106
|
+
implementationTransport?: string;
|
|
107
|
+
} | undefined, workOrder: string, prompt: string): string | null;
|
|
108
|
+
/** Recorded work of the previous run's other processes that a resumed native session never received. */
|
|
109
|
+
export interface UncoveredWork {
|
|
110
|
+
/** Steering delivered only to those processes. */
|
|
111
|
+
steering: string[];
|
|
112
|
+
retainedOutput: string;
|
|
113
|
+
toolCalls: EvidenceToolCall[];
|
|
114
|
+
eventsLog: string | null;
|
|
115
|
+
}
|
|
116
|
+
/** Pure: the bounded, labelled evidence a native resume adds for work outside its session ("" when none). */
|
|
117
|
+
export declare function uncoveredWorkSection(work: UncoveredWork): string;
|
|
81
118
|
//# sourceMappingURL=continuation-evidence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-evidence.d.ts","sourceRoot":"","sources":["../src/continuation-evidence.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"continuation-evidence.d.ts","sourceRoot":"","sources":["../src/continuation-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE7E,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC;CACrC;AAED,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB;kFAC8E;IAC9E,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,mFAAmF;IACnF,YAAY,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACrD;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,GAAG;IACnF,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yFAAyF;IACzF,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,6FAA6F;AAC7F,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,wGAAwG;IACxG,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,sFAAsF;IACtF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,0EAA0E;IAC1E,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzF,oBAAoB,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;CAC1D;AAED,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mCAAmC;AACnC,eAAO,MAAM,6BAA6B,QAAW,CAAC;AACtD,sEAAsE;AACtE,eAAO,MAAM,2BAA2B,QAAY,CAAC;AACrD,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAsCrC,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CA0F3E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE;IAAE,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACvD,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAOf;AAED,wGAAwG;AACxG,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,6GAA6G;AAC7G,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAoBhE"}
|
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Evidence-index packet builder — PURE (A10).
|
|
3
|
+
*
|
|
4
|
+
* When no native carrier exists (the vendor refused the moved session, the
|
|
5
|
+
* adapter cannot move, the mind asked for a re-brief), the successor is a
|
|
6
|
+
* FRESH vendor session re-grounded by an EVIDENCE INDEX: the original work
|
|
7
|
+
* order, admitted steering (live messages) with their delivery status, the
|
|
8
|
+
* retained assistant output, a tool-call index (name, completed / unconfirmed
|
|
9
|
+
* command / unresolved),
|
|
10
|
+
* the diff stat and absolute paths to the predecessor's event log and attempt
|
|
11
|
+
* artifacts readable from the new environment. Bounded inline with honest
|
|
12
|
+
* truncation (`summarized` is true also when a single section was cut). No
|
|
13
|
+
* second summarizer, no recap model call.
|
|
14
|
+
*
|
|
15
|
+
* This is NOT the thread continuation packet (`continuity.ts`
|
|
16
|
+
* `buildContinuation`, INV-137): thread turns and the D-16d context-exhaustion
|
|
17
|
+
* continuation keep that packet; the evidence index serves in-run packet hops
|
|
18
|
+
* and `continueFrom`.
|
|
19
|
+
*/
|
|
20
|
+
import { commandOutcomeLabel } from "@claudexor/schema";
|
|
1
21
|
/** Per-section verbatim budget. */
|
|
2
22
|
export const EVIDENCE_SECTION_BUDGET_BYTES = 8 * 1024;
|
|
3
23
|
/** Whole-index budget; the tool index collapses to counts past it. */
|
|
@@ -46,6 +66,10 @@ export function buildEvidenceIndex(input) {
|
|
|
46
66
|
return b.text;
|
|
47
67
|
};
|
|
48
68
|
const unresolved = input.toolCalls.filter((call) => !call.resolved);
|
|
69
|
+
const unconfirmed = unresolved.filter((call) => call.unconfirmed).length;
|
|
70
|
+
const workOrder = input.workOrder.trim();
|
|
71
|
+
const shownWorkOrder = bound(workOrder, EVIDENCE_SECTION_BUDGET_BYTES);
|
|
72
|
+
summarized ||= shownWorkOrder.cut;
|
|
49
73
|
const parts = [
|
|
50
74
|
input.completed
|
|
51
75
|
? "# Evidence index of the previous work"
|
|
@@ -57,7 +81,12 @@ export function buildEvidenceIndex(input) {
|
|
|
57
81
|
"",
|
|
58
82
|
"## Original work order",
|
|
59
83
|
"",
|
|
60
|
-
|
|
84
|
+
shownWorkOrder.text || "(empty)",
|
|
85
|
+
...(shownWorkOrder.cut
|
|
86
|
+
? [
|
|
87
|
+
`[Work order truncated to the ${EVIDENCE_SECTION_BUDGET_BYTES}-byte section budget; the whole work order is ${bytes(workOrder)} bytes.${input.workOrderInPrompt ? " It is given in full above." : input.workOrderPath ? ` It is complete in the file ${input.workOrderPath}.` : ""}]`,
|
|
88
|
+
]
|
|
89
|
+
: []),
|
|
61
90
|
"",
|
|
62
91
|
];
|
|
63
92
|
if (input.steering.length > 0) {
|
|
@@ -77,20 +106,21 @@ export function buildEvidenceIndex(input) {
|
|
|
77
106
|
}
|
|
78
107
|
else if (input.toolCalls.length > EVIDENCE_TOOL_ROWS) {
|
|
79
108
|
summarized = true;
|
|
80
|
-
parts.push(`${input.toolCalls.length} tool calls recorded, ${unresolved.length} without a recorded result (cut off). The last ${EVIDENCE_TOOL_ROWS} follow:`, "", ...input.toolCalls.slice(-EVIDENCE_TOOL_ROWS).map(toolRow));
|
|
109
|
+
parts.push(`${input.toolCalls.length} tool calls recorded, ${unresolved.length - unconfirmed} without a recorded result (cut off)${unconfirmed ? `, ${unconfirmed} with completion not confirmed` : ""}. The last ${EVIDENCE_TOOL_ROWS} follow:`, "", ...input.toolCalls.slice(-EVIDENCE_TOOL_ROWS).map(toolRow));
|
|
81
110
|
}
|
|
82
111
|
else {
|
|
83
112
|
parts.push(...input.toolCalls.map(toolRow));
|
|
84
113
|
}
|
|
85
114
|
parts.push("", "## Changed files", "");
|
|
86
115
|
parts.push(input.diffStat && input.diffStat.trim() ? section(input.diffStat) : "(no diff stat)");
|
|
87
|
-
const refs = [
|
|
88
|
-
.
|
|
89
|
-
artifacts.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
116
|
+
const refs = [
|
|
117
|
+
input.workOrderPath ? `- Complete work order: ${input.workOrderPath}` : null,
|
|
118
|
+
...[input.artifacts, ...(input.predecessorArtifacts ?? [])].flatMap((artifacts) => [
|
|
119
|
+
artifacts.eventsLog && `- Event log: ${artifacts.eventsLog}`,
|
|
120
|
+
artifacts.attemptDir && `- Attempt artifacts: ${artifacts.attemptDir}`,
|
|
121
|
+
artifacts.patch && `- Patch so far: ${artifacts.patch}`,
|
|
122
|
+
]),
|
|
123
|
+
].filter((line) => typeof line === "string");
|
|
94
124
|
const footer = [
|
|
95
125
|
"",
|
|
96
126
|
"",
|
|
@@ -98,7 +128,7 @@ export function buildEvidenceIndex(input) {
|
|
|
98
128
|
"",
|
|
99
129
|
refs.length ? section(refs.join("\n")) : "(no artifact paths available)",
|
|
100
130
|
"",
|
|
101
|
-
`Tool calls: ${input.toolCalls.length}; unresolved: ${unresolved.length}.`,
|
|
131
|
+
`Tool calls: ${input.toolCalls.length}; unresolved: ${unresolved.length}${unconfirmed ? ` (completion not confirmed: ${unconfirmed})` : ""}.`,
|
|
102
132
|
"",
|
|
103
133
|
].join("\n");
|
|
104
134
|
const prose = parts
|
|
@@ -116,8 +146,52 @@ export function buildEvidenceIndex(input) {
|
|
|
116
146
|
bytes: bytes(markdown),
|
|
117
147
|
};
|
|
118
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* The complete work order a route that cannot read files must receive inline
|
|
151
|
+
* (`git_patch_envelope`: its process reads no path), set only when the index
|
|
152
|
+
* would cut it and the prompt does not already carry it. Every other route
|
|
153
|
+
* keeps the bounded section plus the file.
|
|
154
|
+
*/
|
|
155
|
+
export function readlessWorkOrder(route, workOrder, prompt) {
|
|
156
|
+
const whole = workOrder.trim();
|
|
157
|
+
return route?.implementationTransport === "git_patch_envelope" &&
|
|
158
|
+
bytes(whole) > EVIDENCE_SECTION_BUDGET_BYTES &&
|
|
159
|
+
!prompt.includes(whole)
|
|
160
|
+
? whole
|
|
161
|
+
: null;
|
|
162
|
+
}
|
|
163
|
+
/** Pure: the bounded, labelled evidence a native resume adds for work outside its session ("" when none). */
|
|
164
|
+
export function uncoveredWorkSection(work) {
|
|
165
|
+
if (!work.steering.length && !work.retainedOutput.trim() && !work.toolCalls.length)
|
|
166
|
+
return "";
|
|
167
|
+
const section = (text) => bound(text.trim(), EVIDENCE_SECTION_BUDGET_BYTES).text;
|
|
168
|
+
const parts = [
|
|
169
|
+
"Other processes of the previous run recorded the work below after or apart from the session you are resuming. It is not part of the resumed session's history: reconcile it against the workspace; do not replay it blindly.",
|
|
170
|
+
];
|
|
171
|
+
if (work.steering.length)
|
|
172
|
+
parts.push(`Messages delivered to them:\n\n${work.steering.map((text, i) => `### Message ${i + 1}\n\n${section(text)}`).join("\n\n")}`);
|
|
173
|
+
if (work.retainedOutput.trim())
|
|
174
|
+
parts.push(`Their output:\n\n${section(work.retainedOutput)}`);
|
|
175
|
+
if (work.toolCalls.length) {
|
|
176
|
+
const shown = work.toolCalls.slice(-EVIDENCE_TOOL_ROWS);
|
|
177
|
+
parts.push(`Their tool calls${shown.length < work.toolCalls.length ? ` (the last ${shown.length} of ${work.toolCalls.length})` : ""}:\n\n${shown.map(toolRow).join("\n")}`);
|
|
178
|
+
}
|
|
179
|
+
// The record's path survives any cut of the prose above it.
|
|
180
|
+
const footer = work.eventsLog ? `\n\nFull record: ${work.eventsLog}` : "";
|
|
181
|
+
return bound(parts.join("\n\n"), EVIDENCE_TOTAL_BUDGET_BYTES - bytes(footer)).text + footer;
|
|
182
|
+
}
|
|
119
183
|
function toolRow(call) {
|
|
120
184
|
const target = call.target ? ` — ${call.target.replace(/\s+/g, " ").slice(0, 160)}` : "";
|
|
121
|
-
|
|
185
|
+
// A recorded result whose command was moved to the background, timed out or
|
|
186
|
+
// ended unknown is not a completed command (#450).
|
|
187
|
+
const unconfirmed = call.resolved ? commandOutcomeLabel(call.commandOutcome) : null;
|
|
188
|
+
const state = unconfirmed
|
|
189
|
+
? `unconfirmed: ${unconfirmed}`
|
|
190
|
+
: call.resolved
|
|
191
|
+
? `completed${call.outcome ? `: ${call.outcome}` : ""}`
|
|
192
|
+
: call.unconfirmed
|
|
193
|
+
? "completion not confirmed"
|
|
194
|
+
: "unresolved: no result recorded";
|
|
195
|
+
return `- ${call.name}${target} (${state})${call.attempt ? ` · attempt ${call.attempt}` : ""}`;
|
|
122
196
|
}
|
|
123
197
|
//# sourceMappingURL=continuation-evidence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-evidence.js","sourceRoot":"","sources":["../src/continuation-evidence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"continuation-evidence.js","sourceRoot":"","sources":["../src/continuation-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ContinuationSources } from "@claudexor/schema";
|
|
2
2
|
export interface UncertainInput {
|
|
3
3
|
text: string;
|
|
4
4
|
runDir: string;
|
|
@@ -7,4 +7,13 @@ export interface UncertainInput {
|
|
|
7
7
|
export declare function completeInputPath(input: UncertainInput, currentRunDir: string): string;
|
|
8
8
|
/** Reference only: the notice tells the next process to reconcile, never replay blindly. */
|
|
9
9
|
export declare function unconfirmedContinuationInputs(sources: ContinuationSources): UncertainInput[];
|
|
10
|
+
/** What a first try that delivered nothing (it never started, or its handshake
|
|
11
|
+
* named another session) leaves to reconcile: a successor's individual
|
|
12
|
+
* undelivered callers newest first, this run's own correction included, else
|
|
13
|
+
* the run's own work order. Further undelivered tries keep these references. */
|
|
14
|
+
export declare function undeliveredInputs(run: {
|
|
15
|
+
runDir: string;
|
|
16
|
+
runId: string;
|
|
17
|
+
workOrder: string;
|
|
18
|
+
}): UncertainInput[];
|
|
10
19
|
//# sourceMappingURL=continuation-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-input.d.ts","sourceRoot":"","sources":["../src/continuation-input.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"continuation-input.d.ts","sourceRoot":"","sources":["../src/continuation-input.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAS7D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAYtF;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,mBAAmB,GAAG,cAAc,EAAE,CA+B5F;AAED;;;gFAGgF;AAChF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,cAAc,EAAE,CAQnB"}
|
|
@@ -3,8 +3,7 @@ import { createHash } from "node:crypto";
|
|
|
3
3
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { dirname, join, resolve } from "node:path";
|
|
5
5
|
import { readRunEvents } from "@claudexor/event-log";
|
|
6
|
-
import {
|
|
7
|
-
import { readContinuationSources } from "@claudexor/workspace";
|
|
6
|
+
import { continuedTryStarted, readContinuationSources, runExecutionFacts, } from "@claudexor/workspace";
|
|
8
7
|
import { readTextSafe } from "@claudexor/util";
|
|
9
8
|
import { steeringFromRunLog } from "./continuation-evidence-io.js";
|
|
10
9
|
/** Reuse complete durable context; only missing text needs a new context file. */
|
|
@@ -29,7 +28,10 @@ export function unconfirmedContinuationInputs(sources) {
|
|
|
29
28
|
let newerStarted = false;
|
|
30
29
|
for (const [index, source] of sources.entries()) {
|
|
31
30
|
const { events } = readRunEvents(join(source.runDir, "events.jsonl"));
|
|
32
|
-
|
|
31
|
+
// Only a continued try (receipt joined to its own accepted start) was handed
|
|
32
|
+
// the notice; a reviewer, repair or unplanned process proves nothing.
|
|
33
|
+
const facts = runExecutionFacts(events);
|
|
34
|
+
const startedHere = continuedTryStarted(facts);
|
|
33
35
|
// A stopped run's admitted steering without delivery proof is newer than its caller text.
|
|
34
36
|
// The live run's own steering is read per attempt by `uncertainInputFor`.
|
|
35
37
|
if (!newerStarted && source.state !== "running") {
|
|
@@ -44,26 +46,25 @@ export function unconfirmedContinuationInputs(sources) {
|
|
|
44
46
|
const text = events.find((event) => event.type === "run.created")?.payload["prompt"];
|
|
45
47
|
if (typeof text !== "string" || !text.trim())
|
|
46
48
|
continue;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
receipt: event.type === "run.continuity"
|
|
51
|
-
? RunContinuityReceipt.safeParse(event.payload["receipt"]).data
|
|
52
|
-
: undefined,
|
|
53
|
-
}))
|
|
54
|
-
.find((entry) => entry.receipt?.tryIndex === 0);
|
|
55
|
-
const receipt = settled?.receipt;
|
|
56
|
-
// A mismatched handshake is not delivery. A missing receipt (including a crash
|
|
57
|
-
// during the first try) leaves delivery unproved even if a session file exists.
|
|
58
|
-
const delivered = receipt &&
|
|
59
|
-
!receipt.identityCheck.startsWith("mismatch") &&
|
|
60
|
-
events.some((event, index) => event.type === "harness.event" &&
|
|
61
|
-
index < settled.index &&
|
|
62
|
-
event.payload["attempt_id"] === receipt.attemptId &&
|
|
63
|
-
event.payload["type"] === "started");
|
|
49
|
+
// Any continued first try (a fallback's included) that started proves delivery;
|
|
50
|
+
// a mismatched handshake or a missing receipt leaves it unproved.
|
|
51
|
+
const delivered = continuedTryStarted(facts, true);
|
|
64
52
|
if (!delivered)
|
|
65
53
|
uncertain.push({ text, runDir: source.runDir });
|
|
66
54
|
}
|
|
67
55
|
return uncertain;
|
|
68
56
|
}
|
|
57
|
+
/** What a first try that delivered nothing (it never started, or its handshake
|
|
58
|
+
* named another session) leaves to reconcile: a successor's individual
|
|
59
|
+
* undelivered callers newest first, this run's own correction included, else
|
|
60
|
+
* the run's own work order. Further undelivered tries keep these references. */
|
|
61
|
+
export function undeliveredInputs(run) {
|
|
62
|
+
const sources = readContinuationSources(run.runDir);
|
|
63
|
+
return sources.length
|
|
64
|
+
? unconfirmedContinuationInputs([
|
|
65
|
+
{ runDir: run.runDir, runId: run.runId, state: "running" },
|
|
66
|
+
...sources,
|
|
67
|
+
])
|
|
68
|
+
: [{ text: run.workOrder, runDir: run.runDir }];
|
|
69
|
+
}
|
|
69
70
|
//# sourceMappingURL=continuation-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continuation-input.js","sourceRoot":"","sources":["../src/continuation-input.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"continuation-input.js","sourceRoot":"","sources":["../src/continuation-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type HarnessRunSpec, type ResumableCause, type RunContinuityReceipt } from "@claudexor/schema";
|
|
2
|
+
import { type PredecessorEvidenceSource } from "./continuation-evidence.js";
|
|
3
|
+
import { InRunContinuity } from "./inrun-continuity.js";
|
|
4
|
+
import type { InRunContinuityDeps } from "./inrun-continuity-types.js";
|
|
5
|
+
/** What the first planned attempt of a continued run leaves for its later attempts. */
|
|
6
|
+
export interface ContinuationPlan {
|
|
7
|
+
/** The chain's work order (predecessor's plus this run's caller text). */
|
|
8
|
+
workOrder: string;
|
|
9
|
+
/** The ancestral evidence sources, oldest first. */
|
|
10
|
+
evidenceSources: PredecessorEvidenceSource[];
|
|
11
|
+
acted: boolean;
|
|
12
|
+
cause: ResumableCause;
|
|
13
|
+
completed: boolean;
|
|
14
|
+
from: {
|
|
15
|
+
runId: string;
|
|
16
|
+
attemptId: string;
|
|
17
|
+
};
|
|
18
|
+
fromProfileId: string | null;
|
|
19
|
+
workspace: RunContinuityReceipt["workspace"];
|
|
20
|
+
}
|
|
21
|
+
/** A fallback attempt, or the D-16d one-shot checkpoint continuation. */
|
|
22
|
+
export type LaterAttempt = "fallback" | "checkpoint";
|
|
23
|
+
export declare function openLaterAttempt(deps: InRunContinuityDeps, first: {
|
|
24
|
+
spec: HarnessRunSpec;
|
|
25
|
+
later: LaterAttempt;
|
|
26
|
+
}, plan: ContinuationPlan): {
|
|
27
|
+
continuity: InRunContinuity;
|
|
28
|
+
spec: HarnessRunSpec;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=continuation-later.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continuation-later.d.ts","sourceRoot":"","sources":["../src/continuation-later.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,eAAe,EAAE,yBAAyB,EAAE,CAAC;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;CAC9C;AAED,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;AAWrD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,EACpD,IAAI,EAAE,gBAAgB,GACrB;IAAE,UAAU,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAwFvD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Later attempts of a continued run: an Ask `fallback_model` or required-web
|
|
3
|
+
* fallback attempt, or the D-16d checkpoint continuation (Ask and Agent),
|
|
4
|
+
* after an earlier attempt of the same run already planned the predecessor
|
|
5
|
+
* (`continue-from.ts`). The predecessor's session is never moved or retired a
|
|
6
|
+
* second time. The new attempt's first try is a fresh session re-briefed by
|
|
7
|
+
* the evidence index over the ancestral sources plus this run's earlier
|
|
8
|
+
* attempts. A checkpoint continuation's checkpoint carries only the exhausted
|
|
9
|
+
* try's last typed final as its report, so its index keeps every other output
|
|
10
|
+
* recorded in this run once (earlier tries of the exhausted attempt and that
|
|
11
|
+
* try's other narration and earlier native-turn finals included). Its receipt names
|
|
12
|
+
* the actual source: this run's latest attempt that started, else the planned
|
|
13
|
+
* predecessor.
|
|
14
|
+
*/
|
|
15
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
16
|
+
import { join } from "node:path";
|
|
17
|
+
import { readRunEvents, retainedOutput } from "@claudexor/event-log";
|
|
18
|
+
import { HarnessRunSpec as HarnessRunSpecSchema, } from "@claudexor/schema";
|
|
19
|
+
import { carryingAttempt, readContinuationSources, readSessionCapsule, runExecutionFacts, unrepresentedOutput, } from "@claudexor/workspace";
|
|
20
|
+
import { buildEvidenceIndex, readlessWorkOrder, } from "./continuation-evidence.js";
|
|
21
|
+
import { collectEvidenceIndexInput, workOrderFile } from "./continuation-evidence-io.js";
|
|
22
|
+
import { unconfirmedContinuationInputs } from "./continuation-input.js";
|
|
23
|
+
import { continuationNotice, packetContinuationPrompt } from "./continuity-notice.js";
|
|
24
|
+
import { InRunContinuity } from "./inrun-continuity.js";
|
|
25
|
+
import { uncertainInputFor } from "./inrun-continuity-carrier.js";
|
|
26
|
+
/** The attempt whose last try's report the D-16d checkpoint carries: its `run.continuation`
|
|
27
|
+
* row is written before the checkpoint attempt is planned. */
|
|
28
|
+
function exhaustedAttempt(events) {
|
|
29
|
+
const from = events.findLast((event) => event.type === "run.continuation")?.payload["from_attempt"];
|
|
30
|
+
return typeof from === "string" ? from : null;
|
|
31
|
+
}
|
|
32
|
+
export function openLaterAttempt(deps, first, plan) {
|
|
33
|
+
const { events } = readRunEvents(join(deps.runDir, "events.jsonl"));
|
|
34
|
+
const facts = runExecutionFacts(events);
|
|
35
|
+
const earlier = facts.attempts.filter((id) => id !== deps.attemptId);
|
|
36
|
+
const earlierEvents = events.filter((event) => event.type === "harness.event" && earlier.includes(String(event.payload["attempt_id"])));
|
|
37
|
+
// The source: the attempt of this run that carries its latest work; without
|
|
38
|
+
// one, nothing of this run reached a vendor and the planned predecessor stays it.
|
|
39
|
+
const previous = carryingAttempt(facts) ?? undefined;
|
|
40
|
+
const source = {
|
|
41
|
+
runDir: deps.runDir,
|
|
42
|
+
attemptId: previous ?? earlier.at(-1) ?? deps.attemptId,
|
|
43
|
+
attemptIds: earlier,
|
|
44
|
+
workOrder: plan.workOrder,
|
|
45
|
+
steering: [],
|
|
46
|
+
retainedOutput: (first.later === "checkpoint"
|
|
47
|
+
? unrepresentedOutput(earlierEvents, facts, exhaustedAttempt(events), first.spec.prompt)
|
|
48
|
+
: retainedOutput(earlierEvents)?.trim()) ?? "",
|
|
49
|
+
diffStat: null,
|
|
50
|
+
};
|
|
51
|
+
const cause = !previous
|
|
52
|
+
? plan.cause
|
|
53
|
+
: first.later === "checkpoint"
|
|
54
|
+
? "context_exhausted"
|
|
55
|
+
: "other";
|
|
56
|
+
const completed = !previous && plan.completed;
|
|
57
|
+
const uncertainInput = uncertainInputFor(deps.runDir, unconfirmedContinuationInputs([
|
|
58
|
+
{ runId: deps.runId, runDir: deps.runDir, state: "running" },
|
|
59
|
+
...readContinuationSources(deps.runDir),
|
|
60
|
+
]), undefined);
|
|
61
|
+
const wholeWorkOrder = readlessWorkOrder(deps.route, plan.workOrder, first.spec.prompt);
|
|
62
|
+
const index = buildEvidenceIndex(collectEvidenceIndexInput({
|
|
63
|
+
...source,
|
|
64
|
+
workOrderPath: wholeWorkOrder ? null : workOrderFile(deps.runDir),
|
|
65
|
+
workOrderInPrompt: wholeWorkOrder !== null,
|
|
66
|
+
predecessors: plan.evidenceSources,
|
|
67
|
+
}, { cause, retainedOutput: source.retainedOutput, diffStat: null, completed }));
|
|
68
|
+
const dir = join(deps.attemptDir, "continuation");
|
|
69
|
+
mkdirSync(dir, { recursive: true });
|
|
70
|
+
const evidencePath = join(dir, "evidence-index-try0.md");
|
|
71
|
+
writeFileSync(evidencePath, index.markdown);
|
|
72
|
+
const spec = HarnessRunSpecSchema.parse({
|
|
73
|
+
...first.spec,
|
|
74
|
+
resume_session_id: null,
|
|
75
|
+
prompt: packetContinuationPrompt({
|
|
76
|
+
originalPrompt: first.spec.prompt,
|
|
77
|
+
notice: continuationNotice({ cause, completed, uncertainInput, callerText: null }),
|
|
78
|
+
evidencePath,
|
|
79
|
+
evidenceMarkdown: index.markdown,
|
|
80
|
+
completed,
|
|
81
|
+
workOrder: wholeWorkOrder,
|
|
82
|
+
}),
|
|
83
|
+
});
|
|
84
|
+
const continued = {
|
|
85
|
+
carrier: "packet",
|
|
86
|
+
summarized: index.summarized,
|
|
87
|
+
cause,
|
|
88
|
+
fromProfileId: previous
|
|
89
|
+
? (readSessionCapsule(join(deps.runDir, "attempts", previous))?.holderProfileId ?? null)
|
|
90
|
+
: plan.fromProfileId,
|
|
91
|
+
toProfileId: spec.credential_profile?.profile_id ?? null,
|
|
92
|
+
memory: "partial",
|
|
93
|
+
inputDelivery: uncertainInput === null ? "confirmed" : "uncertain",
|
|
94
|
+
from: previous ? { runId: deps.runId, attemptId: previous } : plan.from,
|
|
95
|
+
workspace: previous ? "same_root" : plan.workspace,
|
|
96
|
+
};
|
|
97
|
+
const acted = plan.acted || earlier.some((id) => facts.progressed.has(id));
|
|
98
|
+
const evidenceSources = [...plan.evidenceSources, source];
|
|
99
|
+
return {
|
|
100
|
+
continuity: new InRunContinuity({
|
|
101
|
+
...deps,
|
|
102
|
+
workOrder: plan.workOrder,
|
|
103
|
+
seed: { acted, completed, continued, evidenceSources },
|
|
104
|
+
}),
|
|
105
|
+
spec,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=continuation-later.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continuation-later.js","sourceRoot":"","sources":["../src/continuation-later.ts"],"names":[],"mappings":"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"}
|
package/dist/continue-from.d.ts
CHANGED
|
@@ -27,9 +27,10 @@ export interface ContinueFromSource {
|
|
|
27
27
|
/**
|
|
28
28
|
* Open the attempt's continuation controller. For the first candidate attempt
|
|
29
29
|
* of a `continueFrom` successor, plan the carrier of its first try and return
|
|
30
|
-
* the composed spec
|
|
31
|
-
*
|
|
32
|
-
*
|
|
30
|
+
* the composed spec. `continuation.from` is consumed here, so nothing re-plans
|
|
31
|
+
* the predecessor's carrier: a later fallback or D-16d checkpoint attempt
|
|
32
|
+
* (`deps.later`) continues the recorded plan through the evidence index, and
|
|
33
|
+
* every other attempt (synthesis, repair) gets the controller unchanged.
|
|
33
34
|
*/
|
|
34
35
|
export declare function openContinuity(deps: InRunContinuityDeps, first: {
|
|
35
36
|
spec: HarnessRunSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continue-from.d.ts","sourceRoot":"","sources":["../src/continue-from.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"continue-from.d.ts","sourceRoot":"","sources":["../src/continue-from.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EAIzB,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAcjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAQvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,0FAA0F;AAC1F,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gFAAgF;IAChF,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6GD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,mBAAmB,EACzB,KAAK,EAAE;IACL,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;IAC1C,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,GACA,OAAO,CAAC;IAAE,UAAU,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAwMhE"}
|