@relayflows/sdk 2.0.10 → 2.0.12

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 (172) hide show
  1. package/dist/adapters/base.d.ts +6 -0
  2. package/dist/adapters/base.d.ts.map +1 -1
  3. package/dist/adapters/claude.d.ts.map +1 -1
  4. package/dist/adapters/claude.js +1 -0
  5. package/dist/adapters/claude.js.map +1 -1
  6. package/dist/agent-relay-receipt.d.ts +24 -0
  7. package/dist/agent-relay-receipt.d.ts.map +1 -0
  8. package/dist/agent-relay-receipt.js +66 -0
  9. package/dist/agent-relay-receipt.js.map +1 -0
  10. package/dist/agent-relay-state.d.ts +18 -0
  11. package/dist/agent-relay-state.d.ts.map +1 -0
  12. package/dist/agent-relay-state.js +58 -0
  13. package/dist/agent-relay-state.js.map +1 -0
  14. package/dist/agent-relay-transport.d.ts +17 -70
  15. package/dist/agent-relay-transport.d.ts.map +1 -1
  16. package/dist/agent-relay-transport.js +177 -112
  17. package/dist/agent-relay-transport.js.map +1 -1
  18. package/dist/authored-admission.d.ts +5 -0
  19. package/dist/authored-admission.d.ts.map +1 -0
  20. package/dist/authored-admission.js +14 -0
  21. package/dist/authored-admission.js.map +1 -0
  22. package/dist/authored-budget.d.ts +1 -1
  23. package/dist/authored-budget.d.ts.map +1 -1
  24. package/dist/authored-budget.js +3 -3
  25. package/dist/authored-budget.js.map +1 -1
  26. package/dist/authored-flow-error.d.ts +1 -1
  27. package/dist/authored-flow-error.d.ts.map +1 -1
  28. package/dist/authored-flow-error.js.map +1 -1
  29. package/dist/authored-flow-executor.d.ts +10 -0
  30. package/dist/authored-flow-executor.d.ts.map +1 -1
  31. package/dist/authored-flow-executor.js +10 -7
  32. package/dist/authored-flow-executor.js.map +1 -1
  33. package/dist/authored-flow-loader.d.ts +20 -0
  34. package/dist/authored-flow-loader.d.ts.map +1 -1
  35. package/dist/authored-flow-loader.js +86 -11
  36. package/dist/authored-flow-loader.js.map +1 -1
  37. package/dist/authored-helper-effect.d.ts +1 -1
  38. package/dist/authored-helper-effect.d.ts.map +1 -1
  39. package/dist/authored-helper-effect.js +5 -3
  40. package/dist/authored-helper-effect.js.map +1 -1
  41. package/dist/authored-mcp.d.ts +1 -1
  42. package/dist/authored-mcp.d.ts.map +1 -1
  43. package/dist/authored-mcp.js +7 -4
  44. package/dist/authored-mcp.js.map +1 -1
  45. package/dist/authored-node-entry.d.ts +2 -0
  46. package/dist/authored-node-entry.d.ts.map +1 -0
  47. package/dist/authored-node-entry.js +111 -0
  48. package/dist/authored-node-entry.js.map +1 -0
  49. package/dist/authored-node-runner.d.ts +11 -0
  50. package/dist/authored-node-runner.d.ts.map +1 -0
  51. package/dist/authored-node-runner.js +246 -0
  52. package/dist/authored-node-runner.js.map +1 -0
  53. package/dist/authored-plugin-effect.d.ts +1 -1
  54. package/dist/authored-plugin-effect.d.ts.map +1 -1
  55. package/dist/authored-plugin-effect.js +7 -4
  56. package/dist/authored-plugin-effect.js.map +1 -1
  57. package/dist/authored-root.d.ts +38 -0
  58. package/dist/authored-root.d.ts.map +1 -0
  59. package/dist/authored-root.js +329 -0
  60. package/dist/authored-root.js.map +1 -0
  61. package/dist/authored-runtime-capability.d.ts +6 -0
  62. package/dist/authored-runtime-capability.d.ts.map +1 -0
  63. package/dist/authored-runtime-capability.js +40 -0
  64. package/dist/authored-runtime-capability.js.map +1 -0
  65. package/dist/authored-source-authority.d.ts +4 -0
  66. package/dist/authored-source-authority.d.ts.map +1 -0
  67. package/dist/authored-source-authority.js +61 -0
  68. package/dist/authored-source-authority.js.map +1 -0
  69. package/dist/authored-worker-step.d.ts +2 -2
  70. package/dist/authored-worker-step.d.ts.map +1 -1
  71. package/dist/authored-worker-step.js +11 -6
  72. package/dist/authored-worker-step.js.map +1 -1
  73. package/dist/budget-preflight.d.ts +17 -3
  74. package/dist/budget-preflight.d.ts.map +1 -1
  75. package/dist/budget-preflight.js +31 -24
  76. package/dist/budget-preflight.js.map +1 -1
  77. package/dist/cli/check.js +3 -1
  78. package/dist/cli/check.js.map +1 -1
  79. package/dist/cli/direct-run.d.ts.map +1 -1
  80. package/dist/cli/direct-run.js +18 -14
  81. package/dist/cli/direct-run.js.map +1 -1
  82. package/dist/cli/run.d.ts +2 -0
  83. package/dist/cli/run.d.ts.map +1 -1
  84. package/dist/cli/run.js +56 -1
  85. package/dist/cli/run.js.map +1 -1
  86. package/dist/cli-adapter.d.ts +16 -0
  87. package/dist/cli-adapter.d.ts.map +1 -1
  88. package/dist/cli-adapter.js +17 -0
  89. package/dist/cli-adapter.js.map +1 -1
  90. package/dist/cli.js +4 -4
  91. package/dist/cli.js.map +1 -1
  92. package/dist/cloud-run.d.ts +11 -1
  93. package/dist/cloud-run.d.ts.map +1 -1
  94. package/dist/cloud-run.js +65 -19
  95. package/dist/cloud-run.js.map +1 -1
  96. package/dist/failure-kinds.d.ts +7 -3
  97. package/dist/failure-kinds.d.ts.map +1 -1
  98. package/dist/failure-kinds.js +5 -1
  99. package/dist/failure-kinds.js.map +1 -1
  100. package/dist/journal-client.d.ts +1 -1
  101. package/dist/journal-client.d.ts.map +1 -1
  102. package/dist/journal-client.js +6 -2
  103. package/dist/journal-client.js.map +1 -1
  104. package/dist/llm-worker.d.ts.map +1 -1
  105. package/dist/llm-worker.js +4 -2
  106. package/dist/llm-worker.js.map +1 -1
  107. package/dist/local-agent.d.ts +1 -1
  108. package/dist/local-agent.d.ts.map +1 -1
  109. package/dist/local-agent.js +2 -2
  110. package/dist/local-agent.js.map +1 -1
  111. package/dist/model-pricing.d.ts +3 -4
  112. package/dist/model-pricing.d.ts.map +1 -1
  113. package/dist/model-pricing.js +4 -4
  114. package/dist/model-pricing.js.map +1 -1
  115. package/dist/preflight.d.ts +4 -1
  116. package/dist/preflight.d.ts.map +1 -1
  117. package/dist/preflight.js +36 -18
  118. package/dist/preflight.js.map +1 -1
  119. package/dist/protocol.d.ts +2 -0
  120. package/dist/protocol.d.ts.map +1 -1
  121. package/dist/spec.d.ts +5 -4
  122. package/dist/spec.d.ts.map +1 -1
  123. package/dist/spec.js.map +1 -1
  124. package/dist/worker-cli.d.ts +5 -2
  125. package/dist/worker-cli.d.ts.map +1 -1
  126. package/dist/worker-cli.js +43 -46
  127. package/dist/worker-cli.js.map +1 -1
  128. package/dist/worker-spend.d.ts +4 -3
  129. package/dist/worker-spend.d.ts.map +1 -1
  130. package/dist/worker-spend.js +13 -4
  131. package/dist/worker-spend.js.map +1 -1
  132. package/dist/worker.d.ts.map +1 -1
  133. package/dist/worker.js +12 -4
  134. package/dist/worker.js.map +1 -1
  135. package/package.json +2 -2
  136. package/src/adapters/base.ts +7 -0
  137. package/src/adapters/claude.ts +1 -0
  138. package/src/agent-relay-receipt.ts +120 -0
  139. package/src/agent-relay-state.ts +73 -0
  140. package/src/agent-relay-transport.ts +242 -156
  141. package/src/authored-admission.ts +17 -0
  142. package/src/authored-budget.ts +4 -3
  143. package/src/authored-flow-error.ts +0 -1
  144. package/src/authored-flow-executor.ts +27 -7
  145. package/src/authored-flow-loader.ts +96 -13
  146. package/src/authored-helper-effect.ts +5 -3
  147. package/src/authored-mcp.ts +6 -4
  148. package/src/authored-node-entry.ts +90 -0
  149. package/src/authored-node-runner.ts +219 -0
  150. package/src/authored-plugin-effect.ts +6 -3
  151. package/src/authored-root.ts +396 -0
  152. package/src/authored-runtime-capability.ts +40 -0
  153. package/src/authored-source-authority.ts +62 -0
  154. package/src/authored-worker-step.ts +15 -4
  155. package/src/budget-preflight.ts +41 -25
  156. package/src/cli/check.ts +3 -1
  157. package/src/cli/direct-run.ts +24 -16
  158. package/src/cli/run.ts +58 -1
  159. package/src/cli-adapter.ts +27 -0
  160. package/src/cli.ts +5 -5
  161. package/src/cloud-run.ts +74 -21
  162. package/src/failure-kinds.ts +5 -1
  163. package/src/journal-client.ts +6 -2
  164. package/src/llm-worker.ts +4 -2
  165. package/src/local-agent.ts +7 -2
  166. package/src/model-pricing.ts +4 -4
  167. package/src/preflight.ts +40 -18
  168. package/src/protocol.ts +2 -0
  169. package/src/spec.ts +5 -4
  170. package/src/worker-cli.ts +50 -54
  171. package/src/worker-spend.ts +15 -4
  172. package/src/worker.ts +12 -4
@@ -0,0 +1,329 @@
1
+ import { loadPinnedAuthoredSource } from './authored-source-authority.js';
2
+ import { assertAuthoredRuntimeAvailable, runAuthoredInNode } from './authored-node-runner.js';
3
+ import { createHash, randomUUID } from 'node:crypto';
4
+ import { readFile } from 'node:fs/promises';
5
+ import { canonicalize } from './canonical.js';
6
+ import { compileSpec, toKernelSpec } from './compile.js';
7
+ import { executeAuthoredFlow } from './authored-flow-executor.js';
8
+ import { SPEC_SCHEMA_VERSION } from './spec.js';
9
+ import { withWorkerLease } from './worker-lease.js';
10
+ import { isSurfaceCompletionReason } from './authored-step-output.js';
11
+ const ROOT_KIND = 'relayflows.authored-root.v1';
12
+ /** Admit and execute one authored body under a durable kernel root. */
13
+ export async function executeDurableAuthoredFlow(loaded, journal, input, options) {
14
+ assertAuthoredRuntimeAvailable();
15
+ const source = await readFile(loaded.sourcePath);
16
+ const sources = await Promise.all(loaded.graph.map(async (node) => Object.freeze({
17
+ path: node.path,
18
+ sourceSha256: sha256(await readFile(node.path)),
19
+ surface: node.surfaceAuthority,
20
+ })));
21
+ const definition = loaded.getDefinition(loaded.handle);
22
+ const metadata = Object.freeze({
23
+ kind: ROOT_KIND,
24
+ flowName: definition.name,
25
+ flowPath: loaded.sourcePath,
26
+ sourceSha256: sha256(source),
27
+ surface: loaded.surfaceAuthority,
28
+ sources: Object.freeze(sources),
29
+ ...(options.localAgentStream === undefined ? {} : { localAgentStream: options.localAgentStream }),
30
+ inputPresent: input !== undefined,
31
+ ...(input === undefined ? {} : { input: jsonSnapshot(input, 'authored root input') }),
32
+ });
33
+ const admissionKey = rootAdmissionKey(options.admissionKey ?? randomUUID());
34
+ const stream = `authored-root-${admissionKey.slice(-40)}`;
35
+ const spec = rootSpec(metadata, stream);
36
+ const peer = journal.createPeer();
37
+ await peer.connect();
38
+ await peer.hello('flows-authored-root');
39
+ let cancelDispatch = () => { };
40
+ try {
41
+ const dispatchWait = nextRootDispatch(peer);
42
+ cancelDispatch = dispatchWait.cancel;
43
+ await peer.workerAttach(`worker-${stream}`, ['agent'], {
44
+ workspace: [], streams: [{ stream, read_offset: 0 }],
45
+ });
46
+ const outcome = await journal.runStart(spec, undefined, admissionKey);
47
+ if (outcome.status === 'completed') {
48
+ dispatchWait.cancel();
49
+ return await completedRootResult(journal, outcome.run_id);
50
+ }
51
+ assertRootCanDispatch(outcome);
52
+ // `run.start` is an idempotent receipt. If the first caller died after
53
+ // the daemon dispatched this root, a same-daemon retry sees the existing
54
+ // active run but receives no second dispatch from start itself. Resume is
55
+ // safe for the first caller too: the daemon preserves a live lease and
56
+ // redelivers only when the former worker connection is gone.
57
+ await journal.runResume(outcome.run_id);
58
+ const dispatch = await dispatchWait.promise;
59
+ return await driveRoot(loaded, metadata, journal, peer, dispatch, options);
60
+ }
61
+ finally {
62
+ cancelDispatch();
63
+ peer.close();
64
+ }
65
+ }
66
+ /** Resume the exact source and Surface instance recorded by an authored root. */
67
+ export async function resumeDurableAuthoredFlow(rootRunId, journal, options) {
68
+ const metadata = await readAuthoredRootMetadata(journal, rootRunId);
69
+ if (metadata === undefined)
70
+ return undefined;
71
+ assertAuthoredRuntimeAvailable();
72
+ const loaded = await loadPinnedAuthoredSource(metadata);
73
+ if (metadata.localAgentStream !== options.localAgentStream) {
74
+ throw new Error('authored root local agent surface mismatch');
75
+ }
76
+ const stream = rootStreamFromMetadata(await rootKernelStep(journal, rootRunId));
77
+ const peer = journal.createPeer();
78
+ await peer.connect();
79
+ await peer.hello('flows-authored-root-resume');
80
+ let cancelDispatch = () => { };
81
+ try {
82
+ const dispatchWait = nextRootDispatch(peer);
83
+ cancelDispatch = dispatchWait.cancel;
84
+ await peer.workerAttach(`worker-${stream}-${randomUUID()}`, ['agent'], {
85
+ workspace: [], streams: [{ stream, read_offset: 0 }],
86
+ });
87
+ const outcome = await journal.runResume(rootRunId);
88
+ if (outcome.status === 'completed') {
89
+ dispatchWait.cancel();
90
+ return await completedRootResult(journal, rootRunId);
91
+ }
92
+ assertRootCanDispatch(outcome);
93
+ const dispatch = await dispatchWait.promise;
94
+ return await driveRoot(loaded, metadata, journal, peer, dispatch, options);
95
+ }
96
+ finally {
97
+ cancelDispatch();
98
+ peer.close();
99
+ }
100
+ }
101
+ export async function readAuthoredRootMetadata(journal, runId) {
102
+ const step = await rootKernelStep(journal, runId).catch(() => undefined);
103
+ if (step === undefined || step.id !== 'authored-root' || !hasRootStream(step))
104
+ return undefined;
105
+ if (typeof step.instruction !== 'string') {
106
+ throw new Error('authored root journal has malformed authority metadata');
107
+ }
108
+ let value;
109
+ try {
110
+ value = JSON.parse(step.instruction);
111
+ }
112
+ catch {
113
+ throw new Error('authored root journal has malformed authority metadata');
114
+ }
115
+ if (!isRootMetadata(value)) {
116
+ throw new Error('authored root journal has malformed authority metadata');
117
+ }
118
+ return value;
119
+ }
120
+ async function driveRoot(loaded, metadata, journal, peer, dispatch, options) {
121
+ try {
122
+ const result = await withWorkerLease(peer, dispatch, async (rootSignal) => {
123
+ const callerSignal = options.lifecycle?.signal;
124
+ const signal = callerSignal === undefined ? rootSignal : AbortSignal.any([callerSignal, rootSignal]);
125
+ if (process.versions['bun'] !== undefined) {
126
+ return runAuthoredInNode(metadata, journal.socketPath, dispatch.run_id, {
127
+ dataDir: options.dataDir, localAgentStream: options.localAgentStream,
128
+ ...options.lifecycle, signal,
129
+ });
130
+ }
131
+ return await executeAuthoredFlow(loaded.handle, journal, metadata.inputPresent ? metadata.input : undefined, {
132
+ getDefinition: loaded.getDefinition,
133
+ dataDir: options.dataDir,
134
+ flowPath: metadata.flowPath,
135
+ localAgentStream: options.localAgentStream,
136
+ rootRunId: dispatch.run_id,
137
+ ...options.lifecycle,
138
+ signal: callerSignal === undefined
139
+ ? rootSignal
140
+ : AbortSignal.any([callerSignal, rootSignal]),
141
+ });
142
+ });
143
+ await peer.stepComplete(dispatch.run_id, dispatch.step_id, dispatch.attempt, dispatch.idempotency_key, 'success', {
144
+ output: { name: result.name, completionReason: result.completionReason,
145
+ journalSteps: result.journalSteps,
146
+ ...(result.executionRuntime === undefined ? {} : { executionRuntime: result.executionRuntime }) },
147
+ started_pins: dispatch.pins, end_pins: dispatch.pins,
148
+ });
149
+ return Object.freeze({ ...result, rootRunId: dispatch.run_id });
150
+ }
151
+ catch (error) {
152
+ await terminalizeRootFailure(peer, dispatch, error);
153
+ throw error;
154
+ }
155
+ }
156
+ /**
157
+ * A returned body failure is deterministic for this root attempt. Complete
158
+ * every kernel retry with the same declared failure so the run reaches its
159
+ * durable `step_failed` terminal instead of being stranded waiting for a
160
+ * worker after the CLI has already returned. A process crash never enters
161
+ * this path: the running attempt remains recoverable by `run.resume`.
162
+ */
163
+ async function terminalizeRootFailure(peer, firstDispatch, error) {
164
+ let dispatch = firstDispatch;
165
+ const output = { error: error instanceof Error ? error.message : 'authored root failed' };
166
+ for (;;) {
167
+ const next = nextRootDispatch(peer);
168
+ let outcome;
169
+ try {
170
+ outcome = await peer.stepComplete(dispatch.run_id, dispatch.step_id, dispatch.attempt, dispatch.idempotency_key, 'worker_error', {
171
+ output, started_pins: dispatch.pins, end_pins: dispatch.pins,
172
+ });
173
+ }
174
+ catch (completionError) {
175
+ next.cancel();
176
+ throw completionError;
177
+ }
178
+ if (outcome.status === 'failed') {
179
+ next.cancel();
180
+ return;
181
+ }
182
+ try {
183
+ assertRootCanDispatch(outcome);
184
+ }
185
+ catch (outcomeError) {
186
+ next.cancel();
187
+ throw outcomeError;
188
+ }
189
+ dispatch = await next.promise;
190
+ if (dispatch.run_id !== firstDispatch.run_id) {
191
+ throw new Error('authored root retry was dispatched for a different run');
192
+ }
193
+ }
194
+ }
195
+ function rootSpec(metadata, stream) {
196
+ return toKernelSpec(compileSpec({
197
+ version: SPEC_SCHEMA_VERSION,
198
+ name: `authored-root/${metadata.flowName}`,
199
+ steps: [{
200
+ id: 'authored-root', type: 'agent',
201
+ instruction: canonicalize(metadata),
202
+ surfaces: { streams: [{ stream }] },
203
+ recoveryMode: 'reset', maxIterations: 8,
204
+ }],
205
+ }));
206
+ }
207
+ async function rootKernelStep(journal, runId) {
208
+ const entries = (await journal.journalRead(runId, 1)).entries;
209
+ const spawned = entries.find(entry => entry.entry_type === 'run.spawned');
210
+ const payload = spawned?.payload;
211
+ const step = payload?.spec?.steps?.[0];
212
+ if (typeof step !== 'object' || step === null || Array.isArray(step)) {
213
+ throw new Error('authored root journal has no root step');
214
+ }
215
+ return step;
216
+ }
217
+ function rootStreamFromMetadata(step) {
218
+ const surfaces = step.surfaces;
219
+ const stream = surfaces?.streams?.[0]?.stream;
220
+ if (typeof stream !== 'string' || !stream.startsWith('authored-root-')) {
221
+ throw new Error('authored root journal has no pinned stream');
222
+ }
223
+ return stream;
224
+ }
225
+ function hasRootStream(step) {
226
+ try {
227
+ rootStreamFromMetadata(step);
228
+ return true;
229
+ }
230
+ catch {
231
+ return false;
232
+ }
233
+ }
234
+ function nextRootDispatch(peer) {
235
+ let cancel = () => { };
236
+ const promise = new Promise((resolve, reject) => {
237
+ const timer = setTimeout(() => {
238
+ peer.off('step.dispatch', onDispatch);
239
+ reject(new Error('authored root was not dispatched'));
240
+ }, 30_000);
241
+ const onDispatch = (dispatch) => {
242
+ if (dispatch.step_id !== 'authored-root')
243
+ return;
244
+ clearTimeout(timer);
245
+ peer.off('step.dispatch', onDispatch);
246
+ resolve(dispatch);
247
+ };
248
+ peer.on('step.dispatch', onDispatch);
249
+ cancel = () => {
250
+ clearTimeout(timer);
251
+ peer.off('step.dispatch', onDispatch);
252
+ };
253
+ });
254
+ return { promise, cancel };
255
+ }
256
+ async function completedRootResult(journal, rootRunId) {
257
+ const entries = (await journal.journalRead(rootRunId, 1)).entries;
258
+ const completed = entries.slice().reverse().find(entry => entry.entry_type === 'step.completed'
259
+ && entry.step_id === 'authored-root'
260
+ && entry.payload?.completionReason === 'success');
261
+ const output = completed?.payload?.output;
262
+ if (!isCompletedRootOutput(output)) {
263
+ throw new Error('completed authored root has no durable result');
264
+ }
265
+ return Object.freeze({
266
+ name: output.name,
267
+ completionReason: output.completionReason,
268
+ journalSteps: Object.freeze(output.journalSteps.map(step => Object.freeze({ ...step }))),
269
+ rootRunId,
270
+ });
271
+ }
272
+ function isCompletedRootOutput(value) {
273
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
274
+ return false;
275
+ const output = value;
276
+ return typeof output.name === 'string'
277
+ && (output.completionReason === 'success' || output.completionReason === 'needs_human')
278
+ && Array.isArray(output.journalSteps)
279
+ && output.journalSteps.every(step => typeof step === 'object' && step !== null
280
+ && typeof step.id === 'string' && typeof step.runId === 'string'
281
+ && isSurfaceCompletionReason(step.completionReason));
282
+ }
283
+ function assertRootCanDispatch(outcome) {
284
+ // The kernel reports `parked` after handing an agent lease to its worker;
285
+ // the pushed dispatch is the authority that work is live. An idempotent
286
+ // start retry may instead observe the same active state as `running`.
287
+ if (outcome.status === 'running' || outcome.status === 'parked')
288
+ return;
289
+ throw new Error(`authored root "${outcome.run_id}" is ${outcome.status}`
290
+ + (outcome.completion_reason === null ? '' : ` (${outcome.completion_reason})`));
291
+ }
292
+ function rootAdmissionKey(value) {
293
+ return `authored-root:${createHash('sha256').update(value).digest('hex')}`;
294
+ }
295
+ function sha256(bytes) {
296
+ return createHash('sha256').update(bytes).digest('hex');
297
+ }
298
+ function jsonSnapshot(value, label) {
299
+ const encoded = JSON.stringify(value);
300
+ if (encoded === undefined)
301
+ throw new Error(`${label} is not JSON serializable`);
302
+ return JSON.parse(encoded);
303
+ }
304
+ function isRootMetadata(value) {
305
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
306
+ return false;
307
+ const root = value;
308
+ const surface = root.surface;
309
+ const sources = root.sources;
310
+ return root.kind === ROOT_KIND && typeof root.flowName === 'string'
311
+ && typeof root.flowPath === 'string' && /^[a-f0-9]{64}$/.test(root.sourceSha256 ?? '')
312
+ && typeof root.inputPresent === 'boolean' && surface?.packageName === '@relayflows/surface'
313
+ && typeof surface.version === 'string' && /^[a-f0-9]{64}$/.test(surface.packageSha256 ?? '')
314
+ && /^[a-f0-9]{64}$/.test(surface.runtimeSha256 ?? '')
315
+ && Array.isArray(sources) && sources.length > 0 && sources.every(isRootSourceAuthority)
316
+ && (root.localAgentStream === undefined
317
+ || /^local-agent-[a-f0-9-]+$/.test(root.localAgentStream));
318
+ }
319
+ function isRootSourceAuthority(value) {
320
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
321
+ return false;
322
+ const source = value;
323
+ const surface = source.surface;
324
+ return typeof source.path === 'string' && /^[a-f0-9]{64}$/.test(source.sourceSha256 ?? '')
325
+ && surface?.packageName === '@relayflows/surface' && typeof surface.version === 'string'
326
+ && /^[a-f0-9]{64}$/.test(surface.packageSha256 ?? '')
327
+ && /^[a-f0-9]{64}$/.test(surface.runtimeSha256 ?? '');
328
+ }
329
+ //# sourceMappingURL=authored-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-root.js","sourceRoot":"","sources":["../src/authored-root.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** A runtime with no-op promise hooks cannot distinguish await from ignored then. */
2
+ export declare function assertAuthoredPromiseHooks(): void;
3
+ export declare function assertAuthoredNodeVersion(version?: string): void;
4
+ /** PID 1 is valid when the standalone CLI is a container's init process. */
5
+ export declare function parseAuthoredParentPid(value: string | undefined): number;
6
+ //# sourceMappingURL=authored-runtime-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-runtime-capability.d.ts","sourceRoot":"","sources":["../src/authored-runtime-capability.ts"],"names":[],"mappings":"AAIA,qFAAqF;AACrF,wBAAgB,0BAA0B,IAAI,IAAI,CAejD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAwB,GAAG,IAAI,CAU/E;AAED,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIxE"}
@@ -0,0 +1,40 @@
1
+ import { stripTypeScriptTypes, register } from 'node:module';
2
+ import { createHook } from 'node:async_hooks';
3
+ import { AuthoredFlowExecutionError } from './authored-flow-error.js';
4
+ /** A runtime with no-op promise hooks cannot distinguish await from ignored then. */
5
+ export function assertAuthoredPromiseHooks() {
6
+ let initialized = false;
7
+ let resolved = false;
8
+ const hook = createHook({
9
+ init(_id, type) { if (type === 'PROMISE')
10
+ initialized = true; },
11
+ promiseResolve() { resolved = true; },
12
+ });
13
+ try {
14
+ hook.enable();
15
+ void new Promise((resolve) => resolve());
16
+ }
17
+ finally {
18
+ hook.disable();
19
+ }
20
+ if (!initialized || !resolved)
21
+ throw new AuthoredFlowExecutionError('unsupported_promise_lifecycle', 'authored execution requires working Node promise hooks; use the standalone Node-authored runner with Node >=22.14');
22
+ }
23
+ export function assertAuthoredNodeVersion(version = process.versions.node) {
24
+ const [major, minor] = version.split('.').map(Number);
25
+ if (!Number.isInteger(major) || !Number.isInteger(minor)
26
+ || major < 22 || (major === 22 && minor < 14)
27
+ || process.versions['bun'] !== undefined
28
+ || typeof stripTypeScriptTypes !== 'function' || typeof register !== 'function') {
29
+ throw new AuthoredFlowExecutionError('unsupported_promise_lifecycle', 'the authored runner requires Node >=22.14; no workflow body was executed');
30
+ }
31
+ assertAuthoredPromiseHooks();
32
+ }
33
+ /** PID 1 is valid when the standalone CLI is a container's init process. */
34
+ export function parseAuthoredParentPid(value) {
35
+ const pid = Number(value);
36
+ if (!Number.isSafeInteger(pid) || pid <= 0)
37
+ throw new Error('invalid authored parent identity');
38
+ return pid;
39
+ }
40
+ //# sourceMappingURL=authored-runtime-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-runtime-capability.js","sourceRoot":"","sources":["../src/authored-runtime-capability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,qFAAqF;AACrF,MAAM,UAAU,0BAA0B;IACxC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,IAAI,GAAG,UAAU,CAAC;QACtB,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/D,cAAc,KAAK,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;KACtC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,KAAK,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IAC7B,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,0BAA0B,CACjE,+BAA+B,EAC/B,mHAAmH,CACpH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;IACvE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;WACnD,KAAM,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,KAAM,GAAG,EAAE,CAAC;WAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS;WACrC,OAAO,oBAAoB,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAClF,MAAM,IAAI,0BAA0B,CAAC,+BAA+B,EAClE,0EAA0E,CAAC,CAAC;IAChF,CAAC;IACD,0BAA0B,EAAE,CAAC;AAC/B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,sBAAsB,CAAC,KAAyB;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAChG,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AuthoredRootMetadata } from './authored-root.js';
2
+ /** Re-open the exact source graph and Surface instance pinned by the durable root. */
3
+ export declare function loadPinnedAuthoredSource(metadata: AuthoredRootMetadata, immutableNodeImport?: boolean): Promise<import("./authored-flow-loader.js").LoadedAuthoredFlow>;
4
+ //# sourceMappingURL=authored-source-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-source-authority.d.ts","sourceRoot":"","sources":["../src/authored-source-authority.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,sFAAsF;AACtF,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,mBAAmB,UAAQ,mEA4BzG"}
@@ -0,0 +1,61 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { register } from 'node:module';
4
+ import { pathToFileURL } from 'node:url';
5
+ import { canonicalize } from './canonical.js';
6
+ import { loadAuthoredFlow } from './authored-flow-loader.js';
7
+ const sha256 = (bytes) => createHash('sha256').update(bytes).digest('hex');
8
+ /** Re-open the exact source graph and Surface instance pinned by the durable root. */
9
+ export async function loadPinnedAuthoredSource(metadata, immutableNodeImport = false) {
10
+ const source = await readFile(metadata.flowPath);
11
+ if (sha256(source) !== metadata.sourceSha256) {
12
+ throw new Error('authored root source authority mismatch');
13
+ }
14
+ const sources = new Map([[pathToFileURL(metadata.flowPath).href, source.toString('utf8')]]);
15
+ for (const pinned of metadata.sources) {
16
+ const bytes = await readFile(pinned.path);
17
+ if (sha256(bytes) !== pinned.sourceSha256) {
18
+ throw new Error(`authored root source authority mismatch for "${pinned.path}"`);
19
+ }
20
+ sources.set(pathToFileURL(pinned.path).href, bytes.toString('utf8'));
21
+ }
22
+ if (immutableNodeImport)
23
+ installPinnedSourceLoader(sources);
24
+ const loaded = await loadAuthoredFlow(metadata.flowPath);
25
+ if (canonicalize(loaded.surfaceAuthority) !== canonicalize(metadata.surface)
26
+ || loaded.getDefinition(loaded.handle).name !== metadata.flowName) {
27
+ throw new Error('authored root Surface module authority mismatch');
28
+ }
29
+ const loadedSources = loaded.graph.map(node => ({
30
+ path: node.path,
31
+ sourceSha256: metadata.sources.find(source => source.path === node.path)?.sourceSha256 ?? '',
32
+ surface: node.surfaceAuthority,
33
+ }));
34
+ if (canonicalize(loadedSources) !== canonicalize(metadata.sources)) {
35
+ throw new Error('authored root declared source graph authority mismatch');
36
+ }
37
+ return loaded;
38
+ }
39
+ let pinnedSourceLoaderInstalled = false;
40
+ /** Isolated Node child only: preserve original URLs/resolution, load verified bytes. */
41
+ function installPinnedSourceLoader(sources) {
42
+ if (pinnedSourceLoaderInstalled)
43
+ throw new Error('authored Node process already owns a source graph');
44
+ pinnedSourceLoaderInstalled = true;
45
+ // Node >=22.14 supports register and stripTypeScriptTypes. A loader thread
46
+ // receives the captured bytes, never reopening mutable authored paths.
47
+ const loader = `
48
+ import {stripTypeScriptTypes} from 'node:module';
49
+ let sources;
50
+ export function initialize(data){sources=new Map(data);}
51
+ export async function load(url,context,next){
52
+ if(sources.has(url))return {format:'module',shortCircuit:true,
53
+ source:stripTypeScriptTypes(sources.get(url),{mode:'transform',sourceUrl:url})};
54
+ if(url.startsWith('file:') && new URL(url).pathname.endsWith('.flow.ts'))
55
+ throw new Error('authored root declared source graph authority mismatch');
56
+ return next(url,context);
57
+ }
58
+ `;
59
+ register('data:text/javascript,' + encodeURIComponent(loader), { data: [...sources] });
60
+ }
61
+ //# sourceMappingURL=authored-source-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-source-authority.js","sourceRoot":"","sources":["../src/authored-source-authority.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,10 @@ import type { AuthoredFlowJournalStep } from './authored-flow-executor.js';
6
6
  /** Agent and LLM calls share the exact declarative preflight and lease wait. */
7
7
  export declare function authoredWorkerRunner(definition: {
8
8
  name: string;
9
- }, journal: JournalClient, flowPath: string, journalSteps: AuthoredFlowJournalStep[], waitOptions: RunLifecycleOptions, localAgentStream?: string, budget?: AuthoredBudget, headerBudget?: unknown): {
9
+ }, journal: JournalClient, flowPath: string, journalSteps: AuthoredFlowJournalStep[], waitOptions: RunLifecycleOptions, localAgentStream?: string, budget?: AuthoredBudget, headerBudget?: unknown, rootRunId?: string): {
10
10
  agent(id: string, options: AgentOptions, verification?: NamedGate): Promise<AgentResult>;
11
11
  llm(id: string, prompt: string, options?: LlmOptions, verification?: NamedGate): Promise<unknown>;
12
12
  };
13
13
  /** Deterministic commands execute inline under their per-invocation lease. */
14
- export declare function authoredDeterministicRunner(name: string, journal: JournalClient, journalSteps: AuthoredFlowJournalStep[], budget: AuthoredBudget): (id: string, command: string, terminal?: boolean, leaseMs?: number, verification?: NamedGate) => Promise<string>;
14
+ export declare function authoredDeterministicRunner(name: string, journal: JournalClient, journalSteps: AuthoredFlowJournalStep[], budget: AuthoredBudget, rootRunId?: string): (id: string, command: string, terminal?: boolean, leaseMs?: number, verification?: NamedGate) => Promise<string>;
15
15
  //# sourceMappingURL=authored-worker-step.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authored-worker-step.d.ts","sourceRoot":"","sources":["../src/authored-worker-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG5F,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAK3E,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EACtE,YAAY,EAAE,uBAAuB,EAAE,EAAE,WAAW,EAAE,mBAAmB,EACzE,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO;cAiExD,MAAM,WAAW,YAAY,iBAAiB,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;YAyDhF,MAAM,UAAU,MAAM,YAAY,UAAU,iBAAiB,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;EAmB1G;AAED,8EAA8E;AAC9E,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,cAAc,IAEvF,IAAI,MAAM,EAAE,SAAS,MAAM,EAAE,kBAAgB,EAAE,UAAU,MAAM,EAAE,eAAe,SAAS,KAAG,OAAO,CAAC,MAAM,CAAC,CAa1H"}
1
+ {"version":3,"file":"authored-worker-step.d.ts","sourceRoot":"","sources":["../src/authored-worker-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG5F,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAM3E,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EACtE,YAAY,EAAE,uBAAuB,EAAE,EAAE,WAAW,EAAE,mBAAmB,EACzE,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,EAC1E,SAAS,CAAC,EAAE,MAAM;cAoEA,MAAM,WAAW,YAAY,iBAAiB,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;YAyDhF,MAAM,UAAU,MAAM,YAAY,UAAU,iBAAiB,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;EAmB1G;AAED,8EAA8E;AAC9E,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,cAAc,EACrG,SAAS,CAAC,EAAE,MAAM,IAEJ,IAAI,MAAM,EAAE,SAAS,MAAM,EAAE,kBAAgB,EAAE,UAAU,MAAM,EAAE,eAAe,SAAS,KAAG,OAAO,CAAC,MAAM,CAAC,CAkB1H"}
@@ -6,9 +6,10 @@ import { AuthoredFlowExecutionError } from './authored-flow-error.js';
6
6
  import { SPEC_SCHEMA_VERSION } from './spec.js';
7
7
  import { isSurfaceCompletionReason, readCompletedStepOutput, readSuccessfulOutput } from './authored-step-output.js';
8
8
  import { snapshotJsonValue } from './json-value.js';
9
+ import { authoredChildAdmissionKey } from './authored-admission.js';
9
10
  const WORKSPACE_PERMISSION_ANNOTATION = /:\s*(readonly|readwrite)\s*$/i;
10
11
  /** Agent and LLM calls share the exact declarative preflight and lease wait. */
11
- export function authoredWorkerRunner(definition, journal, flowPath, journalSteps, waitOptions, localAgentStream, budget, headerBudget) {
12
+ export function authoredWorkerRunner(definition, journal, flowPath, journalSteps, waitOptions, localAgentStream, budget, headerBudget, rootRunId) {
12
13
  async function run(step) {
13
14
  const id = step.id;
14
15
  const authoring = { version: SPEC_SCHEMA_VERSION, name: `${definition.name}/${id}`, steps: [step], ...(headerBudget === undefined ? {} : { budget: parseBudget(headerBudget) }) };
@@ -20,7 +21,7 @@ export function authoredWorkerRunner(definition, journal, flowPath, journalSteps
20
21
  const { report, flow: resolved } = checkAuthoredFlow(authoring, flowPath);
21
22
  if (!report.ok || resolved === undefined) {
22
23
  const refusal = report.diagnostics.find((diagnostic) => diagnostic.severity === 'refusal');
23
- throw new AuthoredFlowExecutionError(refusal?.kind === 'budget_missing_price' || refusal?.kind === 'budget_syntax_invalid' ? refusal.kind
24
+ throw new AuthoredFlowExecutionError(refusal?.kind === 'budget_syntax_invalid' ? refusal.kind
24
25
  : step.type === 'llm' ? 'llm_cli_unresolved' : 'agent_cli_unresolved', refusal?.message
25
26
  ?? `flow "${definition.name}" step "${id}": no CLI could be resolved for f.${step.type} `
26
27
  + `(searched for flows.json from "${flowPath}")`);
@@ -52,7 +53,10 @@ export function authoredWorkerRunner(definition, journal, flowPath, journalSteps
52
53
  }
53
54
  return readCompletedStepOutput(journal, outcome.run_id, id, journalSteps);
54
55
  };
55
- return budget === undefined ? consume(await journal.runStart(spec)) : budget.execute(journal, spec, consume);
56
+ const admissionKey = authoredChildAdmissionKey(rootRunId, id);
57
+ return budget === undefined
58
+ ? consume(await journal.runStart(spec, undefined, admissionKey))
59
+ : budget.execute(journal, spec, consume, admissionKey);
56
60
  }
57
61
  return {
58
62
  async agent(id, options, verification) {
@@ -117,7 +121,7 @@ export function authoredWorkerRunner(definition, journal, flowPath, journalSteps
117
121
  };
118
122
  }
119
123
  /** Deterministic commands execute inline under their per-invocation lease. */
120
- export function authoredDeterministicRunner(name, journal, journalSteps, budget) {
124
+ export function authoredDeterministicRunner(name, journal, journalSteps, budget, rootRunId) {
121
125
  return async (id, command, terminal = false, leaseMs, verification) => {
122
126
  const spec = toKernelSpec(compileSpec({
123
127
  version: SPEC_SCHEMA_VERSION,
@@ -128,9 +132,10 @@ export function authoredDeterministicRunner(name, journal, journalSteps, budget)
128
132
  ...(verification === undefined ? {} : { verification }),
129
133
  }],
130
134
  }));
135
+ const admissionKey = authoredChildAdmissionKey(rootRunId, id);
131
136
  if (terminal)
132
- return readSuccessfulOutput(journal, await journal.runStart(spec), id, journalSteps);
133
- return budget.execute(journal, spec, outcome => readSuccessfulOutput(journal, outcome, id, journalSteps));
137
+ return readSuccessfulOutput(journal, await journal.runStart(spec, undefined, admissionKey), id, journalSteps);
138
+ return budget.execute(journal, spec, outcome => readSuccessfulOutput(journal, outcome, id, journalSteps), admissionKey);
134
139
  };
135
140
  }
136
141
  //# sourceMappingURL=authored-worker-step.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authored-worker-step.js","sourceRoot":"","sources":["../src/authored-worker-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authored-worker-step.js","sourceRoot":"","sources":["../src/authored-worker-step.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,19 @@
1
1
  import type { CompiledFlowSpec } from './compile.js';
2
- import type { PreflightRefusal } from './preflight.js';
3
- /** Legacy explicit envelopes keep their worker-supplied pricing contract. */
4
- export declare function budgetDiagnostics(flow: CompiledFlowSpec): PreflightRefusal[];
2
+ import type { PreflightWarning } from './preflight.js';
3
+ export interface BudgetStepResolution {
4
+ readonly cli?: string;
5
+ readonly model?: string;
6
+ }
7
+ /**
8
+ * Dollar budgets are light enforcement: pricing never refuses a run. A step
9
+ * whose model has no frozen price journals zero dollars (see `workerSpend`),
10
+ * so it cannot trip `maxDollars`, while its reported tokens still count toward
11
+ * any token budget; priced steps still accrue and a crossed limit still stops
12
+ * the run in the kernel. This warning names each dollar-unmetered step so the
13
+ * gap is reported, not silent.
14
+ *
15
+ * Codex selects its own model when none is declared, so a Codex step is
16
+ * expected to be unmetered and says so rather than asking for a fake price.
17
+ */
18
+ export declare function budgetDiagnostics(flow: CompiledFlowSpec, resolved?: ReadonlyMap<string, BudgetStepResolution>): PreflightWarning[];
5
19
  //# sourceMappingURL=budget-preflight.d.ts.map