@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.
- package/dist/attemptFinalize.d.ts +14 -11
- package/dist/attemptFinalize.d.ts.map +1 -1
- package/dist/attemptFinalize.js +41 -14
- package/dist/attemptFinalize.js.map +1 -1
- package/dist/attemptTelemetry.d.ts +7 -0
- package/dist/attemptTelemetry.d.ts.map +1 -1
- package/dist/attemptTelemetry.js +2 -1
- package/dist/attemptTelemetry.js.map +1 -1
- package/dist/attemptUsageCost.d.ts +24 -2
- package/dist/attemptUsageCost.d.ts.map +1 -1
- package/dist/attemptUsageCost.js +18 -2
- package/dist/attemptUsageCost.js.map +1 -1
- package/dist/budgetFailure.d.ts +1 -1
- package/dist/budgetFailure.d.ts.map +1 -1
- package/dist/budgetFailure.js.map +1 -1
- package/dist/candidateEvidence.d.ts +24 -0
- package/dist/candidateEvidence.d.ts.map +1 -1
- package/dist/candidateEvidence.js +26 -0
- package/dist/candidateEvidence.js.map +1 -1
- package/dist/credential-profile-rotation.d.ts +145 -0
- package/dist/credential-profile-rotation.d.ts.map +1 -0
- package/dist/credential-profile-rotation.js +335 -0
- package/dist/credential-profile-rotation.js.map +1 -0
- package/dist/credential-profiles.d.ts +90 -130
- package/dist/credential-profiles.d.ts.map +1 -1
- package/dist/credential-profiles.js +156 -290
- package/dist/credential-profiles.js.map +1 -1
- package/dist/decisionBudget.d.ts +2 -2
- package/dist/decisionBudget.d.ts.map +1 -1
- package/dist/deepScanReducer.d.ts +14 -44
- package/dist/deepScanReducer.d.ts.map +1 -1
- package/dist/deepScanReducer.js +240 -128
- package/dist/deepScanReducer.js.map +1 -1
- package/dist/delegatedHome.d.ts +156 -0
- package/dist/delegatedHome.d.ts.map +1 -0
- package/dist/delegatedHome.js +179 -0
- package/dist/delegatedHome.js.map +1 -0
- package/dist/delegationBudgetAuthority.d.ts.map +1 -1
- package/dist/delegationBudgetAuthority.js.map +1 -1
- package/dist/delegationFailure.d.ts.map +1 -1
- package/dist/git-precondition.d.ts +11 -0
- package/dist/git-precondition.d.ts.map +1 -0
- package/dist/git-precondition.js +69 -0
- package/dist/git-precondition.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interaction.d.ts +14 -6
- package/dist/interaction.d.ts.map +1 -1
- package/dist/interaction.js +106 -19
- package/dist/interaction.js.map +1 -1
- package/dist/orchestrator.d.ts +64 -83
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +578 -691
- package/dist/orchestrator.js.map +1 -1
- package/dist/planBrief.d.ts +27 -0
- package/dist/planBrief.d.ts.map +1 -0
- package/dist/planBrief.js +42 -0
- package/dist/planBrief.js.map +1 -0
- package/dist/planQuestions.js +4 -1
- package/dist/planQuestions.js.map +1 -1
- package/dist/planRun.d.ts +4 -3
- package/dist/planRun.d.ts.map +1 -1
- package/dist/planRun.js +33 -33
- package/dist/planRun.js.map +1 -1
- package/dist/plannerAttempt.d.ts +64 -0
- package/dist/plannerAttempt.d.ts.map +1 -0
- package/dist/plannerAttempt.js +235 -0
- package/dist/plannerAttempt.js.map +1 -0
- package/dist/policyFindings.js.map +1 -1
- package/dist/requestRequirements.d.ts +43 -3
- package/dist/requestRequirements.d.ts.map +1 -1
- package/dist/requestRequirements.js +106 -13
- package/dist/requestRequirements.js.map +1 -1
- package/dist/reviewerPanel.js.map +1 -1
- package/dist/root-ledger.d.ts.map +1 -1
- package/dist/root-ledger.js +2 -0
- package/dist/root-ledger.js.map +1 -1
- package/dist/run-bounded.d.ts.map +1 -1
- package/dist/run-bounded.js +7 -1
- package/dist/run-bounded.js.map +1 -1
- package/dist/run-input-resolution.d.ts.map +1 -1
- package/dist/run-input-resolution.js +26 -8
- package/dist/run-input-resolution.js.map +1 -1
- package/dist/runEventLog.d.ts +48 -0
- package/dist/runEventLog.d.ts.map +1 -0
- package/dist/runEventLog.js +63 -0
- package/dist/runEventLog.js.map +1 -0
- package/dist/runFacts.d.ts +23 -0
- package/dist/runFacts.d.ts.map +1 -0
- package/dist/runFacts.js +179 -0
- package/dist/runFacts.js.map +1 -0
- package/dist/runFactsBuilder.d.ts +5 -0
- package/dist/runFactsBuilder.d.ts.map +1 -0
- package/dist/runFactsBuilder.js +412 -0
- package/dist/runFactsBuilder.js.map +1 -0
- package/dist/runFactsDeliverable.d.ts +13 -0
- package/dist/runFactsDeliverable.d.ts.map +1 -0
- package/dist/runFactsDeliverable.js +94 -0
- package/dist/runFactsDeliverable.js.map +1 -0
- package/dist/runFactsPresentation.d.ts +7 -0
- package/dist/runFactsPresentation.d.ts.map +1 -0
- package/dist/runFactsPresentation.js +113 -0
- package/dist/runFactsPresentation.js.map +1 -0
- package/dist/runFactsReview.d.ts +7 -0
- package/dist/runFactsReview.d.ts.map +1 -0
- package/dist/runFactsReview.js +63 -0
- package/dist/runFactsReview.js.map +1 -0
- package/dist/runSupport.d.ts +17 -15
- package/dist/runSupport.d.ts.map +1 -1
- package/dist/runSupport.js +16 -0
- package/dist/runSupport.js.map +1 -1
- package/dist/runTerminalContext.d.ts +31 -0
- package/dist/runTerminalContext.d.ts.map +1 -0
- package/dist/runTerminalContext.js +12 -0
- package/dist/runTerminalContext.js.map +1 -0
- package/dist/runTerminalResults.d.ts +80 -0
- package/dist/runTerminalResults.d.ts.map +1 -0
- package/dist/runTerminalResults.js +164 -0
- package/dist/runTerminalResults.js.map +1 -0
- package/dist/runTerminals.d.ts +4 -80
- package/dist/runTerminals.d.ts.map +1 -1
- package/dist/runTerminals.js +357 -260
- package/dist/runTerminals.js.map +1 -1
- package/dist/secretDiff.d.ts +3 -0
- package/dist/secretDiff.d.ts.map +1 -1
- package/dist/secretDiff.js +7 -0
- package/dist/secretDiff.js.map +1 -1
- package/dist/structuredOutput.d.ts.map +1 -1
- package/dist/structuredOutput.js.map +1 -1
- package/dist/task-contract-builder.d.ts +35 -0
- package/dist/task-contract-builder.d.ts.map +1 -0
- package/dist/task-contract-builder.js +114 -0
- package/dist/task-contract-builder.js.map +1 -0
- package/dist/transientClassify.js.map +1 -1
- 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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"}
|
package/dist/runTerminals.d.ts
CHANGED
|
@@ -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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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":"
|
|
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"}
|