@langchain/core 1.0.0-alpha.2 → 1.0.0-alpha.4

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 (595) hide show
  1. package/README.md +3 -19
  2. package/dist/agents.d.ts.map +1 -1
  3. package/dist/caches/base.cjs +5 -18
  4. package/dist/caches/base.cjs.map +1 -1
  5. package/dist/caches/base.d.cts +4 -20
  6. package/dist/caches/base.d.cts.map +1 -1
  7. package/dist/caches/base.d.ts +4 -20
  8. package/dist/caches/base.d.ts.map +1 -1
  9. package/dist/caches/base.js +5 -18
  10. package/dist/caches/base.js.map +1 -1
  11. package/dist/callbacks/base.d.cts +3 -2
  12. package/dist/callbacks/base.d.cts.map +1 -1
  13. package/dist/callbacks/base.d.ts +3 -2
  14. package/dist/callbacks/base.d.ts.map +1 -1
  15. package/dist/callbacks/manager.d.cts +1 -1
  16. package/dist/callbacks/manager.d.ts +1 -1
  17. package/dist/document_loaders/langsmith.cjs +1 -1
  18. package/dist/document_loaders/langsmith.cjs.map +1 -1
  19. package/dist/document_loaders/langsmith.js +1 -1
  20. package/dist/document_loaders/langsmith.js.map +1 -1
  21. package/dist/embeddings.cjs.map +1 -1
  22. package/dist/embeddings.d.cts +6 -6
  23. package/dist/embeddings.d.cts.map +1 -1
  24. package/dist/embeddings.d.ts +6 -6
  25. package/dist/embeddings.d.ts.map +1 -1
  26. package/dist/embeddings.js.map +1 -1
  27. package/dist/errors/index.cjs.map +1 -1
  28. package/dist/errors/index.js.map +1 -1
  29. package/dist/indexing/base.cjs +2 -2
  30. package/dist/indexing/base.cjs.map +1 -1
  31. package/dist/indexing/base.d.cts +0 -3
  32. package/dist/indexing/base.d.cts.map +1 -1
  33. package/dist/indexing/base.d.ts +0 -3
  34. package/dist/indexing/base.d.ts.map +1 -1
  35. package/dist/indexing/base.js +2 -2
  36. package/dist/indexing/base.js.map +1 -1
  37. package/dist/language_models/base.cjs +1 -1
  38. package/dist/language_models/base.cjs.map +1 -1
  39. package/dist/language_models/base.d.cts +4 -4
  40. package/dist/language_models/base.d.cts.map +1 -1
  41. package/dist/language_models/base.d.ts +4 -4
  42. package/dist/language_models/base.d.ts.map +1 -1
  43. package/dist/language_models/base.js +1 -1
  44. package/dist/language_models/base.js.map +1 -1
  45. package/dist/language_models/chat_models.cjs +1 -0
  46. package/dist/language_models/chat_models.cjs.map +1 -1
  47. package/dist/language_models/chat_models.d.cts +2 -1
  48. package/dist/language_models/chat_models.d.cts.map +1 -1
  49. package/dist/language_models/chat_models.d.ts +2 -1
  50. package/dist/language_models/chat_models.d.ts.map +1 -1
  51. package/dist/language_models/chat_models.js +2 -1
  52. package/dist/language_models/chat_models.js.map +1 -1
  53. package/dist/language_models/llms.cjs.map +1 -1
  54. package/dist/language_models/llms.js.map +1 -1
  55. package/dist/load/import_map.cjs +1 -5
  56. package/dist/load/import_map.cjs.map +1 -1
  57. package/dist/load/import_map.js +3 -7
  58. package/dist/load/import_map.js.map +1 -1
  59. package/dist/load/index.cjs.map +1 -1
  60. package/dist/load/index.js.map +1 -1
  61. package/dist/load/serializable.cjs.map +1 -1
  62. package/dist/load/serializable.d.cts +1 -3
  63. package/dist/load/serializable.d.cts.map +1 -1
  64. package/dist/load/serializable.d.ts +1 -3
  65. package/dist/load/serializable.d.ts.map +1 -1
  66. package/dist/load/serializable.js.map +1 -1
  67. package/dist/messages/ai.cjs +34 -62
  68. package/dist/messages/ai.cjs.map +1 -1
  69. package/dist/messages/ai.d.cts +26 -119
  70. package/dist/messages/ai.d.cts.map +1 -1
  71. package/dist/messages/ai.d.ts +26 -119
  72. package/dist/messages/ai.d.ts.map +1 -1
  73. package/dist/messages/ai.js +34 -62
  74. package/dist/messages/ai.js.map +1 -1
  75. package/dist/messages/base.cjs +53 -33
  76. package/dist/messages/base.cjs.map +1 -1
  77. package/dist/messages/base.d.cts +38 -41
  78. package/dist/messages/base.d.cts.map +1 -1
  79. package/dist/messages/base.d.ts +38 -41
  80. package/dist/messages/base.d.ts.map +1 -1
  81. package/dist/messages/base.js +53 -33
  82. package/dist/messages/base.js.map +1 -1
  83. package/dist/messages/block_translators/utils.cjs +1 -1
  84. package/dist/messages/block_translators/utils.cjs.map +1 -1
  85. package/dist/messages/block_translators/utils.js +1 -1
  86. package/dist/messages/block_translators/utils.js.map +1 -1
  87. package/dist/messages/chat.cjs +18 -12
  88. package/dist/messages/chat.cjs.map +1 -1
  89. package/dist/messages/chat.d.cts +21 -13
  90. package/dist/messages/chat.d.cts.map +1 -1
  91. package/dist/messages/chat.d.ts +21 -13
  92. package/dist/messages/chat.d.ts.map +1 -1
  93. package/dist/messages/chat.js +18 -12
  94. package/dist/messages/chat.js.map +1 -1
  95. package/dist/messages/content/index.cjs.map +1 -1
  96. package/dist/messages/content/index.d.cts +1 -1
  97. package/dist/messages/content/index.d.cts.map +1 -1
  98. package/dist/messages/content/index.d.ts +1 -1
  99. package/dist/messages/content/index.d.ts.map +1 -1
  100. package/dist/messages/content/index.js.map +1 -1
  101. package/dist/messages/function.cjs +8 -13
  102. package/dist/messages/function.cjs.map +1 -1
  103. package/dist/messages/function.d.cts +11 -11
  104. package/dist/messages/function.d.cts.map +1 -1
  105. package/dist/messages/function.d.ts +11 -11
  106. package/dist/messages/function.d.ts.map +1 -1
  107. package/dist/messages/function.js +8 -13
  108. package/dist/messages/function.js.map +1 -1
  109. package/dist/messages/human.cjs +20 -11
  110. package/dist/messages/human.cjs.map +1 -1
  111. package/dist/messages/human.d.cts +20 -15
  112. package/dist/messages/human.d.cts.map +1 -1
  113. package/dist/messages/human.d.ts +20 -15
  114. package/dist/messages/human.d.ts.map +1 -1
  115. package/dist/messages/human.js +20 -11
  116. package/dist/messages/human.js.map +1 -1
  117. package/dist/messages/index.cjs +11 -1
  118. package/dist/messages/index.cjs.map +1 -1
  119. package/dist/messages/index.d.cts +9 -7
  120. package/dist/messages/index.d.ts +9 -7
  121. package/dist/messages/index.js +8 -2
  122. package/dist/messages/index.js.map +1 -1
  123. package/dist/messages/message.cjs +15 -0
  124. package/dist/messages/message.cjs.map +1 -0
  125. package/dist/messages/message.d.cts +598 -0
  126. package/dist/messages/message.d.cts.map +1 -0
  127. package/dist/messages/message.d.ts +598 -0
  128. package/dist/messages/message.d.ts.map +1 -0
  129. package/dist/messages/message.js +14 -0
  130. package/dist/messages/message.js.map +1 -0
  131. package/dist/messages/metadata.cjs +41 -0
  132. package/dist/messages/metadata.cjs.map +1 -0
  133. package/dist/messages/metadata.d.cts +98 -0
  134. package/dist/messages/metadata.d.cts.map +1 -0
  135. package/dist/messages/metadata.d.ts +98 -0
  136. package/dist/messages/metadata.d.ts.map +1 -0
  137. package/dist/messages/metadata.js +40 -0
  138. package/dist/messages/metadata.js.map +1 -0
  139. package/dist/messages/modifier.cjs +5 -4
  140. package/dist/messages/modifier.cjs.map +1 -1
  141. package/dist/messages/modifier.d.cts +7 -5
  142. package/dist/messages/modifier.d.cts.map +1 -1
  143. package/dist/messages/modifier.d.ts +7 -5
  144. package/dist/messages/modifier.d.ts.map +1 -1
  145. package/dist/messages/modifier.js +5 -4
  146. package/dist/messages/modifier.js.map +1 -1
  147. package/dist/messages/system.cjs +20 -11
  148. package/dist/messages/system.cjs.map +1 -1
  149. package/dist/messages/system.d.cts +20 -15
  150. package/dist/messages/system.d.cts.map +1 -1
  151. package/dist/messages/system.d.ts +20 -15
  152. package/dist/messages/system.d.ts.map +1 -1
  153. package/dist/messages/system.js +20 -11
  154. package/dist/messages/system.js.map +1 -1
  155. package/dist/messages/tool.cjs +21 -19
  156. package/dist/messages/tool.cjs.map +1 -1
  157. package/dist/messages/tool.d.cts +72 -46
  158. package/dist/messages/tool.d.cts.map +1 -1
  159. package/dist/messages/tool.d.ts +72 -46
  160. package/dist/messages/tool.d.ts.map +1 -1
  161. package/dist/messages/tool.js +21 -19
  162. package/dist/messages/tool.js.map +1 -1
  163. package/dist/messages/transformers.cjs +2 -2
  164. package/dist/messages/transformers.cjs.map +1 -1
  165. package/dist/messages/transformers.d.cts +2 -1
  166. package/dist/messages/transformers.d.cts.map +1 -1
  167. package/dist/messages/transformers.d.ts +2 -1
  168. package/dist/messages/transformers.d.ts.map +1 -1
  169. package/dist/messages/transformers.js +2 -2
  170. package/dist/messages/transformers.js.map +1 -1
  171. package/dist/messages/utils.cjs +13 -1
  172. package/dist/messages/utils.cjs.map +1 -1
  173. package/dist/messages/utils.d.cts +83 -3
  174. package/dist/messages/utils.d.cts.map +1 -1
  175. package/dist/messages/utils.d.ts +83 -3
  176. package/dist/messages/utils.d.ts.map +1 -1
  177. package/dist/messages/utils.js +13 -2
  178. package/dist/messages/utils.js.map +1 -1
  179. package/dist/output_parsers/list.cjs +1 -1
  180. package/dist/output_parsers/list.cjs.map +1 -1
  181. package/dist/output_parsers/list.js +1 -1
  182. package/dist/output_parsers/list.js.map +1 -1
  183. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.cts +1 -1
  184. package/dist/output_parsers/openai_functions/json_output_functions_parsers.d.ts +1 -1
  185. package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs +1 -1
  186. package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs.map +1 -1
  187. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.cts +1 -1
  188. package/dist/output_parsers/openai_tools/json_output_tools_parsers.d.ts +1 -1
  189. package/dist/output_parsers/openai_tools/json_output_tools_parsers.js +1 -1
  190. package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
  191. package/dist/output_parsers/structured.cjs +2 -1
  192. package/dist/output_parsers/structured.cjs.map +1 -1
  193. package/dist/output_parsers/structured.js +2 -1
  194. package/dist/output_parsers/structured.js.map +1 -1
  195. package/dist/prompt_values.d.cts +4 -3
  196. package/dist/prompt_values.d.cts.map +1 -1
  197. package/dist/prompt_values.d.ts +4 -3
  198. package/dist/prompt_values.d.ts.map +1 -1
  199. package/dist/prompts/chat.cjs +3 -1
  200. package/dist/prompts/chat.cjs.map +1 -1
  201. package/dist/prompts/chat.d.cts +7 -15
  202. package/dist/prompts/chat.d.cts.map +1 -1
  203. package/dist/prompts/chat.d.ts +7 -15
  204. package/dist/prompts/chat.d.ts.map +1 -1
  205. package/dist/prompts/chat.js +3 -1
  206. package/dist/prompts/chat.js.map +1 -1
  207. package/dist/prompts/few_shot.d.cts +1 -1
  208. package/dist/prompts/few_shot.d.ts +1 -1
  209. package/dist/prompts/image.cjs.map +1 -1
  210. package/dist/prompts/image.d.cts +1 -3
  211. package/dist/prompts/image.d.cts.map +1 -1
  212. package/dist/prompts/image.d.ts +1 -3
  213. package/dist/prompts/image.d.ts.map +1 -1
  214. package/dist/prompts/image.js.map +1 -1
  215. package/dist/prompts/pipeline.cjs.map +1 -1
  216. package/dist/prompts/pipeline.js.map +1 -1
  217. package/dist/prompts/prompt.cjs.map +1 -1
  218. package/dist/prompts/prompt.d.cts +5 -17
  219. package/dist/prompts/prompt.d.cts.map +1 -1
  220. package/dist/prompts/prompt.d.ts +5 -17
  221. package/dist/prompts/prompt.d.ts.map +1 -1
  222. package/dist/prompts/prompt.js.map +1 -1
  223. package/dist/prompts/structured.cjs.map +1 -1
  224. package/dist/prompts/structured.js.map +1 -1
  225. package/dist/prompts/template.cjs +4 -2
  226. package/dist/prompts/template.cjs.map +1 -1
  227. package/dist/prompts/template.d.cts +1 -1
  228. package/dist/prompts/template.d.ts +1 -1
  229. package/dist/prompts/template.js +4 -2
  230. package/dist/prompts/template.js.map +1 -1
  231. package/dist/runnables/base.cjs +6 -6
  232. package/dist/runnables/base.cjs.map +1 -1
  233. package/dist/runnables/base.d.cts +1 -4
  234. package/dist/runnables/base.d.cts.map +1 -1
  235. package/dist/runnables/base.d.ts +1 -4
  236. package/dist/runnables/base.d.ts.map +1 -1
  237. package/dist/runnables/base.js +6 -6
  238. package/dist/runnables/base.js.map +1 -1
  239. package/dist/runnables/branch.cjs +2 -2
  240. package/dist/runnables/branch.cjs.map +1 -1
  241. package/dist/runnables/branch.js +2 -2
  242. package/dist/runnables/branch.js.map +1 -1
  243. package/dist/runnables/config.cjs.map +1 -1
  244. package/dist/runnables/config.js.map +1 -1
  245. package/dist/runnables/graph.cjs +1 -1
  246. package/dist/runnables/graph.cjs.map +1 -1
  247. package/dist/runnables/graph.js +1 -1
  248. package/dist/runnables/graph.js.map +1 -1
  249. package/dist/runnables/graph_mermaid.cjs +26 -3
  250. package/dist/runnables/graph_mermaid.cjs.map +1 -1
  251. package/dist/runnables/graph_mermaid.js +26 -3
  252. package/dist/runnables/graph_mermaid.js.map +1 -1
  253. package/dist/runnables/remote.cjs.map +1 -1
  254. package/dist/runnables/remote.js.map +1 -1
  255. package/dist/runnables/types.d.cts +0 -1
  256. package/dist/runnables/types.d.cts.map +1 -1
  257. package/dist/runnables/types.d.ts +0 -1
  258. package/dist/runnables/types.d.ts.map +1 -1
  259. package/dist/singletons/async_local_storage/context.cjs.map +1 -1
  260. package/dist/singletons/async_local_storage/context.d.cts +0 -1
  261. package/dist/singletons/async_local_storage/context.d.cts.map +1 -1
  262. package/dist/singletons/async_local_storage/context.d.ts +0 -1
  263. package/dist/singletons/async_local_storage/context.d.ts.map +1 -1
  264. package/dist/singletons/async_local_storage/context.js.map +1 -1
  265. package/dist/singletons/callbacks.cjs.map +1 -1
  266. package/dist/singletons/callbacks.js.map +1 -1
  267. package/dist/tools/index.cjs.map +1 -1
  268. package/dist/tools/index.d.cts +3 -3
  269. package/dist/tools/index.d.cts.map +1 -1
  270. package/dist/tools/index.d.ts +3 -3
  271. package/dist/tools/index.d.ts.map +1 -1
  272. package/dist/tools/index.js.map +1 -1
  273. package/dist/tools/types.d.cts +6 -6
  274. package/dist/tools/types.d.cts.map +1 -1
  275. package/dist/tools/types.d.ts +6 -6
  276. package/dist/tools/types.d.ts.map +1 -1
  277. package/dist/tracers/base.cjs.map +1 -1
  278. package/dist/tracers/base.d.cts +1 -1
  279. package/dist/tracers/base.d.ts +1 -1
  280. package/dist/tracers/base.js.map +1 -1
  281. package/dist/tracers/console.cjs +1 -1
  282. package/dist/tracers/console.cjs.map +1 -1
  283. package/dist/tracers/console.js +1 -1
  284. package/dist/tracers/console.js.map +1 -1
  285. package/dist/tracers/event_stream.cjs +1 -1
  286. package/dist/tracers/event_stream.cjs.map +1 -1
  287. package/dist/tracers/event_stream.d.cts +0 -1
  288. package/dist/tracers/event_stream.d.cts.map +1 -1
  289. package/dist/tracers/event_stream.d.ts +0 -1
  290. package/dist/tracers/event_stream.d.ts.map +1 -1
  291. package/dist/tracers/event_stream.js +1 -1
  292. package/dist/tracers/event_stream.js.map +1 -1
  293. package/dist/tracers/log_stream.cjs.map +1 -1
  294. package/dist/tracers/log_stream.js.map +1 -1
  295. package/dist/tracers/tracer_langchain.cjs.map +1 -1
  296. package/dist/tracers/tracer_langchain.js.map +1 -1
  297. package/dist/tracers/tracer_langchain_v1.d.cts +1 -1
  298. package/dist/tracers/tracer_langchain_v1.d.ts +1 -1
  299. package/dist/utils/chunk_array.cjs.map +1 -1
  300. package/dist/utils/chunk_array.js.map +1 -1
  301. package/dist/utils/env.cjs +1 -1
  302. package/dist/utils/env.cjs.map +1 -1
  303. package/dist/utils/env.js +1 -1
  304. package/dist/utils/env.js.map +1 -1
  305. package/dist/utils/event_source_parse.cjs.map +1 -1
  306. package/dist/utils/event_source_parse.d.cts.map +1 -1
  307. package/dist/utils/event_source_parse.d.ts.map +1 -1
  308. package/dist/utils/event_source_parse.js.map +1 -1
  309. package/dist/utils/hash.cjs +3 -8
  310. package/dist/utils/hash.cjs.map +1 -1
  311. package/dist/utils/hash.d.cts +1 -2
  312. package/dist/utils/hash.d.cts.map +1 -1
  313. package/dist/utils/hash.d.ts +1 -2
  314. package/dist/utils/hash.d.ts.map +1 -1
  315. package/dist/utils/hash.js +2 -6
  316. package/dist/utils/hash.js.map +1 -1
  317. package/dist/utils/js-sha256/hash.cjs +0 -9
  318. package/dist/utils/js-sha256/hash.cjs.map +1 -1
  319. package/dist/utils/js-sha256/hash.js +1 -5
  320. package/dist/utils/js-sha256/hash.js.map +1 -1
  321. package/dist/utils/json.cjs +2 -2
  322. package/dist/utils/json.cjs.map +1 -1
  323. package/dist/utils/json.js +2 -2
  324. package/dist/utils/json.js.map +1 -1
  325. package/dist/utils/json_schema.cjs +3 -2
  326. package/dist/utils/json_schema.cjs.map +1 -1
  327. package/dist/utils/json_schema.d.cts +8 -4
  328. package/dist/utils/json_schema.d.cts.map +1 -1
  329. package/dist/utils/json_schema.d.ts +8 -4
  330. package/dist/utils/json_schema.d.ts.map +1 -1
  331. package/dist/utils/json_schema.js +2 -1
  332. package/dist/utils/json_schema.js.map +1 -1
  333. package/dist/utils/stream.cjs.map +1 -1
  334. package/dist/utils/stream.js.map +1 -1
  335. package/dist/utils/testing/index.cjs.map +1 -1
  336. package/dist/utils/testing/index.d.cts +8 -12
  337. package/dist/utils/testing/index.d.cts.map +1 -1
  338. package/dist/utils/testing/index.d.ts +8 -12
  339. package/dist/utils/testing/index.d.ts.map +1 -1
  340. package/dist/utils/testing/index.js.map +1 -1
  341. package/dist/utils/zod-to-json-schema/Options.cjs +40 -0
  342. package/dist/utils/zod-to-json-schema/Options.cjs.map +1 -0
  343. package/dist/utils/zod-to-json-schema/Options.js +37 -0
  344. package/dist/utils/zod-to-json-schema/Options.js.map +1 -0
  345. package/dist/utils/zod-to-json-schema/Refs.cjs +30 -0
  346. package/dist/utils/zod-to-json-schema/Refs.cjs.map +1 -0
  347. package/dist/utils/zod-to-json-schema/Refs.js +30 -0
  348. package/dist/utils/zod-to-json-schema/Refs.js.map +1 -0
  349. package/dist/utils/zod-to-json-schema/errorMessages.cjs +18 -0
  350. package/dist/utils/zod-to-json-schema/errorMessages.cjs.map +1 -0
  351. package/dist/utils/zod-to-json-schema/errorMessages.d.cts +11 -0
  352. package/dist/utils/zod-to-json-schema/errorMessages.d.cts.map +1 -0
  353. package/dist/utils/zod-to-json-schema/errorMessages.d.ts +11 -0
  354. package/dist/utils/zod-to-json-schema/errorMessages.d.ts.map +1 -0
  355. package/dist/utils/zod-to-json-schema/errorMessages.js +16 -0
  356. package/dist/utils/zod-to-json-schema/errorMessages.js.map +1 -0
  357. package/dist/utils/zod-to-json-schema/getRelativePath.cjs +11 -0
  358. package/dist/utils/zod-to-json-schema/getRelativePath.cjs.map +1 -0
  359. package/dist/utils/zod-to-json-schema/getRelativePath.js +10 -0
  360. package/dist/utils/zod-to-json-schema/getRelativePath.js.map +1 -0
  361. package/dist/utils/zod-to-json-schema/index.cjs +37 -0
  362. package/dist/utils/zod-to-json-schema/index.js +37 -0
  363. package/dist/utils/zod-to-json-schema/parseDef.cjs +57 -0
  364. package/dist/utils/zod-to-json-schema/parseDef.cjs.map +1 -0
  365. package/dist/utils/zod-to-json-schema/parseDef.js +57 -0
  366. package/dist/utils/zod-to-json-schema/parseDef.js.map +1 -0
  367. package/dist/utils/zod-to-json-schema/parseTypes.d.cts +38 -0
  368. package/dist/utils/zod-to-json-schema/parseTypes.d.cts.map +1 -0
  369. package/dist/utils/zod-to-json-schema/parseTypes.d.ts +38 -0
  370. package/dist/utils/zod-to-json-schema/parseTypes.d.ts.map +1 -0
  371. package/dist/utils/zod-to-json-schema/parsers/any.cjs +17 -0
  372. package/dist/utils/zod-to-json-schema/parsers/any.cjs.map +1 -0
  373. package/dist/utils/zod-to-json-schema/parsers/any.d.cts +7 -0
  374. package/dist/utils/zod-to-json-schema/parsers/any.d.cts.map +1 -0
  375. package/dist/utils/zod-to-json-schema/parsers/any.d.ts +7 -0
  376. package/dist/utils/zod-to-json-schema/parsers/any.d.ts.map +1 -0
  377. package/dist/utils/zod-to-json-schema/parsers/any.js +17 -0
  378. package/dist/utils/zod-to-json-schema/parsers/any.js.map +1 -0
  379. package/dist/utils/zod-to-json-schema/parsers/array.cjs +24 -0
  380. package/dist/utils/zod-to-json-schema/parsers/array.cjs.map +1 -0
  381. package/dist/utils/zod-to-json-schema/parsers/array.d.cts +14 -0
  382. package/dist/utils/zod-to-json-schema/parsers/array.d.cts.map +1 -0
  383. package/dist/utils/zod-to-json-schema/parsers/array.d.ts +15 -0
  384. package/dist/utils/zod-to-json-schema/parsers/array.d.ts.map +1 -0
  385. package/dist/utils/zod-to-json-schema/parsers/array.js +23 -0
  386. package/dist/utils/zod-to-json-schema/parsers/array.js.map +1 -0
  387. package/dist/utils/zod-to-json-schema/parsers/bigint.cjs +36 -0
  388. package/dist/utils/zod-to-json-schema/parsers/bigint.cjs.map +1 -0
  389. package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts +16 -0
  390. package/dist/utils/zod-to-json-schema/parsers/bigint.d.cts.map +1 -0
  391. package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts +17 -0
  392. package/dist/utils/zod-to-json-schema/parsers/bigint.d.ts.map +1 -0
  393. package/dist/utils/zod-to-json-schema/parsers/bigint.js +36 -0
  394. package/dist/utils/zod-to-json-schema/parsers/bigint.js.map +1 -0
  395. package/dist/utils/zod-to-json-schema/parsers/boolean.cjs +9 -0
  396. package/dist/utils/zod-to-json-schema/parsers/boolean.cjs.map +1 -0
  397. package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts +7 -0
  398. package/dist/utils/zod-to-json-schema/parsers/boolean.d.cts.map +1 -0
  399. package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts +7 -0
  400. package/dist/utils/zod-to-json-schema/parsers/boolean.d.ts.map +1 -0
  401. package/dist/utils/zod-to-json-schema/parsers/boolean.js +8 -0
  402. package/dist/utils/zod-to-json-schema/parsers/boolean.js.map +1 -0
  403. package/dist/utils/zod-to-json-schema/parsers/branded.cjs +10 -0
  404. package/dist/utils/zod-to-json-schema/parsers/branded.cjs.map +1 -0
  405. package/dist/utils/zod-to-json-schema/parsers/branded.js +10 -0
  406. package/dist/utils/zod-to-json-schema/parsers/branded.js.map +1 -0
  407. package/dist/utils/zod-to-json-schema/parsers/catch.cjs +10 -0
  408. package/dist/utils/zod-to-json-schema/parsers/catch.cjs.map +1 -0
  409. package/dist/utils/zod-to-json-schema/parsers/catch.js +10 -0
  410. package/dist/utils/zod-to-json-schema/parsers/catch.js.map +1 -0
  411. package/dist/utils/zod-to-json-schema/parsers/date.cjs +39 -0
  412. package/dist/utils/zod-to-json-schema/parsers/date.cjs.map +1 -0
  413. package/dist/utils/zod-to-json-schema/parsers/date.d.cts +17 -0
  414. package/dist/utils/zod-to-json-schema/parsers/date.d.cts.map +1 -0
  415. package/dist/utils/zod-to-json-schema/parsers/date.d.ts +17 -0
  416. package/dist/utils/zod-to-json-schema/parsers/date.d.ts.map +1 -0
  417. package/dist/utils/zod-to-json-schema/parsers/date.js +39 -0
  418. package/dist/utils/zod-to-json-schema/parsers/date.js.map +1 -0
  419. package/dist/utils/zod-to-json-schema/parsers/default.cjs +13 -0
  420. package/dist/utils/zod-to-json-schema/parsers/default.cjs.map +1 -0
  421. package/dist/utils/zod-to-json-schema/parsers/default.js +13 -0
  422. package/dist/utils/zod-to-json-schema/parsers/default.js.map +1 -0
  423. package/dist/utils/zod-to-json-schema/parsers/effects.cjs +11 -0
  424. package/dist/utils/zod-to-json-schema/parsers/effects.cjs.map +1 -0
  425. package/dist/utils/zod-to-json-schema/parsers/effects.js +11 -0
  426. package/dist/utils/zod-to-json-schema/parsers/effects.js.map +1 -0
  427. package/dist/utils/zod-to-json-schema/parsers/enum.cjs +12 -0
  428. package/dist/utils/zod-to-json-schema/parsers/enum.cjs.map +1 -0
  429. package/dist/utils/zod-to-json-schema/parsers/enum.d.cts +8 -0
  430. package/dist/utils/zod-to-json-schema/parsers/enum.d.cts.map +1 -0
  431. package/dist/utils/zod-to-json-schema/parsers/enum.d.ts +10 -0
  432. package/dist/utils/zod-to-json-schema/parsers/enum.d.ts.map +1 -0
  433. package/dist/utils/zod-to-json-schema/parsers/enum.js +11 -0
  434. package/dist/utils/zod-to-json-schema/parsers/enum.js.map +1 -0
  435. package/dist/utils/zod-to-json-schema/parsers/intersection.cjs +47 -0
  436. package/dist/utils/zod-to-json-schema/parsers/intersection.cjs.map +1 -0
  437. package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts +10 -0
  438. package/dist/utils/zod-to-json-schema/parsers/intersection.d.cts.map +1 -0
  439. package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts +11 -0
  440. package/dist/utils/zod-to-json-schema/parsers/intersection.d.ts.map +1 -0
  441. package/dist/utils/zod-to-json-schema/parsers/intersection.js +47 -0
  442. package/dist/utils/zod-to-json-schema/parsers/intersection.js.map +1 -0
  443. package/dist/utils/zod-to-json-schema/parsers/literal.cjs +18 -0
  444. package/dist/utils/zod-to-json-schema/parsers/literal.cjs.map +1 -0
  445. package/dist/utils/zod-to-json-schema/parsers/literal.d.cts +11 -0
  446. package/dist/utils/zod-to-json-schema/parsers/literal.d.cts.map +1 -0
  447. package/dist/utils/zod-to-json-schema/parsers/literal.d.ts +12 -0
  448. package/dist/utils/zod-to-json-schema/parsers/literal.d.ts.map +1 -0
  449. package/dist/utils/zod-to-json-schema/parsers/literal.js +17 -0
  450. package/dist/utils/zod-to-json-schema/parsers/literal.js.map +1 -0
  451. package/dist/utils/zod-to-json-schema/parsers/map.cjs +40 -0
  452. package/dist/utils/zod-to-json-schema/parsers/map.cjs.map +1 -0
  453. package/dist/utils/zod-to-json-schema/parsers/map.d.cts +17 -0
  454. package/dist/utils/zod-to-json-schema/parsers/map.d.cts.map +1 -0
  455. package/dist/utils/zod-to-json-schema/parsers/map.d.ts +17 -0
  456. package/dist/utils/zod-to-json-schema/parsers/map.d.ts.map +1 -0
  457. package/dist/utils/zod-to-json-schema/parsers/map.js +40 -0
  458. package/dist/utils/zod-to-json-schema/parsers/map.js.map +1 -0
  459. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs +18 -0
  460. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs.map +1 -0
  461. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts +8 -0
  462. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.cts.map +1 -0
  463. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts +10 -0
  464. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.d.ts.map +1 -0
  465. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js +17 -0
  466. package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js.map +1 -0
  467. package/dist/utils/zod-to-json-schema/parsers/never.cjs +13 -0
  468. package/dist/utils/zod-to-json-schema/parsers/never.cjs.map +1 -0
  469. package/dist/utils/zod-to-json-schema/parsers/never.d.cts +9 -0
  470. package/dist/utils/zod-to-json-schema/parsers/never.d.cts.map +1 -0
  471. package/dist/utils/zod-to-json-schema/parsers/never.d.ts +9 -0
  472. package/dist/utils/zod-to-json-schema/parsers/never.d.ts.map +1 -0
  473. package/dist/utils/zod-to-json-schema/parsers/never.js +13 -0
  474. package/dist/utils/zod-to-json-schema/parsers/never.js.map +1 -0
  475. package/dist/utils/zod-to-json-schema/parsers/null.cjs +12 -0
  476. package/dist/utils/zod-to-json-schema/parsers/null.cjs.map +1 -0
  477. package/dist/utils/zod-to-json-schema/parsers/null.d.cts +7 -0
  478. package/dist/utils/zod-to-json-schema/parsers/null.d.cts.map +1 -0
  479. package/dist/utils/zod-to-json-schema/parsers/null.d.ts +7 -0
  480. package/dist/utils/zod-to-json-schema/parsers/null.d.ts.map +1 -0
  481. package/dist/utils/zod-to-json-schema/parsers/null.js +11 -0
  482. package/dist/utils/zod-to-json-schema/parsers/null.js.map +1 -0
  483. package/dist/utils/zod-to-json-schema/parsers/nullable.cjs +46 -0
  484. package/dist/utils/zod-to-json-schema/parsers/nullable.cjs.map +1 -0
  485. package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts +12 -0
  486. package/dist/utils/zod-to-json-schema/parsers/nullable.d.cts.map +1 -0
  487. package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts +13 -0
  488. package/dist/utils/zod-to-json-schema/parsers/nullable.d.ts.map +1 -0
  489. package/dist/utils/zod-to-json-schema/parsers/nullable.js +46 -0
  490. package/dist/utils/zod-to-json-schema/parsers/nullable.js.map +1 -0
  491. package/dist/utils/zod-to-json-schema/parsers/number.cjs +37 -0
  492. package/dist/utils/zod-to-json-schema/parsers/number.cjs.map +1 -0
  493. package/dist/utils/zod-to-json-schema/parsers/number.d.cts +15 -0
  494. package/dist/utils/zod-to-json-schema/parsers/number.d.cts.map +1 -0
  495. package/dist/utils/zod-to-json-schema/parsers/number.d.ts +16 -0
  496. package/dist/utils/zod-to-json-schema/parsers/number.d.ts.map +1 -0
  497. package/dist/utils/zod-to-json-schema/parsers/number.js +37 -0
  498. package/dist/utils/zod-to-json-schema/parsers/number.js.map +1 -0
  499. package/dist/utils/zod-to-json-schema/parsers/object.cjs +64 -0
  500. package/dist/utils/zod-to-json-schema/parsers/object.cjs.map +1 -0
  501. package/dist/utils/zod-to-json-schema/parsers/object.d.cts +12 -0
  502. package/dist/utils/zod-to-json-schema/parsers/object.d.cts.map +1 -0
  503. package/dist/utils/zod-to-json-schema/parsers/object.d.ts +13 -0
  504. package/dist/utils/zod-to-json-schema/parsers/object.d.ts.map +1 -0
  505. package/dist/utils/zod-to-json-schema/parsers/object.js +64 -0
  506. package/dist/utils/zod-to-json-schema/parsers/object.js.map +1 -0
  507. package/dist/utils/zod-to-json-schema/parsers/optional.cjs +20 -0
  508. package/dist/utils/zod-to-json-schema/parsers/optional.cjs.map +1 -0
  509. package/dist/utils/zod-to-json-schema/parsers/optional.js +20 -0
  510. package/dist/utils/zod-to-json-schema/parsers/optional.js.map +1 -0
  511. package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs +28 -0
  512. package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs.map +1 -0
  513. package/dist/utils/zod-to-json-schema/parsers/pipeline.js +28 -0
  514. package/dist/utils/zod-to-json-schema/parsers/pipeline.js.map +1 -0
  515. package/dist/utils/zod-to-json-schema/parsers/promise.cjs +10 -0
  516. package/dist/utils/zod-to-json-schema/parsers/promise.cjs.map +1 -0
  517. package/dist/utils/zod-to-json-schema/parsers/promise.js +10 -0
  518. package/dist/utils/zod-to-json-schema/parsers/promise.js.map +1 -0
  519. package/dist/utils/zod-to-json-schema/parsers/readonly.cjs +10 -0
  520. package/dist/utils/zod-to-json-schema/parsers/readonly.cjs.map +1 -0
  521. package/dist/utils/zod-to-json-schema/parsers/readonly.js +10 -0
  522. package/dist/utils/zod-to-json-schema/parsers/readonly.js.map +1 -0
  523. package/dist/utils/zod-to-json-schema/parsers/record.cjs +57 -0
  524. package/dist/utils/zod-to-json-schema/parsers/record.cjs.map +1 -0
  525. package/dist/utils/zod-to-json-schema/parsers/record.d.cts +14 -0
  526. package/dist/utils/zod-to-json-schema/parsers/record.d.cts.map +1 -0
  527. package/dist/utils/zod-to-json-schema/parsers/record.d.ts +15 -0
  528. package/dist/utils/zod-to-json-schema/parsers/record.d.ts.map +1 -0
  529. package/dist/utils/zod-to-json-schema/parsers/record.js +56 -0
  530. package/dist/utils/zod-to-json-schema/parsers/record.js.map +1 -0
  531. package/dist/utils/zod-to-json-schema/parsers/set.cjs +22 -0
  532. package/dist/utils/zod-to-json-schema/parsers/set.cjs.map +1 -0
  533. package/dist/utils/zod-to-json-schema/parsers/set.d.cts +15 -0
  534. package/dist/utils/zod-to-json-schema/parsers/set.d.cts.map +1 -0
  535. package/dist/utils/zod-to-json-schema/parsers/set.d.ts +16 -0
  536. package/dist/utils/zod-to-json-schema/parsers/set.d.ts.map +1 -0
  537. package/dist/utils/zod-to-json-schema/parsers/set.js +22 -0
  538. package/dist/utils/zod-to-json-schema/parsers/set.js.map +1 -0
  539. package/dist/utils/zod-to-json-schema/parsers/string.cjs +255 -0
  540. package/dist/utils/zod-to-json-schema/parsers/string.cjs.map +1 -0
  541. package/dist/utils/zod-to-json-schema/parsers/string.d.cts +28 -0
  542. package/dist/utils/zod-to-json-schema/parsers/string.d.cts.map +1 -0
  543. package/dist/utils/zod-to-json-schema/parsers/string.d.ts +29 -0
  544. package/dist/utils/zod-to-json-schema/parsers/string.d.ts.map +1 -0
  545. package/dist/utils/zod-to-json-schema/parsers/string.js +254 -0
  546. package/dist/utils/zod-to-json-schema/parsers/string.js.map +1 -0
  547. package/dist/utils/zod-to-json-schema/parsers/tuple.cjs +38 -0
  548. package/dist/utils/zod-to-json-schema/parsers/tuple.cjs.map +1 -0
  549. package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts +15 -0
  550. package/dist/utils/zod-to-json-schema/parsers/tuple.d.cts.map +1 -0
  551. package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts +16 -0
  552. package/dist/utils/zod-to-json-schema/parsers/tuple.d.ts.map +1 -0
  553. package/dist/utils/zod-to-json-schema/parsers/tuple.js +38 -0
  554. package/dist/utils/zod-to-json-schema/parsers/tuple.js.map +1 -0
  555. package/dist/utils/zod-to-json-schema/parsers/undefined.cjs +10 -0
  556. package/dist/utils/zod-to-json-schema/parsers/undefined.cjs.map +1 -0
  557. package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts +9 -0
  558. package/dist/utils/zod-to-json-schema/parsers/undefined.d.cts.map +1 -0
  559. package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts +9 -0
  560. package/dist/utils/zod-to-json-schema/parsers/undefined.d.ts.map +1 -0
  561. package/dist/utils/zod-to-json-schema/parsers/undefined.js +10 -0
  562. package/dist/utils/zod-to-json-schema/parsers/undefined.js.map +1 -0
  563. package/dist/utils/zod-to-json-schema/parsers/union.cjs +67 -0
  564. package/dist/utils/zod-to-json-schema/parsers/union.cjs.map +1 -0
  565. package/dist/utils/zod-to-json-schema/parsers/union.d.cts +24 -0
  566. package/dist/utils/zod-to-json-schema/parsers/union.d.cts.map +1 -0
  567. package/dist/utils/zod-to-json-schema/parsers/union.d.ts +25 -0
  568. package/dist/utils/zod-to-json-schema/parsers/union.d.ts.map +1 -0
  569. package/dist/utils/zod-to-json-schema/parsers/union.js +66 -0
  570. package/dist/utils/zod-to-json-schema/parsers/union.js.map +1 -0
  571. package/dist/utils/zod-to-json-schema/parsers/unknown.cjs +10 -0
  572. package/dist/utils/zod-to-json-schema/parsers/unknown.cjs.map +1 -0
  573. package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts +7 -0
  574. package/dist/utils/zod-to-json-schema/parsers/unknown.d.cts.map +1 -0
  575. package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts +7 -0
  576. package/dist/utils/zod-to-json-schema/parsers/unknown.d.ts.map +1 -0
  577. package/dist/utils/zod-to-json-schema/parsers/unknown.js +10 -0
  578. package/dist/utils/zod-to-json-schema/parsers/unknown.js.map +1 -0
  579. package/dist/utils/zod-to-json-schema/selectParser.cjs +81 -0
  580. package/dist/utils/zod-to-json-schema/selectParser.cjs.map +1 -0
  581. package/dist/utils/zod-to-json-schema/selectParser.js +80 -0
  582. package/dist/utils/zod-to-json-schema/selectParser.js.map +1 -0
  583. package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs +70 -0
  584. package/dist/utils/zod-to-json-schema/zodToJsonSchema.cjs.map +1 -0
  585. package/dist/utils/zod-to-json-schema/zodToJsonSchema.js +70 -0
  586. package/dist/utils/zod-to-json-schema/zodToJsonSchema.js.map +1 -0
  587. package/package.json +7 -36
  588. package/dist/utils/js-sha1/hash.cjs +0 -291
  589. package/dist/utils/js-sha1/hash.cjs.map +0 -1
  590. package/dist/utils/js-sha1/hash.d.cts +0 -9
  591. package/dist/utils/js-sha1/hash.d.cts.map +0 -1
  592. package/dist/utils/js-sha1/hash.d.ts +0 -9
  593. package/dist/utils/js-sha1/hash.d.ts.map +0 -1
  594. package/dist/utils/js-sha1/hash.js +0 -284
  595. package/dist/utils/js-sha1/hash.js.map +0 -1
@@ -1,148 +1,55 @@
1
1
  import { ContentBlock } from "./content/index.js";
2
- import { BaseMessage, BaseMessageChunk, BaseMessageFields, MessageType } from "./base.js";
2
+ import { BaseMessage, BaseMessageChunk, BaseMessageFields } from "./base.js";
3
3
  import { InvalidToolCall, ToolCall, ToolCallChunk } from "./tool.js";
4
+ import { $InferMessageContent, $InferMessageProperty, MessageStructure } from "./message.js";
4
5
 
5
6
  //#region src/messages/ai.d.ts
6
- type AIMessageFields = BaseMessageFields & {
7
+ interface AIMessageFields<TStructure extends MessageStructure = MessageStructure> extends BaseMessageFields<TStructure, "ai"> {
7
8
  tool_calls?: ToolCall[];
8
9
  invalid_tool_calls?: InvalidToolCall[];
9
- usage_metadata?: UsageMetadata;
10
- };
11
- type ModalitiesTokenDetails = {
12
- /**
13
- * Text tokens.
14
- * Does not need to be reported, but some models will do so.
15
- */
16
- text?: number;
17
- /**
18
- * Image (non-video) tokens.
19
- */
20
- image?: number;
21
- /**
22
- * Audio tokens.
23
- */
24
- audio?: number;
25
- /**
26
- * Video tokens.
27
- */
28
- video?: number;
29
- /**
30
- * Document tokens.
31
- * e.g. PDF
32
- */
33
- document?: number;
34
- };
35
- /**
36
- * Breakdown of input token counts.
37
- *
38
- * Does not *need* to sum to full input token count. Does *not* need to have all keys.
39
- */
40
- type InputTokenDetails = ModalitiesTokenDetails & {
41
- /**
42
- * Input tokens that were cached and there was a cache hit.
43
- *
44
- * Since there was a cache hit, the tokens were read from the cache.
45
- * More precisely, the model state given these tokens was read from the cache.
46
- */
47
- cache_read?: number;
48
- /**
49
- * Input tokens that were cached and there was a cache miss.
50
- *
51
- * Since there was a cache miss, the cache was created from these tokens.
52
- */
53
- cache_creation?: number;
54
- };
55
- /**
56
- * Breakdown of output token counts.
57
- *
58
- * Does *not* need to sum to full output token count. Does *not* need to have all keys.
59
- */
60
- type OutputTokenDetails = ModalitiesTokenDetails & {
61
- /**
62
- * Reasoning output tokens.
63
- *
64
- * Tokens generated by the model in a chain of thought process (i.e. by
65
- * OpenAI's o1 models) that are not returned as part of model output.
66
- */
67
- reasoning?: number;
68
- };
69
- /**
70
- * Usage metadata for a message, such as token counts.
71
- */
72
- type UsageMetadata = {
73
- /**
74
- * Count of input (or prompt) tokens. Sum of all input token types.
75
- */
76
- input_tokens: number;
77
- /**
78
- * Count of output (or completion) tokens. Sum of all output token types.
79
- */
80
- output_tokens: number;
81
- /**
82
- * Total token count. Sum of input_tokens + output_tokens.
83
- */
84
- total_tokens: number;
85
- /**
86
- * Breakdown of input token counts.
87
- *
88
- * Does *not* need to sum to full input token count. Does *not* need to have all keys.
89
- */
90
- input_token_details?: InputTokenDetails;
91
- /**
92
- * Breakdown of output token counts.
93
- *
94
- * Does *not* need to sum to full output token count. Does *not* need to have all keys.
95
- */
96
- output_token_details?: OutputTokenDetails;
97
- };
98
- /**
99
- * Represents an AI message in a conversation.
100
- */
101
- declare class AIMessage extends BaseMessage implements AIMessageFields {
102
- // These are typed as optional to avoid breaking changes and allow for casting
103
- // from BaseMessage.
10
+ usage_metadata?: $InferMessageProperty<TStructure, "ai", "usage_metadata">;
11
+ }
12
+ declare class AIMessage<TStructure extends MessageStructure = MessageStructure> extends BaseMessage<TStructure, "ai"> implements AIMessageFields<TStructure> {
13
+ readonly type: "ai";
104
14
  tool_calls?: ToolCall[];
105
15
  invalid_tool_calls?: InvalidToolCall[];
106
- /**
107
- * If provided, token usage information associated with the message.
108
- */
109
- usage_metadata?: UsageMetadata;
16
+ usage_metadata?: AIMessageFields<TStructure>["usage_metadata"];
110
17
  get lc_aliases(): Record<string, string>;
111
- constructor(fields: string | AIMessageFields, /** @deprecated */
112
- kwargs?: Record<string, unknown>);
18
+ constructor(fields: $InferMessageContent<TStructure, "ai"> | AIMessageFields<TStructure>);
113
19
  static lc_name(): string;
114
- _getType(): MessageType;
115
20
  get contentBlocks(): Array<ContentBlock.Standard>;
116
21
  get _printableFields(): Record<string, unknown>;
22
+ static isInstance(obj: unknown): obj is AIMessage;
117
23
  }
118
- declare function isAIMessage(x: BaseMessage): x is AIMessage;
119
- declare function isAIMessageChunk(x: BaseMessageChunk): x is AIMessageChunk;
120
- type AIMessageChunkFields = AIMessageFields & {
24
+ /**
25
+ * @deprecated Use {@link AIMessage.isInstance} instead
26
+ */
27
+ declare function isAIMessage<TStructure extends MessageStructure>(x: BaseMessage): x is AIMessage<TStructure>;
28
+ /**
29
+ * @deprecated Use {@link AIMessageChunk.isInstance} instead
30
+ */
31
+ declare function isAIMessageChunk<TStructure extends MessageStructure>(x: BaseMessageChunk): x is AIMessageChunk<TStructure>;
32
+ type AIMessageChunkFields<TStructure extends MessageStructure = MessageStructure> = AIMessageFields<TStructure> & {
121
33
  tool_call_chunks?: ToolCallChunk[];
122
34
  };
123
35
  /**
124
36
  * Represents a chunk of an AI message, which can be concatenated with
125
37
  * other AI message chunks.
126
38
  */
127
- declare class AIMessageChunk extends BaseMessageChunk {
128
- // Must redeclare tool call fields since there is no multiple inheritance in JS.
129
- // These are typed as optional to avoid breaking changes and allow for casting
130
- // from BaseMessage.
39
+ declare class AIMessageChunk<TStructure extends MessageStructure = MessageStructure> extends BaseMessageChunk<TStructure, "ai"> implements AIMessage<TStructure>, AIMessageChunkFields<TStructure> {
40
+ readonly type: "ai";
131
41
  tool_calls?: ToolCall[];
132
42
  invalid_tool_calls?: InvalidToolCall[];
133
43
  tool_call_chunks?: ToolCallChunk[];
134
- /**
135
- * If provided, token usage information associated with the message.
136
- */
137
- usage_metadata?: UsageMetadata;
138
- constructor(fields: string | AIMessageChunkFields);
44
+ usage_metadata?: AIMessageChunkFields<TStructure>["usage_metadata"];
45
+ constructor(fields: $InferMessageContent<TStructure, "ai"> | AIMessageChunkFields<TStructure>);
139
46
  get lc_aliases(): Record<string, string>;
140
47
  static lc_name(): string;
141
- _getType(): MessageType;
142
48
  get contentBlocks(): Array<ContentBlock.Standard>;
143
49
  get _printableFields(): Record<string, unknown>;
144
- concat(chunk: AIMessageChunk): AIMessageChunk;
50
+ concat(chunk: AIMessageChunk<TStructure>): this;
51
+ static isInstance(obj: unknown): obj is AIMessageChunk;
145
52
  }
146
53
  //#endregion
147
- export { AIMessage, AIMessageChunk, AIMessageChunkFields, AIMessageFields, InputTokenDetails, ModalitiesTokenDetails, OutputTokenDetails, UsageMetadata, isAIMessage, isAIMessageChunk };
54
+ export { AIMessage, AIMessageChunk, AIMessageChunkFields, AIMessageFields, isAIMessage, isAIMessageChunk };
148
55
  //# sourceMappingURL=ai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","names":["BaseMessage","BaseMessageChunk","MessageType","BaseMessageFields","ContentBlock","InvalidToolCall","ToolCall","ToolCallChunk","AIMessageFields","UsageMetadata","ModalitiesTokenDetails","InputTokenDetails","OutputTokenDetails","AIMessage","Record","Standard","Array","isAIMessage","isAIMessageChunk","AIMessageChunk","AIMessageChunkFields"],"sources":["../../src/messages/ai.d.ts"],"sourcesContent":["import { BaseMessage, BaseMessageChunk, type MessageType, BaseMessageFields } from \"./base.js\";\nimport { ContentBlock } from \"./content/index.js\";\nimport { InvalidToolCall, ToolCall, ToolCallChunk } from \"./tool.js\";\nexport type AIMessageFields = BaseMessageFields & {\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: UsageMetadata;\n};\nexport type ModalitiesTokenDetails = {\n /**\n * Text tokens.\n * Does not need to be reported, but some models will do so.\n */\n text?: number;\n /**\n * Image (non-video) tokens.\n */\n image?: number;\n /**\n * Audio tokens.\n */\n audio?: number;\n /**\n * Video tokens.\n */\n video?: number;\n /**\n * Document tokens.\n * e.g. PDF\n */\n document?: number;\n};\n/**\n * Breakdown of input token counts.\n *\n * Does not *need* to sum to full input token count. Does *not* need to have all keys.\n */\nexport type InputTokenDetails = ModalitiesTokenDetails & {\n /**\n * Input tokens that were cached and there was a cache hit.\n *\n * Since there was a cache hit, the tokens were read from the cache.\n * More precisely, the model state given these tokens was read from the cache.\n */\n cache_read?: number;\n /**\n * Input tokens that were cached and there was a cache miss.\n *\n * Since there was a cache miss, the cache was created from these tokens.\n */\n cache_creation?: number;\n};\n/**\n * Breakdown of output token counts.\n *\n * Does *not* need to sum to full output token count. Does *not* need to have all keys.\n */\nexport type OutputTokenDetails = ModalitiesTokenDetails & {\n /**\n * Reasoning output tokens.\n *\n * Tokens generated by the model in a chain of thought process (i.e. by\n * OpenAI's o1 models) that are not returned as part of model output.\n */\n reasoning?: number;\n};\n/**\n * Usage metadata for a message, such as token counts.\n */\nexport type UsageMetadata = {\n /**\n * Count of input (or prompt) tokens. Sum of all input token types.\n */\n input_tokens: number;\n /**\n * Count of output (or completion) tokens. Sum of all output token types.\n */\n output_tokens: number;\n /**\n * Total token count. Sum of input_tokens + output_tokens.\n */\n total_tokens: number;\n /**\n * Breakdown of input token counts.\n *\n * Does *not* need to sum to full input token count. Does *not* need to have all keys.\n */\n input_token_details?: InputTokenDetails;\n /**\n * Breakdown of output token counts.\n *\n * Does *not* need to sum to full output token count. Does *not* need to have all keys.\n */\n output_token_details?: OutputTokenDetails;\n};\n/**\n * Represents an AI message in a conversation.\n */\nexport declare class AIMessage extends BaseMessage implements AIMessageFields {\n // These are typed as optional to avoid breaking changes and allow for casting\n // from BaseMessage.\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n /**\n * If provided, token usage information associated with the message.\n */\n usage_metadata?: UsageMetadata;\n get lc_aliases(): Record<string, string>;\n constructor(fields: string | AIMessageFields, \n /** @deprecated */\n kwargs?: Record<string, unknown>);\n static lc_name(): string;\n _getType(): MessageType;\n get contentBlocks(): Array<ContentBlock.Standard>;\n get _printableFields(): Record<string, unknown>;\n}\nexport declare function isAIMessage(x: BaseMessage): x is AIMessage;\nexport declare function isAIMessageChunk(x: BaseMessageChunk): x is AIMessageChunk;\nexport type AIMessageChunkFields = AIMessageFields & {\n tool_call_chunks?: ToolCallChunk[];\n};\n/**\n * Represents a chunk of an AI message, which can be concatenated with\n * other AI message chunks.\n */\nexport declare class AIMessageChunk extends BaseMessageChunk {\n // Must redeclare tool call fields since there is no multiple inheritance in JS.\n // These are typed as optional to avoid breaking changes and allow for casting\n // from BaseMessage.\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n tool_call_chunks?: ToolCallChunk[];\n /**\n * If provided, token usage information associated with the message.\n */\n usage_metadata?: UsageMetadata;\n constructor(fields: string | AIMessageChunkFields);\n get lc_aliases(): Record<string, string>;\n static lc_name(): string;\n _getType(): MessageType;\n get contentBlocks(): Array<ContentBlock.Standard>;\n get _printableFields(): Record<string, unknown>;\n concat(chunk: AIMessageChunk): AIMessageChunk;\n}\n"],"mappings":";;;;;KAGYQ,eAAAA,GAAkBL;eACbG;EADLE,kBAAe,CAAA,EAEFH,eAFE,EAAA;EAAA,cAAA,CAAA,EAGNI,aAHM;CAAA;AACVH,KAILI,sBAAAA,GAJKJ;EAAQ;;AAES;AAElC;EA6BYK,IAAAA,CAAAA,EAAAA,MAAAA;EAoBAC;AAYZ;;EAAyB,KAkBCD,CAAAA,EAAAA,MAAAA;EAAiB;AAME;AAK7C;EAA8B,KAAA,CAAA,EAAA,MAAA;EAAA;;;EAQI,KACZG,CAAAA,EAAAA,MAAAA;EAAM;;;;EAMwB,QAA3BE,CAAAA,EAAAA,MAAAA;CAAK;;;AAf+C;AAkB7E;;AAAuChB,KA/E3BW,iBAAAA,GAAoBD,sBA+EOV,GAAAA;EAAW;AAAiB;AACnE;;;;EAAkF,UAAA,CAAA,EAAA,MAAA;EACtEoB;;;;AACwB;EAMfD,cAAAA,CAAAA,EAAc,MAAA;CAAA;;;;;;AAYbL,KAhFVF,kBAAAA,GAAqBF,sBAgFXI,GAAAA;EAAM;;;;;;EAKqB,SAjBLb,CAAAA,EAAAA,MAAAA;AAAgB,CAAA;;;;KAxDhDQ,aAAAA;;;;;;;;;;;;;;;;;;wBAkBcE;;;;;;yBAMCC;;;;;cAKNC,SAAAA,SAAkBb,WAAAA,YAAuBQ;;;eAG7CF;uBACQD;;;;mBAIJI;oBACCK;+BACWN;WAEpBM;;cAEGZ;uBACSc,MAAMZ,YAAAA,CAAaW;0BAChBD;;iBAEJG,WAAAA,IAAejB,mBAAmBa;iBAClCK,gBAAAA,IAAoBjB,wBAAwBkB;KACxDC,oBAAAA,GAAuBZ;qBACZD;;;;;;cAMFY,cAAAA,SAAuBlB,gBAAAA;;;;eAI3BK;uBACQD;qBACFE;;;;mBAIFE;+BACYW;oBACXN;;cAENZ;uBACSc,MAAMZ,YAAAA,CAAaW;0BAChBD;gBACVK,iBAAiBA"}
1
+ {"version":3,"file":"ai.d.ts","names":["BaseMessage","BaseMessageChunk","BaseMessageFields","ContentBlock","$InferMessageContent","$InferMessageProperty","MessageStructure","InvalidToolCall","ToolCall","ToolCallChunk","AIMessageFields","TStructure","AIMessage","Record","Standard","Array","isAIMessage","isAIMessageChunk","AIMessageChunk","AIMessageChunkFields"],"sources":["../../src/messages/ai.d.ts"],"sourcesContent":["import { BaseMessage, BaseMessageChunk, BaseMessageFields } from \"./base.js\";\nimport { ContentBlock } from \"./content/index.js\";\nimport { $InferMessageContent, $InferMessageProperty, MessageStructure } from \"./message.js\";\nimport { InvalidToolCall, ToolCall, ToolCallChunk } from \"./tool.js\";\nexport interface AIMessageFields<TStructure extends MessageStructure = MessageStructure> extends BaseMessageFields<TStructure, \"ai\"> {\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: $InferMessageProperty<TStructure, \"ai\", \"usage_metadata\">;\n}\nexport declare class AIMessage<TStructure extends MessageStructure = MessageStructure> extends BaseMessage<TStructure, \"ai\"> implements AIMessageFields<TStructure> {\n readonly type: \"ai\";\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: AIMessageFields<TStructure>[\"usage_metadata\"];\n get lc_aliases(): Record<string, string>;\n constructor(fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageFields<TStructure>);\n static lc_name(): string;\n get contentBlocks(): Array<ContentBlock.Standard>;\n get _printableFields(): Record<string, unknown>;\n static isInstance(obj: unknown): obj is AIMessage;\n}\n/**\n * @deprecated Use {@link AIMessage.isInstance} instead\n */\nexport declare function isAIMessage<TStructure extends MessageStructure>(x: BaseMessage): x is AIMessage<TStructure>;\n/**\n * @deprecated Use {@link AIMessageChunk.isInstance} instead\n */\nexport declare function isAIMessageChunk<TStructure extends MessageStructure>(x: BaseMessageChunk): x is AIMessageChunk<TStructure>;\nexport type AIMessageChunkFields<TStructure extends MessageStructure = MessageStructure> = AIMessageFields<TStructure> & {\n tool_call_chunks?: ToolCallChunk[];\n};\n/**\n * Represents a chunk of an AI message, which can be concatenated with\n * other AI message chunks.\n */\nexport declare class AIMessageChunk<TStructure extends MessageStructure = MessageStructure> extends BaseMessageChunk<TStructure, \"ai\"> implements AIMessage<TStructure>, AIMessageChunkFields<TStructure> {\n readonly type: \"ai\";\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n tool_call_chunks?: ToolCallChunk[];\n usage_metadata?: AIMessageChunkFields<TStructure>[\"usage_metadata\"];\n constructor(fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageChunkFields<TStructure>);\n get lc_aliases(): Record<string, string>;\n static lc_name(): string;\n get contentBlocks(): Array<ContentBlock.Standard>;\n get _printableFields(): Record<string, unknown>;\n concat(chunk: AIMessageChunk<TStructure>): this;\n static isInstance(obj: unknown): obj is AIMessageChunk;\n}\n"],"mappings":"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"}
@@ -1,18 +1,14 @@
1
1
  import { parsePartialJson } from "../utils/json.js";
2
2
  import { BaseMessage, BaseMessageChunk, _mergeDicts, _mergeLists, mergeContent } from "./base.js";
3
3
  import { getTranslator } from "./block_translators/index.js";
4
+ import { mergeResponseMetadata, mergeUsageMetadata } from "./metadata.js";
4
5
  import { defaultToolCallParser } from "./tool.js";
5
6
 
6
7
  //#region src/messages/ai.ts
7
- /**
8
- * Represents an AI message in a conversation.
9
- */
10
8
  var AIMessage = class extends BaseMessage {
9
+ type = "ai";
11
10
  tool_calls = [];
12
11
  invalid_tool_calls = [];
13
- /**
14
- * If provided, token usage information associated with the message.
15
- */
16
12
  usage_metadata;
17
13
  get lc_aliases() {
18
14
  return {
@@ -21,13 +17,13 @@ var AIMessage = class extends BaseMessage {
21
17
  invalid_tool_calls: "invalid_tool_calls"
22
18
  };
23
19
  }
24
- constructor(fields, kwargs) {
20
+ constructor(fields) {
25
21
  let initParams;
26
- if (typeof fields === "string") initParams = {
22
+ if (typeof fields === "string" || Array.isArray(fields)) initParams = {
27
23
  content: fields,
28
24
  tool_calls: [],
29
25
  invalid_tool_calls: [],
30
- additional_kwargs: kwargs ?? {}
26
+ additional_kwargs: {}
31
27
  };
32
28
  else {
33
29
  initParams = fields;
@@ -48,7 +44,7 @@ var AIMessage = class extends BaseMessage {
48
44
  initParams.tool_calls = initParams.tool_calls ?? [];
49
45
  initParams.invalid_tool_calls = initParams.invalid_tool_calls ?? [];
50
46
  }
51
- } catch (e) {
47
+ } catch {
52
48
  initParams.tool_calls = [];
53
49
  initParams.invalid_tool_calls = [];
54
50
  }
@@ -61,6 +57,7 @@ var AIMessage = class extends BaseMessage {
61
57
  })));
62
58
  const missingToolCalls = initParams.contentBlocks.filter((block) => block.type === "tool_call").filter((block) => !initParams.tool_calls?.some((toolCall) => toolCall.id === block.id && toolCall.name === block.name));
63
59
  if (missingToolCalls.length > 0) initParams.tool_calls = missingToolCalls.map((block) => ({
60
+ type: "tool_call",
64
61
  id: block.id,
65
62
  name: block.name,
66
63
  args: block.args
@@ -77,14 +74,10 @@ var AIMessage = class extends BaseMessage {
77
74
  static lc_name() {
78
75
  return "AIMessage";
79
76
  }
80
- _getType() {
81
- return "ai";
82
- }
83
77
  get contentBlocks() {
84
- if (this.response_metadata?.output_version === "v1") return this.content;
85
- const modelProvider = this.response_metadata?.model_provider;
86
- if (modelProvider) {
87
- const translator = getTranslator(modelProvider);
78
+ if ("output_version" in this.response_metadata && this.response_metadata.output_version === "v1") return this.content;
79
+ if ("model_provider" in this.response_metadata && typeof this.response_metadata.model_provider === "string") {
80
+ const translator = getTranslator(this.response_metadata.model_provider);
88
81
  if (translator) return translator.translateContent(this);
89
82
  }
90
83
  const blocks = super.contentBlocks;
@@ -108,10 +101,19 @@ var AIMessage = class extends BaseMessage {
108
101
  usage_metadata: this.usage_metadata
109
102
  };
110
103
  }
104
+ static isInstance(obj) {
105
+ return super.isInstance(obj) && obj.type === "ai";
106
+ }
111
107
  };
108
+ /**
109
+ * @deprecated Use {@link AIMessage.isInstance} instead
110
+ */
112
111
  function isAIMessage(x) {
113
112
  return x._getType() === "ai";
114
113
  }
114
+ /**
115
+ * @deprecated Use {@link AIMessageChunk.isInstance} instead
116
+ */
115
117
  function isAIMessageChunk(x) {
116
118
  return x._getType() === "ai";
117
119
  }
@@ -119,17 +121,15 @@ function isAIMessageChunk(x) {
119
121
  * Represents a chunk of an AI message, which can be concatenated with
120
122
  * other AI message chunks.
121
123
  */
122
- var AIMessageChunk = class AIMessageChunk extends BaseMessageChunk {
124
+ var AIMessageChunk = class extends BaseMessageChunk {
125
+ type = "ai";
123
126
  tool_calls = [];
124
127
  invalid_tool_calls = [];
125
128
  tool_call_chunks = [];
126
- /**
127
- * If provided, token usage information associated with the message.
128
- */
129
129
  usage_metadata;
130
130
  constructor(fields) {
131
131
  let initParams;
132
- if (typeof fields === "string") initParams = {
132
+ if (typeof fields === "string" || Array.isArray(fields)) initParams = {
133
133
  content: fields,
134
134
  tool_calls: [],
135
135
  invalid_tool_calls: [],
@@ -152,7 +152,7 @@ var AIMessageChunk = class AIMessageChunk extends BaseMessageChunk {
152
152
  const toolCalls = [];
153
153
  const invalidToolCalls = [];
154
154
  for (const [id, chunks] of Object.entries(groupedToolCallChunk)) {
155
- let parsedArgs = {};
155
+ let parsedArgs = null;
156
156
  const name = chunks[0]?.name ?? "";
157
157
  const joinedArgs = chunks.map((c) => c.args || "").join("");
158
158
  const argsStr = joinedArgs.length ? joinedArgs : "{}";
@@ -166,7 +166,7 @@ var AIMessageChunk = class AIMessageChunk extends BaseMessageChunk {
166
166
  id: originalId,
167
167
  type: "tool_call"
168
168
  });
169
- } catch (e) {
169
+ } catch {
170
170
  invalidToolCalls.push({
171
171
  name,
172
172
  args: argsStr,
@@ -200,14 +200,10 @@ var AIMessageChunk = class AIMessageChunk extends BaseMessageChunk {
200
200
  static lc_name() {
201
201
  return "AIMessageChunk";
202
202
  }
203
- _getType() {
204
- return "ai";
205
- }
206
203
  get contentBlocks() {
207
- if (this.response_metadata?.output_version === "v1") return this.content;
208
- const modelProvider = this.response_metadata?.model_provider;
209
- if (modelProvider) {
210
- const translator = getTranslator(modelProvider);
204
+ if ("output_version" in this.response_metadata && this.response_metadata.output_version === "v1") return this.content;
205
+ if ("model_provider" in this.response_metadata && typeof this.response_metadata.model_provider === "string") {
206
+ const translator = getTranslator(this.response_metadata.model_provider);
211
207
  if (translator) return translator.translateContent(this);
212
208
  }
213
209
  const blocks = super.contentBlocks;
@@ -238,7 +234,7 @@ var AIMessageChunk = class AIMessageChunk extends BaseMessageChunk {
238
234
  const combinedFields = {
239
235
  content: mergeContent(this.content, chunk.content),
240
236
  additional_kwargs: _mergeDicts(this.additional_kwargs, chunk.additional_kwargs),
241
- response_metadata: _mergeDicts(this.response_metadata, chunk.response_metadata),
237
+ response_metadata: mergeResponseMetadata(this.response_metadata, chunk.response_metadata),
242
238
  tool_call_chunks: [],
243
239
  id: this.id ?? chunk.id
244
240
  };
@@ -246,36 +242,12 @@ var AIMessageChunk = class AIMessageChunk extends BaseMessageChunk {
246
242
  const rawToolCalls = _mergeLists(this.tool_call_chunks, chunk.tool_call_chunks);
247
243
  if (rawToolCalls !== void 0 && rawToolCalls.length > 0) combinedFields.tool_call_chunks = rawToolCalls;
248
244
  }
249
- if (this.usage_metadata !== void 0 || chunk.usage_metadata !== void 0) {
250
- const inputTokenDetails = {
251
- ...(this.usage_metadata?.input_token_details?.audio !== void 0 || chunk.usage_metadata?.input_token_details?.audio !== void 0) && { audio: (this.usage_metadata?.input_token_details?.audio ?? 0) + (chunk.usage_metadata?.input_token_details?.audio ?? 0) },
252
- ...(this.usage_metadata?.input_token_details?.cache_read !== void 0 || chunk.usage_metadata?.input_token_details?.cache_read !== void 0) && { cache_read: (this.usage_metadata?.input_token_details?.cache_read ?? 0) + (chunk.usage_metadata?.input_token_details?.cache_read ?? 0) },
253
- ...(this.usage_metadata?.input_token_details?.cache_creation !== void 0 || chunk.usage_metadata?.input_token_details?.cache_creation !== void 0) && { cache_creation: (this.usage_metadata?.input_token_details?.cache_creation ?? 0) + (chunk.usage_metadata?.input_token_details?.cache_creation ?? 0) }
254
- };
255
- const outputTokenDetails = {
256
- ...(this.usage_metadata?.output_token_details?.audio !== void 0 || chunk.usage_metadata?.output_token_details?.audio !== void 0) && { audio: (this.usage_metadata?.output_token_details?.audio ?? 0) + (chunk.usage_metadata?.output_token_details?.audio ?? 0) },
257
- ...(this.usage_metadata?.output_token_details?.reasoning !== void 0 || chunk.usage_metadata?.output_token_details?.reasoning !== void 0) && { reasoning: (this.usage_metadata?.output_token_details?.reasoning ?? 0) + (chunk.usage_metadata?.output_token_details?.reasoning ?? 0) }
258
- };
259
- const left = this.usage_metadata ?? {
260
- input_tokens: 0,
261
- output_tokens: 0,
262
- total_tokens: 0
263
- };
264
- const right = chunk.usage_metadata ?? {
265
- input_tokens: 0,
266
- output_tokens: 0,
267
- total_tokens: 0
268
- };
269
- const usage_metadata = {
270
- input_tokens: left.input_tokens + right.input_tokens,
271
- output_tokens: left.output_tokens + right.output_tokens,
272
- total_tokens: left.total_tokens + right.total_tokens,
273
- ...Object.keys(inputTokenDetails).length > 0 && { input_token_details: inputTokenDetails },
274
- ...Object.keys(outputTokenDetails).length > 0 && { output_token_details: outputTokenDetails }
275
- };
276
- combinedFields.usage_metadata = usage_metadata;
277
- }
278
- return new AIMessageChunk(combinedFields);
245
+ if (this.usage_metadata !== void 0 || chunk.usage_metadata !== void 0) combinedFields.usage_metadata = mergeUsageMetadata(this.usage_metadata, chunk.usage_metadata);
246
+ const Cls = this.constructor;
247
+ return new Cls(combinedFields);
248
+ }
249
+ static isInstance(obj) {
250
+ return super.isInstance(obj) && obj.type === "ai";
279
251
  }
280
252
  };
281
253
 
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","names":["fields: string | AIMessageFields","kwargs?: Record<string, unknown>","initParams: AIMessageFields","toolCalls","x: BaseMessage","x: BaseMessageChunk","fields: string | AIMessageChunkFields","initParams: AIMessageChunkFields","toolCalls: ToolCall[]","invalidToolCalls: InvalidToolCall[]","chunk: AIMessageChunk","combinedFields: AIMessageChunkFields","inputTokenDetails: InputTokenDetails","outputTokenDetails: OutputTokenDetails","left: UsageMetadata","right: UsageMetadata","usage_metadata: UsageMetadata"],"sources":["../../src/messages/ai.ts"],"sourcesContent":["import { parsePartialJson } from \"../utils/json.js\";\nimport {\n BaseMessage,\n BaseMessageChunk,\n mergeContent,\n _mergeDicts,\n type MessageType,\n BaseMessageFields,\n _mergeLists,\n} from \"./base.js\";\nimport { getTranslator } from \"./block_translators/index.js\";\nimport { ContentBlock } from \"./content/index.js\";\nimport {\n InvalidToolCall,\n ToolCall,\n ToolCallChunk,\n defaultToolCallParser,\n} from \"./tool.js\";\n\nexport type AIMessageFields = BaseMessageFields & {\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: UsageMetadata;\n};\n\nexport type ModalitiesTokenDetails = {\n /**\n * Text tokens.\n * Does not need to be reported, but some models will do so.\n */\n text?: number;\n\n /**\n * Image (non-video) tokens.\n */\n image?: number;\n\n /**\n * Audio tokens.\n */\n audio?: number;\n\n /**\n * Video tokens.\n */\n video?: number;\n\n /**\n * Document tokens.\n * e.g. PDF\n */\n document?: number;\n};\n\n/**\n * Breakdown of input token counts.\n *\n * Does not *need* to sum to full input token count. Does *not* need to have all keys.\n */\nexport type InputTokenDetails = ModalitiesTokenDetails & {\n /**\n * Input tokens that were cached and there was a cache hit.\n *\n * Since there was a cache hit, the tokens were read from the cache.\n * More precisely, the model state given these tokens was read from the cache.\n */\n cache_read?: number;\n\n /**\n * Input tokens that were cached and there was a cache miss.\n *\n * Since there was a cache miss, the cache was created from these tokens.\n */\n cache_creation?: number;\n};\n\n/**\n * Breakdown of output token counts.\n *\n * Does *not* need to sum to full output token count. Does *not* need to have all keys.\n */\nexport type OutputTokenDetails = ModalitiesTokenDetails & {\n /**\n * Reasoning output tokens.\n *\n * Tokens generated by the model in a chain of thought process (i.e. by\n * OpenAI's o1 models) that are not returned as part of model output.\n */\n reasoning?: number;\n};\n\n/**\n * Usage metadata for a message, such as token counts.\n */\nexport type UsageMetadata = {\n /**\n * Count of input (or prompt) tokens. Sum of all input token types.\n */\n input_tokens: number;\n /**\n * Count of output (or completion) tokens. Sum of all output token types.\n */\n output_tokens: number;\n /**\n * Total token count. Sum of input_tokens + output_tokens.\n */\n total_tokens: number;\n\n /**\n * Breakdown of input token counts.\n *\n * Does *not* need to sum to full input token count. Does *not* need to have all keys.\n */\n input_token_details?: InputTokenDetails;\n\n /**\n * Breakdown of output token counts.\n *\n * Does *not* need to sum to full output token count. Does *not* need to have all keys.\n */\n output_token_details?: OutputTokenDetails;\n};\n\n/**\n * Represents an AI message in a conversation.\n */\nexport class AIMessage extends BaseMessage implements AIMessageFields {\n // These are typed as optional to avoid breaking changes and allow for casting\n // from BaseMessage.\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n /**\n * If provided, token usage information associated with the message.\n */\n usage_metadata?: UsageMetadata;\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n };\n }\n\n constructor(\n fields: string | AIMessageFields,\n /** @deprecated */\n kwargs?: Record<string, unknown>\n ) {\n let initParams: AIMessageFields;\n if (typeof fields === \"string\") {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n additional_kwargs: kwargs ?? {},\n };\n } else {\n initParams = fields;\n const rawToolCalls = initParams.additional_kwargs?.tool_calls;\n const toolCalls = initParams.tool_calls;\n if (\n !(rawToolCalls == null) &&\n rawToolCalls.length > 0 &&\n (toolCalls === undefined || toolCalls.length === 0)\n ) {\n console.warn(\n [\n \"New LangChain packages are available that more efficiently handle\",\n \"tool calling.\\n\\nPlease upgrade your packages to versions that set\",\n \"message tool calls. e.g., `pnpm install @langchain/anthropic`,\",\n \"pnpm install @langchain/openai`, etc.\",\n ].join(\" \")\n );\n }\n try {\n if (!(rawToolCalls == null) && toolCalls === undefined) {\n const [toolCalls, invalidToolCalls] =\n defaultToolCallParser(rawToolCalls);\n initParams.tool_calls = toolCalls ?? [];\n initParams.invalid_tool_calls = invalidToolCalls ?? [];\n } else {\n initParams.tool_calls = initParams.tool_calls ?? [];\n initParams.invalid_tool_calls = initParams.invalid_tool_calls ?? [];\n }\n } catch (e) {\n // Do nothing if parsing fails\n initParams.tool_calls = [];\n initParams.invalid_tool_calls = [];\n }\n if (initParams.contentBlocks !== undefined) {\n // Add constructor tool calls as content blocks\n initParams.contentBlocks.push(\n ...initParams.tool_calls.map((toolCall) => ({\n type: \"tool_call\" as const,\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n }))\n );\n // Add content block tool calls that aren't in the constructor tool calls\n const missingToolCalls = initParams.contentBlocks\n .filter<ContentBlock.Tools.ToolCall>(\n (block) => block.type === \"tool_call\"\n )\n .filter(\n (block) =>\n !initParams.tool_calls?.some(\n (toolCall) =>\n toolCall.id === block.id && toolCall.name === block.name\n )\n );\n if (missingToolCalls.length > 0) {\n initParams.tool_calls = missingToolCalls.map((block) => ({\n id: block.id!,\n name: block.name,\n args: block.args as Record<string, unknown>,\n }));\n }\n }\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n if (typeof initParams !== \"string\") {\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n }\n this.usage_metadata = initParams.usage_metadata;\n }\n\n static lc_name() {\n return \"AIMessage\";\n }\n\n _getType(): MessageType {\n return \"ai\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (this.response_metadata?.output_version === \"v1\") {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n const modelProvider = this.response_metadata?.model_provider;\n if (modelProvider) {\n const translator = getTranslator(modelProvider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n const missingToolCalls = this.tool_calls.filter(\n (block) =>\n !blocks.some((b) => b.id === block.id && b.name === block.name)\n );\n blocks.push(\n ...missingToolCalls.map((block) => ({\n ...block,\n type: \"tool_call\" as const,\n id: block.id,\n name: block.name,\n args: block.args,\n }))\n );\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n}\n\nexport function isAIMessage(x: BaseMessage): x is AIMessage {\n return x._getType() === \"ai\";\n}\n\nexport function isAIMessageChunk(x: BaseMessageChunk): x is AIMessageChunk {\n return x._getType() === \"ai\";\n}\n\nexport type AIMessageChunkFields = AIMessageFields & {\n tool_call_chunks?: ToolCallChunk[];\n};\n\n/**\n * Represents a chunk of an AI message, which can be concatenated with\n * other AI message chunks.\n */\nexport class AIMessageChunk extends BaseMessageChunk {\n // Must redeclare tool call fields since there is no multiple inheritance in JS.\n // These are typed as optional to avoid breaking changes and allow for casting\n // from BaseMessage.\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n tool_call_chunks?: ToolCallChunk[] = [];\n\n /**\n * If provided, token usage information associated with the message.\n */\n usage_metadata?: UsageMetadata;\n\n constructor(fields: string | AIMessageChunkFields) {\n let initParams: AIMessageChunkFields;\n if (typeof fields === \"string\") {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n };\n } else if (fields.tool_call_chunks === undefined) {\n initParams = {\n ...fields,\n tool_calls: fields.tool_calls ?? [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n } else {\n const groupedToolCallChunk = fields.tool_call_chunks.reduce(\n (acc, chunk) => {\n // Assign a fallback ID if the chunk doesn't have one\n // This can happen with tools that have empty schemas\n const chunkId = chunk.id || `fallback-${chunk.index || 0}`;\n acc[chunkId] = acc[chunkId] ?? [];\n acc[chunkId].push(chunk);\n return acc;\n },\n {} as Record<string, ToolCallChunk[]>\n );\n\n const toolCalls: ToolCall[] = [];\n const invalidToolCalls: InvalidToolCall[] = [];\n for (const [id, chunks] of Object.entries(groupedToolCallChunk)) {\n let parsedArgs = {};\n const name = chunks[0]?.name ?? \"\";\n const joinedArgs = chunks.map((c) => c.args || \"\").join(\"\");\n const argsStr = joinedArgs.length ? joinedArgs : \"{}\";\n // Use the original ID from the first chunk if it exists, otherwise use the grouped ID\n const originalId = chunks[0]?.id || id;\n try {\n parsedArgs = parsePartialJson(argsStr);\n if (\n parsedArgs === null ||\n typeof parsedArgs !== \"object\" ||\n Array.isArray(parsedArgs)\n ) {\n throw new Error(\"Malformed tool call chunk args.\");\n }\n toolCalls.push({\n name,\n args: parsedArgs,\n id: originalId,\n type: \"tool_call\",\n });\n } catch (e) {\n invalidToolCalls.push({\n name,\n args: argsStr,\n id: originalId,\n error: \"Malformed args.\",\n type: \"invalid_tool_call\",\n });\n }\n }\n initParams = {\n ...fields,\n tool_calls: toolCalls,\n invalid_tool_calls: invalidToolCalls,\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n this.tool_call_chunks =\n initParams.tool_call_chunks ?? this.tool_call_chunks;\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n this.usage_metadata = initParams.usage_metadata;\n }\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n tool_call_chunks: \"tool_call_chunks\",\n };\n }\n\n static lc_name() {\n return \"AIMessageChunk\";\n }\n\n _getType(): MessageType {\n return \"ai\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (this.response_metadata?.output_version === \"v1\") {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n const modelProvider = this.response_metadata?.model_provider;\n if (modelProvider) {\n const translator = getTranslator(modelProvider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n if (typeof this.content !== \"string\") {\n const contentToolCalls = this.content\n .filter((block) => block.type === \"tool_call\")\n .map((block) => block.id);\n for (const toolCall of this.tool_calls) {\n if (toolCall.id && !contentToolCalls.includes(toolCall.id)) {\n blocks.push({\n ...toolCall,\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n }\n }\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n tool_call_chunks: this.tool_call_chunks,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n\n concat(chunk: AIMessageChunk) {\n const combinedFields: AIMessageChunkFields = {\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 tool_call_chunks: [],\n id: this.id ?? chunk.id,\n };\n if (\n this.tool_call_chunks !== undefined ||\n chunk.tool_call_chunks !== undefined\n ) {\n const rawToolCalls = _mergeLists(\n this.tool_call_chunks,\n chunk.tool_call_chunks\n );\n if (rawToolCalls !== undefined && rawToolCalls.length > 0) {\n combinedFields.tool_call_chunks = rawToolCalls;\n }\n }\n if (\n this.usage_metadata !== undefined ||\n chunk.usage_metadata !== undefined\n ) {\n const inputTokenDetails: InputTokenDetails = {\n ...((this.usage_metadata?.input_token_details?.audio !== undefined ||\n chunk.usage_metadata?.input_token_details?.audio !== undefined) && {\n audio:\n (this.usage_metadata?.input_token_details?.audio ?? 0) +\n (chunk.usage_metadata?.input_token_details?.audio ?? 0),\n }),\n ...((this.usage_metadata?.input_token_details?.cache_read !==\n undefined ||\n chunk.usage_metadata?.input_token_details?.cache_read !==\n undefined) && {\n cache_read:\n (this.usage_metadata?.input_token_details?.cache_read ?? 0) +\n (chunk.usage_metadata?.input_token_details?.cache_read ?? 0),\n }),\n ...((this.usage_metadata?.input_token_details?.cache_creation !==\n undefined ||\n chunk.usage_metadata?.input_token_details?.cache_creation !==\n undefined) && {\n cache_creation:\n (this.usage_metadata?.input_token_details?.cache_creation ?? 0) +\n (chunk.usage_metadata?.input_token_details?.cache_creation ?? 0),\n }),\n };\n\n const outputTokenDetails: OutputTokenDetails = {\n ...((this.usage_metadata?.output_token_details?.audio !== undefined ||\n chunk.usage_metadata?.output_token_details?.audio !== undefined) && {\n audio:\n (this.usage_metadata?.output_token_details?.audio ?? 0) +\n (chunk.usage_metadata?.output_token_details?.audio ?? 0),\n }),\n ...((this.usage_metadata?.output_token_details?.reasoning !==\n undefined ||\n chunk.usage_metadata?.output_token_details?.reasoning !==\n undefined) && {\n reasoning:\n (this.usage_metadata?.output_token_details?.reasoning ?? 0) +\n (chunk.usage_metadata?.output_token_details?.reasoning ?? 0),\n }),\n };\n\n const left: UsageMetadata = this.usage_metadata ?? {\n input_tokens: 0,\n output_tokens: 0,\n total_tokens: 0,\n };\n const right: UsageMetadata = chunk.usage_metadata ?? {\n input_tokens: 0,\n output_tokens: 0,\n total_tokens: 0,\n };\n const usage_metadata: UsageMetadata = {\n input_tokens: left.input_tokens + right.input_tokens,\n output_tokens: left.output_tokens + right.output_tokens,\n total_tokens: left.total_tokens + right.total_tokens,\n // Do not include `input_token_details` / `output_token_details` keys in combined fields\n // unless their values are defined.\n ...(Object.keys(inputTokenDetails).length > 0 && {\n input_token_details: inputTokenDetails,\n }),\n ...(Object.keys(outputTokenDetails).length > 0 && {\n output_token_details: outputTokenDetails,\n }),\n };\n combinedFields.usage_metadata = usage_metadata;\n }\n return new AIMessageChunk(combinedFields);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","names":["fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageFields<TStructure>","initParams: AIMessageFields<TStructure>","toolCalls","obj: unknown","x: BaseMessage","x: BaseMessageChunk","fields:\n | $InferMessageContent<TStructure, \"ai\">\n | AIMessageChunkFields<TStructure>","initParams: AIMessageChunkFields<TStructure>","toolCalls: ToolCall[]","invalidToolCalls: InvalidToolCall[]","parsedArgs: Record<string, unknown> | null","chunk: AIMessageChunk<TStructure>","combinedFields: AIMessageChunkFields"],"sources":["../../src/messages/ai.ts"],"sourcesContent":["import { parsePartialJson } from \"../utils/json.js\";\nimport {\n BaseMessage,\n BaseMessageChunk,\n mergeContent,\n _mergeDicts,\n _mergeLists,\n BaseMessageFields,\n} from \"./base.js\";\nimport { getTranslator } from \"./block_translators/index.js\";\nimport { ContentBlock } from \"./content/index.js\";\nimport {\n $InferMessageContent,\n $InferMessageProperty,\n MessageStructure,\n} from \"./message.js\";\nimport { mergeResponseMetadata, mergeUsageMetadata } from \"./metadata.js\";\nimport {\n InvalidToolCall,\n ToolCall,\n ToolCallChunk,\n defaultToolCallParser,\n} from \"./tool.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface AIMessageFields<\n TStructure extends MessageStructure = MessageStructure\n> extends BaseMessageFields<TStructure, \"ai\"> {\n tool_calls?: ToolCall[];\n invalid_tool_calls?: InvalidToolCall[];\n usage_metadata?: $InferMessageProperty<TStructure, \"ai\", \"usage_metadata\">;\n}\n\nexport class AIMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"ai\">\n implements AIMessageFields<TStructure>\n{\n readonly type = \"ai\" as const;\n\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n usage_metadata?: AIMessageFields<TStructure>[\"usage_metadata\"];\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n };\n }\n\n constructor(\n fields: $InferMessageContent<TStructure, \"ai\"> | AIMessageFields<TStructure>\n ) {\n let initParams: AIMessageFields<TStructure>;\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n additional_kwargs: {},\n };\n } else {\n initParams = fields;\n const rawToolCalls = initParams.additional_kwargs?.tool_calls;\n const toolCalls = initParams.tool_calls;\n if (\n !(rawToolCalls == null) &&\n rawToolCalls.length > 0 &&\n (toolCalls === undefined || toolCalls.length === 0)\n ) {\n console.warn(\n [\n \"New LangChain packages are available that more efficiently handle\",\n \"tool calling.\\n\\nPlease upgrade your packages to versions that set\",\n \"message tool calls. e.g., `pnpm install @langchain/anthropic`,\",\n \"pnpm install @langchain/openai`, etc.\",\n ].join(\" \")\n );\n }\n try {\n if (!(rawToolCalls == null) && toolCalls === undefined) {\n const [toolCalls, invalidToolCalls] =\n defaultToolCallParser(rawToolCalls);\n initParams.tool_calls = toolCalls ?? [];\n initParams.invalid_tool_calls = invalidToolCalls ?? [];\n } else {\n initParams.tool_calls = initParams.tool_calls ?? [];\n initParams.invalid_tool_calls = initParams.invalid_tool_calls ?? [];\n }\n } catch {\n // Do nothing if parsing fails\n initParams.tool_calls = [];\n initParams.invalid_tool_calls = [];\n }\n if (initParams.contentBlocks !== undefined) {\n // Add constructor tool calls as content blocks\n initParams.contentBlocks.push(\n ...initParams.tool_calls.map((toolCall) => ({\n type: \"tool_call\" as const,\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n }))\n );\n // Add content block tool calls that aren't in the constructor tool calls\n const missingToolCalls = initParams.contentBlocks\n .filter<ContentBlock.Tools.ToolCall>(\n (block): block is ContentBlock.Tools.ToolCall =>\n block.type === \"tool_call\"\n )\n .filter(\n (block) =>\n !initParams.tool_calls?.some(\n (toolCall) =>\n toolCall.id === block.id && toolCall.name === block.name\n )\n );\n if (missingToolCalls.length > 0) {\n initParams.tool_calls = missingToolCalls.map((block) => ({\n type: \"tool_call\" as const,\n id: block.id!,\n name: block.name,\n args: block.args as Record<string, unknown>,\n }));\n }\n }\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n if (typeof initParams !== \"string\") {\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n }\n this.usage_metadata = initParams.usage_metadata;\n }\n\n static lc_name() {\n return \"AIMessage\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (\n \"output_version\" in this.response_metadata &&\n this.response_metadata.output_version === \"v1\"\n ) {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n if (\n \"model_provider\" in this.response_metadata &&\n typeof this.response_metadata.model_provider === \"string\"\n ) {\n const translator = getTranslator(this.response_metadata.model_provider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n const missingToolCalls = this.tool_calls.filter(\n (block) =>\n !blocks.some((b) => b.id === block.id && b.name === block.name)\n );\n blocks.push(\n ...missingToolCalls.map((block) => ({\n ...block,\n type: \"tool_call\" as const,\n id: block.id,\n name: block.name,\n args: block.args,\n }))\n );\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n\n static isInstance(obj: unknown): obj is AIMessage {\n return super.isInstance(obj) && obj.type === \"ai\";\n }\n}\n\n/**\n * @deprecated Use {@link AIMessage.isInstance} instead\n */\nexport function isAIMessage<TStructure extends MessageStructure>(\n x: BaseMessage\n): x is AIMessage<TStructure> {\n return x._getType() === \"ai\";\n}\n\n/**\n * @deprecated Use {@link AIMessageChunk.isInstance} instead\n */\nexport function isAIMessageChunk<TStructure extends MessageStructure>(\n x: BaseMessageChunk\n): x is AIMessageChunk<TStructure> {\n return x._getType() === \"ai\";\n}\n\nexport type AIMessageChunkFields<\n TStructure extends MessageStructure = MessageStructure\n> = AIMessageFields<TStructure> & {\n tool_call_chunks?: ToolCallChunk[];\n};\n\n/**\n * Represents a chunk of an AI message, which can be concatenated with\n * other AI message chunks.\n */\nexport class AIMessageChunk<\n TStructure extends MessageStructure = MessageStructure\n >\n extends BaseMessageChunk<TStructure, \"ai\">\n implements AIMessage<TStructure>, AIMessageChunkFields<TStructure>\n{\n readonly type = \"ai\" as const;\n\n tool_calls?: ToolCall[] = [];\n\n invalid_tool_calls?: InvalidToolCall[] = [];\n\n tool_call_chunks?: ToolCallChunk[] = [];\n\n usage_metadata?: AIMessageChunkFields<TStructure>[\"usage_metadata\"];\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"ai\">\n | AIMessageChunkFields<TStructure>\n ) {\n let initParams: AIMessageChunkFields<TStructure>;\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n initParams = {\n content: fields,\n tool_calls: [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n };\n } else if (fields.tool_call_chunks === undefined) {\n initParams = {\n ...fields,\n tool_calls: fields.tool_calls ?? [],\n invalid_tool_calls: [],\n tool_call_chunks: [],\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n } else {\n const groupedToolCallChunk = fields.tool_call_chunks.reduce(\n (acc, chunk) => {\n // Assign a fallback ID if the chunk doesn't have one\n // This can happen with tools that have empty schemas\n const chunkId = chunk.id || `fallback-${chunk.index || 0}`;\n acc[chunkId] = acc[chunkId] ?? [];\n acc[chunkId].push(chunk);\n return acc;\n },\n {} as Record<string, ToolCallChunk[]>\n );\n\n const toolCalls: ToolCall[] = [];\n const invalidToolCalls: InvalidToolCall[] = [];\n for (const [id, chunks] of Object.entries(groupedToolCallChunk)) {\n let parsedArgs: Record<string, unknown> | null = null;\n const name = chunks[0]?.name ?? \"\";\n const joinedArgs = chunks.map((c) => c.args || \"\").join(\"\");\n const argsStr = joinedArgs.length ? joinedArgs : \"{}\";\n // Use the original ID from the first chunk if it exists, otherwise use the grouped ID\n const originalId = chunks[0]?.id || id;\n try {\n parsedArgs = parsePartialJson(argsStr);\n if (\n parsedArgs === null ||\n typeof parsedArgs !== \"object\" ||\n Array.isArray(parsedArgs)\n ) {\n throw new Error(\"Malformed tool call chunk args.\");\n }\n toolCalls.push({\n name,\n args: parsedArgs,\n id: originalId,\n type: \"tool_call\",\n });\n } catch {\n invalidToolCalls.push({\n name,\n args: argsStr,\n id: originalId,\n error: \"Malformed args.\",\n type: \"invalid_tool_call\",\n });\n }\n }\n initParams = {\n ...fields,\n tool_calls: toolCalls,\n invalid_tool_calls: invalidToolCalls,\n usage_metadata:\n fields.usage_metadata !== undefined\n ? fields.usage_metadata\n : undefined,\n };\n }\n // Sadly, TypeScript only allows super() calls at root if the class has\n // properties with initializers, so we have to check types twice.\n super(initParams);\n this.tool_call_chunks =\n initParams.tool_call_chunks ?? this.tool_call_chunks;\n this.tool_calls = initParams.tool_calls ?? this.tool_calls;\n this.invalid_tool_calls =\n initParams.invalid_tool_calls ?? this.invalid_tool_calls;\n this.usage_metadata = initParams.usage_metadata;\n }\n\n get lc_aliases(): Record<string, string> {\n // exclude snake case conversion to pascal case\n return {\n ...super.lc_aliases,\n tool_calls: \"tool_calls\",\n invalid_tool_calls: \"invalid_tool_calls\",\n tool_call_chunks: \"tool_call_chunks\",\n };\n }\n\n static lc_name() {\n return \"AIMessageChunk\";\n }\n\n get contentBlocks(): Array<ContentBlock.Standard> {\n if (\n \"output_version\" in this.response_metadata &&\n this.response_metadata.output_version === \"v1\"\n ) {\n return this.content as Array<ContentBlock.Standard>;\n }\n\n if (\n \"model_provider\" in this.response_metadata &&\n typeof this.response_metadata.model_provider === \"string\"\n ) {\n const translator = getTranslator(this.response_metadata.model_provider);\n if (translator) {\n return translator.translateContent(this);\n }\n }\n\n const blocks = super.contentBlocks;\n\n if (this.tool_calls) {\n if (typeof this.content !== \"string\") {\n const contentToolCalls = this.content\n .filter((block) => block.type === \"tool_call\")\n .map((block) => block.id);\n for (const toolCall of this.tool_calls) {\n if (toolCall.id && !contentToolCalls.includes(toolCall.id)) {\n blocks.push({\n ...toolCall,\n type: \"tool_call\",\n id: toolCall.id,\n name: toolCall.name,\n args: toolCall.args,\n });\n }\n }\n }\n }\n\n return blocks;\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n tool_calls: this.tool_calls,\n tool_call_chunks: this.tool_call_chunks,\n invalid_tool_calls: this.invalid_tool_calls,\n usage_metadata: this.usage_metadata,\n };\n }\n\n concat(chunk: AIMessageChunk<TStructure>) {\n const combinedFields: AIMessageChunkFields = {\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: mergeResponseMetadata(\n this.response_metadata,\n chunk.response_metadata\n ),\n tool_call_chunks: [],\n id: this.id ?? chunk.id,\n };\n if (\n this.tool_call_chunks !== undefined ||\n chunk.tool_call_chunks !== undefined\n ) {\n const rawToolCalls = _mergeLists(\n this.tool_call_chunks as ContentBlock.Tools.ToolCallChunk[],\n chunk.tool_call_chunks as ContentBlock.Tools.ToolCallChunk[]\n );\n if (rawToolCalls !== undefined && rawToolCalls.length > 0) {\n combinedFields.tool_call_chunks = rawToolCalls;\n }\n }\n if (\n this.usage_metadata !== undefined ||\n chunk.usage_metadata !== undefined\n ) {\n combinedFields.usage_metadata = mergeUsageMetadata(\n this.usage_metadata,\n chunk.usage_metadata\n );\n }\n const Cls = this.constructor as Constructor<this>;\n return new Cls(combinedFields);\n }\n\n static isInstance(obj: unknown): obj is AIMessageChunk {\n return super.isInstance(obj) && obj.type === \"ai\";\n }\n}\n"],"mappings":"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"}