@claudexor/orchestrator 3.1.1 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/attemptFinalize.d.ts +14 -11
  2. package/dist/attemptFinalize.d.ts.map +1 -1
  3. package/dist/attemptFinalize.js +41 -14
  4. package/dist/attemptFinalize.js.map +1 -1
  5. package/dist/attemptTelemetry.d.ts +16 -20
  6. package/dist/attemptTelemetry.d.ts.map +1 -1
  7. package/dist/attemptTelemetry.js +38 -70
  8. package/dist/attemptTelemetry.js.map +1 -1
  9. package/dist/attemptUsageCost.d.ts +47 -0
  10. package/dist/attemptUsageCost.d.ts.map +1 -0
  11. package/dist/attemptUsageCost.js +191 -0
  12. package/dist/attemptUsageCost.js.map +1 -0
  13. package/dist/budgetFailure.d.ts +3 -1
  14. package/dist/budgetFailure.d.ts.map +1 -1
  15. package/dist/budgetFailure.js.map +1 -1
  16. package/dist/candidateEvidence.d.ts +5 -0
  17. package/dist/candidateEvidence.d.ts.map +1 -1
  18. package/dist/candidateEvidence.js +3 -1
  19. package/dist/candidateEvidence.js.map +1 -1
  20. package/dist/candidateOutputs.d.ts +19 -0
  21. package/dist/candidateOutputs.d.ts.map +1 -1
  22. package/dist/candidateOutputs.js +201 -67
  23. package/dist/candidateOutputs.js.map +1 -1
  24. package/dist/credential-profile-rotation.d.ts +145 -0
  25. package/dist/credential-profile-rotation.d.ts.map +1 -0
  26. package/dist/credential-profile-rotation.js +315 -0
  27. package/dist/credential-profile-rotation.js.map +1 -0
  28. package/dist/credential-profiles.d.ts +35 -134
  29. package/dist/credential-profiles.d.ts.map +1 -1
  30. package/dist/credential-profiles.js +73 -295
  31. package/dist/credential-profiles.js.map +1 -1
  32. package/dist/decisionBudget.d.ts +43 -0
  33. package/dist/decisionBudget.d.ts.map +1 -0
  34. package/dist/decisionBudget.js +84 -0
  35. package/dist/decisionBudget.js.map +1 -0
  36. package/dist/decisionTerminalReconciliation.d.ts +18 -0
  37. package/dist/decisionTerminalReconciliation.d.ts.map +1 -0
  38. package/dist/decisionTerminalReconciliation.js +26 -0
  39. package/dist/decisionTerminalReconciliation.js.map +1 -0
  40. package/dist/deepScanReducer.d.ts +14 -44
  41. package/dist/deepScanReducer.d.ts.map +1 -1
  42. package/dist/deepScanReducer.js +240 -128
  43. package/dist/deepScanReducer.js.map +1 -1
  44. package/dist/delegation-parent-activation.d.ts +6 -0
  45. package/dist/delegation-parent-activation.d.ts.map +1 -0
  46. package/dist/delegation-parent-activation.js +13 -0
  47. package/dist/delegation-parent-activation.js.map +1 -0
  48. package/dist/delegationBudgetAuthority.d.ts +30 -0
  49. package/dist/delegationBudgetAuthority.d.ts.map +1 -0
  50. package/dist/delegationBudgetAuthority.js +157 -0
  51. package/dist/delegationBudgetAuthority.js.map +1 -0
  52. package/dist/delegationFailure.d.ts +58 -0
  53. package/dist/delegationFailure.d.ts.map +1 -0
  54. package/dist/delegationFailure.js +184 -0
  55. package/dist/delegationFailure.js.map +1 -0
  56. package/dist/delegationToolEvidence.d.ts +20 -0
  57. package/dist/delegationToolEvidence.d.ts.map +1 -0
  58. package/dist/delegationToolEvidence.js +46 -0
  59. package/dist/delegationToolEvidence.js.map +1 -0
  60. package/dist/git-precondition.d.ts +11 -0
  61. package/dist/git-precondition.d.ts.map +1 -0
  62. package/dist/git-precondition.js +69 -0
  63. package/dist/git-precondition.js.map +1 -0
  64. package/dist/index.d.ts +3 -1
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +3 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/interaction.d.ts +14 -6
  69. package/dist/interaction.d.ts.map +1 -1
  70. package/dist/interaction.js +106 -19
  71. package/dist/interaction.js.map +1 -1
  72. package/dist/orchestrator.d.ts +62 -115
  73. package/dist/orchestrator.d.ts.map +1 -1
  74. package/dist/orchestrator.js +671 -965
  75. package/dist/orchestrator.js.map +1 -1
  76. package/dist/plan-prompt.d.ts +3 -0
  77. package/dist/plan-prompt.d.ts.map +1 -0
  78. package/dist/plan-prompt.js +28 -0
  79. package/dist/plan-prompt.js.map +1 -0
  80. package/dist/planBrief.d.ts +27 -0
  81. package/dist/planBrief.d.ts.map +1 -0
  82. package/dist/planBrief.js +42 -0
  83. package/dist/planBrief.js.map +1 -0
  84. package/dist/planRun.d.ts +4 -3
  85. package/dist/planRun.d.ts.map +1 -1
  86. package/dist/planRun.js +33 -33
  87. package/dist/planRun.js.map +1 -1
  88. package/dist/plannerAttempt.d.ts +64 -0
  89. package/dist/plannerAttempt.d.ts.map +1 -0
  90. package/dist/plannerAttempt.js +235 -0
  91. package/dist/plannerAttempt.js.map +1 -0
  92. package/dist/policyFindings.js.map +1 -1
  93. package/dist/requestRequirements.d.ts +45 -1
  94. package/dist/requestRequirements.d.ts.map +1 -1
  95. package/dist/requestRequirements.js +158 -11
  96. package/dist/requestRequirements.js.map +1 -1
  97. package/dist/reviewerPanel.js.map +1 -1
  98. package/dist/root-ledger.d.ts +13 -0
  99. package/dist/root-ledger.d.ts.map +1 -0
  100. package/dist/root-ledger.js +21 -0
  101. package/dist/root-ledger.js.map +1 -0
  102. package/dist/routing-failure.d.ts +6 -0
  103. package/dist/routing-failure.d.ts.map +1 -0
  104. package/dist/routing-failure.js +12 -0
  105. package/dist/routing-failure.js.map +1 -0
  106. package/dist/run-bounded.d.ts +3 -0
  107. package/dist/run-bounded.d.ts.map +1 -0
  108. package/dist/run-bounded.js +23 -0
  109. package/dist/run-bounded.js.map +1 -0
  110. package/dist/run-input-resolution.d.ts +10 -0
  111. package/dist/run-input-resolution.d.ts.map +1 -0
  112. package/dist/run-input-resolution.js +88 -0
  113. package/dist/run-input-resolution.js.map +1 -0
  114. package/dist/runEventLog.d.ts +48 -0
  115. package/dist/runEventLog.d.ts.map +1 -0
  116. package/dist/runEventLog.js +63 -0
  117. package/dist/runEventLog.js.map +1 -0
  118. package/dist/runFacts.d.ts +23 -0
  119. package/dist/runFacts.d.ts.map +1 -0
  120. package/dist/runFacts.js +179 -0
  121. package/dist/runFacts.js.map +1 -0
  122. package/dist/runFactsBuilder.d.ts +5 -0
  123. package/dist/runFactsBuilder.d.ts.map +1 -0
  124. package/dist/runFactsBuilder.js +412 -0
  125. package/dist/runFactsBuilder.js.map +1 -0
  126. package/dist/runFactsDeliverable.d.ts +13 -0
  127. package/dist/runFactsDeliverable.d.ts.map +1 -0
  128. package/dist/runFactsDeliverable.js +94 -0
  129. package/dist/runFactsDeliverable.js.map +1 -0
  130. package/dist/runFactsPresentation.d.ts +7 -0
  131. package/dist/runFactsPresentation.d.ts.map +1 -0
  132. package/dist/runFactsPresentation.js +113 -0
  133. package/dist/runFactsPresentation.js.map +1 -0
  134. package/dist/runFactsReview.d.ts +7 -0
  135. package/dist/runFactsReview.d.ts.map +1 -0
  136. package/dist/runFactsReview.js +63 -0
  137. package/dist/runFactsReview.js.map +1 -0
  138. package/dist/runSupport.d.ts +17 -15
  139. package/dist/runSupport.d.ts.map +1 -1
  140. package/dist/runSupport.js +16 -0
  141. package/dist/runSupport.js.map +1 -1
  142. package/dist/runTelemetryWriter.d.ts +5 -2
  143. package/dist/runTelemetryWriter.d.ts.map +1 -1
  144. package/dist/runTelemetryWriter.js +72 -1
  145. package/dist/runTelemetryWriter.js.map +1 -1
  146. package/dist/runTerminalContext.d.ts +31 -0
  147. package/dist/runTerminalContext.d.ts.map +1 -0
  148. package/dist/runTerminalContext.js +12 -0
  149. package/dist/runTerminalContext.js.map +1 -0
  150. package/dist/runTerminalResults.d.ts +55 -0
  151. package/dist/runTerminalResults.d.ts.map +1 -0
  152. package/dist/runTerminalResults.js +134 -0
  153. package/dist/runTerminalResults.js.map +1 -0
  154. package/dist/runTerminals.d.ts +8 -57
  155. package/dist/runTerminals.d.ts.map +1 -1
  156. package/dist/runTerminals.js +423 -135
  157. package/dist/runTerminals.js.map +1 -1
  158. package/dist/secretDiff.d.ts +32 -0
  159. package/dist/secretDiff.d.ts.map +1 -0
  160. package/dist/secretDiff.js +140 -0
  161. package/dist/secretDiff.js.map +1 -0
  162. package/dist/structuredOutput.d.ts.map +1 -1
  163. package/dist/structuredOutput.js.map +1 -1
  164. package/dist/task-contract-builder.d.ts +35 -0
  165. package/dist/task-contract-builder.d.ts.map +1 -0
  166. package/dist/task-contract-builder.js +114 -0
  167. package/dist/task-contract-builder.js.map +1 -0
  168. package/dist/terminalOutcome.d.ts +22 -0
  169. package/dist/terminalOutcome.d.ts.map +1 -0
  170. package/dist/terminalOutcome.js +39 -0
  171. package/dist/terminalOutcome.js.map +1 -0
  172. package/dist/transientClassify.js.map +1 -1
  173. package/package.json +17 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runTerminalResults.d.ts","sourceRoot":"","sources":["../src/runTerminalResults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAExF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB;;+CAE2C;IAC3C,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GACA,IAAI,CAcN;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACtE,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;AACxB;;4EAE4E;AAC5E,YAAY,CAAC,EAAE,WAAW;AAC1B,4EAA4E;AAC5E,KAAK,CAAC,EAAE,aAAa;AACrB;kEACkE;AAClE,UAAU,CAAC,EAAE,eAAe,GAC3B,kBAAkB,CA6DpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,GAAE;IACX,QAAQ,CAAC,EAAE,eAAe,GAAG,UAAU,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,eAAe,CAAC;CACzB,GACL,kBAAkB,CA0CpB"}
@@ -0,0 +1,134 @@
1
+ import { join } from "node:path";
2
+ import { RunFailureCode } from "@claudexor/schema";
3
+ import { redactSecrets } from "@claudexor/util";
4
+ import { terminalOutcomeFacts } from "./terminalOutcome.js";
5
+ export function writeFailure(store, paths, failure) {
6
+ store.writeYaml(join(paths.finalDir, "failure.yaml"), {
7
+ phase: failure.phase,
8
+ category: failure.category,
9
+ code: failure.code ?? null,
10
+ harnessId: failure.harnessId ?? null,
11
+ attemptId: failure.attemptId ?? null,
12
+ safeMessage: redactSecrets(failure.safeMessage),
13
+ rawDetailRef: failure.rawDetailRef ?? null,
14
+ logRefs: failure.logRefs ?? [],
15
+ eventRefs: failure.eventRefs ?? [],
16
+ runDir: failure.runDir ?? paths.root,
17
+ nextActions: failure.nextActions ?? [],
18
+ });
19
+ }
20
+ /**
21
+ * Terminal result for a cancelled run: emits run.failed with status
22
+ * "cancelled" so every mode ends consistently. `writeTelemetry` carries the
23
+ * PARTIAL attempt telemetry collected before the abort — a cancelled run
24
+ * must still account for what it spent and observed; it used to be
25
+ * written only by convergence.
26
+ */
27
+ export function cancelledResult(log, runId, taskId, mode, runDir, candidates, writeTelemetry, spendUsd,
28
+ /** The abort signal that ended the run: a STRING reason (e.g.
29
+ * `wall_clock_exceeded` from the maxSeconds deadline) is surfaced; a plain
30
+ * user cancel aborts with a DOMException reason and stays a bare cancel. */
31
+ cancelSignal,
32
+ /** Materializes the diagnostic summary the output.ready below announces. */
33
+ store,
34
+ /** A prepared result may already carry independent checks/review/work facts
35
+ * when cancellation wins during the Delegate terminal barrier. */
36
+ priorFacts) {
37
+ if (writeTelemetry) {
38
+ try {
39
+ writeTelemetry();
40
+ }
41
+ catch {
42
+ /* partial telemetry is best-effort on the cancel path */
43
+ }
44
+ }
45
+ const cancelReason = typeof cancelSignal?.reason === "string" && cancelSignal.reason
46
+ ? cancelSignal.reason
47
+ : undefined;
48
+ const summaryText = cancelReason === "wall_clock_exceeded"
49
+ ? "run cancelled: wall-clock deadline (maxSeconds) exceeded"
50
+ : "run cancelled";
51
+ // Materialize the diagnostic summary BEFORE announcing it — output.ready must
52
+ // point at a file that exists (partial-output honesty), and it must precede
53
+ // the terminal in every mode (INV-116).
54
+ let summaryWritten = false;
55
+ if (store) {
56
+ try {
57
+ store.writeText(join(runDir, "final", "summary.md"), `# Run ${runId} (${mode})\n\n- Lifecycle: cancelled\n${cancelReason ? `- Reason: ${cancelReason}\n` : ""}\n${summaryText}\n`);
58
+ summaryWritten = true;
59
+ }
60
+ catch {
61
+ /* best-effort: a write failure must not mask the cancel terminal */
62
+ }
63
+ }
64
+ // output.ready is EVIDENCE (release wave sol #3): announce the summary only
65
+ // when the file actually materialized — a failed write still gets its
66
+ // terminal below, just without a pointer to a nonexistent artifact.
67
+ if (summaryWritten) {
68
+ log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
69
+ }
70
+ const cancelFacts = terminalOutcomeFacts(priorFacts, "cancelled", cancelReason === "wall_clock_exceeded" ? "wall_clock_exceeded" : "user_cancelled");
71
+ log.emit("run.failed", {
72
+ lifecycle: "cancelled",
73
+ facts: cancelFacts,
74
+ reason: cancelFacts.reason,
75
+ ...(cancelReason ? { cancel_reason: cancelReason } : {}),
76
+ });
77
+ return {
78
+ runId,
79
+ taskId,
80
+ mode,
81
+ lifecycle: "cancelled",
82
+ facts: cancelFacts,
83
+ winner: null,
84
+ runDir,
85
+ summary: summaryText,
86
+ candidates,
87
+ ...(spendUsd !== undefined ? { spendUsd } : {}),
88
+ ...(cancelReason ? { cancelReason } : {}),
89
+ };
90
+ }
91
+ /**
92
+ * Shared post-announce failure terminal. Unexpected throws use its internal
93
+ * defaults; known callers may supply narrow typed provenance. Every run ends
94
+ * with failure.yaml + summary + a terminal run.failed event.
95
+ */
96
+ export function failTerminally(log, store, paths, runId, taskId, mode, phase, err, spendUsd, failureMeta = {}) {
97
+ const message = redactSecrets(err instanceof Error ? err.message : String(err));
98
+ const parsedCode = RunFailureCode.safeParse(err && typeof err === "object" ? err.code : undefined);
99
+ const failFacts = terminalOutcomeFacts(failureMeta.priorFacts, "failed", "harness_failed");
100
+ store.writeText(join(paths.finalDir, "summary.md"), `# Run ${runId} (${mode})\n\n- Lifecycle: failed\n- Phase: ${phase}\n\n${message}\n`);
101
+ writeFailure(store, paths, {
102
+ phase,
103
+ category: failureMeta.category ?? "internal",
104
+ code: parsedCode.success ? parsedCode.data : null,
105
+ harnessId: failureMeta.harnessId,
106
+ attemptId: failureMeta.attemptId,
107
+ safeMessage: message,
108
+ rawDetailRef: failureMeta.rawDetailRef,
109
+ runDir: paths.root,
110
+ nextActions: failureMeta.nextActions ?? ["Open diagnostics", "Retry the run"],
111
+ });
112
+ log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
113
+ log.emit("run.failed", {
114
+ lifecycle: "failed",
115
+ facts: failFacts,
116
+ reason: failFacts.reason,
117
+ phase,
118
+ error: message,
119
+ failure_ref: "final/failure.yaml",
120
+ });
121
+ return {
122
+ runId,
123
+ taskId,
124
+ mode,
125
+ lifecycle: "failed",
126
+ facts: failFacts,
127
+ winner: null,
128
+ runDir: paths.root,
129
+ summary: message,
130
+ candidates: [],
131
+ ...(spendUsd !== undefined ? { spendUsd } : {}),
132
+ };
133
+ }
134
+ //# sourceMappingURL=runTerminalResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runTerminalResults.js","sourceRoot":"","sources":["../src/runTerminalResults.ts"],"names":[],"mappings":"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"}
@@ -1,60 +1,8 @@
1
- import type { ModeKind, RunFailureCode } from "@claudexor/schema";
2
- import type { ArtifactStore } from "@claudexor/artifact-store";
3
- import type { EventLog } from "@claudexor/event-log";
4
1
  import type { OrchestratorResult } from "./orchestrator.js";
5
- export interface AnnouncedRunContext {
6
- log: EventLog;
7
- store: ArtifactStore;
8
- paths: ReturnType<ArtifactStore["runPaths"]>;
9
- runId: string;
10
- taskId: string;
11
- mode: ModeKind;
12
- /** Failure phase label when the net has to stamp the terminal. */
13
- phase: string;
14
- /** Settled ledger spend snapshot — failure/cancel terminals must account
15
- * for money already spent exactly like success terminals do. */
16
- spend?: () => number;
17
- }
18
- export declare function writeFailure(store: ArtifactStore, paths: ReturnType<ArtifactStore["runPaths"]>, failure: {
19
- phase: string;
20
- category: string;
21
- /** Machine-readable sub-code (typed budget-denial reason); null/omitted when
22
- * the category alone is sufficient. Consumed by surfaces to pick remediation
23
- * without parsing safeMessage (QA-050). */
24
- code?: RunFailureCode | null;
25
- safeMessage: string;
26
- harnessId?: string | null;
27
- attemptId?: string | null;
28
- rawDetailRef?: string;
29
- logRefs?: string[];
30
- eventRefs?: string[];
31
- runDir?: string;
32
- nextActions?: string[];
33
- }): void;
34
- /**
35
- * Terminal result for a cancelled run: emits run.failed with status
36
- * "cancelled" so every mode ends consistently. `writeTelemetry` carries the
37
- * PARTIAL attempt telemetry collected before the abort — a cancelled run
38
- * must still account for what it spent and observed; it used to be
39
- * written only by convergence.
40
- */
41
- export declare function cancelledResult(log: EventLog, runId: string, taskId: string, mode: ModeKind, runDir: string, candidates: {
42
- attemptId: string;
43
- harnessId: string;
44
- status: string;
45
- }[], writeTelemetry?: () => void, spendUsd?: number | null,
46
- /** The abort signal that ended the run: a STRING reason (e.g.
47
- * `wall_clock_exceeded` from the maxSeconds deadline) is surfaced; a plain
48
- * user cancel aborts with a DOMException reason and stays a bare cancel. */
49
- cancelSignal?: AbortSignal,
50
- /** Materializes the diagnostic summary the output.ready below announces. */
51
- store?: ArtifactStore): OrchestratorResult;
52
- /**
53
- * Terminal safety net for an unexpected throw in a post-announce phase.
54
- * Every run must end with failure.yaml + summary + a terminal run.failed
55
- * event.
56
- */
57
- export declare function failTerminally(log: EventLog, store: ArtifactStore, paths: ReturnType<ArtifactStore["runPaths"]>, runId: string, taskId: string, mode: ModeKind, phase: string, err: unknown, spendUsd?: number | null): OrchestratorResult;
2
+ import type { AnnouncedRunContext } from "./runTerminalContext.js";
3
+ import { cancelledResult, failTerminally, writeFailure } from "./runTerminalResults.js";
4
+ export type { AnnouncedRunContext } from "./runTerminalContext.js";
5
+ export { cancelledResult, failTerminally, writeFailure };
58
6
  /**
59
7
  * Whole-strategy terminal net: run `body`; if it throws AFTER announcing,
60
8
  * stamp terminal artifacts instead of orphaning the run. Pre-announce throws
@@ -63,11 +11,14 @@ export declare function failTerminally(log: EventLog, store: ArtifactStore, path
63
11
  * internal failure.
64
12
  */
65
13
  export declare function guardAnnouncedRun(signal: AbortSignal | undefined, body: (announce: (a: AnnouncedRunContext) => void) => Promise<OrchestratorResult>,
14
+ /** Awaited after strategy work but before a deferred terminal is flushed.
15
+ * Delegate parents use it to fence admission and drain child settlements. */
16
+ beforeTerminal?: (context: AnnouncedRunContext) => void | Promise<void>,
66
17
  /**
67
18
  * Invoked once with the announced runId when the strategy settles (return OR
68
19
  * throw). The single per-run terminalization hook: per-run engine state keyed
69
20
  * by runId (e.g. the routing-rationale map) is released HERE so a run that
70
21
  * dies before its telemetry writer runs cannot leak it (QA-034 map leak).
71
22
  */
72
- onSettled?: (runId: string) => void): Promise<OrchestratorResult>;
23
+ onSettled?: (runId: string) => void | Promise<void>): Promise<OrchestratorResult>;
73
24
  //# sourceMappingURL=runTerminals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runTerminals.d.ts","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd;oEACgE;IAChE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB;;+CAE2C;IAC3C,IAAI,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GACA,IAAI,CAcN;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACtE,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;AACxB;;4EAE4E;AAC5E,YAAY,CAAC,EAAE,WAAW;AAC1B,4EAA4E;AAC5E,KAAK,CAAC,EAAE,aAAa,GACpB,kBAAkB,CA2DpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAC5C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,kBAAkB,CAmCpB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,KAAK,OAAO,CAAC,kBAAkB,CAAC;AACjF;;;;;GAKG;AACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAoD7B"}
1
+ {"version":3,"file":"runTerminals.d.ts","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOxF,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAqJzD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,IAAI,KAAK,OAAO,CAAC,kBAAkB,CAAC;AACjF;6EAC6E;AAC7E,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACvE;;;;;GAKG;AACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,kBAAkB,CAAC,CAkW7B"}