@claudexor/orchestrator 3.1.2 → 3.3.7-rc.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 (137) 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 +7 -0
  6. package/dist/attemptTelemetry.d.ts.map +1 -1
  7. package/dist/attemptTelemetry.js +2 -1
  8. package/dist/attemptTelemetry.js.map +1 -1
  9. package/dist/attemptUsageCost.d.ts +24 -2
  10. package/dist/attemptUsageCost.d.ts.map +1 -1
  11. package/dist/attemptUsageCost.js +18 -2
  12. package/dist/attemptUsageCost.js.map +1 -1
  13. package/dist/budgetFailure.d.ts +1 -1
  14. package/dist/budgetFailure.d.ts.map +1 -1
  15. package/dist/budgetFailure.js.map +1 -1
  16. package/dist/candidateEvidence.d.ts +24 -0
  17. package/dist/candidateEvidence.d.ts.map +1 -1
  18. package/dist/candidateEvidence.js +26 -0
  19. package/dist/candidateEvidence.js.map +1 -1
  20. package/dist/credential-profile-rotation.d.ts +145 -0
  21. package/dist/credential-profile-rotation.d.ts.map +1 -0
  22. package/dist/credential-profile-rotation.js +335 -0
  23. package/dist/credential-profile-rotation.js.map +1 -0
  24. package/dist/credential-profiles.d.ts +90 -130
  25. package/dist/credential-profiles.d.ts.map +1 -1
  26. package/dist/credential-profiles.js +156 -290
  27. package/dist/credential-profiles.js.map +1 -1
  28. package/dist/decisionBudget.d.ts +2 -2
  29. package/dist/decisionBudget.d.ts.map +1 -1
  30. package/dist/deepScanReducer.d.ts +14 -44
  31. package/dist/deepScanReducer.d.ts.map +1 -1
  32. package/dist/deepScanReducer.js +240 -128
  33. package/dist/deepScanReducer.js.map +1 -1
  34. package/dist/delegatedHome.d.ts +156 -0
  35. package/dist/delegatedHome.d.ts.map +1 -0
  36. package/dist/delegatedHome.js +179 -0
  37. package/dist/delegatedHome.js.map +1 -0
  38. package/dist/delegationBudgetAuthority.d.ts.map +1 -1
  39. package/dist/delegationBudgetAuthority.js.map +1 -1
  40. package/dist/delegationFailure.d.ts.map +1 -1
  41. package/dist/git-precondition.d.ts +11 -0
  42. package/dist/git-precondition.d.ts.map +1 -0
  43. package/dist/git-precondition.js +69 -0
  44. package/dist/git-precondition.js.map +1 -0
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/interaction.d.ts +14 -6
  50. package/dist/interaction.d.ts.map +1 -1
  51. package/dist/interaction.js +106 -19
  52. package/dist/interaction.js.map +1 -1
  53. package/dist/orchestrator.d.ts +64 -83
  54. package/dist/orchestrator.d.ts.map +1 -1
  55. package/dist/orchestrator.js +578 -691
  56. package/dist/orchestrator.js.map +1 -1
  57. package/dist/planBrief.d.ts +27 -0
  58. package/dist/planBrief.d.ts.map +1 -0
  59. package/dist/planBrief.js +42 -0
  60. package/dist/planBrief.js.map +1 -0
  61. package/dist/planQuestions.js +4 -1
  62. package/dist/planQuestions.js.map +1 -1
  63. package/dist/planRun.d.ts +4 -3
  64. package/dist/planRun.d.ts.map +1 -1
  65. package/dist/planRun.js +33 -33
  66. package/dist/planRun.js.map +1 -1
  67. package/dist/plannerAttempt.d.ts +64 -0
  68. package/dist/plannerAttempt.d.ts.map +1 -0
  69. package/dist/plannerAttempt.js +235 -0
  70. package/dist/plannerAttempt.js.map +1 -0
  71. package/dist/policyFindings.js.map +1 -1
  72. package/dist/requestRequirements.d.ts +43 -3
  73. package/dist/requestRequirements.d.ts.map +1 -1
  74. package/dist/requestRequirements.js +106 -13
  75. package/dist/requestRequirements.js.map +1 -1
  76. package/dist/reviewerPanel.js.map +1 -1
  77. package/dist/root-ledger.d.ts.map +1 -1
  78. package/dist/root-ledger.js +2 -0
  79. package/dist/root-ledger.js.map +1 -1
  80. package/dist/run-bounded.d.ts.map +1 -1
  81. package/dist/run-bounded.js +7 -1
  82. package/dist/run-bounded.js.map +1 -1
  83. package/dist/run-input-resolution.d.ts.map +1 -1
  84. package/dist/run-input-resolution.js +26 -8
  85. package/dist/run-input-resolution.js.map +1 -1
  86. package/dist/runEventLog.d.ts +48 -0
  87. package/dist/runEventLog.d.ts.map +1 -0
  88. package/dist/runEventLog.js +63 -0
  89. package/dist/runEventLog.js.map +1 -0
  90. package/dist/runFacts.d.ts +23 -0
  91. package/dist/runFacts.d.ts.map +1 -0
  92. package/dist/runFacts.js +179 -0
  93. package/dist/runFacts.js.map +1 -0
  94. package/dist/runFactsBuilder.d.ts +5 -0
  95. package/dist/runFactsBuilder.d.ts.map +1 -0
  96. package/dist/runFactsBuilder.js +412 -0
  97. package/dist/runFactsBuilder.js.map +1 -0
  98. package/dist/runFactsDeliverable.d.ts +13 -0
  99. package/dist/runFactsDeliverable.d.ts.map +1 -0
  100. package/dist/runFactsDeliverable.js +94 -0
  101. package/dist/runFactsDeliverable.js.map +1 -0
  102. package/dist/runFactsPresentation.d.ts +7 -0
  103. package/dist/runFactsPresentation.d.ts.map +1 -0
  104. package/dist/runFactsPresentation.js +113 -0
  105. package/dist/runFactsPresentation.js.map +1 -0
  106. package/dist/runFactsReview.d.ts +7 -0
  107. package/dist/runFactsReview.d.ts.map +1 -0
  108. package/dist/runFactsReview.js +63 -0
  109. package/dist/runFactsReview.js.map +1 -0
  110. package/dist/runSupport.d.ts +17 -15
  111. package/dist/runSupport.d.ts.map +1 -1
  112. package/dist/runSupport.js +16 -0
  113. package/dist/runSupport.js.map +1 -1
  114. package/dist/runTerminalContext.d.ts +31 -0
  115. package/dist/runTerminalContext.d.ts.map +1 -0
  116. package/dist/runTerminalContext.js +12 -0
  117. package/dist/runTerminalContext.js.map +1 -0
  118. package/dist/runTerminalResults.d.ts +80 -0
  119. package/dist/runTerminalResults.d.ts.map +1 -0
  120. package/dist/runTerminalResults.js +164 -0
  121. package/dist/runTerminalResults.js.map +1 -0
  122. package/dist/runTerminals.d.ts +4 -80
  123. package/dist/runTerminals.d.ts.map +1 -1
  124. package/dist/runTerminals.js +357 -260
  125. package/dist/runTerminals.js.map +1 -1
  126. package/dist/secretDiff.d.ts +3 -0
  127. package/dist/secretDiff.d.ts.map +1 -1
  128. package/dist/secretDiff.js +7 -0
  129. package/dist/secretDiff.js.map +1 -1
  130. package/dist/structuredOutput.d.ts.map +1 -1
  131. package/dist/structuredOutput.js.map +1 -1
  132. package/dist/task-contract-builder.d.ts +35 -0
  133. package/dist/task-contract-builder.d.ts.map +1 -0
  134. package/dist/task-contract-builder.js +114 -0
  135. package/dist/task-contract-builder.js.map +1 -0
  136. package/dist/transientClassify.js.map +1 -1
  137. package/package.json +17 -17
@@ -0,0 +1,164 @@
1
+ import { join } from "node:path";
2
+ import { RunFailure, 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
+ resetsAt: failure.resetsAt ?? null,
18
+ nextActions: failure.nextActions ?? [],
19
+ });
20
+ }
21
+ /**
22
+ * The typed provenance an ERROR carries about its own terminal.
23
+ *
24
+ * A refusal that knows exactly what it is (a spent quota window, and when it
25
+ * reopens) must not be flattened into `internal` / `code: null` just because it
26
+ * travelled as an exception: the terminal then states less than the thrower
27
+ * knew, and the only remaining signal is prose. `failTerminally` already read
28
+ * `code` this way; category and reset time follow the same rule. Everything is
29
+ * validated against the schema, so an unrelated error carrying a `category`
30
+ * property of its own cannot smuggle in a bogus classification.
31
+ *
32
+ * A candidate attempt that dies on such an error records this on its
33
+ * `CandidateRun`, so the refusal survives the per-slot catch that otherwise
34
+ * reduces it to a message string.
35
+ */
36
+ export function declaredFailure(err) {
37
+ const record = err && typeof err === "object" ? err : {};
38
+ const code = RunFailureCode.safeParse(record["code"]);
39
+ const category = RunFailure.shape.category.safeParse(record["category"]);
40
+ const resetsAt = RunFailure.shape.resetsAt.safeParse(record["resetsAt"]);
41
+ return {
42
+ ...(typeof record["category"] === "string" && category.success
43
+ ? { category: category.data }
44
+ : {}),
45
+ code: code.success ? code.data : null,
46
+ resetsAt: resetsAt.success ? resetsAt.data : null,
47
+ };
48
+ }
49
+ /**
50
+ * Terminal result for a cancelled run: emits run.failed with status
51
+ * "cancelled" so every mode ends consistently. `writeTelemetry` carries the
52
+ * PARTIAL attempt telemetry collected before the abort — a cancelled run
53
+ * must still account for what it spent and observed; it used to be
54
+ * written only by convergence.
55
+ */
56
+ export function cancelledResult(log, runId, taskId, mode, runDir, candidates, writeTelemetry, spendUsd,
57
+ /** The abort signal that ended the run: a STRING reason (e.g.
58
+ * `wall_clock_exceeded` from the maxSeconds deadline) is surfaced; a plain
59
+ * user cancel aborts with a DOMException reason and stays a bare cancel. */
60
+ cancelSignal,
61
+ /** Materializes the diagnostic summary the output.ready below announces. */
62
+ store,
63
+ /** A prepared result may already carry independent checks/review/work facts
64
+ * when cancellation wins during the Delegate terminal barrier. */
65
+ priorFacts) {
66
+ if (writeTelemetry) {
67
+ try {
68
+ writeTelemetry();
69
+ }
70
+ catch {
71
+ /* partial telemetry is best-effort on the cancel path */
72
+ }
73
+ }
74
+ const cancelReason = typeof cancelSignal?.reason === "string" && cancelSignal.reason
75
+ ? cancelSignal.reason
76
+ : undefined;
77
+ const summaryText = cancelReason === "wall_clock_exceeded"
78
+ ? "run cancelled: wall-clock deadline (maxSeconds) exceeded"
79
+ : "run cancelled";
80
+ // Materialize the diagnostic summary BEFORE announcing it — output.ready must
81
+ // point at a file that exists (partial-output honesty), and it must precede
82
+ // the terminal in every mode (INV-116).
83
+ let summaryWritten = false;
84
+ if (store) {
85
+ try {
86
+ store.writeText(join(runDir, "final", "summary.md"), `# Run ${runId} (${mode})\n\n- Lifecycle: cancelled\n${cancelReason ? `- Reason: ${cancelReason}\n` : ""}\n${summaryText}\n`);
87
+ summaryWritten = true;
88
+ }
89
+ catch {
90
+ /* best-effort: a write failure must not mask the cancel terminal */
91
+ }
92
+ }
93
+ // output.ready is EVIDENCE (release wave sol #3): announce the summary only
94
+ // when the file actually materialized — a failed write still gets its
95
+ // terminal below, just without a pointer to a nonexistent artifact.
96
+ if (summaryWritten) {
97
+ log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
98
+ }
99
+ const cancelFacts = terminalOutcomeFacts(priorFacts, "cancelled", cancelReason === "wall_clock_exceeded" ? "wall_clock_exceeded" : "user_cancelled");
100
+ log.emit("run.failed", {
101
+ lifecycle: "cancelled",
102
+ facts: cancelFacts,
103
+ reason: cancelFacts.reason,
104
+ ...(cancelReason ? { cancel_reason: cancelReason } : {}),
105
+ });
106
+ return {
107
+ runId,
108
+ taskId,
109
+ mode,
110
+ lifecycle: "cancelled",
111
+ facts: cancelFacts,
112
+ winner: null,
113
+ runDir,
114
+ summary: summaryText,
115
+ candidates,
116
+ ...(spendUsd !== undefined ? { spendUsd } : {}),
117
+ ...(cancelReason ? { cancelReason } : {}),
118
+ };
119
+ }
120
+ /**
121
+ * Shared post-announce failure terminal. Unexpected throws use its internal
122
+ * defaults; known callers may supply narrow typed provenance. Every run ends
123
+ * with failure.yaml + summary + a terminal run.failed event.
124
+ */
125
+ export function failTerminally(log, store, paths, runId, taskId, mode, phase, err, spendUsd, failureMeta = {}) {
126
+ const message = redactSecrets(err instanceof Error ? err.message : String(err));
127
+ const declared = declaredFailure(err);
128
+ const failFacts = terminalOutcomeFacts(failureMeta.priorFacts, "failed", "harness_failed");
129
+ store.writeText(join(paths.finalDir, "summary.md"), `# Run ${runId} (${mode})\n\n- Lifecycle: failed\n- Phase: ${phase}\n\n${message}\n`);
130
+ writeFailure(store, paths, {
131
+ phase,
132
+ category: declared.category ?? failureMeta.category ?? "internal",
133
+ code: declared.code,
134
+ harnessId: failureMeta.harnessId,
135
+ attemptId: failureMeta.attemptId,
136
+ safeMessage: message,
137
+ rawDetailRef: failureMeta.rawDetailRef,
138
+ runDir: paths.root,
139
+ resetsAt: declared.resetsAt,
140
+ nextActions: failureMeta.nextActions ?? ["Open diagnostics", "Retry the run"],
141
+ });
142
+ log.emit("output.ready", { kind: "summary", path: "final/summary.md", state: "diagnostic" });
143
+ log.emit("run.failed", {
144
+ lifecycle: "failed",
145
+ facts: failFacts,
146
+ reason: failFacts.reason,
147
+ phase,
148
+ error: message,
149
+ failure_ref: "final/failure.yaml",
150
+ });
151
+ return {
152
+ runId,
153
+ taskId,
154
+ mode,
155
+ lifecycle: "failed",
156
+ facts: failFacts,
157
+ winner: null,
158
+ runDir: paths.root,
159
+ summary: message,
160
+ candidates: [],
161
+ ...(spendUsd !== undefined ? { spendUsd } : {}),
162
+ };
163
+ }
164
+ //# 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,83 +1,8 @@
1
- import { RunFailureCode, RunOutcomeFacts, type ModeKind } from "@claudexor/schema";
2
- import type { ArtifactStore } from "@claudexor/artifact-store";
3
- import type { BudgetLedger, BudgetTerminal } from "@claudexor/budget";
4
- import type { EventLog } from "@claudexor/event-log";
5
1
  import type { OrchestratorResult } from "./orchestrator.js";
6
- export interface AnnouncedRunContext {
7
- log: EventLog;
8
- store: ArtifactStore;
9
- paths: ReturnType<ArtifactStore["runPaths"]>;
10
- runId: string;
11
- taskId: string;
12
- mode: ModeKind;
13
- /** Failure phase label when the net has to stamp the terminal. */
14
- phase: string;
15
- /** Settled ledger spend snapshot — failure/cancel terminals must account
16
- * for money already spent exactly like success terminals do. */
17
- spend?: () => number;
18
- valuation?: () => number;
19
- spendEstimated?: () => boolean;
20
- valuationKnowledge?: () => "exact" | "estimated" | "unknown";
21
- /** Re-evaluated after Delegate child drain. A child settlement can make the
22
- * shared family overshoot or become unverifiable after strategy synthesis. */
23
- budgetTerminal?: () => BudgetTerminal;
24
- /** True only while this run owns the effective Delegate family authority.
25
- * Ordinary runs may already have emitted a non-deferred terminal and must
26
- * never be terminalized a second time by the post-drain recheck. */
27
- recheckBudgetAfterBarrier?: () => boolean;
28
- }
29
- type AnnouncedRunIdentity = Pick<AnnouncedRunContext, "log" | "store" | "paths" | "runId" | "taskId" | "mode" | "phase">;
30
- export declare function announcedRunContext(identity: AnnouncedRunIdentity, ledger: BudgetLedger, hasDelegateAuthority: () => boolean): AnnouncedRunContext;
31
- export declare function writeFailure(store: ArtifactStore, paths: ReturnType<ArtifactStore["runPaths"]>, failure: {
32
- phase: string;
33
- category: string;
34
- /** Machine-readable sub-code (typed budget-denial reason); null/omitted when
35
- * the category alone is sufficient. Consumed by surfaces to pick remediation
36
- * without parsing safeMessage (QA-050). */
37
- code?: RunFailureCode | null;
38
- safeMessage: string;
39
- harnessId?: string | null;
40
- attemptId?: string | null;
41
- rawDetailRef?: string;
42
- logRefs?: string[];
43
- eventRefs?: string[];
44
- runDir?: string;
45
- nextActions?: string[];
46
- }): void;
47
- /**
48
- * Terminal result for a cancelled run: emits run.failed with status
49
- * "cancelled" so every mode ends consistently. `writeTelemetry` carries the
50
- * PARTIAL attempt telemetry collected before the abort — a cancelled run
51
- * must still account for what it spent and observed; it used to be
52
- * written only by convergence.
53
- */
54
- export declare function cancelledResult(log: EventLog, runId: string, taskId: string, mode: ModeKind, runDir: string, candidates: {
55
- attemptId: string;
56
- harnessId: string;
57
- status: string;
58
- }[], writeTelemetry?: () => void, spendUsd?: number | null,
59
- /** The abort signal that ended the run: a STRING reason (e.g.
60
- * `wall_clock_exceeded` from the maxSeconds deadline) is surfaced; a plain
61
- * user cancel aborts with a DOMException reason and stays a bare cancel. */
62
- cancelSignal?: AbortSignal,
63
- /** Materializes the diagnostic summary the output.ready below announces. */
64
- store?: ArtifactStore,
65
- /** A prepared result may already carry independent checks/review/work facts
66
- * when cancellation wins during the Delegate terminal barrier. */
67
- priorFacts?: RunOutcomeFacts): OrchestratorResult;
68
- /**
69
- * Shared post-announce failure terminal. Unexpected throws use its internal
70
- * defaults; known callers may supply narrow typed provenance. Every run ends
71
- * with failure.yaml + summary + a terminal run.failed event.
72
- */
73
- 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, failureMeta?: {
74
- category?: "harness_error" | "internal";
75
- harnessId?: string;
76
- attemptId?: string;
77
- rawDetailRef?: string;
78
- nextActions?: string[];
79
- priorFacts?: RunOutcomeFacts;
80
- }): OrchestratorResult;
2
+ import type { AnnouncedRunContext } from "./runTerminalContext.js";
3
+ import { cancelledResult, declaredFailure, failTerminally, writeFailure } from "./runTerminalResults.js";
4
+ export type { AnnouncedRunContext } from "./runTerminalContext.js";
5
+ export { cancelledResult, declaredFailure, failTerminally, writeFailure };
81
6
  /**
82
7
  * Whole-strategy terminal net: run `body`; if it throws AFTER announcing,
83
8
  * stamp terminal artifacts instead of orphaning the run. Pre-announce throws
@@ -96,5 +21,4 @@ beforeTerminal?: (context: AnnouncedRunContext) => void | Promise<void>,
96
21
  * dies before its telemetry writer runs cannot leak it (QA-034 map leak).
97
22
  */
98
23
  onSettled?: (runId: string) => void | Promise<void>): Promise<OrchestratorResult>;
99
- export {};
100
24
  //# sourceMappingURL=runTerminals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runTerminals.d.ts","sourceRoot":"","sources":["../src/runTerminals.ts"],"names":[],"mappings":"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"}
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,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,YAAY,EACb,MAAM,yBAAyB,CAAC;AAOjC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;AAqJ1E;;;;;;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"}