@n8n/api-types 1.27.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/agents/agent-files.constants.d.ts +2 -0
  2. package/dist/agents/agent-files.constants.js +3 -1
  3. package/dist/agents/agent-files.constants.js.map +1 -1
  4. package/dist/agents/agent-json-config.schema.js +1 -1
  5. package/dist/agents/agent-json-config.schema.js.map +1 -1
  6. package/dist/agents/index.d.ts +1 -0
  7. package/dist/agents/index.js +1 -0
  8. package/dist/agents/index.js.map +1 -1
  9. package/dist/agents/rich-card.schema.d.ts +1168 -0
  10. package/dist/agents/rich-card.schema.js +116 -0
  11. package/dist/agents/rich-card.schema.js.map +1 -0
  12. package/dist/agents/types.d.ts +4 -0
  13. package/dist/agents/types.js +4 -1
  14. package/dist/agents/types.js.map +1 -1
  15. package/dist/api-keys.d.ts +4 -0
  16. package/dist/build.tsbuildinfo +1 -1
  17. package/dist/dto/ai/ai-build-request.dto.d.ts +21 -0
  18. package/dist/dto/ai/ai-gateway-config-response.dto.d.ts +8 -0
  19. package/dist/dto/ai/ai-gateway-config-response.dto.js +2 -0
  20. package/dist/dto/ai/ai-gateway-config-response.dto.js.map +1 -1
  21. package/dist/dto/api-keys/list-api-keys-query.dto.d.ts +2 -0
  22. package/dist/dto/api-keys/list-api-keys-query.dto.js +11 -0
  23. package/dist/dto/api-keys/list-api-keys-query.dto.js.map +1 -1
  24. package/dist/dto/evaluations/dataset-row.dto.d.ts +58 -0
  25. package/dist/dto/evaluations/dataset-row.dto.js +16 -0
  26. package/dist/dto/evaluations/dataset-row.dto.js.map +1 -0
  27. package/dist/dto/evaluations/index.d.ts +1 -0
  28. package/dist/dto/evaluations/index.js +1 -0
  29. package/dist/dto/evaluations/index.js.map +1 -1
  30. package/dist/dto/instance-ai/instance-ai-confirm-request.dto.d.ts +3 -0
  31. package/dist/dto/instance-ai/instance-ai-confirm-request.dto.js +1 -0
  32. package/dist/dto/instance-ai/instance-ai-confirm-request.dto.js.map +1 -1
  33. package/dist/dto/instance-ai/instance-ai-mcp-update-connection-request.dto.d.ts +2 -0
  34. package/dist/dto/instance-ai/instance-ai-mcp-update-connection-request.dto.js +1 -0
  35. package/dist/dto/instance-ai/instance-ai-mcp-update-connection-request.dto.js.map +1 -1
  36. package/dist/dto/packages/import-package-request.dto.d.ts +2 -2
  37. package/dist/dto/packages/import-package-request.dto.js +1 -1
  38. package/dist/dto/packages/import-package-request.dto.js.map +1 -1
  39. package/dist/dto/roles/create-role.dto.d.ts +2 -2
  40. package/dist/dto/roles/create-role.dto.js +1 -1
  41. package/dist/dto/roles/create-role.dto.js.map +1 -1
  42. package/dist/dto/source-control/push-work-folder-request.dto.d.ts +6 -6
  43. package/dist/dto/workflows/base-workflow.dto.d.ts +0 -10
  44. package/dist/dto/workflows/base-workflow.dto.js +0 -1
  45. package/dist/dto/workflows/base-workflow.dto.js.map +1 -1
  46. package/dist/dto/workflows/create-workflow.dto.d.ts +0 -14
  47. package/dist/dto/workflows/update-workflow.dto.d.ts +0 -14
  48. package/dist/frontend-settings.d.ts +7 -0
  49. package/dist/index.d.ts +6 -4
  50. package/dist/index.js +20 -3
  51. package/dist/index.js.map +1 -1
  52. package/dist/push/instance-ai.d.ts +4 -0
  53. package/dist/schemas/agent-run-reducer.d.ts +4 -25
  54. package/dist/schemas/agent-run-reducer.js +89 -139
  55. package/dist/schemas/agent-run-reducer.js.map +1 -1
  56. package/dist/schemas/encryption-key.schema.d.ts +2 -2
  57. package/dist/schemas/instance-ai.schema.d.ts +154 -5
  58. package/dist/schemas/instance-ai.schema.js +30 -4
  59. package/dist/schemas/instance-ai.schema.js.map +1 -1
  60. package/dist/schemas/llm-step-display.d.ts +65 -0
  61. package/dist/schemas/llm-step-display.js +625 -0
  62. package/dist/schemas/llm-step-display.js.map +1 -0
  63. package/dist/schemas/source-controlled-file.schema.d.ts +4 -4
  64. package/dist/schemas/user.schema.d.ts +2 -2
  65. package/package.json +7 -9
@@ -0,0 +1,625 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatDebugJson = formatDebugJson;
4
+ exports.summarizeJsonValue = summarizeJsonValue;
5
+ exports.parseSystemBlocks = parseSystemBlocks;
6
+ exports.extractObservationsBlock = extractObservationsBlock;
7
+ exports.parseSystemPromptForDisplay = parseSystemPromptForDisplay;
8
+ exports.parseMessageBlocks = parseMessageBlocks;
9
+ exports.parseToolCallBlocks = parseToolCallBlocks;
10
+ exports.parseToolResultBlocks = parseToolResultBlocks;
11
+ exports.parseUsageSummary = parseUsageSummary;
12
+ exports.parseInputExtras = parseInputExtras;
13
+ exports.parseOutputDisplayBlocks = parseOutputDisplayBlocks;
14
+ exports.parseOutputExtras = parseOutputExtras;
15
+ exports.parseStepSummary = parseStepSummary;
16
+ const OBSERVATIONS_BLOCK_PATTERN = /<observations>([\s\S]*?)<\/observations>/i;
17
+ function isRecord(value) {
18
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
19
+ }
20
+ function formatDebugJson(value) {
21
+ try {
22
+ return JSON.stringify(value, null, 2);
23
+ }
24
+ catch {
25
+ return String(value);
26
+ }
27
+ }
28
+ function looksLikeJsonString(value) {
29
+ const trimmed = value.trim();
30
+ return ((trimmed.startsWith('{') && trimmed.endsWith('}')) ||
31
+ (trimmed.startsWith('[') && trimmed.endsWith(']')));
32
+ }
33
+ function unwrapJsonPayload(value) {
34
+ if (isRecord(value) && value.type === 'json' && 'value' in value) {
35
+ return value.value;
36
+ }
37
+ return value;
38
+ }
39
+ function summarizeJsonValue(value) {
40
+ const unwrapped = unwrapJsonPayload(value);
41
+ if (unwrapped === null)
42
+ return 'null';
43
+ if (unwrapped === undefined)
44
+ return 'undefined';
45
+ if (typeof unwrapped === 'string') {
46
+ const trimmed = unwrapped.trim();
47
+ if (looksLikeJsonString(trimmed)) {
48
+ try {
49
+ return summarizeJsonValue(JSON.parse(trimmed));
50
+ }
51
+ catch {
52
+ }
53
+ }
54
+ return trimmed.length > 96 ? `${trimmed.slice(0, 96)}…` : trimmed;
55
+ }
56
+ if (typeof unwrapped === 'number' || typeof unwrapped === 'boolean') {
57
+ return String(unwrapped);
58
+ }
59
+ if (Array.isArray(unwrapped)) {
60
+ return `[${unwrapped.length} items]`;
61
+ }
62
+ if (isRecord(unwrapped)) {
63
+ const keys = Object.keys(unwrapped);
64
+ if (keys.length === 0)
65
+ return '{}';
66
+ if (keys.length === 1) {
67
+ const key = keys[0] ?? 'key';
68
+ const entry = summarizeJsonValue(unwrapped[key]);
69
+ return `{ ${key}: ${entry} }`;
70
+ }
71
+ const preview = keys.slice(0, 2).join(', ');
72
+ return keys.length > 2 ? `{ ${preview}, +${keys.length - 2} }` : `{ ${preview} }`;
73
+ }
74
+ const formatted = formatDebugJson(unwrapped);
75
+ return formatted.length > 96 ? `${formatted.slice(0, 96)}…` : formatted;
76
+ }
77
+ function omitKeys(record, keys) {
78
+ const rest = {};
79
+ for (const [key, value] of Object.entries(record)) {
80
+ if (!keys.has(key)) {
81
+ rest[key] = value;
82
+ }
83
+ }
84
+ return Object.keys(rest).length > 0 ? rest : undefined;
85
+ }
86
+ function parsePartSegment(part) {
87
+ if (!isRecord(part)) {
88
+ return [{ type: 'json', payload: part }];
89
+ }
90
+ if (part.type === 'text' && typeof part.text === 'string') {
91
+ return [{ type: 'text', text: part.text }];
92
+ }
93
+ if (part.type === 'tool-call') {
94
+ const name = (typeof part.toolName === 'string' && part.toolName) ||
95
+ (typeof part.name === 'string' && part.name) ||
96
+ 'tool';
97
+ const input = part.input ?? part.args;
98
+ return [
99
+ {
100
+ type: 'tool-call',
101
+ name,
102
+ payload: input,
103
+ metadata: omitKeys(part, new Set(['type', 'toolName', 'name', 'input', 'args'])),
104
+ },
105
+ ];
106
+ }
107
+ if (part.type === 'tool-result') {
108
+ const name = (typeof part.toolName === 'string' && part.toolName) ||
109
+ (typeof part.name === 'string' && part.name) ||
110
+ undefined;
111
+ const output = part.output ?? part.result ?? part;
112
+ return [
113
+ {
114
+ type: 'tool-result',
115
+ name,
116
+ payload: output,
117
+ metadata: omitKeys(part, new Set(['type', 'toolName', 'name', 'output', 'result'])),
118
+ },
119
+ ];
120
+ }
121
+ if (part.type === 'reasoning' && typeof part.text === 'string') {
122
+ return [{ type: 'reasoning', text: part.text }];
123
+ }
124
+ if (part.type === 'file') {
125
+ const mediaType = typeof part.mediaType === 'string' ? part.mediaType : 'file';
126
+ return [{ type: 'json', payload: part, label: `file: ${mediaType}` }];
127
+ }
128
+ return [
129
+ {
130
+ type: 'json',
131
+ payload: part,
132
+ label: typeof part.type === 'string' ? String(part.type) : undefined,
133
+ },
134
+ ];
135
+ }
136
+ function parseContentSegments(content) {
137
+ if (typeof content === 'string') {
138
+ const trimmed = content.trim();
139
+ if (trimmed.length === 0)
140
+ return [];
141
+ if (looksLikeJsonString(trimmed)) {
142
+ try {
143
+ return [{ type: 'json', payload: JSON.parse(trimmed) }];
144
+ }
145
+ catch {
146
+ }
147
+ }
148
+ return [{ type: 'text', text: content }];
149
+ }
150
+ if (Array.isArray(content)) {
151
+ return content.flatMap((part) => parsePartSegment(part));
152
+ }
153
+ if (isRecord(content)) {
154
+ if (typeof content.type === 'string') {
155
+ return parsePartSegment(content);
156
+ }
157
+ return [{ type: 'json', payload: content }];
158
+ }
159
+ if (content === undefined || content === null) {
160
+ return [];
161
+ }
162
+ return [{ type: 'json', payload: content }];
163
+ }
164
+ function segmentsToPreview(segments) {
165
+ return segments
166
+ .map((segment) => {
167
+ switch (segment.type) {
168
+ case 'text':
169
+ return segment.text;
170
+ case 'tool-call':
171
+ return `[tool-call: ${segment.name}]`;
172
+ case 'tool-result':
173
+ return segment.name ? `[tool-result: ${segment.name}]` : '[tool-result]';
174
+ case 'reasoning':
175
+ return segment.text;
176
+ case 'json':
177
+ return summarizeJsonValue(segment.payload);
178
+ }
179
+ })
180
+ .filter((entry) => entry.length > 0)
181
+ .join('\n\n');
182
+ }
183
+ function inferRoleFromValue(value, fallback) {
184
+ if (typeof value.role === 'string') {
185
+ return value.role;
186
+ }
187
+ if (value.type === 'tool-result') {
188
+ return 'tool';
189
+ }
190
+ if (value.type === 'tool-call') {
191
+ return 'assistant';
192
+ }
193
+ return fallback;
194
+ }
195
+ function createTextBlock(role, text, segmentType = 'text') {
196
+ if (segmentType === 'reasoning') {
197
+ return {
198
+ role,
199
+ content: text,
200
+ segments: [{ type: 'reasoning', text }],
201
+ };
202
+ }
203
+ return {
204
+ role,
205
+ content: text,
206
+ segments: [{ type: 'text', text }],
207
+ };
208
+ }
209
+ function toolCallToBlock(toolCall) {
210
+ return {
211
+ role: 'assistant',
212
+ content: `[tool-call: ${toolCall.name}]`,
213
+ segments: [
214
+ {
215
+ type: 'tool-call',
216
+ name: toolCall.name,
217
+ payload: toolCall.payload,
218
+ metadata: toolCall.metadata,
219
+ },
220
+ ],
221
+ };
222
+ }
223
+ function toolResultToBlock(toolResult) {
224
+ return {
225
+ role: 'tool',
226
+ content: toolResult.name ? `[tool-result: ${toolResult.name}]` : '[tool-result]',
227
+ segments: [
228
+ {
229
+ type: 'tool-result',
230
+ name: toolResult.name,
231
+ payload: toolResult.payload,
232
+ metadata: toolResult.metadata,
233
+ },
234
+ ],
235
+ };
236
+ }
237
+ function parseContentBlock(role, value, contentKey = 'content') {
238
+ if (typeof value === 'string') {
239
+ const segments = parseContentSegments(value);
240
+ return {
241
+ role,
242
+ content: segmentsToPreview(segments) || value,
243
+ segments: segments.length > 0 ? segments : undefined,
244
+ };
245
+ }
246
+ if (!isRecord(value)) {
247
+ const segments = [{ type: 'json', payload: value }];
248
+ return {
249
+ role,
250
+ content: summarizeJsonValue(value),
251
+ segments,
252
+ };
253
+ }
254
+ const resolvedRole = inferRoleFromValue(value, role);
255
+ const rawContent = value[contentKey] ?? value.text ?? value;
256
+ const segments = parseContentSegments(rawContent);
257
+ const metadataKeys = new Set([contentKey, 'text', 'role']);
258
+ if (rawContent === value) {
259
+ for (const key of ['type', 'toolName', 'name', 'input', 'args', 'output', 'result']) {
260
+ metadataKeys.add(key);
261
+ }
262
+ }
263
+ const hasToolSegments = segments.some((segment) => segment.type === 'tool-call' || segment.type === 'tool-result');
264
+ if (hasToolSegments) {
265
+ for (const key of ['toolCallId', 'providerMetadata', 'providerOptions']) {
266
+ metadataKeys.add(key);
267
+ }
268
+ }
269
+ const metadata = omitKeys(value, metadataKeys);
270
+ return {
271
+ role: resolvedRole,
272
+ content: segmentsToPreview(segments) || summarizeJsonValue(rawContent),
273
+ segments: segments.length > 0 ? segments : undefined,
274
+ metadata,
275
+ };
276
+ }
277
+ function parseSystemBlocks(system) {
278
+ if (system === undefined || system === null) {
279
+ return [];
280
+ }
281
+ if (typeof system === 'string') {
282
+ return [{ role: 'system', content: system, segments: [{ type: 'text', text: system }] }];
283
+ }
284
+ if (Array.isArray(system)) {
285
+ return system.flatMap((entry, index) => {
286
+ const block = parseContentBlock('system', entry);
287
+ return [{ ...block, role: block.role === 'system' ? `system ${index + 1}` : block.role }];
288
+ });
289
+ }
290
+ return [parseContentBlock('system', system)];
291
+ }
292
+ function extractObservationsBlock(text) {
293
+ const match = text.match(OBSERVATIONS_BLOCK_PATTERN);
294
+ if (!match) {
295
+ return { withoutObservations: text, observations: null };
296
+ }
297
+ const observations = match[1]?.trim() ?? null;
298
+ const withoutObservations = text.replace(OBSERVATIONS_BLOCK_PATTERN, '').trim();
299
+ return {
300
+ withoutObservations,
301
+ observations: observations && observations.length > 0 ? observations : null,
302
+ };
303
+ }
304
+ function extractObservationsFromBlock(block) {
305
+ if (block.segments?.length) {
306
+ let observations = null;
307
+ const segments = block.segments.flatMap((segment) => {
308
+ if (segment.type !== 'text') {
309
+ return [segment];
310
+ }
311
+ const extracted = extractObservationsBlock(segment.text);
312
+ if (extracted.observations) {
313
+ observations = observations
314
+ ? `${observations}\n\n${extracted.observations}`
315
+ : extracted.observations;
316
+ }
317
+ if (extracted.withoutObservations.trim().length === 0) {
318
+ return [];
319
+ }
320
+ return [{ ...segment, text: extracted.withoutObservations }];
321
+ });
322
+ return {
323
+ block: {
324
+ ...block,
325
+ content: segmentsToPreview(segments),
326
+ segments: segments.length > 0 ? segments : undefined,
327
+ },
328
+ observations,
329
+ };
330
+ }
331
+ const extracted = extractObservationsBlock(block.content);
332
+ return {
333
+ block: {
334
+ ...block,
335
+ content: extracted.withoutObservations,
336
+ segments: extracted.withoutObservations
337
+ ? [{ type: 'text', text: extracted.withoutObservations }]
338
+ : undefined,
339
+ },
340
+ observations: extracted.observations,
341
+ };
342
+ }
343
+ function parseSystemPromptForDisplay(system) {
344
+ const blocks = parseSystemBlocks(system);
345
+ const observationsParts = [];
346
+ const systemBlocks = [];
347
+ for (const block of blocks) {
348
+ const extracted = extractObservationsFromBlock(block);
349
+ if (extracted.observations) {
350
+ observationsParts.push(extracted.observations);
351
+ }
352
+ if (extracted.block.content.trim().length > 0 || extracted.block.segments?.length) {
353
+ systemBlocks.push(extracted.block);
354
+ }
355
+ }
356
+ return {
357
+ systemBlocks,
358
+ observations: observationsParts.length > 0 ? observationsParts.join('\n\n') : null,
359
+ };
360
+ }
361
+ function parseMessageBlocks(messages) {
362
+ if (messages === undefined || messages === null) {
363
+ return [];
364
+ }
365
+ if (!Array.isArray(messages)) {
366
+ return [parseContentBlock('message', messages)];
367
+ }
368
+ return messages.map((message, index) => {
369
+ const block = parseContentBlock(`message ${index + 1}`, message);
370
+ return {
371
+ ...block,
372
+ role: block.role.startsWith('message ') ? block.role : block.role || `message ${index + 1}`,
373
+ };
374
+ });
375
+ }
376
+ function parseToolCallBlocks(toolCalls) {
377
+ if (toolCalls === undefined || toolCalls === null) {
378
+ return [];
379
+ }
380
+ if (!Array.isArray(toolCalls)) {
381
+ return [
382
+ {
383
+ name: 'tool',
384
+ payload: toolCalls,
385
+ content: summarizeJsonValue(toolCalls),
386
+ },
387
+ ];
388
+ }
389
+ return toolCalls.map((toolCall, index) => {
390
+ if (!isRecord(toolCall)) {
391
+ return {
392
+ name: `tool ${index + 1}`,
393
+ payload: toolCall,
394
+ content: summarizeJsonValue(toolCall),
395
+ };
396
+ }
397
+ const name = (typeof toolCall.toolName === 'string' && toolCall.toolName) ||
398
+ (typeof toolCall.name === 'string' && toolCall.name) ||
399
+ `tool ${index + 1}`;
400
+ const input = toolCall.input ?? toolCall.args;
401
+ const payload = input ?? toolCall;
402
+ const metadata = omitKeys(toolCall, new Set(['toolName', 'name', 'input', 'args', 'output', 'result']));
403
+ return {
404
+ name,
405
+ kind: 'input',
406
+ payload,
407
+ content: summarizeJsonValue(payload),
408
+ metadata,
409
+ };
410
+ });
411
+ }
412
+ function parseToolResultBlocks(toolResults) {
413
+ if (toolResults === undefined || toolResults === null) {
414
+ return [];
415
+ }
416
+ if (!Array.isArray(toolResults)) {
417
+ return [
418
+ {
419
+ name: 'tool result',
420
+ payload: toolResults,
421
+ content: summarizeJsonValue(toolResults),
422
+ },
423
+ ];
424
+ }
425
+ return toolResults.map((toolResult, index) => {
426
+ if (!isRecord(toolResult)) {
427
+ return {
428
+ name: `result ${index + 1}`,
429
+ payload: toolResult,
430
+ content: summarizeJsonValue(toolResult),
431
+ };
432
+ }
433
+ const name = (typeof toolResult.toolName === 'string' && toolResult.toolName) ||
434
+ (typeof toolResult.name === 'string' && toolResult.name) ||
435
+ `tool ${index + 1}`;
436
+ const output = toolResult.output ?? toolResult.result;
437
+ const payload = output ?? toolResult;
438
+ const metadata = omitKeys(toolResult, new Set(['toolName', 'name', 'output', 'result', 'input', 'args']));
439
+ return {
440
+ name,
441
+ kind: 'output',
442
+ payload,
443
+ content: summarizeJsonValue(payload),
444
+ metadata,
445
+ };
446
+ });
447
+ }
448
+ function parseUsageSummary(usage) {
449
+ if (usage === undefined || usage === null) {
450
+ return undefined;
451
+ }
452
+ if (!isRecord(usage)) {
453
+ return { label: formatDebugJson(usage), metadata: usage };
454
+ }
455
+ const inputTokens = usage.inputTokens ?? usage.promptTokens;
456
+ const outputTokens = usage.outputTokens ?? usage.completionTokens;
457
+ const totalTokens = usage.totalTokens;
458
+ const parts = [];
459
+ if (typeof inputTokens === 'number')
460
+ parts.push(`in: ${inputTokens}`);
461
+ if (typeof outputTokens === 'number')
462
+ parts.push(`out: ${outputTokens}`);
463
+ if (typeof totalTokens === 'number')
464
+ parts.push(`total: ${totalTokens}`);
465
+ return {
466
+ label: parts.length > 0 ? parts.join(' · ') : formatDebugJson(usage),
467
+ metadata: usage,
468
+ };
469
+ }
470
+ function parseInputExtras(input) {
471
+ if (!input)
472
+ return undefined;
473
+ const extras = {};
474
+ const primaryKeys = new Set(['system', 'messages', 'stepNumber', 'sdkStepNumber']);
475
+ for (const [key, value] of Object.entries(input)) {
476
+ if (!primaryKeys.has(key)) {
477
+ extras[key] = value;
478
+ }
479
+ }
480
+ return Object.keys(extras).length > 0 ? extras : undefined;
481
+ }
482
+ function getBlockDedupeKey(block) {
483
+ if (block.segments?.length) {
484
+ return block.segments
485
+ .map((segment) => {
486
+ switch (segment.type) {
487
+ case 'text':
488
+ return `text:${segment.text}`;
489
+ case 'reasoning':
490
+ return `reasoning:${segment.text}`;
491
+ case 'tool-call': {
492
+ const toolCallId = isRecord(segment.metadata) && typeof segment.metadata.toolCallId === 'string'
493
+ ? segment.metadata.toolCallId
494
+ : '';
495
+ return `tool-call:${segment.name}:${toolCallId}:${formatDebugJson(segment.payload ?? null)}`;
496
+ }
497
+ case 'tool-result': {
498
+ const toolCallId = isRecord(segment.metadata) && typeof segment.metadata.toolCallId === 'string'
499
+ ? segment.metadata.toolCallId
500
+ : '';
501
+ return `tool-result:${segment.name ?? ''}:${toolCallId}:${formatDebugJson(segment.payload ?? null)}`;
502
+ }
503
+ case 'json':
504
+ return `json:${formatDebugJson(segment.payload)}`;
505
+ }
506
+ })
507
+ .join('|');
508
+ }
509
+ return `${block.role}:${block.content}`;
510
+ }
511
+ function dedupeContentBlocks(blocks) {
512
+ const seen = new Set();
513
+ return blocks.filter((block) => {
514
+ const key = getBlockDedupeKey(block);
515
+ if (seen.has(key)) {
516
+ return false;
517
+ }
518
+ seen.add(key);
519
+ return true;
520
+ });
521
+ }
522
+ function parsePrimaryOutputMessageBlocks(output) {
523
+ if (isRecord(output.response) && Array.isArray(output.response.messages)) {
524
+ const messages = parseMessageBlocks(output.response.messages);
525
+ if (messages.length > 0) {
526
+ return messages;
527
+ }
528
+ }
529
+ if (output.content !== undefined && output.content !== null) {
530
+ const contentBlocks = parseMessageBlocks(output.content);
531
+ if (contentBlocks.length > 0) {
532
+ return contentBlocks;
533
+ }
534
+ }
535
+ return parseToolCallBlocks(output.toolCalls).map(toolCallToBlock);
536
+ }
537
+ function parseOutputDisplayBlocks(output) {
538
+ if (!output) {
539
+ return [];
540
+ }
541
+ const blocks = [];
542
+ if (typeof output.text === 'string' && output.text.trim()) {
543
+ blocks.push(createTextBlock('assistant', output.text));
544
+ }
545
+ if (typeof output.reasoningText === 'string' && output.reasoningText.trim()) {
546
+ blocks.push(createTextBlock('reasoning', output.reasoningText, 'reasoning'));
547
+ }
548
+ blocks.push(...parseToolResultBlocks(output.toolResults).map(toolResultToBlock));
549
+ blocks.push(...parsePrimaryOutputMessageBlocks(output));
550
+ return dedupeContentBlocks(blocks);
551
+ }
552
+ function parseOutputExtras(output) {
553
+ if (!output)
554
+ return undefined;
555
+ const extras = {};
556
+ const primaryKeys = new Set([
557
+ 'text',
558
+ 'toolCalls',
559
+ 'toolResults',
560
+ 'usage',
561
+ 'response',
562
+ 'finishReason',
563
+ 'stepNumber',
564
+ 'sdkStepNumber',
565
+ 'content',
566
+ 'reasoning',
567
+ 'reasoningText',
568
+ ]);
569
+ for (const [key, value] of Object.entries(output)) {
570
+ if (!primaryKeys.has(key)) {
571
+ extras[key] = value;
572
+ }
573
+ }
574
+ if (isRecord(output.response)) {
575
+ const responseMeta = {};
576
+ for (const [key, value] of Object.entries(output.response)) {
577
+ if (key !== 'messages') {
578
+ responseMeta[key] = value;
579
+ }
580
+ }
581
+ if (Object.keys(responseMeta).length > 0) {
582
+ extras.responseMeta = responseMeta;
583
+ }
584
+ }
585
+ return Object.keys(extras).length > 0 ? extras : undefined;
586
+ }
587
+ function parseStepSummary(input, output) {
588
+ const toolNames = [];
589
+ if (Array.isArray(output?.toolCalls)) {
590
+ for (const toolCall of output.toolCalls) {
591
+ if (!isRecord(toolCall))
592
+ continue;
593
+ const name = (typeof toolCall.toolName === 'string' && toolCall.toolName) ||
594
+ (typeof toolCall.name === 'string' && toolCall.name) ||
595
+ undefined;
596
+ if (name && !toolNames.includes(name)) {
597
+ toolNames.push(name);
598
+ }
599
+ }
600
+ }
601
+ let messagePreview;
602
+ if (Array.isArray(input?.messages) && input.messages.length > 0) {
603
+ const blocks = parseMessageBlocks(input.messages);
604
+ const lastBlock = blocks[blocks.length - 1];
605
+ if (lastBlock?.content) {
606
+ const trimmed = lastBlock.content.trim();
607
+ messagePreview = trimmed.length > 72 ? `${trimmed.slice(0, 72)}…` : trimmed;
608
+ }
609
+ }
610
+ let systemCharCount;
611
+ if (typeof input?.system === 'string') {
612
+ systemCharCount = input.system.length;
613
+ }
614
+ else if (Array.isArray(input?.system)) {
615
+ systemCharCount = parseSystemBlocks(input.system).reduce((total, block) => total + block.content.length, 0);
616
+ }
617
+ return {
618
+ finishReason: typeof output?.finishReason === 'string' ? output.finishReason : undefined,
619
+ toolNames,
620
+ usageLabel: parseUsageSummary(output?.usage)?.label,
621
+ messagePreview,
622
+ systemCharCount,
623
+ };
624
+ }
625
+ //# sourceMappingURL=llm-step-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-step-display.js","sourceRoot":"","sources":["../../src/schemas/llm-step-display.ts"],"names":[],"mappings":"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"}