@langchain/core 1.1.24 → 1.1.25

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 (1103) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/_virtual/_rolldown/runtime.cjs +43 -0
  3. package/dist/_virtual/_rolldown/runtime.js +18 -0
  4. package/dist/agents.cjs +3 -1
  5. package/dist/agents.d.cts.map +1 -1
  6. package/dist/agents.d.ts.map +1 -1
  7. package/dist/agents.js +3 -1
  8. package/dist/caches/index.cjs +4 -4
  9. package/dist/caches/index.cjs.map +1 -1
  10. package/dist/caches/index.d.cts.map +1 -1
  11. package/dist/caches/index.d.ts.map +1 -1
  12. package/dist/caches/index.js +3 -4
  13. package/dist/caches/index.js.map +1 -1
  14. package/dist/callbacks/base.cjs +9 -16
  15. package/dist/callbacks/base.cjs.map +1 -1
  16. package/dist/callbacks/base.d.cts +1 -0
  17. package/dist/callbacks/base.d.cts.map +1 -1
  18. package/dist/callbacks/base.d.ts +1 -0
  19. package/dist/callbacks/base.d.ts.map +1 -1
  20. package/dist/callbacks/base.js +6 -15
  21. package/dist/callbacks/base.js.map +1 -1
  22. package/dist/callbacks/dispatch/index.cjs +6 -6
  23. package/dist/callbacks/dispatch/index.cjs.map +1 -1
  24. package/dist/callbacks/dispatch/index.d.cts +0 -1
  25. package/dist/callbacks/dispatch/index.d.cts.map +1 -1
  26. package/dist/callbacks/dispatch/index.d.ts +0 -1
  27. package/dist/callbacks/dispatch/index.d.ts.map +1 -1
  28. package/dist/callbacks/dispatch/index.js +4 -5
  29. package/dist/callbacks/dispatch/index.js.map +1 -1
  30. package/dist/callbacks/dispatch/web.cjs +1 -0
  31. package/dist/callbacks/dispatch/web.cjs.map +1 -1
  32. package/dist/callbacks/dispatch/web.d.cts +0 -1
  33. package/dist/callbacks/dispatch/web.d.cts.map +1 -1
  34. package/dist/callbacks/dispatch/web.d.ts +0 -1
  35. package/dist/callbacks/dispatch/web.d.ts.map +1 -1
  36. package/dist/callbacks/dispatch/web.js.map +1 -1
  37. package/dist/callbacks/manager.cjs +30 -50
  38. package/dist/callbacks/manager.cjs.map +1 -1
  39. package/dist/callbacks/manager.d.cts.map +1 -1
  40. package/dist/callbacks/manager.d.ts.map +1 -1
  41. package/dist/callbacks/manager.js +28 -49
  42. package/dist/callbacks/manager.js.map +1 -1
  43. package/dist/callbacks/promises.cjs +3 -3
  44. package/dist/callbacks/promises.js +2 -3
  45. package/dist/chat_history.cjs +4 -4
  46. package/dist/chat_history.cjs.map +1 -1
  47. package/dist/chat_history.d.cts +0 -1
  48. package/dist/chat_history.d.cts.map +1 -1
  49. package/dist/chat_history.d.ts +0 -1
  50. package/dist/chat_history.d.ts.map +1 -1
  51. package/dist/chat_history.js +3 -4
  52. package/dist/chat_history.js.map +1 -1
  53. package/dist/context.cjs +10 -2
  54. package/dist/context.cjs.map +1 -1
  55. package/dist/context.d.cts.map +1 -1
  56. package/dist/context.d.ts.map +1 -1
  57. package/dist/context.js +7 -0
  58. package/dist/context.js.map +1 -1
  59. package/dist/document_loaders/base.cjs +3 -3
  60. package/dist/document_loaders/base.cjs.map +1 -1
  61. package/dist/document_loaders/base.d.cts +0 -1
  62. package/dist/document_loaders/base.d.cts.map +1 -1
  63. package/dist/document_loaders/base.d.ts +0 -1
  64. package/dist/document_loaders/base.d.ts.map +1 -1
  65. package/dist/document_loaders/base.js +2 -3
  66. package/dist/document_loaders/base.js.map +1 -1
  67. package/dist/document_loaders/langsmith.cjs +4 -4
  68. package/dist/document_loaders/langsmith.cjs.map +1 -1
  69. package/dist/document_loaders/langsmith.d.cts.map +1 -1
  70. package/dist/document_loaders/langsmith.d.ts.map +1 -1
  71. package/dist/document_loaders/langsmith.js +2 -3
  72. package/dist/document_loaders/langsmith.js.map +1 -1
  73. package/dist/documents/document.cjs.map +1 -1
  74. package/dist/documents/document.d.cts.map +1 -1
  75. package/dist/documents/document.d.ts.map +1 -1
  76. package/dist/documents/document.js.map +1 -1
  77. package/dist/documents/index.cjs +3 -3
  78. package/dist/documents/index.js +2 -3
  79. package/dist/documents/transformers.cjs.map +1 -1
  80. package/dist/documents/transformers.d.cts +0 -1
  81. package/dist/documents/transformers.d.cts.map +1 -1
  82. package/dist/documents/transformers.d.ts +0 -1
  83. package/dist/documents/transformers.d.ts.map +1 -1
  84. package/dist/documents/transformers.js.map +1 -1
  85. package/dist/embeddings.cjs +3 -3
  86. package/dist/embeddings.cjs.map +1 -1
  87. package/dist/embeddings.d.cts +0 -1
  88. package/dist/embeddings.d.cts.map +1 -1
  89. package/dist/embeddings.d.ts +0 -1
  90. package/dist/embeddings.d.ts.map +1 -1
  91. package/dist/embeddings.js +2 -3
  92. package/dist/embeddings.js.map +1 -1
  93. package/dist/errors/index.cjs +141 -15
  94. package/dist/errors/index.cjs.map +1 -1
  95. package/dist/errors/index.d.cts +134 -11
  96. package/dist/errors/index.d.cts.map +1 -1
  97. package/dist/errors/index.d.ts +134 -11
  98. package/dist/errors/index.d.ts.map +1 -1
  99. package/dist/errors/index.js +138 -16
  100. package/dist/errors/index.js.map +1 -1
  101. package/dist/example_selectors/base.cjs.map +1 -1
  102. package/dist/example_selectors/base.d.cts +0 -1
  103. package/dist/example_selectors/base.d.cts.map +1 -1
  104. package/dist/example_selectors/base.d.ts +0 -1
  105. package/dist/example_selectors/base.d.ts.map +1 -1
  106. package/dist/example_selectors/base.js.map +1 -1
  107. package/dist/example_selectors/conditional.cjs +1 -2
  108. package/dist/example_selectors/conditional.cjs.map +1 -1
  109. package/dist/example_selectors/conditional.d.cts.map +1 -1
  110. package/dist/example_selectors/conditional.d.ts.map +1 -1
  111. package/dist/example_selectors/conditional.js +1 -2
  112. package/dist/example_selectors/conditional.js.map +1 -1
  113. package/dist/example_selectors/index.cjs +3 -3
  114. package/dist/example_selectors/index.js +2 -3
  115. package/dist/example_selectors/length_based.cjs +1 -2
  116. package/dist/example_selectors/length_based.cjs.map +1 -1
  117. package/dist/example_selectors/length_based.d.cts +0 -1
  118. package/dist/example_selectors/length_based.d.cts.map +1 -1
  119. package/dist/example_selectors/length_based.d.ts +0 -1
  120. package/dist/example_selectors/length_based.d.ts.map +1 -1
  121. package/dist/example_selectors/length_based.js +1 -2
  122. package/dist/example_selectors/length_based.js.map +1 -1
  123. package/dist/example_selectors/semantic_similarity.cjs +4 -8
  124. package/dist/example_selectors/semantic_similarity.cjs.map +1 -1
  125. package/dist/example_selectors/semantic_similarity.d.cts +0 -1
  126. package/dist/example_selectors/semantic_similarity.d.cts.map +1 -1
  127. package/dist/example_selectors/semantic_similarity.d.ts +0 -1
  128. package/dist/example_selectors/semantic_similarity.d.ts.map +1 -1
  129. package/dist/example_selectors/semantic_similarity.js +4 -8
  130. package/dist/example_selectors/semantic_similarity.js.map +1 -1
  131. package/dist/index.cjs +3 -1
  132. package/dist/index.js +3 -1
  133. package/dist/indexing/base.cjs +7 -11
  134. package/dist/indexing/base.cjs.map +1 -1
  135. package/dist/indexing/base.d.cts.map +1 -1
  136. package/dist/indexing/base.d.ts.map +1 -1
  137. package/dist/indexing/base.js +5 -9
  138. package/dist/indexing/base.js.map +1 -1
  139. package/dist/indexing/index.cjs +3 -3
  140. package/dist/indexing/index.js +2 -3
  141. package/dist/indexing/record_manager.cjs.map +1 -1
  142. package/dist/indexing/record_manager.d.cts.map +1 -1
  143. package/dist/indexing/record_manager.d.ts.map +1 -1
  144. package/dist/indexing/record_manager.js.map +1 -1
  145. package/dist/language_models/base.cjs +10 -14
  146. package/dist/language_models/base.cjs.map +1 -1
  147. package/dist/language_models/base.d.cts +2 -4
  148. package/dist/language_models/base.d.cts.map +1 -1
  149. package/dist/language_models/base.d.ts +2 -4
  150. package/dist/language_models/base.d.ts.map +1 -1
  151. package/dist/language_models/base.js +9 -14
  152. package/dist/language_models/base.js.map +1 -1
  153. package/dist/language_models/chat_models.cjs +19 -25
  154. package/dist/language_models/chat_models.cjs.map +1 -1
  155. package/dist/language_models/chat_models.d.cts.map +1 -1
  156. package/dist/language_models/chat_models.d.ts.map +1 -1
  157. package/dist/language_models/chat_models.js +18 -25
  158. package/dist/language_models/chat_models.js.map +1 -1
  159. package/dist/language_models/llms.cjs +12 -15
  160. package/dist/language_models/llms.cjs.map +1 -1
  161. package/dist/language_models/llms.d.cts.map +1 -1
  162. package/dist/language_models/llms.d.ts.map +1 -1
  163. package/dist/language_models/llms.js +11 -15
  164. package/dist/language_models/llms.js.map +1 -1
  165. package/dist/language_models/profile.cjs +3 -1
  166. package/dist/language_models/profile.d.cts.map +1 -1
  167. package/dist/language_models/profile.d.ts.map +1 -1
  168. package/dist/language_models/profile.js +3 -1
  169. package/dist/language_models/utils.cjs.map +1 -1
  170. package/dist/language_models/utils.js.map +1 -1
  171. package/dist/load/import_constants.cjs.map +1 -1
  172. package/dist/load/import_constants.js.map +1 -1
  173. package/dist/load/import_map.cjs +13 -14
  174. package/dist/load/import_map.js +13 -14
  175. package/dist/load/import_type.d.cts.map +1 -1
  176. package/dist/load/import_type.d.ts.map +1 -1
  177. package/dist/load/index.cjs +74 -13
  178. package/dist/load/index.cjs.map +1 -1
  179. package/dist/load/index.d.cts +13 -4
  180. package/dist/load/index.d.cts.map +1 -1
  181. package/dist/load/index.d.ts +13 -4
  182. package/dist/load/index.d.ts.map +1 -1
  183. package/dist/load/index.js +68 -8
  184. package/dist/load/index.js.map +1 -1
  185. package/dist/load/map_keys.cjs +5 -3
  186. package/dist/load/map_keys.cjs.map +1 -1
  187. package/dist/load/map_keys.d.cts.map +1 -1
  188. package/dist/load/map_keys.d.ts.map +1 -1
  189. package/dist/load/map_keys.js.map +1 -1
  190. package/dist/load/serializable.cjs +9 -19
  191. package/dist/load/serializable.cjs.map +1 -1
  192. package/dist/load/serializable.d.cts.map +1 -1
  193. package/dist/load/serializable.d.ts.map +1 -1
  194. package/dist/load/serializable.js +8 -19
  195. package/dist/load/serializable.js.map +1 -1
  196. package/dist/load/validation.cjs.map +1 -1
  197. package/dist/load/validation.js.map +1 -1
  198. package/dist/memory.cjs +3 -3
  199. package/dist/memory.cjs.map +1 -1
  200. package/dist/memory.d.cts.map +1 -1
  201. package/dist/memory.d.ts.map +1 -1
  202. package/dist/memory.js +2 -3
  203. package/dist/memory.js.map +1 -1
  204. package/dist/messages/ai.cjs.map +1 -1
  205. package/dist/messages/ai.d.cts.map +1 -1
  206. package/dist/messages/ai.d.ts.map +1 -1
  207. package/dist/messages/ai.js.map +1 -1
  208. package/dist/messages/base.cjs +10 -12
  209. package/dist/messages/base.cjs.map +1 -1
  210. package/dist/messages/base.d.cts +6 -3
  211. package/dist/messages/base.d.cts.map +1 -1
  212. package/dist/messages/base.d.ts +6 -3
  213. package/dist/messages/base.d.ts.map +1 -1
  214. package/dist/messages/base.js +10 -12
  215. package/dist/messages/base.js.map +1 -1
  216. package/dist/messages/block_translators/anthropic.cjs +30 -35
  217. package/dist/messages/block_translators/anthropic.cjs.map +1 -1
  218. package/dist/messages/block_translators/anthropic.js +30 -35
  219. package/dist/messages/block_translators/anthropic.js.map +1 -1
  220. package/dist/messages/block_translators/bedrock_converse.cjs +38 -46
  221. package/dist/messages/block_translators/bedrock_converse.cjs.map +1 -1
  222. package/dist/messages/block_translators/bedrock_converse.js +38 -46
  223. package/dist/messages/block_translators/bedrock_converse.js.map +1 -1
  224. package/dist/messages/block_translators/data.cjs.map +1 -1
  225. package/dist/messages/block_translators/data.js.map +1 -1
  226. package/dist/messages/block_translators/deepseek.cjs.map +1 -1
  227. package/dist/messages/block_translators/deepseek.js.map +1 -1
  228. package/dist/messages/block_translators/google.cjs +6 -9
  229. package/dist/messages/block_translators/google.cjs.map +1 -1
  230. package/dist/messages/block_translators/google.js +6 -9
  231. package/dist/messages/block_translators/google.js.map +1 -1
  232. package/dist/messages/block_translators/google_genai.cjs.map +1 -1
  233. package/dist/messages/block_translators/google_genai.js.map +1 -1
  234. package/dist/messages/block_translators/google_vertexai.cjs +1 -3
  235. package/dist/messages/block_translators/google_vertexai.cjs.map +1 -1
  236. package/dist/messages/block_translators/google_vertexai.js +1 -3
  237. package/dist/messages/block_translators/google_vertexai.js.map +1 -1
  238. package/dist/messages/block_translators/groq.cjs.map +1 -1
  239. package/dist/messages/block_translators/groq.js.map +1 -1
  240. package/dist/messages/block_translators/index.cjs.map +1 -1
  241. package/dist/messages/block_translators/index.js.map +1 -1
  242. package/dist/messages/block_translators/ollama.cjs.map +1 -1
  243. package/dist/messages/block_translators/ollama.js.map +1 -1
  244. package/dist/messages/block_translators/openai.cjs +6 -10
  245. package/dist/messages/block_translators/openai.cjs.map +1 -1
  246. package/dist/messages/block_translators/openai.js +6 -10
  247. package/dist/messages/block_translators/openai.js.map +1 -1
  248. package/dist/messages/block_translators/utils.cjs +1 -1
  249. package/dist/messages/block_translators/utils.cjs.map +1 -1
  250. package/dist/messages/block_translators/utils.js +1 -1
  251. package/dist/messages/block_translators/utils.js.map +1 -1
  252. package/dist/messages/block_translators/xai.cjs.map +1 -1
  253. package/dist/messages/block_translators/xai.js.map +1 -1
  254. package/dist/messages/chat.cjs.map +1 -1
  255. package/dist/messages/chat.d.cts.map +1 -1
  256. package/dist/messages/chat.d.ts.map +1 -1
  257. package/dist/messages/chat.js.map +1 -1
  258. package/dist/messages/content/base.d.cts.map +1 -1
  259. package/dist/messages/content/base.d.ts.map +1 -1
  260. package/dist/messages/content/data.cjs +1 -3
  261. package/dist/messages/content/data.cjs.map +1 -1
  262. package/dist/messages/content/data.d.cts +0 -1
  263. package/dist/messages/content/data.d.cts.map +1 -1
  264. package/dist/messages/content/data.d.ts +0 -1
  265. package/dist/messages/content/data.d.ts.map +1 -1
  266. package/dist/messages/content/data.js +1 -3
  267. package/dist/messages/content/data.js.map +1 -1
  268. package/dist/messages/content/index.cjs +2 -2
  269. package/dist/messages/content/index.cjs.map +1 -1
  270. package/dist/messages/content/index.d.cts.map +1 -1
  271. package/dist/messages/content/index.d.ts.map +1 -1
  272. package/dist/messages/content/index.js +6 -6
  273. package/dist/messages/content/index.js.map +1 -1
  274. package/dist/messages/content/multimodal.cjs.map +1 -1
  275. package/dist/messages/content/multimodal.d.cts +4 -8
  276. package/dist/messages/content/multimodal.d.cts.map +1 -1
  277. package/dist/messages/content/multimodal.d.ts +4 -8
  278. package/dist/messages/content/multimodal.d.ts.map +1 -1
  279. package/dist/messages/content/multimodal.js.map +1 -1
  280. package/dist/messages/content/tools.cjs.map +1 -1
  281. package/dist/messages/content/tools.d.cts.map +1 -1
  282. package/dist/messages/content/tools.d.ts.map +1 -1
  283. package/dist/messages/content/tools.js.map +1 -1
  284. package/dist/messages/format.cjs.map +1 -1
  285. package/dist/messages/format.d.cts.map +1 -1
  286. package/dist/messages/format.d.ts.map +1 -1
  287. package/dist/messages/format.js.map +1 -1
  288. package/dist/messages/function.cjs.map +1 -1
  289. package/dist/messages/function.d.cts.map +1 -1
  290. package/dist/messages/function.d.ts.map +1 -1
  291. package/dist/messages/function.js.map +1 -1
  292. package/dist/messages/human.cjs.map +1 -1
  293. package/dist/messages/human.d.cts.map +1 -1
  294. package/dist/messages/human.d.ts.map +1 -1
  295. package/dist/messages/human.js.map +1 -1
  296. package/dist/messages/index.cjs +4 -4
  297. package/dist/messages/index.js +3 -4
  298. package/dist/messages/message.cjs.map +1 -1
  299. package/dist/messages/message.d.cts +13 -24
  300. package/dist/messages/message.d.cts.map +1 -1
  301. package/dist/messages/message.d.ts +13 -24
  302. package/dist/messages/message.d.ts.map +1 -1
  303. package/dist/messages/message.js.map +1 -1
  304. package/dist/messages/metadata.cjs +1 -2
  305. package/dist/messages/metadata.cjs.map +1 -1
  306. package/dist/messages/metadata.d.cts.map +1 -1
  307. package/dist/messages/metadata.d.ts.map +1 -1
  308. package/dist/messages/metadata.js +1 -2
  309. package/dist/messages/metadata.js.map +1 -1
  310. package/dist/messages/modifier.cjs.map +1 -1
  311. package/dist/messages/modifier.d.cts.map +1 -1
  312. package/dist/messages/modifier.d.ts.map +1 -1
  313. package/dist/messages/modifier.js.map +1 -1
  314. package/dist/messages/system.cjs.map +1 -1
  315. package/dist/messages/system.d.cts.map +1 -1
  316. package/dist/messages/system.d.ts.map +1 -1
  317. package/dist/messages/system.js.map +1 -1
  318. package/dist/messages/tool.cjs +3 -3
  319. package/dist/messages/tool.cjs.map +1 -1
  320. package/dist/messages/tool.d.cts.map +1 -1
  321. package/dist/messages/tool.d.ts.map +1 -1
  322. package/dist/messages/tool.js +2 -3
  323. package/dist/messages/tool.js.map +1 -1
  324. package/dist/messages/transformers.cjs +8 -14
  325. package/dist/messages/transformers.cjs.map +1 -1
  326. package/dist/messages/transformers.d.cts.map +1 -1
  327. package/dist/messages/transformers.d.ts.map +1 -1
  328. package/dist/messages/transformers.js +8 -14
  329. package/dist/messages/transformers.js.map +1 -1
  330. package/dist/messages/utils.cjs +11 -14
  331. package/dist/messages/utils.cjs.map +1 -1
  332. package/dist/messages/utils.d.cts +7 -7
  333. package/dist/messages/utils.d.cts.map +1 -1
  334. package/dist/messages/utils.d.ts +7 -7
  335. package/dist/messages/utils.d.ts.map +1 -1
  336. package/dist/messages/utils.js +11 -14
  337. package/dist/messages/utils.js.map +1 -1
  338. package/dist/output_parsers/base.cjs +5 -5
  339. package/dist/output_parsers/base.cjs.map +1 -1
  340. package/dist/output_parsers/base.d.cts.map +1 -1
  341. package/dist/output_parsers/base.d.ts.map +1 -1
  342. package/dist/output_parsers/base.js +5 -5
  343. package/dist/output_parsers/base.js.map +1 -1
  344. package/dist/output_parsers/bytes.cjs.map +1 -1
  345. package/dist/output_parsers/bytes.d.cts +0 -1
  346. package/dist/output_parsers/bytes.d.cts.map +1 -1
  347. package/dist/output_parsers/bytes.d.ts +0 -1
  348. package/dist/output_parsers/bytes.d.ts.map +1 -1
  349. package/dist/output_parsers/bytes.js.map +1 -1
  350. package/dist/output_parsers/index.cjs +3 -3
  351. package/dist/output_parsers/index.js +2 -3
  352. package/dist/output_parsers/json.cjs +1 -1
  353. package/dist/output_parsers/json.cjs.map +1 -1
  354. package/dist/output_parsers/json.d.cts +0 -1
  355. package/dist/output_parsers/json.d.cts.map +1 -1
  356. package/dist/output_parsers/json.d.ts.map +1 -1
  357. package/dist/output_parsers/json.js +1 -1
  358. package/dist/output_parsers/json.js.map +1 -1
  359. package/dist/output_parsers/list.cjs.map +1 -1
  360. package/dist/output_parsers/list.d.cts +0 -1
  361. package/dist/output_parsers/list.d.cts.map +1 -1
  362. package/dist/output_parsers/list.d.ts +0 -1
  363. package/dist/output_parsers/list.d.ts.map +1 -1
  364. package/dist/output_parsers/list.js.map +1 -1
  365. package/dist/output_parsers/openai_functions/index.cjs +3 -3
  366. package/dist/output_parsers/openai_functions/index.js +2 -3
  367. package/dist/output_parsers/openai_functions/json_output_functions_parsers.cjs +6 -9
  368. package/dist/output_parsers/openai_functions/json_output_functions_parsers.cjs.map +1 -1
  369. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts +0 -1
  370. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts.map +1 -1
  371. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts.map +1 -1
  372. package/dist/output_parsers/openai_functions/json_output_functions_parsers.js +6 -9
  373. package/dist/output_parsers/openai_functions/json_output_functions_parsers.js.map +1 -1
  374. package/dist/output_parsers/openai_tools/index.cjs +3 -3
  375. package/dist/output_parsers/openai_tools/index.js +2 -3
  376. package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs +14 -21
  377. package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs.map +1 -1
  378. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts +1 -2
  379. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts.map +1 -1
  380. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts +1 -2
  381. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts.map +1 -1
  382. package/dist/output_parsers/openai_tools/json_output_tools_parsers.js +14 -21
  383. package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
  384. package/dist/output_parsers/string.cjs +3 -0
  385. package/dist/output_parsers/string.cjs.map +1 -1
  386. package/dist/output_parsers/string.d.cts +0 -1
  387. package/dist/output_parsers/string.d.cts.map +1 -1
  388. package/dist/output_parsers/string.d.ts +0 -1
  389. package/dist/output_parsers/string.d.ts.map +1 -1
  390. package/dist/output_parsers/string.js +3 -0
  391. package/dist/output_parsers/string.js.map +1 -1
  392. package/dist/output_parsers/structured.cjs +10 -13
  393. package/dist/output_parsers/structured.cjs.map +1 -1
  394. package/dist/output_parsers/structured.d.cts.map +1 -1
  395. package/dist/output_parsers/structured.d.ts.map +1 -1
  396. package/dist/output_parsers/structured.js +8 -11
  397. package/dist/output_parsers/structured.js.map +1 -1
  398. package/dist/output_parsers/transform.cjs +3 -3
  399. package/dist/output_parsers/transform.cjs.map +1 -1
  400. package/dist/output_parsers/transform.d.cts +0 -1
  401. package/dist/output_parsers/transform.d.cts.map +1 -1
  402. package/dist/output_parsers/transform.d.ts +0 -1
  403. package/dist/output_parsers/transform.d.ts.map +1 -1
  404. package/dist/output_parsers/transform.js.map +1 -1
  405. package/dist/output_parsers/xml.cjs +4 -7
  406. package/dist/output_parsers/xml.cjs.map +1 -1
  407. package/dist/output_parsers/xml.d.cts.map +1 -1
  408. package/dist/output_parsers/xml.d.ts.map +1 -1
  409. package/dist/output_parsers/xml.js +4 -7
  410. package/dist/output_parsers/xml.js.map +1 -1
  411. package/dist/outputs.cjs +3 -3
  412. package/dist/outputs.cjs.map +1 -1
  413. package/dist/outputs.d.cts.map +1 -1
  414. package/dist/outputs.d.ts.map +1 -1
  415. package/dist/outputs.js +2 -3
  416. package/dist/outputs.js.map +1 -1
  417. package/dist/prompt_values.cjs +3 -3
  418. package/dist/prompt_values.cjs.map +1 -1
  419. package/dist/prompt_values.d.cts +1 -3
  420. package/dist/prompt_values.d.cts.map +1 -1
  421. package/dist/prompt_values.d.ts +1 -3
  422. package/dist/prompt_values.d.ts.map +1 -1
  423. package/dist/prompt_values.js +2 -3
  424. package/dist/prompt_values.js.map +1 -1
  425. package/dist/prompts/base.cjs +2 -3
  426. package/dist/prompts/base.cjs.map +1 -1
  427. package/dist/prompts/base.d.cts.map +1 -1
  428. package/dist/prompts/base.d.ts.map +1 -1
  429. package/dist/prompts/base.js +2 -3
  430. package/dist/prompts/base.js.map +1 -1
  431. package/dist/prompts/chat.cjs +22 -37
  432. package/dist/prompts/chat.cjs.map +1 -1
  433. package/dist/prompts/chat.d.cts +1 -0
  434. package/dist/prompts/chat.d.cts.map +1 -1
  435. package/dist/prompts/chat.d.ts +1 -0
  436. package/dist/prompts/chat.d.ts.map +1 -1
  437. package/dist/prompts/chat.js +22 -37
  438. package/dist/prompts/chat.js.map +1 -1
  439. package/dist/prompts/dict.cjs.map +1 -1
  440. package/dist/prompts/dict.d.cts.map +1 -1
  441. package/dist/prompts/dict.d.ts.map +1 -1
  442. package/dist/prompts/dict.js.map +1 -1
  443. package/dist/prompts/few_shot.cjs +9 -14
  444. package/dist/prompts/few_shot.cjs.map +1 -1
  445. package/dist/prompts/few_shot.d.cts.map +1 -1
  446. package/dist/prompts/few_shot.d.ts.map +1 -1
  447. package/dist/prompts/few_shot.js +9 -14
  448. package/dist/prompts/few_shot.js.map +1 -1
  449. package/dist/prompts/image.cjs +3 -5
  450. package/dist/prompts/image.cjs.map +1 -1
  451. package/dist/prompts/image.d.cts +0 -1
  452. package/dist/prompts/image.d.cts.map +1 -1
  453. package/dist/prompts/image.d.ts +0 -1
  454. package/dist/prompts/image.d.ts.map +1 -1
  455. package/dist/prompts/image.js +3 -5
  456. package/dist/prompts/image.js.map +1 -1
  457. package/dist/prompts/index.cjs +3 -3
  458. package/dist/prompts/index.js +2 -3
  459. package/dist/prompts/pipeline.cjs.map +1 -1
  460. package/dist/prompts/pipeline.d.cts +0 -1
  461. package/dist/prompts/pipeline.d.cts.map +1 -1
  462. package/dist/prompts/pipeline.d.ts +0 -1
  463. package/dist/prompts/pipeline.d.ts.map +1 -1
  464. package/dist/prompts/pipeline.js.map +1 -1
  465. package/dist/prompts/prompt.cjs +9 -12
  466. package/dist/prompts/prompt.cjs.map +1 -1
  467. package/dist/prompts/prompt.d.cts +0 -1
  468. package/dist/prompts/prompt.d.cts.map +1 -1
  469. package/dist/prompts/prompt.d.ts.map +1 -1
  470. package/dist/prompts/prompt.js +9 -12
  471. package/dist/prompts/prompt.js.map +1 -1
  472. package/dist/prompts/serde.d.cts +0 -1
  473. package/dist/prompts/serde.d.cts.map +1 -1
  474. package/dist/prompts/serde.d.ts +0 -1
  475. package/dist/prompts/serde.d.ts.map +1 -1
  476. package/dist/prompts/string.cjs +1 -2
  477. package/dist/prompts/string.cjs.map +1 -1
  478. package/dist/prompts/string.d.cts +0 -1
  479. package/dist/prompts/string.d.cts.map +1 -1
  480. package/dist/prompts/string.d.ts +0 -1
  481. package/dist/prompts/string.d.ts.map +1 -1
  482. package/dist/prompts/string.js +1 -2
  483. package/dist/prompts/string.js.map +1 -1
  484. package/dist/prompts/structured.cjs.map +1 -1
  485. package/dist/prompts/structured.d.cts +0 -1
  486. package/dist/prompts/structured.d.cts.map +1 -1
  487. package/dist/prompts/structured.d.ts.map +1 -1
  488. package/dist/prompts/structured.js.map +1 -1
  489. package/dist/prompts/template.cjs +7 -11
  490. package/dist/prompts/template.cjs.map +1 -1
  491. package/dist/prompts/template.d.cts +0 -1
  492. package/dist/prompts/template.d.cts.map +1 -1
  493. package/dist/prompts/template.d.ts.map +1 -1
  494. package/dist/prompts/template.js +4 -9
  495. package/dist/prompts/template.js.map +1 -1
  496. package/dist/retrievers/document_compressors/index.cjs +3 -3
  497. package/dist/retrievers/document_compressors/index.cjs.map +1 -1
  498. package/dist/retrievers/document_compressors/index.d.cts +0 -1
  499. package/dist/retrievers/document_compressors/index.d.cts.map +1 -1
  500. package/dist/retrievers/document_compressors/index.d.ts +0 -1
  501. package/dist/retrievers/document_compressors/index.d.ts.map +1 -1
  502. package/dist/retrievers/document_compressors/index.js +2 -3
  503. package/dist/retrievers/document_compressors/index.js.map +1 -1
  504. package/dist/retrievers/index.cjs +4 -5
  505. package/dist/retrievers/index.cjs.map +1 -1
  506. package/dist/retrievers/index.d.cts +0 -1
  507. package/dist/retrievers/index.d.cts.map +1 -1
  508. package/dist/retrievers/index.d.ts +0 -1
  509. package/dist/retrievers/index.d.ts.map +1 -1
  510. package/dist/retrievers/index.js +3 -5
  511. package/dist/retrievers/index.js.map +1 -1
  512. package/dist/runnables/base.cjs +44 -67
  513. package/dist/runnables/base.cjs.map +1 -1
  514. package/dist/runnables/base.d.cts +1 -2
  515. package/dist/runnables/base.d.cts.map +1 -1
  516. package/dist/runnables/base.d.ts +1 -2
  517. package/dist/runnables/base.d.ts.map +1 -1
  518. package/dist/runnables/base.js +40 -63
  519. package/dist/runnables/base.js.map +1 -1
  520. package/dist/runnables/branch.cjs +4 -8
  521. package/dist/runnables/branch.cjs.map +1 -1
  522. package/dist/runnables/branch.d.cts +0 -1
  523. package/dist/runnables/branch.d.cts.map +1 -1
  524. package/dist/runnables/branch.d.ts +0 -1
  525. package/dist/runnables/branch.d.ts.map +1 -1
  526. package/dist/runnables/branch.js +4 -8
  527. package/dist/runnables/branch.js.map +1 -1
  528. package/dist/runnables/config.cjs +1 -1
  529. package/dist/runnables/config.cjs.map +1 -1
  530. package/dist/runnables/config.d.cts.map +1 -1
  531. package/dist/runnables/config.d.ts.map +1 -1
  532. package/dist/runnables/config.js +1 -1
  533. package/dist/runnables/config.js.map +1 -1
  534. package/dist/runnables/graph.cjs +6 -8
  535. package/dist/runnables/graph.cjs.map +1 -1
  536. package/dist/runnables/graph.d.cts.map +1 -1
  537. package/dist/runnables/graph.d.ts.map +1 -1
  538. package/dist/runnables/graph.js +4 -7
  539. package/dist/runnables/graph.js.map +1 -1
  540. package/dist/runnables/graph_mermaid.cjs +6 -9
  541. package/dist/runnables/graph_mermaid.cjs.map +1 -1
  542. package/dist/runnables/graph_mermaid.js +6 -9
  543. package/dist/runnables/graph_mermaid.js.map +1 -1
  544. package/dist/runnables/history.cjs +4 -6
  545. package/dist/runnables/history.cjs.map +1 -1
  546. package/dist/runnables/history.d.cts.map +1 -1
  547. package/dist/runnables/history.d.ts.map +1 -1
  548. package/dist/runnables/history.js +4 -6
  549. package/dist/runnables/history.js.map +1 -1
  550. package/dist/runnables/index.cjs +3 -3
  551. package/dist/runnables/index.js +2 -3
  552. package/dist/runnables/iter.cjs.map +1 -1
  553. package/dist/runnables/iter.js.map +1 -1
  554. package/dist/runnables/passthrough.cjs +1 -1
  555. package/dist/runnables/passthrough.cjs.map +1 -1
  556. package/dist/runnables/passthrough.d.cts.map +1 -1
  557. package/dist/runnables/passthrough.d.ts.map +1 -1
  558. package/dist/runnables/passthrough.js +1 -1
  559. package/dist/runnables/passthrough.js.map +1 -1
  560. package/dist/runnables/router.cjs +2 -3
  561. package/dist/runnables/router.cjs.map +1 -1
  562. package/dist/runnables/router.d.cts.map +1 -1
  563. package/dist/runnables/router.d.ts.map +1 -1
  564. package/dist/runnables/router.js +2 -3
  565. package/dist/runnables/router.js.map +1 -1
  566. package/dist/runnables/types.d.cts +1 -2
  567. package/dist/runnables/types.d.cts.map +1 -1
  568. package/dist/runnables/types.d.ts +1 -2
  569. package/dist/runnables/types.d.ts.map +1 -1
  570. package/dist/runnables/utils.cjs +1 -2
  571. package/dist/runnables/utils.cjs.map +1 -1
  572. package/dist/runnables/utils.js +1 -2
  573. package/dist/runnables/utils.js.map +1 -1
  574. package/dist/runnables/wrappers.cjs.map +1 -1
  575. package/dist/runnables/wrappers.js.map +1 -1
  576. package/dist/singletons/async_local_storage/context.cjs +4 -5
  577. package/dist/singletons/async_local_storage/context.cjs.map +1 -1
  578. package/dist/singletons/async_local_storage/context.d.cts +0 -1
  579. package/dist/singletons/async_local_storage/context.d.cts.map +1 -1
  580. package/dist/singletons/async_local_storage/context.d.ts +0 -1
  581. package/dist/singletons/async_local_storage/context.d.ts.map +1 -1
  582. package/dist/singletons/async_local_storage/context.js +2 -3
  583. package/dist/singletons/async_local_storage/context.js.map +1 -1
  584. package/dist/singletons/async_local_storage/globals.cjs.map +1 -1
  585. package/dist/singletons/async_local_storage/globals.d.cts.map +1 -1
  586. package/dist/singletons/async_local_storage/globals.d.ts.map +1 -1
  587. package/dist/singletons/async_local_storage/globals.js.map +1 -1
  588. package/dist/singletons/async_local_storage/index.cjs +5 -10
  589. package/dist/singletons/async_local_storage/index.cjs.map +1 -1
  590. package/dist/singletons/async_local_storage/index.d.cts.map +1 -1
  591. package/dist/singletons/async_local_storage/index.d.ts.map +1 -1
  592. package/dist/singletons/async_local_storage/index.js +3 -8
  593. package/dist/singletons/async_local_storage/index.js.map +1 -1
  594. package/dist/singletons/callbacks.cjs +4 -4
  595. package/dist/singletons/callbacks.cjs.map +1 -1
  596. package/dist/singletons/callbacks.d.cts +0 -1
  597. package/dist/singletons/callbacks.d.cts.map +1 -1
  598. package/dist/singletons/callbacks.d.ts +0 -1
  599. package/dist/singletons/callbacks.d.ts.map +1 -1
  600. package/dist/singletons/callbacks.js +1 -2
  601. package/dist/singletons/callbacks.js.map +1 -1
  602. package/dist/singletons/index.cjs +3 -3
  603. package/dist/singletons/index.js +2 -3
  604. package/dist/singletons/tracer.cjs +3 -6
  605. package/dist/singletons/tracer.cjs.map +1 -1
  606. package/dist/singletons/tracer.js +1 -4
  607. package/dist/singletons/tracer.js.map +1 -1
  608. package/dist/stores.cjs +3 -3
  609. package/dist/stores.cjs.map +1 -1
  610. package/dist/stores.d.cts +0 -1
  611. package/dist/stores.d.cts.map +1 -1
  612. package/dist/stores.d.ts +0 -1
  613. package/dist/stores.d.ts.map +1 -1
  614. package/dist/stores.js +2 -3
  615. package/dist/stores.js.map +1 -1
  616. package/dist/structured_query/base.cjs +3 -3
  617. package/dist/structured_query/base.cjs.map +1 -1
  618. package/dist/structured_query/base.d.cts +0 -1
  619. package/dist/structured_query/base.d.cts.map +1 -1
  620. package/dist/structured_query/base.d.ts +0 -1
  621. package/dist/structured_query/base.d.ts.map +1 -1
  622. package/dist/structured_query/base.js +3 -3
  623. package/dist/structured_query/base.js.map +1 -1
  624. package/dist/structured_query/functional.cjs +3 -3
  625. package/dist/structured_query/functional.cjs.map +1 -1
  626. package/dist/structured_query/functional.d.cts +0 -1
  627. package/dist/structured_query/functional.d.cts.map +1 -1
  628. package/dist/structured_query/functional.d.ts +0 -1
  629. package/dist/structured_query/functional.d.ts.map +1 -1
  630. package/dist/structured_query/functional.js +3 -3
  631. package/dist/structured_query/functional.js.map +1 -1
  632. package/dist/structured_query/index.cjs +3 -3
  633. package/dist/structured_query/index.js +2 -3
  634. package/dist/structured_query/ir.cjs.map +1 -1
  635. package/dist/structured_query/ir.d.cts +0 -1
  636. package/dist/structured_query/ir.d.cts.map +1 -1
  637. package/dist/structured_query/ir.d.ts +0 -1
  638. package/dist/structured_query/ir.d.ts.map +1 -1
  639. package/dist/structured_query/ir.js.map +1 -1
  640. package/dist/structured_query/utils.cjs.map +1 -1
  641. package/dist/structured_query/utils.d.cts.map +1 -1
  642. package/dist/structured_query/utils.d.ts.map +1 -1
  643. package/dist/structured_query/utils.js.map +1 -1
  644. package/dist/tools/index.cjs +11 -12
  645. package/dist/tools/index.cjs.map +1 -1
  646. package/dist/tools/index.d.cts +2 -1
  647. package/dist/tools/index.d.cts.map +1 -1
  648. package/dist/tools/index.d.ts +2 -1
  649. package/dist/tools/index.d.ts.map +1 -1
  650. package/dist/tools/index.js +7 -9
  651. package/dist/tools/index.js.map +1 -1
  652. package/dist/tools/types.cjs.map +1 -1
  653. package/dist/tools/types.d.cts +1 -0
  654. package/dist/tools/types.d.cts.map +1 -1
  655. package/dist/tools/types.d.ts +1 -0
  656. package/dist/tools/types.d.ts.map +1 -1
  657. package/dist/tools/types.js.map +1 -1
  658. package/dist/tools/utils.cjs.map +1 -1
  659. package/dist/tools/utils.d.cts +0 -1
  660. package/dist/tools/utils.d.cts.map +1 -1
  661. package/dist/tools/utils.d.ts +0 -1
  662. package/dist/tools/utils.d.ts.map +1 -1
  663. package/dist/tools/utils.js.map +1 -1
  664. package/dist/tracers/base.cjs +7 -7
  665. package/dist/tracers/base.cjs.map +1 -1
  666. package/dist/tracers/base.d.cts +6 -12
  667. package/dist/tracers/base.d.cts.map +1 -1
  668. package/dist/tracers/base.d.ts +6 -12
  669. package/dist/tracers/base.d.ts.map +1 -1
  670. package/dist/tracers/base.js +5 -6
  671. package/dist/tracers/base.js.map +1 -1
  672. package/dist/tracers/console.cjs +9 -9
  673. package/dist/tracers/console.cjs.map +1 -1
  674. package/dist/tracers/console.d.cts +0 -1
  675. package/dist/tracers/console.d.cts.map +1 -1
  676. package/dist/tracers/console.d.ts +0 -1
  677. package/dist/tracers/console.d.ts.map +1 -1
  678. package/dist/tracers/console.js +6 -8
  679. package/dist/tracers/console.js.map +1 -1
  680. package/dist/tracers/event_stream.cjs +2 -4
  681. package/dist/tracers/event_stream.cjs.map +1 -1
  682. package/dist/tracers/event_stream.d.cts +2 -5
  683. package/dist/tracers/event_stream.d.cts.map +1 -1
  684. package/dist/tracers/event_stream.d.ts +2 -5
  685. package/dist/tracers/event_stream.d.ts.map +1 -1
  686. package/dist/tracers/event_stream.js +2 -4
  687. package/dist/tracers/event_stream.js.map +1 -1
  688. package/dist/tracers/log_stream.cjs +5 -5
  689. package/dist/tracers/log_stream.cjs.map +1 -1
  690. package/dist/tracers/log_stream.d.cts +14 -31
  691. package/dist/tracers/log_stream.d.cts.map +1 -1
  692. package/dist/tracers/log_stream.d.ts +14 -31
  693. package/dist/tracers/log_stream.d.ts.map +1 -1
  694. package/dist/tracers/log_stream.js +4 -5
  695. package/dist/tracers/log_stream.js.map +1 -1
  696. package/dist/tracers/root_listener.cjs.map +1 -1
  697. package/dist/tracers/root_listener.js.map +1 -1
  698. package/dist/tracers/run_collector.cjs +3 -3
  699. package/dist/tracers/run_collector.cjs.map +1 -1
  700. package/dist/tracers/run_collector.d.cts +0 -1
  701. package/dist/tracers/run_collector.d.cts.map +1 -1
  702. package/dist/tracers/run_collector.d.ts +0 -1
  703. package/dist/tracers/run_collector.d.ts.map +1 -1
  704. package/dist/tracers/run_collector.js +2 -3
  705. package/dist/tracers/run_collector.js.map +1 -1
  706. package/dist/tracers/tracer_langchain.cjs +8 -11
  707. package/dist/tracers/tracer_langchain.cjs.map +1 -1
  708. package/dist/tracers/tracer_langchain.d.cts +8 -8
  709. package/dist/tracers/tracer_langchain.d.cts.map +1 -1
  710. package/dist/tracers/tracer_langchain.d.ts +8 -8
  711. package/dist/tracers/tracer_langchain.d.ts.map +1 -1
  712. package/dist/tracers/tracer_langchain.js +5 -9
  713. package/dist/tracers/tracer_langchain.js.map +1 -1
  714. package/dist/types/_internal.d.cts.map +1 -1
  715. package/dist/types/_internal.d.ts.map +1 -1
  716. package/dist/types/stream.cjs +3 -1
  717. package/dist/types/stream.js +3 -1
  718. package/dist/types/type-utils.d.cts.map +1 -1
  719. package/dist/types/type-utils.d.ts.map +1 -1
  720. package/dist/utils/async_caller.cjs +8 -9
  721. package/dist/utils/async_caller.cjs.map +1 -1
  722. package/dist/utils/async_caller.d.cts.map +1 -1
  723. package/dist/utils/async_caller.d.ts.map +1 -1
  724. package/dist/utils/async_caller.js +5 -8
  725. package/dist/utils/async_caller.js.map +1 -1
  726. package/dist/utils/callbacks.cjs +2 -3
  727. package/dist/utils/callbacks.cjs.map +1 -1
  728. package/dist/utils/callbacks.js +2 -3
  729. package/dist/utils/callbacks.js.map +1 -1
  730. package/dist/utils/chunk_array.cjs +4 -5
  731. package/dist/utils/chunk_array.cjs.map +1 -1
  732. package/dist/utils/chunk_array.d.cts.map +1 -1
  733. package/dist/utils/chunk_array.d.ts.map +1 -1
  734. package/dist/utils/chunk_array.js +3 -5
  735. package/dist/utils/chunk_array.js.map +1 -1
  736. package/dist/utils/context.cjs +4 -5
  737. package/dist/utils/context.cjs.map +1 -1
  738. package/dist/utils/context.d.cts.map +1 -1
  739. package/dist/utils/context.d.ts.map +1 -1
  740. package/dist/utils/context.js +3 -5
  741. package/dist/utils/context.js.map +1 -1
  742. package/dist/utils/env.cjs +9 -12
  743. package/dist/utils/env.cjs.map +1 -1
  744. package/dist/utils/env.d.cts.map +1 -1
  745. package/dist/utils/env.d.ts.map +1 -1
  746. package/dist/utils/env.js +8 -12
  747. package/dist/utils/env.js.map +1 -1
  748. package/dist/utils/event_source_parse.cjs +9 -9
  749. package/dist/utils/event_source_parse.cjs.map +1 -1
  750. package/dist/utils/event_source_parse.d.cts.map +1 -1
  751. package/dist/utils/event_source_parse.d.ts.map +1 -1
  752. package/dist/utils/event_source_parse.js +8 -9
  753. package/dist/utils/event_source_parse.js.map +1 -1
  754. package/dist/utils/fast-json-patch/index.cjs +3 -0
  755. package/dist/utils/fast-json-patch/index.cjs.map +1 -1
  756. package/dist/utils/fast-json-patch/index.js +4 -0
  757. package/dist/utils/fast-json-patch/index.js.map +1 -1
  758. package/dist/utils/fast-json-patch/src/core.cjs +6 -10
  759. package/dist/utils/fast-json-patch/src/core.cjs.map +1 -1
  760. package/dist/utils/fast-json-patch/src/core.d.cts +0 -1
  761. package/dist/utils/fast-json-patch/src/core.d.cts.map +1 -1
  762. package/dist/utils/fast-json-patch/src/core.d.ts +0 -1
  763. package/dist/utils/fast-json-patch/src/core.d.ts.map +1 -1
  764. package/dist/utils/fast-json-patch/src/core.js +6 -10
  765. package/dist/utils/fast-json-patch/src/core.js.map +1 -1
  766. package/dist/utils/fast-json-patch/src/duplex.cjs +5 -3
  767. package/dist/utils/fast-json-patch/src/duplex.cjs.map +1 -1
  768. package/dist/utils/fast-json-patch/src/duplex.d.cts +0 -1
  769. package/dist/utils/fast-json-patch/src/duplex.d.cts.map +1 -1
  770. package/dist/utils/fast-json-patch/src/duplex.d.ts +0 -1
  771. package/dist/utils/fast-json-patch/src/duplex.d.ts.map +1 -1
  772. package/dist/utils/fast-json-patch/src/duplex.js +5 -3
  773. package/dist/utils/fast-json-patch/src/duplex.js.map +1 -1
  774. package/dist/utils/fast-json-patch/src/helpers.cjs +4 -4
  775. package/dist/utils/fast-json-patch/src/helpers.cjs.map +1 -1
  776. package/dist/utils/fast-json-patch/src/helpers.js +4 -4
  777. package/dist/utils/fast-json-patch/src/helpers.js.map +1 -1
  778. package/dist/utils/format.cjs +3 -1
  779. package/dist/utils/format.d.cts.map +1 -1
  780. package/dist/utils/format.d.ts.map +1 -1
  781. package/dist/utils/format.js +3 -1
  782. package/dist/utils/function_calling.cjs +3 -3
  783. package/dist/utils/function_calling.cjs.map +1 -1
  784. package/dist/utils/function_calling.d.cts +0 -1
  785. package/dist/utils/function_calling.d.cts.map +1 -1
  786. package/dist/utils/function_calling.d.ts +0 -1
  787. package/dist/utils/function_calling.d.ts.map +1 -1
  788. package/dist/utils/function_calling.js +2 -3
  789. package/dist/utils/function_calling.js.map +1 -1
  790. package/dist/utils/hash.cjs +3 -3
  791. package/dist/utils/hash.d.cts +0 -1
  792. package/dist/utils/hash.d.cts.map +1 -1
  793. package/dist/utils/hash.d.ts +0 -1
  794. package/dist/utils/hash.d.ts.map +1 -1
  795. package/dist/utils/hash.js +2 -3
  796. package/dist/utils/is-network-error/index.cjs +2 -3
  797. package/dist/utils/is-network-error/index.cjs.map +1 -1
  798. package/dist/utils/is-network-error/index.js +2 -3
  799. package/dist/utils/is-network-error/index.js.map +1 -1
  800. package/dist/utils/js-sha256/hash.cjs +41 -34
  801. package/dist/utils/js-sha256/hash.cjs.map +1 -1
  802. package/dist/utils/js-sha256/hash.d.cts.map +1 -1
  803. package/dist/utils/js-sha256/hash.d.ts.map +1 -1
  804. package/dist/utils/js-sha256/hash.js +41 -35
  805. package/dist/utils/js-sha256/hash.js.map +1 -1
  806. package/dist/utils/json.cjs.map +1 -1
  807. package/dist/utils/json.d.cts.map +1 -1
  808. package/dist/utils/json.d.ts.map +1 -1
  809. package/dist/utils/json.js.map +1 -1
  810. package/dist/utils/json_patch.cjs +3 -3
  811. package/dist/utils/json_patch.js +2 -3
  812. package/dist/utils/json_schema.cjs +12 -14
  813. package/dist/utils/json_schema.cjs.map +1 -1
  814. package/dist/utils/json_schema.d.cts.map +1 -1
  815. package/dist/utils/json_schema.d.ts.map +1 -1
  816. package/dist/utils/json_schema.js +4 -7
  817. package/dist/utils/json_schema.js.map +1 -1
  818. package/dist/utils/math.cjs +7 -8
  819. package/dist/utils/math.cjs.map +1 -1
  820. package/dist/utils/math.d.cts.map +1 -1
  821. package/dist/utils/math.d.ts.map +1 -1
  822. package/dist/utils/math.js +8 -10
  823. package/dist/utils/math.js.map +1 -1
  824. package/dist/utils/ml-distance/distances.cjs.map +1 -1
  825. package/dist/utils/ml-distance/distances.js.map +1 -1
  826. package/dist/utils/ml-distance/similarities.cjs.map +1 -1
  827. package/dist/utils/ml-distance/similarities.d.cts.map +1 -1
  828. package/dist/utils/ml-distance/similarities.d.ts.map +1 -1
  829. package/dist/utils/ml-distance/similarities.js.map +1 -1
  830. package/dist/utils/ml-distance-euclidean/euclidean.cjs.map +1 -1
  831. package/dist/utils/ml-distance-euclidean/euclidean.js.map +1 -1
  832. package/dist/utils/namespace.cjs +63 -0
  833. package/dist/utils/namespace.cjs.map +1 -0
  834. package/dist/utils/namespace.d.cts +73 -0
  835. package/dist/utils/namespace.d.cts.map +1 -0
  836. package/dist/utils/namespace.d.ts +73 -0
  837. package/dist/utils/namespace.d.ts.map +1 -0
  838. package/dist/utils/namespace.js +62 -0
  839. package/dist/utils/namespace.js.map +1 -0
  840. package/dist/utils/p-retry/index.cjs +2 -2
  841. package/dist/utils/p-retry/index.cjs.map +1 -1
  842. package/dist/utils/p-retry/index.js +2 -2
  843. package/dist/utils/p-retry/index.js.map +1 -1
  844. package/dist/utils/sax-js/sax.cjs +28 -34
  845. package/dist/utils/sax-js/sax.cjs.map +1 -1
  846. package/dist/utils/sax-js/sax.js +28 -34
  847. package/dist/utils/sax-js/sax.js.map +1 -1
  848. package/dist/utils/signal.cjs +1 -1
  849. package/dist/utils/signal.cjs.map +1 -1
  850. package/dist/utils/signal.d.cts.map +1 -1
  851. package/dist/utils/signal.d.ts.map +1 -1
  852. package/dist/utils/signal.js +1 -1
  853. package/dist/utils/signal.js.map +1 -1
  854. package/dist/utils/ssrf.cjs +8 -10
  855. package/dist/utils/ssrf.cjs.map +1 -1
  856. package/dist/utils/ssrf.d.cts.map +1 -1
  857. package/dist/utils/ssrf.d.ts.map +1 -1
  858. package/dist/utils/ssrf.js +7 -10
  859. package/dist/utils/ssrf.js.map +1 -1
  860. package/dist/utils/stream.cjs +4 -4
  861. package/dist/utils/stream.cjs.map +1 -1
  862. package/dist/utils/stream.d.cts.map +1 -1
  863. package/dist/utils/stream.d.ts.map +1 -1
  864. package/dist/utils/stream.js +3 -4
  865. package/dist/utils/stream.js.map +1 -1
  866. package/dist/utils/testing/chat_models.cjs +3 -5
  867. package/dist/utils/testing/chat_models.cjs.map +1 -1
  868. package/dist/utils/testing/chat_models.d.cts.map +1 -1
  869. package/dist/utils/testing/chat_models.d.ts.map +1 -1
  870. package/dist/utils/testing/chat_models.js +3 -5
  871. package/dist/utils/testing/chat_models.js.map +1 -1
  872. package/dist/utils/testing/embeddings.cjs +2 -4
  873. package/dist/utils/testing/embeddings.cjs.map +1 -1
  874. package/dist/utils/testing/embeddings.d.cts +0 -1
  875. package/dist/utils/testing/embeddings.d.cts.map +1 -1
  876. package/dist/utils/testing/embeddings.d.ts +0 -1
  877. package/dist/utils/testing/embeddings.d.ts.map +1 -1
  878. package/dist/utils/testing/embeddings.js +2 -4
  879. package/dist/utils/testing/embeddings.js.map +1 -1
  880. package/dist/utils/testing/index.cjs +3 -3
  881. package/dist/utils/testing/index.js +2 -3
  882. package/dist/utils/testing/llms.cjs.map +1 -1
  883. package/dist/utils/testing/llms.d.cts.map +1 -1
  884. package/dist/utils/testing/llms.d.ts.map +1 -1
  885. package/dist/utils/testing/llms.js.map +1 -1
  886. package/dist/utils/testing/message_history.cjs +1 -1
  887. package/dist/utils/testing/message_history.cjs.map +1 -1
  888. package/dist/utils/testing/message_history.d.cts.map +1 -1
  889. package/dist/utils/testing/message_history.d.ts.map +1 -1
  890. package/dist/utils/testing/message_history.js +1 -1
  891. package/dist/utils/testing/message_history.js.map +1 -1
  892. package/dist/utils/testing/output_parsers.cjs.map +1 -1
  893. package/dist/utils/testing/output_parsers.d.cts +0 -1
  894. package/dist/utils/testing/output_parsers.d.cts.map +1 -1
  895. package/dist/utils/testing/output_parsers.d.ts +0 -1
  896. package/dist/utils/testing/output_parsers.d.ts.map +1 -1
  897. package/dist/utils/testing/output_parsers.js.map +1 -1
  898. package/dist/utils/testing/retrievers.cjs +1 -1
  899. package/dist/utils/testing/retrievers.cjs.map +1 -1
  900. package/dist/utils/testing/retrievers.d.cts.map +1 -1
  901. package/dist/utils/testing/retrievers.d.ts.map +1 -1
  902. package/dist/utils/testing/retrievers.js +1 -1
  903. package/dist/utils/testing/retrievers.js.map +1 -1
  904. package/dist/utils/testing/runnables.cjs.map +1 -1
  905. package/dist/utils/testing/runnables.d.cts.map +1 -1
  906. package/dist/utils/testing/runnables.d.ts.map +1 -1
  907. package/dist/utils/testing/runnables.js.map +1 -1
  908. package/dist/utils/testing/tools.cjs.map +1 -1
  909. package/dist/utils/testing/tools.d.cts.map +1 -1
  910. package/dist/utils/testing/tools.d.ts.map +1 -1
  911. package/dist/utils/testing/tools.js.map +1 -1
  912. package/dist/utils/testing/tracers.cjs.map +1 -1
  913. package/dist/utils/testing/tracers.d.cts.map +1 -1
  914. package/dist/utils/testing/tracers.d.ts.map +1 -1
  915. package/dist/utils/testing/tracers.js.map +1 -1
  916. package/dist/utils/testing/vectorstores.cjs +7 -11
  917. package/dist/utils/testing/vectorstores.cjs.map +1 -1
  918. package/dist/utils/testing/vectorstores.d.cts +0 -1
  919. package/dist/utils/testing/vectorstores.d.cts.map +1 -1
  920. package/dist/utils/testing/vectorstores.d.ts +0 -1
  921. package/dist/utils/testing/vectorstores.d.ts.map +1 -1
  922. package/dist/utils/testing/vectorstores.js +7 -11
  923. package/dist/utils/testing/vectorstores.js.map +1 -1
  924. package/dist/utils/tiktoken.cjs +4 -4
  925. package/dist/utils/tiktoken.cjs.map +1 -1
  926. package/dist/utils/tiktoken.d.cts.map +1 -1
  927. package/dist/utils/tiktoken.d.ts.map +1 -1
  928. package/dist/utils/tiktoken.js +2 -3
  929. package/dist/utils/tiktoken.js.map +1 -1
  930. package/dist/utils/types/index.cjs +3 -3
  931. package/dist/utils/types/index.d.cts +0 -1
  932. package/dist/utils/types/index.d.cts.map +1 -1
  933. package/dist/utils/types/index.d.ts +0 -1
  934. package/dist/utils/types/index.d.ts.map +1 -1
  935. package/dist/utils/types/index.js +2 -3
  936. package/dist/utils/types/zod.cjs +17 -32
  937. package/dist/utils/types/zod.cjs.map +1 -1
  938. package/dist/utils/types/zod.d.cts +1 -1
  939. package/dist/utils/types/zod.d.cts.map +1 -1
  940. package/dist/utils/types/zod.d.ts +1 -1
  941. package/dist/utils/types/zod.d.ts.map +1 -1
  942. package/dist/utils/types/zod.js +15 -30
  943. package/dist/utils/types/zod.js.map +1 -1
  944. package/dist/utils/zod-to-json-schema/Options.cjs.map +1 -1
  945. package/dist/utils/zod-to-json-schema/Options.js.map +1 -1
  946. package/dist/utils/zod-to-json-schema/Refs.cjs.map +1 -1
  947. package/dist/utils/zod-to-json-schema/Refs.js.map +1 -1
  948. package/dist/utils/zod-to-json-schema/errorMessages.cjs.map +1 -1
  949. package/dist/utils/zod-to-json-schema/errorMessages.d.cts.map +1 -1
  950. package/dist/utils/zod-to-json-schema/errorMessages.d.ts.map +1 -1
  951. package/dist/utils/zod-to-json-schema/errorMessages.js.map +1 -1
  952. package/dist/utils/zod-to-json-schema/getRelativePath.cjs.map +1 -1
  953. package/dist/utils/zod-to-json-schema/getRelativePath.js.map +1 -1
  954. package/dist/utils/zod-to-json-schema/index.js +2 -0
  955. package/dist/utils/zod-to-json-schema/parseDef.cjs.map +1 -1
  956. package/dist/utils/zod-to-json-schema/parseDef.js.map +1 -1
  957. package/dist/utils/zod-to-json-schema/parseTypes.d.cts.map +1 -1
  958. package/dist/utils/zod-to-json-schema/parseTypes.d.ts.map +1 -1
  959. package/dist/utils/zod-to-json-schema/parsers/any.cjs.map +1 -1
  960. package/dist/utils/zod-to-json-schema/parsers/any.d.cts.map +1 -1
  961. package/dist/utils/zod-to-json-schema/parsers/any.d.ts.map +1 -1
  962. package/dist/utils/zod-to-json-schema/parsers/any.js.map +1 -1
  963. package/dist/utils/zod-to-json-schema/parsers/array.cjs +2 -2
  964. package/dist/utils/zod-to-json-schema/parsers/array.cjs.map +1 -1
  965. package/dist/utils/zod-to-json-schema/parsers/array.d.cts.map +1 -1
  966. package/dist/utils/zod-to-json-schema/parsers/array.d.ts.map +1 -1
  967. package/dist/utils/zod-to-json-schema/parsers/array.js.map +1 -1
  968. package/dist/utils/zod-to-json-schema/parsers/bigint.cjs.map +1 -1
  969. package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts.map +1 -1
  970. package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
  971. package/dist/utils/zod-to-json-schema/parsers/bigint.js.map +1 -1
  972. package/dist/utils/zod-to-json-schema/parsers/boolean.cjs.map +1 -1
  973. package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts.map +1 -1
  974. package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts.map +1 -1
  975. package/dist/utils/zod-to-json-schema/parsers/boolean.js.map +1 -1
  976. package/dist/utils/zod-to-json-schema/parsers/branded.cjs.map +1 -1
  977. package/dist/utils/zod-to-json-schema/parsers/branded.js.map +1 -1
  978. package/dist/utils/zod-to-json-schema/parsers/catch.cjs.map +1 -1
  979. package/dist/utils/zod-to-json-schema/parsers/catch.js.map +1 -1
  980. package/dist/utils/zod-to-json-schema/parsers/date.cjs.map +1 -1
  981. package/dist/utils/zod-to-json-schema/parsers/date.d.cts +0 -1
  982. package/dist/utils/zod-to-json-schema/parsers/date.d.cts.map +1 -1
  983. package/dist/utils/zod-to-json-schema/parsers/date.d.ts.map +1 -1
  984. package/dist/utils/zod-to-json-schema/parsers/date.js.map +1 -1
  985. package/dist/utils/zod-to-json-schema/parsers/default.cjs.map +1 -1
  986. package/dist/utils/zod-to-json-schema/parsers/default.js.map +1 -1
  987. package/dist/utils/zod-to-json-schema/parsers/effects.cjs.map +1 -1
  988. package/dist/utils/zod-to-json-schema/parsers/effects.js.map +1 -1
  989. package/dist/utils/zod-to-json-schema/parsers/enum.cjs.map +1 -1
  990. package/dist/utils/zod-to-json-schema/parsers/enum.d.cts.map +1 -1
  991. package/dist/utils/zod-to-json-schema/parsers/enum.d.ts.map +1 -1
  992. package/dist/utils/zod-to-json-schema/parsers/enum.js.map +1 -1
  993. package/dist/utils/zod-to-json-schema/parsers/intersection.cjs +1 -1
  994. package/dist/utils/zod-to-json-schema/parsers/intersection.cjs.map +1 -1
  995. package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts.map +1 -1
  996. package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts.map +1 -1
  997. package/dist/utils/zod-to-json-schema/parsers/intersection.js +1 -1
  998. package/dist/utils/zod-to-json-schema/parsers/intersection.js.map +1 -1
  999. package/dist/utils/zod-to-json-schema/parsers/literal.cjs.map +1 -1
  1000. package/dist/utils/zod-to-json-schema/parsers/literal.d.cts +0 -1
  1001. package/dist/utils/zod-to-json-schema/parsers/literal.d.cts.map +1 -1
  1002. package/dist/utils/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
  1003. package/dist/utils/zod-to-json-schema/parsers/literal.js.map +1 -1
  1004. package/dist/utils/zod-to-json-schema/parsers/map.cjs +17 -19
  1005. package/dist/utils/zod-to-json-schema/parsers/map.cjs.map +1 -1
  1006. package/dist/utils/zod-to-json-schema/parsers/map.d.cts +0 -1
  1007. package/dist/utils/zod-to-json-schema/parsers/map.d.cts.map +1 -1
  1008. package/dist/utils/zod-to-json-schema/parsers/map.d.ts.map +1 -1
  1009. package/dist/utils/zod-to-json-schema/parsers/map.js +17 -19
  1010. package/dist/utils/zod-to-json-schema/parsers/map.js.map +1 -1
  1011. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs +2 -3
  1012. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs.map +1 -1
  1013. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts.map +1 -1
  1014. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts.map +1 -1
  1015. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js +2 -3
  1016. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js.map +1 -1
  1017. package/dist/utils/zod-to-json-schema/parsers/never.cjs.map +1 -1
  1018. package/dist/utils/zod-to-json-schema/parsers/never.d.cts.map +1 -1
  1019. package/dist/utils/zod-to-json-schema/parsers/never.d.ts.map +1 -1
  1020. package/dist/utils/zod-to-json-schema/parsers/never.js.map +1 -1
  1021. package/dist/utils/zod-to-json-schema/parsers/null.cjs.map +1 -1
  1022. package/dist/utils/zod-to-json-schema/parsers/null.d.cts.map +1 -1
  1023. package/dist/utils/zod-to-json-schema/parsers/null.d.ts.map +1 -1
  1024. package/dist/utils/zod-to-json-schema/parsers/null.js.map +1 -1
  1025. package/dist/utils/zod-to-json-schema/parsers/nullable.cjs +5 -5
  1026. package/dist/utils/zod-to-json-schema/parsers/nullable.cjs.map +1 -1
  1027. package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts.map +1 -1
  1028. package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
  1029. package/dist/utils/zod-to-json-schema/parsers/nullable.js +5 -5
  1030. package/dist/utils/zod-to-json-schema/parsers/nullable.js.map +1 -1
  1031. package/dist/utils/zod-to-json-schema/parsers/number.cjs.map +1 -1
  1032. package/dist/utils/zod-to-json-schema/parsers/number.d.cts.map +1 -1
  1033. package/dist/utils/zod-to-json-schema/parsers/number.d.ts.map +1 -1
  1034. package/dist/utils/zod-to-json-schema/parsers/number.js.map +1 -1
  1035. package/dist/utils/zod-to-json-schema/parsers/object.cjs.map +1 -1
  1036. package/dist/utils/zod-to-json-schema/parsers/object.d.cts.map +1 -1
  1037. package/dist/utils/zod-to-json-schema/parsers/object.d.ts.map +1 -1
  1038. package/dist/utils/zod-to-json-schema/parsers/object.js.map +1 -1
  1039. package/dist/utils/zod-to-json-schema/parsers/optional.cjs.map +1 -1
  1040. package/dist/utils/zod-to-json-schema/parsers/optional.js.map +1 -1
  1041. package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs +2 -3
  1042. package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs.map +1 -1
  1043. package/dist/utils/zod-to-json-schema/parsers/pipeline.js +2 -3
  1044. package/dist/utils/zod-to-json-schema/parsers/pipeline.js.map +1 -1
  1045. package/dist/utils/zod-to-json-schema/parsers/promise.cjs.map +1 -1
  1046. package/dist/utils/zod-to-json-schema/parsers/promise.js.map +1 -1
  1047. package/dist/utils/zod-to-json-schema/parsers/readonly.cjs.map +1 -1
  1048. package/dist/utils/zod-to-json-schema/parsers/readonly.js.map +1 -1
  1049. package/dist/utils/zod-to-json-schema/parsers/record.cjs +4 -4
  1050. package/dist/utils/zod-to-json-schema/parsers/record.cjs.map +1 -1
  1051. package/dist/utils/zod-to-json-schema/parsers/record.d.cts.map +1 -1
  1052. package/dist/utils/zod-to-json-schema/parsers/record.d.ts.map +1 -1
  1053. package/dist/utils/zod-to-json-schema/parsers/record.js +2 -2
  1054. package/dist/utils/zod-to-json-schema/parsers/record.js.map +1 -1
  1055. package/dist/utils/zod-to-json-schema/parsers/set.cjs +4 -5
  1056. package/dist/utils/zod-to-json-schema/parsers/set.cjs.map +1 -1
  1057. package/dist/utils/zod-to-json-schema/parsers/set.d.cts.map +1 -1
  1058. package/dist/utils/zod-to-json-schema/parsers/set.d.ts.map +1 -1
  1059. package/dist/utils/zod-to-json-schema/parsers/set.js +4 -5
  1060. package/dist/utils/zod-to-json-schema/parsers/set.js.map +1 -1
  1061. package/dist/utils/zod-to-json-schema/parsers/string.cjs.map +1 -1
  1062. package/dist/utils/zod-to-json-schema/parsers/string.d.cts +0 -1
  1063. package/dist/utils/zod-to-json-schema/parsers/string.d.cts.map +1 -1
  1064. package/dist/utils/zod-to-json-schema/parsers/string.d.ts +0 -1
  1065. package/dist/utils/zod-to-json-schema/parsers/string.d.ts.map +1 -1
  1066. package/dist/utils/zod-to-json-schema/parsers/string.js.map +1 -1
  1067. package/dist/utils/zod-to-json-schema/parsers/tuple.cjs.map +1 -1
  1068. package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts.map +1 -1
  1069. package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts.map +1 -1
  1070. package/dist/utils/zod-to-json-schema/parsers/tuple.js.map +1 -1
  1071. package/dist/utils/zod-to-json-schema/parsers/undefined.cjs.map +1 -1
  1072. package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts.map +1 -1
  1073. package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts.map +1 -1
  1074. package/dist/utils/zod-to-json-schema/parsers/undefined.js.map +1 -1
  1075. package/dist/utils/zod-to-json-schema/parsers/union.cjs +3 -6
  1076. package/dist/utils/zod-to-json-schema/parsers/union.cjs.map +1 -1
  1077. package/dist/utils/zod-to-json-schema/parsers/union.d.cts.map +1 -1
  1078. package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -1
  1079. package/dist/utils/zod-to-json-schema/parsers/union.js +3 -6
  1080. package/dist/utils/zod-to-json-schema/parsers/union.js.map +1 -1
  1081. package/dist/utils/zod-to-json-schema/parsers/unknown.cjs.map +1 -1
  1082. package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts.map +1 -1
  1083. package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts.map +1 -1
  1084. package/dist/utils/zod-to-json-schema/parsers/unknown.js.map +1 -1
  1085. package/dist/utils/zod-to-json-schema/selectParser.cjs +3 -3
  1086. package/dist/utils/zod-to-json-schema/selectParser.cjs.map +1 -1
  1087. package/dist/utils/zod-to-json-schema/selectParser.js +1 -1
  1088. package/dist/utils/zod-to-json-schema/selectParser.js.map +1 -1
  1089. package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs +3 -3
  1090. package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs.map +1 -1
  1091. package/dist/utils/zod-to-json-schema/zodToJsonSchema.js +3 -3
  1092. package/dist/utils/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
  1093. package/dist/vectorstores.cjs +4 -5
  1094. package/dist/vectorstores.cjs.map +1 -1
  1095. package/dist/vectorstores.d.cts +0 -1
  1096. package/dist/vectorstores.d.cts.map +1 -1
  1097. package/dist/vectorstores.d.ts +0 -1
  1098. package/dist/vectorstores.d.ts.map +1 -1
  1099. package/dist/vectorstores.js +3 -5
  1100. package/dist/vectorstores.js.map +1 -1
  1101. package/package.json +2 -2
  1102. package/dist/_virtual/rolldown_runtime.cjs +0 -32
  1103. package/dist/_virtual/rolldown_runtime.js +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"openai.cjs","names":["message: AIMessage","blocks: Array<ContentBlock.Standard>","blocks: Array<ContentBlock>","convertedBlocks: Array<ContentBlock.Standard>","isOpenAIDataBlock","convertToV1FromOpenAIDataBlock","annotation: ContentBlock","_isObject","_isArray","_isString","_isContentBlock","webSearchArgs: Record<string, unknown>","output: Record<string, unknown>","iife","message: AIMessageChunk","ChatOpenAITranslator: StandardContentBlockTranslator"],"sources":["../../../src/messages/block_translators/openai.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\nimport type { AIMessageChunk, AIMessage } from \"../ai.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { convertToV1FromOpenAIDataBlock, isOpenAIDataBlock } from \"./data.js\";\nimport {\n _isArray,\n _isContentBlock,\n _isObject,\n _isString,\n iife,\n} from \"./utils.js\";\n\n/**\n * Converts a ChatOpenAICompletions message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from ChatOpenAICompletions API format\n * and converts it to the standardized v1 content block format. It handles both\n * string content and structured content blocks, as well as tool calls.\n *\n * @param message - The AI message containing ChatOpenAICompletions formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage(\"Hello world\");\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns: [{ type: \"text\", text: \"Hello world\" }]\n * ```\n *\n * @example\n * ```typescript\n * const message = new AIMessage([\n * { type: \"text\", text: \"Hello\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ]);\n * message.tool_calls = [\n * { id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" },\n * // { type: \"tool_call\", id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletions(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts a ChatOpenAICompletions message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk from OpenAI's chat completions API and converts\n * it to the standardized v1 content block format. It handles both string and array content,\n * as well as tool calls that may be present in the chunk.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage(\"Hello\");\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns: [{ type: \"text\", text: \"Hello\" }]\n * ```\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage([\n * { type: \"text\", text: \"Processing...\" }\n * ]);\n * chunk.tool_calls = [\n * { id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Processing...\" },\n * // { type: \"tool_call\", id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsChunk(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n\n // TODO: parse chunk position information\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts an array of ChatOpenAICompletions content blocks to v1 standard content blocks.\n *\n * This function processes content blocks from OpenAI's Chat Completions API format\n * and converts them to the standardized v1 content block format. It handles both\n * OpenAI-specific data blocks (which require conversion) and standard blocks\n * (which are passed through with type assertion).\n *\n * @param blocks - Array of content blocks in ChatOpenAICompletions format\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const openaiBlocks = [\n * { type: \"text\", text: \"Hello world\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsInput(openaiBlocks);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello world\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsInput(\n blocks: Array<ContentBlock>\n): Array<ContentBlock.Standard> {\n const convertedBlocks: Array<ContentBlock.Standard> = [];\n for (const block of blocks) {\n if (isOpenAIDataBlock(block)) {\n convertedBlocks.push(convertToV1FromOpenAIDataBlock(block));\n } else {\n convertedBlocks.push(block as ContentBlock.Standard);\n }\n }\n return convertedBlocks;\n}\n\nfunction convertResponsesAnnotation(\n annotation: ContentBlock\n): ContentBlock | ContentBlock.Citation {\n if (annotation.type === \"url_citation\") {\n const { url, title, start_index, end_index } = annotation;\n return {\n type: \"citation\",\n url,\n title,\n startIndex: start_index,\n endIndex: end_index,\n };\n }\n if (annotation.type === \"file_citation\") {\n const { file_id, filename, index } = annotation;\n return {\n type: \"citation\",\n title: filename,\n startIndex: index,\n endIndex: index,\n fileId: file_id,\n };\n }\n return annotation;\n}\n\n/**\n * Converts a ChatOpenAIResponses message to an array of v1 standard content blocks.\n *\n * This function processes an AI message containing OpenAI Responses-specific content blocks\n * and converts them to the standardized v1 content block format. It handles reasoning summaries,\n * text content with annotations, tool calls, and various tool outputs including code interpreter,\n * web search, file search, computer calls, and MCP-related blocks.\n *\n * @param message - The AI message containing OpenAI Responses-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage({\n * content: [{ type: \"text\", text: \"Hello world\", annotations: [] }],\n * tool_calls: [{ id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } }],\n * additional_kwargs: {\n * reasoning: { summary: [{ text: \"Let me calculate this...\" }] },\n * tool_outputs: [\n * {\n * type: \"code_interpreter_call\",\n * code: \"print('hello')\",\n * outputs: [{ type: \"logs\", logs: \"hello\" }]\n * }\n * ]\n * }\n * });\n *\n * const standardBlocks = convertToV1FromResponses(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me calculate this...\" },\n * // { type: \"text\", text: \"Hello world\", annotations: [] },\n * // { type: \"tool_call\", id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } },\n * // { type: \"code_interpreter_call\", code: \"print('hello')\" },\n * // { type: \"code_interpreter_result\", output: [{ type: \"code_interpreter_output\", returnCode: 0, stdout: \"hello\" }] }\n * // ]\n * ```\n */\nexport function convertToV1FromResponses(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n if (\n _isObject(message.additional_kwargs?.reasoning) &&\n _isArray(message.additional_kwargs.reasoning.summary)\n ) {\n const summary =\n message.additional_kwargs.reasoning.summary.reduce<string>(\n (acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n },\n \"\"\n );\n yield {\n type: \"reasoning\",\n reasoning: summary,\n };\n }\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n for (const block of content) {\n if (_isContentBlock(block, \"text\")) {\n const { text, annotations, ...rest } = block;\n if (Array.isArray(annotations)) {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n annotations: annotations.map(convertResponsesAnnotation),\n };\n } else {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n };\n }\n }\n }\n for (const toolCall of message.tool_calls ?? []) {\n yield {\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n };\n }\n if (\n _isObject(message.additional_kwargs) &&\n _isArray(message.additional_kwargs.tool_outputs)\n ) {\n for (const toolOutput of message.additional_kwargs.tool_outputs) {\n if (_isContentBlock(toolOutput, \"web_search_call\")) {\n /**\n * Build args from available action data.\n * The ResponseFunctionWebSearch base type only has id, status, type.\n * The action field (with query, sources, etc.) may be present at\n * runtime when the `include` parameter includes \"web_search_call.action.sources\".\n */\n const webSearchArgs: Record<string, unknown> = {};\n if (\n _isObject(toolOutput.action) &&\n _isString(toolOutput.action.query)\n ) {\n webSearchArgs.query = toolOutput.action.query;\n }\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"web_search\",\n args: webSearchArgs,\n };\n // Emit a server_tool_call_result when the search has completed or failed\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n const output: Record<string, unknown> = {};\n if (_isObject(toolOutput.action)) {\n output.action = toolOutput.action;\n }\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output,\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"file_search_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"file_search\",\n args: {\n queries: _isArray(toolOutput.queries) ? toolOutput.queries : [],\n },\n };\n // Emit a server_tool_call_result when results are available\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output: _isArray(toolOutput.results)\n ? { results: toolOutput.results }\n : {},\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"computer_call\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"code_interpreter_call\")) {\n if (_isString(toolOutput.code)) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"code_interpreter\",\n args: { code: toolOutput.code },\n };\n }\n if (_isArray(toolOutput.outputs)) {\n const returnCode = iife(() => {\n if (toolOutput.status === \"in_progress\") return undefined;\n if (toolOutput.status === \"completed\") return 0;\n if (toolOutput.status === \"incomplete\") return 127;\n if (toolOutput.status === \"interpreting\") return undefined;\n if (toolOutput.status === \"failed\") return 1;\n return undefined;\n });\n for (const output of toolOutput.outputs) {\n if (_isContentBlock(output, \"logs\")) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: toolOutput.id ?? \"\",\n status: \"success\",\n output: {\n type: \"code_interpreter_output\",\n returnCode: returnCode ?? 0,\n stderr: [0, undefined].includes(returnCode)\n ? undefined\n : String(output.logs),\n stdout: [0, undefined].includes(returnCode)\n ? String(output.logs)\n : undefined,\n },\n };\n continue;\n }\n }\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_call\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_list_tools\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_list_tools\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_approval_request\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"image_generation_call\")) {\n // Convert image_generation_call to proper image content block if result is available\n if (_isString(toolOutput.result)) {\n yield {\n type: \"image\",\n mimeType: \"image/png\",\n data: toolOutput.result,\n id: _isString(toolOutput.id) ? toolOutput.id : undefined,\n metadata: {\n status: _isString(toolOutput.status)\n ? toolOutput.status\n : undefined,\n },\n };\n }\n // Also yield as non_standard for backwards compatibility\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n }\n if (_isObject(toolOutput)) {\n yield { type: \"non_standard\", value: toolOutput };\n }\n }\n }\n }\n return Array.from(iterateContent());\n}\n\n/**\n * Converts a ChatOpenAIResponses message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk containing OpenAI-specific content blocks\n * and converts them to the standardized v1 content block format. It handles both the\n * regular message content and tool call chunks that are specific to streaming responses.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const messageChunk = new AIMessageChunk({\n * content: [{ type: \"text\", text: \"Hello\" }],\n * tool_call_chunks: [\n * { id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * ]\n * });\n *\n * const standardBlocks = convertToV1FromResponsesChunk(messageChunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"tool_call_chunk\", id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * // ]\n * ```\n */\nexport function convertToV1FromResponsesChunk(\n message: AIMessageChunk\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n yield* convertToV1FromResponses(message);\n for (const toolCallChunk of message.tool_call_chunks ?? []) {\n yield {\n type: \"tool_call_chunk\",\n id: toolCallChunk.id,\n name: toolCallChunk.name,\n args: toolCallChunk.args,\n };\n }\n }\n return Array.from(iterateContent());\n}\n\nexport const ChatOpenAITranslator: StandardContentBlockTranslator = {\n translateContent: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletions(message);\n }\n return convertToV1FromResponses(message);\n },\n translateContentChunk: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletionsChunk(message);\n }\n return convertToV1FromResponsesChunk(message);\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"openai.cjs","names":["isOpenAIDataBlock","convertToV1FromOpenAIDataBlock","_isObject","_isArray","_isString","_isContentBlock","iife"],"sources":["../../../src/messages/block_translators/openai.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\nimport type { AIMessageChunk, AIMessage } from \"../ai.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { convertToV1FromOpenAIDataBlock, isOpenAIDataBlock } from \"./data.js\";\nimport {\n _isArray,\n _isContentBlock,\n _isObject,\n _isString,\n iife,\n} from \"./utils.js\";\n\n/**\n * Converts a ChatOpenAICompletions message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from ChatOpenAICompletions API format\n * and converts it to the standardized v1 content block format. It handles both\n * string content and structured content blocks, as well as tool calls.\n *\n * @param message - The AI message containing ChatOpenAICompletions formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage(\"Hello world\");\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns: [{ type: \"text\", text: \"Hello world\" }]\n * ```\n *\n * @example\n * ```typescript\n * const message = new AIMessage([\n * { type: \"text\", text: \"Hello\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ]);\n * message.tool_calls = [\n * { id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" },\n * // { type: \"tool_call\", id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletions(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts a ChatOpenAICompletions message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk from OpenAI's chat completions API and converts\n * it to the standardized v1 content block format. It handles both string and array content,\n * as well as tool calls that may be present in the chunk.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage(\"Hello\");\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns: [{ type: \"text\", text: \"Hello\" }]\n * ```\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage([\n * { type: \"text\", text: \"Processing...\" }\n * ]);\n * chunk.tool_calls = [\n * { id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Processing...\" },\n * // { type: \"tool_call\", id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsChunk(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n\n // TODO: parse chunk position information\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts an array of ChatOpenAICompletions content blocks to v1 standard content blocks.\n *\n * This function processes content blocks from OpenAI's Chat Completions API format\n * and converts them to the standardized v1 content block format. It handles both\n * OpenAI-specific data blocks (which require conversion) and standard blocks\n * (which are passed through with type assertion).\n *\n * @param blocks - Array of content blocks in ChatOpenAICompletions format\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const openaiBlocks = [\n * { type: \"text\", text: \"Hello world\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsInput(openaiBlocks);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello world\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsInput(\n blocks: Array<ContentBlock>\n): Array<ContentBlock.Standard> {\n const convertedBlocks: Array<ContentBlock.Standard> = [];\n for (const block of blocks) {\n if (isOpenAIDataBlock(block)) {\n convertedBlocks.push(convertToV1FromOpenAIDataBlock(block));\n } else {\n convertedBlocks.push(block as ContentBlock.Standard);\n }\n }\n return convertedBlocks;\n}\n\nfunction convertResponsesAnnotation(\n annotation: ContentBlock\n): ContentBlock | ContentBlock.Citation {\n if (annotation.type === \"url_citation\") {\n const { url, title, start_index, end_index } = annotation;\n return {\n type: \"citation\",\n url,\n title,\n startIndex: start_index,\n endIndex: end_index,\n };\n }\n if (annotation.type === \"file_citation\") {\n const { file_id, filename, index } = annotation;\n return {\n type: \"citation\",\n title: filename,\n startIndex: index,\n endIndex: index,\n fileId: file_id,\n };\n }\n return annotation;\n}\n\n/**\n * Converts a ChatOpenAIResponses message to an array of v1 standard content blocks.\n *\n * This function processes an AI message containing OpenAI Responses-specific content blocks\n * and converts them to the standardized v1 content block format. It handles reasoning summaries,\n * text content with annotations, tool calls, and various tool outputs including code interpreter,\n * web search, file search, computer calls, and MCP-related blocks.\n *\n * @param message - The AI message containing OpenAI Responses-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage({\n * content: [{ type: \"text\", text: \"Hello world\", annotations: [] }],\n * tool_calls: [{ id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } }],\n * additional_kwargs: {\n * reasoning: { summary: [{ text: \"Let me calculate this...\" }] },\n * tool_outputs: [\n * {\n * type: \"code_interpreter_call\",\n * code: \"print('hello')\",\n * outputs: [{ type: \"logs\", logs: \"hello\" }]\n * }\n * ]\n * }\n * });\n *\n * const standardBlocks = convertToV1FromResponses(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me calculate this...\" },\n * // { type: \"text\", text: \"Hello world\", annotations: [] },\n * // { type: \"tool_call\", id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } },\n * // { type: \"code_interpreter_call\", code: \"print('hello')\" },\n * // { type: \"code_interpreter_result\", output: [{ type: \"code_interpreter_output\", returnCode: 0, stdout: \"hello\" }] }\n * // ]\n * ```\n */\nexport function convertToV1FromResponses(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n if (\n _isObject(message.additional_kwargs?.reasoning) &&\n _isArray(message.additional_kwargs.reasoning.summary)\n ) {\n const summary =\n message.additional_kwargs.reasoning.summary.reduce<string>(\n (acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n },\n \"\"\n );\n yield {\n type: \"reasoning\",\n reasoning: summary,\n };\n }\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n for (const block of content) {\n if (_isContentBlock(block, \"text\")) {\n const { text, annotations, ...rest } = block;\n if (Array.isArray(annotations)) {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n annotations: annotations.map(convertResponsesAnnotation),\n };\n } else {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n };\n }\n }\n }\n for (const toolCall of message.tool_calls ?? []) {\n yield {\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n };\n }\n if (\n _isObject(message.additional_kwargs) &&\n _isArray(message.additional_kwargs.tool_outputs)\n ) {\n for (const toolOutput of message.additional_kwargs.tool_outputs) {\n if (_isContentBlock(toolOutput, \"web_search_call\")) {\n /**\n * Build args from available action data.\n * The ResponseFunctionWebSearch base type only has id, status, type.\n * The action field (with query, sources, etc.) may be present at\n * runtime when the `include` parameter includes \"web_search_call.action.sources\".\n */\n const webSearchArgs: Record<string, unknown> = {};\n if (\n _isObject(toolOutput.action) &&\n _isString(toolOutput.action.query)\n ) {\n webSearchArgs.query = toolOutput.action.query;\n }\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"web_search\",\n args: webSearchArgs,\n };\n // Emit a server_tool_call_result when the search has completed or failed\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n const output: Record<string, unknown> = {};\n if (_isObject(toolOutput.action)) {\n output.action = toolOutput.action;\n }\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output,\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"file_search_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"file_search\",\n args: {\n queries: _isArray(toolOutput.queries) ? toolOutput.queries : [],\n },\n };\n // Emit a server_tool_call_result when results are available\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output: _isArray(toolOutput.results)\n ? { results: toolOutput.results }\n : {},\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"computer_call\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"code_interpreter_call\")) {\n if (_isString(toolOutput.code)) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"code_interpreter\",\n args: { code: toolOutput.code },\n };\n }\n if (_isArray(toolOutput.outputs)) {\n const returnCode = iife(() => {\n if (toolOutput.status === \"in_progress\") return undefined;\n if (toolOutput.status === \"completed\") return 0;\n if (toolOutput.status === \"incomplete\") return 127;\n if (toolOutput.status === \"interpreting\") return undefined;\n if (toolOutput.status === \"failed\") return 1;\n return undefined;\n });\n for (const output of toolOutput.outputs) {\n if (_isContentBlock(output, \"logs\")) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: toolOutput.id ?? \"\",\n status: \"success\",\n output: {\n type: \"code_interpreter_output\",\n returnCode: returnCode ?? 0,\n stderr: [0, undefined].includes(returnCode)\n ? undefined\n : String(output.logs),\n stdout: [0, undefined].includes(returnCode)\n ? String(output.logs)\n : undefined,\n },\n };\n continue;\n }\n }\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_call\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_list_tools\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_list_tools\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_approval_request\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"image_generation_call\")) {\n // Convert image_generation_call to proper image content block if result is available\n if (_isString(toolOutput.result)) {\n yield {\n type: \"image\",\n mimeType: \"image/png\",\n data: toolOutput.result,\n id: _isString(toolOutput.id) ? toolOutput.id : undefined,\n metadata: {\n status: _isString(toolOutput.status)\n ? toolOutput.status\n : undefined,\n },\n };\n }\n // Also yield as non_standard for backwards compatibility\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n }\n if (_isObject(toolOutput)) {\n yield { type: \"non_standard\", value: toolOutput };\n }\n }\n }\n }\n return Array.from(iterateContent());\n}\n\n/**\n * Converts a ChatOpenAIResponses message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk containing OpenAI-specific content blocks\n * and converts them to the standardized v1 content block format. It handles both the\n * regular message content and tool call chunks that are specific to streaming responses.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const messageChunk = new AIMessageChunk({\n * content: [{ type: \"text\", text: \"Hello\" }],\n * tool_call_chunks: [\n * { id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * ]\n * });\n *\n * const standardBlocks = convertToV1FromResponsesChunk(messageChunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"tool_call_chunk\", id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * // ]\n * ```\n */\nexport function convertToV1FromResponsesChunk(\n message: AIMessageChunk\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n yield* convertToV1FromResponses(message);\n for (const toolCallChunk of message.tool_call_chunks ?? []) {\n yield {\n type: \"tool_call_chunk\",\n id: toolCallChunk.id,\n name: toolCallChunk.name,\n args: toolCallChunk.args,\n };\n }\n }\n return Array.from(iterateContent());\n}\n\nexport const ChatOpenAITranslator: StandardContentBlockTranslator = {\n translateContent: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletions(message);\n }\n return convertToV1FromResponses(message);\n },\n translateContentChunk: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletionsChunk(message);\n }\n return convertToV1FromResponsesChunk(message);\n },\n};\n"],"mappings":"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"}
@@ -200,22 +200,19 @@ function convertResponsesAnnotation(annotation) {
200
200
  */
201
201
  function convertToV1FromResponses(message) {
202
202
  function* iterateContent() {
203
- if (_isObject(message.additional_kwargs?.reasoning) && _isArray(message.additional_kwargs.reasoning.summary)) {
204
- const summary = message.additional_kwargs.reasoning.summary.reduce((acc, item) => {
203
+ if (_isObject(message.additional_kwargs?.reasoning) && _isArray(message.additional_kwargs.reasoning.summary)) yield {
204
+ type: "reasoning",
205
+ reasoning: message.additional_kwargs.reasoning.summary.reduce((acc, item) => {
205
206
  if (_isObject(item) && _isString(item.text)) return `${acc}${item.text}`;
206
207
  return acc;
207
- }, "");
208
- yield {
209
- type: "reasoning",
210
- reasoning: summary
211
- };
212
- }
208
+ }, "")
209
+ };
213
210
  const content = typeof message.content === "string" ? [{
214
211
  type: "text",
215
212
  text: message.content
216
213
  }] : message.content;
217
214
  for (const block of content) if (_isContentBlock(block, "text")) {
218
- const { text, annotations,...rest } = block;
215
+ const { text, annotations, ...rest } = block;
219
216
  if (Array.isArray(annotations)) yield {
220
217
  ...rest,
221
218
  type: "text",
@@ -295,7 +292,6 @@ function convertToV1FromResponses(message) {
295
292
  if (toolOutput.status === "incomplete") return 127;
296
293
  if (toolOutput.status === "interpreting") return void 0;
297
294
  if (toolOutput.status === "failed") return 1;
298
- return void 0;
299
295
  });
300
296
  for (const output of toolOutput.outputs) if (_isContentBlock(output, "logs")) {
301
297
  yield {
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","names":["message: AIMessage","blocks: Array<ContentBlock.Standard>","blocks: Array<ContentBlock>","convertedBlocks: Array<ContentBlock.Standard>","annotation: ContentBlock","webSearchArgs: Record<string, unknown>","output: Record<string, unknown>","message: AIMessageChunk","ChatOpenAITranslator: StandardContentBlockTranslator"],"sources":["../../../src/messages/block_translators/openai.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\nimport type { AIMessageChunk, AIMessage } from \"../ai.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { convertToV1FromOpenAIDataBlock, isOpenAIDataBlock } from \"./data.js\";\nimport {\n _isArray,\n _isContentBlock,\n _isObject,\n _isString,\n iife,\n} from \"./utils.js\";\n\n/**\n * Converts a ChatOpenAICompletions message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from ChatOpenAICompletions API format\n * and converts it to the standardized v1 content block format. It handles both\n * string content and structured content blocks, as well as tool calls.\n *\n * @param message - The AI message containing ChatOpenAICompletions formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage(\"Hello world\");\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns: [{ type: \"text\", text: \"Hello world\" }]\n * ```\n *\n * @example\n * ```typescript\n * const message = new AIMessage([\n * { type: \"text\", text: \"Hello\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ]);\n * message.tool_calls = [\n * { id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" },\n * // { type: \"tool_call\", id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletions(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts a ChatOpenAICompletions message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk from OpenAI's chat completions API and converts\n * it to the standardized v1 content block format. It handles both string and array content,\n * as well as tool calls that may be present in the chunk.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage(\"Hello\");\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns: [{ type: \"text\", text: \"Hello\" }]\n * ```\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage([\n * { type: \"text\", text: \"Processing...\" }\n * ]);\n * chunk.tool_calls = [\n * { id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Processing...\" },\n * // { type: \"tool_call\", id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsChunk(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n\n // TODO: parse chunk position information\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts an array of ChatOpenAICompletions content blocks to v1 standard content blocks.\n *\n * This function processes content blocks from OpenAI's Chat Completions API format\n * and converts them to the standardized v1 content block format. It handles both\n * OpenAI-specific data blocks (which require conversion) and standard blocks\n * (which are passed through with type assertion).\n *\n * @param blocks - Array of content blocks in ChatOpenAICompletions format\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const openaiBlocks = [\n * { type: \"text\", text: \"Hello world\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsInput(openaiBlocks);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello world\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsInput(\n blocks: Array<ContentBlock>\n): Array<ContentBlock.Standard> {\n const convertedBlocks: Array<ContentBlock.Standard> = [];\n for (const block of blocks) {\n if (isOpenAIDataBlock(block)) {\n convertedBlocks.push(convertToV1FromOpenAIDataBlock(block));\n } else {\n convertedBlocks.push(block as ContentBlock.Standard);\n }\n }\n return convertedBlocks;\n}\n\nfunction convertResponsesAnnotation(\n annotation: ContentBlock\n): ContentBlock | ContentBlock.Citation {\n if (annotation.type === \"url_citation\") {\n const { url, title, start_index, end_index } = annotation;\n return {\n type: \"citation\",\n url,\n title,\n startIndex: start_index,\n endIndex: end_index,\n };\n }\n if (annotation.type === \"file_citation\") {\n const { file_id, filename, index } = annotation;\n return {\n type: \"citation\",\n title: filename,\n startIndex: index,\n endIndex: index,\n fileId: file_id,\n };\n }\n return annotation;\n}\n\n/**\n * Converts a ChatOpenAIResponses message to an array of v1 standard content blocks.\n *\n * This function processes an AI message containing OpenAI Responses-specific content blocks\n * and converts them to the standardized v1 content block format. It handles reasoning summaries,\n * text content with annotations, tool calls, and various tool outputs including code interpreter,\n * web search, file search, computer calls, and MCP-related blocks.\n *\n * @param message - The AI message containing OpenAI Responses-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage({\n * content: [{ type: \"text\", text: \"Hello world\", annotations: [] }],\n * tool_calls: [{ id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } }],\n * additional_kwargs: {\n * reasoning: { summary: [{ text: \"Let me calculate this...\" }] },\n * tool_outputs: [\n * {\n * type: \"code_interpreter_call\",\n * code: \"print('hello')\",\n * outputs: [{ type: \"logs\", logs: \"hello\" }]\n * }\n * ]\n * }\n * });\n *\n * const standardBlocks = convertToV1FromResponses(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me calculate this...\" },\n * // { type: \"text\", text: \"Hello world\", annotations: [] },\n * // { type: \"tool_call\", id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } },\n * // { type: \"code_interpreter_call\", code: \"print('hello')\" },\n * // { type: \"code_interpreter_result\", output: [{ type: \"code_interpreter_output\", returnCode: 0, stdout: \"hello\" }] }\n * // ]\n * ```\n */\nexport function convertToV1FromResponses(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n if (\n _isObject(message.additional_kwargs?.reasoning) &&\n _isArray(message.additional_kwargs.reasoning.summary)\n ) {\n const summary =\n message.additional_kwargs.reasoning.summary.reduce<string>(\n (acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n },\n \"\"\n );\n yield {\n type: \"reasoning\",\n reasoning: summary,\n };\n }\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n for (const block of content) {\n if (_isContentBlock(block, \"text\")) {\n const { text, annotations, ...rest } = block;\n if (Array.isArray(annotations)) {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n annotations: annotations.map(convertResponsesAnnotation),\n };\n } else {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n };\n }\n }\n }\n for (const toolCall of message.tool_calls ?? []) {\n yield {\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n };\n }\n if (\n _isObject(message.additional_kwargs) &&\n _isArray(message.additional_kwargs.tool_outputs)\n ) {\n for (const toolOutput of message.additional_kwargs.tool_outputs) {\n if (_isContentBlock(toolOutput, \"web_search_call\")) {\n /**\n * Build args from available action data.\n * The ResponseFunctionWebSearch base type only has id, status, type.\n * The action field (with query, sources, etc.) may be present at\n * runtime when the `include` parameter includes \"web_search_call.action.sources\".\n */\n const webSearchArgs: Record<string, unknown> = {};\n if (\n _isObject(toolOutput.action) &&\n _isString(toolOutput.action.query)\n ) {\n webSearchArgs.query = toolOutput.action.query;\n }\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"web_search\",\n args: webSearchArgs,\n };\n // Emit a server_tool_call_result when the search has completed or failed\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n const output: Record<string, unknown> = {};\n if (_isObject(toolOutput.action)) {\n output.action = toolOutput.action;\n }\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output,\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"file_search_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"file_search\",\n args: {\n queries: _isArray(toolOutput.queries) ? toolOutput.queries : [],\n },\n };\n // Emit a server_tool_call_result when results are available\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output: _isArray(toolOutput.results)\n ? { results: toolOutput.results }\n : {},\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"computer_call\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"code_interpreter_call\")) {\n if (_isString(toolOutput.code)) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"code_interpreter\",\n args: { code: toolOutput.code },\n };\n }\n if (_isArray(toolOutput.outputs)) {\n const returnCode = iife(() => {\n if (toolOutput.status === \"in_progress\") return undefined;\n if (toolOutput.status === \"completed\") return 0;\n if (toolOutput.status === \"incomplete\") return 127;\n if (toolOutput.status === \"interpreting\") return undefined;\n if (toolOutput.status === \"failed\") return 1;\n return undefined;\n });\n for (const output of toolOutput.outputs) {\n if (_isContentBlock(output, \"logs\")) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: toolOutput.id ?? \"\",\n status: \"success\",\n output: {\n type: \"code_interpreter_output\",\n returnCode: returnCode ?? 0,\n stderr: [0, undefined].includes(returnCode)\n ? undefined\n : String(output.logs),\n stdout: [0, undefined].includes(returnCode)\n ? String(output.logs)\n : undefined,\n },\n };\n continue;\n }\n }\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_call\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_list_tools\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_list_tools\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_approval_request\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"image_generation_call\")) {\n // Convert image_generation_call to proper image content block if result is available\n if (_isString(toolOutput.result)) {\n yield {\n type: \"image\",\n mimeType: \"image/png\",\n data: toolOutput.result,\n id: _isString(toolOutput.id) ? toolOutput.id : undefined,\n metadata: {\n status: _isString(toolOutput.status)\n ? toolOutput.status\n : undefined,\n },\n };\n }\n // Also yield as non_standard for backwards compatibility\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n }\n if (_isObject(toolOutput)) {\n yield { type: \"non_standard\", value: toolOutput };\n }\n }\n }\n }\n return Array.from(iterateContent());\n}\n\n/**\n * Converts a ChatOpenAIResponses message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk containing OpenAI-specific content blocks\n * and converts them to the standardized v1 content block format. It handles both the\n * regular message content and tool call chunks that are specific to streaming responses.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const messageChunk = new AIMessageChunk({\n * content: [{ type: \"text\", text: \"Hello\" }],\n * tool_call_chunks: [\n * { id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * ]\n * });\n *\n * const standardBlocks = convertToV1FromResponsesChunk(messageChunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"tool_call_chunk\", id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * // ]\n * ```\n */\nexport function convertToV1FromResponsesChunk(\n message: AIMessageChunk\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n yield* convertToV1FromResponses(message);\n for (const toolCallChunk of message.tool_call_chunks ?? []) {\n yield {\n type: \"tool_call_chunk\",\n id: toolCallChunk.id,\n name: toolCallChunk.name,\n args: toolCallChunk.args,\n };\n }\n }\n return Array.from(iterateContent());\n}\n\nexport const ChatOpenAITranslator: StandardContentBlockTranslator = {\n translateContent: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletions(message);\n }\n return convertToV1FromResponses(message);\n },\n translateContentChunk: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletionsChunk(message);\n }\n return convertToV1FromResponsesChunk(message);\n },\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,+BACdA,SAC8B;CAC9B,MAAMC,SAAuC,CAAE;AAC/C,KAAI,OAAO,QAAQ,YAAY,UAE7B;MAAI,QAAQ,QAAQ,SAAS,GAC3B,OAAO,KAAK;GACV,MAAM;GACN,MAAM,QAAQ;EACf,EAAC;CACH,OAED,OAAO,KAAK,GAAG,oCAAoC,QAAQ,QAAQ,CAAC;AAEtE,MAAK,MAAM,YAAY,QAAQ,cAAc,CAAE,GAC7C,OAAO,KAAK;EACV,MAAM;EACN,IAAI,SAAS;EACb,MAAM,SAAS;EACf,MAAM,SAAS;CAChB,EAAC;AAEJ,QAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCD,SAAgB,oCACdD,SAC8B;CAC9B,MAAMC,SAAuC,CAAE;AAC/C,KAAI,OAAO,QAAQ,YAAY,UAE7B;MAAI,QAAQ,QAAQ,SAAS,GAC3B,OAAO,KAAK;GACV,MAAM;GACN,MAAM,QAAQ;EACf,EAAC;CACH,OAED,OAAO,KAAK,GAAG,oCAAoC,QAAQ,QAAQ,CAAC;AAItE,MAAK,MAAM,YAAY,QAAQ,cAAc,CAAE,GAC7C,OAAO,KAAK;EACV,MAAM;EACN,IAAI,SAAS;EACb,MAAM,SAAS;EACf,MAAM,SAAS;CAChB,EAAC;AAEJ,QAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BD,SAAgB,oCACdC,QAC8B;CAC9B,MAAMC,kBAAgD,CAAE;AACxD,MAAK,MAAM,SAAS,OAClB,KAAI,kBAAkB,MAAM,EAC1B,gBAAgB,KAAK,+BAA+B,MAAM,CAAC;MAE3D,gBAAgB,KAAK,MAA+B;AAGxD,QAAO;AACR;AAED,SAAS,2BACPC,YACsC;AACtC,KAAI,WAAW,SAAS,gBAAgB;EACtC,MAAM,EAAE,KAAK,OAAO,aAAa,WAAW,GAAG;AAC/C,SAAO;GACL,MAAM;GACN;GACA;GACA,YAAY;GACZ,UAAU;EACX;CACF;AACD,KAAI,WAAW,SAAS,iBAAiB;EACvC,MAAM,EAAE,SAAS,UAAU,OAAO,GAAG;AACrC,SAAO;GACL,MAAM;GACN,OAAO;GACP,YAAY;GACZ,UAAU;GACV,QAAQ;EACT;CACF;AACD,QAAO;AACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCD,SAAgB,yBACdJ,SAC8B;CAC9B,UAAU,iBAAkD;AAC1D,MACE,UAAU,QAAQ,mBAAmB,UAAU,IAC/C,SAAS,QAAQ,kBAAkB,UAAU,QAAQ,EACrD;GACA,MAAM,UACJ,QAAQ,kBAAkB,UAAU,QAAQ,OAC1C,CAAC,KAAK,SAAS;AACb,QAAI,UAAU,KAAK,IAAI,UAAU,KAAK,KAAK,CACzC,QAAO,GAAG,MAAM,KAAK,MAAM;AAE7B,WAAO;GACR,GACD,GACD;GACH,MAAM;IACJ,MAAM;IACN,WAAW;GACZ;EACF;EACD,MAAM,UACJ,OAAO,QAAQ,YAAY,WACvB,CAAC;GAAE,MAAM;GAAQ,MAAM,QAAQ;EAAS,CAAC,IACzC,QAAQ;AACd,OAAK,MAAM,SAAS,QAClB,KAAI,gBAAgB,OAAO,OAAO,EAAE;GAClC,MAAM,EAAE,MAAM,YAAa,GAAG,MAAM,GAAG;AACvC,OAAI,MAAM,QAAQ,YAAY,EAC5B,MAAM;IACJ,GAAG;IACH,MAAM;IACN,MAAM,OAAO,KAAK;IAClB,aAAa,YAAY,IAAI,2BAA2B;GACzD;QAED,MAAM;IACJ,GAAG;IACH,MAAM;IACN,MAAM,OAAO,KAAK;GACnB;EAEJ;AAEH,OAAK,MAAM,YAAY,QAAQ,cAAc,CAAE,GAC7C,MAAM;GACJ,MAAM;GACN,IAAI,SAAS;GACb,MAAM,SAAS;GACf,MAAM,SAAS;EAChB;AAEH,MACE,UAAU,QAAQ,kBAAkB,IACpC,SAAS,QAAQ,kBAAkB,aAAa,CAEhD,MAAK,MAAM,cAAc,QAAQ,kBAAkB,cAAc;AAC/D,OAAI,gBAAgB,YAAY,kBAAkB,EAAE;;;;;;;IAOlD,MAAMK,gBAAyC,CAAE;AACjD,QACE,UAAU,WAAW,OAAO,IAC5B,UAAU,WAAW,OAAO,MAAM,EAElC,cAAc,QAAQ,WAAW,OAAO;IAE1C,MAAM;KACJ,IAAI,WAAW;KACf,MAAM;KACN,MAAM;KACN,MAAM;IACP;AAED,QACE,WAAW,WAAW,eACtB,WAAW,WAAW,UACtB;KACA,MAAMC,SAAkC,CAAE;AAC1C,SAAI,UAAU,WAAW,OAAO,EAC9B,OAAO,SAAS,WAAW;KAE7B,MAAM;MACJ,MAAM;MACN,YAAY,UAAU,WAAW,GAAG,GAAG,WAAW,KAAK;MACvD,QAAQ,WAAW,WAAW,cAAc,YAAY;MACxD;KACD;IACF;AACD;GACD,WAAU,gBAAgB,YAAY,mBAAmB,EAAE;IAC1D,MAAM;KACJ,IAAI,WAAW;KACf,MAAM;KACN,MAAM;KACN,MAAM,EACJ,SAAS,SAAS,WAAW,QAAQ,GAAG,WAAW,UAAU,CAAE,EAChE;IACF;AAED,QACE,WAAW,WAAW,eACtB,WAAW,WAAW,UAEtB,MAAM;KACJ,MAAM;KACN,YAAY,UAAU,WAAW,GAAG,GAAG,WAAW,KAAK;KACvD,QAAQ,WAAW,WAAW,cAAc,YAAY;KACxD,QAAQ,SAAS,WAAW,QAAQ,GAChC,EAAE,SAAS,WAAW,QAAS,IAC/B,CAAE;IACP;AAEH;GACD,WAAU,gBAAgB,YAAY,gBAAgB,EAAE;IACvD,MAAM;KAAE,MAAM;KAAgB,OAAO;IAAY;AACjD;GACD,WAAU,gBAAgB,YAAY,wBAAwB,EAAE;AAC/D,QAAI,UAAU,WAAW,KAAK,EAC5B,MAAM;KACJ,IAAI,WAAW;KACf,MAAM;KACN,MAAM;KACN,MAAM,EAAE,MAAM,WAAW,KAAM;IAChC;AAEH,QAAI,SAAS,WAAW,QAAQ,EAAE;KAChC,MAAM,aAAa,KAAK,MAAM;AAC5B,UAAI,WAAW,WAAW,cAAe,QAAO;AAChD,UAAI,WAAW,WAAW,YAAa,QAAO;AAC9C,UAAI,WAAW,WAAW,aAAc,QAAO;AAC/C,UAAI,WAAW,WAAW,eAAgB,QAAO;AACjD,UAAI,WAAW,WAAW,SAAU,QAAO;AAC3C,aAAO;KACR,EAAC;AACF,UAAK,MAAM,UAAU,WAAW,QAC9B,KAAI,gBAAgB,QAAQ,OAAO,EAAE;MACnC,MAAM;OACJ,MAAM;OACN,YAAY,WAAW,MAAM;OAC7B,QAAQ;OACR,QAAQ;QACN,MAAM;QACN,YAAY,cAAc;QAC1B,QAAQ,CAAC,GAAG,MAAU,EAAC,SAAS,WAAW,GACvC,SACA,OAAO,OAAO,KAAK;QACvB,QAAQ,CAAC,GAAG,MAAU,EAAC,SAAS,WAAW,GACvC,OAAO,OAAO,KAAK,GACnB;OACL;MACF;AACD;KACD;IAEJ;AACD;GACD,WAAU,gBAAgB,YAAY,WAAW,EAAE;IAClD,MAAM;KACJ,IAAI,WAAW;KACf,MAAM;KACN,MAAM;KACN,MAAM,WAAW;IAClB;AACD;GACD,WAAU,gBAAgB,YAAY,iBAAiB,EAAE;IACxD,MAAM;KACJ,IAAI,WAAW;KACf,MAAM;KACN,MAAM;KACN,MAAM,WAAW;IAClB;AACD;GACD,WAAU,gBAAgB,YAAY,uBAAuB,EAAE;IAC9D,MAAM;KAAE,MAAM;KAAgB,OAAO;IAAY;AACjD;GACD,WAAU,gBAAgB,YAAY,wBAAwB,EAAE;AAE/D,QAAI,UAAU,WAAW,OAAO,EAC9B,MAAM;KACJ,MAAM;KACN,UAAU;KACV,MAAM,WAAW;KACjB,IAAI,UAAU,WAAW,GAAG,GAAG,WAAW,KAAK;KAC/C,UAAU,EACR,QAAQ,UAAU,WAAW,OAAO,GAChC,WAAW,SACX,OACL;IACF;IAGH,MAAM;KAAE,MAAM;KAAgB,OAAO;IAAY;AACjD;GACD;AACD,OAAI,UAAU,WAAW,EACvB,MAAM;IAAE,MAAM;IAAgB,OAAO;GAAY;EAEpD;CAEJ;AACD,QAAO,MAAM,KAAK,gBAAgB,CAAC;AACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BD,SAAgB,8BACdC,SAC8B;CAC9B,UAAU,iBAAkD;EAC1D,OAAO,yBAAyB,QAAQ;AACxC,OAAK,MAAM,iBAAiB,QAAQ,oBAAoB,CAAE,GACxD,MAAM;GACJ,MAAM;GACN,IAAI,cAAc;GAClB,MAAM,cAAc;GACpB,MAAM,cAAc;EACrB;CAEJ;AACD,QAAO,MAAM,KAAK,gBAAgB,CAAC;AACpC;AAED,MAAaC,uBAAuD;CAClE,kBAAkB,CAAC,YAAY;AAC7B,MAAI,OAAO,QAAQ,YAAY,SAC7B,QAAO,+BAA+B,QAAQ;AAEhD,SAAO,yBAAyB,QAAQ;CACzC;CACD,uBAAuB,CAAC,YAAY;AAClC,MAAI,OAAO,QAAQ,YAAY,SAC7B,QAAO,oCAAoC,QAAQ;AAErD,SAAO,8BAA8B,QAAQ;CAC9C;AACF"}
1
+ {"version":3,"file":"openai.js","names":[],"sources":["../../../src/messages/block_translators/openai.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\nimport type { AIMessageChunk, AIMessage } from \"../ai.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { convertToV1FromOpenAIDataBlock, isOpenAIDataBlock } from \"./data.js\";\nimport {\n _isArray,\n _isContentBlock,\n _isObject,\n _isString,\n iife,\n} from \"./utils.js\";\n\n/**\n * Converts a ChatOpenAICompletions message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from ChatOpenAICompletions API format\n * and converts it to the standardized v1 content block format. It handles both\n * string content and structured content blocks, as well as tool calls.\n *\n * @param message - The AI message containing ChatOpenAICompletions formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage(\"Hello world\");\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns: [{ type: \"text\", text: \"Hello world\" }]\n * ```\n *\n * @example\n * ```typescript\n * const message = new AIMessage([\n * { type: \"text\", text: \"Hello\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ]);\n * message.tool_calls = [\n * { id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletions(message);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" },\n * // { type: \"tool_call\", id: \"call_123\", name: \"calculator\", args: { a: 1, b: 2 } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletions(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts a ChatOpenAICompletions message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk from OpenAI's chat completions API and converts\n * it to the standardized v1 content block format. It handles both string and array content,\n * as well as tool calls that may be present in the chunk.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage(\"Hello\");\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns: [{ type: \"text\", text: \"Hello\" }]\n * ```\n *\n * @example\n * ```typescript\n * const chunk = new AIMessage([\n * { type: \"text\", text: \"Processing...\" }\n * ]);\n * chunk.tool_calls = [\n * { id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsChunk(chunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Processing...\" },\n * // { type: \"tool_call\", id: \"call_456\", name: \"search\", args: { query: \"test\" } }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsChunk(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n if (typeof message.content === \"string\") {\n // Only add text block if content is non-empty\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n blocks.push(...convertToV1FromChatCompletionsInput(message.content));\n }\n\n // TODO: parse chunk position information\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n return blocks;\n}\n\n/**\n * Converts an array of ChatOpenAICompletions content blocks to v1 standard content blocks.\n *\n * This function processes content blocks from OpenAI's Chat Completions API format\n * and converts them to the standardized v1 content block format. It handles both\n * OpenAI-specific data blocks (which require conversion) and standard blocks\n * (which are passed through with type assertion).\n *\n * @param blocks - Array of content blocks in ChatOpenAICompletions format\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const openaiBlocks = [\n * { type: \"text\", text: \"Hello world\" },\n * { type: \"image_url\", image_url: { url: \"https://example.com/image.png\" } }\n * ];\n *\n * const standardBlocks = convertToV1FromChatCompletionsInput(openaiBlocks);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello world\" },\n * // { type: \"image\", url: \"https://example.com/image.png\" }\n * // ]\n * ```\n */\nexport function convertToV1FromChatCompletionsInput(\n blocks: Array<ContentBlock>\n): Array<ContentBlock.Standard> {\n const convertedBlocks: Array<ContentBlock.Standard> = [];\n for (const block of blocks) {\n if (isOpenAIDataBlock(block)) {\n convertedBlocks.push(convertToV1FromOpenAIDataBlock(block));\n } else {\n convertedBlocks.push(block as ContentBlock.Standard);\n }\n }\n return convertedBlocks;\n}\n\nfunction convertResponsesAnnotation(\n annotation: ContentBlock\n): ContentBlock | ContentBlock.Citation {\n if (annotation.type === \"url_citation\") {\n const { url, title, start_index, end_index } = annotation;\n return {\n type: \"citation\",\n url,\n title,\n startIndex: start_index,\n endIndex: end_index,\n };\n }\n if (annotation.type === \"file_citation\") {\n const { file_id, filename, index } = annotation;\n return {\n type: \"citation\",\n title: filename,\n startIndex: index,\n endIndex: index,\n fileId: file_id,\n };\n }\n return annotation;\n}\n\n/**\n * Converts a ChatOpenAIResponses message to an array of v1 standard content blocks.\n *\n * This function processes an AI message containing OpenAI Responses-specific content blocks\n * and converts them to the standardized v1 content block format. It handles reasoning summaries,\n * text content with annotations, tool calls, and various tool outputs including code interpreter,\n * web search, file search, computer calls, and MCP-related blocks.\n *\n * @param message - The AI message containing OpenAI Responses-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const message = new AIMessage({\n * content: [{ type: \"text\", text: \"Hello world\", annotations: [] }],\n * tool_calls: [{ id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } }],\n * additional_kwargs: {\n * reasoning: { summary: [{ text: \"Let me calculate this...\" }] },\n * tool_outputs: [\n * {\n * type: \"code_interpreter_call\",\n * code: \"print('hello')\",\n * outputs: [{ type: \"logs\", logs: \"hello\" }]\n * }\n * ]\n * }\n * });\n *\n * const standardBlocks = convertToV1FromResponses(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me calculate this...\" },\n * // { type: \"text\", text: \"Hello world\", annotations: [] },\n * // { type: \"tool_call\", id: \"123\", name: \"calculator\", args: { a: 1, b: 2 } },\n * // { type: \"code_interpreter_call\", code: \"print('hello')\" },\n * // { type: \"code_interpreter_result\", output: [{ type: \"code_interpreter_output\", returnCode: 0, stdout: \"hello\" }] }\n * // ]\n * ```\n */\nexport function convertToV1FromResponses(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n if (\n _isObject(message.additional_kwargs?.reasoning) &&\n _isArray(message.additional_kwargs.reasoning.summary)\n ) {\n const summary =\n message.additional_kwargs.reasoning.summary.reduce<string>(\n (acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n },\n \"\"\n );\n yield {\n type: \"reasoning\",\n reasoning: summary,\n };\n }\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n for (const block of content) {\n if (_isContentBlock(block, \"text\")) {\n const { text, annotations, ...rest } = block;\n if (Array.isArray(annotations)) {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n annotations: annotations.map(convertResponsesAnnotation),\n };\n } else {\n yield {\n ...rest,\n type: \"text\",\n text: String(text),\n };\n }\n }\n }\n for (const toolCall of message.tool_calls ?? []) {\n yield {\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n };\n }\n if (\n _isObject(message.additional_kwargs) &&\n _isArray(message.additional_kwargs.tool_outputs)\n ) {\n for (const toolOutput of message.additional_kwargs.tool_outputs) {\n if (_isContentBlock(toolOutput, \"web_search_call\")) {\n /**\n * Build args from available action data.\n * The ResponseFunctionWebSearch base type only has id, status, type.\n * The action field (with query, sources, etc.) may be present at\n * runtime when the `include` parameter includes \"web_search_call.action.sources\".\n */\n const webSearchArgs: Record<string, unknown> = {};\n if (\n _isObject(toolOutput.action) &&\n _isString(toolOutput.action.query)\n ) {\n webSearchArgs.query = toolOutput.action.query;\n }\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"web_search\",\n args: webSearchArgs,\n };\n // Emit a server_tool_call_result when the search has completed or failed\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n const output: Record<string, unknown> = {};\n if (_isObject(toolOutput.action)) {\n output.action = toolOutput.action;\n }\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output,\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"file_search_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"file_search\",\n args: {\n queries: _isArray(toolOutput.queries) ? toolOutput.queries : [],\n },\n };\n // Emit a server_tool_call_result when results are available\n if (\n toolOutput.status === \"completed\" ||\n toolOutput.status === \"failed\"\n ) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: _isString(toolOutput.id) ? toolOutput.id : \"\",\n status: toolOutput.status === \"completed\" ? \"success\" : \"error\",\n output: _isArray(toolOutput.results)\n ? { results: toolOutput.results }\n : {},\n };\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"computer_call\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"code_interpreter_call\")) {\n if (_isString(toolOutput.code)) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"code_interpreter\",\n args: { code: toolOutput.code },\n };\n }\n if (_isArray(toolOutput.outputs)) {\n const returnCode = iife(() => {\n if (toolOutput.status === \"in_progress\") return undefined;\n if (toolOutput.status === \"completed\") return 0;\n if (toolOutput.status === \"incomplete\") return 127;\n if (toolOutput.status === \"interpreting\") return undefined;\n if (toolOutput.status === \"failed\") return 1;\n return undefined;\n });\n for (const output of toolOutput.outputs) {\n if (_isContentBlock(output, \"logs\")) {\n yield {\n type: \"server_tool_call_result\",\n toolCallId: toolOutput.id ?? \"\",\n status: \"success\",\n output: {\n type: \"code_interpreter_output\",\n returnCode: returnCode ?? 0,\n stderr: [0, undefined].includes(returnCode)\n ? undefined\n : String(output.logs),\n stdout: [0, undefined].includes(returnCode)\n ? String(output.logs)\n : undefined,\n },\n };\n continue;\n }\n }\n }\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_call\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_call\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_list_tools\")) {\n yield {\n id: toolOutput.id,\n type: \"server_tool_call\",\n name: \"mcp_list_tools\",\n args: toolOutput.input,\n };\n continue;\n } else if (_isContentBlock(toolOutput, \"mcp_approval_request\")) {\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n } else if (_isContentBlock(toolOutput, \"image_generation_call\")) {\n // Convert image_generation_call to proper image content block if result is available\n if (_isString(toolOutput.result)) {\n yield {\n type: \"image\",\n mimeType: \"image/png\",\n data: toolOutput.result,\n id: _isString(toolOutput.id) ? toolOutput.id : undefined,\n metadata: {\n status: _isString(toolOutput.status)\n ? toolOutput.status\n : undefined,\n },\n };\n }\n // Also yield as non_standard for backwards compatibility\n yield { type: \"non_standard\", value: toolOutput };\n continue;\n }\n if (_isObject(toolOutput)) {\n yield { type: \"non_standard\", value: toolOutput };\n }\n }\n }\n }\n return Array.from(iterateContent());\n}\n\n/**\n * Converts a ChatOpenAIResponses message chunk to an array of v1 standard content blocks.\n *\n * This function processes an AI message chunk containing OpenAI-specific content blocks\n * and converts them to the standardized v1 content block format. It handles both the\n * regular message content and tool call chunks that are specific to streaming responses.\n *\n * @param message - The AI message chunk containing OpenAI-formatted content blocks\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * const messageChunk = new AIMessageChunk({\n * content: [{ type: \"text\", text: \"Hello\" }],\n * tool_call_chunks: [\n * { id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * ]\n * });\n *\n * const standardBlocks = convertToV1FromResponsesChunk(messageChunk);\n * // Returns:\n * // [\n * // { type: \"text\", text: \"Hello\" },\n * // { type: \"tool_call_chunk\", id: \"call_123\", name: \"calculator\", args: '{\"a\": 1' }\n * // ]\n * ```\n */\nexport function convertToV1FromResponsesChunk(\n message: AIMessageChunk\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n yield* convertToV1FromResponses(message);\n for (const toolCallChunk of message.tool_call_chunks ?? []) {\n yield {\n type: \"tool_call_chunk\",\n id: toolCallChunk.id,\n name: toolCallChunk.name,\n args: toolCallChunk.args,\n };\n }\n }\n return Array.from(iterateContent());\n}\n\nexport const ChatOpenAITranslator: StandardContentBlockTranslator = {\n translateContent: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletions(message);\n }\n return convertToV1FromResponses(message);\n },\n translateContentChunk: (message) => {\n if (typeof message.content === \"string\") {\n return convertToV1FromChatCompletionsChunk(message);\n }\n return convertToV1FromResponsesChunk(message);\n },\n};\n"],"mappings":"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"}
@@ -22,7 +22,7 @@ function safeParseJson(value) {
22
22
  try {
23
23
  return JSON.parse(value);
24
24
  } catch {
25
- return void 0;
25
+ return;
26
26
  }
27
27
  }
28
28
  const iife = (fn) => fn();
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs","names":["block: unknown","type: T","value: unknown","value: string","fn: () => T"],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n // eslint-disable-next-line no-instanceof/no-instanceof\n return value instanceof Uint8Array;\n}\n\nexport function safeParseJson<T = unknown>(value: string): T | undefined {\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n}\n\nexport const iife = <T>(fn: () => T): T => fn();\n"],"mappings":";;AAEA,SAAgB,gBACdA,OACAC,MACqC;AACrC,QAAO,UAAU,MAAM,IAAI,MAAM,SAAS;AAC3C;AAED,SAAgB,UAAUC,OAAkD;AAC1E,QAAO,OAAO,UAAU,YAAY,UAAU;AAC/C;AAED,SAAgB,SAAYA,OAA8B;AACxD,QAAO,MAAM,QAAQ,MAAM;AAC5B;AAED,SAAgB,UAAUA,OAAiC;AACzD,QAAO,OAAO,UAAU;AACzB;AAED,SAAgB,UAAUA,OAAiC;AACzD,QAAO,OAAO,UAAU;AACzB;AAED,SAAgB,cAAcA,OAAqC;AAEjE,QAAO,iBAAiB;AACzB;AAED,SAAgB,cAA2BC,OAA8B;AACvE,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;CACzB,QAAO;AACN,SAAO;CACR;AACF;AAED,MAAa,OAAO,CAAIC,OAAmB,IAAI"}
1
+ {"version":3,"file":"utils.cjs","names":[],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n // eslint-disable-next-line no-instanceof/no-instanceof\n return value instanceof Uint8Array;\n}\n\nexport function safeParseJson<T = unknown>(value: string): T | undefined {\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n}\n\nexport const iife = <T>(fn: () => T): T => fn();\n"],"mappings":";;AAEA,SAAgB,gBACd,OACA,MACqC;AACrC,QAAO,UAAU,MAAM,IAAI,MAAM,SAAS;;AAG5C,SAAgB,UAAU,OAAkD;AAC1E,QAAO,OAAO,UAAU,YAAY,UAAU;;AAGhD,SAAgB,SAAY,OAA8B;AACxD,QAAO,MAAM,QAAQ,MAAM;;AAG7B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,cAAc,OAAqC;AAEjE,QAAO,iBAAiB;;AAG1B,SAAgB,cAA2B,OAA8B;AACvE,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;SAClB;AACN;;;AAIJ,MAAa,QAAW,OAAmB,IAAI"}
@@ -21,7 +21,7 @@ function safeParseJson(value) {
21
21
  try {
22
22
  return JSON.parse(value);
23
23
  } catch {
24
- return void 0;
24
+ return;
25
25
  }
26
26
  }
27
27
  const iife = (fn) => fn();
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["block: unknown","type: T","value: unknown","value: string","fn: () => T"],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n // eslint-disable-next-line no-instanceof/no-instanceof\n return value instanceof Uint8Array;\n}\n\nexport function safeParseJson<T = unknown>(value: string): T | undefined {\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n}\n\nexport const iife = <T>(fn: () => T): T => fn();\n"],"mappings":";AAEA,SAAgB,gBACdA,OACAC,MACqC;AACrC,QAAO,UAAU,MAAM,IAAI,MAAM,SAAS;AAC3C;AAED,SAAgB,UAAUC,OAAkD;AAC1E,QAAO,OAAO,UAAU,YAAY,UAAU;AAC/C;AAED,SAAgB,SAAYA,OAA8B;AACxD,QAAO,MAAM,QAAQ,MAAM;AAC5B;AAED,SAAgB,UAAUA,OAAiC;AACzD,QAAO,OAAO,UAAU;AACzB;AAED,SAAgB,UAAUA,OAAiC;AACzD,QAAO,OAAO,UAAU;AACzB;AAED,SAAgB,cAAcA,OAAqC;AAEjE,QAAO,iBAAiB;AACzB;AAED,SAAgB,cAA2BC,OAA8B;AACvE,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;CACzB,QAAO;AACN,SAAO;CACR;AACF;AAED,MAAa,OAAO,CAAIC,OAAmB,IAAI"}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../src/messages/block_translators/utils.ts"],"sourcesContent":["import type { ContentBlock } from \"../content/index.js\";\n\nexport function _isContentBlock<T extends string>(\n block: unknown,\n type: T\n): block is ContentBlock & { type: T } {\n return _isObject(block) && block.type === type;\n}\n\nexport function _isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport function _isArray<T>(value: unknown): value is T[] {\n return Array.isArray(value);\n}\n\nexport function _isString(value: unknown): value is string {\n return typeof value === \"string\";\n}\n\nexport function _isNumber(value: unknown): value is number {\n return typeof value === \"number\";\n}\n\nexport function _isBytesArray(value: unknown): value is Uint8Array {\n // eslint-disable-next-line no-instanceof/no-instanceof\n return value instanceof Uint8Array;\n}\n\nexport function safeParseJson<T = unknown>(value: string): T | undefined {\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n}\n\nexport const iife = <T>(fn: () => T): T => fn();\n"],"mappings":";AAEA,SAAgB,gBACd,OACA,MACqC;AACrC,QAAO,UAAU,MAAM,IAAI,MAAM,SAAS;;AAG5C,SAAgB,UAAU,OAAkD;AAC1E,QAAO,OAAO,UAAU,YAAY,UAAU;;AAGhD,SAAgB,SAAY,OAA8B;AACxD,QAAO,MAAM,QAAQ,MAAM;;AAG7B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,UAAU,OAAiC;AACzD,QAAO,OAAO,UAAU;;AAG1B,SAAgB,cAAc,OAAqC;AAEjE,QAAO,iBAAiB;;AAG1B,SAAgB,cAA2B,OAA8B;AACvE,KAAI;AACF,SAAO,KAAK,MAAM,MAAM;SAClB;AACN;;;AAIJ,MAAa,QAAW,OAAmB,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"xai.cjs","names":["message: AIMessage","blocks: Array<ContentBlock.Standard>","_isObject","_isArray","_isString","ChatXAITranslator: StandardContentBlockTranslator"],"sources":["../../../src/messages/block_translators/xai.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { _isArray, _isObject, _isString } from \"./utils.js\";\n\n/**\n * Converts an xAI AI message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from xAI's API format\n * and converts it to the standardized v1 content block format. It handles\n * both the responses API (reasoning object with summary) and completions API\n * (reasoning_content string) formats.\n *\n * @param message - The AI message containing xAI-formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * // Responses API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: {\n * reasoning: {\n * id: \"reasoning_123\",\n * type: \"reasoning\",\n * summary: [{ type: \"summary_text\", text: \"Let me think...\" }]\n * }\n * }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n *\n * @example\n * ```typescript\n * // Completions API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: { reasoning_content: \"Let me think about this...\" }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think about this...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n */\nexport function convertToV1FromXAIMessage(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n\n // Check for Responses API format: additional_kwargs.reasoning with summary array\n if (_isObject(message.additional_kwargs?.reasoning)) {\n const reasoning = message.additional_kwargs.reasoning;\n if (_isArray(reasoning.summary)) {\n const summaryText = reasoning.summary.reduce<string>((acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n }, \"\");\n if (summaryText.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: summaryText,\n });\n }\n }\n }\n\n // Check for Completions API format: additional_kwargs.reasoning_content\n const reasoningContent = message.additional_kwargs?.reasoning_content;\n if (_isString(reasoningContent) && reasoningContent.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: reasoningContent,\n });\n }\n\n // Handle text content\n if (typeof message.content === \"string\") {\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n for (const block of message.content) {\n if (\n typeof block === \"object\" &&\n \"type\" in block &&\n block.type === \"text\" &&\n \"text\" in block &&\n _isString(block.text)\n ) {\n blocks.push({\n type: \"text\",\n text: block.text,\n });\n }\n }\n }\n\n // Add tool calls if present\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n\n return blocks;\n}\n\nexport const ChatXAITranslator: StandardContentBlockTranslator = {\n translateContent: convertToV1FromXAIMessage,\n translateContentChunk: convertToV1FromXAIMessage,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,SAAgB,0BACdA,SAC8B;CAC9B,MAAMC,SAAuC,CAAE;AAG/C,KAAIC,wBAAU,QAAQ,mBAAmB,UAAU,EAAE;EACnD,MAAM,YAAY,QAAQ,kBAAkB;AAC5C,MAAIC,uBAAS,UAAU,QAAQ,EAAE;GAC/B,MAAM,cAAc,UAAU,QAAQ,OAAe,CAAC,KAAK,SAAS;AAClE,QAAID,wBAAU,KAAK,IAAIE,wBAAU,KAAK,KAAK,CACzC,QAAO,GAAG,MAAM,KAAK,MAAM;AAE7B,WAAO;GACR,GAAE,GAAG;AACN,OAAI,YAAY,SAAS,GACvB,OAAO,KAAK;IACV,MAAM;IACN,WAAW;GACZ,EAAC;EAEL;CACF;CAGD,MAAM,mBAAmB,QAAQ,mBAAmB;AACpD,KAAIA,wBAAU,iBAAiB,IAAI,iBAAiB,SAAS,GAC3D,OAAO,KAAK;EACV,MAAM;EACN,WAAW;CACZ,EAAC;AAIJ,KAAI,OAAO,QAAQ,YAAY,UAC7B;MAAI,QAAQ,QAAQ,SAAS,GAC3B,OAAO,KAAK;GACV,MAAM;GACN,MAAM,QAAQ;EACf,EAAC;CACH,MAED,MAAK,MAAM,SAAS,QAAQ,QAC1B,KACE,OAAO,UAAU,YACjB,UAAU,SACV,MAAM,SAAS,UACf,UAAU,SACVA,wBAAU,MAAM,KAAK,EAErB,OAAO,KAAK;EACV,MAAM;EACN,MAAM,MAAM;CACb,EAAC;AAMR,MAAK,MAAM,YAAY,QAAQ,cAAc,CAAE,GAC7C,OAAO,KAAK;EACV,MAAM;EACN,IAAI,SAAS;EACb,MAAM,SAAS;EACf,MAAM,SAAS;CAChB,EAAC;AAGJ,QAAO;AACR;AAED,MAAaC,oBAAoD;CAC/D,kBAAkB;CAClB,uBAAuB;AACxB"}
1
+ {"version":3,"file":"xai.cjs","names":["_isObject","_isArray","_isString"],"sources":["../../../src/messages/block_translators/xai.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { _isArray, _isObject, _isString } from \"./utils.js\";\n\n/**\n * Converts an xAI AI message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from xAI's API format\n * and converts it to the standardized v1 content block format. It handles\n * both the responses API (reasoning object with summary) and completions API\n * (reasoning_content string) formats.\n *\n * @param message - The AI message containing xAI-formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * // Responses API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: {\n * reasoning: {\n * id: \"reasoning_123\",\n * type: \"reasoning\",\n * summary: [{ type: \"summary_text\", text: \"Let me think...\" }]\n * }\n * }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n *\n * @example\n * ```typescript\n * // Completions API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: { reasoning_content: \"Let me think about this...\" }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think about this...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n */\nexport function convertToV1FromXAIMessage(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n\n // Check for Responses API format: additional_kwargs.reasoning with summary array\n if (_isObject(message.additional_kwargs?.reasoning)) {\n const reasoning = message.additional_kwargs.reasoning;\n if (_isArray(reasoning.summary)) {\n const summaryText = reasoning.summary.reduce<string>((acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n }, \"\");\n if (summaryText.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: summaryText,\n });\n }\n }\n }\n\n // Check for Completions API format: additional_kwargs.reasoning_content\n const reasoningContent = message.additional_kwargs?.reasoning_content;\n if (_isString(reasoningContent) && reasoningContent.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: reasoningContent,\n });\n }\n\n // Handle text content\n if (typeof message.content === \"string\") {\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n for (const block of message.content) {\n if (\n typeof block === \"object\" &&\n \"type\" in block &&\n block.type === \"text\" &&\n \"text\" in block &&\n _isString(block.text)\n ) {\n blocks.push({\n type: \"text\",\n text: block.text,\n });\n }\n }\n }\n\n // Add tool calls if present\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n\n return blocks;\n}\n\nexport const ChatXAITranslator: StandardContentBlockTranslator = {\n translateContent: convertToV1FromXAIMessage,\n translateContentChunk: convertToV1FromXAIMessage,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,SAAgB,0BACd,SAC8B;CAC9B,MAAM,SAAuC,EAAE;AAG/C,KAAIA,wBAAU,QAAQ,mBAAmB,UAAU,EAAE;EACnD,MAAM,YAAY,QAAQ,kBAAkB;AAC5C,MAAIC,uBAAS,UAAU,QAAQ,EAAE;GAC/B,MAAM,cAAc,UAAU,QAAQ,QAAgB,KAAK,SAAS;AAClE,QAAID,wBAAU,KAAK,IAAIE,wBAAU,KAAK,KAAK,CACzC,QAAO,GAAG,MAAM,KAAK;AAEvB,WAAO;MACN,GAAG;AACN,OAAI,YAAY,SAAS,EACvB,QAAO,KAAK;IACV,MAAM;IACN,WAAW;IACZ,CAAC;;;CAMR,MAAM,mBAAmB,QAAQ,mBAAmB;AACpD,KAAIA,wBAAU,iBAAiB,IAAI,iBAAiB,SAAS,EAC3D,QAAO,KAAK;EACV,MAAM;EACN,WAAW;EACZ,CAAC;AAIJ,KAAI,OAAO,QAAQ,YAAY,UAC7B;MAAI,QAAQ,QAAQ,SAAS,EAC3B,QAAO,KAAK;GACV,MAAM;GACN,MAAM,QAAQ;GACf,CAAC;OAGJ,MAAK,MAAM,SAAS,QAAQ,QAC1B,KACE,OAAO,UAAU,YACjB,UAAU,SACV,MAAM,SAAS,UACf,UAAU,SACVA,wBAAU,MAAM,KAAK,CAErB,QAAO,KAAK;EACV,MAAM;EACN,MAAM,MAAM;EACb,CAAC;AAMR,MAAK,MAAM,YAAY,QAAQ,cAAc,EAAE,CAC7C,QAAO,KAAK;EACV,MAAM;EACN,IAAI,SAAS;EACb,MAAM,SAAS;EACf,MAAM,SAAS;EAChB,CAAC;AAGJ,QAAO;;AAGT,MAAa,oBAAoD;CAC/D,kBAAkB;CAClB,uBAAuB;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"xai.js","names":["message: AIMessage","blocks: Array<ContentBlock.Standard>","ChatXAITranslator: StandardContentBlockTranslator"],"sources":["../../../src/messages/block_translators/xai.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { _isArray, _isObject, _isString } from \"./utils.js\";\n\n/**\n * Converts an xAI AI message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from xAI's API format\n * and converts it to the standardized v1 content block format. It handles\n * both the responses API (reasoning object with summary) and completions API\n * (reasoning_content string) formats.\n *\n * @param message - The AI message containing xAI-formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * // Responses API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: {\n * reasoning: {\n * id: \"reasoning_123\",\n * type: \"reasoning\",\n * summary: [{ type: \"summary_text\", text: \"Let me think...\" }]\n * }\n * }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n *\n * @example\n * ```typescript\n * // Completions API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: { reasoning_content: \"Let me think about this...\" }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think about this...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n */\nexport function convertToV1FromXAIMessage(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n\n // Check for Responses API format: additional_kwargs.reasoning with summary array\n if (_isObject(message.additional_kwargs?.reasoning)) {\n const reasoning = message.additional_kwargs.reasoning;\n if (_isArray(reasoning.summary)) {\n const summaryText = reasoning.summary.reduce<string>((acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n }, \"\");\n if (summaryText.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: summaryText,\n });\n }\n }\n }\n\n // Check for Completions API format: additional_kwargs.reasoning_content\n const reasoningContent = message.additional_kwargs?.reasoning_content;\n if (_isString(reasoningContent) && reasoningContent.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: reasoningContent,\n });\n }\n\n // Handle text content\n if (typeof message.content === \"string\") {\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n for (const block of message.content) {\n if (\n typeof block === \"object\" &&\n \"type\" in block &&\n block.type === \"text\" &&\n \"text\" in block &&\n _isString(block.text)\n ) {\n blocks.push({\n type: \"text\",\n text: block.text,\n });\n }\n }\n }\n\n // Add tool calls if present\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n\n return blocks;\n}\n\nexport const ChatXAITranslator: StandardContentBlockTranslator = {\n translateContent: convertToV1FromXAIMessage,\n translateContentChunk: convertToV1FromXAIMessage,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,SAAgB,0BACdA,SAC8B;CAC9B,MAAMC,SAAuC,CAAE;AAG/C,KAAI,UAAU,QAAQ,mBAAmB,UAAU,EAAE;EACnD,MAAM,YAAY,QAAQ,kBAAkB;AAC5C,MAAI,SAAS,UAAU,QAAQ,EAAE;GAC/B,MAAM,cAAc,UAAU,QAAQ,OAAe,CAAC,KAAK,SAAS;AAClE,QAAI,UAAU,KAAK,IAAI,UAAU,KAAK,KAAK,CACzC,QAAO,GAAG,MAAM,KAAK,MAAM;AAE7B,WAAO;GACR,GAAE,GAAG;AACN,OAAI,YAAY,SAAS,GACvB,OAAO,KAAK;IACV,MAAM;IACN,WAAW;GACZ,EAAC;EAEL;CACF;CAGD,MAAM,mBAAmB,QAAQ,mBAAmB;AACpD,KAAI,UAAU,iBAAiB,IAAI,iBAAiB,SAAS,GAC3D,OAAO,KAAK;EACV,MAAM;EACN,WAAW;CACZ,EAAC;AAIJ,KAAI,OAAO,QAAQ,YAAY,UAC7B;MAAI,QAAQ,QAAQ,SAAS,GAC3B,OAAO,KAAK;GACV,MAAM;GACN,MAAM,QAAQ;EACf,EAAC;CACH,MAED,MAAK,MAAM,SAAS,QAAQ,QAC1B,KACE,OAAO,UAAU,YACjB,UAAU,SACV,MAAM,SAAS,UACf,UAAU,SACV,UAAU,MAAM,KAAK,EAErB,OAAO,KAAK;EACV,MAAM;EACN,MAAM,MAAM;CACb,EAAC;AAMR,MAAK,MAAM,YAAY,QAAQ,cAAc,CAAE,GAC7C,OAAO,KAAK;EACV,MAAM;EACN,IAAI,SAAS;EACb,MAAM,SAAS;EACf,MAAM,SAAS;CAChB,EAAC;AAGJ,QAAO;AACR;AAED,MAAaC,oBAAoD;CAC/D,kBAAkB;CAClB,uBAAuB;AACxB"}
1
+ {"version":3,"file":"xai.js","names":[],"sources":["../../../src/messages/block_translators/xai.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { _isArray, _isObject, _isString } from \"./utils.js\";\n\n/**\n * Converts an xAI AI message to an array of v1 standard content blocks.\n *\n * This function processes an AI message from xAI's API format\n * and converts it to the standardized v1 content block format. It handles\n * both the responses API (reasoning object with summary) and completions API\n * (reasoning_content string) formats.\n *\n * @param message - The AI message containing xAI-formatted content\n * @returns Array of content blocks in v1 standard format\n *\n * @example\n * ```typescript\n * // Responses API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: {\n * reasoning: {\n * id: \"reasoning_123\",\n * type: \"reasoning\",\n * summary: [{ type: \"summary_text\", text: \"Let me think...\" }]\n * }\n * }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n *\n * @example\n * ```typescript\n * // Completions API format\n * const message = new AIMessage({\n * content: \"The answer is 42\",\n * additional_kwargs: { reasoning_content: \"Let me think about this...\" }\n * });\n * const standardBlocks = convertToV1FromXAIMessage(message);\n * // Returns:\n * // [\n * // { type: \"reasoning\", reasoning: \"Let me think about this...\" },\n * // { type: \"text\", text: \"The answer is 42\" }\n * // ]\n * ```\n */\nexport function convertToV1FromXAIMessage(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n const blocks: Array<ContentBlock.Standard> = [];\n\n // Check for Responses API format: additional_kwargs.reasoning with summary array\n if (_isObject(message.additional_kwargs?.reasoning)) {\n const reasoning = message.additional_kwargs.reasoning;\n if (_isArray(reasoning.summary)) {\n const summaryText = reasoning.summary.reduce<string>((acc, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return `${acc}${item.text}`;\n }\n return acc;\n }, \"\");\n if (summaryText.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: summaryText,\n });\n }\n }\n }\n\n // Check for Completions API format: additional_kwargs.reasoning_content\n const reasoningContent = message.additional_kwargs?.reasoning_content;\n if (_isString(reasoningContent) && reasoningContent.length > 0) {\n blocks.push({\n type: \"reasoning\",\n reasoning: reasoningContent,\n });\n }\n\n // Handle text content\n if (typeof message.content === \"string\") {\n if (message.content.length > 0) {\n blocks.push({\n type: \"text\",\n text: message.content,\n });\n }\n } else {\n for (const block of message.content) {\n if (\n typeof block === \"object\" &&\n \"type\" in block &&\n block.type === \"text\" &&\n \"text\" in block &&\n _isString(block.text)\n ) {\n blocks.push({\n type: \"text\",\n text: block.text,\n });\n }\n }\n }\n\n // Add tool calls if present\n for (const toolCall of message.tool_calls ?? []) {\n blocks.push({\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n\n return blocks;\n}\n\nexport const ChatXAITranslator: StandardContentBlockTranslator = {\n translateContent: convertToV1FromXAIMessage,\n translateContentChunk: convertToV1FromXAIMessage,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,SAAgB,0BACd,SAC8B;CAC9B,MAAM,SAAuC,EAAE;AAG/C,KAAI,UAAU,QAAQ,mBAAmB,UAAU,EAAE;EACnD,MAAM,YAAY,QAAQ,kBAAkB;AAC5C,MAAI,SAAS,UAAU,QAAQ,EAAE;GAC/B,MAAM,cAAc,UAAU,QAAQ,QAAgB,KAAK,SAAS;AAClE,QAAI,UAAU,KAAK,IAAI,UAAU,KAAK,KAAK,CACzC,QAAO,GAAG,MAAM,KAAK;AAEvB,WAAO;MACN,GAAG;AACN,OAAI,YAAY,SAAS,EACvB,QAAO,KAAK;IACV,MAAM;IACN,WAAW;IACZ,CAAC;;;CAMR,MAAM,mBAAmB,QAAQ,mBAAmB;AACpD,KAAI,UAAU,iBAAiB,IAAI,iBAAiB,SAAS,EAC3D,QAAO,KAAK;EACV,MAAM;EACN,WAAW;EACZ,CAAC;AAIJ,KAAI,OAAO,QAAQ,YAAY,UAC7B;MAAI,QAAQ,QAAQ,SAAS,EAC3B,QAAO,KAAK;GACV,MAAM;GACN,MAAM,QAAQ;GACf,CAAC;OAGJ,MAAK,MAAM,SAAS,QAAQ,QAC1B,KACE,OAAO,UAAU,YACjB,UAAU,SACV,MAAM,SAAS,UACf,UAAU,SACV,UAAU,MAAM,KAAK,CAErB,QAAO,KAAK;EACV,MAAM;EACN,MAAM,MAAM;EACb,CAAC;AAMR,MAAK,MAAM,YAAY,QAAQ,cAAc,EAAE,CAC7C,QAAO,KAAK;EACV,MAAM;EACN,IAAI,SAAS;EACb,MAAM,SAAS;EACf,MAAM,SAAS;EAChB,CAAC;AAGJ,QAAO;;AAGT,MAAa,oBAAoD;CAC/D,kBAAkB;CAClB,uBAAuB;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.cjs","names":["BaseMessage","fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>","role?: string","obj: unknown","BaseMessageChunk","chunk: ChatMessageChunk<TStructure>","mergeContent","_mergeDicts","x: BaseMessage","x: BaseMessageChunk"],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n static isInstance(obj: unknown): obj is ChatMessage {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport class ChatMessageChunk<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name() {\n return \"ChatMessageChunk\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n concat(chunk: ChatMessageChunk<TStructure>) {\n const Cls = this.constructor as Constructor<this>;\n return new Cls({\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: _mergeDicts(\n this.response_metadata,\n chunk.response_metadata\n ),\n role: this.role,\n id: this.id ?? chunk.id,\n });\n }\n\n static isInstance(obj: unknown): obj is ChatMessageChunk {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport function isChatMessage(x: BaseMessage): x is ChatMessage {\n return x._getType() === \"generic\";\n}\n\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk {\n return x._getType() === \"generic\";\n}\n"],"mappings":";;;;;;AAmBA,IAAa,cAAb,MAAa,oBACHA,yBAEV;CACE,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB;CAEA,OAAO,oBAAwC;AAC7C,SAAO;CACR;CASD,YACEC,QAGAC,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,EAErD,SAAS;GAAE,SAAS;GAAc;EAAO;EAE3C,MAAM,OAAO;EACb,KAAK,OAAO,OAAO;CACpB;CAED,OAAO,WAAWC,KAAkC;AAClD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;CAC9C;CAED,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;EACZ;CACF;AACF;;;;;AAMD,IAAa,mBAAb,cAEUC,8BAAwC;CAChD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB;CASA,YACEH,QAGAC,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,EAErD,SAAS;GAAE,SAAS;GAAc;EAAO;EAE3C,MAAM,OAAO;EACb,KAAK,OAAO,OAAO;CACpB;CAED,OAAOG,OAAqC;EAC1C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAASC,0BAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmBC,yBACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmBA,yBACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK;GACX,IAAI,KAAK,MAAM,MAAM;EACtB;CACF;CAED,OAAO,WAAWJ,KAAuC;AACvD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;CAC9C;CAED,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;EACZ;CACF;AACF;;;;AAKD,SAAgB,cAAcK,GAAkC;AAC9D,QAAO,EAAE,UAAU,KAAK;AACzB;;;;AAKD,SAAgB,mBAAmBC,GAA4C;AAC7E,QAAO,EAAE,UAAU,KAAK;AACzB"}
1
+ {"version":3,"file":"chat.cjs","names":["BaseMessage","BaseMessageChunk","mergeContent","_mergeDicts"],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n static isInstance(obj: unknown): obj is ChatMessage {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport class ChatMessageChunk<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name() {\n return \"ChatMessageChunk\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n concat(chunk: ChatMessageChunk<TStructure>) {\n const Cls = this.constructor as Constructor<this>;\n return new Cls({\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: _mergeDicts(\n this.response_metadata,\n chunk.response_metadata\n ),\n role: this.role,\n id: this.id ?? chunk.id,\n });\n }\n\n static isInstance(obj: unknown): obj is ChatMessageChunk {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport function isChatMessage(x: BaseMessage): x is ChatMessage {\n return x._getType() === \"generic\";\n}\n\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk {\n return x._getType() === \"generic\";\n}\n"],"mappings":";;;;;;AAmBA,IAAa,cAAb,MAAa,oBACHA,yBAEV;CACE,OAAO,UAAU;AACf,SAAO;;CAGT,AAAS,OAAO;CAEhB;CAEA,OAAO,oBAAwC;AAC7C,SAAO;;CAUT,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,WAAW,KAAkC;AAClD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;;AAQL,IAAa,mBAAb,cAEUC,8BAAwC;CAChD,OAAO,UAAU;AACf,SAAO;;CAGT,AAAS,OAAO;CAEhB;CASA,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,OAAqC;EAC1C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAASC,0BAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmBC,yBACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmBA,yBACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK;GACX,IAAI,KAAK,MAAM,MAAM;GACtB,CAAC;;CAGJ,OAAO,WAAW,KAAuC;AACvD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;AAOL,SAAgB,cAAc,GAAkC;AAC9D,QAAO,EAAE,UAAU,KAAK;;;;;AAM1B,SAAgB,mBAAmB,GAA4C;AAC7E,QAAO,EAAE,UAAU,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.cts","names":["BaseMessage","BaseMessageChunk","BaseMessageFields","$InferMessageContent","MessageStructure","ChatMessageFields","TStructure","ChatMessage","Record","ChatMessageChunk","isChatMessage","isChatMessageChunk"],"sources":["../../src/messages/chat.d.ts"],"sourcesContent":["import { BaseMessage, BaseMessageChunk, type BaseMessageFields } from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nexport interface ChatMessageFields<TStructure extends MessageStructure = MessageStructure> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n/**\n * Represents a chat message in a conversation.\n */\nexport declare class ChatMessage<TStructure extends MessageStructure = MessageStructure> extends BaseMessage<TStructure, \"generic\"> implements ChatMessageFields<TStructure> {\n static lc_name(): string;\n readonly type: \"generic\";\n role: string;\n static _chatMessageClass(): typeof ChatMessage;\n constructor(content: $InferMessageContent<TStructure, \"generic\">, role: string);\n constructor(fields: ChatMessageFields<TStructure>);\n static isInstance(obj: unknown): obj is ChatMessage;\n get _printableFields(): Record<string, unknown>;\n}\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport declare class ChatMessageChunk<TStructure extends MessageStructure = MessageStructure> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name(): string;\n readonly type: \"generic\";\n role: string;\n constructor(content: $InferMessageContent<TStructure, \"generic\">, role: string);\n constructor(fields: ChatMessageFields<TStructure>);\n concat(chunk: ChatMessageChunk<TStructure>): this;\n static isInstance(obj: unknown): obj is ChatMessageChunk;\n get _printableFields(): Record<string, unknown>;\n}\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport declare function isChatMessage(x: BaseMessage): x is ChatMessage;\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport declare function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk;\n//# sourceMappingURL=chat.d.ts.map"],"mappings":";;;;UAEiBK,qCAAqCD,mBAAmBA,0BAA0BF,kBAAkBI;;AAArH;;;;AAAmGJ,cAM9EK,WAN8EL,CAAAA,mBAM/CE,gBAN+CF,GAM5BE,gBAN4BF,CAAAA,SAMFF,WANEE,CAMUI,UANVJ,EAAAA,SAAAA,CAAAA,YAM4CG,iBAN5CH,CAM8DI,UAN9DJ,CAAAA,CAAAA;EAAiB,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAM/FK,SAAAA,IAAAA,EAAW,SAAAD;EAAoBF,IAAAA,EAAAA,MAAAA;EAAmBA,OAAAA,iBAAAA,CAAAA,CAAAA,EAAAA,OAIhCG,WAJgCH;EAAsCE,WAAAA,CAAAA,OAAAA,EAKpFH,oBALoFG,CAK/DA,UAL+DA,EAAAA,SAAAA,CAAAA,EAAAA,IAAAA,EAAAA,MAAAA;EAAoDA,WAAAA,CAAAA,MAAAA,EAMzID,iBANyIC,CAMvHA,UANuHA,CAAAA;EAI1HC,OAAAA,UAAAA,CAAAA,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,GAAAA,IAGKA,WAHLA;EACOD,IAAAA,gBAAAA,CAAAA,CAAAA,EAGlBE,MAHkBF,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA;;;;;;AALmDN,cAc5ES,gBAd4ET,CAAAA,mBAcxCI,gBAdwCJ,GAcrBI,gBAdqBJ,CAAAA,SAcKC,gBAdLD,CAcsBM,UAdtBN,EAAAA,SAAAA,CAAAA,CAAAA;EAA8CK,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAiB,SAAA,IAAA,EAAA,SAAA;EAc3II,IAAAA,EAAAA,MAAAA;EAAoCL,WAAAA,CAAAA,OAAAA,EAIhCD,oBAJgCC,CAIXE,UAJWF,EAAAA,SAAAA,CAAAA,EAAAA,IAAAA,EAAAA,MAAAA;EAAmBA,WAAAA,CAAAA,MAAAA,EAKpDC,iBALoDD,CAKlCE,UALkCF,CAAAA;EAA2CE,MAAAA,CAAAA,KAAAA,EAMrGG,gBANqGH,CAMpFA,UANoFA,CAAAA,CAAAA,EAAAA,IAAAA;EAIzEA,OAAAA,UAAAA,CAAAA,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,GAAAA,IAGFG,gBAHEH;EAArBH,IAAAA,gBAAAA,CAAAA,CAAAA,EAIGK,MAJHL,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA;;;;;AAGmBM,iBAMpBC,aAAAA,CANoBD,CAAAA,EAMHT,WANGS,CAAAA,EAAAA,CAAAA,IAMgBF,WANhBE;;;AAP0E;AAa9FC,iBAIAC,kBAAAA,CAJiBX,CAAAA,EAIKC,gBAJyB,CAAA,EAAA,CAAA,IAIDQ,gBAJC"}
1
+ {"version":3,"file":"chat.d.cts","names":[],"sources":["../../src/messages/chat.ts"],"mappings":";;;;UAUiB,iBAAA,oBACI,gBAAA,GAAmB,gBAAA,UAC9B,iBAAA,CAAkB,UAAA;EAC1B,IAAA;AAAA;;;;cAMW,WAAA,oBAA+B,gBAAA,GAAmB,gBAAA,UACrD,WAAA,CAAY,UAAA,wBACT,iBAAA,CAAkB,UAAA;EAAA,OAEtB,OAAA,CAAA;EAAA,SAIE,IAAA;EAET,IAAA;EAAA,OAEO,iBAAA,CAAA,UAA4B,WAAA;EAInC,WAAA,CACE,OAAA,EAAS,oBAAA,CAAqB,UAAA,cAC9B,IAAA;EAGF,WAAA,CAAY,MAAA,EAAQ,iBAAA,CAAkB,UAAA;EAAA,OAgB/B,UAAA,CAAW,GAAA,YAAe,GAAA,IAAO,WAAA;EAAA,IAI3B,gBAAA,CAAA,GAAoB,MAAA;AAAA;;;;AAzCnC;cAqDa,gBAAA,oBACQ,gBAAA,GAAmB,gBAAA,UAC9B,gBAAA,CAAiB,UAAA;EAAA,OAClB,OAAA,CAAA;EAAA,SAIE,IAAA;EAET,IAAA;EAEA,WAAA,CACE,OAAA,EAAS,oBAAA,CAAqB,UAAA,cAC9B,IAAA;EAGF,WAAA,CAAY,MAAA,EAAQ,iBAAA,CAAkB,UAAA;EAgBtC,MAAA,CAAO,KAAA,EAAO,gBAAA,CAAiB,UAAA;EAAA,OAiBxB,UAAA,CAAW,GAAA,YAAe,GAAA,IAAO,gBAAA;EAAA,IAI3B,gBAAA,CAAA,GAAoB,MAAA;AAAA;;;;iBAWnB,aAAA,CAAc,CAAA,EAAG,WAAA,GAAc,CAAA,IAAK,WAAA;;;;iBAOpC,kBAAA,CAAmB,CAAA,EAAG,gBAAA,GAAmB,CAAA,IAAK,gBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","names":["BaseMessage","BaseMessageChunk","BaseMessageFields","$InferMessageContent","MessageStructure","ChatMessageFields","TStructure","ChatMessage","Record","ChatMessageChunk","isChatMessage","isChatMessageChunk"],"sources":["../../src/messages/chat.d.ts"],"sourcesContent":["import { BaseMessage, BaseMessageChunk, type BaseMessageFields } from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nexport interface ChatMessageFields<TStructure extends MessageStructure = MessageStructure> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n/**\n * Represents a chat message in a conversation.\n */\nexport declare class ChatMessage<TStructure extends MessageStructure = MessageStructure> extends BaseMessage<TStructure, \"generic\"> implements ChatMessageFields<TStructure> {\n static lc_name(): string;\n readonly type: \"generic\";\n role: string;\n static _chatMessageClass(): typeof ChatMessage;\n constructor(content: $InferMessageContent<TStructure, \"generic\">, role: string);\n constructor(fields: ChatMessageFields<TStructure>);\n static isInstance(obj: unknown): obj is ChatMessage;\n get _printableFields(): Record<string, unknown>;\n}\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport declare class ChatMessageChunk<TStructure extends MessageStructure = MessageStructure> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name(): string;\n readonly type: \"generic\";\n role: string;\n constructor(content: $InferMessageContent<TStructure, \"generic\">, role: string);\n constructor(fields: ChatMessageFields<TStructure>);\n concat(chunk: ChatMessageChunk<TStructure>): this;\n static isInstance(obj: unknown): obj is ChatMessageChunk;\n get _printableFields(): Record<string, unknown>;\n}\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport declare function isChatMessage(x: BaseMessage): x is ChatMessage;\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport declare function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk;\n//# sourceMappingURL=chat.d.ts.map"],"mappings":";;;;UAEiBK,qCAAqCD,mBAAmBA,0BAA0BF,kBAAkBI;;AAArH;;;;AAAmGJ,cAM9EK,WAN8EL,CAAAA,mBAM/CE,gBAN+CF,GAM5BE,gBAN4BF,CAAAA,SAMFF,WANEE,CAMUI,UANVJ,EAAAA,SAAAA,CAAAA,YAM4CG,iBAN5CH,CAM8DI,UAN9DJ,CAAAA,CAAAA;EAAiB,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAM/FK,SAAAA,IAAAA,EAAW,SAAAD;EAAoBF,IAAAA,EAAAA,MAAAA;EAAmBA,OAAAA,iBAAAA,CAAAA,CAAAA,EAAAA,OAIhCG,WAJgCH;EAAsCE,WAAAA,CAAAA,OAAAA,EAKpFH,oBALoFG,CAK/DA,UAL+DA,EAAAA,SAAAA,CAAAA,EAAAA,IAAAA,EAAAA,MAAAA;EAAoDA,WAAAA,CAAAA,MAAAA,EAMzID,iBANyIC,CAMvHA,UANuHA,CAAAA;EAI1HC,OAAAA,UAAAA,CAAAA,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,GAAAA,IAGKA,WAHLA;EACOD,IAAAA,gBAAAA,CAAAA,CAAAA,EAGlBE,MAHkBF,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA;;;;;;AALmDN,cAc5ES,gBAd4ET,CAAAA,mBAcxCI,gBAdwCJ,GAcrBI,gBAdqBJ,CAAAA,SAcKC,gBAdLD,CAcsBM,UAdtBN,EAAAA,SAAAA,CAAAA,CAAAA;EAA8CK,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAiB,SAAA,IAAA,EAAA,SAAA;EAc3II,IAAAA,EAAAA,MAAAA;EAAoCL,WAAAA,CAAAA,OAAAA,EAIhCD,oBAJgCC,CAIXE,UAJWF,EAAAA,SAAAA,CAAAA,EAAAA,IAAAA,EAAAA,MAAAA;EAAmBA,WAAAA,CAAAA,MAAAA,EAKpDC,iBALoDD,CAKlCE,UALkCF,CAAAA;EAA2CE,MAAAA,CAAAA,KAAAA,EAMrGG,gBANqGH,CAMpFA,UANoFA,CAAAA,CAAAA,EAAAA,IAAAA;EAIzEA,OAAAA,UAAAA,CAAAA,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,GAAAA,IAGFG,gBAHEH;EAArBH,IAAAA,gBAAAA,CAAAA,CAAAA,EAIGK,MAJHL,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA;;;;;AAGmBM,iBAMpBC,aAAAA,CANoBD,CAAAA,EAMHT,WANGS,CAAAA,EAAAA,CAAAA,IAMgBF,WANhBE;;;AAP0E;AAa9FC,iBAIAC,kBAAAA,CAJiBX,CAAAA,EAIKC,gBAJyB,CAAA,EAAA,CAAA,IAIDQ,gBAJC"}
1
+ {"version":3,"file":"chat.d.ts","names":[],"sources":["../../src/messages/chat.ts"],"mappings":";;;;UAUiB,iBAAA,oBACI,gBAAA,GAAmB,gBAAA,UAC9B,iBAAA,CAAkB,UAAA;EAC1B,IAAA;AAAA;;;;cAMW,WAAA,oBAA+B,gBAAA,GAAmB,gBAAA,UACrD,WAAA,CAAY,UAAA,wBACT,iBAAA,CAAkB,UAAA;EAAA,OAEtB,OAAA,CAAA;EAAA,SAIE,IAAA;EAET,IAAA;EAAA,OAEO,iBAAA,CAAA,UAA4B,WAAA;EAInC,WAAA,CACE,OAAA,EAAS,oBAAA,CAAqB,UAAA,cAC9B,IAAA;EAGF,WAAA,CAAY,MAAA,EAAQ,iBAAA,CAAkB,UAAA;EAAA,OAgB/B,UAAA,CAAW,GAAA,YAAe,GAAA,IAAO,WAAA;EAAA,IAI3B,gBAAA,CAAA,GAAoB,MAAA;AAAA;;;;AAzCnC;cAqDa,gBAAA,oBACQ,gBAAA,GAAmB,gBAAA,UAC9B,gBAAA,CAAiB,UAAA;EAAA,OAClB,OAAA,CAAA;EAAA,SAIE,IAAA;EAET,IAAA;EAEA,WAAA,CACE,OAAA,EAAS,oBAAA,CAAqB,UAAA,cAC9B,IAAA;EAGF,WAAA,CAAY,MAAA,EAAQ,iBAAA,CAAkB,UAAA;EAgBtC,MAAA,CAAO,KAAA,EAAO,gBAAA,CAAiB,UAAA;EAAA,OAiBxB,UAAA,CAAW,GAAA,YAAe,GAAA,IAAO,gBAAA;EAAA,IAI3B,gBAAA,CAAA,GAAoB,MAAA;AAAA;;;;iBAWnB,aAAA,CAAc,CAAA,EAAG,WAAA,GAAc,CAAA,IAAK,WAAA;;;;iBAOpC,kBAAA,CAAmB,CAAA,EAAG,gBAAA,GAAmB,CAAA,IAAK,gBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","names":["fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>","role?: string","obj: unknown","chunk: ChatMessageChunk<TStructure>","x: BaseMessage","x: BaseMessageChunk"],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n static isInstance(obj: unknown): obj is ChatMessage {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport class ChatMessageChunk<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name() {\n return \"ChatMessageChunk\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n concat(chunk: ChatMessageChunk<TStructure>) {\n const Cls = this.constructor as Constructor<this>;\n return new Cls({\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: _mergeDicts(\n this.response_metadata,\n chunk.response_metadata\n ),\n role: this.role,\n id: this.id ?? chunk.id,\n });\n }\n\n static isInstance(obj: unknown): obj is ChatMessageChunk {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport function isChatMessage(x: BaseMessage): x is ChatMessage {\n return x._getType() === \"generic\";\n}\n\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk {\n return x._getType() === \"generic\";\n}\n"],"mappings":";;;;;;AAmBA,IAAa,cAAb,MAAa,oBACH,YAEV;CACE,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB;CAEA,OAAO,oBAAwC;AAC7C,SAAO;CACR;CASD,YACEA,QAGAC,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,EAErD,SAAS;GAAE,SAAS;GAAc;EAAO;EAE3C,MAAM,OAAO;EACb,KAAK,OAAO,OAAO;CACpB;CAED,OAAO,WAAWC,KAAkC;AAClD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;CAC9C;CAED,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;EACZ;CACF;AACF;;;;;AAMD,IAAa,mBAAb,cAEU,iBAAwC;CAChD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB;CASA,YACEF,QAGAC,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,EAErD,SAAS;GAAE,SAAS;GAAc;EAAO;EAE3C,MAAM,OAAO;EACb,KAAK,OAAO,OAAO;CACpB;CAED,OAAOE,OAAqC;EAC1C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAAS,aAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmB,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmB,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK;GACX,IAAI,KAAK,MAAM,MAAM;EACtB;CACF;CAED,OAAO,WAAWD,KAAuC;AACvD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;CAC9C;CAED,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;EACZ;CACF;AACF;;;;AAKD,SAAgB,cAAcE,GAAkC;AAC9D,QAAO,EAAE,UAAU,KAAK;AACzB;;;;AAKD,SAAgB,mBAAmBC,GAA4C;AAC7E,QAAO,EAAE,UAAU,KAAK;AACzB"}
1
+ {"version":3,"file":"chat.js","names":[],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n static isInstance(obj: unknown): obj is ChatMessage {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport class ChatMessageChunk<\n TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name() {\n return \"ChatMessageChunk\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n concat(chunk: ChatMessageChunk<TStructure>) {\n const Cls = this.constructor as Constructor<this>;\n return new Cls({\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: _mergeDicts(\n this.response_metadata,\n chunk.response_metadata\n ),\n role: this.role,\n id: this.id ?? chunk.id,\n });\n }\n\n static isInstance(obj: unknown): obj is ChatMessageChunk {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport function isChatMessage(x: BaseMessage): x is ChatMessage {\n return x._getType() === \"generic\";\n}\n\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk {\n return x._getType() === \"generic\";\n}\n"],"mappings":";;;;;;AAmBA,IAAa,cAAb,MAAa,oBACH,YAEV;CACE,OAAO,UAAU;AACf,SAAO;;CAGT,AAAS,OAAO;CAEhB;CAEA,OAAO,oBAAwC;AAC7C,SAAO;;CAUT,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,WAAW,KAAkC;AAClD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;;AAQL,IAAa,mBAAb,cAEU,iBAAwC;CAChD,OAAO,UAAU;AACf,SAAO;;CAGT,AAAS,OAAO;CAEhB;CASA,YACE,QAGA,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAErD,UAAS;GAAE,SAAS;GAAc;GAAO;AAE3C,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;CAGrB,OAAO,OAAqC;EAC1C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAAS,aAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmB,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmB,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK;GACX,IAAI,KAAK,MAAM,MAAM;GACtB,CAAC;;CAGJ,OAAO,WAAW,KAAuC;AACvD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;;CAG/C,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;GACZ;;;;;;AAOL,SAAgB,cAAc,GAAkC;AAC9D,QAAO,EAAE,UAAU,KAAK;;;;;AAM1B,SAAgB,mBAAmB,GAA4C;AAC7E,QAAO,EAAE,UAAU,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.cts","names":["BaseContentBlock"],"sources":["../../../src/messages/content/base.d.ts"],"sourcesContent":["export interface BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: string;\n /**\n * Content block identifier, which can be either\n * - generated by the provider (e.g., a provider-specific ID)\n * - generated by LangChain upon creation (a uuid prefixed with 'lc-')\n */\n id?: string;\n /**\n * Arbitrary properties\n */\n [key: string]: unknown;\n}\n//# sourceMappingURL=base.d.ts.map"],"mappings":";UAAiBA,gBAAAA;EAAAA"}
1
+ {"version":3,"file":"base.d.cts","names":[],"sources":["../../../src/messages/content/base.ts"],"mappings":";UAAiB,gBAAA;EAAA;;;EAAA,SAIN,IAAA;EAAA;;;;;EAMT,EAAA;;;;GAIC,GAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":["BaseContentBlock"],"sources":["../../../src/messages/content/base.d.ts"],"sourcesContent":["export interface BaseContentBlock {\n /**\n * Type of the content block\n */\n readonly type: string;\n /**\n * Content block identifier, which can be either\n * - generated by the provider (e.g., a provider-specific ID)\n * - generated by LangChain upon creation (a uuid prefixed with 'lc-')\n */\n id?: string;\n /**\n * Arbitrary properties\n */\n [key: string]: unknown;\n}\n//# sourceMappingURL=base.d.ts.map"],"mappings":";UAAiBA,gBAAAA;EAAAA"}
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/messages/content/base.ts"],"mappings":";UAAiB,gBAAA;EAAA;;;EAAA,SAIN,IAAA;EAAA;;;;;EAMT,EAAA;;;;GAIC,GAAA;AAAA"}
@@ -41,10 +41,9 @@ function convertToOpenAIImageBlock(content_block) {
41
41
  };
42
42
  if (content_block.source_type === "base64") {
43
43
  if (!content_block.mime_type) throw new Error("mime_type key is required for base64 data.");
44
- const mime_type = content_block.mime_type;
45
44
  return {
46
45
  type: "image_url",
47
- image_url: { url: `data:${mime_type};base64,${content_block.data}` }
46
+ image_url: { url: `data:${content_block.mime_type};base64,${content_block.data}` }
48
47
  };
49
48
  }
50
49
  }
@@ -99,7 +98,6 @@ function parseBase64DataUrl({ dataUrl: data_url, asTypedArray = false }) {
99
98
  data
100
99
  };
101
100
  }
102
- return void 0;
103
101
  }
104
102
  /**
105
103
  * Convert from a standard data content block to a provider's proprietary data content block format.