@langchain/classic 1.0.8 → 1.0.10-dev-1768440391024

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 (493) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/agents/agent.cjs.map +1 -1
  3. package/dist/agents/agent.js.map +1 -1
  4. package/dist/agents/helpers.cjs.map +1 -1
  5. package/dist/agents/helpers.js.map +1 -1
  6. package/dist/agents/openai_functions/index.cjs.map +1 -1
  7. package/dist/agents/openai_functions/index.js.map +1 -1
  8. package/dist/agents/openai_tools/index.d.cts +2 -2
  9. package/dist/agents/openai_tools/index.d.cts.map +1 -1
  10. package/dist/agents/openai_tools/index.d.ts +2 -2
  11. package/dist/agents/openai_tools/index.d.ts.map +1 -1
  12. package/dist/agents/react/index.d.ts +2 -2
  13. package/dist/agents/react/index.d.ts.map +1 -1
  14. package/dist/agents/structured_chat/index.d.cts +2 -2
  15. package/dist/agents/structured_chat/index.d.cts.map +1 -1
  16. package/dist/agents/structured_chat/index.d.ts +2 -2
  17. package/dist/agents/structured_chat/index.d.ts.map +1 -1
  18. package/dist/agents/tool_calling/index.d.ts +2 -2
  19. package/dist/agents/tool_calling/index.d.ts.map +1 -1
  20. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts +2 -2
  21. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts.map +1 -1
  22. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +1 -1
  23. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts.map +1 -1
  24. package/dist/agents/toolkits/conversational_retrieval/tool.d.cts +1 -1
  25. package/dist/agents/toolkits/conversational_retrieval/tool.d.cts.map +1 -1
  26. package/dist/agents/toolkits/conversational_retrieval/tool.d.ts +1 -1
  27. package/dist/agents/toolkits/conversational_retrieval/tool.d.ts.map +1 -1
  28. package/dist/agents/types.cjs.map +1 -1
  29. package/dist/agents/types.js.map +1 -1
  30. package/dist/chains/base.cjs.map +1 -1
  31. package/dist/chains/base.js.map +1 -1
  32. package/dist/chains/combine_docs_chain.cjs.map +1 -1
  33. package/dist/chains/combine_docs_chain.js.map +1 -1
  34. package/dist/chains/llm_chain.cjs.map +1 -1
  35. package/dist/chains/llm_chain.js.map +1 -1
  36. package/dist/chains/openai_functions/base.cjs.map +1 -1
  37. package/dist/chains/openai_functions/base.js.map +1 -1
  38. package/dist/chains/openai_functions/openapi.cjs.map +1 -1
  39. package/dist/chains/openai_functions/openapi.js.map +1 -1
  40. package/dist/chains/query_constructor/index.cjs.map +1 -1
  41. package/dist/chains/query_constructor/index.js.map +1 -1
  42. package/dist/chains/query_constructor/parser.cjs.map +1 -1
  43. package/dist/chains/query_constructor/parser.js.map +1 -1
  44. package/dist/chains/router/multi_prompt.cjs.map +1 -1
  45. package/dist/chains/router/multi_prompt.js.map +1 -1
  46. package/dist/chains/transform.cjs.map +1 -1
  47. package/dist/chains/transform.js.map +1 -1
  48. package/dist/chat_models/universal.cjs.map +1 -1
  49. package/dist/chat_models/universal.js.map +1 -1
  50. package/dist/document_loaders/fs/json.cjs.map +1 -1
  51. package/dist/document_loaders/fs/json.js.map +1 -1
  52. package/dist/embeddings/cache_backed.cjs.map +1 -1
  53. package/dist/embeddings/cache_backed.js.map +1 -1
  54. package/dist/evaluation/base.cjs.map +1 -1
  55. package/dist/evaluation/base.js.map +1 -1
  56. package/dist/evaluation/comparison/pairwise.d.ts +3 -3
  57. package/dist/evaluation/comparison/pairwise.d.ts.map +1 -1
  58. package/dist/evaluation/criteria/criteria.d.ts +3 -3
  59. package/dist/evaluation/criteria/criteria.d.ts.map +1 -1
  60. package/dist/experimental/autogpt/prompt.d.cts +2 -2
  61. package/dist/experimental/autogpt/prompt.d.cts.map +1 -1
  62. package/dist/experimental/autogpt/prompt.d.ts +2 -2
  63. package/dist/experimental/autogpt/prompt.d.ts.map +1 -1
  64. package/dist/experimental/masking/regex_masking_transformer.cjs.map +1 -1
  65. package/dist/experimental/masking/regex_masking_transformer.js.map +1 -1
  66. package/dist/experimental/openai_assistant/index.cjs.map +1 -1
  67. package/dist/experimental/openai_assistant/index.js.map +1 -1
  68. package/dist/experimental/plan_and_execute/agent_executor.cjs.map +1 -1
  69. package/dist/experimental/plan_and_execute/agent_executor.js.map +1 -1
  70. package/dist/experimental/prompts/custom_format.cjs.map +1 -1
  71. package/dist/experimental/prompts/custom_format.d.cts.map +1 -1
  72. package/dist/experimental/prompts/custom_format.d.ts.map +1 -1
  73. package/dist/experimental/prompts/custom_format.js.map +1 -1
  74. package/dist/experimental/prompts/handlebars.cjs.map +1 -1
  75. package/dist/experimental/prompts/handlebars.d.cts.map +1 -1
  76. package/dist/experimental/prompts/handlebars.js.map +1 -1
  77. package/dist/load/import_constants.cjs +24 -24
  78. package/dist/load/import_constants.cjs.map +1 -1
  79. package/dist/load/import_constants.js +24 -24
  80. package/dist/load/import_constants.js.map +1 -1
  81. package/dist/load/import_map.cjs +44 -44
  82. package/dist/load/import_map.cjs.map +1 -1
  83. package/dist/load/import_map.js +52 -52
  84. package/dist/load/import_map.js.map +1 -1
  85. package/dist/output_parsers/openai_functions.cjs.map +1 -1
  86. package/dist/output_parsers/openai_functions.js.map +1 -1
  87. package/dist/output_parsers/regex.cjs.map +1 -1
  88. package/dist/output_parsers/regex.js.map +1 -1
  89. package/dist/output_parsers/router.cjs.map +1 -1
  90. package/dist/output_parsers/router.js.map +1 -1
  91. package/dist/output_parsers/structured.cjs.map +1 -1
  92. package/dist/output_parsers/structured.js.map +1 -1
  93. package/dist/retrievers/document_compressors/index.cjs.map +1 -1
  94. package/dist/retrievers/document_compressors/index.js.map +1 -1
  95. package/dist/retrievers/hyde.cjs +1 -1
  96. package/dist/retrievers/hyde.cjs.map +1 -1
  97. package/dist/retrievers/hyde.d.cts.map +1 -1
  98. package/dist/retrievers/hyde.js +1 -1
  99. package/dist/retrievers/hyde.js.map +1 -1
  100. package/dist/retrievers/matryoshka_retriever.cjs +1 -1
  101. package/dist/retrievers/matryoshka_retriever.cjs.map +1 -1
  102. package/dist/retrievers/matryoshka_retriever.js +1 -1
  103. package/dist/retrievers/matryoshka_retriever.js.map +1 -1
  104. package/dist/retrievers/score_threshold.cjs.map +1 -1
  105. package/dist/retrievers/score_threshold.js.map +1 -1
  106. package/dist/retrievers/self_query/index.cjs +1 -1
  107. package/dist/retrievers/self_query/index.d.ts +1 -1
  108. package/dist/retrievers/self_query/index.js +1 -1
  109. package/dist/smith/config.cjs.map +1 -1
  110. package/dist/smith/config.js.map +1 -1
  111. package/dist/smith/runner_utils.cjs.map +1 -1
  112. package/dist/smith/runner_utils.js.map +1 -1
  113. package/dist/tools/retriever.d.cts +1 -1
  114. package/dist/tools/retriever.d.cts.map +1 -1
  115. package/dist/tools/retriever.d.ts +1 -1
  116. package/dist/tools/retriever.d.ts.map +1 -1
  117. package/dist/util/sql_utils.cjs.map +1 -1
  118. package/dist/util/sql_utils.js.map +1 -1
  119. package/dist/vectorstores/memory.cjs +1 -1
  120. package/dist/vectorstores/memory.js +1 -1
  121. package/package.json +19 -20
  122. package/agents/format_scratchpad/log.cjs +0 -1
  123. package/agents/format_scratchpad/log.d.cts +0 -1
  124. package/agents/format_scratchpad/log.d.ts +0 -1
  125. package/agents/format_scratchpad/log.js +0 -1
  126. package/agents/format_scratchpad/log_to_message.cjs +0 -1
  127. package/agents/format_scratchpad/log_to_message.d.cts +0 -1
  128. package/agents/format_scratchpad/log_to_message.d.ts +0 -1
  129. package/agents/format_scratchpad/log_to_message.js +0 -1
  130. package/agents/format_scratchpad/openai_functions.cjs +0 -1
  131. package/agents/format_scratchpad/openai_functions.d.cts +0 -1
  132. package/agents/format_scratchpad/openai_functions.d.ts +0 -1
  133. package/agents/format_scratchpad/openai_functions.js +0 -1
  134. package/agents/format_scratchpad/openai_tools.cjs +0 -1
  135. package/agents/format_scratchpad/openai_tools.d.cts +0 -1
  136. package/agents/format_scratchpad/openai_tools.d.ts +0 -1
  137. package/agents/format_scratchpad/openai_tools.js +0 -1
  138. package/agents/format_scratchpad/xml.cjs +0 -1
  139. package/agents/format_scratchpad/xml.d.cts +0 -1
  140. package/agents/format_scratchpad/xml.d.ts +0 -1
  141. package/agents/format_scratchpad/xml.js +0 -1
  142. package/agents/load.cjs +0 -1
  143. package/agents/load.d.cts +0 -1
  144. package/agents/load.d.ts +0 -1
  145. package/agents/load.js +0 -1
  146. package/agents/openai/output_parser.cjs +0 -1
  147. package/agents/openai/output_parser.d.cts +0 -1
  148. package/agents/openai/output_parser.d.ts +0 -1
  149. package/agents/openai/output_parser.js +0 -1
  150. package/agents/react/output_parser.cjs +0 -1
  151. package/agents/react/output_parser.d.cts +0 -1
  152. package/agents/react/output_parser.d.ts +0 -1
  153. package/agents/react/output_parser.js +0 -1
  154. package/agents/toolkits/sql.cjs +0 -1
  155. package/agents/toolkits/sql.d.cts +0 -1
  156. package/agents/toolkits/sql.d.ts +0 -1
  157. package/agents/toolkits/sql.js +0 -1
  158. package/agents/toolkits.cjs +0 -1
  159. package/agents/toolkits.d.cts +0 -1
  160. package/agents/toolkits.d.ts +0 -1
  161. package/agents/toolkits.js +0 -1
  162. package/agents/xml/output_parser.cjs +0 -1
  163. package/agents/xml/output_parser.d.cts +0 -1
  164. package/agents/xml/output_parser.d.ts +0 -1
  165. package/agents/xml/output_parser.js +0 -1
  166. package/agents.cjs +0 -1
  167. package/agents.d.cts +0 -1
  168. package/agents.d.ts +0 -1
  169. package/agents.js +0 -1
  170. package/cache/file_system.cjs +0 -1
  171. package/cache/file_system.d.cts +0 -1
  172. package/cache/file_system.d.ts +0 -1
  173. package/cache/file_system.js +0 -1
  174. package/callbacks.cjs +0 -1
  175. package/callbacks.d.cts +0 -1
  176. package/callbacks.d.ts +0 -1
  177. package/callbacks.js +0 -1
  178. package/chains/combine_documents/reduce.cjs +0 -1
  179. package/chains/combine_documents/reduce.d.cts +0 -1
  180. package/chains/combine_documents/reduce.d.ts +0 -1
  181. package/chains/combine_documents/reduce.js +0 -1
  182. package/chains/combine_documents.cjs +0 -1
  183. package/chains/combine_documents.d.cts +0 -1
  184. package/chains/combine_documents.d.ts +0 -1
  185. package/chains/combine_documents.js +0 -1
  186. package/chains/graph_qa/cypher.cjs +0 -1
  187. package/chains/graph_qa/cypher.d.cts +0 -1
  188. package/chains/graph_qa/cypher.d.ts +0 -1
  189. package/chains/graph_qa/cypher.js +0 -1
  190. package/chains/history_aware_retriever.cjs +0 -1
  191. package/chains/history_aware_retriever.d.cts +0 -1
  192. package/chains/history_aware_retriever.d.ts +0 -1
  193. package/chains/history_aware_retriever.js +0 -1
  194. package/chains/load.cjs +0 -1
  195. package/chains/load.d.cts +0 -1
  196. package/chains/load.d.ts +0 -1
  197. package/chains/load.js +0 -1
  198. package/chains/openai_functions.cjs +0 -1
  199. package/chains/openai_functions.d.cts +0 -1
  200. package/chains/openai_functions.d.ts +0 -1
  201. package/chains/openai_functions.js +0 -1
  202. package/chains/query_constructor/ir.cjs +0 -1
  203. package/chains/query_constructor/ir.d.cts +0 -1
  204. package/chains/query_constructor/ir.d.ts +0 -1
  205. package/chains/query_constructor/ir.js +0 -1
  206. package/chains/query_constructor.cjs +0 -1
  207. package/chains/query_constructor.d.cts +0 -1
  208. package/chains/query_constructor.d.ts +0 -1
  209. package/chains/query_constructor.js +0 -1
  210. package/chains/retrieval.cjs +0 -1
  211. package/chains/retrieval.d.cts +0 -1
  212. package/chains/retrieval.d.ts +0 -1
  213. package/chains/retrieval.js +0 -1
  214. package/chains/sql_db.cjs +0 -1
  215. package/chains/sql_db.d.cts +0 -1
  216. package/chains/sql_db.d.ts +0 -1
  217. package/chains/sql_db.js +0 -1
  218. package/chains.cjs +0 -1
  219. package/chains.d.cts +0 -1
  220. package/chains.d.ts +0 -1
  221. package/chains.js +0 -1
  222. package/chat_models/universal.cjs +0 -1
  223. package/chat_models/universal.d.cts +0 -1
  224. package/chat_models/universal.d.ts +0 -1
  225. package/chat_models/universal.js +0 -1
  226. package/document.cjs +0 -1
  227. package/document.d.cts +0 -1
  228. package/document.d.ts +0 -1
  229. package/document.js +0 -1
  230. package/document_loaders/base.cjs +0 -1
  231. package/document_loaders/base.d.cts +0 -1
  232. package/document_loaders/base.d.ts +0 -1
  233. package/document_loaders/base.js +0 -1
  234. package/document_loaders/fs/buffer.cjs +0 -1
  235. package/document_loaders/fs/buffer.d.cts +0 -1
  236. package/document_loaders/fs/buffer.d.ts +0 -1
  237. package/document_loaders/fs/buffer.js +0 -1
  238. package/document_loaders/fs/directory.cjs +0 -1
  239. package/document_loaders/fs/directory.d.cts +0 -1
  240. package/document_loaders/fs/directory.d.ts +0 -1
  241. package/document_loaders/fs/directory.js +0 -1
  242. package/document_loaders/fs/json.cjs +0 -1
  243. package/document_loaders/fs/json.d.cts +0 -1
  244. package/document_loaders/fs/json.d.ts +0 -1
  245. package/document_loaders/fs/json.js +0 -1
  246. package/document_loaders/fs/multi_file.cjs +0 -1
  247. package/document_loaders/fs/multi_file.d.cts +0 -1
  248. package/document_loaders/fs/multi_file.d.ts +0 -1
  249. package/document_loaders/fs/multi_file.js +0 -1
  250. package/document_loaders/fs/text.cjs +0 -1
  251. package/document_loaders/fs/text.d.cts +0 -1
  252. package/document_loaders/fs/text.d.ts +0 -1
  253. package/document_loaders/fs/text.js +0 -1
  254. package/document_transformers/openai_functions.cjs +0 -1
  255. package/document_transformers/openai_functions.d.cts +0 -1
  256. package/document_transformers/openai_functions.d.ts +0 -1
  257. package/document_transformers/openai_functions.js +0 -1
  258. package/embeddings/cache_backed.cjs +0 -1
  259. package/embeddings/cache_backed.d.cts +0 -1
  260. package/embeddings/cache_backed.d.ts +0 -1
  261. package/embeddings/cache_backed.js +0 -1
  262. package/embeddings/fake.cjs +0 -1
  263. package/embeddings/fake.d.cts +0 -1
  264. package/embeddings/fake.d.ts +0 -1
  265. package/embeddings/fake.js +0 -1
  266. package/evaluation.cjs +0 -1
  267. package/evaluation.d.cts +0 -1
  268. package/evaluation.d.ts +0 -1
  269. package/evaluation.js +0 -1
  270. package/experimental/autogpt.cjs +0 -1
  271. package/experimental/autogpt.d.cts +0 -1
  272. package/experimental/autogpt.d.ts +0 -1
  273. package/experimental/autogpt.js +0 -1
  274. package/experimental/babyagi.cjs +0 -1
  275. package/experimental/babyagi.d.cts +0 -1
  276. package/experimental/babyagi.d.ts +0 -1
  277. package/experimental/babyagi.js +0 -1
  278. package/experimental/chains/violation_of_expectations.cjs +0 -1
  279. package/experimental/chains/violation_of_expectations.d.cts +0 -1
  280. package/experimental/chains/violation_of_expectations.d.ts +0 -1
  281. package/experimental/chains/violation_of_expectations.js +0 -1
  282. package/experimental/generative_agents.cjs +0 -1
  283. package/experimental/generative_agents.d.cts +0 -1
  284. package/experimental/generative_agents.d.ts +0 -1
  285. package/experimental/generative_agents.js +0 -1
  286. package/experimental/masking.cjs +0 -1
  287. package/experimental/masking.d.cts +0 -1
  288. package/experimental/masking.d.ts +0 -1
  289. package/experimental/masking.js +0 -1
  290. package/experimental/openai_assistant.cjs +0 -1
  291. package/experimental/openai_assistant.d.cts +0 -1
  292. package/experimental/openai_assistant.d.ts +0 -1
  293. package/experimental/openai_assistant.js +0 -1
  294. package/experimental/openai_files.cjs +0 -1
  295. package/experimental/openai_files.d.cts +0 -1
  296. package/experimental/openai_files.d.ts +0 -1
  297. package/experimental/openai_files.js +0 -1
  298. package/experimental/plan_and_execute.cjs +0 -1
  299. package/experimental/plan_and_execute.d.cts +0 -1
  300. package/experimental/plan_and_execute.d.ts +0 -1
  301. package/experimental/plan_and_execute.js +0 -1
  302. package/experimental/prompts/custom_format.cjs +0 -1
  303. package/experimental/prompts/custom_format.d.cts +0 -1
  304. package/experimental/prompts/custom_format.d.ts +0 -1
  305. package/experimental/prompts/custom_format.js +0 -1
  306. package/experimental/prompts/handlebars.cjs +0 -1
  307. package/experimental/prompts/handlebars.d.cts +0 -1
  308. package/experimental/prompts/handlebars.d.ts +0 -1
  309. package/experimental/prompts/handlebars.js +0 -1
  310. package/hub/node.cjs +0 -1
  311. package/hub/node.d.cts +0 -1
  312. package/hub/node.d.ts +0 -1
  313. package/hub/node.js +0 -1
  314. package/hub.cjs +0 -1
  315. package/hub.d.cts +0 -1
  316. package/hub.d.ts +0 -1
  317. package/hub.js +0 -1
  318. package/indexes.cjs +0 -1
  319. package/indexes.d.cts +0 -1
  320. package/indexes.d.ts +0 -1
  321. package/indexes.js +0 -1
  322. package/load/serializable.cjs +0 -1
  323. package/load/serializable.d.cts +0 -1
  324. package/load/serializable.d.ts +0 -1
  325. package/load/serializable.js +0 -1
  326. package/load.cjs +0 -1
  327. package/load.d.cts +0 -1
  328. package/load.d.ts +0 -1
  329. package/load.js +0 -1
  330. package/memory/chat_memory.cjs +0 -1
  331. package/memory/chat_memory.d.cts +0 -1
  332. package/memory/chat_memory.d.ts +0 -1
  333. package/memory/chat_memory.js +0 -1
  334. package/memory.cjs +0 -1
  335. package/memory.d.cts +0 -1
  336. package/memory.d.ts +0 -1
  337. package/memory.js +0 -1
  338. package/output_parsers/expression.cjs +0 -1
  339. package/output_parsers/expression.d.cts +0 -1
  340. package/output_parsers/expression.d.ts +0 -1
  341. package/output_parsers/expression.js +0 -1
  342. package/output_parsers.cjs +0 -1
  343. package/output_parsers.d.cts +0 -1
  344. package/output_parsers.d.ts +0 -1
  345. package/output_parsers.js +0 -1
  346. package/retrievers/contextual_compression.cjs +0 -1
  347. package/retrievers/contextual_compression.d.cts +0 -1
  348. package/retrievers/contextual_compression.d.ts +0 -1
  349. package/retrievers/contextual_compression.js +0 -1
  350. package/retrievers/document_compressors/chain_extract.cjs +0 -1
  351. package/retrievers/document_compressors/chain_extract.d.cts +0 -1
  352. package/retrievers/document_compressors/chain_extract.d.ts +0 -1
  353. package/retrievers/document_compressors/chain_extract.js +0 -1
  354. package/retrievers/document_compressors/embeddings_filter.cjs +0 -1
  355. package/retrievers/document_compressors/embeddings_filter.d.cts +0 -1
  356. package/retrievers/document_compressors/embeddings_filter.d.ts +0 -1
  357. package/retrievers/document_compressors/embeddings_filter.js +0 -1
  358. package/retrievers/document_compressors.cjs +0 -1
  359. package/retrievers/document_compressors.d.cts +0 -1
  360. package/retrievers/document_compressors.d.ts +0 -1
  361. package/retrievers/document_compressors.js +0 -1
  362. package/retrievers/ensemble.cjs +0 -1
  363. package/retrievers/ensemble.d.cts +0 -1
  364. package/retrievers/ensemble.d.ts +0 -1
  365. package/retrievers/ensemble.js +0 -1
  366. package/retrievers/hyde.cjs +0 -1
  367. package/retrievers/hyde.d.cts +0 -1
  368. package/retrievers/hyde.d.ts +0 -1
  369. package/retrievers/hyde.js +0 -1
  370. package/retrievers/matryoshka_retriever.cjs +0 -1
  371. package/retrievers/matryoshka_retriever.d.cts +0 -1
  372. package/retrievers/matryoshka_retriever.d.ts +0 -1
  373. package/retrievers/matryoshka_retriever.js +0 -1
  374. package/retrievers/multi_query.cjs +0 -1
  375. package/retrievers/multi_query.d.cts +0 -1
  376. package/retrievers/multi_query.d.ts +0 -1
  377. package/retrievers/multi_query.js +0 -1
  378. package/retrievers/multi_vector.cjs +0 -1
  379. package/retrievers/multi_vector.d.cts +0 -1
  380. package/retrievers/multi_vector.d.ts +0 -1
  381. package/retrievers/multi_vector.js +0 -1
  382. package/retrievers/parent_document.cjs +0 -1
  383. package/retrievers/parent_document.d.cts +0 -1
  384. package/retrievers/parent_document.d.ts +0 -1
  385. package/retrievers/parent_document.js +0 -1
  386. package/retrievers/score_threshold.cjs +0 -1
  387. package/retrievers/score_threshold.d.cts +0 -1
  388. package/retrievers/score_threshold.d.ts +0 -1
  389. package/retrievers/score_threshold.js +0 -1
  390. package/retrievers/self_query/functional.cjs +0 -1
  391. package/retrievers/self_query/functional.d.cts +0 -1
  392. package/retrievers/self_query/functional.d.ts +0 -1
  393. package/retrievers/self_query/functional.js +0 -1
  394. package/retrievers/self_query.cjs +0 -1
  395. package/retrievers/self_query.d.cts +0 -1
  396. package/retrievers/self_query.d.ts +0 -1
  397. package/retrievers/self_query.js +0 -1
  398. package/retrievers/time_weighted.cjs +0 -1
  399. package/retrievers/time_weighted.d.cts +0 -1
  400. package/retrievers/time_weighted.d.ts +0 -1
  401. package/retrievers/time_weighted.js +0 -1
  402. package/schema/prompt_template.cjs +0 -1
  403. package/schema/prompt_template.d.cts +0 -1
  404. package/schema/prompt_template.d.ts +0 -1
  405. package/schema/prompt_template.js +0 -1
  406. package/schema/query_constructor.cjs +0 -1
  407. package/schema/query_constructor.d.cts +0 -1
  408. package/schema/query_constructor.d.ts +0 -1
  409. package/schema/query_constructor.js +0 -1
  410. package/smith.cjs +0 -1
  411. package/smith.d.cts +0 -1
  412. package/smith.d.ts +0 -1
  413. package/smith.js +0 -1
  414. package/sql_db.cjs +0 -1
  415. package/sql_db.d.cts +0 -1
  416. package/sql_db.d.ts +0 -1
  417. package/sql_db.js +0 -1
  418. package/storage/encoder_backed.cjs +0 -1
  419. package/storage/encoder_backed.d.cts +0 -1
  420. package/storage/encoder_backed.d.ts +0 -1
  421. package/storage/encoder_backed.js +0 -1
  422. package/storage/file_system.cjs +0 -1
  423. package/storage/file_system.d.cts +0 -1
  424. package/storage/file_system.d.ts +0 -1
  425. package/storage/file_system.js +0 -1
  426. package/storage/in_memory.cjs +0 -1
  427. package/storage/in_memory.d.cts +0 -1
  428. package/storage/in_memory.d.ts +0 -1
  429. package/storage/in_memory.js +0 -1
  430. package/stores/doc/base.cjs +0 -1
  431. package/stores/doc/base.d.cts +0 -1
  432. package/stores/doc/base.d.ts +0 -1
  433. package/stores/doc/base.js +0 -1
  434. package/stores/doc/in_memory.cjs +0 -1
  435. package/stores/doc/in_memory.d.cts +0 -1
  436. package/stores/doc/in_memory.d.ts +0 -1
  437. package/stores/doc/in_memory.js +0 -1
  438. package/stores/file/in_memory.cjs +0 -1
  439. package/stores/file/in_memory.d.cts +0 -1
  440. package/stores/file/in_memory.d.ts +0 -1
  441. package/stores/file/in_memory.js +0 -1
  442. package/stores/file/node.cjs +0 -1
  443. package/stores/file/node.d.cts +0 -1
  444. package/stores/file/node.d.ts +0 -1
  445. package/stores/file/node.js +0 -1
  446. package/stores/message/in_memory.cjs +0 -1
  447. package/stores/message/in_memory.d.cts +0 -1
  448. package/stores/message/in_memory.d.ts +0 -1
  449. package/stores/message/in_memory.js +0 -1
  450. package/text_splitter.cjs +0 -1
  451. package/text_splitter.d.cts +0 -1
  452. package/text_splitter.d.ts +0 -1
  453. package/text_splitter.js +0 -1
  454. package/tools/chain.cjs +0 -1
  455. package/tools/chain.d.cts +0 -1
  456. package/tools/chain.d.ts +0 -1
  457. package/tools/chain.js +0 -1
  458. package/tools/render.cjs +0 -1
  459. package/tools/render.d.cts +0 -1
  460. package/tools/render.d.ts +0 -1
  461. package/tools/render.js +0 -1
  462. package/tools/retriever.cjs +0 -1
  463. package/tools/retriever.d.cts +0 -1
  464. package/tools/retriever.d.ts +0 -1
  465. package/tools/retriever.js +0 -1
  466. package/tools/sql.cjs +0 -1
  467. package/tools/sql.d.cts +0 -1
  468. package/tools/sql.d.ts +0 -1
  469. package/tools/sql.js +0 -1
  470. package/tools/webbrowser.cjs +0 -1
  471. package/tools/webbrowser.d.cts +0 -1
  472. package/tools/webbrowser.d.ts +0 -1
  473. package/tools/webbrowser.js +0 -1
  474. package/tools.cjs +0 -1
  475. package/tools.d.cts +0 -1
  476. package/tools.d.ts +0 -1
  477. package/tools.js +0 -1
  478. package/util/document.cjs +0 -1
  479. package/util/document.d.cts +0 -1
  480. package/util/document.d.ts +0 -1
  481. package/util/document.js +0 -1
  482. package/util/math.cjs +0 -1
  483. package/util/math.d.cts +0 -1
  484. package/util/math.d.ts +0 -1
  485. package/util/math.js +0 -1
  486. package/util/time.cjs +0 -1
  487. package/util/time.d.cts +0 -1
  488. package/util/time.d.ts +0 -1
  489. package/util/time.js +0 -1
  490. package/vectorstores/memory.cjs +0 -1
  491. package/vectorstores/memory.d.cts +0 -1
  492. package/vectorstores/memory.d.ts +0 -1
  493. package/vectorstores/memory.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fields: OpenAIAssistantRunnableInput<AsAgent>","input: RunInput","_options?: RunnableConfig","run: any","toolCall: any","params: Record<string, unknown>","runId: string","threadId: string","actions: OpenAIAssistantAction[]","item: any","tool: StructuredToolInterface"],"sources":["../../../src/experimental/openai_assistant/index.ts"],"sourcesContent":["import {\n type ClientOptions,\n type OpenAIChatModelId,\n OpenAIClient,\n} from \"@langchain/openai\";\nimport { StructuredTool, StructuredToolInterface } from \"@langchain/core/tools\";\nimport { Runnable, RunnableConfig } from \"@langchain/core/runnables\";\nimport { isInteropZodSchema } from \"@langchain/core/utils/types\";\nimport { toJsonSchema } from \"@langchain/core/utils/json_schema\";\nimport { ToolDefinition } from \"@langchain/core/language_models/base\";\nimport { sleep } from \"../../util/time.js\";\nimport type {\n OpenAIAssistantFinish,\n OpenAIAssistantAction,\n OpenAIToolType,\n} from \"./schema.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ThreadMessage = any;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype RequiredActionFunctionToolCall = any;\n\ntype ExtractRunOutput<AsAgent extends boolean | undefined> =\n AsAgent extends true\n ? OpenAIAssistantFinish | OpenAIAssistantAction[]\n : ThreadMessage[] | RequiredActionFunctionToolCall[];\n\nexport type OpenAIAssistantRunnableInput<\n AsAgent extends boolean | undefined = undefined\n> = {\n client?: OpenAIClient;\n clientOptions?: ClientOptions;\n assistantId: string;\n pollIntervalMs?: number;\n asAgent?: AsAgent;\n};\n\nexport class OpenAIAssistantRunnable<\n AsAgent extends boolean | undefined,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends Record<string, any> = Record<string, any>\n> extends Runnable<RunInput, ExtractRunOutput<AsAgent>> {\n lc_namespace = [\"langchain\", \"experimental\", \"openai_assistant\"];\n\n private client: OpenAIClient;\n\n assistantId: string;\n\n pollIntervalMs = 1000;\n\n asAgent?: AsAgent;\n\n constructor(fields: OpenAIAssistantRunnableInput<AsAgent>) {\n super(fields);\n this.client = fields.client ?? new OpenAIClient(fields?.clientOptions);\n this.assistantId = fields.assistantId;\n this.asAgent = fields.asAgent ?? this.asAgent;\n }\n\n static async createAssistant<AsAgent extends boolean>({\n model,\n name,\n instructions,\n tools,\n client,\n clientOptions,\n asAgent,\n pollIntervalMs,\n fileIds,\n }: Omit<OpenAIAssistantRunnableInput<AsAgent>, \"assistantId\"> & {\n model: OpenAIChatModelId;\n name?: string;\n instructions?: string;\n tools?: OpenAIToolType | Array<StructuredTool>;\n fileIds?: string[];\n }) {\n const formattedTools =\n tools?.map((tool) => {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (tool instanceof StructuredTool) {\n return formatToOpenAIAssistantTool(tool);\n }\n return tool;\n }) ?? [];\n const oaiClient = client ?? new OpenAIClient(clientOptions);\n const assistant = await oaiClient.beta.assistants.create({\n name,\n instructions,\n tools: formattedTools,\n model,\n file_ids: fileIds,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n\n return new this({\n client: oaiClient,\n assistantId: assistant.id,\n asAgent,\n pollIntervalMs,\n });\n }\n\n async invoke(\n input: RunInput,\n _options?: RunnableConfig\n ): Promise<ExtractRunOutput<AsAgent>> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let run: any;\n if (this.asAgent && input.steps && input.steps.length > 0) {\n const parsedStepsInput = await this._parseStepsInput(input);\n run = await this.client.beta.threads.runs.submitToolOutputs(\n parsedStepsInput.runId,\n {\n thread_id: parsedStepsInput.threadId,\n tool_outputs: parsedStepsInput.toolOutputs,\n }\n );\n } else if (!(\"threadId\" in input)) {\n const thread = {\n messages: [\n {\n role: \"user\",\n content: input.content,\n attachments: input.attachments,\n metadata: input.messagesMetadata,\n },\n ],\n metadata: input.threadMetadata,\n };\n run = await this._createThreadAndRun({\n ...input,\n thread,\n });\n } else if (!(\"runId\" in input)) {\n await this.client.beta.threads.messages.create(input.threadId, {\n content: input.content,\n role: \"user\",\n attachments: input.attachments,\n metadata: input.messagesMetadata,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n run = await this._createRun(input);\n } else {\n // Submitting tool outputs to an existing run, outside the AgentExecutor\n // framework.\n run = await this.client.beta.threads.runs.submitToolOutputs(input.runId, {\n thread_id: input.threadId,\n tool_outputs: input.toolOutputs,\n });\n }\n\n return this._getResponse(run.id, run.thread_id);\n }\n\n /**\n * Delete an assistant.\n *\n * @link {https://platform.openai.com/docs/api-reference/assistants/deleteAssistant}\n * @returns {Promise<AssistantDeleted>}\n */\n public async deleteAssistant() {\n return await this.client.beta.assistants.delete(this.assistantId);\n }\n\n /**\n * Retrieves an assistant.\n *\n * @link {https://platform.openai.com/docs/api-reference/assistants/getAssistant}\n * @returns {Promise<OpenAIClient.Beta.Assistants.Assistant>}\n */\n public async getAssistant() {\n return await this.client.beta.assistants.retrieve(this.assistantId);\n }\n\n /**\n * Modifies an assistant.\n *\n * @link {https://platform.openai.com/docs/api-reference/assistants/modifyAssistant}\n * @returns {Promise<OpenAIClient.Beta.Assistants.Assistant>}\n */\n public async modifyAssistant<AsAgent extends boolean>({\n model,\n name,\n instructions,\n fileIds,\n }: Omit<OpenAIAssistantRunnableInput<AsAgent>, \"assistantId\" | \"tools\"> & {\n model?: OpenAIChatModelId;\n name?: string;\n instructions?: string;\n fileIds?: string[];\n }) {\n return await this.client.beta.assistants.update(this.assistantId, {\n name,\n instructions,\n model,\n file_ids: fileIds,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n }\n\n private async _parseStepsInput(input: RunInput): Promise<RunInput> {\n const {\n action: { runId, threadId },\n } = input.steps[input.steps.length - 1];\n const run = await this._waitForRun(runId, threadId);\n const toolCalls = run.required_action?.submit_tool_outputs.tool_calls;\n if (!toolCalls) {\n return input;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toolOutputs = toolCalls.flatMap((toolCall: any) => {\n const matchedAction = (\n input.steps as {\n action: OpenAIAssistantAction;\n observation: string;\n }[]\n ).find((step) => step.action.toolCallId === toolCall.id);\n\n return matchedAction\n ? [\n {\n output: matchedAction.observation,\n tool_call_id: matchedAction.action.toolCallId,\n },\n ]\n : [];\n });\n return { toolOutputs, runId, threadId } as unknown as RunInput;\n }\n\n private async _createRun({\n instructions,\n model,\n tools,\n metadata,\n threadId,\n }: RunInput) {\n const run = this.client.beta.threads.runs.create(threadId, {\n assistant_id: this.assistantId,\n instructions,\n model,\n tools,\n metadata,\n });\n return run;\n }\n\n private async _createThreadAndRun(input: RunInput) {\n const params: Record<string, unknown> = [\n \"instructions\",\n \"model\",\n \"tools\",\n \"run_metadata\",\n ]\n .filter((key) => key in input)\n .reduce((obj, key) => {\n const newObj = obj;\n newObj[key] = input[key];\n return newObj;\n }, {} as Record<string, unknown>);\n const run = this.client.beta.threads.createAndRun({\n ...params,\n thread: input.thread,\n assistant_id: this.assistantId,\n });\n return run;\n }\n\n private async _waitForRun(runId: string, threadId: string) {\n let inProgress = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let run = {} as any;\n while (inProgress) {\n run = await this.client.beta.threads.runs.retrieve(runId, {\n thread_id: threadId,\n });\n inProgress = [\"in_progress\", \"queued\"].includes(run.status);\n if (inProgress) {\n await sleep(this.pollIntervalMs);\n }\n }\n return run;\n }\n\n private async _getResponse(\n runId: string,\n threadId: string\n ): Promise<ExtractRunOutput<AsAgent>>;\n\n private async _getResponse(\n runId: string,\n threadId: string\n ): Promise<\n | OpenAIAssistantFinish\n | OpenAIAssistantAction[]\n | ThreadMessage[]\n | RequiredActionFunctionToolCall[]\n > {\n const run = await this._waitForRun(runId, threadId);\n if (run.status === \"completed\") {\n const messages = await this.client.beta.threads.messages.list(threadId, {\n order: \"desc\",\n });\n const newMessages = messages.data.filter((msg) => msg.run_id === runId);\n if (!this.asAgent) {\n return newMessages;\n }\n const answer = newMessages.flatMap((msg) => msg.content);\n if (answer.every((item) => item.type === \"text\")) {\n const answerString = answer\n .map((item) => item.type === \"text\" && item.text.value)\n .join(\"\\n\");\n return {\n returnValues: {\n output: answerString,\n runId,\n threadId,\n },\n log: \"\",\n runId,\n threadId,\n };\n }\n } else if (run.status === \"requires_action\") {\n if (!this.asAgent) {\n return run.required_action?.submit_tool_outputs.tool_calls ?? [];\n }\n const actions: OpenAIAssistantAction[] = [];\n run.required_action?.submit_tool_outputs.tool_calls.forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (item: any) => {\n const functionCall = item.function;\n const args = JSON.parse(functionCall.arguments);\n actions.push({\n tool: functionCall.name,\n toolInput: args,\n toolCallId: item.id,\n log: \"\",\n runId,\n threadId,\n });\n }\n );\n return actions;\n }\n const runInfo = JSON.stringify(run, null, 2);\n throw new Error(\n `Unexpected run status ${run.status}.\\nFull run info:\\n\\n${runInfo}`\n );\n }\n}\n\nexport function formatToOpenAIAssistantTool(\n tool: StructuredToolInterface\n): ToolDefinition {\n return {\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: isInteropZodSchema(tool.schema)\n ? toJsonSchema(tool.schema)\n : tool.schema,\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAqCA,IAAa,0BAAb,cAIU,SAA8C;CACtD,eAAe;EAAC;EAAa;EAAgB;CAAmB;CAEhE,AAAQ;CAER;CAEA,iBAAiB;CAEjB;CAEA,YAAYA,QAA+C;EACzD,MAAM,OAAO;EACb,KAAK,SAAS,OAAO,UAAU,IAAI,aAAa,QAAQ;EACxD,KAAK,cAAc,OAAO;EAC1B,KAAK,UAAU,OAAO,WAAW,KAAK;CACvC;CAED,aAAa,gBAAyC,EACpD,OACA,MACA,cACA,OACA,QACA,eACA,SACA,gBACA,SAOD,EAAE;EACD,MAAM,iBACJ,OAAO,IAAI,CAAC,SAAS;AAEnB,OAAI,gBAAgB,eAClB,QAAO,4BAA4B,KAAK;AAE1C,UAAO;EACR,EAAC,IAAI,CAAE;EACV,MAAM,YAAY,UAAU,IAAI,aAAa;EAC7C,MAAM,YAAY,MAAM,UAAU,KAAK,WAAW,OAAO;GACvD;GACA;GACA,OAAO;GACP;GACA,UAAU;EAEX,EAAQ;AAET,SAAO,IAAI,KAAK;GACd,QAAQ;GACR,aAAa,UAAU;GACvB;GACA;EACD;CACF;CAED,MAAM,OACJC,OACAC,UACoC;EAEpC,IAAIC;AACJ,MAAI,KAAK,WAAW,MAAM,SAAS,MAAM,MAAM,SAAS,GAAG;GACzD,MAAM,mBAAmB,MAAM,KAAK,iBAAiB,MAAM;GAC3D,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,kBACxC,iBAAiB,OACjB;IACE,WAAW,iBAAiB;IAC5B,cAAc,iBAAiB;GAChC,EACF;EACF,WAAU,EAAE,cAAc,QAAQ;GACjC,MAAM,SAAS;IACb,UAAU,CACR;KACE,MAAM;KACN,SAAS,MAAM;KACf,aAAa,MAAM;KACnB,UAAU,MAAM;IACjB,CACF;IACD,UAAU,MAAM;GACjB;GACD,MAAM,MAAM,KAAK,oBAAoB;IACnC,GAAG;IACH;GACD,EAAC;EACH,WAAU,EAAE,WAAW,QAAQ;GAC9B,MAAM,KAAK,OAAO,KAAK,QAAQ,SAAS,OAAO,MAAM,UAAU;IAC7D,SAAS,MAAM;IACf,MAAM;IACN,aAAa,MAAM;IACnB,UAAU,MAAM;GAEjB,EAAQ;GACT,MAAM,MAAM,KAAK,WAAW,MAAM;EACnC,OAGC,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,kBAAkB,MAAM,OAAO;GACvE,WAAW,MAAM;GACjB,cAAc,MAAM;EACrB,EAAC;AAGJ,SAAO,KAAK,aAAa,IAAI,IAAI,IAAI,UAAU;CAChD;;;;;;;CAQD,MAAa,kBAAkB;AAC7B,SAAO,MAAM,KAAK,OAAO,KAAK,WAAW,OAAO,KAAK,YAAY;CAClE;;;;;;;CAQD,MAAa,eAAe;AAC1B,SAAO,MAAM,KAAK,OAAO,KAAK,WAAW,SAAS,KAAK,YAAY;CACpE;;;;;;;CAQD,MAAa,gBAAyC,EACpD,OACA,MACA,cACA,SAMD,EAAE;AACD,SAAO,MAAM,KAAK,OAAO,KAAK,WAAW,OAAO,KAAK,aAAa;GAChE;GACA;GACA;GACA,UAAU;EAEX,EAAQ;CACV;CAED,MAAc,iBAAiBF,OAAoC;EACjE,MAAM,EACJ,QAAQ,EAAE,OAAO,UAAU,EAC5B,GAAG,MAAM,MAAM,MAAM,MAAM,SAAS;EACrC,MAAM,MAAM,MAAM,KAAK,YAAY,OAAO,SAAS;EACnD,MAAM,YAAY,IAAI,iBAAiB,oBAAoB;AAC3D,MAAI,CAAC,UACH,QAAO;EAGT,MAAM,cAAc,UAAU,QAAQ,CAACG,aAAkB;GACvD,MAAM,gBACJ,MAAM,MAIN,KAAK,CAAC,SAAS,KAAK,OAAO,eAAe,SAAS,GAAG;AAExD,UAAO,gBACH,CACE;IACE,QAAQ,cAAc;IACtB,cAAc,cAAc,OAAO;GACpC,CACF,IACD,CAAE;EACP,EAAC;AACF,SAAO;GAAE;GAAa;GAAO;EAAU;CACxC;CAED,MAAc,WAAW,EACvB,cACA,OACA,OACA,UACA,UACS,EAAE;EACX,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,UAAU;GACzD,cAAc,KAAK;GACnB;GACA;GACA;GACA;EACD,EAAC;AACF,SAAO;CACR;CAED,MAAc,oBAAoBH,OAAiB;EACjD,MAAMI,SAAkC;GACtC;GACA;GACA;GACA;EACD,EACE,OAAO,CAAC,QAAQ,OAAO,MAAM,CAC7B,OAAO,CAAC,KAAK,QAAQ;GACpB,MAAM,SAAS;GACf,OAAO,OAAO,MAAM;AACpB,UAAO;EACR,GAAE,CAAE,EAA4B;EACnC,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,aAAa;GAChD,GAAG;GACH,QAAQ,MAAM;GACd,cAAc,KAAK;EACpB,EAAC;AACF,SAAO;CACR;CAED,MAAc,YAAYC,OAAeC,UAAkB;EACzD,IAAI,aAAa;EAEjB,IAAI,MAAM,CAAE;AACZ,SAAO,YAAY;GACjB,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,SAAS,OAAO,EACxD,WAAW,SACZ,EAAC;GACF,aAAa,CAAC,eAAe,QAAS,EAAC,SAAS,IAAI,OAAO;AAC3D,OAAI,YACF,MAAM,MAAM,KAAK,eAAe;EAEnC;AACD,SAAO;CACR;CAOD,MAAc,aACZD,OACAC,UAMA;EACA,MAAM,MAAM,MAAM,KAAK,YAAY,OAAO,SAAS;AACnD,MAAI,IAAI,WAAW,aAAa;GAC9B,MAAM,WAAW,MAAM,KAAK,OAAO,KAAK,QAAQ,SAAS,KAAK,UAAU,EACtE,OAAO,OACR,EAAC;GACF,MAAM,cAAc,SAAS,KAAK,OAAO,CAAC,QAAQ,IAAI,WAAW,MAAM;AACvE,OAAI,CAAC,KAAK,QACR,QAAO;GAET,MAAM,SAAS,YAAY,QAAQ,CAAC,QAAQ,IAAI,QAAQ;AACxD,OAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,OAAO,EAAE;IAChD,MAAM,eAAe,OAClB,IAAI,CAAC,SAAS,KAAK,SAAS,UAAU,KAAK,KAAK,MAAM,CACtD,KAAK,KAAK;AACb,WAAO;KACL,cAAc;MACZ,QAAQ;MACR;MACA;KACD;KACD,KAAK;KACL;KACA;IACD;GACF;EACF,WAAU,IAAI,WAAW,mBAAmB;AAC3C,OAAI,CAAC,KAAK,QACR,QAAO,IAAI,iBAAiB,oBAAoB,cAAc,CAAE;GAElE,MAAMC,UAAmC,CAAE;GAC3C,IAAI,iBAAiB,oBAAoB,WAAW,QAElD,CAACC,SAAc;IACb,MAAM,eAAe,KAAK;IAC1B,MAAM,OAAO,KAAK,MAAM,aAAa,UAAU;IAC/C,QAAQ,KAAK;KACX,MAAM,aAAa;KACnB,WAAW;KACX,YAAY,KAAK;KACjB,KAAK;KACL;KACA;IACD,EAAC;GACH,EACF;AACD,UAAO;EACR;EACD,MAAM,UAAU,KAAK,UAAU,KAAK,MAAM,EAAE;AAC5C,QAAM,IAAI,MACR,CAAC,sBAAsB,EAAE,IAAI,OAAO,qBAAqB,EAAE,SAAS;CAEvE;AACF;AAED,SAAgB,4BACdC,MACgB;AAChB,QAAO;EACL,MAAM;EACN,UAAU;GACR,MAAM,KAAK;GACX,aAAa,KAAK;GAClB,YAAY,mBAAmB,KAAK,OAAO,GACvC,aAAa,KAAK,OAAO,GACzB,KAAK;EACV;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":["fields: OpenAIAssistantRunnableInput<AsAgent>","input: RunInput","_options?: RunnableConfig","run: any","toolCall: any","params: Record<string, unknown>","runId: string","threadId: string","actions: OpenAIAssistantAction[]","item: any","tool: StructuredToolInterface"],"sources":["../../../src/experimental/openai_assistant/index.ts"],"sourcesContent":["import {\n type ClientOptions,\n type OpenAIChatModelId,\n OpenAIClient,\n} from \"@langchain/openai\";\nimport { StructuredTool, StructuredToolInterface } from \"@langchain/core/tools\";\nimport { Runnable, RunnableConfig } from \"@langchain/core/runnables\";\nimport { isInteropZodSchema } from \"@langchain/core/utils/types\";\nimport { toJsonSchema } from \"@langchain/core/utils/json_schema\";\nimport { ToolDefinition } from \"@langchain/core/language_models/base\";\nimport { sleep } from \"../../util/time.js\";\nimport type {\n OpenAIAssistantFinish,\n OpenAIAssistantAction,\n OpenAIToolType,\n} from \"./schema.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ThreadMessage = any;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype RequiredActionFunctionToolCall = any;\n\ntype ExtractRunOutput<AsAgent extends boolean | undefined> =\n AsAgent extends true\n ? OpenAIAssistantFinish | OpenAIAssistantAction[]\n : ThreadMessage[] | RequiredActionFunctionToolCall[];\n\nexport type OpenAIAssistantRunnableInput<\n AsAgent extends boolean | undefined = undefined,\n> = {\n client?: OpenAIClient;\n clientOptions?: ClientOptions;\n assistantId: string;\n pollIntervalMs?: number;\n asAgent?: AsAgent;\n};\n\nexport class OpenAIAssistantRunnable<\n AsAgent extends boolean | undefined,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends Record<string, any> = Record<string, any>,\n> extends Runnable<RunInput, ExtractRunOutput<AsAgent>> {\n lc_namespace = [\"langchain\", \"experimental\", \"openai_assistant\"];\n\n private client: OpenAIClient;\n\n assistantId: string;\n\n pollIntervalMs = 1000;\n\n asAgent?: AsAgent;\n\n constructor(fields: OpenAIAssistantRunnableInput<AsAgent>) {\n super(fields);\n this.client = fields.client ?? new OpenAIClient(fields?.clientOptions);\n this.assistantId = fields.assistantId;\n this.asAgent = fields.asAgent ?? this.asAgent;\n }\n\n static async createAssistant<AsAgent extends boolean>({\n model,\n name,\n instructions,\n tools,\n client,\n clientOptions,\n asAgent,\n pollIntervalMs,\n fileIds,\n }: Omit<OpenAIAssistantRunnableInput<AsAgent>, \"assistantId\"> & {\n model: OpenAIChatModelId;\n name?: string;\n instructions?: string;\n tools?: OpenAIToolType | Array<StructuredTool>;\n fileIds?: string[];\n }) {\n const formattedTools =\n tools?.map((tool) => {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (tool instanceof StructuredTool) {\n return formatToOpenAIAssistantTool(tool);\n }\n return tool;\n }) ?? [];\n const oaiClient = client ?? new OpenAIClient(clientOptions);\n const assistant = await oaiClient.beta.assistants.create({\n name,\n instructions,\n tools: formattedTools,\n model,\n file_ids: fileIds,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n\n return new this({\n client: oaiClient,\n assistantId: assistant.id,\n asAgent,\n pollIntervalMs,\n });\n }\n\n async invoke(\n input: RunInput,\n _options?: RunnableConfig\n ): Promise<ExtractRunOutput<AsAgent>> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let run: any;\n if (this.asAgent && input.steps && input.steps.length > 0) {\n const parsedStepsInput = await this._parseStepsInput(input);\n run = await this.client.beta.threads.runs.submitToolOutputs(\n parsedStepsInput.runId,\n {\n thread_id: parsedStepsInput.threadId,\n tool_outputs: parsedStepsInput.toolOutputs,\n }\n );\n } else if (!(\"threadId\" in input)) {\n const thread = {\n messages: [\n {\n role: \"user\",\n content: input.content,\n attachments: input.attachments,\n metadata: input.messagesMetadata,\n },\n ],\n metadata: input.threadMetadata,\n };\n run = await this._createThreadAndRun({\n ...input,\n thread,\n });\n } else if (!(\"runId\" in input)) {\n await this.client.beta.threads.messages.create(input.threadId, {\n content: input.content,\n role: \"user\",\n attachments: input.attachments,\n metadata: input.messagesMetadata,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n run = await this._createRun(input);\n } else {\n // Submitting tool outputs to an existing run, outside the AgentExecutor\n // framework.\n run = await this.client.beta.threads.runs.submitToolOutputs(input.runId, {\n thread_id: input.threadId,\n tool_outputs: input.toolOutputs,\n });\n }\n\n return this._getResponse(run.id, run.thread_id);\n }\n\n /**\n * Delete an assistant.\n *\n * @link {https://platform.openai.com/docs/api-reference/assistants/deleteAssistant}\n * @returns {Promise<AssistantDeleted>}\n */\n public async deleteAssistant() {\n return await this.client.beta.assistants.delete(this.assistantId);\n }\n\n /**\n * Retrieves an assistant.\n *\n * @link {https://platform.openai.com/docs/api-reference/assistants/getAssistant}\n * @returns {Promise<OpenAIClient.Beta.Assistants.Assistant>}\n */\n public async getAssistant() {\n return await this.client.beta.assistants.retrieve(this.assistantId);\n }\n\n /**\n * Modifies an assistant.\n *\n * @link {https://platform.openai.com/docs/api-reference/assistants/modifyAssistant}\n * @returns {Promise<OpenAIClient.Beta.Assistants.Assistant>}\n */\n public async modifyAssistant<AsAgent extends boolean>({\n model,\n name,\n instructions,\n fileIds,\n }: Omit<OpenAIAssistantRunnableInput<AsAgent>, \"assistantId\" | \"tools\"> & {\n model?: OpenAIChatModelId;\n name?: string;\n instructions?: string;\n fileIds?: string[];\n }) {\n return await this.client.beta.assistants.update(this.assistantId, {\n name,\n instructions,\n model,\n file_ids: fileIds,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any);\n }\n\n private async _parseStepsInput(input: RunInput): Promise<RunInput> {\n const {\n action: { runId, threadId },\n } = input.steps[input.steps.length - 1];\n const run = await this._waitForRun(runId, threadId);\n const toolCalls = run.required_action?.submit_tool_outputs.tool_calls;\n if (!toolCalls) {\n return input;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toolOutputs = toolCalls.flatMap((toolCall: any) => {\n const matchedAction = (\n input.steps as {\n action: OpenAIAssistantAction;\n observation: string;\n }[]\n ).find((step) => step.action.toolCallId === toolCall.id);\n\n return matchedAction\n ? [\n {\n output: matchedAction.observation,\n tool_call_id: matchedAction.action.toolCallId,\n },\n ]\n : [];\n });\n return { toolOutputs, runId, threadId } as unknown as RunInput;\n }\n\n private async _createRun({\n instructions,\n model,\n tools,\n metadata,\n threadId,\n }: RunInput) {\n const run = this.client.beta.threads.runs.create(threadId, {\n assistant_id: this.assistantId,\n instructions,\n model,\n tools,\n metadata,\n });\n return run;\n }\n\n private async _createThreadAndRun(input: RunInput) {\n const params: Record<string, unknown> = [\n \"instructions\",\n \"model\",\n \"tools\",\n \"run_metadata\",\n ]\n .filter((key) => key in input)\n .reduce(\n (obj, key) => {\n const newObj = obj;\n newObj[key] = input[key];\n return newObj;\n },\n {} as Record<string, unknown>\n );\n const run = this.client.beta.threads.createAndRun({\n ...params,\n thread: input.thread,\n assistant_id: this.assistantId,\n });\n return run;\n }\n\n private async _waitForRun(runId: string, threadId: string) {\n let inProgress = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let run = {} as any;\n while (inProgress) {\n run = await this.client.beta.threads.runs.retrieve(runId, {\n thread_id: threadId,\n });\n inProgress = [\"in_progress\", \"queued\"].includes(run.status);\n if (inProgress) {\n await sleep(this.pollIntervalMs);\n }\n }\n return run;\n }\n\n private async _getResponse(\n runId: string,\n threadId: string\n ): Promise<ExtractRunOutput<AsAgent>>;\n\n private async _getResponse(\n runId: string,\n threadId: string\n ): Promise<\n | OpenAIAssistantFinish\n | OpenAIAssistantAction[]\n | ThreadMessage[]\n | RequiredActionFunctionToolCall[]\n > {\n const run = await this._waitForRun(runId, threadId);\n if (run.status === \"completed\") {\n const messages = await this.client.beta.threads.messages.list(threadId, {\n order: \"desc\",\n });\n const newMessages = messages.data.filter((msg) => msg.run_id === runId);\n if (!this.asAgent) {\n return newMessages;\n }\n const answer = newMessages.flatMap((msg) => msg.content);\n if (answer.every((item) => item.type === \"text\")) {\n const answerString = answer\n .map((item) => item.type === \"text\" && item.text.value)\n .join(\"\\n\");\n return {\n returnValues: {\n output: answerString,\n runId,\n threadId,\n },\n log: \"\",\n runId,\n threadId,\n };\n }\n } else if (run.status === \"requires_action\") {\n if (!this.asAgent) {\n return run.required_action?.submit_tool_outputs.tool_calls ?? [];\n }\n const actions: OpenAIAssistantAction[] = [];\n run.required_action?.submit_tool_outputs.tool_calls.forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (item: any) => {\n const functionCall = item.function;\n const args = JSON.parse(functionCall.arguments);\n actions.push({\n tool: functionCall.name,\n toolInput: args,\n toolCallId: item.id,\n log: \"\",\n runId,\n threadId,\n });\n }\n );\n return actions;\n }\n const runInfo = JSON.stringify(run, null, 2);\n throw new Error(\n `Unexpected run status ${run.status}.\\nFull run info:\\n\\n${runInfo}`\n );\n }\n}\n\nexport function formatToOpenAIAssistantTool(\n tool: StructuredToolInterface\n): ToolDefinition {\n return {\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: isInteropZodSchema(tool.schema)\n ? toJsonSchema(tool.schema)\n : tool.schema,\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;AAqCA,IAAa,0BAAb,cAIU,SAA8C;CACtD,eAAe;EAAC;EAAa;EAAgB;CAAmB;CAEhE,AAAQ;CAER;CAEA,iBAAiB;CAEjB;CAEA,YAAYA,QAA+C;EACzD,MAAM,OAAO;EACb,KAAK,SAAS,OAAO,UAAU,IAAI,aAAa,QAAQ;EACxD,KAAK,cAAc,OAAO;EAC1B,KAAK,UAAU,OAAO,WAAW,KAAK;CACvC;CAED,aAAa,gBAAyC,EACpD,OACA,MACA,cACA,OACA,QACA,eACA,SACA,gBACA,SAOD,EAAE;EACD,MAAM,iBACJ,OAAO,IAAI,CAAC,SAAS;AAEnB,OAAI,gBAAgB,eAClB,QAAO,4BAA4B,KAAK;AAE1C,UAAO;EACR,EAAC,IAAI,CAAE;EACV,MAAM,YAAY,UAAU,IAAI,aAAa;EAC7C,MAAM,YAAY,MAAM,UAAU,KAAK,WAAW,OAAO;GACvD;GACA;GACA,OAAO;GACP;GACA,UAAU;EAEX,EAAQ;AAET,SAAO,IAAI,KAAK;GACd,QAAQ;GACR,aAAa,UAAU;GACvB;GACA;EACD;CACF;CAED,MAAM,OACJC,OACAC,UACoC;EAEpC,IAAIC;AACJ,MAAI,KAAK,WAAW,MAAM,SAAS,MAAM,MAAM,SAAS,GAAG;GACzD,MAAM,mBAAmB,MAAM,KAAK,iBAAiB,MAAM;GAC3D,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,kBACxC,iBAAiB,OACjB;IACE,WAAW,iBAAiB;IAC5B,cAAc,iBAAiB;GAChC,EACF;EACF,WAAU,EAAE,cAAc,QAAQ;GACjC,MAAM,SAAS;IACb,UAAU,CACR;KACE,MAAM;KACN,SAAS,MAAM;KACf,aAAa,MAAM;KACnB,UAAU,MAAM;IACjB,CACF;IACD,UAAU,MAAM;GACjB;GACD,MAAM,MAAM,KAAK,oBAAoB;IACnC,GAAG;IACH;GACD,EAAC;EACH,WAAU,EAAE,WAAW,QAAQ;GAC9B,MAAM,KAAK,OAAO,KAAK,QAAQ,SAAS,OAAO,MAAM,UAAU;IAC7D,SAAS,MAAM;IACf,MAAM;IACN,aAAa,MAAM;IACnB,UAAU,MAAM;GAEjB,EAAQ;GACT,MAAM,MAAM,KAAK,WAAW,MAAM;EACnC,OAGC,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,kBAAkB,MAAM,OAAO;GACvE,WAAW,MAAM;GACjB,cAAc,MAAM;EACrB,EAAC;AAGJ,SAAO,KAAK,aAAa,IAAI,IAAI,IAAI,UAAU;CAChD;;;;;;;CAQD,MAAa,kBAAkB;AAC7B,SAAO,MAAM,KAAK,OAAO,KAAK,WAAW,OAAO,KAAK,YAAY;CAClE;;;;;;;CAQD,MAAa,eAAe;AAC1B,SAAO,MAAM,KAAK,OAAO,KAAK,WAAW,SAAS,KAAK,YAAY;CACpE;;;;;;;CAQD,MAAa,gBAAyC,EACpD,OACA,MACA,cACA,SAMD,EAAE;AACD,SAAO,MAAM,KAAK,OAAO,KAAK,WAAW,OAAO,KAAK,aAAa;GAChE;GACA;GACA;GACA,UAAU;EAEX,EAAQ;CACV;CAED,MAAc,iBAAiBF,OAAoC;EACjE,MAAM,EACJ,QAAQ,EAAE,OAAO,UAAU,EAC5B,GAAG,MAAM,MAAM,MAAM,MAAM,SAAS;EACrC,MAAM,MAAM,MAAM,KAAK,YAAY,OAAO,SAAS;EACnD,MAAM,YAAY,IAAI,iBAAiB,oBAAoB;AAC3D,MAAI,CAAC,UACH,QAAO;EAGT,MAAM,cAAc,UAAU,QAAQ,CAACG,aAAkB;GACvD,MAAM,gBACJ,MAAM,MAIN,KAAK,CAAC,SAAS,KAAK,OAAO,eAAe,SAAS,GAAG;AAExD,UAAO,gBACH,CACE;IACE,QAAQ,cAAc;IACtB,cAAc,cAAc,OAAO;GACpC,CACF,IACD,CAAE;EACP,EAAC;AACF,SAAO;GAAE;GAAa;GAAO;EAAU;CACxC;CAED,MAAc,WAAW,EACvB,cACA,OACA,OACA,UACA,UACS,EAAE;EACX,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,UAAU;GACzD,cAAc,KAAK;GACnB;GACA;GACA;GACA;EACD,EAAC;AACF,SAAO;CACR;CAED,MAAc,oBAAoBH,OAAiB;EACjD,MAAMI,SAAkC;GACtC;GACA;GACA;GACA;EACD,EACE,OAAO,CAAC,QAAQ,OAAO,MAAM,CAC7B,OACC,CAAC,KAAK,QAAQ;GACZ,MAAM,SAAS;GACf,OAAO,OAAO,MAAM;AACpB,UAAO;EACR,GACD,CAAE,EACH;EACH,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,aAAa;GAChD,GAAG;GACH,QAAQ,MAAM;GACd,cAAc,KAAK;EACpB,EAAC;AACF,SAAO;CACR;CAED,MAAc,YAAYC,OAAeC,UAAkB;EACzD,IAAI,aAAa;EAEjB,IAAI,MAAM,CAAE;AACZ,SAAO,YAAY;GACjB,MAAM,MAAM,KAAK,OAAO,KAAK,QAAQ,KAAK,SAAS,OAAO,EACxD,WAAW,SACZ,EAAC;GACF,aAAa,CAAC,eAAe,QAAS,EAAC,SAAS,IAAI,OAAO;AAC3D,OAAI,YACF,MAAM,MAAM,KAAK,eAAe;EAEnC;AACD,SAAO;CACR;CAOD,MAAc,aACZD,OACAC,UAMA;EACA,MAAM,MAAM,MAAM,KAAK,YAAY,OAAO,SAAS;AACnD,MAAI,IAAI,WAAW,aAAa;GAC9B,MAAM,WAAW,MAAM,KAAK,OAAO,KAAK,QAAQ,SAAS,KAAK,UAAU,EACtE,OAAO,OACR,EAAC;GACF,MAAM,cAAc,SAAS,KAAK,OAAO,CAAC,QAAQ,IAAI,WAAW,MAAM;AACvE,OAAI,CAAC,KAAK,QACR,QAAO;GAET,MAAM,SAAS,YAAY,QAAQ,CAAC,QAAQ,IAAI,QAAQ;AACxD,OAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,OAAO,EAAE;IAChD,MAAM,eAAe,OAClB,IAAI,CAAC,SAAS,KAAK,SAAS,UAAU,KAAK,KAAK,MAAM,CACtD,KAAK,KAAK;AACb,WAAO;KACL,cAAc;MACZ,QAAQ;MACR;MACA;KACD;KACD,KAAK;KACL;KACA;IACD;GACF;EACF,WAAU,IAAI,WAAW,mBAAmB;AAC3C,OAAI,CAAC,KAAK,QACR,QAAO,IAAI,iBAAiB,oBAAoB,cAAc,CAAE;GAElE,MAAMC,UAAmC,CAAE;GAC3C,IAAI,iBAAiB,oBAAoB,WAAW,QAElD,CAACC,SAAc;IACb,MAAM,eAAe,KAAK;IAC1B,MAAM,OAAO,KAAK,MAAM,aAAa,UAAU;IAC/C,QAAQ,KAAK;KACX,MAAM,aAAa;KACnB,WAAW;KACX,YAAY,KAAK;KACjB,KAAK;KACL;KACA;IACD,EAAC;GACH,EACF;AACD,UAAO;EACR;EACD,MAAM,UAAU,KAAK,UAAU,KAAK,MAAM,EAAE;AAC5C,QAAM,IAAI,MACR,CAAC,sBAAsB,EAAE,IAAI,OAAO,qBAAqB,EAAE,SAAS;CAEvE;AACF;AAED,SAAgB,4BACdC,MACgB;AAChB,QAAO;EACL,MAAM;EACN,UAAU;GACR,MAAM,KAAK;GACX,aAAa,KAAK;GAClB,YAAY,mBAAmB,KAAK,OAAO,GACvC,aAAa,KAAK,OAAO,GACzB,KAAK;EACV;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent_executor.cjs","names":["tool: Tool | DynamicStructuredTool","BaseChain","ListStepContainer","input: PlanAndExecuteAgentExecutorInput","LLMChain","getPlannerChatPrompt","LLMPlanner","PlanOutputParser","DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE","StructuredChatAgent","ChainStepExecutor","AgentExecutor","ChatAgent","inputs: ChainValues","runManager?: CallbackManagerForChainRun"],"sources":["../../../src/experimental/plan_and_execute/agent_executor.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Tool, DynamicStructuredTool } from \"@langchain/core/tools\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"../../chains/base.js\";\nimport {\n BasePlanner,\n BaseStepContainer,\n BaseStepExecutor,\n ListStepContainer,\n LLMPlanner,\n ChainStepExecutor,\n} from \"./base.js\";\nimport { AgentExecutor } from \"../../agents/executor.js\";\nimport {\n DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n getPlannerChatPrompt,\n} from \"./prompt.js\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { PlanOutputParser } from \"./outputParser.js\";\nimport { ChatAgent } from \"../../agents/chat/index.js\";\nimport { StructuredChatAgent } from \"../../agents/index.js\";\nimport { SerializedLLMChain } from \"../../chains/serde.js\";\n\n/**\n * A utility function to distiguish a dynamicstructuredtool over other tools.\n * @param tool the tool to test\n * @returns bool\n */\nexport function isDynamicStructuredTool(\n tool: Tool | DynamicStructuredTool\n): tool is DynamicStructuredTool {\n // We check for the existence of the static lc_name method in the object's constructor\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (tool.constructor as any).lc_name === \"function\" &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (tool.constructor as any).lc_name() === \"DynamicStructuredTool\"\n );\n}\n\n/**\n * Interface for the input to the PlanAndExecuteAgentExecutor class. It\n * extends ChainInputs and includes additional properties for the planner,\n * step executor, step container, and input and output keys.\n */\nexport interface PlanAndExecuteAgentExecutorInput extends ChainInputs {\n planner: BasePlanner;\n stepExecutor: BaseStepExecutor;\n stepContainer?: BaseStepContainer;\n inputKey?: string;\n outputKey?: string;\n}\n\n/**\n * Class representing a plan-and-execute agent executor. This agent\n * decides on the full sequence of actions upfront, then executes them all\n * without updating the plan. This is suitable for complex or long-running\n * tasks that require maintaining long-term objectives and focus.\n */\nexport class PlanAndExecuteAgentExecutor extends BaseChain {\n static lc_name() {\n return \"PlanAndExecuteAgentExecutor\";\n }\n\n private planner: BasePlanner;\n\n private stepExecutor: BaseStepExecutor;\n\n private stepContainer: BaseStepContainer = new ListStepContainer();\n\n private inputKey = \"input\";\n\n private outputKey = \"output\";\n\n constructor(input: PlanAndExecuteAgentExecutorInput) {\n super(input);\n this.planner = input.planner;\n this.stepExecutor = input.stepExecutor;\n this.stepContainer = input.stepContainer ?? this.stepContainer;\n this.inputKey = input.inputKey ?? this.inputKey;\n this.outputKey = input.outputKey ?? this.outputKey;\n }\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return [this.outputKey];\n }\n\n /**\n * Static method that returns a default planner for the agent. It creates\n * a new LLMChain with a given LLM and a fixed prompt, and uses it to\n * create a new LLMPlanner with a PlanOutputParser.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @returns A new LLMPlanner instance.\n */\n\n static async getDefaultPlanner({\n llm,\n tools,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n }) {\n const plannerLlmChain = new LLMChain({\n llm,\n prompt: await getPlannerChatPrompt(tools),\n });\n return new LLMPlanner(plannerLlmChain, new PlanOutputParser());\n }\n\n /**\n * Static method that returns a default step executor for the agent. It\n * creates a new ChatAgent from a given LLM and a set of tools, and uses\n * it to create a new ChainStepExecutor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new ChainStepExecutor instance.\n */\n static getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate = DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n }) {\n let agent;\n\n if (tools.length > 0 && isDynamicStructuredTool(tools[0])) {\n agent = StructuredChatAgent.fromLLMAndTools(llm, tools, {\n humanMessageTemplate,\n inputVariables: [\"previous_steps\", \"current_step\", \"agent_scratchpad\"],\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n agent = ChatAgent.fromLLMAndTools(llm, tools as Tool[], {\n humanMessageTemplate,\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n /**\n * Static method that creates a new PlanAndExecuteAgentExecutor from a\n * given LLM, a set of tools, and optionally a human message template. It\n * uses the getDefaultPlanner and getDefaultStepExecutor methods to create\n * the planner and step executor for the new agent executor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new PlanAndExecuteAgentExecutor instance.\n */\n static async fromLLMAndTools({\n llm,\n tools,\n humanMessageTemplate,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n } & Omit<PlanAndExecuteAgentExecutorInput, \"planner\" | \"stepExecutor\">) {\n const executor = new PlanAndExecuteAgentExecutor({\n planner: await PlanAndExecuteAgentExecutor.getDefaultPlanner({\n llm,\n tools,\n }),\n stepExecutor: PlanAndExecuteAgentExecutor.getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate,\n }),\n });\n return executor;\n }\n\n /** @ignore */\n async _call(\n inputs: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n const plan = await this.planner.plan(inputs.input, runManager?.getChild());\n if (!plan.steps?.length) {\n throw new Error(\n \"Could not create and parse a plan to answer your question - please try again.\"\n );\n }\n plan.steps[\n plan.steps.length - 1\n ].text += ` The original question was: ${inputs.input}.`;\n for (const step of plan.steps) {\n const newInputs = {\n ...inputs,\n previous_steps: JSON.stringify(this.stepContainer.getSteps()),\n current_step: step.text,\n };\n const response = await this.stepExecutor.step(\n newInputs,\n runManager?.getChild()\n );\n this.stepContainer.addStep(step, response);\n }\n return { [this.outputKey]: this.stepContainer.getFinalResponse() };\n }\n\n _chainType() {\n return \"agent_executor\" as const;\n }\n\n serialize(): SerializedLLMChain {\n throw new Error(\"Cannot serialize an AgentExecutor\");\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA6BA,SAAgB,wBACdA,MAC+B;AAE/B,QAEE,OAAQ,KAAK,YAAoB,YAAY,cAE5C,KAAK,YAAoB,SAAS,KAAK;AAE3C;;;;;;;AAqBD,IAAa,8BAAb,MAAa,oCAAoCC,uBAAU;CACzD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAQ;CAER,AAAQ;CAER,AAAQ,gBAAmC,IAAIC;CAE/C,AAAQ,WAAW;CAEnB,AAAQ,YAAY;CAEpB,YAAYC,OAAyC;EACnD,MAAM,MAAM;EACZ,KAAK,UAAU,MAAM;EACrB,KAAK,eAAe,MAAM;EAC1B,KAAK,gBAAgB,MAAM,iBAAiB,KAAK;EACjD,KAAK,WAAW,MAAM,YAAY,KAAK;EACvC,KAAK,YAAY,MAAM,aAAa,KAAK;CAC1C;CAED,IAAI,YAAY;AACd,SAAO,CAAC,KAAK,QAAS;CACvB;CAED,IAAI,aAAa;AACf,SAAO,CAAC,KAAK,SAAU;CACxB;;;;;;;;CAUD,aAAa,kBAAkB,EAC7B,KACA,OAID,EAAE;EACD,MAAM,kBAAkB,IAAIC,2BAAS;GACnC;GACA,QAAQ,MAAMC,oCAAqB,MAAM;EAC1C;AACD,SAAO,IAAIC,0BAAW,iBAAiB,IAAIC;CAC5C;;;;;;;;;;CAWD,OAAO,uBAAuB,EAC5B,KACA,OACA,uBAAuBC,kEAKxB,EAAE;EACD,IAAI;AAEJ,MAAI,MAAM,SAAS,KAAK,wBAAwB,MAAM,GAAG,EAAE;GACzD,QAAQC,oCAAoB,gBAAgB,KAAK,OAAO;IACtD;IACA,gBAAgB;KAAC;KAAkB;KAAgB;IAAmB;GACvE,EAAC;AACF,UAAO,IAAIC,iCACTC,+BAAc,kBAAkB;IAC9B;IACA;GACD,EAAC;EAEL;EAED,QAAQC,wBAAU,gBAAgB,KAAK,OAAiB,EACtD,qBACD,EAAC;AACF,SAAO,IAAIF,iCACTC,+BAAc,kBAAkB;GAC9B;GACA;EACD,EAAC;CAEL;;;;;;;;;;;CAYD,aAAa,gBAAgB,EAC3B,KACA,OACA,sBAKoE,EAAE;EACtE,MAAM,WAAW,IAAI,4BAA4B;GAC/C,SAAS,MAAM,4BAA4B,kBAAkB;IAC3D;IACA;GACD,EAAC;GACF,cAAc,4BAA4B,uBAAuB;IAC/D;IACA;IACA;GACD,EAAC;EACH;AACD,SAAO;CACR;;CAGD,MAAM,MACJE,QACAC,YACsB;EACtB,MAAM,OAAO,MAAM,KAAK,QAAQ,KAAK,OAAO,OAAO,YAAY,UAAU,CAAC;AAC1E,MAAI,CAAC,KAAK,OAAO,OACf,OAAM,IAAI,MACR;EAGJ,KAAK,MACH,KAAK,MAAM,SAAS,GACpB,QAAQ,CAAC,4BAA4B,EAAE,OAAO,MAAM,CAAC,CAAC;AACxD,OAAK,MAAM,QAAQ,KAAK,OAAO;GAC7B,MAAM,YAAY;IAChB,GAAG;IACH,gBAAgB,KAAK,UAAU,KAAK,cAAc,UAAU,CAAC;IAC7D,cAAc,KAAK;GACpB;GACD,MAAM,WAAW,MAAM,KAAK,aAAa,KACvC,WACA,YAAY,UAAU,CACvB;GACD,KAAK,cAAc,QAAQ,MAAM,SAAS;EAC3C;AACD,SAAO,GAAG,KAAK,YAAY,KAAK,cAAc,kBAAkB,CAAE;CACnE;CAED,aAAa;AACX,SAAO;CACR;CAED,YAAgC;AAC9B,QAAM,IAAI,MAAM;CACjB;AACF"}
1
+ {"version":3,"file":"agent_executor.cjs","names":["tool: Tool | DynamicStructuredTool","BaseChain","ListStepContainer","input: PlanAndExecuteAgentExecutorInput","LLMChain","getPlannerChatPrompt","LLMPlanner","PlanOutputParser","DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE","StructuredChatAgent","ChainStepExecutor","AgentExecutor","ChatAgent","inputs: ChainValues","runManager?: CallbackManagerForChainRun"],"sources":["../../../src/experimental/plan_and_execute/agent_executor.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Tool, DynamicStructuredTool } from \"@langchain/core/tools\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"../../chains/base.js\";\nimport {\n BasePlanner,\n BaseStepContainer,\n BaseStepExecutor,\n ListStepContainer,\n LLMPlanner,\n ChainStepExecutor,\n} from \"./base.js\";\nimport { AgentExecutor } from \"../../agents/executor.js\";\nimport {\n DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n getPlannerChatPrompt,\n} from \"./prompt.js\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { PlanOutputParser } from \"./outputParser.js\";\nimport { ChatAgent } from \"../../agents/chat/index.js\";\nimport { StructuredChatAgent } from \"../../agents/index.js\";\nimport { SerializedLLMChain } from \"../../chains/serde.js\";\n\n/**\n * A utility function to distiguish a dynamicstructuredtool over other tools.\n * @param tool the tool to test\n * @returns bool\n */\nexport function isDynamicStructuredTool(\n tool: Tool | DynamicStructuredTool\n): tool is DynamicStructuredTool {\n // We check for the existence of the static lc_name method in the object's constructor\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (tool.constructor as any).lc_name === \"function\" &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (tool.constructor as any).lc_name() === \"DynamicStructuredTool\"\n );\n}\n\n/**\n * Interface for the input to the PlanAndExecuteAgentExecutor class. It\n * extends ChainInputs and includes additional properties for the planner,\n * step executor, step container, and input and output keys.\n */\nexport interface PlanAndExecuteAgentExecutorInput extends ChainInputs {\n planner: BasePlanner;\n stepExecutor: BaseStepExecutor;\n stepContainer?: BaseStepContainer;\n inputKey?: string;\n outputKey?: string;\n}\n\n/**\n * Class representing a plan-and-execute agent executor. This agent\n * decides on the full sequence of actions upfront, then executes them all\n * without updating the plan. This is suitable for complex or long-running\n * tasks that require maintaining long-term objectives and focus.\n */\nexport class PlanAndExecuteAgentExecutor extends BaseChain {\n static lc_name() {\n return \"PlanAndExecuteAgentExecutor\";\n }\n\n private planner: BasePlanner;\n\n private stepExecutor: BaseStepExecutor;\n\n private stepContainer: BaseStepContainer = new ListStepContainer();\n\n private inputKey = \"input\";\n\n private outputKey = \"output\";\n\n constructor(input: PlanAndExecuteAgentExecutorInput) {\n super(input);\n this.planner = input.planner;\n this.stepExecutor = input.stepExecutor;\n this.stepContainer = input.stepContainer ?? this.stepContainer;\n this.inputKey = input.inputKey ?? this.inputKey;\n this.outputKey = input.outputKey ?? this.outputKey;\n }\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return [this.outputKey];\n }\n\n /**\n * Static method that returns a default planner for the agent. It creates\n * a new LLMChain with a given LLM and a fixed prompt, and uses it to\n * create a new LLMPlanner with a PlanOutputParser.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @returns A new LLMPlanner instance.\n */\n\n static async getDefaultPlanner({\n llm,\n tools,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n }) {\n const plannerLlmChain = new LLMChain({\n llm,\n prompt: await getPlannerChatPrompt(tools),\n });\n return new LLMPlanner(plannerLlmChain, new PlanOutputParser());\n }\n\n /**\n * Static method that returns a default step executor for the agent. It\n * creates a new ChatAgent from a given LLM and a set of tools, and uses\n * it to create a new ChainStepExecutor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new ChainStepExecutor instance.\n */\n static getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate = DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n }) {\n let agent;\n\n if (tools.length > 0 && isDynamicStructuredTool(tools[0])) {\n agent = StructuredChatAgent.fromLLMAndTools(llm, tools, {\n humanMessageTemplate,\n inputVariables: [\"previous_steps\", \"current_step\", \"agent_scratchpad\"],\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n agent = ChatAgent.fromLLMAndTools(llm, tools as Tool[], {\n humanMessageTemplate,\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n /**\n * Static method that creates a new PlanAndExecuteAgentExecutor from a\n * given LLM, a set of tools, and optionally a human message template. It\n * uses the getDefaultPlanner and getDefaultStepExecutor methods to create\n * the planner and step executor for the new agent executor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new PlanAndExecuteAgentExecutor instance.\n */\n static async fromLLMAndTools({\n llm,\n tools,\n humanMessageTemplate,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n } & Omit<PlanAndExecuteAgentExecutorInput, \"planner\" | \"stepExecutor\">) {\n const executor = new PlanAndExecuteAgentExecutor({\n planner: await PlanAndExecuteAgentExecutor.getDefaultPlanner({\n llm,\n tools,\n }),\n stepExecutor: PlanAndExecuteAgentExecutor.getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate,\n }),\n });\n return executor;\n }\n\n /** @ignore */\n async _call(\n inputs: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n const plan = await this.planner.plan(inputs.input, runManager?.getChild());\n if (!plan.steps?.length) {\n throw new Error(\n \"Could not create and parse a plan to answer your question - please try again.\"\n );\n }\n plan.steps[plan.steps.length - 1].text +=\n ` The original question was: ${inputs.input}.`;\n for (const step of plan.steps) {\n const newInputs = {\n ...inputs,\n previous_steps: JSON.stringify(this.stepContainer.getSteps()),\n current_step: step.text,\n };\n const response = await this.stepExecutor.step(\n newInputs,\n runManager?.getChild()\n );\n this.stepContainer.addStep(step, response);\n }\n return { [this.outputKey]: this.stepContainer.getFinalResponse() };\n }\n\n _chainType() {\n return \"agent_executor\" as const;\n }\n\n serialize(): SerializedLLMChain {\n throw new Error(\"Cannot serialize an AgentExecutor\");\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA6BA,SAAgB,wBACdA,MAC+B;AAE/B,QAEE,OAAQ,KAAK,YAAoB,YAAY,cAE5C,KAAK,YAAoB,SAAS,KAAK;AAE3C;;;;;;;AAqBD,IAAa,8BAAb,MAAa,oCAAoCC,uBAAU;CACzD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAQ;CAER,AAAQ;CAER,AAAQ,gBAAmC,IAAIC;CAE/C,AAAQ,WAAW;CAEnB,AAAQ,YAAY;CAEpB,YAAYC,OAAyC;EACnD,MAAM,MAAM;EACZ,KAAK,UAAU,MAAM;EACrB,KAAK,eAAe,MAAM;EAC1B,KAAK,gBAAgB,MAAM,iBAAiB,KAAK;EACjD,KAAK,WAAW,MAAM,YAAY,KAAK;EACvC,KAAK,YAAY,MAAM,aAAa,KAAK;CAC1C;CAED,IAAI,YAAY;AACd,SAAO,CAAC,KAAK,QAAS;CACvB;CAED,IAAI,aAAa;AACf,SAAO,CAAC,KAAK,SAAU;CACxB;;;;;;;;CAUD,aAAa,kBAAkB,EAC7B,KACA,OAID,EAAE;EACD,MAAM,kBAAkB,IAAIC,2BAAS;GACnC;GACA,QAAQ,MAAMC,oCAAqB,MAAM;EAC1C;AACD,SAAO,IAAIC,0BAAW,iBAAiB,IAAIC;CAC5C;;;;;;;;;;CAWD,OAAO,uBAAuB,EAC5B,KACA,OACA,uBAAuBC,kEAKxB,EAAE;EACD,IAAI;AAEJ,MAAI,MAAM,SAAS,KAAK,wBAAwB,MAAM,GAAG,EAAE;GACzD,QAAQC,oCAAoB,gBAAgB,KAAK,OAAO;IACtD;IACA,gBAAgB;KAAC;KAAkB;KAAgB;IAAmB;GACvE,EAAC;AACF,UAAO,IAAIC,iCACTC,+BAAc,kBAAkB;IAC9B;IACA;GACD,EAAC;EAEL;EAED,QAAQC,wBAAU,gBAAgB,KAAK,OAAiB,EACtD,qBACD,EAAC;AACF,SAAO,IAAIF,iCACTC,+BAAc,kBAAkB;GAC9B;GACA;EACD,EAAC;CAEL;;;;;;;;;;;CAYD,aAAa,gBAAgB,EAC3B,KACA,OACA,sBAKoE,EAAE;EACtE,MAAM,WAAW,IAAI,4BAA4B;GAC/C,SAAS,MAAM,4BAA4B,kBAAkB;IAC3D;IACA;GACD,EAAC;GACF,cAAc,4BAA4B,uBAAuB;IAC/D;IACA;IACA;GACD,EAAC;EACH;AACD,SAAO;CACR;;CAGD,MAAM,MACJE,QACAC,YACsB;EACtB,MAAM,OAAO,MAAM,KAAK,QAAQ,KAAK,OAAO,OAAO,YAAY,UAAU,CAAC;AAC1E,MAAI,CAAC,KAAK,OAAO,OACf,OAAM,IAAI,MACR;EAGJ,KAAK,MAAM,KAAK,MAAM,SAAS,GAAG,QAChC,CAAC,4BAA4B,EAAE,OAAO,MAAM,CAAC,CAAC;AAChD,OAAK,MAAM,QAAQ,KAAK,OAAO;GAC7B,MAAM,YAAY;IAChB,GAAG;IACH,gBAAgB,KAAK,UAAU,KAAK,cAAc,UAAU,CAAC;IAC7D,cAAc,KAAK;GACpB;GACD,MAAM,WAAW,MAAM,KAAK,aAAa,KACvC,WACA,YAAY,UAAU,CACvB;GACD,KAAK,cAAc,QAAQ,MAAM,SAAS;EAC3C;AACD,SAAO,GAAG,KAAK,YAAY,KAAK,cAAc,kBAAkB,CAAE;CACnE;CAED,aAAa;AACX,SAAO;CACR;CAED,YAAgC;AAC9B,QAAM,IAAI,MAAM;CACjB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent_executor.js","names":["tool: Tool | DynamicStructuredTool","input: PlanAndExecuteAgentExecutorInput","inputs: ChainValues","runManager?: CallbackManagerForChainRun"],"sources":["../../../src/experimental/plan_and_execute/agent_executor.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Tool, DynamicStructuredTool } from \"@langchain/core/tools\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"../../chains/base.js\";\nimport {\n BasePlanner,\n BaseStepContainer,\n BaseStepExecutor,\n ListStepContainer,\n LLMPlanner,\n ChainStepExecutor,\n} from \"./base.js\";\nimport { AgentExecutor } from \"../../agents/executor.js\";\nimport {\n DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n getPlannerChatPrompt,\n} from \"./prompt.js\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { PlanOutputParser } from \"./outputParser.js\";\nimport { ChatAgent } from \"../../agents/chat/index.js\";\nimport { StructuredChatAgent } from \"../../agents/index.js\";\nimport { SerializedLLMChain } from \"../../chains/serde.js\";\n\n/**\n * A utility function to distiguish a dynamicstructuredtool over other tools.\n * @param tool the tool to test\n * @returns bool\n */\nexport function isDynamicStructuredTool(\n tool: Tool | DynamicStructuredTool\n): tool is DynamicStructuredTool {\n // We check for the existence of the static lc_name method in the object's constructor\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (tool.constructor as any).lc_name === \"function\" &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (tool.constructor as any).lc_name() === \"DynamicStructuredTool\"\n );\n}\n\n/**\n * Interface for the input to the PlanAndExecuteAgentExecutor class. It\n * extends ChainInputs and includes additional properties for the planner,\n * step executor, step container, and input and output keys.\n */\nexport interface PlanAndExecuteAgentExecutorInput extends ChainInputs {\n planner: BasePlanner;\n stepExecutor: BaseStepExecutor;\n stepContainer?: BaseStepContainer;\n inputKey?: string;\n outputKey?: string;\n}\n\n/**\n * Class representing a plan-and-execute agent executor. This agent\n * decides on the full sequence of actions upfront, then executes them all\n * without updating the plan. This is suitable for complex or long-running\n * tasks that require maintaining long-term objectives and focus.\n */\nexport class PlanAndExecuteAgentExecutor extends BaseChain {\n static lc_name() {\n return \"PlanAndExecuteAgentExecutor\";\n }\n\n private planner: BasePlanner;\n\n private stepExecutor: BaseStepExecutor;\n\n private stepContainer: BaseStepContainer = new ListStepContainer();\n\n private inputKey = \"input\";\n\n private outputKey = \"output\";\n\n constructor(input: PlanAndExecuteAgentExecutorInput) {\n super(input);\n this.planner = input.planner;\n this.stepExecutor = input.stepExecutor;\n this.stepContainer = input.stepContainer ?? this.stepContainer;\n this.inputKey = input.inputKey ?? this.inputKey;\n this.outputKey = input.outputKey ?? this.outputKey;\n }\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return [this.outputKey];\n }\n\n /**\n * Static method that returns a default planner for the agent. It creates\n * a new LLMChain with a given LLM and a fixed prompt, and uses it to\n * create a new LLMPlanner with a PlanOutputParser.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @returns A new LLMPlanner instance.\n */\n\n static async getDefaultPlanner({\n llm,\n tools,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n }) {\n const plannerLlmChain = new LLMChain({\n llm,\n prompt: await getPlannerChatPrompt(tools),\n });\n return new LLMPlanner(plannerLlmChain, new PlanOutputParser());\n }\n\n /**\n * Static method that returns a default step executor for the agent. It\n * creates a new ChatAgent from a given LLM and a set of tools, and uses\n * it to create a new ChainStepExecutor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new ChainStepExecutor instance.\n */\n static getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate = DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n }) {\n let agent;\n\n if (tools.length > 0 && isDynamicStructuredTool(tools[0])) {\n agent = StructuredChatAgent.fromLLMAndTools(llm, tools, {\n humanMessageTemplate,\n inputVariables: [\"previous_steps\", \"current_step\", \"agent_scratchpad\"],\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n agent = ChatAgent.fromLLMAndTools(llm, tools as Tool[], {\n humanMessageTemplate,\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n /**\n * Static method that creates a new PlanAndExecuteAgentExecutor from a\n * given LLM, a set of tools, and optionally a human message template. It\n * uses the getDefaultPlanner and getDefaultStepExecutor methods to create\n * the planner and step executor for the new agent executor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new PlanAndExecuteAgentExecutor instance.\n */\n static async fromLLMAndTools({\n llm,\n tools,\n humanMessageTemplate,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n } & Omit<PlanAndExecuteAgentExecutorInput, \"planner\" | \"stepExecutor\">) {\n const executor = new PlanAndExecuteAgentExecutor({\n planner: await PlanAndExecuteAgentExecutor.getDefaultPlanner({\n llm,\n tools,\n }),\n stepExecutor: PlanAndExecuteAgentExecutor.getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate,\n }),\n });\n return executor;\n }\n\n /** @ignore */\n async _call(\n inputs: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n const plan = await this.planner.plan(inputs.input, runManager?.getChild());\n if (!plan.steps?.length) {\n throw new Error(\n \"Could not create and parse a plan to answer your question - please try again.\"\n );\n }\n plan.steps[\n plan.steps.length - 1\n ].text += ` The original question was: ${inputs.input}.`;\n for (const step of plan.steps) {\n const newInputs = {\n ...inputs,\n previous_steps: JSON.stringify(this.stepContainer.getSteps()),\n current_step: step.text,\n };\n const response = await this.stepExecutor.step(\n newInputs,\n runManager?.getChild()\n );\n this.stepContainer.addStep(step, response);\n }\n return { [this.outputKey]: this.stepContainer.getFinalResponse() };\n }\n\n _chainType() {\n return \"agent_executor\" as const;\n }\n\n serialize(): SerializedLLMChain {\n throw new Error(\"Cannot serialize an AgentExecutor\");\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA6BA,SAAgB,wBACdA,MAC+B;AAE/B,QAEE,OAAQ,KAAK,YAAoB,YAAY,cAE5C,KAAK,YAAoB,SAAS,KAAK;AAE3C;;;;;;;AAqBD,IAAa,8BAAb,MAAa,oCAAoC,UAAU;CACzD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAQ;CAER,AAAQ;CAER,AAAQ,gBAAmC,IAAI;CAE/C,AAAQ,WAAW;CAEnB,AAAQ,YAAY;CAEpB,YAAYC,OAAyC;EACnD,MAAM,MAAM;EACZ,KAAK,UAAU,MAAM;EACrB,KAAK,eAAe,MAAM;EAC1B,KAAK,gBAAgB,MAAM,iBAAiB,KAAK;EACjD,KAAK,WAAW,MAAM,YAAY,KAAK;EACvC,KAAK,YAAY,MAAM,aAAa,KAAK;CAC1C;CAED,IAAI,YAAY;AACd,SAAO,CAAC,KAAK,QAAS;CACvB;CAED,IAAI,aAAa;AACf,SAAO,CAAC,KAAK,SAAU;CACxB;;;;;;;;CAUD,aAAa,kBAAkB,EAC7B,KACA,OAID,EAAE;EACD,MAAM,kBAAkB,IAAI,SAAS;GACnC;GACA,QAAQ,MAAM,qBAAqB,MAAM;EAC1C;AACD,SAAO,IAAI,WAAW,iBAAiB,IAAI;CAC5C;;;;;;;;;;CAWD,OAAO,uBAAuB,EAC5B,KACA,OACA,uBAAuB,mDAKxB,EAAE;EACD,IAAI;AAEJ,MAAI,MAAM,SAAS,KAAK,wBAAwB,MAAM,GAAG,EAAE;GACzD,QAAQ,oBAAoB,gBAAgB,KAAK,OAAO;IACtD;IACA,gBAAgB;KAAC;KAAkB;KAAgB;IAAmB;GACvE,EAAC;AACF,UAAO,IAAI,kBACT,cAAc,kBAAkB;IAC9B;IACA;GACD,EAAC;EAEL;EAED,QAAQ,UAAU,gBAAgB,KAAK,OAAiB,EACtD,qBACD,EAAC;AACF,SAAO,IAAI,kBACT,cAAc,kBAAkB;GAC9B;GACA;EACD,EAAC;CAEL;;;;;;;;;;;CAYD,aAAa,gBAAgB,EAC3B,KACA,OACA,sBAKoE,EAAE;EACtE,MAAM,WAAW,IAAI,4BAA4B;GAC/C,SAAS,MAAM,4BAA4B,kBAAkB;IAC3D;IACA;GACD,EAAC;GACF,cAAc,4BAA4B,uBAAuB;IAC/D;IACA;IACA;GACD,EAAC;EACH;AACD,SAAO;CACR;;CAGD,MAAM,MACJC,QACAC,YACsB;EACtB,MAAM,OAAO,MAAM,KAAK,QAAQ,KAAK,OAAO,OAAO,YAAY,UAAU,CAAC;AAC1E,MAAI,CAAC,KAAK,OAAO,OACf,OAAM,IAAI,MACR;EAGJ,KAAK,MACH,KAAK,MAAM,SAAS,GACpB,QAAQ,CAAC,4BAA4B,EAAE,OAAO,MAAM,CAAC,CAAC;AACxD,OAAK,MAAM,QAAQ,KAAK,OAAO;GAC7B,MAAM,YAAY;IAChB,GAAG;IACH,gBAAgB,KAAK,UAAU,KAAK,cAAc,UAAU,CAAC;IAC7D,cAAc,KAAK;GACpB;GACD,MAAM,WAAW,MAAM,KAAK,aAAa,KACvC,WACA,YAAY,UAAU,CACvB;GACD,KAAK,cAAc,QAAQ,MAAM,SAAS;EAC3C;AACD,SAAO,GAAG,KAAK,YAAY,KAAK,cAAc,kBAAkB,CAAE;CACnE;CAED,aAAa;AACX,SAAO;CACR;CAED,YAAgC;AAC9B,QAAM,IAAI,MAAM;CACjB;AACF"}
1
+ {"version":3,"file":"agent_executor.js","names":["tool: Tool | DynamicStructuredTool","input: PlanAndExecuteAgentExecutorInput","inputs: ChainValues","runManager?: CallbackManagerForChainRun"],"sources":["../../../src/experimental/plan_and_execute/agent_executor.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { Tool, DynamicStructuredTool } from \"@langchain/core/tools\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"../../chains/base.js\";\nimport {\n BasePlanner,\n BaseStepContainer,\n BaseStepExecutor,\n ListStepContainer,\n LLMPlanner,\n ChainStepExecutor,\n} from \"./base.js\";\nimport { AgentExecutor } from \"../../agents/executor.js\";\nimport {\n DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n getPlannerChatPrompt,\n} from \"./prompt.js\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { PlanOutputParser } from \"./outputParser.js\";\nimport { ChatAgent } from \"../../agents/chat/index.js\";\nimport { StructuredChatAgent } from \"../../agents/index.js\";\nimport { SerializedLLMChain } from \"../../chains/serde.js\";\n\n/**\n * A utility function to distiguish a dynamicstructuredtool over other tools.\n * @param tool the tool to test\n * @returns bool\n */\nexport function isDynamicStructuredTool(\n tool: Tool | DynamicStructuredTool\n): tool is DynamicStructuredTool {\n // We check for the existence of the static lc_name method in the object's constructor\n return (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (tool.constructor as any).lc_name === \"function\" &&\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (tool.constructor as any).lc_name() === \"DynamicStructuredTool\"\n );\n}\n\n/**\n * Interface for the input to the PlanAndExecuteAgentExecutor class. It\n * extends ChainInputs and includes additional properties for the planner,\n * step executor, step container, and input and output keys.\n */\nexport interface PlanAndExecuteAgentExecutorInput extends ChainInputs {\n planner: BasePlanner;\n stepExecutor: BaseStepExecutor;\n stepContainer?: BaseStepContainer;\n inputKey?: string;\n outputKey?: string;\n}\n\n/**\n * Class representing a plan-and-execute agent executor. This agent\n * decides on the full sequence of actions upfront, then executes them all\n * without updating the plan. This is suitable for complex or long-running\n * tasks that require maintaining long-term objectives and focus.\n */\nexport class PlanAndExecuteAgentExecutor extends BaseChain {\n static lc_name() {\n return \"PlanAndExecuteAgentExecutor\";\n }\n\n private planner: BasePlanner;\n\n private stepExecutor: BaseStepExecutor;\n\n private stepContainer: BaseStepContainer = new ListStepContainer();\n\n private inputKey = \"input\";\n\n private outputKey = \"output\";\n\n constructor(input: PlanAndExecuteAgentExecutorInput) {\n super(input);\n this.planner = input.planner;\n this.stepExecutor = input.stepExecutor;\n this.stepContainer = input.stepContainer ?? this.stepContainer;\n this.inputKey = input.inputKey ?? this.inputKey;\n this.outputKey = input.outputKey ?? this.outputKey;\n }\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return [this.outputKey];\n }\n\n /**\n * Static method that returns a default planner for the agent. It creates\n * a new LLMChain with a given LLM and a fixed prompt, and uses it to\n * create a new LLMPlanner with a PlanOutputParser.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @returns A new LLMPlanner instance.\n */\n\n static async getDefaultPlanner({\n llm,\n tools,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n }) {\n const plannerLlmChain = new LLMChain({\n llm,\n prompt: await getPlannerChatPrompt(tools),\n });\n return new LLMPlanner(plannerLlmChain, new PlanOutputParser());\n }\n\n /**\n * Static method that returns a default step executor for the agent. It\n * creates a new ChatAgent from a given LLM and a set of tools, and uses\n * it to create a new ChainStepExecutor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new ChainStepExecutor instance.\n */\n static getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate = DEFAULT_STEP_EXECUTOR_HUMAN_CHAT_MESSAGE_TEMPLATE,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n }) {\n let agent;\n\n if (tools.length > 0 && isDynamicStructuredTool(tools[0])) {\n agent = StructuredChatAgent.fromLLMAndTools(llm, tools, {\n humanMessageTemplate,\n inputVariables: [\"previous_steps\", \"current_step\", \"agent_scratchpad\"],\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n agent = ChatAgent.fromLLMAndTools(llm, tools as Tool[], {\n humanMessageTemplate,\n });\n return new ChainStepExecutor(\n AgentExecutor.fromAgentAndTools({\n agent,\n tools,\n })\n );\n }\n\n /**\n * Static method that creates a new PlanAndExecuteAgentExecutor from a\n * given LLM, a set of tools, and optionally a human message template. It\n * uses the getDefaultPlanner and getDefaultStepExecutor methods to create\n * the planner and step executor for the new agent executor.\n * @param llm The Large Language Model (LLM) used to generate responses.\n * @param tools The set of tools used by the agent.\n * @param humanMessageTemplate The template for human messages. If not provided, a default template is used.\n * @returns A new PlanAndExecuteAgentExecutor instance.\n */\n static async fromLLMAndTools({\n llm,\n tools,\n humanMessageTemplate,\n }: {\n llm: BaseLanguageModelInterface;\n tools: Tool[] | DynamicStructuredTool[];\n humanMessageTemplate?: string;\n } & Omit<PlanAndExecuteAgentExecutorInput, \"planner\" | \"stepExecutor\">) {\n const executor = new PlanAndExecuteAgentExecutor({\n planner: await PlanAndExecuteAgentExecutor.getDefaultPlanner({\n llm,\n tools,\n }),\n stepExecutor: PlanAndExecuteAgentExecutor.getDefaultStepExecutor({\n llm,\n tools,\n humanMessageTemplate,\n }),\n });\n return executor;\n }\n\n /** @ignore */\n async _call(\n inputs: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n const plan = await this.planner.plan(inputs.input, runManager?.getChild());\n if (!plan.steps?.length) {\n throw new Error(\n \"Could not create and parse a plan to answer your question - please try again.\"\n );\n }\n plan.steps[plan.steps.length - 1].text +=\n ` The original question was: ${inputs.input}.`;\n for (const step of plan.steps) {\n const newInputs = {\n ...inputs,\n previous_steps: JSON.stringify(this.stepContainer.getSteps()),\n current_step: step.text,\n };\n const response = await this.stepExecutor.step(\n newInputs,\n runManager?.getChild()\n );\n this.stepContainer.addStep(step, response);\n }\n return { [this.outputKey]: this.stepContainer.getFinalResponse() };\n }\n\n _chainType() {\n return \"agent_executor\" as const;\n }\n\n serialize(): SerializedLLMChain {\n throw new Error(\"Cannot serialize an AgentExecutor\");\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AA6BA,SAAgB,wBACdA,MAC+B;AAE/B,QAEE,OAAQ,KAAK,YAAoB,YAAY,cAE5C,KAAK,YAAoB,SAAS,KAAK;AAE3C;;;;;;;AAqBD,IAAa,8BAAb,MAAa,oCAAoC,UAAU;CACzD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAQ;CAER,AAAQ;CAER,AAAQ,gBAAmC,IAAI;CAE/C,AAAQ,WAAW;CAEnB,AAAQ,YAAY;CAEpB,YAAYC,OAAyC;EACnD,MAAM,MAAM;EACZ,KAAK,UAAU,MAAM;EACrB,KAAK,eAAe,MAAM;EAC1B,KAAK,gBAAgB,MAAM,iBAAiB,KAAK;EACjD,KAAK,WAAW,MAAM,YAAY,KAAK;EACvC,KAAK,YAAY,MAAM,aAAa,KAAK;CAC1C;CAED,IAAI,YAAY;AACd,SAAO,CAAC,KAAK,QAAS;CACvB;CAED,IAAI,aAAa;AACf,SAAO,CAAC,KAAK,SAAU;CACxB;;;;;;;;CAUD,aAAa,kBAAkB,EAC7B,KACA,OAID,EAAE;EACD,MAAM,kBAAkB,IAAI,SAAS;GACnC;GACA,QAAQ,MAAM,qBAAqB,MAAM;EAC1C;AACD,SAAO,IAAI,WAAW,iBAAiB,IAAI;CAC5C;;;;;;;;;;CAWD,OAAO,uBAAuB,EAC5B,KACA,OACA,uBAAuB,mDAKxB,EAAE;EACD,IAAI;AAEJ,MAAI,MAAM,SAAS,KAAK,wBAAwB,MAAM,GAAG,EAAE;GACzD,QAAQ,oBAAoB,gBAAgB,KAAK,OAAO;IACtD;IACA,gBAAgB;KAAC;KAAkB;KAAgB;IAAmB;GACvE,EAAC;AACF,UAAO,IAAI,kBACT,cAAc,kBAAkB;IAC9B;IACA;GACD,EAAC;EAEL;EAED,QAAQ,UAAU,gBAAgB,KAAK,OAAiB,EACtD,qBACD,EAAC;AACF,SAAO,IAAI,kBACT,cAAc,kBAAkB;GAC9B;GACA;EACD,EAAC;CAEL;;;;;;;;;;;CAYD,aAAa,gBAAgB,EAC3B,KACA,OACA,sBAKoE,EAAE;EACtE,MAAM,WAAW,IAAI,4BAA4B;GAC/C,SAAS,MAAM,4BAA4B,kBAAkB;IAC3D;IACA;GACD,EAAC;GACF,cAAc,4BAA4B,uBAAuB;IAC/D;IACA;IACA;GACD,EAAC;EACH;AACD,SAAO;CACR;;CAGD,MAAM,MACJC,QACAC,YACsB;EACtB,MAAM,OAAO,MAAM,KAAK,QAAQ,KAAK,OAAO,OAAO,YAAY,UAAU,CAAC;AAC1E,MAAI,CAAC,KAAK,OAAO,OACf,OAAM,IAAI,MACR;EAGJ,KAAK,MAAM,KAAK,MAAM,SAAS,GAAG,QAChC,CAAC,4BAA4B,EAAE,OAAO,MAAM,CAAC,CAAC;AAChD,OAAK,MAAM,QAAQ,KAAK,OAAO;GAC7B,MAAM,YAAY;IAChB,GAAG;IACH,gBAAgB,KAAK,UAAU,KAAK,cAAc,UAAU,CAAC;IAC7D,cAAc,KAAK;GACpB;GACD,MAAM,WAAW,MAAM,KAAK,aAAa,KACvC,WACA,YAAY,UAAU,CACvB;GACD,KAAK,cAAc,QAAQ,MAAM,SAAS;EAC3C;AACD,SAAO,GAAG,KAAK,YAAY,KAAK,cAAc,kBAAkB,CAAE;CACnE;CAED,aAAa;AACX,SAAO;CACR;CAED,YAAgC;AAC9B,QAAM,IAAI,MAAM;CACjB;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom_format.cjs","names":["PromptTemplate","input: CustomFormatPromptTemplateInput<RunInput>","totalInputVariables: string[]","template: string","values: TypedPromptInputValues<RunInput>"],"sources":["../../../src/experimental/prompts/custom_format.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n type ParsedFStringNode,\n PromptTemplate,\n type PromptTemplateInput,\n TypedPromptInputValues,\n} from \"@langchain/core/prompts\";\n\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> =\n Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n };\n\nexport class CustomFormatPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any\n> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name() {\n return \"CustomPromptTemplate\";\n }\n\n lc_serializable = false;\n\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n\n renderer: (template: string, values: InputValues) => string;\n\n constructor(input: CustomFormatPromptTemplateInput<RunInput>) {\n super(input);\n Object.assign(this, input);\n\n if (this.validateTemplate && this.templateValidator !== undefined) {\n let totalInputVariables: string[] = this.inputVariables;\n if (this.partialVariables) {\n totalInputVariables = totalInputVariables.concat(\n Object.keys(this.partialVariables)\n );\n }\n if (typeof this.template === \"string\") {\n this.templateValidator(this.template, totalInputVariables);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>\n >(\n template: string,\n {\n customParser,\n ...rest\n }: Omit<\n CustomFormatPromptTemplateInput<RunInput>,\n \"template\" | \"inputVariables\"\n >\n ) {\n const names = new Set<string>();\n const nodes = customParser(template);\n for (const node of nodes) {\n if (node.type === \"variable\") {\n names.add(node.name);\n }\n }\n return new this<RunInput extends Symbol ? never : RunInput>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inputVariables: [...names] as any[],\n template,\n customParser,\n ...rest,\n });\n }\n\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n async format(values: TypedPromptInputValues<RunInput>): Promise<string> {\n const allValues = await this.mergePartialAndUserVariables(values);\n if (typeof this.template === \"string\") {\n return this.renderer(this.template, allValues);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n}\n"],"mappings":";;;;;;AAeA,IAAa,6BAAb,cAKUA,wCAA8C;CACtD,OAAO,UAAU;AACf,SAAO;CACR;CAED,kBAAkB;CAElB;CAEA;CAEA,YAAYC,OAAkD;EAC5D,MAAM,MAAM;EACZ,OAAO,OAAO,MAAM,MAAM;AAE1B,MAAI,KAAK,oBAAoB,KAAK,sBAAsB,QAAW;GACjE,IAAIC,sBAAgC,KAAK;AACzC,OAAI,KAAK,kBACP,sBAAsB,oBAAoB,OACxC,OAAO,KAAK,KAAK,iBAAiB,CACnC;AAEH,OAAI,OAAO,KAAK,aAAa,UAC3B,KAAK,kBAAkB,KAAK,UAAU,oBAAoB;OAE1D,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;EAGlE;CACF;;;;CAKD,OAAO,aAILC,UACA,EACE,aACA,GAAG,MAIJ,EACD;EACA,MAAM,wBAAQ,IAAI;EAClB,MAAM,QAAQ,aAAa,SAAS;AACpC,OAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,SAAS,YAChB,MAAM,IAAI,KAAK,KAAK;AAGxB,SAAO,IAAI,KAAiD;GAE1D,gBAAgB,CAAC,GAAG,KAAM;GAC1B;GACA;GACA,GAAG;EACJ;CACF;;;;;;CAOD,MAAM,OAAOC,QAA2D;EACtE,MAAM,YAAY,MAAM,KAAK,6BAA6B,OAAO;AACjE,MAAI,OAAO,KAAK,aAAa,SAC3B,QAAO,KAAK,SAAS,KAAK,UAAU,UAAU;MAE9C,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;CAGlE;AACF"}
1
+ {"version":3,"file":"custom_format.cjs","names":["PromptTemplate","input: CustomFormatPromptTemplateInput<RunInput>","totalInputVariables: string[]","template: string","values: TypedPromptInputValues<RunInput>"],"sources":["../../../src/experimental/prompts/custom_format.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n type ParsedFStringNode,\n PromptTemplate,\n type PromptTemplateInput,\n TypedPromptInputValues,\n} from \"@langchain/core/prompts\";\n\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> =\n Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n };\n\nexport class CustomFormatPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any,\n> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name() {\n return \"CustomPromptTemplate\";\n }\n\n lc_serializable = false;\n\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n\n renderer: (template: string, values: InputValues) => string;\n\n constructor(input: CustomFormatPromptTemplateInput<RunInput>) {\n super(input);\n Object.assign(this, input);\n\n if (this.validateTemplate && this.templateValidator !== undefined) {\n let totalInputVariables: string[] = this.inputVariables;\n if (this.partialVariables) {\n totalInputVariables = totalInputVariables.concat(\n Object.keys(this.partialVariables)\n );\n }\n if (typeof this.template === \"string\") {\n this.templateValidator(this.template, totalInputVariables);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>,\n >(\n template: string,\n {\n customParser,\n ...rest\n }: Omit<\n CustomFormatPromptTemplateInput<RunInput>,\n \"template\" | \"inputVariables\"\n >\n ) {\n const names = new Set<string>();\n const nodes = customParser(template);\n for (const node of nodes) {\n if (node.type === \"variable\") {\n names.add(node.name);\n }\n }\n return new this<RunInput extends Symbol ? never : RunInput>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inputVariables: [...names] as any[],\n template,\n customParser,\n ...rest,\n });\n }\n\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n async format(values: TypedPromptInputValues<RunInput>): Promise<string> {\n const allValues = await this.mergePartialAndUserVariables(values);\n if (typeof this.template === \"string\") {\n return this.renderer(this.template, allValues);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n}\n"],"mappings":";;;;;;AAeA,IAAa,6BAAb,cAKUA,wCAA8C;CACtD,OAAO,UAAU;AACf,SAAO;CACR;CAED,kBAAkB;CAElB;CAEA;CAEA,YAAYC,OAAkD;EAC5D,MAAM,MAAM;EACZ,OAAO,OAAO,MAAM,MAAM;AAE1B,MAAI,KAAK,oBAAoB,KAAK,sBAAsB,QAAW;GACjE,IAAIC,sBAAgC,KAAK;AACzC,OAAI,KAAK,kBACP,sBAAsB,oBAAoB,OACxC,OAAO,KAAK,KAAK,iBAAiB,CACnC;AAEH,OAAI,OAAO,KAAK,aAAa,UAC3B,KAAK,kBAAkB,KAAK,UAAU,oBAAoB;OAE1D,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;EAGlE;CACF;;;;CAKD,OAAO,aAILC,UACA,EACE,aACA,GAAG,MAIJ,EACD;EACA,MAAM,wBAAQ,IAAI;EAClB,MAAM,QAAQ,aAAa,SAAS;AACpC,OAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,SAAS,YAChB,MAAM,IAAI,KAAK,KAAK;AAGxB,SAAO,IAAI,KAAiD;GAE1D,gBAAgB,CAAC,GAAG,KAAM;GAC1B;GACA;GACA,GAAG;EACJ;CACF;;;;;;CAOD,MAAM,OAAOC,QAA2D;EACtE,MAAM,YAAY,MAAM,KAAK,6BAA6B,OAAO;AACjE,MAAI,OAAO,KAAK,aAAa,SAC3B,QAAO,KAAK,SAAS,KAAK,UAAU,UAAU;MAE9C,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;CAGlE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom_format.d.cts","names":["InputValues","ParsedFStringNode","PromptTemplate","PromptTemplateInput","TypedPromptInputValues","CustomFormatPromptTemplateInput","RunInput","Omit","CustomFormatPromptTemplate","PartialVariableName","Record","customParser","Symbol","Promise"],"sources":["../../../src/experimental/prompts/custom_format.d.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport { type ParsedFStringNode, PromptTemplate, type PromptTemplateInput, TypedPromptInputValues } from \"@langchain/core/prompts\";\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> = Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n};\nexport declare class CustomFormatPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name(): string;\n lc_serializable: boolean;\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n constructor(input: CustomFormatPromptTemplateInput<RunInput>);\n /**\n * Load prompt template from a template\n */\n static fromTemplate<RunInput extends InputValues = Record<string, any>>(template: string, { customParser, ...rest }: Omit<CustomFormatPromptTemplateInput<RunInput>, \"template\" | \"inputVariables\">): CustomFormatPromptTemplate<RunInput extends Symbol ? never : RunInput, any>;\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n format(values: TypedPromptInputValues<RunInput>): Promise<string>;\n}\n//# sourceMappingURL=custom_format.d.ts.map"],"mappings":";;;;KAEYK,iDAAiDL,eAAeO,KAAKJ,oBAAoBG;sCAC7DL;EAD5BI,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAA+B,EAAA,cAAAC,EAAA,MAAA,EAAA,EAAA,GAAA,OAAA;EAAkBN,QAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,MAAAA,EAGpBA,WAHoBA,EAAAA,GAAAA,MAAAA;CAAwCM;AAApBH,cAK5DK,0BAL4DL,CAAAA,iBAKhBH,WALgBG,GAAAA,GAAAA,EAAAA,4BAAAA,MAAAA,GAAAA,GAAAA,CAAAA,SAKqDD,cALrDC,CAKoEG,QALpEH,EAK8EM,mBAL9EN,CAAAA,CAAAA;EAALI,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EACpCN,eAAAA,EAAAA,OAAAA;EAECD,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,cAAAA,EAAAA,MAAAA,EAAAA,EAAAA,GAAAA,OAAAA;EAAW,QAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAMXA,WANW,EAAA,GAAA,MAAA;EAE/BQ,WAAAA,CAAAA,KAAAA,EAKEH,+BALwBI,CAKQH,QALRG,CAAAA;EAAkBT;;;EAIxBA,OAAAA,YAAAA,CAAAA,iBAKAA,WALAA,GAKcU,MALdV,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA;IAAAA,YAAAA;IAAAA,GAAAA;EAAAA,CAAAA,EAKgFO,IALhFP,CAKqFK,+BALrFL,CAKqHM,QALrHN,CAAAA,EAAAA,UAAAA,GAAAA,gBAAAA,CAAAA,CAAAA,EAKiKQ,0BALjKR,CAK4LM,QAL5LN,SAK6MY,MAL7MZ,GAAAA,KAAAA,GAK8NM,QAL9NN,EAAAA,GAAAA,CAAAA;EACcM;;;;;EAIuGA,MAAAA,CAAAA,MAAAA,EAM3IF,sBAN2IE,CAMpHA,QANoHA,CAAAA,CAAAA,EAMxGO,OANwGP,CAAAA,MAAAA,CAAAA"}
1
+ {"version":3,"file":"custom_format.d.cts","names":["InputValues","ParsedFStringNode","PromptTemplate","PromptTemplateInput","TypedPromptInputValues","CustomFormatPromptTemplateInput","RunInput","Omit","CustomFormatPromptTemplate","PartialVariableName","Record","customParser","Symbol","Promise"],"sources":["../../../src/experimental/prompts/custom_format.d.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport { type ParsedFStringNode, PromptTemplate, type PromptTemplateInput, TypedPromptInputValues } from \"@langchain/core/prompts\";\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> = Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n};\nexport declare class CustomFormatPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name(): string;\n lc_serializable: boolean;\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n constructor(input: CustomFormatPromptTemplateInput<RunInput>);\n /**\n * Load prompt template from a template\n */\n static fromTemplate<RunInput extends InputValues = Record<string, any>>(template: string, { customParser, ...rest }: Omit<CustomFormatPromptTemplateInput<RunInput>, \"template\" | \"inputVariables\">): CustomFormatPromptTemplate<RunInput extends Symbol ? never : RunInput, any>;\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n format(values: TypedPromptInputValues<RunInput>): Promise<string>;\n}\n//# sourceMappingURL=custom_format.d.ts.map"],"mappings":";;;;KAEYK,iDAAiDL,eAAeO,KAAKJ,oBAAoBG;sCAC7DL;EAD5BI,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAA+B,EAAAC,cAAA,EAAA,MAAA,EAAA,EAAA,GAAA,OAAA;EAAkBN,QAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,MAAAA,EAGpBA,WAHoBA,EAAAA,GAAAA,MAAAA;CAAwCM;AAApBH,cAK5DK,0BAL4DL,CAAAA,iBAKhBH,WALgBG,GAAAA,GAAAA,EAAAA,4BAAAA,MAAAA,GAAAA,GAAAA,CAAAA,SAKqDD,cALrDC,CAKoEG,QALpEH,EAK8EM,mBAL9EN,CAAAA,CAAAA;EAALI,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EACpCN,eAAAA,EAAAA,OAAAA;EAECD,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,cAAAA,EAAAA,MAAAA,EAAAA,EAAAA,GAAAA,OAAAA;EAAW,QAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAMXA,WANW,EAAA,GAAA,MAAA;EAE/BQ,WAAAA,CAAAA,KAAAA,EAKEH,+BALwBI,CAKQH,QALRG,CAAAA;EAAkBT;;;EAIxBA,OAAAA,YAAAA,CAAAA,iBAKAA,WALAA,GAKcU,MALdV,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA;IAAAA,YAAAA;IAAAA,GAAAA;EAAAA,CAAAA,EAKgFO,IALhFP,CAKqFK,+BALrFL,CAKqHM,QALrHN,CAAAA,EAAAA,UAAAA,GAAAA,gBAAAA,CAAAA,CAAAA,EAKiKQ,0BALjKR,CAK4LM,QAL5LN,SAK6MY,MAL7MZ,GAAAA,KAAAA,GAK8NM,QAL9NN,EAAAA,GAAAA,CAAAA;EACcM;;;;;EAIuGA,MAAAA,CAAAA,MAAAA,EAM3IF,sBAN2IE,CAMpHA,QANoHA,CAAAA,CAAAA,EAMxGO,OANwGP,CAAAA,MAAAA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom_format.d.ts","names":["InputValues","ParsedFStringNode","PromptTemplate","PromptTemplateInput","TypedPromptInputValues","CustomFormatPromptTemplateInput","RunInput","Omit","CustomFormatPromptTemplate","PartialVariableName","Record","customParser","Symbol","Promise"],"sources":["../../../src/experimental/prompts/custom_format.d.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport { type ParsedFStringNode, PromptTemplate, type PromptTemplateInput, TypedPromptInputValues } from \"@langchain/core/prompts\";\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> = Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n};\nexport declare class CustomFormatPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name(): string;\n lc_serializable: boolean;\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n constructor(input: CustomFormatPromptTemplateInput<RunInput>);\n /**\n * Load prompt template from a template\n */\n static fromTemplate<RunInput extends InputValues = Record<string, any>>(template: string, { customParser, ...rest }: Omit<CustomFormatPromptTemplateInput<RunInput>, \"template\" | \"inputVariables\">): CustomFormatPromptTemplate<RunInput extends Symbol ? never : RunInput, any>;\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n format(values: TypedPromptInputValues<RunInput>): Promise<string>;\n}\n//# sourceMappingURL=custom_format.d.ts.map"],"mappings":";;;;KAEYK,iDAAiDL,eAAeO,KAAKJ,oBAAoBG;sCAC7DL;EAD5BI,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAA+B,EAAA,cAAAC,EAAA,MAAA,EAAA,EAAA,GAAA,OAAA;EAAkBN,QAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,MAAAA,EAGpBA,WAHoBA,EAAAA,GAAAA,MAAAA;CAAwCM;AAApBH,cAK5DK,0BAL4DL,CAAAA,iBAKhBH,WALgBG,GAAAA,GAAAA,EAAAA,4BAAAA,MAAAA,GAAAA,GAAAA,CAAAA,SAKqDD,cALrDC,CAKoEG,QALpEH,EAK8EM,mBAL9EN,CAAAA,CAAAA;EAALI,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EACpCN,eAAAA,EAAAA,OAAAA;EAECD,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,cAAAA,EAAAA,MAAAA,EAAAA,EAAAA,GAAAA,OAAAA;EAAW,QAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAMXA,WANW,EAAA,GAAA,MAAA;EAE/BQ,WAAAA,CAAAA,KAAAA,EAKEH,+BALwBI,CAKQH,QALRG,CAAAA;EAAkBT;;;EAIxBA,OAAAA,YAAAA,CAAAA,iBAKAA,WALAA,GAKcU,MALdV,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA;IAAAA,YAAAA;IAAAA,GAAAA;EAAAA,CAAAA,EAKgFO,IALhFP,CAKqFK,+BALrFL,CAKqHM,QALrHN,CAAAA,EAAAA,UAAAA,GAAAA,gBAAAA,CAAAA,CAAAA,EAKiKQ,0BALjKR,CAK4LM,QAL5LN,SAK6MY,MAL7MZ,GAAAA,KAAAA,GAK8NM,QAL9NN,EAAAA,GAAAA,CAAAA;EACcM;;;;;EAIuGA,MAAAA,CAAAA,MAAAA,EAM3IF,sBAN2IE,CAMpHA,QANoHA,CAAAA,CAAAA,EAMxGO,OANwGP,CAAAA,MAAAA,CAAAA"}
1
+ {"version":3,"file":"custom_format.d.ts","names":["InputValues","ParsedFStringNode","PromptTemplate","PromptTemplateInput","TypedPromptInputValues","CustomFormatPromptTemplateInput","RunInput","Omit","CustomFormatPromptTemplate","PartialVariableName","Record","customParser","Symbol","Promise"],"sources":["../../../src/experimental/prompts/custom_format.d.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport { type ParsedFStringNode, PromptTemplate, type PromptTemplateInput, TypedPromptInputValues } from \"@langchain/core/prompts\";\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> = Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n};\nexport declare class CustomFormatPromptTemplate<RunInput extends InputValues = any, PartialVariableName extends string = any> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name(): string;\n lc_serializable: boolean;\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n constructor(input: CustomFormatPromptTemplateInput<RunInput>);\n /**\n * Load prompt template from a template\n */\n static fromTemplate<RunInput extends InputValues = Record<string, any>>(template: string, { customParser, ...rest }: Omit<CustomFormatPromptTemplateInput<RunInput>, \"template\" | \"inputVariables\">): CustomFormatPromptTemplate<RunInput extends Symbol ? never : RunInput, any>;\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n format(values: TypedPromptInputValues<RunInput>): Promise<string>;\n}\n//# sourceMappingURL=custom_format.d.ts.map"],"mappings":";;;;KAEYK,iDAAiDL,eAAeO,KAAKJ,oBAAoBG;sCAC7DL;EAD5BI,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAA+B,EAAAC,cAAA,EAAA,MAAA,EAAA,EAAA,GAAA,OAAA;EAAkBN,QAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,MAAAA,EAGpBA,WAHoBA,EAAAA,GAAAA,MAAAA;CAAwCM;AAApBH,cAK5DK,0BAL4DL,CAAAA,iBAKhBH,WALgBG,GAAAA,GAAAA,EAAAA,4BAAAA,MAAAA,GAAAA,GAAAA,CAAAA,SAKqDD,cALrDC,CAKoEG,QALpEH,EAK8EM,mBAL9EN,CAAAA,CAAAA;EAALI,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EACpCN,eAAAA,EAAAA,OAAAA;EAECD,iBAAAA,CAAAA,EAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,cAAAA,EAAAA,MAAAA,EAAAA,EAAAA,GAAAA,OAAAA;EAAW,QAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAMXA,WANW,EAAA,GAAA,MAAA;EAE/BQ,WAAAA,CAAAA,KAAAA,EAKEH,+BALwBI,CAKQH,QALRG,CAAAA;EAAkBT;;;EAIxBA,OAAAA,YAAAA,CAAAA,iBAKAA,WALAA,GAKcU,MALdV,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA;IAAAA,YAAAA;IAAAA,GAAAA;EAAAA,CAAAA,EAKgFO,IALhFP,CAKqFK,+BALrFL,CAKqHM,QALrHN,CAAAA,EAAAA,UAAAA,GAAAA,gBAAAA,CAAAA,CAAAA,EAKiKQ,0BALjKR,CAK4LM,QAL5LN,SAK6MY,MAL7MZ,GAAAA,KAAAA,GAK8NM,QAL9NN,EAAAA,GAAAA,CAAAA;EACcM;;;;;EAIuGA,MAAAA,CAAAA,MAAAA,EAM3IF,sBAN2IE,CAMpHA,QANoHA,CAAAA,CAAAA,EAMxGO,OANwGP,CAAAA,MAAAA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom_format.js","names":["input: CustomFormatPromptTemplateInput<RunInput>","totalInputVariables: string[]","template: string","values: TypedPromptInputValues<RunInput>"],"sources":["../../../src/experimental/prompts/custom_format.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n type ParsedFStringNode,\n PromptTemplate,\n type PromptTemplateInput,\n TypedPromptInputValues,\n} from \"@langchain/core/prompts\";\n\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> =\n Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n };\n\nexport class CustomFormatPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any\n> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name() {\n return \"CustomPromptTemplate\";\n }\n\n lc_serializable = false;\n\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n\n renderer: (template: string, values: InputValues) => string;\n\n constructor(input: CustomFormatPromptTemplateInput<RunInput>) {\n super(input);\n Object.assign(this, input);\n\n if (this.validateTemplate && this.templateValidator !== undefined) {\n let totalInputVariables: string[] = this.inputVariables;\n if (this.partialVariables) {\n totalInputVariables = totalInputVariables.concat(\n Object.keys(this.partialVariables)\n );\n }\n if (typeof this.template === \"string\") {\n this.templateValidator(this.template, totalInputVariables);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>\n >(\n template: string,\n {\n customParser,\n ...rest\n }: Omit<\n CustomFormatPromptTemplateInput<RunInput>,\n \"template\" | \"inputVariables\"\n >\n ) {\n const names = new Set<string>();\n const nodes = customParser(template);\n for (const node of nodes) {\n if (node.type === \"variable\") {\n names.add(node.name);\n }\n }\n return new this<RunInput extends Symbol ? never : RunInput>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inputVariables: [...names] as any[],\n template,\n customParser,\n ...rest,\n });\n }\n\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n async format(values: TypedPromptInputValues<RunInput>): Promise<string> {\n const allValues = await this.mergePartialAndUserVariables(values);\n if (typeof this.template === \"string\") {\n return this.renderer(this.template, allValues);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n}\n"],"mappings":";;;;;;AAeA,IAAa,6BAAb,cAKU,eAA8C;CACtD,OAAO,UAAU;AACf,SAAO;CACR;CAED,kBAAkB;CAElB;CAEA;CAEA,YAAYA,OAAkD;EAC5D,MAAM,MAAM;EACZ,OAAO,OAAO,MAAM,MAAM;AAE1B,MAAI,KAAK,oBAAoB,KAAK,sBAAsB,QAAW;GACjE,IAAIC,sBAAgC,KAAK;AACzC,OAAI,KAAK,kBACP,sBAAsB,oBAAoB,OACxC,OAAO,KAAK,KAAK,iBAAiB,CACnC;AAEH,OAAI,OAAO,KAAK,aAAa,UAC3B,KAAK,kBAAkB,KAAK,UAAU,oBAAoB;OAE1D,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;EAGlE;CACF;;;;CAKD,OAAO,aAILC,UACA,EACE,aACA,GAAG,MAIJ,EACD;EACA,MAAM,wBAAQ,IAAI;EAClB,MAAM,QAAQ,aAAa,SAAS;AACpC,OAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,SAAS,YAChB,MAAM,IAAI,KAAK,KAAK;AAGxB,SAAO,IAAI,KAAiD;GAE1D,gBAAgB,CAAC,GAAG,KAAM;GAC1B;GACA;GACA,GAAG;EACJ;CACF;;;;;;CAOD,MAAM,OAAOC,QAA2D;EACtE,MAAM,YAAY,MAAM,KAAK,6BAA6B,OAAO;AACjE,MAAI,OAAO,KAAK,aAAa,SAC3B,QAAO,KAAK,SAAS,KAAK,UAAU,UAAU;MAE9C,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;CAGlE;AACF"}
1
+ {"version":3,"file":"custom_format.js","names":["input: CustomFormatPromptTemplateInput<RunInput>","totalInputVariables: string[]","template: string","values: TypedPromptInputValues<RunInput>"],"sources":["../../../src/experimental/prompts/custom_format.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n type ParsedFStringNode,\n PromptTemplate,\n type PromptTemplateInput,\n TypedPromptInputValues,\n} from \"@langchain/core/prompts\";\n\nexport type CustomFormatPromptTemplateInput<RunInput extends InputValues> =\n Omit<PromptTemplateInput<RunInput, string>, \"templateFormat\"> & {\n customParser: (template: string) => ParsedFStringNode[];\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n renderer: (template: string, values: InputValues) => string;\n };\n\nexport class CustomFormatPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n PartialVariableName extends string = any,\n> extends PromptTemplate<RunInput, PartialVariableName> {\n static lc_name() {\n return \"CustomPromptTemplate\";\n }\n\n lc_serializable = false;\n\n templateValidator?: (template: string, inputVariables: string[]) => boolean;\n\n renderer: (template: string, values: InputValues) => string;\n\n constructor(input: CustomFormatPromptTemplateInput<RunInput>) {\n super(input);\n Object.assign(this, input);\n\n if (this.validateTemplate && this.templateValidator !== undefined) {\n let totalInputVariables: string[] = this.inputVariables;\n if (this.partialVariables) {\n totalInputVariables = totalInputVariables.concat(\n Object.keys(this.partialVariables)\n );\n }\n if (typeof this.template === \"string\") {\n this.templateValidator(this.template, totalInputVariables);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>,\n >(\n template: string,\n {\n customParser,\n ...rest\n }: Omit<\n CustomFormatPromptTemplateInput<RunInput>,\n \"template\" | \"inputVariables\"\n >\n ) {\n const names = new Set<string>();\n const nodes = customParser(template);\n for (const node of nodes) {\n if (node.type === \"variable\") {\n names.add(node.name);\n }\n }\n return new this<RunInput extends Symbol ? never : RunInput>({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inputVariables: [...names] as any[],\n template,\n customParser,\n ...rest,\n });\n }\n\n /**\n * Formats the prompt template with the provided values.\n * @param values The values to be used to format the prompt template.\n * @returns A promise that resolves to a string which is the formatted prompt.\n */\n async format(values: TypedPromptInputValues<RunInput>): Promise<string> {\n const allValues = await this.mergePartialAndUserVariables(values);\n if (typeof this.template === \"string\") {\n return this.renderer(this.template, allValues);\n } else {\n throw new Error(\n `Must pass in string as template. Received: ${this.template}`\n );\n }\n }\n}\n"],"mappings":";;;;;;AAeA,IAAa,6BAAb,cAKU,eAA8C;CACtD,OAAO,UAAU;AACf,SAAO;CACR;CAED,kBAAkB;CAElB;CAEA;CAEA,YAAYA,OAAkD;EAC5D,MAAM,MAAM;EACZ,OAAO,OAAO,MAAM,MAAM;AAE1B,MAAI,KAAK,oBAAoB,KAAK,sBAAsB,QAAW;GACjE,IAAIC,sBAAgC,KAAK;AACzC,OAAI,KAAK,kBACP,sBAAsB,oBAAoB,OACxC,OAAO,KAAK,KAAK,iBAAiB,CACnC;AAEH,OAAI,OAAO,KAAK,aAAa,UAC3B,KAAK,kBAAkB,KAAK,UAAU,oBAAoB;OAE1D,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;EAGlE;CACF;;;;CAKD,OAAO,aAILC,UACA,EACE,aACA,GAAG,MAIJ,EACD;EACA,MAAM,wBAAQ,IAAI;EAClB,MAAM,QAAQ,aAAa,SAAS;AACpC,OAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,SAAS,YAChB,MAAM,IAAI,KAAK,KAAK;AAGxB,SAAO,IAAI,KAAiD;GAE1D,gBAAgB,CAAC,GAAG,KAAM;GAC1B;GACA;GACA,GAAG;EACJ;CACF;;;;;;CAOD,MAAM,OAAOC,QAA2D;EACtE,MAAM,YAAY,MAAM,KAAK,6BAA6B,OAAO;AACjE,MAAI,OAAO,KAAK,aAAa,SAC3B,QAAO,KAAK,SAAS,KAAK,UAAU,UAAU;MAE9C,OAAM,IAAI,MACR,CAAC,2CAA2C,EAAE,KAAK,UAAU;CAGlE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.cjs","names":["template: string","parsed: ParsedFStringNode[]","nodes: { type: string }[]","Handlebars","name: string","values: InputValues","CustomFormatPromptTemplate","params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >"],"sources":["../../../src/experimental/prompts/handlebars.ts"],"sourcesContent":["import Handlebars from \"handlebars\";\nimport { type ParsedFStringNode } from \"@langchain/core/prompts\";\nimport type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n CustomFormatPromptTemplate,\n CustomFormatPromptTemplateInput,\n} from \"./custom_format.js\";\n\nexport const parseHandlebars = (template: string): ParsedFStringNode[] => {\n const parsed: ParsedFStringNode[] = [];\n const nodes: { type: string }[] = [...Handlebars.parse(template).body];\n while (nodes.length) {\n const node = nodes.pop()!;\n if (node.type === \"ContentStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.ContentStatement isn't exported\n const text = node.value;\n parsed.push({ type: \"literal\", text });\n } else if (node.type === \"MustacheStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const name: string = node.path.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const { original } = node.path as { original: string };\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"PathExpression\") {\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const name: string = node.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const { original } = node;\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"BlockStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.BlockStatement isn't exported\n nodes.push(...node.params, ...node.program.body);\n }\n }\n\n return parsed;\n};\n\nexport const interpolateHandlebars = (\n template: string,\n values: InputValues\n) => {\n const compiled = Handlebars.compile(template, { noEscape: true });\n return compiled(values);\n};\n\nexport type HandlebarsPromptTemplateInput<RunInput extends InputValues> =\n CustomFormatPromptTemplateInput<RunInput>;\n\nexport class HandlebarsPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any\n> extends CustomFormatPromptTemplate<RunInput> {\n static lc_name() {\n return \"HandlebarsPromptTemplate\";\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>\n >(\n template: string,\n params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >\n ) {\n return super.fromTemplate<RunInput>(template, {\n ...params,\n validateTemplate: false,\n customParser: parseHandlebars,\n renderer: interpolateHandlebars,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAQA,MAAa,kBAAkB,CAACA,aAA0C;CACxE,MAAMC,SAA8B,CAAE;CACtC,MAAMC,QAA4B,CAAC,GAAGC,mBAAW,MAAM,SAAS,CAAC,IAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;GAClB,OAAO,KAAK;IAAE,MAAM;IAAW;GAAM,EAAC;EACvC,WAAU,KAAK,SAAS,qBAAqB;GAE5C,MAAMC,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,UAAU,GAAG,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAAkB;GAEzC,MAAMA,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,UAAU,GAAG;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAEvB,MAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;CAEnD;AAED,QAAO;AACR;AAED,MAAa,wBAAwB,CACnCJ,UACAK,WACG;CACH,MAAM,WAAWF,mBAAW,QAAQ,UAAU,EAAE,UAAU,KAAM,EAAC;AACjE,QAAO,SAAS,OAAO;AACxB;AAKD,IAAa,2BAAb,cAGUG,sEAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;CACR;;;;CAKD,OAAO,aAILN,UACAO,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;EACX,EAAC;CACH;AACF"}
1
+ {"version":3,"file":"handlebars.cjs","names":["template: string","parsed: ParsedFStringNode[]","nodes: { type: string }[]","Handlebars","name: string","values: InputValues","CustomFormatPromptTemplate","params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >"],"sources":["../../../src/experimental/prompts/handlebars.ts"],"sourcesContent":["import Handlebars from \"handlebars\";\nimport { type ParsedFStringNode } from \"@langchain/core/prompts\";\nimport type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n CustomFormatPromptTemplate,\n CustomFormatPromptTemplateInput,\n} from \"./custom_format.js\";\n\nexport const parseHandlebars = (template: string): ParsedFStringNode[] => {\n const parsed: ParsedFStringNode[] = [];\n const nodes: { type: string }[] = [...Handlebars.parse(template).body];\n while (nodes.length) {\n const node = nodes.pop()!;\n if (node.type === \"ContentStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.ContentStatement isn't exported\n const text = node.value;\n parsed.push({ type: \"literal\", text });\n } else if (node.type === \"MustacheStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const name: string = node.path.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const { original } = node.path as { original: string };\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"PathExpression\") {\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const name: string = node.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const { original } = node;\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"BlockStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.BlockStatement isn't exported\n nodes.push(...node.params, ...node.program.body);\n }\n }\n\n return parsed;\n};\n\nexport const interpolateHandlebars = (\n template: string,\n values: InputValues\n) => {\n const compiled = Handlebars.compile(template, { noEscape: true });\n return compiled(values);\n};\n\nexport type HandlebarsPromptTemplateInput<RunInput extends InputValues> =\n CustomFormatPromptTemplateInput<RunInput>;\n\nexport class HandlebarsPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n> extends CustomFormatPromptTemplate<RunInput> {\n static lc_name() {\n return \"HandlebarsPromptTemplate\";\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>,\n >(\n template: string,\n params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >\n ) {\n return super.fromTemplate<RunInput>(template, {\n ...params,\n validateTemplate: false,\n customParser: parseHandlebars,\n renderer: interpolateHandlebars,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAQA,MAAa,kBAAkB,CAACA,aAA0C;CACxE,MAAMC,SAA8B,CAAE;CACtC,MAAMC,QAA4B,CAAC,GAAGC,mBAAW,MAAM,SAAS,CAAC,IAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;GAClB,OAAO,KAAK;IAAE,MAAM;IAAW;GAAM,EAAC;EACvC,WAAU,KAAK,SAAS,qBAAqB;GAE5C,MAAMC,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,UAAU,GAAG,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAAkB;GAEzC,MAAMA,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,UAAU,GAAG;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAEvB,MAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;CAEnD;AAED,QAAO;AACR;AAED,MAAa,wBAAwB,CACnCJ,UACAK,WACG;CACH,MAAM,WAAWF,mBAAW,QAAQ,UAAU,EAAE,UAAU,KAAM,EAAC;AACjE,QAAO,SAAS,OAAO;AACxB;AAKD,IAAa,2BAAb,cAGUG,sEAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;CACR;;;;CAKD,OAAO,aAILN,UACAO,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;EACX,EAAC;CACH;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.d.cts","names":["InputValues","CustomFormatPromptTemplate","CustomFormatPromptTemplateInput","parseHandlebars","_langchain_core_prompts0","ParsedTemplateNode","interpolateHandlebars","HandlebarsPromptTemplateInput","RunInput","HandlebarsPromptTemplate","Record","Omit","Symbol"],"sources":["../../../src/experimental/prompts/handlebars.d.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport { CustomFormatPromptTemplate, CustomFormatPromptTemplateInput } from \"./custom_format.js\";\nexport declare const parseHandlebars: (template: string) => import(\"@langchain/core/prompts\").ParsedTemplateNode[];\nexport declare const interpolateHandlebars: (template: string, values: InputValues) => string;\nexport type HandlebarsPromptTemplateInput<RunInput extends InputValues> = CustomFormatPromptTemplateInput<RunInput>;\nexport declare class HandlebarsPromptTemplate<RunInput extends InputValues = any> extends CustomFormatPromptTemplate<RunInput> {\n static lc_name(): string;\n /**\n * Load prompt template from a template\n */\n static fromTemplate<RunInput extends InputValues = Record<string, any>>(template: string, params?: Omit<HandlebarsPromptTemplateInput<RunInput>, \"template\" | \"inputVariables\" | \"customParser\" | \"templateValidator\" | \"renderer\">): CustomFormatPromptTemplate<RunInput extends Symbol ? never : RunInput, any>;\n}\n//# sourceMappingURL=handlebars.d.ts.map"],"mappings":";;;;;cAEqBG,uCAA6FC,wBAAAA,CAApBC,kBAAkB;cAC3FC,kDAAkDN;KAC3DO,+CAA+CP,eAAeE,gCAAgCM;AAFrFL,cAGAM,wBAH6FL,CAAAA,iBAGnDJ,WAH+BK,GAAAA,GAAkB,CAAA,SAGtBJ,0BAHsB,CAGKO,QAHL,CAAA,CAAA;EAC3FF,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAwE;EACjFC;;;EAA8DL,OAAAA,YAAAA,CAAAA,iBAMjCF,WANiCE,GAMnBQ,MANmBR,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAM6BS,IAN7BT,CAMkCK,6BANlCL,CAMgEM,QANhEN,CAAAA,EAAAA,UAAAA,GAAAA,gBAAAA,GAAAA,cAAAA,GAAAA,mBAAAA,GAAAA,UAAAA,CAAAA,CAAAA,EAMgKD,0BANhKC,CAM2LM,QAN3LN,SAM4MU,MAN5MV,GAAAA,KAAAA,GAM6NM,QAN7NN,EAAAA,GAAAA,CAAAA;AAA+B"}
1
+ {"version":3,"file":"handlebars.d.cts","names":["InputValues","CustomFormatPromptTemplate","CustomFormatPromptTemplateInput","parseHandlebars","_langchain_core_prompts0","ParsedTemplateNode","interpolateHandlebars","HandlebarsPromptTemplateInput","RunInput","HandlebarsPromptTemplate","Record","Omit","Symbol"],"sources":["../../../src/experimental/prompts/handlebars.d.ts"],"sourcesContent":["import type { InputValues } from \"@langchain/core/utils/types\";\nimport { CustomFormatPromptTemplate, CustomFormatPromptTemplateInput } from \"./custom_format.js\";\nexport declare const parseHandlebars: (template: string) => import(\"@langchain/core/prompts\").ParsedTemplateNode[];\nexport declare const interpolateHandlebars: (template: string, values: InputValues) => string;\nexport type HandlebarsPromptTemplateInput<RunInput extends InputValues> = CustomFormatPromptTemplateInput<RunInput>;\nexport declare class HandlebarsPromptTemplate<RunInput extends InputValues = any> extends CustomFormatPromptTemplate<RunInput> {\n static lc_name(): string;\n /**\n * Load prompt template from a template\n */\n static fromTemplate<RunInput extends InputValues = Record<string, any>>(template: string, params?: Omit<HandlebarsPromptTemplateInput<RunInput>, \"template\" | \"inputVariables\" | \"customParser\" | \"templateValidator\" | \"renderer\">): CustomFormatPromptTemplate<RunInput extends Symbol ? never : RunInput, any>;\n}\n//# sourceMappingURL=handlebars.d.ts.map"],"mappings":";;;;;cAEqBG,uCAA6FC,wBAAAA,CAApBC,kBAAkB;cAC3FC,kDAAkDN;KAC3DO,+CAA+CP,eAAeE,gCAAgCM;AAFrFL,cAGAM,wBAH6FL,CAAAA,iBAGnDJ,WAH+BK,GAAkB,GAAA,CAAA,SAGtBJ,0BAHsB,CAGKO,QAHL,CAAA,CAAA;EAC3FF,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAwE;EACjFC;;;EAA8DL,OAAAA,YAAAA,CAAAA,iBAMjCF,WANiCE,GAMnBQ,MANmBR,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA,CAAAA,CAAAA,QAAAA,EAAAA,MAAAA,EAAAA,MAAAA,CAAAA,EAM6BS,IAN7BT,CAMkCK,6BANlCL,CAMgEM,QANhEN,CAAAA,EAAAA,UAAAA,GAAAA,gBAAAA,GAAAA,cAAAA,GAAAA,mBAAAA,GAAAA,UAAAA,CAAAA,CAAAA,EAMgKD,0BANhKC,CAM2LM,QAN3LN,SAM4MU,MAN5MV,GAAAA,KAAAA,GAM6NM,QAN7NN,EAAAA,GAAAA,CAAAA;AAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.js","names":["template: string","parsed: ParsedFStringNode[]","nodes: { type: string }[]","name: string","values: InputValues","params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >"],"sources":["../../../src/experimental/prompts/handlebars.ts"],"sourcesContent":["import Handlebars from \"handlebars\";\nimport { type ParsedFStringNode } from \"@langchain/core/prompts\";\nimport type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n CustomFormatPromptTemplate,\n CustomFormatPromptTemplateInput,\n} from \"./custom_format.js\";\n\nexport const parseHandlebars = (template: string): ParsedFStringNode[] => {\n const parsed: ParsedFStringNode[] = [];\n const nodes: { type: string }[] = [...Handlebars.parse(template).body];\n while (nodes.length) {\n const node = nodes.pop()!;\n if (node.type === \"ContentStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.ContentStatement isn't exported\n const text = node.value;\n parsed.push({ type: \"literal\", text });\n } else if (node.type === \"MustacheStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const name: string = node.path.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const { original } = node.path as { original: string };\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"PathExpression\") {\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const name: string = node.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const { original } = node;\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"BlockStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.BlockStatement isn't exported\n nodes.push(...node.params, ...node.program.body);\n }\n }\n\n return parsed;\n};\n\nexport const interpolateHandlebars = (\n template: string,\n values: InputValues\n) => {\n const compiled = Handlebars.compile(template, { noEscape: true });\n return compiled(values);\n};\n\nexport type HandlebarsPromptTemplateInput<RunInput extends InputValues> =\n CustomFormatPromptTemplateInput<RunInput>;\n\nexport class HandlebarsPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any\n> extends CustomFormatPromptTemplate<RunInput> {\n static lc_name() {\n return \"HandlebarsPromptTemplate\";\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>\n >(\n template: string,\n params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >\n ) {\n return super.fromTemplate<RunInput>(template, {\n ...params,\n validateTemplate: false,\n customParser: parseHandlebars,\n renderer: interpolateHandlebars,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAQA,MAAa,kBAAkB,CAACA,aAA0C;CACxE,MAAMC,SAA8B,CAAE;CACtC,MAAMC,QAA4B,CAAC,GAAG,WAAW,MAAM,SAAS,CAAC,IAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;GAClB,OAAO,KAAK;IAAE,MAAM;IAAW;GAAM,EAAC;EACvC,WAAU,KAAK,SAAS,qBAAqB;GAE5C,MAAMC,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,UAAU,GAAG,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAAkB;GAEzC,MAAMA,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,UAAU,GAAG;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAEvB,MAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;CAEnD;AAED,QAAO;AACR;AAED,MAAa,wBAAwB,CACnCH,UACAI,WACG;CACH,MAAM,WAAW,WAAW,QAAQ,UAAU,EAAE,UAAU,KAAM,EAAC;AACjE,QAAO,SAAS,OAAO;AACxB;AAKD,IAAa,2BAAb,cAGU,2BAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;CACR;;;;CAKD,OAAO,aAILJ,UACAK,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;EACX,EAAC;CACH;AACF"}
1
+ {"version":3,"file":"handlebars.js","names":["template: string","parsed: ParsedFStringNode[]","nodes: { type: string }[]","name: string","values: InputValues","params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >"],"sources":["../../../src/experimental/prompts/handlebars.ts"],"sourcesContent":["import Handlebars from \"handlebars\";\nimport { type ParsedFStringNode } from \"@langchain/core/prompts\";\nimport type { InputValues } from \"@langchain/core/utils/types\";\nimport {\n CustomFormatPromptTemplate,\n CustomFormatPromptTemplateInput,\n} from \"./custom_format.js\";\n\nexport const parseHandlebars = (template: string): ParsedFStringNode[] => {\n const parsed: ParsedFStringNode[] = [];\n const nodes: { type: string }[] = [...Handlebars.parse(template).body];\n while (nodes.length) {\n const node = nodes.pop()!;\n if (node.type === \"ContentStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.ContentStatement isn't exported\n const text = node.value;\n parsed.push({ type: \"literal\", text });\n } else if (node.type === \"MustacheStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const name: string = node.path.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.MustacheStatement isn't exported\n const { original } = node.path as { original: string };\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"PathExpression\") {\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const name: string = node.parts[0];\n // @ts-expect-error - handlebars' hbs.AST.PathExpression isn't exported\n const { original } = node;\n if (\n !!name &&\n !original.startsWith(\"this.\") &&\n !original.startsWith(\"@\")\n ) {\n parsed.push({ type: \"variable\", name });\n }\n } else if (node.type === \"BlockStatement\") {\n // @ts-expect-error - handlebars' hbs.AST.BlockStatement isn't exported\n nodes.push(...node.params, ...node.program.body);\n }\n }\n\n return parsed;\n};\n\nexport const interpolateHandlebars = (\n template: string,\n values: InputValues\n) => {\n const compiled = Handlebars.compile(template, { noEscape: true });\n return compiled(values);\n};\n\nexport type HandlebarsPromptTemplateInput<RunInput extends InputValues> =\n CustomFormatPromptTemplateInput<RunInput>;\n\nexport class HandlebarsPromptTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n> extends CustomFormatPromptTemplate<RunInput> {\n static lc_name() {\n return \"HandlebarsPromptTemplate\";\n }\n\n /**\n * Load prompt template from a template\n */\n static fromTemplate<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = Record<string, any>,\n >(\n template: string,\n params?: Omit<\n HandlebarsPromptTemplateInput<RunInput>,\n | \"template\"\n | \"inputVariables\"\n | \"customParser\"\n | \"templateValidator\"\n | \"renderer\"\n >\n ) {\n return super.fromTemplate<RunInput>(template, {\n ...params,\n validateTemplate: false,\n customParser: parseHandlebars,\n renderer: interpolateHandlebars,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAQA,MAAa,kBAAkB,CAACA,aAA0C;CACxE,MAAMC,SAA8B,CAAE;CACtC,MAAMC,QAA4B,CAAC,GAAG,WAAW,MAAM,SAAS,CAAC,IAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;GAClB,OAAO,KAAK;IAAE,MAAM;IAAW;GAAM,EAAC;EACvC,WAAU,KAAK,SAAS,qBAAqB;GAE5C,MAAMC,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,UAAU,GAAG,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAAkB;GAEzC,MAAMA,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,UAAU,GAAG;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,EAEzB,OAAO,KAAK;IAAE,MAAM;IAAY;GAAM,EAAC;EAE1C,WAAU,KAAK,SAAS,kBAEvB,MAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;CAEnD;AAED,QAAO;AACR;AAED,MAAa,wBAAwB,CACnCH,UACAI,WACG;CACH,MAAM,WAAW,WAAW,QAAQ,UAAU,EAAE,UAAU,KAAM,EAAC;AACjE,QAAO,SAAS,OAAO;AACxB;AAKD,IAAa,2BAAb,cAGU,2BAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;CACR;;;;CAKD,OAAO,aAILJ,UACAK,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;EACX,EAAC;CACH;AACF"}
@@ -2,30 +2,30 @@
2
2
  //#region src/load/import_constants.ts
3
3
  /** Auto-generated by import-constants plugin. Do not edit manually */
4
4
  const optionalImportEntrypoints = [
5
- "langchain/agents/load",
6
- "langchain/agents/toolkits/sql",
7
- "langchain/tools/sql",
8
- "langchain/tools/webbrowser",
9
- "langchain/chains/load",
10
- "langchain/chains/query_constructor",
11
- "langchain/chains/query_constructor/ir",
12
- "langchain/chains/sql_db",
13
- "langchain/chains/graph_qa/cypher",
14
- "langchain/chat_models/universal",
15
- "langchain/document_loaders/fs/buffer",
16
- "langchain/document_loaders/fs/directory",
17
- "langchain/document_loaders/fs/json",
18
- "langchain/document_loaders/fs/multi_file",
19
- "langchain/document_loaders/fs/text",
20
- "langchain/sql_db",
21
- "langchain/output_parsers/expression",
22
- "langchain/retrievers/self_query",
23
- "langchain/retrievers/self_query/functional",
24
- "langchain/cache/file_system",
25
- "langchain/stores/file/node",
26
- "langchain/storage/file_system",
27
- "langchain/hub",
28
- "langchain/hub/node"
5
+ "langchain_classic/agents/load",
6
+ "langchain_classic/agents/toolkits/sql",
7
+ "langchain_classic/tools/sql",
8
+ "langchain_classic/tools/webbrowser",
9
+ "langchain_classic/chains/load",
10
+ "langchain_classic/chains/query_constructor",
11
+ "langchain_classic/chains/query_constructor/ir",
12
+ "langchain_classic/chains/sql_db",
13
+ "langchain_classic/chains/graph_qa/cypher",
14
+ "langchain_classic/chat_models/universal",
15
+ "langchain_classic/document_loaders/fs/buffer",
16
+ "langchain_classic/document_loaders/fs/directory",
17
+ "langchain_classic/document_loaders/fs/json",
18
+ "langchain_classic/document_loaders/fs/multi_file",
19
+ "langchain_classic/document_loaders/fs/text",
20
+ "langchain_classic/sql_db",
21
+ "langchain_classic/output_parsers/expression",
22
+ "langchain_classic/retrievers/self_query",
23
+ "langchain_classic/retrievers/self_query/functional",
24
+ "langchain_classic/cache/file_system",
25
+ "langchain_classic/stores/file/node",
26
+ "langchain_classic/storage/file_system",
27
+ "langchain_classic/hub",
28
+ "langchain_classic/hub/node"
29
29
  ];
30
30
 
31
31
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"import_constants.cjs","names":["optionalImportEntrypoints: string[]"],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain/agents/load\",\n \"langchain/agents/toolkits/sql\",\n \"langchain/tools/sql\",\n \"langchain/tools/webbrowser\",\n \"langchain/chains/load\",\n \"langchain/chains/query_constructor\",\n \"langchain/chains/query_constructor/ir\",\n \"langchain/chains/sql_db\",\n \"langchain/chains/graph_qa/cypher\",\n \"langchain/chat_models/universal\",\n \"langchain/document_loaders/fs/buffer\",\n \"langchain/document_loaders/fs/directory\",\n \"langchain/document_loaders/fs/json\",\n \"langchain/document_loaders/fs/multi_file\",\n \"langchain/document_loaders/fs/text\",\n \"langchain/sql_db\",\n \"langchain/output_parsers/expression\",\n \"langchain/retrievers/self_query\",\n \"langchain/retrievers/self_query/functional\",\n \"langchain/cache/file_system\",\n \"langchain/stores/file/node\",\n \"langchain/storage/file_system\",\n \"langchain/hub\",\n \"langchain/hub/node\",\n];\n"],"mappings":";;;AAEA,MAAaA,4BAAsC;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD"}
1
+ {"version":3,"file":"import_constants.cjs","names":["optionalImportEntrypoints: string[]"],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain_classic/agents/load\",\n \"langchain_classic/agents/toolkits/sql\",\n \"langchain_classic/tools/sql\",\n \"langchain_classic/tools/webbrowser\",\n \"langchain_classic/chains/load\",\n \"langchain_classic/chains/query_constructor\",\n \"langchain_classic/chains/query_constructor/ir\",\n \"langchain_classic/chains/sql_db\",\n \"langchain_classic/chains/graph_qa/cypher\",\n \"langchain_classic/chat_models/universal\",\n \"langchain_classic/document_loaders/fs/buffer\",\n \"langchain_classic/document_loaders/fs/directory\",\n \"langchain_classic/document_loaders/fs/json\",\n \"langchain_classic/document_loaders/fs/multi_file\",\n \"langchain_classic/document_loaders/fs/text\",\n \"langchain_classic/sql_db\",\n \"langchain_classic/output_parsers/expression\",\n \"langchain_classic/retrievers/self_query\",\n \"langchain_classic/retrievers/self_query/functional\",\n \"langchain_classic/cache/file_system\",\n \"langchain_classic/stores/file/node\",\n \"langchain_classic/storage/file_system\",\n \"langchain_classic/hub\",\n \"langchain_classic/hub/node\",\n];\n"],"mappings":";;;AAEA,MAAaA,4BAAsC;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD"}
@@ -1,30 +1,30 @@
1
1
  //#region src/load/import_constants.ts
2
2
  /** Auto-generated by import-constants plugin. Do not edit manually */
3
3
  const optionalImportEntrypoints = [
4
- "langchain/agents/load",
5
- "langchain/agents/toolkits/sql",
6
- "langchain/tools/sql",
7
- "langchain/tools/webbrowser",
8
- "langchain/chains/load",
9
- "langchain/chains/query_constructor",
10
- "langchain/chains/query_constructor/ir",
11
- "langchain/chains/sql_db",
12
- "langchain/chains/graph_qa/cypher",
13
- "langchain/chat_models/universal",
14
- "langchain/document_loaders/fs/buffer",
15
- "langchain/document_loaders/fs/directory",
16
- "langchain/document_loaders/fs/json",
17
- "langchain/document_loaders/fs/multi_file",
18
- "langchain/document_loaders/fs/text",
19
- "langchain/sql_db",
20
- "langchain/output_parsers/expression",
21
- "langchain/retrievers/self_query",
22
- "langchain/retrievers/self_query/functional",
23
- "langchain/cache/file_system",
24
- "langchain/stores/file/node",
25
- "langchain/storage/file_system",
26
- "langchain/hub",
27
- "langchain/hub/node"
4
+ "langchain_classic/agents/load",
5
+ "langchain_classic/agents/toolkits/sql",
6
+ "langchain_classic/tools/sql",
7
+ "langchain_classic/tools/webbrowser",
8
+ "langchain_classic/chains/load",
9
+ "langchain_classic/chains/query_constructor",
10
+ "langchain_classic/chains/query_constructor/ir",
11
+ "langchain_classic/chains/sql_db",
12
+ "langchain_classic/chains/graph_qa/cypher",
13
+ "langchain_classic/chat_models/universal",
14
+ "langchain_classic/document_loaders/fs/buffer",
15
+ "langchain_classic/document_loaders/fs/directory",
16
+ "langchain_classic/document_loaders/fs/json",
17
+ "langchain_classic/document_loaders/fs/multi_file",
18
+ "langchain_classic/document_loaders/fs/text",
19
+ "langchain_classic/sql_db",
20
+ "langchain_classic/output_parsers/expression",
21
+ "langchain_classic/retrievers/self_query",
22
+ "langchain_classic/retrievers/self_query/functional",
23
+ "langchain_classic/cache/file_system",
24
+ "langchain_classic/stores/file/node",
25
+ "langchain_classic/storage/file_system",
26
+ "langchain_classic/hub",
27
+ "langchain_classic/hub/node"
28
28
  ];
29
29
 
30
30
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"import_constants.js","names":["optionalImportEntrypoints: string[]"],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain/agents/load\",\n \"langchain/agents/toolkits/sql\",\n \"langchain/tools/sql\",\n \"langchain/tools/webbrowser\",\n \"langchain/chains/load\",\n \"langchain/chains/query_constructor\",\n \"langchain/chains/query_constructor/ir\",\n \"langchain/chains/sql_db\",\n \"langchain/chains/graph_qa/cypher\",\n \"langchain/chat_models/universal\",\n \"langchain/document_loaders/fs/buffer\",\n \"langchain/document_loaders/fs/directory\",\n \"langchain/document_loaders/fs/json\",\n \"langchain/document_loaders/fs/multi_file\",\n \"langchain/document_loaders/fs/text\",\n \"langchain/sql_db\",\n \"langchain/output_parsers/expression\",\n \"langchain/retrievers/self_query\",\n \"langchain/retrievers/self_query/functional\",\n \"langchain/cache/file_system\",\n \"langchain/stores/file/node\",\n \"langchain/storage/file_system\",\n \"langchain/hub\",\n \"langchain/hub/node\",\n];\n"],"mappings":";;AAEA,MAAaA,4BAAsC;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD"}
1
+ {"version":3,"file":"import_constants.js","names":["optionalImportEntrypoints: string[]"],"sources":["../../src/load/import_constants.ts"],"sourcesContent":["/** Auto-generated by import-constants plugin. Do not edit manually */\n\nexport const optionalImportEntrypoints: string[] = [\n \"langchain_classic/agents/load\",\n \"langchain_classic/agents/toolkits/sql\",\n \"langchain_classic/tools/sql\",\n \"langchain_classic/tools/webbrowser\",\n \"langchain_classic/chains/load\",\n \"langchain_classic/chains/query_constructor\",\n \"langchain_classic/chains/query_constructor/ir\",\n \"langchain_classic/chains/sql_db\",\n \"langchain_classic/chains/graph_qa/cypher\",\n \"langchain_classic/chat_models/universal\",\n \"langchain_classic/document_loaders/fs/buffer\",\n \"langchain_classic/document_loaders/fs/directory\",\n \"langchain_classic/document_loaders/fs/json\",\n \"langchain_classic/document_loaders/fs/multi_file\",\n \"langchain_classic/document_loaders/fs/text\",\n \"langchain_classic/sql_db\",\n \"langchain_classic/output_parsers/expression\",\n \"langchain_classic/retrievers/self_query\",\n \"langchain_classic/retrievers/self_query/functional\",\n \"langchain_classic/cache/file_system\",\n \"langchain_classic/stores/file/node\",\n \"langchain_classic/storage/file_system\",\n \"langchain_classic/hub\",\n \"langchain_classic/hub/node\",\n];\n"],"mappings":";;AAEA,MAAaA,4BAAsC;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD"}