condukt 0.11.0 → 0.13.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.
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.redactConsoleOutput = redactConsoleOutput;
4
4
  exports.createConsoleOutputRenderer = createConsoleOutputRenderer;
5
5
  const REDACTED = '[REDACTED]';
6
+ const DEFAULT_TOOL_PREVIEW_MAX_CHARS = 200;
6
7
  const PRIVATE_KEY_BEGIN = /-----BEGIN (?:[A-Z0-9]+ )*PRIVATE KEY-----/u;
7
8
  const PRIVATE_KEY_END = /-----END (?:[A-Z0-9]+ )*PRIVATE KEY-----/u;
8
9
  const PRIVATE_KEY_BLOCK = /-----BEGIN (?:[A-Z0-9]+ )*PRIVATE KEY-----[\s\S]*?(?:-----END (?:[A-Z0-9]+ )*PRIVATE KEY-----|$)/gu;
@@ -53,17 +54,46 @@ function safeEmissionBoundary(value, knownSecrets, detectCredentialPrefixes) {
53
54
  }
54
55
  return safeBoundary;
55
56
  }
57
+ function safeStringify(value) {
58
+ if (!value)
59
+ return '';
60
+ try {
61
+ return JSON.stringify(value) ?? '';
62
+ }
63
+ catch {
64
+ return '';
65
+ }
66
+ }
67
+ function compact(value) {
68
+ return value.replace(/\s+/gu, ' ').trim();
69
+ }
70
+ function streamKey(...parts) {
71
+ return JSON.stringify(parts);
72
+ }
73
+ function label(value) {
74
+ return value.replace(/[\r\n]+/gu, ' ');
75
+ }
76
+ function previewLimit(value) {
77
+ if (value === undefined || !Number.isFinite(value))
78
+ return DEFAULT_TOOL_PREVIEW_MAX_CHARS;
79
+ return Math.max(1, Math.trunc(value));
80
+ }
56
81
  /**
57
- * Creates a plain-text OutputEvent renderer that writes attributed lines to stdout.
58
- * Call flushNode at a node lifecycle boundary, or flush after the run, to write any
59
- * final unterminated line.
82
+ * Creates a plain-text OutputEvent renderer for readable request/response logs.
83
+ * Model prose is line-buffered and complete, tool calls are compact, raw tool
84
+ * results are hidden by default, and all text is redacted before truncation.
60
85
  */
61
86
  function createConsoleOutputRenderer(options = {}) {
62
87
  const buffers = new Map();
88
+ const subagents = new Map();
89
+ const activeTurns = new Map();
63
90
  const useBuiltInRedactor = options.redactor === undefined;
64
91
  const redact = options.redactor ?? redactConsoleOutput;
65
92
  const knownSecrets = options.knownSecrets ?? [];
66
- function safeWrite(value) {
93
+ const toolOutputMode = options.toolOutputMode ?? 'hidden';
94
+ const maxToolPreviewChars = previewLimit(options.toolPreviewMaxChars);
95
+ // Keep all writes on one guarded path so rendering failures stay isolated.
96
+ function writeStdout(value) {
67
97
  try {
68
98
  process.stdout.write(value);
69
99
  }
@@ -71,19 +101,33 @@ function createConsoleOutputRenderer(options = {}) {
71
101
  // Output rendering must never interrupt an execution.
72
102
  }
73
103
  }
74
- function writeLine(nodeId, content) {
104
+ function redactText(value) {
75
105
  try {
76
- const safeNodeId = nodeId.replace(/[\r\n]/g, ' ');
77
- const attributed = `[${safeNodeId}] ${content}`;
78
- // Redact every byte destined for stdout before any subsequent slicing.
79
- const redacted = redactKnownSecrets(redact(attributed), knownSecrets);
80
- const normalized = redacted.endsWith('\r') ? redacted.slice(0, -1) : redacted;
81
- safeWrite(`${normalized}\n`);
106
+ return redactKnownSecrets(redact(value), knownSecrets);
82
107
  }
83
108
  catch {
84
- // Output rendering must never interrupt an execution.
109
+ return undefined;
85
110
  }
86
111
  }
112
+ function writeLine(prefix, content) {
113
+ const redacted = redactText(`${prefix}${content}`);
114
+ if (redacted === undefined)
115
+ return;
116
+ const normalized = redacted.endsWith('\r') ? redacted.slice(0, -1) : redacted;
117
+ writeStdout(`${normalized}\n`);
118
+ }
119
+ function writeCompactLine(prefix, content) {
120
+ const redacted = redactText(`${prefix}${content}`);
121
+ if (redacted === undefined)
122
+ return;
123
+ const indentation = prefix.match(/^\s+/u)?.[0] ?? '';
124
+ const compacted = compact(redacted);
125
+ const maximum = compact(prefix).length + maxToolPreviewChars;
126
+ const preview = compacted.length > maximum
127
+ ? `${compacted.slice(0, Math.max(0, maximum - 1))}…`
128
+ : compacted;
129
+ writeStdout(`${indentation}${preview}\n`);
130
+ }
87
131
  function getNodeBuffers(executionId) {
88
132
  let nodeBuffers = buffers.get(executionId);
89
133
  if (!nodeBuffers) {
@@ -92,16 +136,33 @@ function createConsoleOutputRenderer(options = {}) {
92
136
  }
93
137
  return nodeBuffers;
94
138
  }
95
- function flushPendingLine(executionId, nodeId) {
139
+ function nestedLabel(executionId, nodeId, parentToolCallId) {
140
+ if (!parentToolCallId)
141
+ return undefined;
142
+ return subagents.get(executionId)?.get(streamKey(nodeId, parentToolCallId))
143
+ ?? `subagent:${label(parentToolCallId)}`;
144
+ }
145
+ function linePrefix(executionId, nodeId, parentToolCallId) {
146
+ const agentName = nestedLabel(executionId, nodeId, parentToolCallId);
147
+ if (agentName)
148
+ return `[${label(nodeId)}/${label(agentName)}] `;
149
+ if (activeTurns.get(executionId)?.has(nodeId))
150
+ return ' ';
151
+ return `[${label(nodeId)}] `;
152
+ }
153
+ function outputStreamKey(nodeId, parentToolCallId) {
154
+ return streamKey('output', nodeId, parentToolCallId ?? '');
155
+ }
156
+ function flushPendingLine(executionId, streamKey) {
96
157
  const nodeBuffers = buffers.get(executionId);
97
- const pending = nodeBuffers?.get(nodeId);
158
+ const pending = nodeBuffers?.get(streamKey);
98
159
  if (!nodeBuffers || !pending)
99
160
  return;
100
- nodeBuffers.delete(nodeId);
161
+ nodeBuffers.delete(streamKey);
101
162
  if (nodeBuffers.size === 0)
102
163
  buffers.delete(executionId);
103
164
  if (pending.privateKey) {
104
- writeLine(nodeId, REDACTED);
165
+ writeLine(pending.prefix, REDACTED);
105
166
  return;
106
167
  }
107
168
  let content = redactKnownSecrets(pending.content, knownSecrets);
@@ -109,16 +170,16 @@ function createConsoleOutputRenderer(options = {}) {
109
170
  content = redactConsoleOutput(content);
110
171
  let newlineIndex = content.indexOf('\n');
111
172
  while (newlineIndex >= 0) {
112
- writeLine(nodeId, content.slice(0, newlineIndex));
173
+ writeLine(pending.prefix, content.slice(0, newlineIndex));
113
174
  content = content.slice(newlineIndex + 1);
114
175
  newlineIndex = content.indexOf('\n');
115
176
  }
116
177
  if (content.length > 0)
117
- writeLine(nodeId, content);
178
+ writeLine(pending.prefix, content);
118
179
  }
119
- function render(event) {
180
+ function renderStream(event, streamKey, prefix) {
120
181
  const nodeBuffers = getNodeBuffers(event.executionId);
121
- const pending = nodeBuffers.get(event.nodeId);
182
+ const pending = nodeBuffers.get(streamKey);
122
183
  let content = (pending?.content ?? '') + event.content;
123
184
  let privateKey = pending?.privateKey === true;
124
185
  const boundary = safeEmissionBoundary(content, knownSecrets, useBuiltInRedactor);
@@ -126,11 +187,11 @@ function createConsoleOutputRenderer(options = {}) {
126
187
  content = content.slice(boundary);
127
188
  let newlineIndex = emitted.indexOf('\n');
128
189
  while (newlineIndex >= 0) {
129
- let line = emitted.slice(0, newlineIndex);
190
+ const line = emitted.slice(0, newlineIndex);
130
191
  emitted = emitted.slice(newlineIndex + 1);
131
192
  if (useBuiltInRedactor && privateKey) {
132
193
  if (PRIVATE_KEY_END.test(line)) {
133
- writeLine(event.nodeId, REDACTED);
194
+ writeLine(prefix, REDACTED);
134
195
  privateKey = false;
135
196
  }
136
197
  }
@@ -140,25 +201,104 @@ function createConsoleOutputRenderer(options = {}) {
140
201
  privateKey = true;
141
202
  }
142
203
  else {
143
- writeLine(event.nodeId, line);
204
+ writeLine(prefix, line);
144
205
  }
145
206
  newlineIndex = emitted.indexOf('\n');
146
207
  }
147
208
  const currentNodeBuffers = getNodeBuffers(event.executionId);
148
209
  if (content.length > 0 || privateKey) {
149
- currentNodeBuffers.set(event.nodeId, { content, privateKey });
210
+ currentNodeBuffers.set(streamKey, {
211
+ nodeId: event.nodeId,
212
+ content,
213
+ prefix,
214
+ privateKey,
215
+ });
150
216
  }
151
217
  else {
152
- currentNodeBuffers.delete(event.nodeId);
218
+ currentNodeBuffers.delete(streamKey);
153
219
  if (currentNodeBuffers.size === 0)
154
220
  buffers.delete(event.executionId);
155
221
  }
156
222
  }
223
+ function flushOutputStream(executionId, nodeId, parentToolCallId) {
224
+ flushPendingLine(executionId, outputStreamKey(nodeId, parentToolCallId));
225
+ }
226
+ function renderPrompt(event) {
227
+ flushNode(event.executionId, event.nodeId);
228
+ writeLine('', `\n── ${label(event.nodeId)} · ${label(event.role)} · ${label(event.model)} ──`);
229
+ if (options.renderPrompts !== false) {
230
+ writeLine('', ' REQUEST');
231
+ const requestKey = streamKey('prompt', event.nodeId, String(event.ts));
232
+ renderStream(event, requestKey, ' ');
233
+ flushPendingLine(event.executionId, requestKey);
234
+ }
235
+ writeLine('', ' RESPONSE');
236
+ let nodes = activeTurns.get(event.executionId);
237
+ if (!nodes) {
238
+ nodes = new Set();
239
+ activeTurns.set(event.executionId, nodes);
240
+ }
241
+ nodes.add(event.nodeId);
242
+ }
243
+ function renderTool(event) {
244
+ if (event.phase === 'complete')
245
+ return;
246
+ flushOutputStream(event.executionId, event.nodeId, event.parentToolCallId);
247
+ const source = event.summary.trim().length > 0 ? event.summary : safeStringify(event.args);
248
+ const prefix = `${linePrefix(event.executionId, event.nodeId, event.parentToolCallId)}→ ${label(event.tool)}${source.trim().length > 0 ? ' ' : ''}`;
249
+ writeCompactLine(prefix, source);
250
+ }
251
+ function renderToolOutput(event) {
252
+ if (!event.tool || toolOutputMode === 'hidden')
253
+ return;
254
+ flushOutputStream(event.executionId, event.nodeId, event.parentToolCallId);
255
+ const prefix = `${linePrefix(event.executionId, event.nodeId, event.parentToolCallId)}← ${label(event.tool)}${event.content.length > 0 ? ' ' : ''}`;
256
+ if (toolOutputMode === 'preview') {
257
+ writeCompactLine(prefix, event.content);
258
+ return;
259
+ }
260
+ const key = streamKey('tool-output', event.nodeId, event.parentToolCallId ?? '', event.tool);
261
+ renderStream(event, key, prefix);
262
+ }
263
+ function rememberSubagent(event) {
264
+ if (!event.toolCallId)
265
+ return;
266
+ let executionSubagents = subagents.get(event.executionId);
267
+ if (!executionSubagents) {
268
+ executionSubagents = new Map();
269
+ subagents.set(event.executionId, executionSubagents);
270
+ }
271
+ executionSubagents.set(streamKey(event.nodeId, event.toolCallId), event.agentName);
272
+ }
157
273
  const emitOutput = (event) => {
158
274
  try {
159
- if (event.type === 'node:output'
160
- || (event.type === 'node:reasoning' && options.renderReasoning === true)) {
161
- render(event);
275
+ switch (event.type) {
276
+ case 'node:prompt':
277
+ renderPrompt(event);
278
+ break;
279
+ case 'node:subagent':
280
+ rememberSubagent(event);
281
+ break;
282
+ case 'node:tool':
283
+ renderTool(event);
284
+ break;
285
+ case 'node:output':
286
+ if (event.tool) {
287
+ renderToolOutput(event);
288
+ }
289
+ else {
290
+ const streamKey = outputStreamKey(event.nodeId, event.parentToolCallId);
291
+ renderStream(event, streamKey, linePrefix(event.executionId, event.nodeId, event.parentToolCallId));
292
+ }
293
+ break;
294
+ case 'node:reasoning':
295
+ if (options.renderReasoning === true) {
296
+ const streamKey = outputStreamKey(event.nodeId);
297
+ renderStream(event, streamKey, linePrefix(event.executionId, event.nodeId));
298
+ }
299
+ break;
300
+ default:
301
+ break;
162
302
  }
163
303
  }
164
304
  catch {
@@ -167,7 +307,13 @@ function createConsoleOutputRenderer(options = {}) {
167
307
  };
168
308
  const flushNode = (executionId, nodeId) => {
169
309
  try {
170
- flushPendingLine(executionId, nodeId);
310
+ const nodeBuffers = buffers.get(executionId);
311
+ if (!nodeBuffers)
312
+ return;
313
+ for (const [streamKey, pending] of [...nodeBuffers.entries()]) {
314
+ if (pending.nodeId === nodeId)
315
+ flushPendingLine(executionId, streamKey);
316
+ }
171
317
  }
172
318
  catch {
173
319
  // Output rendering must never interrupt an execution.
@@ -176,26 +322,36 @@ function createConsoleOutputRenderer(options = {}) {
176
322
  const flushExecution = (executionId) => {
177
323
  try {
178
324
  const nodeBuffers = buffers.get(executionId);
179
- if (!nodeBuffers)
180
- return;
181
- for (const nodeId of [...nodeBuffers.keys()]) {
182
- flushPendingLine(executionId, nodeId);
325
+ if (nodeBuffers) {
326
+ for (const streamKey of [...nodeBuffers.keys()]) {
327
+ flushPendingLine(executionId, streamKey);
328
+ }
183
329
  }
184
330
  }
185
331
  catch {
186
332
  // Output rendering must never interrupt an execution.
187
333
  buffers.delete(executionId);
188
334
  }
335
+ finally {
336
+ subagents.delete(executionId);
337
+ activeTurns.delete(executionId);
338
+ }
189
339
  };
190
340
  const flush = () => {
191
341
  try {
192
- for (const executionId of [...buffers.keys()]) {
342
+ const executionIds = new Set([
343
+ ...buffers.keys(),
344
+ ...subagents.keys(),
345
+ ...activeTurns.keys(),
346
+ ]);
347
+ for (const executionId of executionIds)
193
348
  flushExecution(executionId);
194
- }
195
349
  }
196
350
  catch {
197
351
  // Output rendering must never interrupt an execution.
198
352
  buffers.clear();
353
+ subagents.clear();
354
+ activeTurns.clear();
199
355
  }
200
356
  };
201
357
  return { emitOutput, flushNode, flushExecution, flush };
@@ -1 +1 @@
1
- {"version":3,"file":"console-output.js","sourceRoot":"","sources":["../../src/console-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console-output.js","sourceRoot":"","sources":["../../src/console-output.ts"],"names":[],"mappings":"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"}
@@ -105,6 +105,15 @@ export interface EdgeTraversedEvent {
105
105
  readonly source: string;
106
106
  readonly target: string;
107
107
  readonly action: string;
108
+ /** Present when a loop region takes its graceful exhaustion path. */
109
+ readonly exhaustion?: {
110
+ readonly reason: 'count';
111
+ } | {
112
+ readonly reason: 'time';
113
+ readonly budgetMs: number;
114
+ readonly elapsedMs: number;
115
+ readonly estimatedNextRoundMs: number;
116
+ };
108
117
  readonly ts: number;
109
118
  }
110
119
  export interface ArtifactWrittenEvent {
@@ -148,6 +157,17 @@ export interface NodeResetEvent {
148
157
  }
149
158
  /** Discriminated union of all execution events (persisted to JSONL). */
150
159
  export type ExecutionEvent = RunStartedEvent | RunCompletedEvent | RunResumedEvent | NodeStartedEvent | NodeCompletedEvent | NodeFailedEvent | NodeKilledEvent | NodeSkippedEvent | NodeGatedEvent | GateResolvedEvent | NodeRetryingEvent | EdgeTraversedEvent | ArtifactWrittenEvent | CostRecordedEvent | MetadataEvent | NodeResetEvent;
160
+ export interface NodePromptEvent {
161
+ readonly type: 'node:prompt';
162
+ readonly executionId: string;
163
+ readonly nodeId: string;
164
+ /** Human-readable role for the model turn. */
165
+ readonly role: string;
166
+ readonly model: string;
167
+ /** Complete request sent to the model. */
168
+ readonly content: string;
169
+ readonly ts: number;
170
+ }
151
171
  export interface NodeOutputEvent {
152
172
  readonly type: 'node:output';
153
173
  readonly executionId: string;
@@ -222,5 +242,5 @@ export interface NodePermissionEvent {
222
242
  readonly ts: number;
223
243
  }
224
244
  /** Discriminated union of output events (streamed, not persisted). */
225
- export type OutputEvent = NodeOutputEvent | NodeToolEvent | NodeReasoningEvent | NodeIntentEvent | NodeUsageEvent | NodeSubagentEvent | NodePermissionEvent;
245
+ export type OutputEvent = NodePromptEvent | NodeOutputEvent | NodeToolEvent | NodeReasoningEvent | NodeIntentEvent | NodeUsageEvent | NodeSubagentEvent | NodePermissionEvent;
226
246
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAMjE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAC7C,QAAQ,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;KAC9C,CAAC;IACF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAChB;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAC5B;QACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;KACvC,CAAC;IACN,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS;QAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,EAAE,CAAC;IACJ,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,wEAAwE;AACxE,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,aAAa,GACb,cAAc,CAAC;AAMnB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,mFAAmF;IACnF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IAChC,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,sEAAsE;AACtE,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,eAAe,GACf,aAAa,GACb,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,mBAAmB,CAAC"}
@@ -21,8 +21,8 @@ export { setupOnce, clearSetupCache } from './setup-once';
21
21
  export { dryRun } from './dry-run';
22
22
  export type { DryRunOptions, DryRunResult } from './dry-run';
23
23
  export { createConsoleOutputRenderer, redactConsoleOutput } from './console-output';
24
- export type { ConsoleOutputOptions, ConsoleOutputRenderer, OutputEventSink, OutputRedactor, } from './console-output';
24
+ export type { ConsoleOutputOptions, ConsoleOutputRenderer, OutputEventSink, OutputRedactor, ToolOutputMode, } from './console-output';
25
25
  export type { NodeFn, NodeInput, NodeOutput, RetryContext, ExecutionContext, FlowGraph, NodeEntry, EdgeTarget, LoopFallbackEntry, LoopRegion, RunOptions, RunResult, ResumeState, Logger, AgentRuntime, AgentSession, SessionConfig, SessionCreationOptions, ThinkingBudget, ToolRef, AgentConfig, PromptOutput, RetryPolicy, RetryMeta, MCPServerConfig, CustomAgentConfig, DefaultAgentConfig, SubagentRosterOption, ExecutionProjection, ProjectionNode, ProjectionEdge, StorageEngine, OutputPage, ExecutionId, } from './types';
26
26
  export { DEFAULT_RETRY_POLICY, getParams, FlowAbortedError, FlowValidationError, NO_OP_LOGGER, } from './types';
27
- export type { ExecutionEvent, OutputEvent, RunStartedEvent, RunCompletedEvent, RunResumedEvent, NodeStartedEvent, NodeCompletedEvent, NodeFailedEvent, NodeKilledEvent, NodeSkippedEvent, NodeGatedEvent, GateResolvedEvent, NodeRetryingEvent, EdgeTraversedEvent, ArtifactWrittenEvent, CostRecordedEvent, MetadataEvent, NodeResetEvent, NodeOutputEvent, NodeToolEvent, NodeReasoningEvent, GraphNodeSkeleton, GraphEdgeSkeleton, } from './events';
27
+ export type { ExecutionEvent, OutputEvent, RunStartedEvent, RunCompletedEvent, RunResumedEvent, NodeStartedEvent, NodeCompletedEvent, NodeFailedEvent, NodeKilledEvent, NodeSkippedEvent, NodeGatedEvent, GateResolvedEvent, NodeRetryingEvent, EdgeTraversedEvent, ArtifactWrittenEvent, CostRecordedEvent, MetadataEvent, NodeResetEvent, NodePromptEvent, NodeOutputEvent, NodeToolEvent, NodeReasoningEvent, GraphNodeSkeleton, GraphEdgeSkeleton, } from './events';
28
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9F;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAC7D,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAC/D,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAC1C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EACrH,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EACpG,mBAAmB,EAAE,cAAc,EAAE,cAAc,EACnD,aAAa,EAAE,UAAU,EACzB,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,cAAc,EAAE,WAAW,EAC3B,eAAe,EAAE,iBAAiB,EAAE,eAAe,EACnD,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EACrD,eAAe,EAAE,gBAAgB,EAAE,cAAc,EACjD,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EACxD,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EACtD,cAAc,EACd,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAClD,iBAAiB,EAAE,iBAAiB,GACrC,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9F;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EACV,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAC7D,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAC/D,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAC1C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EACrH,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EACpG,mBAAmB,EAAE,cAAc,EAAE,cAAc,EACnD,aAAa,EAAE,UAAU,EACzB,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,cAAc,EAAE,WAAW,EAC3B,eAAe,EAAE,iBAAiB,EAAE,eAAe,EACnD,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EACrD,eAAe,EAAE,gBAAgB,EAAE,cAAc,EACjD,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EACxD,oBAAoB,EAAE,iBAAiB,EAAE,aAAa,EACtD,cAAc,EACd,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EACnE,iBAAiB,EAAE,iBAAiB,GACrC,MAAM,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,yCAAoF;AAA3E,gGAAA,GAAG,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAC9D,iCAA8F;AAArF,8FAAA,KAAK,OAAA;AAAE,gHAAA,uBAAuB,OAAA;AAAE,8GAAA,qBAAqB,OAAA;AAAE,qGAAA,YAAY,OAAA;AAC5E;;GAEG;AACH,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,2CAA2C;AAAlC,yGAAA,WAAW,OAAA;AASpB;;GAEG;AACH,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAKlB,iCAAuF;AAA9E,sGAAA,aAAa,OAAA;AAAE,6FAAA,IAAI,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,mHAAA,0BAA0B,OAAA;AACrE,mCAA4C;AAAnC,gGAAA,MAAM,OAAA;AAAE,kGAAA,QAAQ,OAAA;AACzB,iDAAqD;AAA5C,mHAAA,kBAAkB,OAAA;AAC3B,2CAA0D;AAAjD,uGAAA,SAAS,OAAA;AAAE,6GAAA,eAAe,OAAA;AACnC,qCAAmC;AAA1B,iGAAA,MAAM,OAAA;AAEf,mDAAoF;AAA3E,6HAAA,2BAA2B,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAoBzD,iCAMiB;AALf,6GAAA,oBAAoB,OAAA;AACpB,kGAAA,SAAS,OAAA;AACT,yGAAA,gBAAgB,OAAA;AAChB,4GAAA,mBAAmB,OAAA;AACnB,qGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,yCAAoF;AAA3E,gGAAA,GAAG,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAC9D,iCAA8F;AAArF,8FAAA,KAAK,OAAA;AAAE,gHAAA,uBAAuB,OAAA;AAAE,8GAAA,qBAAqB,OAAA;AAAE,qGAAA,YAAY,OAAA;AAC5E;;GAEG;AACH,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,2CAA2C;AAAlC,yGAAA,WAAW,OAAA;AASpB;;GAEG;AACH,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAKlB,iCAAuF;AAA9E,sGAAA,aAAa,OAAA;AAAE,6FAAA,IAAI,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,mHAAA,0BAA0B,OAAA;AACrE,mCAA4C;AAAnC,gGAAA,MAAM,OAAA;AAAE,kGAAA,QAAQ,OAAA;AACzB,iDAAqD;AAA5C,mHAAA,kBAAkB,OAAA;AAC3B,2CAA0D;AAAjD,uGAAA,SAAS,OAAA;AAAE,6GAAA,eAAe,OAAA;AACnC,qCAAmC;AAA1B,iGAAA,MAAM,OAAA;AAEf,mDAAoF;AAA3E,6HAAA,2BAA2B,OAAA;AAAE,qHAAA,mBAAmB,OAAA;AAqBzD,iCAMiB;AALf,6GAAA,oBAAoB,OAAA;AACpB,kGAAA,SAAS,OAAA;AACT,yGAAA,gBAAgB,OAAA;AAChB,4GAAA,mBAAmB,OAAA;AACnB,qGAAA,YAAY,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,SAAS,EAKT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAEV,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,UAAU,CAAC;AAMlB,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAG7D;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CA+OpD;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,WAAW,GACjB,MAAM,EAAE,CA8BV;AA+JD;;;GAGG;AACH,iBAAe,eAAe,CAC5B,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACpC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED,eAAO,MAAM,0BAA0B,wBAAkB,CAAC;AA0G1D,wBAAsB,GAAG,CACvB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CA4nBpB"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,SAAS,EAKT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAEV,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,UAAU,CAAC;AAMlB,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAG7D;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAqPpD;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,WAAW,GACjB,MAAM,EAAE,CA8BV;AA+JD;;;GAGG;AACH,iBAAe,eAAe,CAC5B,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9D,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACpC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED,eAAO,MAAM,0BAA0B,wBAAkB,CAAC;AA0G1D,wBAAsB,GAAG,CACvB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CA4rBpB"}
@@ -100,6 +100,10 @@ function validateGraph(graph) {
100
100
  if (region.maxRounds !== undefined && region.maxRounds < 1) {
101
101
  issues.push(`Loop region '${region.id}' maxRounds must be at least 1`);
102
102
  }
103
+ if (region.budgetMs !== undefined
104
+ && (!Number.isFinite(region.budgetMs) || region.budgetMs < 0)) {
105
+ issues.push(`Loop region '${region.id}' budgetMs must be a non-negative finite number`);
106
+ }
103
107
  const regionNodes = new Set();
104
108
  for (const nodeId of region.nodes) {
105
109
  if (regionNodes.has(nodeId)) {
@@ -574,8 +578,14 @@ async function run(graph, options) {
574
578
  const loopIterations = new Map(); // legacy source:action or region:id → iteration count
575
579
  const loopRetryContexts = new Map(); // nodeId → RetryContext for loop re-dispatch
576
580
  const loopRegionsByDecision = new Map();
581
+ const loopRegionsByNode = new Map();
582
+ const loopRegionTimings = new Map();
577
583
  for (const region of graph.loops ?? []) {
578
584
  loopRegionsByDecision.set(region.decision, region);
585
+ if (region.budgetMs !== undefined) {
586
+ for (const nodeId of region.nodes)
587
+ loopRegionsByNode.set(nodeId, region);
588
+ }
579
589
  }
580
590
  let pending;
581
591
  if (resumeFrom) {
@@ -624,6 +634,20 @@ async function run(graph, options) {
624
634
  });
625
635
  throw new types_1.FlowAbortedError('Flow aborted');
626
636
  }
637
+ // Start a budgeted region's clock at its first entry, before dispatch.
638
+ if (loopRegionsByNode.size > 0) {
639
+ const batchStartedAt = Date.now();
640
+ for (const nodeId of pending) {
641
+ const region = loopRegionsByNode.get(nodeId);
642
+ if (region && !loopRegionTimings.has(region.id)) {
643
+ loopRegionTimings.set(region.id, {
644
+ startedAt: batchStartedAt,
645
+ roundStartedAt: batchStartedAt,
646
+ maxRoundElapsedMs: 0,
647
+ });
648
+ }
649
+ }
650
+ }
627
651
  // Emit node:started for all pending nodes first
628
652
  for (const nodeId of pending) {
629
653
  await emitState({
@@ -679,6 +703,8 @@ async function run(graph, options) {
679
703
  const execCtx = {
680
704
  executionId,
681
705
  nodeId,
706
+ nodeDisplayName: entry.displayName,
707
+ nodeModel: entry.model,
682
708
  runtime,
683
709
  emitOutput,
684
710
  emitState,
@@ -849,31 +875,60 @@ async function run(graph, options) {
849
875
  const effectiveMaxLoopBacks = region.maxRounds !== undefined
850
876
  ? region.maxRounds - 1
851
877
  : region.maxIterations;
852
- if (currentIteration > effectiveMaxLoopBacks) {
878
+ const countExhausted = currentIteration > effectiveMaxLoopBacks;
879
+ const timing = loopRegionTimings.get(region.id);
880
+ let timeExhaustion;
881
+ if (!countExhausted && timing && region.budgetMs !== undefined) {
882
+ const now = Date.now();
883
+ const roundElapsedMs = now - timing.roundStartedAt;
884
+ // The slowest completed round is deliberately conservative: a fast round
885
+ // cannot pull the estimate down and tempt us into work that may be killed.
886
+ timing.maxRoundElapsedMs = Math.max(timing.maxRoundElapsedMs, roundElapsedMs);
887
+ const elapsedMs = now - timing.startedAt;
888
+ if (elapsedMs + timing.maxRoundElapsedMs >= region.budgetMs) {
889
+ timeExhaustion = {
890
+ reason: 'time',
891
+ budgetMs: region.budgetMs,
892
+ elapsedMs,
893
+ estimatedNextRoundMs: timing.maxRoundElapsedMs,
894
+ };
895
+ }
896
+ }
897
+ if (countExhausted || timeExhaustion) {
898
+ const exhaustion = timeExhaustion ?? { reason: 'count' };
853
899
  const exhaustionTarget = region.onExhausted ?? edgeMap[region.exitOn];
854
900
  const exhaustionAction = region.onExhausted === undefined
855
901
  ? region.exitOn
856
902
  : action;
903
+ if (region.budgetMs !== undefined) {
904
+ logger.info(`Loop region '${region.id}' exhausted by ${exhaustion.reason} budget`, exhaustion);
905
+ }
857
906
  for (const target of normalizeTargets(exhaustionTarget)) {
858
- if (target === 'end')
907
+ if (target !== 'end') {
908
+ let sources = firedEdges.get(target);
909
+ if (!sources) {
910
+ sources = new Set();
911
+ firedEdges.set(target, sources);
912
+ }
913
+ sources.add(nodeId);
914
+ }
915
+ else if (region.budgetMs === undefined) {
859
916
  continue;
860
- let sources = firedEdges.get(target);
861
- if (!sources) {
862
- sources = new Set();
863
- firedEdges.set(target, sources);
864
917
  }
865
- sources.add(nodeId);
866
918
  await emitState({
867
919
  type: 'edge:traversed',
868
920
  executionId,
869
921
  source: nodeId,
870
922
  target,
871
923
  action: exhaustionAction,
924
+ ...(region.budgetMs === undefined ? {} : { exhaustion }),
872
925
  ts: Date.now(),
873
926
  });
874
927
  }
875
928
  }
876
929
  else {
930
+ if (timing)
931
+ timing.roundStartedAt = Date.now();
877
932
  const entryNode = graph.nodes[region.entry];
878
933
  let priorOutput = null;
879
934
  if (entryNode.output) {