@claudexor/orchestrator 3.20.1 → 3.23.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/attemptFinalize.d.ts +14 -101
- package/dist/attemptFinalize.d.ts.map +1 -1
- package/dist/attemptFinalize.js +7 -328
- package/dist/attemptFinalize.js.map +1 -1
- package/dist/candidateEvidence.d.ts +15 -6
- package/dist/candidateEvidence.d.ts.map +1 -1
- package/dist/candidateEvidence.js +1 -1
- package/dist/candidateEvidence.js.map +1 -1
- package/dist/candidateOutputs.d.ts +7 -3
- package/dist/candidateOutputs.d.ts.map +1 -1
- package/dist/candidateOutputs.js +4 -1
- package/dist/candidateOutputs.js.map +1 -1
- package/dist/candidateReview.d.ts.map +1 -1
- package/dist/candidateReview.js +3 -1
- package/dist/candidateReview.js.map +1 -1
- package/dist/candidateTerminals.d.ts +4 -0
- package/dist/candidateTerminals.d.ts.map +1 -1
- package/dist/candidateTerminals.js +18 -7
- package/dist/candidateTerminals.js.map +1 -1
- package/dist/candidateWorkProduct.d.ts.map +1 -1
- package/dist/candidateWorkProduct.js +6 -6
- package/dist/candidateWorkProduct.js.map +1 -1
- package/dist/carrier-planner.d.ts +94 -0
- package/dist/carrier-planner.d.ts.map +1 -0
- package/dist/carrier-planner.js +111 -0
- package/dist/carrier-planner.js.map +1 -0
- package/dist/continuation-custody.d.ts +57 -0
- package/dist/continuation-custody.d.ts.map +1 -0
- package/dist/continuation-custody.js +151 -0
- package/dist/continuation-custody.js.map +1 -0
- package/dist/continuation-evidence-io.d.ts +18 -0
- package/dist/continuation-evidence-io.d.ts.map +1 -0
- package/dist/continuation-evidence-io.js +167 -0
- package/dist/continuation-evidence-io.js.map +1 -0
- package/dist/continuation-evidence.d.ts +81 -0
- package/dist/continuation-evidence.d.ts.map +1 -0
- package/dist/continuation-evidence.js +122 -0
- package/dist/continuation-evidence.js.map +1 -0
- package/dist/continuation-input.d.ts +10 -0
- package/dist/continuation-input.d.ts.map +1 -0
- package/dist/continuation-input.js +69 -0
- package/dist/continuation-input.js.map +1 -0
- package/dist/continue-from.d.ts +41 -0
- package/dist/continue-from.d.ts.map +1 -0
- package/dist/continue-from.js +292 -0
- package/dist/continue-from.js.map +1 -0
- package/dist/continuity-notice.d.ts +42 -0
- package/dist/continuity-notice.d.ts.map +1 -0
- package/dist/continuity-notice.js +42 -0
- package/dist/continuity-notice.js.map +1 -0
- package/dist/continuity-terminal.d.ts +19 -0
- package/dist/continuity-terminal.d.ts.map +1 -0
- package/dist/continuity-terminal.js +34 -0
- package/dist/continuity-terminal.js.map +1 -0
- package/dist/credential-cooldown.d.ts.map +1 -1
- package/dist/credential-cooldown.js +8 -3
- package/dist/credential-cooldown.js.map +1 -1
- package/dist/credential-differential.d.ts +1 -0
- package/dist/credential-differential.d.ts.map +1 -1
- package/dist/credential-differential.js +32 -4
- package/dist/credential-differential.js.map +1 -1
- package/dist/deepScanReducer.d.ts +4 -1
- package/dist/deepScanReducer.d.ts.map +1 -1
- package/dist/deepScanReducer.js +10 -5
- package/dist/deepScanReducer.js.map +1 -1
- package/dist/delegatedHome.d.ts +30 -1
- package/dist/delegatedHome.d.ts.map +1 -1
- package/dist/delegatedHome.js +37 -2
- package/dist/delegatedHome.js.map +1 -1
- package/dist/delegationFailure.d.ts +4 -3
- package/dist/delegationFailure.d.ts.map +1 -1
- package/dist/delegationFailure.js +25 -24
- package/dist/delegationFailure.js.map +1 -1
- package/dist/directoryCandidate.d.ts +2 -3
- package/dist/directoryCandidate.d.ts.map +1 -1
- package/dist/directoryCandidate.js +3 -2
- package/dist/directoryCandidate.js.map +1 -1
- package/dist/inrun-continuity-carrier.d.ts +76 -0
- package/dist/inrun-continuity-carrier.d.ts.map +1 -0
- package/dist/inrun-continuity-carrier.js +218 -0
- package/dist/inrun-continuity-carrier.js.map +1 -0
- package/dist/inrun-continuity-thread.d.ts +8 -0
- package/dist/inrun-continuity-thread.d.ts.map +1 -0
- package/dist/inrun-continuity-thread.js +23 -0
- package/dist/inrun-continuity-thread.js.map +1 -0
- package/dist/inrun-continuity-types.d.ts +105 -0
- package/dist/inrun-continuity-types.d.ts.map +1 -0
- package/dist/inrun-continuity-types.js +2 -0
- package/dist/inrun-continuity-types.js.map +1 -0
- package/dist/inrun-continuity.d.ts +79 -0
- package/dist/inrun-continuity.d.ts.map +1 -0
- package/dist/inrun-continuity.js +465 -0
- package/dist/inrun-continuity.js.map +1 -0
- package/dist/inrun-continuity.test-support.d.ts +374 -0
- package/dist/inrun-continuity.test-support.d.ts.map +1 -0
- package/dist/inrun-continuity.test-support.js +198 -0
- package/dist/inrun-continuity.test-support.js.map +1 -0
- package/dist/inrun-retained-output.d.ts +9 -0
- package/dist/inrun-retained-output.d.ts.map +1 -0
- package/dist/inrun-retained-output.js +16 -0
- package/dist/inrun-retained-output.js.map +1 -0
- package/dist/interaction.d.ts +1 -1
- package/dist/interaction.d.ts.map +1 -1
- package/dist/interaction.js +6 -1
- package/dist/interaction.js.map +1 -1
- package/dist/modelGovernance.d.ts +4 -0
- package/dist/modelGovernance.d.ts.map +1 -1
- package/dist/modelGovernance.js +27 -1
- package/dist/modelGovernance.js.map +1 -1
- package/dist/orchestrator-credentials.d.ts +1 -1
- package/dist/orchestrator-credentials.d.ts.map +1 -1
- package/dist/orchestrator-credentials.js +4 -3
- package/dist/orchestrator-credentials.js.map +1 -1
- package/dist/orchestrator.d.ts +4 -4
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +261 -235
- package/dist/orchestrator.js.map +1 -1
- package/dist/persistedPatch.d.ts +55 -0
- package/dist/persistedPatch.d.ts.map +1 -0
- package/dist/persistedPatch.js +132 -0
- package/dist/persistedPatch.js.map +1 -0
- package/dist/planFinalize.d.ts +37 -0
- package/dist/planFinalize.d.ts.map +1 -0
- package/dist/planFinalize.js +94 -0
- package/dist/planFinalize.js.map +1 -0
- package/dist/planRun.d.ts +2 -28
- package/dist/planRun.d.ts.map +1 -1
- package/dist/planRun.js +5 -88
- package/dist/planRun.js.map +1 -1
- package/dist/plannerAttempt.d.ts +4 -1
- package/dist/plannerAttempt.d.ts.map +1 -1
- package/dist/plannerAttempt.js +9 -4
- package/dist/plannerAttempt.js.map +1 -1
- package/dist/prompt-framing.d.ts +1 -1
- package/dist/prompt-framing.d.ts.map +1 -1
- package/dist/prompt-framing.js.map +1 -1
- package/dist/reviewerEffort.d.ts +41 -0
- package/dist/reviewerEffort.d.ts.map +1 -0
- package/dist/reviewerEffort.js +37 -0
- package/dist/reviewerEffort.js.map +1 -0
- package/dist/reviewerPanel.d.ts +5 -5
- package/dist/reviewerPanel.d.ts.map +1 -1
- package/dist/reviewerPanel.js +22 -50
- package/dist/reviewerPanel.js.map +1 -1
- package/dist/run-input-resolution.d.ts.map +1 -1
- package/dist/run-input-resolution.js +10 -0
- package/dist/run-input-resolution.js.map +1 -1
- package/dist/runAdmission.js +1 -1
- package/dist/runAdmission.js.map +1 -1
- package/dist/runEventLog.d.ts.map +1 -1
- package/dist/runEventLog.js +5 -0
- package/dist/runEventLog.js.map +1 -1
- package/dist/runFactsBuilder.d.ts.map +1 -1
- package/dist/runFactsBuilder.js +11 -2
- package/dist/runFactsBuilder.js.map +1 -1
- package/dist/runSupport.d.ts +2 -1
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +2 -1
- package/dist/runSupport.js.map +1 -1
- package/dist/runTelemetryWriter.d.ts.map +1 -1
- package/dist/runTelemetryWriter.js +7 -2
- package/dist/runTelemetryWriter.js.map +1 -1
- package/dist/runTerminalResults.d.ts +6 -2
- package/dist/runTerminalResults.d.ts.map +1 -1
- package/dist/runTerminalResults.js +8 -1
- package/dist/runTerminalResults.js.map +1 -1
- package/dist/runTerminals.d.ts.map +1 -1
- package/dist/runTerminals.js +6 -5
- package/dist/runTerminals.js.map +1 -1
- package/dist/secretDiff.d.ts +67 -27
- package/dist/secretDiff.d.ts.map +1 -1
- package/dist/secretDiff.js +143 -113
- package/dist/secretDiff.js.map +1 -1
- package/dist/session-capsule.d.ts +29 -0
- package/dist/session-capsule.d.ts.map +1 -0
- package/dist/session-capsule.js +86 -0
- package/dist/session-capsule.js.map +1 -0
- package/dist/workReportEnvelope.d.ts +123 -0
- package/dist/workReportEnvelope.d.ts.map +1 -0
- package/dist/workReportEnvelope.js +362 -0
- package/dist/workReportEnvelope.js.map +1 -0
- package/package.json +17 -17
- package/dist/effortGovernance.d.ts +0 -13
- package/dist/effortGovernance.d.ts.map +0 -1
- package/dist/effortGovernance.js +0 -7
- package/dist/effortGovernance.js.map +0 -1
|
@@ -4,7 +4,7 @@ import { newId } from "@claudexor/util";
|
|
|
4
4
|
import { snapshotTree } from "@claudexor/workspace";
|
|
5
5
|
import { publishUnverifiedGitCandidate } from "./candidateWorkProduct.js";
|
|
6
6
|
import { delegationBeltToolFailure, delegationBeltUnavailable } from "./delegationToolEvidence.js";
|
|
7
|
-
import {
|
|
7
|
+
import { captureRefusalNextActions } from "./secretDiff.js";
|
|
8
8
|
/** One owner for the post-injection failure boundary shared by race,
|
|
9
9
|
* convergence, and attempt finalization. Runtime takes precedence if corrupt
|
|
10
10
|
* evidence ever reports both facts. */
|
|
@@ -24,14 +24,15 @@ export function delegationFailureError(t) {
|
|
|
24
24
|
: null;
|
|
25
25
|
}
|
|
26
26
|
export function candidateFailureKind(run) {
|
|
27
|
-
return
|
|
27
|
+
return delegationFailureKind(run.telemetry) ?? (run.captureRefusal ? "capture" : null);
|
|
28
28
|
}
|
|
29
29
|
/** Race-level precedence: an unrecovered injected-belt failure dominates all
|
|
30
|
-
* siblings;
|
|
31
|
-
* while an in-place
|
|
30
|
+
* siblings; an uncaptured isolated candidate is merely ineligible (its bytes
|
|
31
|
+
* died with the envelope), while an uncaptured in-place candidate remains
|
|
32
|
+
* terminal because its live effects need direct inspection. */
|
|
32
33
|
export function dominantRaceCandidateFailure(runs) {
|
|
33
34
|
return (runs.find((run) => delegationFailureKind(run.telemetry)) ??
|
|
34
|
-
runs.find((run) => run.
|
|
35
|
+
runs.find((run) => run.captureRefusal && run.captureRefusal.disposition !== "discarded"));
|
|
35
36
|
}
|
|
36
37
|
/** Build the terminal cause/provenance without duplicating the race and
|
|
37
38
|
* convergence messages or raw-attempt links. */
|
|
@@ -68,32 +69,30 @@ export function candidateFailureTerminal(run, lane) {
|
|
|
68
69
|
const delegation = delegationFailureKind(run.telemetry);
|
|
69
70
|
if (delegation) {
|
|
70
71
|
const terminal = delegationFailureTerminal(run, lane);
|
|
71
|
-
return run.
|
|
72
|
+
return run.captureRefusal
|
|
72
73
|
? {
|
|
73
74
|
...terminal,
|
|
74
75
|
metadata: {
|
|
75
76
|
...terminal.metadata,
|
|
76
77
|
nextActions: [
|
|
77
|
-
...
|
|
78
|
+
...captureRefusalNextActions(run.captureRefusal),
|
|
78
79
|
...terminal.metadata.nextActions,
|
|
79
80
|
],
|
|
80
81
|
},
|
|
81
82
|
}
|
|
82
83
|
: terminal;
|
|
83
84
|
}
|
|
84
|
-
if (!run.
|
|
85
|
+
if (!run.captureRefusal)
|
|
85
86
|
throw new Error("candidate failure terminal requested without cause");
|
|
86
87
|
return {
|
|
87
|
-
phase: "
|
|
88
|
-
error: new Error(run.errors[0] ??
|
|
88
|
+
phase: run.captureRefusal.phase ?? "workspace",
|
|
89
|
+
error: new Error(run.errors[0] ?? run.captureRefusal.detail),
|
|
89
90
|
metadata: {
|
|
90
91
|
category: "harness_error",
|
|
91
92
|
harnessId: run.harnessId,
|
|
92
93
|
attemptId: run.attemptId,
|
|
93
94
|
rawDetailRef: `attempts/${run.attemptId}/attempt.yaml`,
|
|
94
|
-
nextActions: run.
|
|
95
|
-
? ["Remove the secret-bearing in-place bytes manually", "Retry the run"]
|
|
96
|
-
: ["Retry the run without writing secret material"],
|
|
95
|
+
nextActions: captureRefusalNextActions(run.captureRefusal),
|
|
97
96
|
},
|
|
98
97
|
};
|
|
99
98
|
}
|
|
@@ -101,15 +100,17 @@ export function candidateFailureTerminal(run, lane) {
|
|
|
101
100
|
* required Delegate failure becomes terminal. Persist those unavoidable bytes
|
|
102
101
|
* as blocked and revertable; envelope runs stay diagnostic-only. */
|
|
103
102
|
export async function persistFailedInPlaceWorkProduct(input) {
|
|
104
|
-
if (!input.live || (!input.run.diff.trim() && !input.run.
|
|
103
|
+
if (!input.live || (!input.run.diff.trim() && !input.run.captureRefusal))
|
|
105
104
|
return;
|
|
106
|
-
const
|
|
107
|
-
if (
|
|
105
|
+
const refusal = input.run.captureRefusal;
|
|
106
|
+
if (refusal) {
|
|
107
|
+
// Uncaptured live effects: nothing was rolled back and no patch or revert
|
|
108
|
+
// anchor can be produced, so the record says exactly that.
|
|
109
|
+
const manualCleanup = refusal.disposition === "manual_cleanup";
|
|
108
110
|
const facts = makeOutcomeFacts("failed", {
|
|
109
111
|
reason: "harness_failed",
|
|
110
|
-
noChanges:
|
|
112
|
+
noChanges: !manualCleanup,
|
|
111
113
|
});
|
|
112
|
-
const manualCleanup = secretRefusal.disposition === "manual_cleanup";
|
|
113
114
|
input.store.writeYaml(join(input.paths.finalDir, "work_product.yaml"), {
|
|
114
115
|
id: newId("wp"),
|
|
115
116
|
kind: input.kind,
|
|
@@ -123,11 +124,11 @@ export async function persistFailedInPlaceWorkProduct(input) {
|
|
|
123
124
|
lifecycle: facts.lifecycle,
|
|
124
125
|
outcome_facts: facts,
|
|
125
126
|
review_verified: false,
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
recovery_detail:
|
|
127
|
+
capture_refused: true,
|
|
128
|
+
capture_recovery: refusal.disposition,
|
|
129
|
+
recovery_detail: refusal.detail,
|
|
129
130
|
adopted: manualCleanup,
|
|
130
|
-
apply_state: manualCleanup ? "applied_review_blocked" : "
|
|
131
|
+
apply_state: manualCleanup ? "applied_review_blocked" : "not_applied",
|
|
131
132
|
pre_turn_sha: input.preTurnSha,
|
|
132
133
|
post_turn_sha: null,
|
|
133
134
|
revert_anchor_id: null,
|
|
@@ -135,8 +136,8 @@ export async function persistFailedInPlaceWorkProduct(input) {
|
|
|
135
136
|
});
|
|
136
137
|
input.log.emit("work_product.emitted", {
|
|
137
138
|
winner: input.run.attemptId,
|
|
138
|
-
apply_state: manualCleanup ? "applied_review_blocked" : "
|
|
139
|
-
|
|
139
|
+
apply_state: manualCleanup ? "applied_review_blocked" : "not_applied",
|
|
140
|
+
capture_refused: true,
|
|
140
141
|
manual_cleanup_required: manualCleanup,
|
|
141
142
|
});
|
|
142
143
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegationFailure.js","sourceRoot":"","sources":["../src/delegationFailure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAiB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAG1E,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"delegationFailure.js","sourceRoot":"","sources":["../src/delegationFailure.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type HarnessEvent, type RunOutcomeFacts, type WorkspaceEnvelope, type W
|
|
|
2
2
|
import { type WorkspaceManager, type CapturedWorkspaceFiles } from "@claudexor/workspace";
|
|
3
3
|
import { type ArtifactStore, type RunPaths } from "@claudexor/artifact-store";
|
|
4
4
|
import { type EventLog } from "@claudexor/event-log";
|
|
5
|
-
import type {
|
|
5
|
+
import type { CaptureRefusal } from "./secretDiff.js";
|
|
6
6
|
export interface DirectoryCandidate extends CapturedWorkspaceFiles {
|
|
7
7
|
artifactRoot: string;
|
|
8
8
|
}
|
|
@@ -12,11 +12,10 @@ export declare function captureDirectoryCandidate(input: {
|
|
|
12
12
|
manager: WorkspaceManager;
|
|
13
13
|
envelope: WorkspaceEnvelope;
|
|
14
14
|
artifactRoot: string;
|
|
15
|
-
sourceRoot: string;
|
|
16
15
|
observedPaths: string[];
|
|
17
16
|
}): Promise<{
|
|
18
17
|
files?: DirectoryCandidate;
|
|
19
|
-
refusal?:
|
|
18
|
+
refusal?: CaptureRefusal;
|
|
20
19
|
}>;
|
|
21
20
|
export declare function directoryChangedEntries(manifest: WorkspaceFilesManifest): {
|
|
22
21
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directoryCandidate.d.ts","sourceRoot":"","sources":["../src/directoryCandidate.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAE5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAK5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"directoryCandidate.d.ts","sourceRoot":"","sources":["../src/directoryCandidate.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAE5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAK5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAChE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAchG;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,GAAG,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC,CAsBpE;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAEtE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAWlE;AAED,oFAAoF;AACpF,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAkCrE;AAED,yFAAyF;AACzF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,OAAO,CAAC,CAalB;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,eAAe,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;IACd,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACnF,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EhB"}
|
|
@@ -26,7 +26,6 @@ export async function captureDirectoryCandidate(input) {
|
|
|
26
26
|
try {
|
|
27
27
|
const files = await input.manager.captureFiles(input.envelope, input.artifactRoot, {
|
|
28
28
|
observedPaths: input.observedPaths,
|
|
29
|
-
sourceRoot: input.sourceRoot,
|
|
30
29
|
});
|
|
31
30
|
return { files: { ...files, artifactRoot: input.artifactRoot } };
|
|
32
31
|
}
|
|
@@ -38,6 +37,9 @@ export async function captureDirectoryCandidate(input) {
|
|
|
38
37
|
? "manual_cleanup"
|
|
39
38
|
: "discarded",
|
|
40
39
|
detail: "Directory output capture or its sensitive-resource check failed; no file payload was published. Direct effects require inspection, not a fabricated rollback.",
|
|
40
|
+
// Directory results still fail closed on their content scan (the
|
|
41
|
+
// per-file manifest has no `withheld` form yet); keep its honest phase.
|
|
42
|
+
phase: "artifact_security",
|
|
41
43
|
},
|
|
42
44
|
};
|
|
43
45
|
}
|
|
@@ -91,7 +93,6 @@ export async function directoryCandidateStable(manager, envelope, files) {
|
|
|
91
93
|
manager,
|
|
92
94
|
envelope,
|
|
93
95
|
artifactRoot,
|
|
94
|
-
sourceRoot: files.manifest.sourceRoot,
|
|
95
96
|
observedPaths: files.manifest.entries.map((entry) => entry.path),
|
|
96
97
|
});
|
|
97
98
|
return current.files?.manifestSha256 === files.manifestSha256;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directoryCandidate.js","sourceRoot":"","sources":["../src/directoryCandidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAKL,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAOhD,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,KAAkB,EAAE,KAAmB,EAAE,GAAW;IACxF,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,IAA2D,CAAC;IACxF,MAAM,MAAM,GAAG;QACb,KAAK,CAAC,OAAO,EAAE,IAAI;QACnB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;KACpF,CAAC;IACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACjF,KAAK,CAAC,IAAI,CAAC;aACX,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,
|
|
1
|
+
{"version":3,"file":"directoryCandidate.js","sourceRoot":"","sources":["../src/directoryCandidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type ContinuityIdentityCheck, type HarnessRunSpec, type ResumableCause, type RunContinuityReceipt, type RunResumable, type SessionCapsule } from "@claudexor/schema";
|
|
2
|
+
import { type UncertainInput } from "./continuation-input.js";
|
|
3
|
+
import type { AfterTryVerdict, InRunContinuityDeps, TryFacts } from "./inrun-continuity-types.js";
|
|
4
|
+
/** What the controller remembers about the try it prepared as a continuation. */
|
|
5
|
+
export interface ContinuedTry {
|
|
6
|
+
carrier: RunContinuityReceipt["carrier"];
|
|
7
|
+
cause: ResumableCause;
|
|
8
|
+
fromProfileId: string | null;
|
|
9
|
+
toProfileId: string | null;
|
|
10
|
+
memory: RunContinuityReceipt["memory"];
|
|
11
|
+
inputDelivery: RunContinuityReceipt["inputDelivery"];
|
|
12
|
+
/** The first try of a `continueFrom` successor: the predecessor's run and
|
|
13
|
+
* attempt, and whether this run executes in its root. In-run tries leave
|
|
14
|
+
* both unset (this run, same root). */
|
|
15
|
+
from?: {
|
|
16
|
+
runId: string;
|
|
17
|
+
attemptId: string;
|
|
18
|
+
};
|
|
19
|
+
workspace?: RunContinuityReceipt["workspace"];
|
|
20
|
+
summarized: boolean;
|
|
21
|
+
}
|
|
22
|
+
/** The typed limit that ended a try (A11 evidence quality). */
|
|
23
|
+
export interface LimitEvidenceState {
|
|
24
|
+
resetsAt: string | null;
|
|
25
|
+
retryDelayMs: number | null;
|
|
26
|
+
constraintId: string | null;
|
|
27
|
+
}
|
|
28
|
+
export interface ContinuedTryContext {
|
|
29
|
+
deps: InRunContinuityDeps;
|
|
30
|
+
capsule: SessionCapsule | null;
|
|
31
|
+
acted: boolean;
|
|
32
|
+
nativeRejected: boolean;
|
|
33
|
+
/** Index of the try that just settled; the successor is `tryIndex + 1`. */
|
|
34
|
+
tryIndex: number;
|
|
35
|
+
uncertainInput: string | null;
|
|
36
|
+
retainedOutput: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ComposedContinuedTry {
|
|
39
|
+
verdict: AfterTryVerdict;
|
|
40
|
+
/** Null for a fresh replay (today's rule). */
|
|
41
|
+
continued: ContinuedTry | null;
|
|
42
|
+
/** The capsule after a native location/move (the new holder), or null when unchanged. */
|
|
43
|
+
capsule: SessionCapsule | null;
|
|
44
|
+
}
|
|
45
|
+
/** Plan and prepare the carrier for the next try, then compose its spec. */
|
|
46
|
+
export declare function composeContinuedTry(ctx: ContinuedTryContext, facts: TryFacts, base: HarnessRunSpec, cause: ResumableCause, delayMs: number): Promise<ComposedContinuedTry>;
|
|
47
|
+
/** The predecessor's input that may not be in the vendor history: the last
|
|
48
|
+
* caller-authored work order if the first try died before `started`, plus unconfirmed
|
|
49
|
+
* steering messages (`message.accepted` with no `message.delivered`), the chain's
|
|
50
|
+
* included while no newer run has started. */
|
|
51
|
+
export declare function uncertainInputFor(runDir: string, previousInputs: readonly UncertainInput[], attemptId: string, currentRunDir?: string): string | null;
|
|
52
|
+
/** The receipt of a continued try (per-try model attestation, never borrowed). */
|
|
53
|
+
export declare function continuityReceipt(input: {
|
|
54
|
+
deps: InRunContinuityDeps;
|
|
55
|
+
continued: ContinuedTry;
|
|
56
|
+
tryIndex: number;
|
|
57
|
+
requestedModel: string | null;
|
|
58
|
+
observedModel: string | null;
|
|
59
|
+
nativeRejected: boolean;
|
|
60
|
+
identity: ContinuityIdentityCheck;
|
|
61
|
+
reingestedTokens: number | null;
|
|
62
|
+
}): RunContinuityReceipt;
|
|
63
|
+
/** The terminal `resumable` block of an attempt whose work is unfinished. */
|
|
64
|
+
export declare function resumableBlock(input: {
|
|
65
|
+
deps: InRunContinuityDeps;
|
|
66
|
+
cause: ResumableCause;
|
|
67
|
+
capsule: SessionCapsule | null;
|
|
68
|
+
nativeRejected: boolean;
|
|
69
|
+
acted: boolean;
|
|
70
|
+
limit: LimitEvidenceState | null;
|
|
71
|
+
terminalCode: string | null;
|
|
72
|
+
workspace: RunResumable["workspace"];
|
|
73
|
+
}): RunResumable;
|
|
74
|
+
/** Re-locate the capsule's holder through the adapter after a try settles; a hit is persisted. */
|
|
75
|
+
export declare function relocateCapsule(deps: InRunContinuityDeps, capsule: SessionCapsule, runSpec: HarnessRunSpec): Promise<SessionCapsule>;
|
|
76
|
+
//# sourceMappingURL=inrun-continuity-carrier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inrun-continuity-carrier.d.ts","sourceRoot":"","sources":["../src/inrun-continuity-carrier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The in-run continuation's I/O-bearing seams, split out of the per-attempt
|
|
3
|
+
* controller (`inrun-continuity.ts`) so the controller stays a readable state
|
|
4
|
+
* machine: composing the spec of a continued try (carrier → prompt/resume id),
|
|
5
|
+
* the moved-session thread disclosure (INV-137), the uncertain-input
|
|
6
|
+
* reference, the per-try receipt and the terminal `resumable` block. Free
|
|
7
|
+
* functions over explicit inputs; the controller owns the mutable state.
|
|
8
|
+
*/
|
|
9
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
|
+
import { HarnessRunSpec as HarnessRunSpecSchema, RunContinuityReceipt as RunContinuityReceiptSchema, } from "@claudexor/schema";
|
|
12
|
+
import { decideCarrier, prepareCarrier } from "./carrier-planner.js";
|
|
13
|
+
import { diffStatFromPatch, steeringFromRunLog } from "./continuation-evidence-io.js";
|
|
14
|
+
import { completeInputPath } from "./continuation-input.js";
|
|
15
|
+
import { continuationNotice, packetContinuationPrompt } from "./continuity-notice.js";
|
|
16
|
+
import { routeListsModel } from "./modelGovernance.js";
|
|
17
|
+
import { registryProfile, relocateSessionCapsule, storeEnvFor, writeSessionCapsule, } from "./session-capsule.js";
|
|
18
|
+
function profileRef(deps, spec, profileId) {
|
|
19
|
+
const row = registryProfile(deps.registry, profileId);
|
|
20
|
+
return {
|
|
21
|
+
profileId,
|
|
22
|
+
env: storeEnvFor(spec.env, row),
|
|
23
|
+
storeLocator: row?.isolation_locator ?? null,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/** Plan and prepare the carrier for the next try, then compose its spec. */
|
|
27
|
+
export async function composeContinuedTry(ctx, facts, base, cause, delayMs) {
|
|
28
|
+
const { deps } = ctx;
|
|
29
|
+
const completed = deps.seed?.completed;
|
|
30
|
+
const from = facts.runSpec.credential_profile?.profile_id ?? null;
|
|
31
|
+
const to = base.credential_profile?.profile_id ?? null;
|
|
32
|
+
const effectiveModel = facts.telemetry.observedModel ?? base.model_hint ?? null;
|
|
33
|
+
const carrierFacts = {
|
|
34
|
+
capsule: ctx.capsule,
|
|
35
|
+
acted: ctx.acted,
|
|
36
|
+
cause,
|
|
37
|
+
sourceProfile: profileRef(deps, facts.runSpec, ctx.capsule ? ctx.capsule.holderProfileId : from),
|
|
38
|
+
targetProfile: profileRef(deps, base, to),
|
|
39
|
+
effectiveModel,
|
|
40
|
+
preference: "auto",
|
|
41
|
+
adapter: deps.adapter,
|
|
42
|
+
nativeRejected: ctx.nativeRejected,
|
|
43
|
+
};
|
|
44
|
+
const prepared = await prepareCarrier(decideCarrier(carrierFacts), {
|
|
45
|
+
facts: carrierFacts,
|
|
46
|
+
evidence: {
|
|
47
|
+
runDir: deps.runDir,
|
|
48
|
+
attemptId: deps.attemptId,
|
|
49
|
+
workOrder: deps.workOrder,
|
|
50
|
+
steering: [],
|
|
51
|
+
predecessors: deps.seed?.evidenceSources,
|
|
52
|
+
},
|
|
53
|
+
targetCwd: base.cwd,
|
|
54
|
+
retainedOutput: ctx.retainedOutput,
|
|
55
|
+
diffStat: facts.currentDiff ? diffStatFromPatch(facts.currentDiff) : null,
|
|
56
|
+
completed,
|
|
57
|
+
});
|
|
58
|
+
if (prepared.carrier === "fresh") {
|
|
59
|
+
return {
|
|
60
|
+
verdict: { kind: "continue", spec: base, delayMs },
|
|
61
|
+
continued: null,
|
|
62
|
+
capsule: null,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const notice = continuationNotice({
|
|
66
|
+
cause,
|
|
67
|
+
completed,
|
|
68
|
+
uncertainInput: ctx.uncertainInput,
|
|
69
|
+
callerText: null,
|
|
70
|
+
});
|
|
71
|
+
// A null hint must not re-resolve to another default on any continued try:
|
|
72
|
+
// native and packet carriers pin the attested model, but only an id the route itself
|
|
73
|
+
// lists — an observed display label is never sent as a model id.
|
|
74
|
+
const attested = facts.telemetry.observedModel;
|
|
75
|
+
const pinned = base.model_hint == null && attested
|
|
76
|
+
? !!deps.route && (await routeListsModel(deps.route, base, attested))
|
|
77
|
+
: false;
|
|
78
|
+
const modelHint = base.model_hint ?? (pinned ? attested : null);
|
|
79
|
+
const continued = {
|
|
80
|
+
carrier: prepared.carrier,
|
|
81
|
+
summarized: prepared.carrier === "packet" && prepared.packet.summarized,
|
|
82
|
+
cause,
|
|
83
|
+
fromProfileId: from,
|
|
84
|
+
toProfileId: to,
|
|
85
|
+
memory: prepared.carrier === "packet" ? "partial" : "full",
|
|
86
|
+
inputDelivery: ctx.uncertainInput === null ? "confirmed" : "uncertain",
|
|
87
|
+
};
|
|
88
|
+
if (prepared.carrier === "packet") {
|
|
89
|
+
const dir = join(deps.attemptDir, "continuation");
|
|
90
|
+
mkdirSync(dir, { recursive: true });
|
|
91
|
+
const evidencePath = join(dir, `evidence-index-try${ctx.tryIndex + 1}.md`);
|
|
92
|
+
writeFileSync(evidencePath, prepared.packet.markdown);
|
|
93
|
+
const spec = HarnessRunSpecSchema.parse({
|
|
94
|
+
...base,
|
|
95
|
+
model_hint: modelHint,
|
|
96
|
+
resume_session_id: null,
|
|
97
|
+
prompt: packetContinuationPrompt({
|
|
98
|
+
originalPrompt: deps.firstPrompt,
|
|
99
|
+
notice,
|
|
100
|
+
evidencePath,
|
|
101
|
+
evidenceMarkdown: prepared.packet.markdown,
|
|
102
|
+
completed,
|
|
103
|
+
}),
|
|
104
|
+
});
|
|
105
|
+
return { verdict: { kind: "continue", spec, delayMs }, continued, capsule: null };
|
|
106
|
+
}
|
|
107
|
+
writeSessionCapsule(deps.attemptDir, prepared.capsule);
|
|
108
|
+
// The capsule names the new holder; a source that cannot be retired (a held
|
|
109
|
+
// file handle, a read-only store) leaves a stale copy, never a failed attempt.
|
|
110
|
+
try {
|
|
111
|
+
await prepared.retire?.();
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
// stale source copy; the holder already moved
|
|
115
|
+
}
|
|
116
|
+
const spec = HarnessRunSpecSchema.parse({
|
|
117
|
+
...base,
|
|
118
|
+
model_hint: modelHint,
|
|
119
|
+
resume_session_id: prepared.resumeRef.nativeSessionId,
|
|
120
|
+
prompt: notice,
|
|
121
|
+
});
|
|
122
|
+
return {
|
|
123
|
+
verdict: { kind: "continue", spec, delayMs },
|
|
124
|
+
continued,
|
|
125
|
+
capsule: prepared.capsule,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/** The predecessor's input that may not be in the vendor history: the last
|
|
129
|
+
* caller-authored work order if the first try died before `started`, plus unconfirmed
|
|
130
|
+
* steering messages (`message.accepted` with no `message.delivered`), the chain's
|
|
131
|
+
* included while no newer run has started. */
|
|
132
|
+
export function uncertainInputFor(runDir, previousInputs, attemptId, currentRunDir = runDir) {
|
|
133
|
+
// Caller inputs arrive newest first. Steering is newer than the caller
|
|
134
|
+
// text of its own run, but older than any subsequent continuation's text.
|
|
135
|
+
const inputs = [...previousInputs];
|
|
136
|
+
const sameRun = inputs.findIndex((input) => input.runDir === runDir);
|
|
137
|
+
const steering = steeringFromRunLog(runDir, attemptId)
|
|
138
|
+
.filter((message) => message.delivery === "uncertain")
|
|
139
|
+
.reverse()
|
|
140
|
+
.map(({ text }) => ({ text, runDir }))
|
|
141
|
+
.filter((message) => !inputs.some((i) => i.runDir === runDir && i.text === message.text));
|
|
142
|
+
inputs.splice(sameRun < 0 ? inputs.length : sameRun, 0, ...steering);
|
|
143
|
+
let remaining = 2048;
|
|
144
|
+
const parts = inputs.map((input) => {
|
|
145
|
+
const shown = Math.min(remaining, input.text.length);
|
|
146
|
+
remaining -= shown;
|
|
147
|
+
const quote = input.text.slice(0, shown);
|
|
148
|
+
return shown === input.text.length
|
|
149
|
+
? quote
|
|
150
|
+
: `${quote}\n[cut: ${shown} of ${input.text.length} characters; the complete text is in ${completeInputPath(input, currentRunDir)}]`;
|
|
151
|
+
});
|
|
152
|
+
return parts.length ? parts.join("\n\n") : null;
|
|
153
|
+
}
|
|
154
|
+
/** The receipt of a continued try (per-try model attestation, never borrowed). */
|
|
155
|
+
export function continuityReceipt(input) {
|
|
156
|
+
const { deps, continued, requestedModel: requested, observedModel: observed } = input;
|
|
157
|
+
return RunContinuityReceiptSchema.parse({
|
|
158
|
+
tryIndex: input.tryIndex,
|
|
159
|
+
attemptId: deps.attemptId,
|
|
160
|
+
carrier: continued.carrier,
|
|
161
|
+
cause: continued.cause,
|
|
162
|
+
from: {
|
|
163
|
+
runId: continued.from?.runId ?? deps.runId,
|
|
164
|
+
attemptId: continued.from?.attemptId ?? deps.attemptId,
|
|
165
|
+
profileId: continued.fromProfileId,
|
|
166
|
+
},
|
|
167
|
+
to: { profileId: continued.toProfileId },
|
|
168
|
+
workspace: continued.workspace ?? "same_root",
|
|
169
|
+
memory: continued.memory === "full" && input.nativeRejected ? "unknown" : continued.memory,
|
|
170
|
+
instructions: "as_sent",
|
|
171
|
+
reingestedTokens: input.reingestedTokens,
|
|
172
|
+
observedModel: observed,
|
|
173
|
+
modelMismatch: requested !== null && observed !== null ? requested !== observed : null,
|
|
174
|
+
identityCheck: continued.carrier === "packet" ? "not_applicable" : input.identity,
|
|
175
|
+
inputDelivery: continued.inputDelivery,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/** The terminal `resumable` block of an attempt whose work is unfinished. */
|
|
179
|
+
export function resumableBlock(input) {
|
|
180
|
+
const { deps } = input;
|
|
181
|
+
const limitCause = ["vendor_limit", "pinned_limit", "pool_exhausted"].includes(input.cause);
|
|
182
|
+
const limit = limitCause ? input.limit : null;
|
|
183
|
+
const session = input.capsule && !input.nativeRejected ? input.capsule : null;
|
|
184
|
+
const carriers = [];
|
|
185
|
+
if (session) {
|
|
186
|
+
carriers.push("native");
|
|
187
|
+
if (deps.adapter.continuity)
|
|
188
|
+
carriers.push("native_moved");
|
|
189
|
+
}
|
|
190
|
+
if (input.acted)
|
|
191
|
+
carriers.push("packet");
|
|
192
|
+
return {
|
|
193
|
+
cause: input.cause,
|
|
194
|
+
resetsAt: limit?.resetsAt ?? null,
|
|
195
|
+
limitWindow: limit?.constraintId ?? null,
|
|
196
|
+
limitEvidence: limit ? (limit.resetsAt || limit.constraintId ? "window" : "unspecified") : null,
|
|
197
|
+
carriers,
|
|
198
|
+
limitCode: limitCause ? (input.terminalCode ?? (limit ? "vendor_limit_rejected" : null)) : null,
|
|
199
|
+
session: session
|
|
200
|
+
? {
|
|
201
|
+
harness: session.harness,
|
|
202
|
+
nativeSessionId: session.nativeSessionId,
|
|
203
|
+
holderProfileId: session.holderProfileId,
|
|
204
|
+
}
|
|
205
|
+
: null,
|
|
206
|
+
workspace: input.workspace,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/** Re-locate the capsule's holder through the adapter after a try settles; a hit is persisted. */
|
|
210
|
+
export async function relocateCapsule(deps, capsule, runSpec) {
|
|
211
|
+
const holder = registryProfile(deps.registry, capsule.holderProfileId);
|
|
212
|
+
const located = await relocateSessionCapsule(capsule, deps.adapter.continuity, storeEnvFor(runSpec.env, holder));
|
|
213
|
+
if (located.located !== true)
|
|
214
|
+
return capsule;
|
|
215
|
+
writeSessionCapsule(deps.attemptDir, located.capsule);
|
|
216
|
+
return located.capsule;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=inrun-continuity-carrier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inrun-continuity-carrier.js","sourceRoot":"","sources":["../src/inrun-continuity-carrier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Thread disclosure is separate from publishing a session/checkpoint. */
|
|
2
|
+
import type { ContinuedTry } from "./inrun-continuity-carrier.js";
|
|
3
|
+
import type { InRunContinuityDeps } from "./inrun-continuity-types.js";
|
|
4
|
+
export declare function discloseContinuedTry(deps: InRunContinuityDeps, continued: ContinuedTry, laneSwitch: {
|
|
5
|
+
harness: string;
|
|
6
|
+
profileId: string | null;
|
|
7
|
+
} | null): void;
|
|
8
|
+
//# sourceMappingURL=inrun-continuity-thread.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inrun-continuity-thread.d.ts","sourceRoot":"","sources":["../src/inrun-continuity-thread.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAC/D,IAAI,CAoBN"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function discloseContinuedTry(deps, continued, laneSwitch) {
|
|
2
|
+
const thread = deps.thread;
|
|
3
|
+
if (!thread || (continued.carrier !== "packet" && continued.carrier !== "native_moved"))
|
|
4
|
+
return;
|
|
5
|
+
const kind = continued.carrier === "packet" ? "packet" : "native_resume";
|
|
6
|
+
deps.emit("session.continuity", {
|
|
7
|
+
thread_id: thread.threadId,
|
|
8
|
+
harness_id: deps.adapter.id,
|
|
9
|
+
kind,
|
|
10
|
+
packet_turns: 0,
|
|
11
|
+
summarized: continued.summarized,
|
|
12
|
+
...(laneSwitch ? { lane_switched_from: laneSwitch } : {}),
|
|
13
|
+
...(continued.carrier === "native_moved" ? { moved: true } : {}),
|
|
14
|
+
});
|
|
15
|
+
if (thread.turnId)
|
|
16
|
+
thread.onContinuityResolved?.(thread.turnId, {
|
|
17
|
+
kind,
|
|
18
|
+
packetTurns: 0,
|
|
19
|
+
summarized: continued.summarized,
|
|
20
|
+
laneSwitchedFrom: laneSwitch,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=inrun-continuity-thread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inrun-continuity-thread.js","sourceRoot":"","sources":["../src/inrun-continuity-thread.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAClC,IAAyB,EACzB,SAAuB,EACvB,UAAgE;IAEhE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,cAAc,CAAC;QAAE,OAAO;IAChG,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC;IACzE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;QAC9B,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI;QACJ,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,SAAS,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM;QACf,MAAM,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE;YAC3C,IAAI;YACJ,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,gBAAgB,EAAE,UAAU;SAC7B,CAAC,CAAC;AACP,CAAC"}
|