@langchain/core 1.1.40-dev-1777576880340 → 1.1.40-dev-1777581929346

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.
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.cts","names":[],"sources":["../../src/callbacks/base.ts"],"mappings":"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"}
1
+ {"version":3,"file":"base.d.cts","names":[],"sources":["../../src/callbacks/base.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":[],"sources":["../../src/callbacks/base.ts"],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../../src/callbacks/base.ts"],"mappings":"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"}
@@ -139,7 +139,7 @@ var BaseLangChain = class extends require_base.Runnable {
139
139
  this.callbacks = params.callbacks;
140
140
  this.tags = params.tags ?? [];
141
141
  this.metadata = params.metadata ?? {};
142
- this._addVersion("@langchain/core", "1.1.40-dev-1777576880340");
142
+ this._addVersion("@langchain/core", "1.1.40-dev-1777581929346");
143
143
  }
144
144
  _addVersion(pkg, version) {
145
145
  const existing = this.metadata?.versions;
@@ -138,7 +138,7 @@ var BaseLangChain = class extends Runnable {
138
138
  this.callbacks = params.callbacks;
139
139
  this.tags = params.tags ?? [];
140
140
  this.metadata = params.metadata ?? {};
141
- this._addVersion("@langchain/core", "1.1.40-dev-1777576880340");
141
+ this._addVersion("@langchain/core", "1.1.40-dev-1777581929346");
142
142
  }
143
143
  _addVersion(pkg, version) {
144
144
  const existing = this.metadata?.versions;
@@ -13,6 +13,72 @@ var compat_exports = /* @__PURE__ */ require_runtime.__exportAll({
13
13
  convertChunksToEvents: () => convertChunksToEvents,
14
14
  finalizeContentBlock: () => finalizeContentBlock
15
15
  });
16
+ const MIME_TYPE_BY_AUDIO_FORMAT = {
17
+ wav: "audio/wav",
18
+ mp3: "audio/mpeg",
19
+ flac: "audio/flac",
20
+ opus: "audio/opus",
21
+ aac: "audio/aac",
22
+ pcm16: "audio/pcm"
23
+ };
24
+ const MIME_TYPE_BY_IMAGE_FORMAT = {
25
+ png: "image/png",
26
+ jpeg: "image/jpeg",
27
+ jpg: "image/jpeg",
28
+ webp: "image/webp",
29
+ gif: "image/gif"
30
+ };
31
+ function nextBlockIndex(activeBlocks) {
32
+ let next = 0;
33
+ for (const index of activeBlocks.keys()) if (index >= next) next = index + 1;
34
+ return next;
35
+ }
36
+ function getAdditionalKwargs(message) {
37
+ const additional = message.additional_kwargs;
38
+ return additional != null && typeof additional === "object" ? additional : {};
39
+ }
40
+ function extractImageBlocksFromToolOutputs(message) {
41
+ const toolOutputs = getAdditionalKwargs(message).tool_outputs;
42
+ if (!Array.isArray(toolOutputs)) return [];
43
+ const blocks = [];
44
+ for (const entry of toolOutputs) {
45
+ if (entry == null || typeof entry !== "object") continue;
46
+ const record = entry;
47
+ if (record.type !== "image_generation_call") continue;
48
+ const data = typeof record.result === "string" ? record.result : void 0;
49
+ const url = typeof record.url === "string" ? record.url : void 0;
50
+ if (data == null && url == null) continue;
51
+ const outputFormat = typeof record.output_format === "string" ? record.output_format.toLowerCase() : void 0;
52
+ const mimeType = (outputFormat != null ? MIME_TYPE_BY_IMAGE_FORMAT[outputFormat] : void 0) ?? "image/png";
53
+ blocks.push({
54
+ type: "image",
55
+ ...typeof record.id === "string" ? { id: record.id } : {},
56
+ ...url != null ? { url } : {},
57
+ ...data != null ? { data } : {},
58
+ mimeType
59
+ });
60
+ }
61
+ return blocks;
62
+ }
63
+ function getAudioPayload(message) {
64
+ const audio = getAdditionalKwargs(message).audio;
65
+ if (audio == null || typeof audio !== "object") return void 0;
66
+ const record = audio;
67
+ const data = typeof record.data === "string" ? record.data : void 0;
68
+ const url = typeof record.url === "string" ? record.url : void 0;
69
+ const transcript = typeof record.transcript === "string" ? record.transcript : void 0;
70
+ if (data == null && url == null && transcript == null) return void 0;
71
+ const explicitMimeType = typeof record.mime_type === "string" ? record.mime_type : typeof record.mimeType === "string" ? record.mimeType : void 0;
72
+ const format = typeof record.format === "string" ? record.format.toLowerCase() : void 0;
73
+ const mimeType = explicitMimeType ?? (format != null ? MIME_TYPE_BY_AUDIO_FORMAT[format] : void 0) ?? (data != null ? "audio/wav" : "audio/pcm");
74
+ return {
75
+ ...typeof record.id === "string" ? { id: record.id } : {},
76
+ ...data != null ? { data } : {},
77
+ ...url != null ? { url } : {},
78
+ ...transcript != null ? { transcript } : {},
79
+ mimeType
80
+ };
81
+ }
16
82
  /**
17
83
  * Convert an async iterable of legacy `ChatGenerationChunk`s into
18
84
  * `ChatModelStreamEvent`s with typed deltas.
@@ -21,6 +87,8 @@ async function* convertChunksToEvents(chunks, options) {
21
87
  const activeBlocks = /* @__PURE__ */ new Map();
22
88
  let messageStarted = false;
23
89
  let lastUsage;
90
+ let audioStream;
91
+ const emittedImageKeys = /* @__PURE__ */ new Set();
24
92
  for await (const chunk of chunks) {
25
93
  options?.signal?.throwIfAborted();
26
94
  const msg = chunk.message;
@@ -132,6 +200,85 @@ async function* convertChunksToEvents(chunks, options) {
132
200
  }
133
201
  };
134
202
  }
203
+ const audioPayload = getAudioPayload(msg);
204
+ if (audioPayload != null) {
205
+ if (audioStream == null) {
206
+ const index = nextBlockIndex(activeBlocks);
207
+ audioStream = {
208
+ index,
209
+ id: audioPayload.id,
210
+ mimeType: audioPayload.mimeType,
211
+ transcript: ""
212
+ };
213
+ const initial = {
214
+ type: "audio",
215
+ ...audioPayload.id != null ? { id: audioPayload.id } : {},
216
+ ...audioPayload.url != null ? { url: audioPayload.url } : {},
217
+ data: "",
218
+ mimeType: audioPayload.mimeType
219
+ };
220
+ activeBlocks.set(index, {
221
+ type: "audio",
222
+ accumulated: initial
223
+ });
224
+ yield {
225
+ event: "content-block-start",
226
+ index,
227
+ content: initial
228
+ };
229
+ }
230
+ const activeAudio = activeBlocks.get(audioStream.index);
231
+ if (activeAudio != null) {
232
+ const accumulated = activeAudio.accumulated;
233
+ if (audioPayload.id != null && audioStream.id == null) {
234
+ audioStream.id = audioPayload.id;
235
+ accumulated.id = audioPayload.id;
236
+ }
237
+ if (audioPayload.transcript != null) {
238
+ audioStream.transcript += audioPayload.transcript;
239
+ accumulated.transcript = audioStream.transcript;
240
+ yield {
241
+ event: "content-block-delta",
242
+ index: audioStream.index,
243
+ delta: {
244
+ type: "block-delta",
245
+ fields: {
246
+ type: "audio",
247
+ transcript: audioStream.transcript
248
+ }
249
+ }
250
+ };
251
+ }
252
+ if (audioPayload.data != null && audioPayload.data.length > 0) {
253
+ accumulated.data = (accumulated.data ?? "") + audioPayload.data;
254
+ yield {
255
+ event: "content-block-delta",
256
+ index: audioStream.index,
257
+ delta: {
258
+ type: "data-delta",
259
+ data: audioPayload.data,
260
+ encoding: "base64"
261
+ }
262
+ };
263
+ }
264
+ }
265
+ }
266
+ for (const imageBlock of extractImageBlocksFromToolOutputs(msg)) {
267
+ const imageRecord = imageBlock;
268
+ const imageKey = imageRecord.id ?? imageRecord.url ?? (imageRecord.data != null ? `${imageRecord.data.length}:${imageRecord.data.slice(0, 32)}` : void 0);
269
+ if (imageKey != null && emittedImageKeys.has(imageKey)) continue;
270
+ if (imageKey != null) emittedImageKeys.add(imageKey);
271
+ const index = nextBlockIndex(activeBlocks);
272
+ activeBlocks.set(index, {
273
+ type: "image",
274
+ accumulated: imageBlock
275
+ });
276
+ yield {
277
+ event: "content-block-start",
278
+ index,
279
+ content: imageBlock
280
+ };
281
+ }
135
282
  if (!usageHandledInStart && require_ai.isAIMessageChunk(msg) && msg.usage_metadata) {
136
283
  const chunkUsage = msg.usage_metadata;
137
284
  if (!lastUsage) lastUsage = { ...chunkUsage };
@@ -1 +1 @@
1
- {"version":3,"file":"compat.cjs","names":["isAIMessageChunk"],"sources":["../../src/language_models/compat.ts"],"sourcesContent":["/**\n * Compatibility bridge: converts legacy `_streamResponseChunks`\n * (`ChatGenerationChunk` / `AIMessageChunk`) output to the new\n * `ChatModelStreamEvent` protocol.\n *\n * @module\n */\n\nimport { isAIMessageChunk } from \"../messages/ai.js\";\nimport type { ContentBlock } from \"../messages/content/index.js\";\nimport type { ChatGenerationChunk } from \"../outputs.js\";\nimport type { ChatModelStreamEvent, ContentBlockDelta } from \"./event.js\";\n\n/**\n * Convert an async iterable of legacy `ChatGenerationChunk`s into\n * `ChatModelStreamEvent`s with typed deltas.\n */\nexport async function* convertChunksToEvents(\n chunks: AsyncIterable<ChatGenerationChunk>,\n options?: { signal?: AbortSignal }\n): AsyncGenerator<ChatModelStreamEvent> {\n const activeBlocks = new Map<\n number,\n { type: string; accumulated: ContentBlock }\n >();\n let messageStarted = false;\n let lastUsage:\n | { input_tokens: number; output_tokens: number; total_tokens: number }\n | undefined;\n\n for await (const chunk of chunks) {\n options?.signal?.throwIfAborted();\n\n const msg = chunk.message;\n\n // Message start\n let usageHandledInStart = false;\n if (!messageStarted) {\n messageStarted = true;\n const startEvent: ChatModelStreamEvent = {\n event: \"message-start\" as const,\n id: msg.id ?? undefined,\n };\n if (isAIMessageChunk(msg) && msg.usage_metadata) {\n (startEvent as { usage?: unknown }).usage = msg.usage_metadata;\n lastUsage = { ...msg.usage_metadata };\n usageHandledInStart = true;\n }\n yield startEvent;\n }\n\n // Process content\n const content = msg.content;\n if (typeof content === \"string\") {\n if (content !== \"\") {\n const blockIndex = 0;\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock.Text = { type: \"text\", text: \"\" };\n activeBlocks.set(blockIndex, {\n type: \"text\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n const block = activeBlocks.get(blockIndex)!;\n block.accumulated = {\n ...block.accumulated,\n text: ((block.accumulated as { text?: string }).text ?? \"\") + content,\n };\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: { type: \"text-delta\" as const, text: content },\n };\n }\n } else if (Array.isArray(content)) {\n for (const part of content) {\n const blockIndex =\n typeof part.index === \"number\" ? part.index : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n activeBlocks.set(blockIndex, {\n type: part.type,\n accumulated: { ...part },\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: { ...part },\n };\n } else {\n const block = activeBlocks.get(blockIndex)!;\n const delta = contentBlockToDelta(part);\n block.accumulated = applyDeltaToBlock(block.accumulated, delta);\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta,\n };\n }\n }\n }\n\n // Tool call chunks\n if (\n isAIMessageChunk(msg) &&\n msg.tool_call_chunks &&\n msg.tool_call_chunks.length > 0\n ) {\n for (const toolChunk of msg.tool_call_chunks) {\n const blockIndex =\n typeof toolChunk.index === \"number\"\n ? toolChunk.index\n : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock = {\n type: \"tool_call_chunk\" as const,\n id: toolChunk.id,\n name: toolChunk.name,\n args: \"\",\n index: blockIndex,\n };\n activeBlocks.set(blockIndex, {\n type: \"tool_call_chunk\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n\n // Accumulate tool call args internally, emit incremental content chunks.\n const block = activeBlocks.get(blockIndex)!;\n const acc = block.accumulated as {\n args?: string;\n id?: string;\n name?: string;\n };\n if (toolChunk.id != null) acc.id = toolChunk.id;\n if (toolChunk.name != null) acc.name = toolChunk.name;\n acc.args = (acc.args ?? \"\") + (toolChunk.args ?? \"\");\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: {\n type: \"block-delta\" as const,\n fields: {\n type: \"tool_call_chunk\",\n ...(\"id\" in acc && acc.id != null ? { id: acc.id } : {}),\n ...(\"name\" in acc && acc.name != null ? { name: acc.name } : {}),\n args: acc.args,\n },\n },\n };\n }\n }\n\n // Usage\n if (!usageHandledInStart && isAIMessageChunk(msg) && msg.usage_metadata) {\n const chunkUsage = msg.usage_metadata;\n if (!lastUsage) {\n lastUsage = { ...chunkUsage };\n } else {\n lastUsage = {\n input_tokens: lastUsage.input_tokens + chunkUsage.input_tokens,\n output_tokens: lastUsage.output_tokens + chunkUsage.output_tokens,\n total_tokens: lastUsage.total_tokens + chunkUsage.total_tokens,\n };\n }\n yield { event: \"usage\" as const, usage: { ...lastUsage } };\n }\n }\n\n // Finish all blocks\n for (const [index, block] of activeBlocks) {\n const finalized = finalizeContentBlock(block.accumulated);\n yield {\n event: \"content-block-finish\" as const,\n index,\n content: finalized,\n };\n }\n\n yield {\n event: \"message-finish\" as const,\n reason: \"stop\" as const,\n ...(lastUsage ? { usage: lastUsage } : {}),\n };\n}\n\n/**\n * Apply a typed delta to an accumulated content block.\n * @internal\n */\nfunction applyDeltaToBlock(\n block: ContentBlock,\n delta: ContentBlockDelta\n): ContentBlock {\n switch (delta.type) {\n case \"text-delta\":\n return {\n ...block,\n text: ((block as { text?: string }).text ?? \"\") + delta.text,\n } as ContentBlock;\n case \"reasoning-delta\":\n if ((block as { type?: string }).type === \"thinking\") {\n return {\n ...block,\n thinking:\n ((block as { thinking?: string }).thinking ?? \"\") + delta.reasoning,\n } as unknown as ContentBlock;\n }\n return {\n ...block,\n reasoning:\n ((block as { reasoning?: string }).reasoning ?? \"\") + delta.reasoning,\n } as ContentBlock;\n case \"data-delta\":\n return {\n ...block,\n data: ((block as { data?: string }).data ?? \"\") + delta.data,\n } as ContentBlock;\n case \"block-delta\":\n return { ...block, ...delta.fields } as ContentBlock;\n default:\n throw new Error(`Unknown delta type: ${JSON.stringify(delta)}`);\n }\n}\n\nfunction contentBlockToDelta(block: ContentBlock): ContentBlockDelta {\n if (block.type === \"text\") {\n return { type: \"text-delta\", text: (block as ContentBlock.Text).text };\n }\n if (block.type === \"reasoning\") {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as ContentBlock.Reasoning).reasoning,\n };\n }\n if (\n (block as { type?: string }).type === \"thinking\" &&\n typeof (block as { thinking?: unknown }).thinking === \"string\"\n ) {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as unknown as { thinking: string }).thinking,\n };\n }\n if (typeof (block as { data?: unknown }).data === \"string\") {\n return {\n type: \"data-delta\",\n data: (block as unknown as { data: string }).data,\n encoding: \"base64\",\n };\n }\n if (typeof (block as { type?: unknown }).type === \"string\") {\n return {\n type: \"block-delta\",\n fields: {\n ...(block as unknown as { type: string } & Record<string, unknown>),\n },\n };\n }\n\n throw new Error(`Unsupported content block delta: ${JSON.stringify(block)}`);\n}\n\n/**\n * Finalize a content block for the finish event.\n * For tool calls, parse the accumulated JSON args string.\n */\nexport function finalizeContentBlock(block: ContentBlock): ContentBlock {\n if (block.type === \"tool_call_chunk\") {\n const chunk = block as ContentBlock.Tools.ToolCallChunk;\n let parsedArgs: unknown;\n try {\n parsedArgs = JSON.parse(chunk.args ?? \"{}\");\n } catch {\n return {\n type: \"invalid_tool_call\" as const,\n id: chunk.id,\n name: chunk.name,\n args: chunk.args,\n error: \"Failed to parse tool call arguments as JSON\",\n } as ContentBlock.Tools.InvalidToolCall;\n }\n return {\n type: \"tool_call\" as const,\n id: chunk.id,\n name: chunk.name!,\n args: parsedArgs,\n } as ContentBlock.Tools.ToolCall;\n }\n\n return block;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"compat.cjs","names":["isAIMessageChunk"],"sources":["../../src/language_models/compat.ts"],"sourcesContent":["/**\n * Compatibility bridge: converts legacy `_streamResponseChunks`\n * (`ChatGenerationChunk` / `AIMessageChunk`) output to the new\n * `ChatModelStreamEvent` protocol.\n *\n * @module\n */\n\nimport { isAIMessageChunk } from \"../messages/ai.js\";\nimport type { ContentBlock } from \"../messages/content/index.js\";\nimport type { ChatGenerationChunk } from \"../outputs.js\";\nimport type { ChatModelStreamEvent, ContentBlockDelta } from \"./event.js\";\n\nconst MIME_TYPE_BY_AUDIO_FORMAT: Record<string, string> = {\n wav: \"audio/wav\",\n mp3: \"audio/mpeg\",\n flac: \"audio/flac\",\n opus: \"audio/opus\",\n aac: \"audio/aac\",\n pcm16: \"audio/pcm\",\n};\n\nconst MIME_TYPE_BY_IMAGE_FORMAT: Record<string, string> = {\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n webp: \"image/webp\",\n gif: \"image/gif\",\n};\n\ntype AudioStreamState = {\n index: number;\n id?: string;\n mimeType: string;\n transcript: string;\n};\n\nfunction nextBlockIndex(activeBlocks: Map<number, unknown>): number {\n let next = 0;\n for (const index of activeBlocks.keys()) {\n if (index >= next) next = index + 1;\n }\n return next;\n}\n\nfunction getAdditionalKwargs(message: unknown): Record<string, unknown> {\n const additional = (message as { additional_kwargs?: unknown })\n .additional_kwargs;\n return additional != null && typeof additional === \"object\"\n ? (additional as Record<string, unknown>)\n : {};\n}\n\nfunction extractImageBlocksFromToolOutputs(message: unknown): ContentBlock[] {\n const toolOutputs = getAdditionalKwargs(message).tool_outputs;\n if (!Array.isArray(toolOutputs)) return [];\n\n const blocks: ContentBlock[] = [];\n for (const entry of toolOutputs) {\n if (entry == null || typeof entry !== \"object\") continue;\n const record = entry as Record<string, unknown>;\n if (record.type !== \"image_generation_call\") continue;\n\n const data = typeof record.result === \"string\" ? record.result : undefined;\n const url = typeof record.url === \"string\" ? record.url : undefined;\n if (data == null && url == null) continue;\n\n const outputFormat =\n typeof record.output_format === \"string\"\n ? record.output_format.toLowerCase()\n : undefined;\n const mimeType =\n (outputFormat != null\n ? MIME_TYPE_BY_IMAGE_FORMAT[outputFormat]\n : undefined) ?? \"image/png\";\n\n blocks.push({\n type: \"image\",\n ...(typeof record.id === \"string\" ? { id: record.id } : {}),\n ...(url != null ? { url } : {}),\n ...(data != null ? { data } : {}),\n mimeType,\n } as ContentBlock);\n }\n return blocks;\n}\n\nfunction getAudioPayload(message: unknown):\n | {\n id?: string;\n data?: string;\n url?: string;\n transcript?: string;\n mimeType: string;\n }\n | undefined {\n const audio = getAdditionalKwargs(message).audio;\n if (audio == null || typeof audio !== \"object\") return undefined;\n const record = audio as Record<string, unknown>;\n\n const data = typeof record.data === \"string\" ? record.data : undefined;\n const url = typeof record.url === \"string\" ? record.url : undefined;\n const transcript =\n typeof record.transcript === \"string\" ? record.transcript : undefined;\n if (data == null && url == null && transcript == null) return undefined;\n\n const explicitMimeType =\n typeof record.mime_type === \"string\"\n ? record.mime_type\n : typeof record.mimeType === \"string\"\n ? record.mimeType\n : undefined;\n const format =\n typeof record.format === \"string\" ? record.format.toLowerCase() : undefined;\n const mimeType =\n explicitMimeType ??\n (format != null ? MIME_TYPE_BY_AUDIO_FORMAT[format] : undefined) ??\n (data != null ? \"audio/wav\" : \"audio/pcm\");\n\n return {\n ...(typeof record.id === \"string\" ? { id: record.id } : {}),\n ...(data != null ? { data } : {}),\n ...(url != null ? { url } : {}),\n ...(transcript != null ? { transcript } : {}),\n mimeType,\n };\n}\n\n/**\n * Convert an async iterable of legacy `ChatGenerationChunk`s into\n * `ChatModelStreamEvent`s with typed deltas.\n */\nexport async function* convertChunksToEvents(\n chunks: AsyncIterable<ChatGenerationChunk>,\n options?: { signal?: AbortSignal }\n): AsyncGenerator<ChatModelStreamEvent> {\n const activeBlocks = new Map<\n number,\n { type: string; accumulated: ContentBlock }\n >();\n let messageStarted = false;\n let lastUsage:\n | { input_tokens: number; output_tokens: number; total_tokens: number }\n | undefined;\n let audioStream: AudioStreamState | undefined;\n const emittedImageKeys = new Set<string>();\n\n for await (const chunk of chunks) {\n options?.signal?.throwIfAborted();\n\n const msg = chunk.message;\n\n // Message start\n let usageHandledInStart = false;\n if (!messageStarted) {\n messageStarted = true;\n const startEvent: ChatModelStreamEvent = {\n event: \"message-start\" as const,\n id: msg.id ?? undefined,\n };\n if (isAIMessageChunk(msg) && msg.usage_metadata) {\n (startEvent as { usage?: unknown }).usage = msg.usage_metadata;\n lastUsage = { ...msg.usage_metadata };\n usageHandledInStart = true;\n }\n yield startEvent;\n }\n\n // Process content\n const content = msg.content;\n if (typeof content === \"string\") {\n if (content !== \"\") {\n const blockIndex = 0;\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock.Text = { type: \"text\", text: \"\" };\n activeBlocks.set(blockIndex, {\n type: \"text\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n const block = activeBlocks.get(blockIndex)!;\n block.accumulated = {\n ...block.accumulated,\n text: ((block.accumulated as { text?: string }).text ?? \"\") + content,\n };\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: { type: \"text-delta\" as const, text: content },\n };\n }\n } else if (Array.isArray(content)) {\n for (const part of content) {\n const blockIndex =\n typeof part.index === \"number\" ? part.index : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n activeBlocks.set(blockIndex, {\n type: part.type,\n accumulated: { ...part },\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: { ...part },\n };\n } else {\n const block = activeBlocks.get(blockIndex)!;\n const delta = contentBlockToDelta(part);\n block.accumulated = applyDeltaToBlock(block.accumulated, delta);\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta,\n };\n }\n }\n }\n\n // Tool call chunks\n if (\n isAIMessageChunk(msg) &&\n msg.tool_call_chunks &&\n msg.tool_call_chunks.length > 0\n ) {\n for (const toolChunk of msg.tool_call_chunks) {\n const blockIndex =\n typeof toolChunk.index === \"number\"\n ? toolChunk.index\n : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock = {\n type: \"tool_call_chunk\" as const,\n id: toolChunk.id,\n name: toolChunk.name,\n args: \"\",\n index: blockIndex,\n };\n activeBlocks.set(blockIndex, {\n type: \"tool_call_chunk\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n\n // Accumulate tool call args internally, emit incremental content chunks.\n const block = activeBlocks.get(blockIndex)!;\n const acc = block.accumulated as {\n args?: string;\n id?: string;\n name?: string;\n };\n if (toolChunk.id != null) acc.id = toolChunk.id;\n if (toolChunk.name != null) acc.name = toolChunk.name;\n acc.args = (acc.args ?? \"\") + (toolChunk.args ?? \"\");\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: {\n type: \"block-delta\" as const,\n fields: {\n type: \"tool_call_chunk\",\n ...(\"id\" in acc && acc.id != null ? { id: acc.id } : {}),\n ...(\"name\" in acc && acc.name != null ? { name: acc.name } : {}),\n args: acc.args,\n },\n },\n };\n }\n }\n\n const audioPayload = getAudioPayload(msg);\n if (audioPayload != null) {\n if (audioStream == null) {\n const index = nextBlockIndex(activeBlocks);\n audioStream = {\n index,\n id: audioPayload.id,\n mimeType: audioPayload.mimeType,\n transcript: \"\",\n };\n const initial = {\n type: \"audio\",\n ...(audioPayload.id != null ? { id: audioPayload.id } : {}),\n ...(audioPayload.url != null ? { url: audioPayload.url } : {}),\n data: \"\",\n mimeType: audioPayload.mimeType,\n } as ContentBlock;\n activeBlocks.set(index, {\n type: \"audio\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index,\n content: initial,\n };\n }\n\n const activeAudio = activeBlocks.get(audioStream.index);\n if (activeAudio != null) {\n const accumulated = activeAudio.accumulated as ContentBlock & {\n data?: string;\n transcript?: string;\n };\n if (audioPayload.id != null && audioStream.id == null) {\n audioStream.id = audioPayload.id;\n (accumulated as { id?: string }).id = audioPayload.id;\n }\n if (audioPayload.transcript != null) {\n audioStream.transcript += audioPayload.transcript;\n accumulated.transcript = audioStream.transcript;\n yield {\n event: \"content-block-delta\" as const,\n index: audioStream.index,\n delta: {\n type: \"block-delta\" as const,\n fields: {\n type: \"audio\",\n transcript: audioStream.transcript,\n },\n },\n };\n }\n if (audioPayload.data != null && audioPayload.data.length > 0) {\n accumulated.data = (accumulated.data ?? \"\") + audioPayload.data;\n yield {\n event: \"content-block-delta\" as const,\n index: audioStream.index,\n delta: {\n type: \"data-delta\" as const,\n data: audioPayload.data,\n encoding: \"base64\" as const,\n },\n };\n }\n }\n }\n\n for (const imageBlock of extractImageBlocksFromToolOutputs(msg)) {\n const imageRecord = imageBlock as ContentBlock & {\n id?: string;\n url?: string;\n data?: string;\n };\n const imageKey =\n imageRecord.id ??\n imageRecord.url ??\n (imageRecord.data != null\n ? `${imageRecord.data.length}:${imageRecord.data.slice(0, 32)}`\n : undefined);\n if (imageKey != null && emittedImageKeys.has(imageKey)) continue;\n if (imageKey != null) emittedImageKeys.add(imageKey);\n\n const index = nextBlockIndex(activeBlocks);\n activeBlocks.set(index, {\n type: \"image\",\n accumulated: imageBlock,\n });\n yield {\n event: \"content-block-start\" as const,\n index,\n content: imageBlock,\n };\n }\n\n // Usage\n if (!usageHandledInStart && isAIMessageChunk(msg) && msg.usage_metadata) {\n const chunkUsage = msg.usage_metadata;\n if (!lastUsage) {\n lastUsage = { ...chunkUsage };\n } else {\n lastUsage = {\n input_tokens: lastUsage.input_tokens + chunkUsage.input_tokens,\n output_tokens: lastUsage.output_tokens + chunkUsage.output_tokens,\n total_tokens: lastUsage.total_tokens + chunkUsage.total_tokens,\n };\n }\n yield { event: \"usage\" as const, usage: { ...lastUsage } };\n }\n }\n\n // Finish all blocks\n for (const [index, block] of activeBlocks) {\n const finalized = finalizeContentBlock(block.accumulated);\n yield {\n event: \"content-block-finish\" as const,\n index,\n content: finalized,\n };\n }\n\n yield {\n event: \"message-finish\" as const,\n reason: \"stop\" as const,\n ...(lastUsage ? { usage: lastUsage } : {}),\n };\n}\n\n/**\n * Apply a typed delta to an accumulated content block.\n * @internal\n */\nfunction applyDeltaToBlock(\n block: ContentBlock,\n delta: ContentBlockDelta\n): ContentBlock {\n switch (delta.type) {\n case \"text-delta\":\n return {\n ...block,\n text: ((block as { text?: string }).text ?? \"\") + delta.text,\n } as ContentBlock;\n case \"reasoning-delta\":\n if ((block as { type?: string }).type === \"thinking\") {\n return {\n ...block,\n thinking:\n ((block as { thinking?: string }).thinking ?? \"\") + delta.reasoning,\n } as unknown as ContentBlock;\n }\n return {\n ...block,\n reasoning:\n ((block as { reasoning?: string }).reasoning ?? \"\") + delta.reasoning,\n } as ContentBlock;\n case \"data-delta\":\n return {\n ...block,\n data: ((block as { data?: string }).data ?? \"\") + delta.data,\n } as ContentBlock;\n case \"block-delta\":\n return { ...block, ...delta.fields } as ContentBlock;\n default:\n throw new Error(`Unknown delta type: ${JSON.stringify(delta)}`);\n }\n}\n\nfunction contentBlockToDelta(block: ContentBlock): ContentBlockDelta {\n if (block.type === \"text\") {\n return { type: \"text-delta\", text: (block as ContentBlock.Text).text };\n }\n if (block.type === \"reasoning\") {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as ContentBlock.Reasoning).reasoning,\n };\n }\n if (\n (block as { type?: string }).type === \"thinking\" &&\n typeof (block as { thinking?: unknown }).thinking === \"string\"\n ) {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as unknown as { thinking: string }).thinking,\n };\n }\n if (typeof (block as { data?: unknown }).data === \"string\") {\n return {\n type: \"data-delta\",\n data: (block as unknown as { data: string }).data,\n encoding: \"base64\",\n };\n }\n if (typeof (block as { type?: unknown }).type === \"string\") {\n return {\n type: \"block-delta\",\n fields: {\n ...(block as unknown as { type: string } & Record<string, unknown>),\n },\n };\n }\n\n throw new Error(`Unsupported content block delta: ${JSON.stringify(block)}`);\n}\n\n/**\n * Finalize a content block for the finish event.\n * For tool calls, parse the accumulated JSON args string.\n */\nexport function finalizeContentBlock(block: ContentBlock): ContentBlock {\n if (block.type === \"tool_call_chunk\") {\n const chunk = block as ContentBlock.Tools.ToolCallChunk;\n let parsedArgs: unknown;\n try {\n parsedArgs = JSON.parse(chunk.args ?? \"{}\");\n } catch {\n return {\n type: \"invalid_tool_call\" as const,\n id: chunk.id,\n name: chunk.name,\n args: chunk.args,\n error: \"Failed to parse tool call arguments as JSON\",\n } as ContentBlock.Tools.InvalidToolCall;\n }\n return {\n type: \"tool_call\" as const,\n id: chunk.id,\n name: chunk.name!,\n args: parsedArgs,\n } as ContentBlock.Tools.ToolCall;\n }\n\n return block;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compat.d.cts","names":[],"sources":["../../src/language_models/compat.ts"],"mappings":";;;;;;;;;iBAiBuB,qBAAA,CACrB,MAAA,EAAQ,aAAA,CAAc,mBAAA,GACtB,OAAA;EAAY,MAAA,GAAS,WAAA;AAAA,IACpB,cAAA,CAAe,oBAAA;;;;;iBAkQF,oBAAA,CAAqB,KAAA,EAAO,YAAA,GAAe,YAAA"}
1
+ {"version":3,"file":"compat.d.cts","names":[],"sources":["../../src/language_models/compat.ts"],"mappings":";;;;;;;;;iBAoIuB,qBAAA,CACrB,MAAA,EAAQ,aAAA,CAAc,mBAAA,GACtB,OAAA;EAAY,MAAA,GAAS,WAAA;AAAA,IACpB,cAAA,CAAe,oBAAA;;;;;iBAmWF,oBAAA,CAAqB,KAAA,EAAO,YAAA,GAAe,YAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"compat.d.ts","names":[],"sources":["../../src/language_models/compat.ts"],"mappings":";;;;;;;;;iBAiBuB,qBAAA,CACrB,MAAA,EAAQ,aAAA,CAAc,mBAAA,GACtB,OAAA;EAAY,MAAA,GAAS,WAAA;AAAA,IACpB,cAAA,CAAe,oBAAA;;;;;iBAkQF,oBAAA,CAAqB,KAAA,EAAO,YAAA,GAAe,YAAA"}
1
+ {"version":3,"file":"compat.d.ts","names":[],"sources":["../../src/language_models/compat.ts"],"mappings":";;;;;;;;;iBAoIuB,qBAAA,CACrB,MAAA,EAAQ,aAAA,CAAc,mBAAA,GACtB,OAAA;EAAY,MAAA,GAAS,WAAA;AAAA,IACpB,cAAA,CAAe,oBAAA;;;;;iBAmWF,oBAAA,CAAqB,KAAA,EAAO,YAAA,GAAe,YAAA"}
@@ -12,6 +12,72 @@ var compat_exports = /* @__PURE__ */ __exportAll({
12
12
  convertChunksToEvents: () => convertChunksToEvents,
13
13
  finalizeContentBlock: () => finalizeContentBlock
14
14
  });
15
+ const MIME_TYPE_BY_AUDIO_FORMAT = {
16
+ wav: "audio/wav",
17
+ mp3: "audio/mpeg",
18
+ flac: "audio/flac",
19
+ opus: "audio/opus",
20
+ aac: "audio/aac",
21
+ pcm16: "audio/pcm"
22
+ };
23
+ const MIME_TYPE_BY_IMAGE_FORMAT = {
24
+ png: "image/png",
25
+ jpeg: "image/jpeg",
26
+ jpg: "image/jpeg",
27
+ webp: "image/webp",
28
+ gif: "image/gif"
29
+ };
30
+ function nextBlockIndex(activeBlocks) {
31
+ let next = 0;
32
+ for (const index of activeBlocks.keys()) if (index >= next) next = index + 1;
33
+ return next;
34
+ }
35
+ function getAdditionalKwargs(message) {
36
+ const additional = message.additional_kwargs;
37
+ return additional != null && typeof additional === "object" ? additional : {};
38
+ }
39
+ function extractImageBlocksFromToolOutputs(message) {
40
+ const toolOutputs = getAdditionalKwargs(message).tool_outputs;
41
+ if (!Array.isArray(toolOutputs)) return [];
42
+ const blocks = [];
43
+ for (const entry of toolOutputs) {
44
+ if (entry == null || typeof entry !== "object") continue;
45
+ const record = entry;
46
+ if (record.type !== "image_generation_call") continue;
47
+ const data = typeof record.result === "string" ? record.result : void 0;
48
+ const url = typeof record.url === "string" ? record.url : void 0;
49
+ if (data == null && url == null) continue;
50
+ const outputFormat = typeof record.output_format === "string" ? record.output_format.toLowerCase() : void 0;
51
+ const mimeType = (outputFormat != null ? MIME_TYPE_BY_IMAGE_FORMAT[outputFormat] : void 0) ?? "image/png";
52
+ blocks.push({
53
+ type: "image",
54
+ ...typeof record.id === "string" ? { id: record.id } : {},
55
+ ...url != null ? { url } : {},
56
+ ...data != null ? { data } : {},
57
+ mimeType
58
+ });
59
+ }
60
+ return blocks;
61
+ }
62
+ function getAudioPayload(message) {
63
+ const audio = getAdditionalKwargs(message).audio;
64
+ if (audio == null || typeof audio !== "object") return void 0;
65
+ const record = audio;
66
+ const data = typeof record.data === "string" ? record.data : void 0;
67
+ const url = typeof record.url === "string" ? record.url : void 0;
68
+ const transcript = typeof record.transcript === "string" ? record.transcript : void 0;
69
+ if (data == null && url == null && transcript == null) return void 0;
70
+ const explicitMimeType = typeof record.mime_type === "string" ? record.mime_type : typeof record.mimeType === "string" ? record.mimeType : void 0;
71
+ const format = typeof record.format === "string" ? record.format.toLowerCase() : void 0;
72
+ const mimeType = explicitMimeType ?? (format != null ? MIME_TYPE_BY_AUDIO_FORMAT[format] : void 0) ?? (data != null ? "audio/wav" : "audio/pcm");
73
+ return {
74
+ ...typeof record.id === "string" ? { id: record.id } : {},
75
+ ...data != null ? { data } : {},
76
+ ...url != null ? { url } : {},
77
+ ...transcript != null ? { transcript } : {},
78
+ mimeType
79
+ };
80
+ }
15
81
  /**
16
82
  * Convert an async iterable of legacy `ChatGenerationChunk`s into
17
83
  * `ChatModelStreamEvent`s with typed deltas.
@@ -20,6 +86,8 @@ async function* convertChunksToEvents(chunks, options) {
20
86
  const activeBlocks = /* @__PURE__ */ new Map();
21
87
  let messageStarted = false;
22
88
  let lastUsage;
89
+ let audioStream;
90
+ const emittedImageKeys = /* @__PURE__ */ new Set();
23
91
  for await (const chunk of chunks) {
24
92
  options?.signal?.throwIfAborted();
25
93
  const msg = chunk.message;
@@ -131,6 +199,85 @@ async function* convertChunksToEvents(chunks, options) {
131
199
  }
132
200
  };
133
201
  }
202
+ const audioPayload = getAudioPayload(msg);
203
+ if (audioPayload != null) {
204
+ if (audioStream == null) {
205
+ const index = nextBlockIndex(activeBlocks);
206
+ audioStream = {
207
+ index,
208
+ id: audioPayload.id,
209
+ mimeType: audioPayload.mimeType,
210
+ transcript: ""
211
+ };
212
+ const initial = {
213
+ type: "audio",
214
+ ...audioPayload.id != null ? { id: audioPayload.id } : {},
215
+ ...audioPayload.url != null ? { url: audioPayload.url } : {},
216
+ data: "",
217
+ mimeType: audioPayload.mimeType
218
+ };
219
+ activeBlocks.set(index, {
220
+ type: "audio",
221
+ accumulated: initial
222
+ });
223
+ yield {
224
+ event: "content-block-start",
225
+ index,
226
+ content: initial
227
+ };
228
+ }
229
+ const activeAudio = activeBlocks.get(audioStream.index);
230
+ if (activeAudio != null) {
231
+ const accumulated = activeAudio.accumulated;
232
+ if (audioPayload.id != null && audioStream.id == null) {
233
+ audioStream.id = audioPayload.id;
234
+ accumulated.id = audioPayload.id;
235
+ }
236
+ if (audioPayload.transcript != null) {
237
+ audioStream.transcript += audioPayload.transcript;
238
+ accumulated.transcript = audioStream.transcript;
239
+ yield {
240
+ event: "content-block-delta",
241
+ index: audioStream.index,
242
+ delta: {
243
+ type: "block-delta",
244
+ fields: {
245
+ type: "audio",
246
+ transcript: audioStream.transcript
247
+ }
248
+ }
249
+ };
250
+ }
251
+ if (audioPayload.data != null && audioPayload.data.length > 0) {
252
+ accumulated.data = (accumulated.data ?? "") + audioPayload.data;
253
+ yield {
254
+ event: "content-block-delta",
255
+ index: audioStream.index,
256
+ delta: {
257
+ type: "data-delta",
258
+ data: audioPayload.data,
259
+ encoding: "base64"
260
+ }
261
+ };
262
+ }
263
+ }
264
+ }
265
+ for (const imageBlock of extractImageBlocksFromToolOutputs(msg)) {
266
+ const imageRecord = imageBlock;
267
+ const imageKey = imageRecord.id ?? imageRecord.url ?? (imageRecord.data != null ? `${imageRecord.data.length}:${imageRecord.data.slice(0, 32)}` : void 0);
268
+ if (imageKey != null && emittedImageKeys.has(imageKey)) continue;
269
+ if (imageKey != null) emittedImageKeys.add(imageKey);
270
+ const index = nextBlockIndex(activeBlocks);
271
+ activeBlocks.set(index, {
272
+ type: "image",
273
+ accumulated: imageBlock
274
+ });
275
+ yield {
276
+ event: "content-block-start",
277
+ index,
278
+ content: imageBlock
279
+ };
280
+ }
134
281
  if (!usageHandledInStart && isAIMessageChunk(msg) && msg.usage_metadata) {
135
282
  const chunkUsage = msg.usage_metadata;
136
283
  if (!lastUsage) lastUsage = { ...chunkUsage };
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","names":[],"sources":["../../src/language_models/compat.ts"],"sourcesContent":["/**\n * Compatibility bridge: converts legacy `_streamResponseChunks`\n * (`ChatGenerationChunk` / `AIMessageChunk`) output to the new\n * `ChatModelStreamEvent` protocol.\n *\n * @module\n */\n\nimport { isAIMessageChunk } from \"../messages/ai.js\";\nimport type { ContentBlock } from \"../messages/content/index.js\";\nimport type { ChatGenerationChunk } from \"../outputs.js\";\nimport type { ChatModelStreamEvent, ContentBlockDelta } from \"./event.js\";\n\n/**\n * Convert an async iterable of legacy `ChatGenerationChunk`s into\n * `ChatModelStreamEvent`s with typed deltas.\n */\nexport async function* convertChunksToEvents(\n chunks: AsyncIterable<ChatGenerationChunk>,\n options?: { signal?: AbortSignal }\n): AsyncGenerator<ChatModelStreamEvent> {\n const activeBlocks = new Map<\n number,\n { type: string; accumulated: ContentBlock }\n >();\n let messageStarted = false;\n let lastUsage:\n | { input_tokens: number; output_tokens: number; total_tokens: number }\n | undefined;\n\n for await (const chunk of chunks) {\n options?.signal?.throwIfAborted();\n\n const msg = chunk.message;\n\n // Message start\n let usageHandledInStart = false;\n if (!messageStarted) {\n messageStarted = true;\n const startEvent: ChatModelStreamEvent = {\n event: \"message-start\" as const,\n id: msg.id ?? undefined,\n };\n if (isAIMessageChunk(msg) && msg.usage_metadata) {\n (startEvent as { usage?: unknown }).usage = msg.usage_metadata;\n lastUsage = { ...msg.usage_metadata };\n usageHandledInStart = true;\n }\n yield startEvent;\n }\n\n // Process content\n const content = msg.content;\n if (typeof content === \"string\") {\n if (content !== \"\") {\n const blockIndex = 0;\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock.Text = { type: \"text\", text: \"\" };\n activeBlocks.set(blockIndex, {\n type: \"text\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n const block = activeBlocks.get(blockIndex)!;\n block.accumulated = {\n ...block.accumulated,\n text: ((block.accumulated as { text?: string }).text ?? \"\") + content,\n };\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: { type: \"text-delta\" as const, text: content },\n };\n }\n } else if (Array.isArray(content)) {\n for (const part of content) {\n const blockIndex =\n typeof part.index === \"number\" ? part.index : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n activeBlocks.set(blockIndex, {\n type: part.type,\n accumulated: { ...part },\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: { ...part },\n };\n } else {\n const block = activeBlocks.get(blockIndex)!;\n const delta = contentBlockToDelta(part);\n block.accumulated = applyDeltaToBlock(block.accumulated, delta);\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta,\n };\n }\n }\n }\n\n // Tool call chunks\n if (\n isAIMessageChunk(msg) &&\n msg.tool_call_chunks &&\n msg.tool_call_chunks.length > 0\n ) {\n for (const toolChunk of msg.tool_call_chunks) {\n const blockIndex =\n typeof toolChunk.index === \"number\"\n ? toolChunk.index\n : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock = {\n type: \"tool_call_chunk\" as const,\n id: toolChunk.id,\n name: toolChunk.name,\n args: \"\",\n index: blockIndex,\n };\n activeBlocks.set(blockIndex, {\n type: \"tool_call_chunk\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n\n // Accumulate tool call args internally, emit incremental content chunks.\n const block = activeBlocks.get(blockIndex)!;\n const acc = block.accumulated as {\n args?: string;\n id?: string;\n name?: string;\n };\n if (toolChunk.id != null) acc.id = toolChunk.id;\n if (toolChunk.name != null) acc.name = toolChunk.name;\n acc.args = (acc.args ?? \"\") + (toolChunk.args ?? \"\");\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: {\n type: \"block-delta\" as const,\n fields: {\n type: \"tool_call_chunk\",\n ...(\"id\" in acc && acc.id != null ? { id: acc.id } : {}),\n ...(\"name\" in acc && acc.name != null ? { name: acc.name } : {}),\n args: acc.args,\n },\n },\n };\n }\n }\n\n // Usage\n if (!usageHandledInStart && isAIMessageChunk(msg) && msg.usage_metadata) {\n const chunkUsage = msg.usage_metadata;\n if (!lastUsage) {\n lastUsage = { ...chunkUsage };\n } else {\n lastUsage = {\n input_tokens: lastUsage.input_tokens + chunkUsage.input_tokens,\n output_tokens: lastUsage.output_tokens + chunkUsage.output_tokens,\n total_tokens: lastUsage.total_tokens + chunkUsage.total_tokens,\n };\n }\n yield { event: \"usage\" as const, usage: { ...lastUsage } };\n }\n }\n\n // Finish all blocks\n for (const [index, block] of activeBlocks) {\n const finalized = finalizeContentBlock(block.accumulated);\n yield {\n event: \"content-block-finish\" as const,\n index,\n content: finalized,\n };\n }\n\n yield {\n event: \"message-finish\" as const,\n reason: \"stop\" as const,\n ...(lastUsage ? { usage: lastUsage } : {}),\n };\n}\n\n/**\n * Apply a typed delta to an accumulated content block.\n * @internal\n */\nfunction applyDeltaToBlock(\n block: ContentBlock,\n delta: ContentBlockDelta\n): ContentBlock {\n switch (delta.type) {\n case \"text-delta\":\n return {\n ...block,\n text: ((block as { text?: string }).text ?? \"\") + delta.text,\n } as ContentBlock;\n case \"reasoning-delta\":\n if ((block as { type?: string }).type === \"thinking\") {\n return {\n ...block,\n thinking:\n ((block as { thinking?: string }).thinking ?? \"\") + delta.reasoning,\n } as unknown as ContentBlock;\n }\n return {\n ...block,\n reasoning:\n ((block as { reasoning?: string }).reasoning ?? \"\") + delta.reasoning,\n } as ContentBlock;\n case \"data-delta\":\n return {\n ...block,\n data: ((block as { data?: string }).data ?? \"\") + delta.data,\n } as ContentBlock;\n case \"block-delta\":\n return { ...block, ...delta.fields } as ContentBlock;\n default:\n throw new Error(`Unknown delta type: ${JSON.stringify(delta)}`);\n }\n}\n\nfunction contentBlockToDelta(block: ContentBlock): ContentBlockDelta {\n if (block.type === \"text\") {\n return { type: \"text-delta\", text: (block as ContentBlock.Text).text };\n }\n if (block.type === \"reasoning\") {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as ContentBlock.Reasoning).reasoning,\n };\n }\n if (\n (block as { type?: string }).type === \"thinking\" &&\n typeof (block as { thinking?: unknown }).thinking === \"string\"\n ) {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as unknown as { thinking: string }).thinking,\n };\n }\n if (typeof (block as { data?: unknown }).data === \"string\") {\n return {\n type: \"data-delta\",\n data: (block as unknown as { data: string }).data,\n encoding: \"base64\",\n };\n }\n if (typeof (block as { type?: unknown }).type === \"string\") {\n return {\n type: \"block-delta\",\n fields: {\n ...(block as unknown as { type: string } & Record<string, unknown>),\n },\n };\n }\n\n throw new Error(`Unsupported content block delta: ${JSON.stringify(block)}`);\n}\n\n/**\n * Finalize a content block for the finish event.\n * For tool calls, parse the accumulated JSON args string.\n */\nexport function finalizeContentBlock(block: ContentBlock): ContentBlock {\n if (block.type === \"tool_call_chunk\") {\n const chunk = block as ContentBlock.Tools.ToolCallChunk;\n let parsedArgs: unknown;\n try {\n parsedArgs = JSON.parse(chunk.args ?? \"{}\");\n } catch {\n return {\n type: \"invalid_tool_call\" as const,\n id: chunk.id,\n name: chunk.name,\n args: chunk.args,\n error: \"Failed to parse tool call arguments as JSON\",\n } as ContentBlock.Tools.InvalidToolCall;\n }\n return {\n type: \"tool_call\" as const,\n id: chunk.id,\n name: chunk.name!,\n args: parsedArgs,\n } as ContentBlock.Tools.ToolCall;\n }\n\n return block;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"compat.js","names":[],"sources":["../../src/language_models/compat.ts"],"sourcesContent":["/**\n * Compatibility bridge: converts legacy `_streamResponseChunks`\n * (`ChatGenerationChunk` / `AIMessageChunk`) output to the new\n * `ChatModelStreamEvent` protocol.\n *\n * @module\n */\n\nimport { isAIMessageChunk } from \"../messages/ai.js\";\nimport type { ContentBlock } from \"../messages/content/index.js\";\nimport type { ChatGenerationChunk } from \"../outputs.js\";\nimport type { ChatModelStreamEvent, ContentBlockDelta } from \"./event.js\";\n\nconst MIME_TYPE_BY_AUDIO_FORMAT: Record<string, string> = {\n wav: \"audio/wav\",\n mp3: \"audio/mpeg\",\n flac: \"audio/flac\",\n opus: \"audio/opus\",\n aac: \"audio/aac\",\n pcm16: \"audio/pcm\",\n};\n\nconst MIME_TYPE_BY_IMAGE_FORMAT: Record<string, string> = {\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n webp: \"image/webp\",\n gif: \"image/gif\",\n};\n\ntype AudioStreamState = {\n index: number;\n id?: string;\n mimeType: string;\n transcript: string;\n};\n\nfunction nextBlockIndex(activeBlocks: Map<number, unknown>): number {\n let next = 0;\n for (const index of activeBlocks.keys()) {\n if (index >= next) next = index + 1;\n }\n return next;\n}\n\nfunction getAdditionalKwargs(message: unknown): Record<string, unknown> {\n const additional = (message as { additional_kwargs?: unknown })\n .additional_kwargs;\n return additional != null && typeof additional === \"object\"\n ? (additional as Record<string, unknown>)\n : {};\n}\n\nfunction extractImageBlocksFromToolOutputs(message: unknown): ContentBlock[] {\n const toolOutputs = getAdditionalKwargs(message).tool_outputs;\n if (!Array.isArray(toolOutputs)) return [];\n\n const blocks: ContentBlock[] = [];\n for (const entry of toolOutputs) {\n if (entry == null || typeof entry !== \"object\") continue;\n const record = entry as Record<string, unknown>;\n if (record.type !== \"image_generation_call\") continue;\n\n const data = typeof record.result === \"string\" ? record.result : undefined;\n const url = typeof record.url === \"string\" ? record.url : undefined;\n if (data == null && url == null) continue;\n\n const outputFormat =\n typeof record.output_format === \"string\"\n ? record.output_format.toLowerCase()\n : undefined;\n const mimeType =\n (outputFormat != null\n ? MIME_TYPE_BY_IMAGE_FORMAT[outputFormat]\n : undefined) ?? \"image/png\";\n\n blocks.push({\n type: \"image\",\n ...(typeof record.id === \"string\" ? { id: record.id } : {}),\n ...(url != null ? { url } : {}),\n ...(data != null ? { data } : {}),\n mimeType,\n } as ContentBlock);\n }\n return blocks;\n}\n\nfunction getAudioPayload(message: unknown):\n | {\n id?: string;\n data?: string;\n url?: string;\n transcript?: string;\n mimeType: string;\n }\n | undefined {\n const audio = getAdditionalKwargs(message).audio;\n if (audio == null || typeof audio !== \"object\") return undefined;\n const record = audio as Record<string, unknown>;\n\n const data = typeof record.data === \"string\" ? record.data : undefined;\n const url = typeof record.url === \"string\" ? record.url : undefined;\n const transcript =\n typeof record.transcript === \"string\" ? record.transcript : undefined;\n if (data == null && url == null && transcript == null) return undefined;\n\n const explicitMimeType =\n typeof record.mime_type === \"string\"\n ? record.mime_type\n : typeof record.mimeType === \"string\"\n ? record.mimeType\n : undefined;\n const format =\n typeof record.format === \"string\" ? record.format.toLowerCase() : undefined;\n const mimeType =\n explicitMimeType ??\n (format != null ? MIME_TYPE_BY_AUDIO_FORMAT[format] : undefined) ??\n (data != null ? \"audio/wav\" : \"audio/pcm\");\n\n return {\n ...(typeof record.id === \"string\" ? { id: record.id } : {}),\n ...(data != null ? { data } : {}),\n ...(url != null ? { url } : {}),\n ...(transcript != null ? { transcript } : {}),\n mimeType,\n };\n}\n\n/**\n * Convert an async iterable of legacy `ChatGenerationChunk`s into\n * `ChatModelStreamEvent`s with typed deltas.\n */\nexport async function* convertChunksToEvents(\n chunks: AsyncIterable<ChatGenerationChunk>,\n options?: { signal?: AbortSignal }\n): AsyncGenerator<ChatModelStreamEvent> {\n const activeBlocks = new Map<\n number,\n { type: string; accumulated: ContentBlock }\n >();\n let messageStarted = false;\n let lastUsage:\n | { input_tokens: number; output_tokens: number; total_tokens: number }\n | undefined;\n let audioStream: AudioStreamState | undefined;\n const emittedImageKeys = new Set<string>();\n\n for await (const chunk of chunks) {\n options?.signal?.throwIfAborted();\n\n const msg = chunk.message;\n\n // Message start\n let usageHandledInStart = false;\n if (!messageStarted) {\n messageStarted = true;\n const startEvent: ChatModelStreamEvent = {\n event: \"message-start\" as const,\n id: msg.id ?? undefined,\n };\n if (isAIMessageChunk(msg) && msg.usage_metadata) {\n (startEvent as { usage?: unknown }).usage = msg.usage_metadata;\n lastUsage = { ...msg.usage_metadata };\n usageHandledInStart = true;\n }\n yield startEvent;\n }\n\n // Process content\n const content = msg.content;\n if (typeof content === \"string\") {\n if (content !== \"\") {\n const blockIndex = 0;\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock.Text = { type: \"text\", text: \"\" };\n activeBlocks.set(blockIndex, {\n type: \"text\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n const block = activeBlocks.get(blockIndex)!;\n block.accumulated = {\n ...block.accumulated,\n text: ((block.accumulated as { text?: string }).text ?? \"\") + content,\n };\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: { type: \"text-delta\" as const, text: content },\n };\n }\n } else if (Array.isArray(content)) {\n for (const part of content) {\n const blockIndex =\n typeof part.index === \"number\" ? part.index : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n activeBlocks.set(blockIndex, {\n type: part.type,\n accumulated: { ...part },\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: { ...part },\n };\n } else {\n const block = activeBlocks.get(blockIndex)!;\n const delta = contentBlockToDelta(part);\n block.accumulated = applyDeltaToBlock(block.accumulated, delta);\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta,\n };\n }\n }\n }\n\n // Tool call chunks\n if (\n isAIMessageChunk(msg) &&\n msg.tool_call_chunks &&\n msg.tool_call_chunks.length > 0\n ) {\n for (const toolChunk of msg.tool_call_chunks) {\n const blockIndex =\n typeof toolChunk.index === \"number\"\n ? toolChunk.index\n : activeBlocks.size;\n\n if (!activeBlocks.has(blockIndex)) {\n const initial: ContentBlock = {\n type: \"tool_call_chunk\" as const,\n id: toolChunk.id,\n name: toolChunk.name,\n args: \"\",\n index: blockIndex,\n };\n activeBlocks.set(blockIndex, {\n type: \"tool_call_chunk\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index: blockIndex,\n content: initial,\n };\n }\n\n // Accumulate tool call args internally, emit incremental content chunks.\n const block = activeBlocks.get(blockIndex)!;\n const acc = block.accumulated as {\n args?: string;\n id?: string;\n name?: string;\n };\n if (toolChunk.id != null) acc.id = toolChunk.id;\n if (toolChunk.name != null) acc.name = toolChunk.name;\n acc.args = (acc.args ?? \"\") + (toolChunk.args ?? \"\");\n yield {\n event: \"content-block-delta\" as const,\n index: blockIndex,\n delta: {\n type: \"block-delta\" as const,\n fields: {\n type: \"tool_call_chunk\",\n ...(\"id\" in acc && acc.id != null ? { id: acc.id } : {}),\n ...(\"name\" in acc && acc.name != null ? { name: acc.name } : {}),\n args: acc.args,\n },\n },\n };\n }\n }\n\n const audioPayload = getAudioPayload(msg);\n if (audioPayload != null) {\n if (audioStream == null) {\n const index = nextBlockIndex(activeBlocks);\n audioStream = {\n index,\n id: audioPayload.id,\n mimeType: audioPayload.mimeType,\n transcript: \"\",\n };\n const initial = {\n type: \"audio\",\n ...(audioPayload.id != null ? { id: audioPayload.id } : {}),\n ...(audioPayload.url != null ? { url: audioPayload.url } : {}),\n data: \"\",\n mimeType: audioPayload.mimeType,\n } as ContentBlock;\n activeBlocks.set(index, {\n type: \"audio\",\n accumulated: initial,\n });\n yield {\n event: \"content-block-start\" as const,\n index,\n content: initial,\n };\n }\n\n const activeAudio = activeBlocks.get(audioStream.index);\n if (activeAudio != null) {\n const accumulated = activeAudio.accumulated as ContentBlock & {\n data?: string;\n transcript?: string;\n };\n if (audioPayload.id != null && audioStream.id == null) {\n audioStream.id = audioPayload.id;\n (accumulated as { id?: string }).id = audioPayload.id;\n }\n if (audioPayload.transcript != null) {\n audioStream.transcript += audioPayload.transcript;\n accumulated.transcript = audioStream.transcript;\n yield {\n event: \"content-block-delta\" as const,\n index: audioStream.index,\n delta: {\n type: \"block-delta\" as const,\n fields: {\n type: \"audio\",\n transcript: audioStream.transcript,\n },\n },\n };\n }\n if (audioPayload.data != null && audioPayload.data.length > 0) {\n accumulated.data = (accumulated.data ?? \"\") + audioPayload.data;\n yield {\n event: \"content-block-delta\" as const,\n index: audioStream.index,\n delta: {\n type: \"data-delta\" as const,\n data: audioPayload.data,\n encoding: \"base64\" as const,\n },\n };\n }\n }\n }\n\n for (const imageBlock of extractImageBlocksFromToolOutputs(msg)) {\n const imageRecord = imageBlock as ContentBlock & {\n id?: string;\n url?: string;\n data?: string;\n };\n const imageKey =\n imageRecord.id ??\n imageRecord.url ??\n (imageRecord.data != null\n ? `${imageRecord.data.length}:${imageRecord.data.slice(0, 32)}`\n : undefined);\n if (imageKey != null && emittedImageKeys.has(imageKey)) continue;\n if (imageKey != null) emittedImageKeys.add(imageKey);\n\n const index = nextBlockIndex(activeBlocks);\n activeBlocks.set(index, {\n type: \"image\",\n accumulated: imageBlock,\n });\n yield {\n event: \"content-block-start\" as const,\n index,\n content: imageBlock,\n };\n }\n\n // Usage\n if (!usageHandledInStart && isAIMessageChunk(msg) && msg.usage_metadata) {\n const chunkUsage = msg.usage_metadata;\n if (!lastUsage) {\n lastUsage = { ...chunkUsage };\n } else {\n lastUsage = {\n input_tokens: lastUsage.input_tokens + chunkUsage.input_tokens,\n output_tokens: lastUsage.output_tokens + chunkUsage.output_tokens,\n total_tokens: lastUsage.total_tokens + chunkUsage.total_tokens,\n };\n }\n yield { event: \"usage\" as const, usage: { ...lastUsage } };\n }\n }\n\n // Finish all blocks\n for (const [index, block] of activeBlocks) {\n const finalized = finalizeContentBlock(block.accumulated);\n yield {\n event: \"content-block-finish\" as const,\n index,\n content: finalized,\n };\n }\n\n yield {\n event: \"message-finish\" as const,\n reason: \"stop\" as const,\n ...(lastUsage ? { usage: lastUsage } : {}),\n };\n}\n\n/**\n * Apply a typed delta to an accumulated content block.\n * @internal\n */\nfunction applyDeltaToBlock(\n block: ContentBlock,\n delta: ContentBlockDelta\n): ContentBlock {\n switch (delta.type) {\n case \"text-delta\":\n return {\n ...block,\n text: ((block as { text?: string }).text ?? \"\") + delta.text,\n } as ContentBlock;\n case \"reasoning-delta\":\n if ((block as { type?: string }).type === \"thinking\") {\n return {\n ...block,\n thinking:\n ((block as { thinking?: string }).thinking ?? \"\") + delta.reasoning,\n } as unknown as ContentBlock;\n }\n return {\n ...block,\n reasoning:\n ((block as { reasoning?: string }).reasoning ?? \"\") + delta.reasoning,\n } as ContentBlock;\n case \"data-delta\":\n return {\n ...block,\n data: ((block as { data?: string }).data ?? \"\") + delta.data,\n } as ContentBlock;\n case \"block-delta\":\n return { ...block, ...delta.fields } as ContentBlock;\n default:\n throw new Error(`Unknown delta type: ${JSON.stringify(delta)}`);\n }\n}\n\nfunction contentBlockToDelta(block: ContentBlock): ContentBlockDelta {\n if (block.type === \"text\") {\n return { type: \"text-delta\", text: (block as ContentBlock.Text).text };\n }\n if (block.type === \"reasoning\") {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as ContentBlock.Reasoning).reasoning,\n };\n }\n if (\n (block as { type?: string }).type === \"thinking\" &&\n typeof (block as { thinking?: unknown }).thinking === \"string\"\n ) {\n return {\n type: \"reasoning-delta\",\n reasoning: (block as unknown as { thinking: string }).thinking,\n };\n }\n if (typeof (block as { data?: unknown }).data === \"string\") {\n return {\n type: \"data-delta\",\n data: (block as unknown as { data: string }).data,\n encoding: \"base64\",\n };\n }\n if (typeof (block as { type?: unknown }).type === \"string\") {\n return {\n type: \"block-delta\",\n fields: {\n ...(block as unknown as { type: string } & Record<string, unknown>),\n },\n };\n }\n\n throw new Error(`Unsupported content block delta: ${JSON.stringify(block)}`);\n}\n\n/**\n * Finalize a content block for the finish event.\n * For tool calls, parse the accumulated JSON args string.\n */\nexport function finalizeContentBlock(block: ContentBlock): ContentBlock {\n if (block.type === \"tool_call_chunk\") {\n const chunk = block as ContentBlock.Tools.ToolCallChunk;\n let parsedArgs: unknown;\n try {\n parsedArgs = JSON.parse(chunk.args ?? \"{}\");\n } catch {\n return {\n type: \"invalid_tool_call\" as const,\n id: chunk.id,\n name: chunk.name,\n args: chunk.args,\n error: \"Failed to parse tool call arguments as JSON\",\n } as ContentBlock.Tools.InvalidToolCall;\n }\n return {\n type: \"tool_call\" as const,\n id: chunk.id,\n name: chunk.name!,\n args: parsedArgs,\n } as ContentBlock.Tools.ToolCall;\n }\n\n return block;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langchain/core",
3
- "version": "1.1.40-dev-1777576880340",
3
+ "version": "1.1.40-dev-1777581929346",
4
4
  "description": "Core LangChain.js abstractions and schemas",
5
5
  "type": "module",
6
6
  "engines": {