@langchain/classic 1.0.27 → 1.0.28

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 (298) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/agents/agent.cjs.map +1 -1
  3. package/dist/agents/agent.js.map +1 -1
  4. package/dist/agents/executor.cjs.map +1 -1
  5. package/dist/agents/executor.js.map +1 -1
  6. package/dist/agents/openai_functions/index.cjs.map +1 -1
  7. package/dist/agents/openai_functions/index.d.cts.map +1 -1
  8. package/dist/agents/openai_functions/index.d.ts.map +1 -1
  9. package/dist/agents/openai_functions/index.js.map +1 -1
  10. package/dist/agents/openai_tools/index.cjs.map +1 -1
  11. package/dist/agents/openai_tools/index.d.cts +2 -2
  12. package/dist/agents/openai_tools/index.d.cts.map +1 -1
  13. package/dist/agents/openai_tools/index.d.ts +2 -2
  14. package/dist/agents/openai_tools/index.d.ts.map +1 -1
  15. package/dist/agents/openai_tools/index.js.map +1 -1
  16. package/dist/agents/react/index.d.cts +2 -2
  17. package/dist/agents/react/index.d.cts.map +1 -1
  18. package/dist/agents/react/index.d.ts +2 -2
  19. package/dist/agents/react/index.d.ts.map +1 -1
  20. package/dist/agents/structured_chat/index.d.cts +2 -2
  21. package/dist/agents/structured_chat/index.d.cts.map +1 -1
  22. package/dist/agents/structured_chat/index.d.ts +2 -2
  23. package/dist/agents/structured_chat/index.d.ts.map +1 -1
  24. package/dist/agents/tool_calling/index.d.cts +2 -2
  25. package/dist/agents/tool_calling/index.d.cts.map +1 -1
  26. package/dist/agents/tool_calling/index.d.ts +2 -2
  27. package/dist/agents/tool_calling/index.d.ts.map +1 -1
  28. package/dist/agents/tool_calling/output_parser.cjs.map +1 -1
  29. package/dist/agents/tool_calling/output_parser.d.cts.map +1 -1
  30. package/dist/agents/tool_calling/output_parser.js.map +1 -1
  31. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts +2 -2
  32. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts.map +1 -1
  33. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +2 -2
  34. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts.map +1 -1
  35. package/dist/agents/xml/index.d.cts.map +1 -1
  36. package/dist/agents/xml/index.d.ts.map +1 -1
  37. package/dist/cache/file_system.cjs.map +1 -1
  38. package/dist/cache/file_system.js.map +1 -1
  39. package/dist/chains/analyze_documents_chain.cjs.map +1 -1
  40. package/dist/chains/analyze_documents_chain.js.map +1 -1
  41. package/dist/chains/base.cjs.map +1 -1
  42. package/dist/chains/base.d.cts +2 -2
  43. package/dist/chains/base.d.cts.map +1 -1
  44. package/dist/chains/base.d.ts +2 -2
  45. package/dist/chains/base.d.ts.map +1 -1
  46. package/dist/chains/base.js.map +1 -1
  47. package/dist/chains/chat_vector_db_chain.cjs.map +1 -1
  48. package/dist/chains/chat_vector_db_chain.js.map +1 -1
  49. package/dist/chains/combine_docs_chain.d.cts +2 -2
  50. package/dist/chains/combine_docs_chain.d.cts.map +1 -1
  51. package/dist/chains/combine_docs_chain.d.ts +2 -2
  52. package/dist/chains/combine_docs_chain.d.ts.map +1 -1
  53. package/dist/chains/combine_documents/reduce.cjs.map +1 -1
  54. package/dist/chains/combine_documents/reduce.js.map +1 -1
  55. package/dist/chains/conversational_retrieval_chain.cjs.map +1 -1
  56. package/dist/chains/conversational_retrieval_chain.js.map +1 -1
  57. package/dist/chains/graph_qa/cypher.cjs.map +1 -1
  58. package/dist/chains/graph_qa/cypher.js.map +1 -1
  59. package/dist/chains/llm_chain.cjs.map +1 -1
  60. package/dist/chains/llm_chain.js.map +1 -1
  61. package/dist/chains/load.d.cts +1 -2
  62. package/dist/chains/load.d.cts.map +1 -1
  63. package/dist/chains/load.d.ts +1 -2
  64. package/dist/chains/load.d.ts.map +1 -1
  65. package/dist/chains/openai_functions/base.cjs.map +1 -1
  66. package/dist/chains/openai_functions/base.js.map +1 -1
  67. package/dist/chains/openai_functions/openapi.cjs.map +1 -1
  68. package/dist/chains/openai_functions/openapi.js.map +1 -1
  69. package/dist/chains/openai_moderation.cjs.map +1 -1
  70. package/dist/chains/openai_moderation.js.map +1 -1
  71. package/dist/chains/query_constructor/index.cjs.map +1 -1
  72. package/dist/chains/query_constructor/index.js.map +1 -1
  73. package/dist/chains/question_answering/load.d.cts +1 -2
  74. package/dist/chains/question_answering/load.d.cts.map +1 -1
  75. package/dist/chains/question_answering/load.d.ts +1 -2
  76. package/dist/chains/question_answering/load.d.ts.map +1 -1
  77. package/dist/chains/retrieval.cjs.map +1 -1
  78. package/dist/chains/retrieval.js.map +1 -1
  79. package/dist/chains/retrieval_qa.cjs.map +1 -1
  80. package/dist/chains/retrieval_qa.js.map +1 -1
  81. package/dist/chains/router/utils.cjs.map +1 -1
  82. package/dist/chains/router/utils.js.map +1 -1
  83. package/dist/chains/summarization/load.d.cts +1 -2
  84. package/dist/chains/summarization/load.d.cts.map +1 -1
  85. package/dist/chains/summarization/load.d.ts +1 -2
  86. package/dist/chains/summarization/load.d.ts.map +1 -1
  87. package/dist/chains/vector_db_qa.cjs.map +1 -1
  88. package/dist/chains/vector_db_qa.js.map +1 -1
  89. package/dist/chat_models/universal.cjs +8 -10
  90. package/dist/chat_models/universal.cjs.map +1 -1
  91. package/dist/chat_models/universal.d.cts +3 -5
  92. package/dist/chat_models/universal.d.cts.map +1 -1
  93. package/dist/chat_models/universal.d.ts +3 -5
  94. package/dist/chat_models/universal.d.ts.map +1 -1
  95. package/dist/chat_models/universal.js +8 -10
  96. package/dist/chat_models/universal.js.map +1 -1
  97. package/dist/document_loaders/fs/directory.d.cts.map +1 -1
  98. package/dist/document_loaders/fs/directory.d.ts.map +1 -1
  99. package/dist/document_loaders/fs/json.cjs.map +1 -1
  100. package/dist/document_loaders/fs/json.js.map +1 -1
  101. package/dist/document_transformers/openai_functions.d.cts.map +1 -1
  102. package/dist/evaluation/agents/index.d.cts +1 -0
  103. package/dist/evaluation/agents/trajectory.d.cts +2 -2
  104. package/dist/evaluation/agents/trajectory.d.cts.map +1 -1
  105. package/dist/evaluation/agents/trajectory.d.ts +2 -2
  106. package/dist/evaluation/agents/trajectory.d.ts.map +1 -1
  107. package/dist/evaluation/base.cjs.map +1 -1
  108. package/dist/evaluation/base.d.cts.map +1 -1
  109. package/dist/evaluation/base.js.map +1 -1
  110. package/dist/evaluation/comparison/index.d.cts +1 -0
  111. package/dist/evaluation/comparison/pairwise.cjs.map +1 -1
  112. package/dist/evaluation/comparison/pairwise.d.cts +3 -3
  113. package/dist/evaluation/comparison/pairwise.d.cts.map +1 -1
  114. package/dist/evaluation/comparison/pairwise.d.ts +3 -3
  115. package/dist/evaluation/comparison/pairwise.d.ts.map +1 -1
  116. package/dist/evaluation/comparison/pairwise.js.map +1 -1
  117. package/dist/evaluation/criteria/criteria.cjs.map +1 -1
  118. package/dist/evaluation/criteria/criteria.d.cts +3 -3
  119. package/dist/evaluation/criteria/criteria.d.cts.map +1 -1
  120. package/dist/evaluation/criteria/criteria.d.ts +3 -3
  121. package/dist/evaluation/criteria/criteria.d.ts.map +1 -1
  122. package/dist/evaluation/criteria/criteria.js.map +1 -1
  123. package/dist/evaluation/criteria/index.d.cts +1 -0
  124. package/dist/evaluation/embedding_distance/index.d.cts +1 -0
  125. package/dist/evaluation/loader.cjs.map +1 -1
  126. package/dist/evaluation/loader.d.cts.map +1 -1
  127. package/dist/evaluation/loader.js.map +1 -1
  128. package/dist/evaluation/qa/index.d.cts +1 -0
  129. package/dist/experimental/autogpt/prompt.d.cts +2 -2
  130. package/dist/experimental/autogpt/prompt.d.cts.map +1 -1
  131. package/dist/experimental/autogpt/prompt.d.ts +2 -2
  132. package/dist/experimental/autogpt/prompt.d.ts.map +1 -1
  133. package/dist/experimental/autogpt/prompt_generator.cjs.map +1 -1
  134. package/dist/experimental/autogpt/prompt_generator.js.map +1 -1
  135. package/dist/experimental/autogpt/schema.cjs.map +1 -1
  136. package/dist/experimental/autogpt/schema.js.map +1 -1
  137. package/dist/experimental/generative_agents/generative_agent_memory.cjs.map +1 -1
  138. package/dist/experimental/generative_agents/generative_agent_memory.js.map +1 -1
  139. package/dist/experimental/masking/parser.cjs.map +1 -1
  140. package/dist/experimental/masking/parser.js.map +1 -1
  141. package/dist/experimental/masking/regex_masking_transformer.cjs.map +1 -1
  142. package/dist/experimental/masking/regex_masking_transformer.js.map +1 -1
  143. package/dist/experimental/openai_assistant/index.cjs.map +1 -1
  144. package/dist/experimental/openai_assistant/index.d.cts +3 -3
  145. package/dist/experimental/openai_assistant/index.d.ts +3 -3
  146. package/dist/experimental/openai_assistant/index.js.map +1 -1
  147. package/dist/experimental/openai_files/index.d.cts +4 -4
  148. package/dist/experimental/openai_files/index.d.ts +4 -4
  149. package/dist/experimental/plan_and_execute/agent_executor.cjs.map +1 -1
  150. package/dist/experimental/plan_and_execute/agent_executor.js.map +1 -1
  151. package/dist/experimental/prompts/custom_format.cjs.map +1 -1
  152. package/dist/experimental/prompts/custom_format.js.map +1 -1
  153. package/dist/experimental/prompts/handlebars.cjs.map +1 -1
  154. package/dist/experimental/prompts/handlebars.d.cts +2 -2
  155. package/dist/experimental/prompts/handlebars.d.cts.map +1 -1
  156. package/dist/experimental/prompts/handlebars.d.ts +2 -2
  157. package/dist/experimental/prompts/handlebars.d.ts.map +1 -1
  158. package/dist/experimental/prompts/handlebars.js.map +1 -1
  159. package/dist/hub/base.cjs.map +1 -1
  160. package/dist/hub/base.d.cts +0 -1
  161. package/dist/hub/base.d.cts.map +1 -1
  162. package/dist/hub/base.d.ts +0 -1
  163. package/dist/hub/base.d.ts.map +1 -1
  164. package/dist/hub/base.js.map +1 -1
  165. package/dist/hub/index.cjs.map +1 -1
  166. package/dist/hub/index.js.map +1 -1
  167. package/dist/load/index.cjs.map +1 -1
  168. package/dist/load/index.js.map +1 -1
  169. package/dist/output_parsers/combining.cjs.map +1 -1
  170. package/dist/output_parsers/combining.js.map +1 -1
  171. package/dist/output_parsers/expression_type_handlers/base.cjs.map +1 -1
  172. package/dist/output_parsers/expression_type_handlers/base.d.cts.map +1 -1
  173. package/dist/output_parsers/expression_type_handlers/base.d.ts.map +1 -1
  174. package/dist/output_parsers/expression_type_handlers/base.js.map +1 -1
  175. package/dist/output_parsers/fix.cjs.map +1 -1
  176. package/dist/output_parsers/fix.js.map +1 -1
  177. package/dist/output_parsers/openai_functions.d.cts.map +1 -1
  178. package/dist/output_parsers/openai_functions.d.ts.map +1 -1
  179. package/dist/output_parsers/openai_tools.cjs.map +1 -1
  180. package/dist/output_parsers/openai_tools.js.map +1 -1
  181. package/dist/output_parsers/regex.cjs.map +1 -1
  182. package/dist/output_parsers/regex.js.map +1 -1
  183. package/dist/output_parsers/structured.d.cts +2 -2
  184. package/dist/output_parsers/structured.d.cts.map +1 -1
  185. package/dist/output_parsers/structured.d.ts +2 -2
  186. package/dist/output_parsers/structured.d.ts.map +1 -1
  187. package/dist/retrievers/document_compressors/index.cjs.map +1 -1
  188. package/dist/retrievers/document_compressors/index.js.map +1 -1
  189. package/dist/retrievers/matryoshka_retriever.cjs.map +1 -1
  190. package/dist/retrievers/matryoshka_retriever.d.cts +1 -1
  191. package/dist/retrievers/matryoshka_retriever.d.cts.map +1 -1
  192. package/dist/retrievers/matryoshka_retriever.d.ts +1 -1
  193. package/dist/retrievers/matryoshka_retriever.d.ts.map +1 -1
  194. package/dist/retrievers/matryoshka_retriever.js.map +1 -1
  195. package/dist/retrievers/multi_query.cjs.map +1 -1
  196. package/dist/retrievers/multi_query.js.map +1 -1
  197. package/dist/retrievers/parent_document.cjs.map +1 -1
  198. package/dist/retrievers/parent_document.js.map +1 -1
  199. package/dist/schema/prompt_template.d.cts +1 -2
  200. package/dist/schema/prompt_template.d.cts.map +1 -1
  201. package/dist/schema/prompt_template.d.ts +1 -2
  202. package/dist/schema/prompt_template.d.ts.map +1 -1
  203. package/dist/smith/config.cjs.map +1 -1
  204. package/dist/smith/config.d.cts +1 -1
  205. package/dist/smith/config.d.ts +1 -1
  206. package/dist/smith/config.d.ts.map +1 -1
  207. package/dist/smith/config.js.map +1 -1
  208. package/dist/smith/runner_utils.cjs.map +1 -1
  209. package/dist/smith/runner_utils.d.cts +1 -1
  210. package/dist/smith/runner_utils.d.cts.map +1 -1
  211. package/dist/smith/runner_utils.d.ts +1 -1
  212. package/dist/smith/runner_utils.d.ts.map +1 -1
  213. package/dist/smith/runner_utils.js.map +1 -1
  214. package/dist/sql_db.d.cts +2 -2
  215. package/dist/sql_db.d.cts.map +1 -1
  216. package/dist/sql_db.d.ts +2 -2
  217. package/dist/sql_db.d.ts.map +1 -1
  218. package/dist/storage/encoder_backed.cjs.map +1 -1
  219. package/dist/storage/encoder_backed.js.map +1 -1
  220. package/dist/storage/file_system.cjs.map +1 -1
  221. package/dist/storage/file_system.js.map +1 -1
  222. package/dist/stores/doc/in_memory.cjs.map +1 -1
  223. package/dist/stores/doc/in_memory.js.map +1 -1
  224. package/dist/tools/json.cjs.map +1 -1
  225. package/dist/tools/json.js.map +1 -1
  226. package/dist/tools/webbrowser.cjs.map +1 -1
  227. package/dist/tools/webbrowser.d.cts.map +1 -1
  228. package/dist/tools/webbrowser.d.ts.map +1 -1
  229. package/dist/tools/webbrowser.js.map +1 -1
  230. package/dist/util/document.d.cts +1 -1
  231. package/dist/util/document.d.cts.map +1 -1
  232. package/dist/util/document.d.ts +1 -1
  233. package/dist/util/document.d.ts.map +1 -1
  234. package/dist/util/is-network-error/index.cjs.map +1 -1
  235. package/dist/util/is-network-error/index.js.map +1 -1
  236. package/dist/util/load.cjs.map +1 -1
  237. package/dist/util/load.js.map +1 -1
  238. package/dist/util/openapi.cjs.map +1 -1
  239. package/dist/util/openapi.d.cts +32 -32
  240. package/dist/util/openapi.d.cts.map +1 -1
  241. package/dist/util/openapi.d.ts +32 -32
  242. package/dist/util/openapi.d.ts.map +1 -1
  243. package/dist/util/openapi.js.map +1 -1
  244. package/dist/util/p-retry/index.cjs.map +1 -1
  245. package/dist/util/p-retry/index.js.map +1 -1
  246. package/dist/vectorstores/memory.cjs.map +1 -1
  247. package/dist/vectorstores/memory.js.map +1 -1
  248. package/package.json +25 -48
  249. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.cts +0 -1494
  250. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.cts.map +0 -1
  251. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.ts +0 -1494
  252. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.ts.map +0 -1
  253. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.cts +0 -1
  254. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.ts +0 -1
  255. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.cts +0 -1
  256. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.ts +0 -1
  257. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.cts +0 -66
  258. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.cts.map +0 -1
  259. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.ts +0 -66
  260. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.ts.map +0 -1
  261. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.cts +0 -1
  262. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.ts +0 -1
  263. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.cts +0 -1
  264. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.ts +0 -1
  265. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/index.d.cts +0 -4
  266. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/index.d.ts +0 -4
  267. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.cts +0 -145
  268. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.cts.map +0 -1
  269. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.ts +0 -145
  270. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.ts.map +0 -1
  271. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.cts +0 -437
  272. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.cts.map +0 -1
  273. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.ts +0 -437
  274. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.ts.map +0 -1
  275. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts +0 -7
  276. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts.map +0 -1
  277. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts +0 -7
  278. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts.map +0 -1
  279. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.cts +0 -38
  280. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.cts.map +0 -1
  281. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.ts +0 -38
  282. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.ts.map +0 -1
  283. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts +0 -25
  284. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts.map +0 -1
  285. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts +0 -25
  286. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts.map +0 -1
  287. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.cts +0 -1
  288. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.ts +0 -1
  289. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.cts +0 -129
  290. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.cts.map +0 -1
  291. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.ts +0 -129
  292. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.ts.map +0 -1
  293. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.cts +0 -1
  294. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.ts +0 -1
  295. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/singletons/traceable.d.cts +0 -2
  296. package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.20.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/singletons/traceable.d.ts +0 -2
  297. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.cts +0 -1
  298. package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"custom_format.js","names":[],"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;;CAGT,kBAAkB;CAElB;CAEA;CAEA,YAAY,OAAkD;AAC5D,QAAM,MAAM;AACZ,SAAO,OAAO,MAAM,MAAM;AAE1B,MAAI,KAAK,oBAAoB,KAAK,sBAAsB,KAAA,GAAW;GACjE,IAAI,sBAAgC,KAAK;AACzC,OAAI,KAAK,iBACP,uBAAsB,oBAAoB,OACxC,OAAO,KAAK,KAAK,iBAAiB,CACnC;AAEH,OAAI,OAAO,KAAK,aAAa,SAC3B,MAAK,kBAAkB,KAAK,UAAU,oBAAoB;OAE1D,OAAM,IAAI,MACR,8CAA8C,KAAK,WACpD;;;;;;CAQP,OAAO,aAIL,UACA,EACE,cACA,GAAG,QAKL;EACA,MAAM,wBAAQ,IAAI,KAAa;EAC/B,MAAM,QAAQ,aAAa,SAAS;AACpC,OAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,SAAS,WAChB,OAAM,IAAI,KAAK,KAAK;AAGxB,SAAO,IAAI,KAAiD;GAE1D,gBAAgB,CAAC,GAAG,MAAM;GAC1B;GACA;GACA,GAAG;GACJ,CAAC;;;;;;;CAQJ,MAAM,OAAO,QAA2D;EACtE,MAAM,YAAY,MAAM,KAAK,6BAA6B,OAAO;AACjE,MAAI,OAAO,KAAK,aAAa,SAC3B,QAAO,KAAK,SAAS,KAAK,UAAU,UAAU;MAE9C,OAAM,IAAI,MACR,8CAA8C,KAAK,WACpD"}
1
+ {"version":3,"file":"custom_format.js","names":[],"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 // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n RunInput extends InputValues = any,\n // oxlint-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 // oxlint-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 // oxlint-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;;CAGT,kBAAkB;CAElB;CAEA;CAEA,YAAY,OAAkD;AAC5D,QAAM,MAAM;AACZ,SAAO,OAAO,MAAM,MAAM;AAE1B,MAAI,KAAK,oBAAoB,KAAK,sBAAsB,KAAA,GAAW;GACjE,IAAI,sBAAgC,KAAK;AACzC,OAAI,KAAK,iBACP,uBAAsB,oBAAoB,OACxC,OAAO,KAAK,KAAK,iBAAiB,CACnC;AAEH,OAAI,OAAO,KAAK,aAAa,SAC3B,MAAK,kBAAkB,KAAK,UAAU,oBAAoB;OAE1D,OAAM,IAAI,MACR,8CAA8C,KAAK,WACpD;;;;;;CAQP,OAAO,aAIL,UACA,EACE,cACA,GAAG,QAKL;EACA,MAAM,wBAAQ,IAAI,KAAa;EAC/B,MAAM,QAAQ,aAAa,SAAS;AACpC,OAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,SAAS,WAChB,OAAM,IAAI,KAAK,KAAK;AAGxB,SAAO,IAAI,KAAiD;GAE1D,gBAAgB,CAAC,GAAG,MAAM;GAC1B;GACA;GACA,GAAG;GACJ,CAAC;;;;;;;CAQJ,MAAM,OAAO,QAA2D;EACtE,MAAM,YAAY,MAAM,KAAK,6BAA6B,OAAO;AACjE,MAAI,OAAO,KAAK,aAAa,SAC3B,QAAO,KAAK,SAAS,KAAK,UAAU,UAAU;MAE9C,OAAM,IAAI,MACR,8CAA8C,KAAK,WACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.cjs","names":["Handlebars","CustomFormatPromptTemplate"],"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,mBAAmB,aAA0C;CACxE,MAAM,SAA8B,EAAE;CACtC,MAAM,QAA4B,CAAC,GAAGA,WAAAA,QAAW,MAAM,SAAS,CAAC,KAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;AAClB,UAAO,KAAK;IAAE,MAAM;IAAW;IAAM,CAAC;aAC7B,KAAK,SAAS,qBAAqB;GAE5C,MAAM,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,aAAa,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,kBAAkB;GAEzC,MAAM,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,aAAa;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,iBAEvB,OAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;;AAIpD,QAAO;;AAGT,MAAa,yBACX,UACA,WACG;AAEH,QADiBA,WAAAA,QAAW,QAAQ,UAAU,EAAE,UAAU,MAAM,CAAC,CACjD,OAAO;;AAMzB,IAAa,2BAAb,cAGUC,2CAAAA,2BAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;;;;;CAMT,OAAO,aAIL,UACA,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;GACX,CAAC"}
1
+ {"version":3,"file":"handlebars.cjs","names":["Handlebars","CustomFormatPromptTemplate"],"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 // oxlint-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 // oxlint-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,mBAAmB,aAA0C;CACxE,MAAM,SAA8B,EAAE;CACtC,MAAM,QAA4B,CAAC,GAAGA,WAAAA,QAAW,MAAM,SAAS,CAAC,KAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;AAClB,UAAO,KAAK;IAAE,MAAM;IAAW;IAAM,CAAC;aAC7B,KAAK,SAAS,qBAAqB;GAE5C,MAAM,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,aAAa,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,kBAAkB;GAEzC,MAAM,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,aAAa;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,iBAEvB,OAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;;AAIpD,QAAO;;AAGT,MAAa,yBACX,UACA,WACG;AAEH,QADiBA,WAAAA,QAAW,QAAQ,UAAU,EAAE,UAAU,MAAM,CAAC,CACjD,OAAO;;AAMzB,IAAa,2BAAb,cAGUC,2CAAAA,2BAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;;;;;CAMT,OAAO,aAIL,UACA,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;GACX,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { CustomFormatPromptTemplate, CustomFormatPromptTemplateInput } from "./custom_format.cjs";
2
2
  import { InputValues } from "@langchain/core/utils/types";
3
- import * as _langchain_core_prompts0 from "@langchain/core/prompts";
3
+ import { ParsedFStringNode } from "@langchain/core/prompts";
4
4
 
5
5
  //#region src/experimental/prompts/handlebars.d.ts
6
- declare const parseHandlebars: (template: string) => _langchain_core_prompts0.ParsedTemplateNode[];
6
+ declare const parseHandlebars: (template: string) => ParsedFStringNode[];
7
7
  declare const interpolateHandlebars: (template: string, values: InputValues) => string;
8
8
  type HandlebarsPromptTemplateInput<RunInput extends InputValues> = CustomFormatPromptTemplateInput<RunInput>;
9
9
  declare class HandlebarsPromptTemplate<RunInput extends InputValues = any> extends CustomFormatPromptTemplate<RunInput> {
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.d.cts","names":[],"sources":["../../../src/experimental/prompts/handlebars.ts"],"mappings":";;;;;cAQa,eAAA,GAAe,QAAA,aAwC3B,wBAAA,CAxC2B,kBAAA;AAAA,cA0Cf,qBAAA,GAAqB,QAAA,UAAA,MAAA,EAAA,WAAA;AAAA,KAQtB,6BAAA,kBAA+C,WAAA,IACzD,+BAAA,CAAgC,QAAA;AAAA,cAErB,wBAAA,kBAEM,WAAA,gBACT,0BAAA,CAA2B,QAAA;EAAA,OAC5B,OAAA,CAAA;;;;SAOA,YAAA,kBAEY,WAAA,GAAc,MAAA,cAAA,CAE/B,QAAA,UACA,MAAA,GAAS,IAAA,CACP,6BAAA,CAA8B,QAAA,wFAM/B,0BAAA,CAAA,QAAA,SAAA,MAAA,WAAA,QAAA;AAAA"}
1
+ {"version":3,"file":"handlebars.d.cts","names":[],"sources":["../../../src/experimental/prompts/handlebars.ts"],"mappings":";;;;;cAQa,eAAA,GAAe,QAAA,aAAuB,iBAAA;AAAA,cA0CtC,qBAAA,GAAqB,QAAA,UAChB,MAAA,EACR,WAAA;AAAA,KAME,6BAAA,kBAA+C,WAAA,IACzD,+BAAA,CAAgC,QAAA;AAAA,cAErB,wBAAA,kBAEM,WAAA,gBACT,0BAAA,CAA2B,QAAA;EAAA,OAC5B,OAAA,CAAA;EAzDmB;;AA0C5B;EA1C4B,OAgEnB,YAAA,kBAEY,WAAA,GAAc,MAAA,cAAA,CAE/B,QAAA,UACA,MAAA,GAAS,IAAA,CACP,6BAAA,CAA8B,QAAA,wFAM/B,0BAAA,CAAA,QAAA,SAAA,MAAA,WAAA,QAAA;AAAA"}
@@ -1,9 +1,9 @@
1
1
  import { CustomFormatPromptTemplate, CustomFormatPromptTemplateInput } from "./custom_format.js";
2
- import * as _langchain_core_prompts0 from "@langchain/core/prompts";
2
+ import { ParsedFStringNode } from "@langchain/core/prompts";
3
3
  import { InputValues } from "@langchain/core/utils/types";
4
4
 
5
5
  //#region src/experimental/prompts/handlebars.d.ts
6
- declare const parseHandlebars: (template: string) => _langchain_core_prompts0.ParsedTemplateNode[];
6
+ declare const parseHandlebars: (template: string) => ParsedFStringNode[];
7
7
  declare const interpolateHandlebars: (template: string, values: InputValues) => string;
8
8
  type HandlebarsPromptTemplateInput<RunInput extends InputValues> = CustomFormatPromptTemplateInput<RunInput>;
9
9
  declare class HandlebarsPromptTemplate<RunInput extends InputValues = any> extends CustomFormatPromptTemplate<RunInput> {
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.d.ts","names":[],"sources":["../../../src/experimental/prompts/handlebars.ts"],"mappings":";;;;;cAQa,eAAA,GAAe,QAAA,aAwC3B,wBAAA,CAxC2B,kBAAA;AAAA,cA0Cf,qBAAA,GAAqB,QAAA,UAAA,MAAA,EAAA,WAAA;AAAA,KAQtB,6BAAA,kBAA+C,WAAA,IACzD,+BAAA,CAAgC,QAAA;AAAA,cAErB,wBAAA,kBAEM,WAAA,gBACT,0BAAA,CAA2B,QAAA;EAAA,OAC5B,OAAA,CAAA;;;;SAOA,YAAA,kBAEY,WAAA,GAAc,MAAA,cAAA,CAE/B,QAAA,UACA,MAAA,GAAS,IAAA,CACP,6BAAA,CAA8B,QAAA,wFAM/B,0BAAA,CAAA,QAAA,SAAA,MAAA,WAAA,QAAA;AAAA"}
1
+ {"version":3,"file":"handlebars.d.ts","names":[],"sources":["../../../src/experimental/prompts/handlebars.ts"],"mappings":";;;;;cAQa,eAAA,GAAe,QAAA,aAAuB,iBAAA;AAAA,cA0CtC,qBAAA,GAAqB,QAAA,UAChB,MAAA,EACR,WAAA;AAAA,KAME,6BAAA,kBAA+C,WAAA,IACzD,+BAAA,CAAgC,QAAA;AAAA,cAErB,wBAAA,kBAEM,WAAA,gBACT,0BAAA,CAA2B,QAAA;EAAA,OAC5B,OAAA,CAAA;EAzDmB;;AA0C5B;EA1C4B,OAgEnB,YAAA,kBAEY,WAAA,GAAc,MAAA,cAAA,CAE/B,QAAA,UACA,MAAA,GAAS,IAAA,CACP,6BAAA,CAA8B,QAAA,wFAM/B,0BAAA,CAAA,QAAA,SAAA,MAAA,WAAA,QAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.js","names":[],"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,mBAAmB,aAA0C;CACxE,MAAM,SAA8B,EAAE;CACtC,MAAM,QAA4B,CAAC,GAAG,WAAW,MAAM,SAAS,CAAC,KAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;AAClB,UAAO,KAAK;IAAE,MAAM;IAAW;IAAM,CAAC;aAC7B,KAAK,SAAS,qBAAqB;GAE5C,MAAM,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,aAAa,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,kBAAkB;GAEzC,MAAM,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,aAAa;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,iBAEvB,OAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;;AAIpD,QAAO;;AAGT,MAAa,yBACX,UACA,WACG;AAEH,QADiB,WAAW,QAAQ,UAAU,EAAE,UAAU,MAAM,CAAC,CACjD,OAAO;;AAMzB,IAAa,2BAAb,cAGU,2BAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;;;;;CAMT,OAAO,aAIL,UACA,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;GACX,CAAC"}
1
+ {"version":3,"file":"handlebars.js","names":[],"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 // oxlint-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 // oxlint-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,mBAAmB,aAA0C;CACxE,MAAM,SAA8B,EAAE;CACtC,MAAM,QAA4B,CAAC,GAAG,WAAW,MAAM,SAAS,CAAC,KAAK;AACtE,QAAO,MAAM,QAAQ;EACnB,MAAM,OAAO,MAAM,KAAK;AACxB,MAAI,KAAK,SAAS,oBAAoB;GAEpC,MAAM,OAAO,KAAK;AAClB,UAAO,KAAK;IAAE,MAAM;IAAW;IAAM,CAAC;aAC7B,KAAK,SAAS,qBAAqB;GAE5C,MAAM,OAAe,KAAK,KAAK,MAAM;GAErC,MAAM,EAAE,aAAa,KAAK;AAC1B,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,kBAAkB;GAEzC,MAAM,OAAe,KAAK,MAAM;GAEhC,MAAM,EAAE,aAAa;AACrB,OACE,CAAC,CAAC,QACF,CAAC,SAAS,WAAW,QAAQ,IAC7B,CAAC,SAAS,WAAW,IAAI,CAEzB,QAAO,KAAK;IAAE,MAAM;IAAY;IAAM,CAAC;aAEhC,KAAK,SAAS,iBAEvB,OAAM,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,QAAQ,KAAK;;AAIpD,QAAO;;AAGT,MAAa,yBACX,UACA,WACG;AAEH,QADiB,WAAW,QAAQ,UAAU,EAAE,UAAU,MAAM,CAAC,CACjD,OAAO;;AAMzB,IAAa,2BAAb,cAGU,2BAAqC;CAC7C,OAAO,UAAU;AACf,SAAO;;;;;CAMT,OAAO,aAIL,UACA,QAQA;AACA,SAAO,MAAM,aAAuB,UAAU;GAC5C,GAAG;GACH,kBAAkB;GAClB,cAAc;GACd,UAAU;GACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.cjs","names":[],"sources":["../../src/hub/base.ts"],"sourcesContent":["import type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport type { Runnable } from \"@langchain/core/runnables\";\n\nimport type { Client, ClientConfig } from \"langsmith\";\nimport type { PromptCommit } from \"langsmith/schemas\";\n\n/**\n * Push a prompt to the hub.\n * If the specified repo doesn't already exist, it will be created.\n * @param repoFullName The full name of the repo.\n * @param runnable The prompt to push.\n * @param options\n * @returns The URL of the newly pushed prompt in the hub.\n */\nexport async function basePush(\n repoFullName: string,\n runnable: Runnable,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n parentCommitHash?: string;\n /** @deprecated Use isPublic instead. */\n newRepoIsPublic?: boolean;\n isPublic?: boolean;\n /** @deprecated Use description instead. */\n newRepoDescription?: string;\n description?: string;\n readme?: string;\n tags?: string[];\n }\n): Promise<string> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n const payloadOptions = {\n object: runnable,\n parentCommitHash: options?.parentCommitHash,\n isPublic: options?.isPublic ?? options?.newRepoIsPublic,\n description: options?.description ?? options?.newRepoDescription,\n readme: options?.readme,\n tags: options?.tags,\n };\n return client.pushPrompt(repoFullName, payloadOptions);\n}\n\nexport async function basePull(\n ownerRepoCommit: string,\n options?: { apiKey?: string; apiUrl?: string; includeModel?: boolean }\n): Promise<PromptCommit> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n\n const promptObject = await client.pullPromptCommit(ownerRepoCommit, {\n includeModel: options?.includeModel,\n });\n\n if (promptObject.manifest.kwargs?.metadata === undefined) {\n promptObject.manifest.kwargs = {\n ...promptObject.manifest.kwargs,\n metadata: {},\n };\n }\n\n promptObject.manifest.kwargs.metadata = {\n ...promptObject.manifest.kwargs.metadata,\n lc_hub_owner: promptObject.owner,\n lc_hub_repo: promptObject.repo,\n lc_hub_commit_hash: promptObject.commit_hash,\n };\n\n // Some nested mustache prompts have improperly parsed variables that include a dot.\n if (promptObject.manifest.kwargs.template_format === \"mustache\") {\n const stripDotNotation = (varName: string) => varName.split(\".\")[0];\n\n const { input_variables } = promptObject.manifest.kwargs;\n if (Array.isArray(input_variables)) {\n promptObject.manifest.kwargs.input_variables =\n input_variables.map(stripDotNotation);\n }\n\n const { messages } = promptObject.manifest.kwargs;\n if (Array.isArray(messages)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n promptObject.manifest.kwargs.messages = messages.map((message: any) => {\n const nestedVars = message?.kwargs?.prompt?.kwargs?.input_variables;\n if (Array.isArray(nestedVars)) {\n message.kwargs.prompt.kwargs.input_variables =\n nestedVars.map(stripDotNotation);\n }\n return message;\n });\n }\n }\n return promptObject;\n}\n\nexport function generateModelImportMap(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modelImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let importMapKey;\n if (modelLcName === \"ChatOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatAnthropic\") {\n importMapKey = \"chat_models__anthropic\";\n } else if (modelLcName === \"ChatAzureOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatVertexAI\") {\n importMapKey = \"chat_models__vertexai\";\n } else if (modelLcName === \"ChatGoogleGenerativeAI\") {\n importMapKey = \"chat_models__google_genai\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n importMapKey = \"chat_models__chat_bedrock_converse\";\n } else if (modelLcName === \"ChatMistral\") {\n importMapKey = \"chat_models__mistralai\";\n } else if (modelLcName === \"ChatFireworks\") {\n importMapKey = \"chat_models__fireworks\";\n } else if (modelLcName === \"ChatGroq\") {\n importMapKey = \"chat_models__groq\";\n } else {\n throw new Error(\"Received unsupported model class when pulling prompt.\");\n }\n modelImportMap[importMapKey] = {\n ...modelImportMap[importMapKey],\n [modelLcName]: modelClass,\n };\n }\n return modelImportMap;\n}\n\nexport function generateOptionalImportMap(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const optionalImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let optionalImportMapKey;\n if (modelLcName === \"ChatGoogleGenerativeAI\") {\n optionalImportMapKey = \"langchain_google_genai/chat_models\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n optionalImportMapKey = \"langchain_aws/chat_models\";\n } else if (modelLcName === \"ChatGroq\") {\n optionalImportMapKey = \"langchain_groq/chat_models\";\n }\n if (optionalImportMapKey !== undefined) {\n optionalImportMap[optionalImportMapKey] = {\n [modelLcName]: modelClass,\n };\n }\n }\n return optionalImportMap;\n}\n\nexport function bindOutputSchema<T extends Runnable>(loadedSequence: T) {\n if (\n \"first\" in loadedSequence &&\n loadedSequence.first !== null &&\n typeof loadedSequence.first === \"object\" &&\n \"schema\" in loadedSequence.first &&\n \"last\" in loadedSequence &&\n loadedSequence.last !== null &&\n typeof loadedSequence.last === \"object\"\n ) {\n if (\n \"bound\" in loadedSequence.last &&\n loadedSequence.last.bound !== null &&\n typeof loadedSequence.last.bound === \"object\" &&\n \"withStructuredOutput\" in loadedSequence.last.bound &&\n typeof loadedSequence.last.bound.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last.bound =\n loadedSequence.last.bound.withStructuredOutput(\n loadedSequence.first.schema\n );\n } else if (\n \"withStructuredOutput\" in loadedSequence.last &&\n typeof loadedSequence.last.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last = loadedSequence.last.withStructuredOutput(\n loadedSequence.first.schema\n );\n }\n }\n return loadedSequence;\n}\n\n/**\n * Dynamically load the LangSmith client.\n * @returns The LangSmith client.\n */\nasync function loadLangSmith(): Promise<new (config?: ClientConfig) => Client> {\n try {\n const { Client } = await import(\"langsmith\");\n return Client;\n } catch (error) {\n // eslint-disable-next-line no-instanceof/no-instanceof\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Error loading \"langsmith\" package, install it via \\`npm install langsmith\\` before you use this function.\\nError: ${errorMessage}`\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"base.cjs","names":[],"sources":["../../src/hub/base.ts"],"sourcesContent":["import type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport type { Runnable } from \"@langchain/core/runnables\";\n\nimport type { Client, ClientConfig } from \"langsmith\";\nimport type { PromptCommit } from \"langsmith/schemas\";\n\n/**\n * Push a prompt to the hub.\n * If the specified repo doesn't already exist, it will be created.\n * @param repoFullName The full name of the repo.\n * @param runnable The prompt to push.\n * @param options\n * @returns The URL of the newly pushed prompt in the hub.\n */\nexport async function basePush(\n repoFullName: string,\n runnable: Runnable,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n parentCommitHash?: string;\n /** @deprecated Use isPublic instead. */\n newRepoIsPublic?: boolean;\n isPublic?: boolean;\n /** @deprecated Use description instead. */\n newRepoDescription?: string;\n description?: string;\n readme?: string;\n tags?: string[];\n }\n): Promise<string> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n const payloadOptions = {\n object: runnable,\n parentCommitHash: options?.parentCommitHash,\n isPublic: options?.isPublic ?? options?.newRepoIsPublic,\n description: options?.description ?? options?.newRepoDescription,\n readme: options?.readme,\n tags: options?.tags,\n };\n return client.pushPrompt(repoFullName, payloadOptions);\n}\n\nexport async function basePull(\n ownerRepoCommit: string,\n options?: { apiKey?: string; apiUrl?: string; includeModel?: boolean }\n): Promise<PromptCommit> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n\n const promptObject = await client.pullPromptCommit(ownerRepoCommit, {\n includeModel: options?.includeModel,\n });\n\n if (promptObject.manifest.kwargs?.metadata === undefined) {\n promptObject.manifest.kwargs = {\n ...promptObject.manifest.kwargs,\n metadata: {},\n };\n }\n\n promptObject.manifest.kwargs.metadata = {\n ...promptObject.manifest.kwargs.metadata,\n lc_hub_owner: promptObject.owner,\n lc_hub_repo: promptObject.repo,\n lc_hub_commit_hash: promptObject.commit_hash,\n };\n\n // Some nested mustache prompts have improperly parsed variables that include a dot.\n if (promptObject.manifest.kwargs.template_format === \"mustache\") {\n const stripDotNotation = (varName: string) => varName.split(\".\")[0];\n\n const { input_variables } = promptObject.manifest.kwargs;\n if (Array.isArray(input_variables)) {\n promptObject.manifest.kwargs.input_variables =\n input_variables.map(stripDotNotation);\n }\n\n const { messages } = promptObject.manifest.kwargs;\n if (Array.isArray(messages)) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n promptObject.manifest.kwargs.messages = messages.map((message: any) => {\n const nestedVars = message?.kwargs?.prompt?.kwargs?.input_variables;\n if (Array.isArray(nestedVars)) {\n message.kwargs.prompt.kwargs.input_variables =\n nestedVars.map(stripDotNotation);\n }\n return message;\n });\n }\n }\n return promptObject;\n}\n\nexport function generateModelImportMap(\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const modelImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let importMapKey;\n if (modelLcName === \"ChatOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatAnthropic\") {\n importMapKey = \"chat_models__anthropic\";\n } else if (modelLcName === \"ChatAzureOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatVertexAI\") {\n importMapKey = \"chat_models__vertexai\";\n } else if (modelLcName === \"ChatGoogleGenerativeAI\") {\n importMapKey = \"chat_models__google_genai\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n importMapKey = \"chat_models__chat_bedrock_converse\";\n } else if (modelLcName === \"ChatMistral\") {\n importMapKey = \"chat_models__mistralai\";\n } else if (modelLcName === \"ChatFireworks\") {\n importMapKey = \"chat_models__fireworks\";\n } else if (modelLcName === \"ChatGroq\") {\n importMapKey = \"chat_models__groq\";\n } else {\n throw new Error(\"Received unsupported model class when pulling prompt.\");\n }\n modelImportMap[importMapKey] = {\n ...modelImportMap[importMapKey],\n [modelLcName]: modelClass,\n };\n }\n return modelImportMap;\n}\n\nexport function generateOptionalImportMap(\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const optionalImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let optionalImportMapKey;\n if (modelLcName === \"ChatGoogleGenerativeAI\") {\n optionalImportMapKey = \"langchain_google_genai/chat_models\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n optionalImportMapKey = \"langchain_aws/chat_models\";\n } else if (modelLcName === \"ChatGroq\") {\n optionalImportMapKey = \"langchain_groq/chat_models\";\n }\n if (optionalImportMapKey !== undefined) {\n optionalImportMap[optionalImportMapKey] = {\n [modelLcName]: modelClass,\n };\n }\n }\n return optionalImportMap;\n}\n\nexport function bindOutputSchema<T extends Runnable>(loadedSequence: T) {\n if (\n \"first\" in loadedSequence &&\n loadedSequence.first !== null &&\n typeof loadedSequence.first === \"object\" &&\n \"schema\" in loadedSequence.first &&\n \"last\" in loadedSequence &&\n loadedSequence.last !== null &&\n typeof loadedSequence.last === \"object\"\n ) {\n if (\n \"bound\" in loadedSequence.last &&\n loadedSequence.last.bound !== null &&\n typeof loadedSequence.last.bound === \"object\" &&\n \"withStructuredOutput\" in loadedSequence.last.bound &&\n typeof loadedSequence.last.bound.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last.bound =\n loadedSequence.last.bound.withStructuredOutput(\n loadedSequence.first.schema\n );\n } else if (\n \"withStructuredOutput\" in loadedSequence.last &&\n typeof loadedSequence.last.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last = loadedSequence.last.withStructuredOutput(\n loadedSequence.first.schema\n );\n }\n }\n return loadedSequence;\n}\n\n/**\n * Dynamically load the LangSmith client.\n * @returns The LangSmith client.\n */\nasync function loadLangSmith(): Promise<new (config?: ClientConfig) => Client> {\n try {\n const { Client } = await import(\"langsmith\");\n return Client;\n } catch (error) {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Error loading \"langsmith\" package, install it via \\`npm install langsmith\\` before you use this function.\\nError: ${errorMessage}`\n );\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { Runnable } from "@langchain/core/runnables";
2
2
  import { BaseLanguageModel } from "@langchain/core/language_models/base";
3
-
4
3
  //#region src/hub/base.d.ts
5
4
  /**
6
5
  * Push a prompt to the hub.
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.cts","names":[],"sources":["../../src/hub/base.ts"],"mappings":";;;;;AAcA;;;;;;;iBAAsB,QAAA,CACpB,YAAA,UACA,QAAA,EAAU,QAAA,EACV,OAAA;EACE,MAAA;EACA,MAAA;EACA,gBAAA,WAGA;EADA,eAAA;EACA,QAAA,YAIA;EAFA,kBAAA;EACA,WAAA;EACA,MAAA;EACA,IAAA;AAAA,IAED,OAAA"}
1
+ {"version":3,"file":"base.d.cts","names":[],"sources":["../../src/hub/base.ts"],"mappings":";;;;;AAcA;;;;;;iBAAsB,QAAA,CACpB,YAAA,UACA,QAAA,EAAU,QAAA,EACV,OAAA;EACE,MAAA;EACA,MAAA;EACA,gBAAA,WAEA;EAAA,eAAA;EACA,QAAA,YAGA;EADA,kBAAA;EACA,WAAA;EACA,MAAA;EACA,IAAA;AAAA,IAED,OAAA"}
@@ -1,6 +1,5 @@
1
1
  import { Runnable } from "@langchain/core/runnables";
2
2
  import { BaseLanguageModel } from "@langchain/core/language_models/base";
3
-
4
3
  //#region src/hub/base.d.ts
5
4
  /**
6
5
  * Push a prompt to the hub.
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":[],"sources":["../../src/hub/base.ts"],"mappings":";;;;;AAcA;;;;;;;iBAAsB,QAAA,CACpB,YAAA,UACA,QAAA,EAAU,QAAA,EACV,OAAA;EACE,MAAA;EACA,MAAA;EACA,gBAAA,WAGA;EADA,eAAA;EACA,QAAA,YAIA;EAFA,kBAAA;EACA,WAAA;EACA,MAAA;EACA,IAAA;AAAA,IAED,OAAA"}
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../../src/hub/base.ts"],"mappings":";;;;;AAcA;;;;;;iBAAsB,QAAA,CACpB,YAAA,UACA,QAAA,EAAU,QAAA,EACV,OAAA;EACE,MAAA;EACA,MAAA;EACA,gBAAA,WAEA;EAAA,eAAA;EACA,QAAA,YAGA;EADA,kBAAA;EACA,WAAA;EACA,MAAA;EACA,IAAA;AAAA,IAED,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../src/hub/base.ts"],"sourcesContent":["import type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport type { Runnable } from \"@langchain/core/runnables\";\n\nimport type { Client, ClientConfig } from \"langsmith\";\nimport type { PromptCommit } from \"langsmith/schemas\";\n\n/**\n * Push a prompt to the hub.\n * If the specified repo doesn't already exist, it will be created.\n * @param repoFullName The full name of the repo.\n * @param runnable The prompt to push.\n * @param options\n * @returns The URL of the newly pushed prompt in the hub.\n */\nexport async function basePush(\n repoFullName: string,\n runnable: Runnable,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n parentCommitHash?: string;\n /** @deprecated Use isPublic instead. */\n newRepoIsPublic?: boolean;\n isPublic?: boolean;\n /** @deprecated Use description instead. */\n newRepoDescription?: string;\n description?: string;\n readme?: string;\n tags?: string[];\n }\n): Promise<string> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n const payloadOptions = {\n object: runnable,\n parentCommitHash: options?.parentCommitHash,\n isPublic: options?.isPublic ?? options?.newRepoIsPublic,\n description: options?.description ?? options?.newRepoDescription,\n readme: options?.readme,\n tags: options?.tags,\n };\n return client.pushPrompt(repoFullName, payloadOptions);\n}\n\nexport async function basePull(\n ownerRepoCommit: string,\n options?: { apiKey?: string; apiUrl?: string; includeModel?: boolean }\n): Promise<PromptCommit> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n\n const promptObject = await client.pullPromptCommit(ownerRepoCommit, {\n includeModel: options?.includeModel,\n });\n\n if (promptObject.manifest.kwargs?.metadata === undefined) {\n promptObject.manifest.kwargs = {\n ...promptObject.manifest.kwargs,\n metadata: {},\n };\n }\n\n promptObject.manifest.kwargs.metadata = {\n ...promptObject.manifest.kwargs.metadata,\n lc_hub_owner: promptObject.owner,\n lc_hub_repo: promptObject.repo,\n lc_hub_commit_hash: promptObject.commit_hash,\n };\n\n // Some nested mustache prompts have improperly parsed variables that include a dot.\n if (promptObject.manifest.kwargs.template_format === \"mustache\") {\n const stripDotNotation = (varName: string) => varName.split(\".\")[0];\n\n const { input_variables } = promptObject.manifest.kwargs;\n if (Array.isArray(input_variables)) {\n promptObject.manifest.kwargs.input_variables =\n input_variables.map(stripDotNotation);\n }\n\n const { messages } = promptObject.manifest.kwargs;\n if (Array.isArray(messages)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n promptObject.manifest.kwargs.messages = messages.map((message: any) => {\n const nestedVars = message?.kwargs?.prompt?.kwargs?.input_variables;\n if (Array.isArray(nestedVars)) {\n message.kwargs.prompt.kwargs.input_variables =\n nestedVars.map(stripDotNotation);\n }\n return message;\n });\n }\n }\n return promptObject;\n}\n\nexport function generateModelImportMap(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modelImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let importMapKey;\n if (modelLcName === \"ChatOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatAnthropic\") {\n importMapKey = \"chat_models__anthropic\";\n } else if (modelLcName === \"ChatAzureOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatVertexAI\") {\n importMapKey = \"chat_models__vertexai\";\n } else if (modelLcName === \"ChatGoogleGenerativeAI\") {\n importMapKey = \"chat_models__google_genai\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n importMapKey = \"chat_models__chat_bedrock_converse\";\n } else if (modelLcName === \"ChatMistral\") {\n importMapKey = \"chat_models__mistralai\";\n } else if (modelLcName === \"ChatFireworks\") {\n importMapKey = \"chat_models__fireworks\";\n } else if (modelLcName === \"ChatGroq\") {\n importMapKey = \"chat_models__groq\";\n } else {\n throw new Error(\"Received unsupported model class when pulling prompt.\");\n }\n modelImportMap[importMapKey] = {\n ...modelImportMap[importMapKey],\n [modelLcName]: modelClass,\n };\n }\n return modelImportMap;\n}\n\nexport function generateOptionalImportMap(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const optionalImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let optionalImportMapKey;\n if (modelLcName === \"ChatGoogleGenerativeAI\") {\n optionalImportMapKey = \"langchain_google_genai/chat_models\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n optionalImportMapKey = \"langchain_aws/chat_models\";\n } else if (modelLcName === \"ChatGroq\") {\n optionalImportMapKey = \"langchain_groq/chat_models\";\n }\n if (optionalImportMapKey !== undefined) {\n optionalImportMap[optionalImportMapKey] = {\n [modelLcName]: modelClass,\n };\n }\n }\n return optionalImportMap;\n}\n\nexport function bindOutputSchema<T extends Runnable>(loadedSequence: T) {\n if (\n \"first\" in loadedSequence &&\n loadedSequence.first !== null &&\n typeof loadedSequence.first === \"object\" &&\n \"schema\" in loadedSequence.first &&\n \"last\" in loadedSequence &&\n loadedSequence.last !== null &&\n typeof loadedSequence.last === \"object\"\n ) {\n if (\n \"bound\" in loadedSequence.last &&\n loadedSequence.last.bound !== null &&\n typeof loadedSequence.last.bound === \"object\" &&\n \"withStructuredOutput\" in loadedSequence.last.bound &&\n typeof loadedSequence.last.bound.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last.bound =\n loadedSequence.last.bound.withStructuredOutput(\n loadedSequence.first.schema\n );\n } else if (\n \"withStructuredOutput\" in loadedSequence.last &&\n typeof loadedSequence.last.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last = loadedSequence.last.withStructuredOutput(\n loadedSequence.first.schema\n );\n }\n }\n return loadedSequence;\n}\n\n/**\n * Dynamically load the LangSmith client.\n * @returns The LangSmith client.\n */\nasync function loadLangSmith(): Promise<new (config?: ClientConfig) => Client> {\n try {\n const { Client } = await import(\"langsmith\");\n return Client;\n } catch (error) {\n // eslint-disable-next-line no-instanceof/no-instanceof\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Error loading \"langsmith\" package, install it via \\`npm install langsmith\\` before you use this function.\\nError: ${errorMessage}`\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"base.js","names":[],"sources":["../../src/hub/base.ts"],"sourcesContent":["import type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport type { Runnable } from \"@langchain/core/runnables\";\n\nimport type { Client, ClientConfig } from \"langsmith\";\nimport type { PromptCommit } from \"langsmith/schemas\";\n\n/**\n * Push a prompt to the hub.\n * If the specified repo doesn't already exist, it will be created.\n * @param repoFullName The full name of the repo.\n * @param runnable The prompt to push.\n * @param options\n * @returns The URL of the newly pushed prompt in the hub.\n */\nexport async function basePush(\n repoFullName: string,\n runnable: Runnable,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n parentCommitHash?: string;\n /** @deprecated Use isPublic instead. */\n newRepoIsPublic?: boolean;\n isPublic?: boolean;\n /** @deprecated Use description instead. */\n newRepoDescription?: string;\n description?: string;\n readme?: string;\n tags?: string[];\n }\n): Promise<string> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n const payloadOptions = {\n object: runnable,\n parentCommitHash: options?.parentCommitHash,\n isPublic: options?.isPublic ?? options?.newRepoIsPublic,\n description: options?.description ?? options?.newRepoDescription,\n readme: options?.readme,\n tags: options?.tags,\n };\n return client.pushPrompt(repoFullName, payloadOptions);\n}\n\nexport async function basePull(\n ownerRepoCommit: string,\n options?: { apiKey?: string; apiUrl?: string; includeModel?: boolean }\n): Promise<PromptCommit> {\n const Client = await loadLangSmith();\n const client = new Client(options);\n\n const promptObject = await client.pullPromptCommit(ownerRepoCommit, {\n includeModel: options?.includeModel,\n });\n\n if (promptObject.manifest.kwargs?.metadata === undefined) {\n promptObject.manifest.kwargs = {\n ...promptObject.manifest.kwargs,\n metadata: {},\n };\n }\n\n promptObject.manifest.kwargs.metadata = {\n ...promptObject.manifest.kwargs.metadata,\n lc_hub_owner: promptObject.owner,\n lc_hub_repo: promptObject.repo,\n lc_hub_commit_hash: promptObject.commit_hash,\n };\n\n // Some nested mustache prompts have improperly parsed variables that include a dot.\n if (promptObject.manifest.kwargs.template_format === \"mustache\") {\n const stripDotNotation = (varName: string) => varName.split(\".\")[0];\n\n const { input_variables } = promptObject.manifest.kwargs;\n if (Array.isArray(input_variables)) {\n promptObject.manifest.kwargs.input_variables =\n input_variables.map(stripDotNotation);\n }\n\n const { messages } = promptObject.manifest.kwargs;\n if (Array.isArray(messages)) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n promptObject.manifest.kwargs.messages = messages.map((message: any) => {\n const nestedVars = message?.kwargs?.prompt?.kwargs?.input_variables;\n if (Array.isArray(nestedVars)) {\n message.kwargs.prompt.kwargs.input_variables =\n nestedVars.map(stripDotNotation);\n }\n return message;\n });\n }\n }\n return promptObject;\n}\n\nexport function generateModelImportMap(\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const modelImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let importMapKey;\n if (modelLcName === \"ChatOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatAnthropic\") {\n importMapKey = \"chat_models__anthropic\";\n } else if (modelLcName === \"ChatAzureOpenAI\") {\n importMapKey = \"chat_models__openai\";\n } else if (modelLcName === \"ChatVertexAI\") {\n importMapKey = \"chat_models__vertexai\";\n } else if (modelLcName === \"ChatGoogleGenerativeAI\") {\n importMapKey = \"chat_models__google_genai\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n importMapKey = \"chat_models__chat_bedrock_converse\";\n } else if (modelLcName === \"ChatMistral\") {\n importMapKey = \"chat_models__mistralai\";\n } else if (modelLcName === \"ChatFireworks\") {\n importMapKey = \"chat_models__fireworks\";\n } else if (modelLcName === \"ChatGroq\") {\n importMapKey = \"chat_models__groq\";\n } else {\n throw new Error(\"Received unsupported model class when pulling prompt.\");\n }\n modelImportMap[importMapKey] = {\n ...modelImportMap[importMapKey],\n [modelLcName]: modelClass,\n };\n }\n return modelImportMap;\n}\n\nexport function generateOptionalImportMap(\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel\n) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const optionalImportMap: Record<string, any> = {};\n if (modelClass !== undefined) {\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n const modelLcName = (modelClass as any)?.lc_name();\n let optionalImportMapKey;\n if (modelLcName === \"ChatGoogleGenerativeAI\") {\n optionalImportMapKey = \"langchain_google_genai/chat_models\";\n } else if (modelLcName === \"ChatBedrockConverse\") {\n optionalImportMapKey = \"langchain_aws/chat_models\";\n } else if (modelLcName === \"ChatGroq\") {\n optionalImportMapKey = \"langchain_groq/chat_models\";\n }\n if (optionalImportMapKey !== undefined) {\n optionalImportMap[optionalImportMapKey] = {\n [modelLcName]: modelClass,\n };\n }\n }\n return optionalImportMap;\n}\n\nexport function bindOutputSchema<T extends Runnable>(loadedSequence: T) {\n if (\n \"first\" in loadedSequence &&\n loadedSequence.first !== null &&\n typeof loadedSequence.first === \"object\" &&\n \"schema\" in loadedSequence.first &&\n \"last\" in loadedSequence &&\n loadedSequence.last !== null &&\n typeof loadedSequence.last === \"object\"\n ) {\n if (\n \"bound\" in loadedSequence.last &&\n loadedSequence.last.bound !== null &&\n typeof loadedSequence.last.bound === \"object\" &&\n \"withStructuredOutput\" in loadedSequence.last.bound &&\n typeof loadedSequence.last.bound.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last.bound =\n loadedSequence.last.bound.withStructuredOutput(\n loadedSequence.first.schema\n );\n } else if (\n \"withStructuredOutput\" in loadedSequence.last &&\n typeof loadedSequence.last.withStructuredOutput === \"function\"\n ) {\n loadedSequence.last = loadedSequence.last.withStructuredOutput(\n loadedSequence.first.schema\n );\n }\n }\n return loadedSequence;\n}\n\n/**\n * Dynamically load the LangSmith client.\n * @returns The LangSmith client.\n */\nasync function loadLangSmith(): Promise<new (config?: ClientConfig) => Client> {\n try {\n const { Client } = await import(\"langsmith\");\n return Client;\n } catch (error) {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n const errorMessage = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Error loading \"langsmith\" package, install it via \\`npm install langsmith\\` before you use this function.\\nError: ${errorMessage}`\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["basePull","bindOutputSchema","load","generateOptionalImportMap","generateModelImportMap"],"sources":["../../src/hub/index.ts"],"sourcesContent":["import { Runnable } from \"@langchain/core/runnables\";\nimport type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { load } from \"../load/index.js\";\nimport {\n basePush,\n basePull,\n generateModelImportMap,\n generateOptionalImportMap,\n bindOutputSchema,\n} from \"./base.js\";\n\nexport { basePush as push };\n\n/**\n * Pull a prompt from the hub.\n *\n * @param ownerRepoCommit The name of the repo containing the prompt, as well as an optional commit hash separated by a slash.\n * @param options.apiKey LangSmith API key to use when pulling the prompt\n * @param options.apiUrl LangSmith API URL to use when pulling the prompt\n * @param options.includeModel Whether to also instantiate and attach a model instance to the prompt,\n * if the prompt has associated model metadata. If set to true, invoking the resulting pulled prompt will\n * also invoke the instantiated model. For non-OpenAI models, you must also set \"modelClass\" to the\n * correct class of the model.\n * @param options.modelClass If includeModel is true, the class of the model to instantiate. Required\n * for non-OpenAI models. If you are running in Node or another environment that supports dynamic imports,\n * you may instead import this function from \"langchain/hub/node\" and pass \"includeModel: true\" instead\n * of specifying this parameter.\n * @param options.secrets A map of secrets to use when loading, e.g.\n * {'OPENAI_API_KEY': 'sk-...'}`.\n * If a secret is not found in the map, it will be loaded from the\n * environment if `secrets_from_env` is `True`. Should only be needed when\n * `includeModel` is `true`.\n * @param options.secretsFromEnv Whether to load secrets from environment variables.\n * Use with caution and only with trusted prompts.\n * @returns\n */\nexport async function pull<T extends Runnable>(\n ownerRepoCommit: string,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n includeModel?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel;\n secrets?: Record<string, string>;\n secretsFromEnv?: boolean;\n }\n) {\n const promptObject = await basePull(ownerRepoCommit, options);\n try {\n const loadedPrompt = await load<T>(\n JSON.stringify(promptObject.manifest),\n options?.secrets,\n generateOptionalImportMap(options?.modelClass),\n generateModelImportMap(options?.modelClass),\n options?.secretsFromEnv\n );\n return bindOutputSchema(loadedPrompt);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if (options?.includeModel) {\n throw new Error(\n [\n e.message,\n \"\",\n `To load prompts with an associated non-OpenAI model, you must use the \"langchain/hub/node\" entrypoint, or pass a \"modelClass\" parameter like this:`,\n \"\",\n \"```\",\n `import { pull } from \"langchain/hub\";`,\n `import { ChatAnthropic } from \"@langchain/anthropic\";`,\n \"\",\n `const prompt = await pull(\"my-prompt\", {`,\n ` includeModel: true,`,\n ` modelClass: ChatAnthropic,`,\n `});`,\n \"```\",\n ].join(\"\\n\")\n );\n } else {\n throw e;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,eAAsB,KACpB,iBACA,SASA;CACA,MAAM,eAAe,MAAMA,aAAAA,SAAS,iBAAiB,QAAQ;AAC7D,KAAI;AAQF,SAAOC,aAAAA,iBAPc,MAAMC,mBAAAA,KACzB,KAAK,UAAU,aAAa,SAAS,EACrC,SAAS,SACTC,aAAAA,0BAA0B,SAAS,WAAW,EAC9CC,aAAAA,uBAAuB,SAAS,WAAW,EAC3C,SAAS,eACV,CACoC;UAE9B,GAAQ;AACf,MAAI,SAAS,aACX,OAAM,IAAI,MACR;GACE,EAAE;GACF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,KAAK,KAAK,CACb;MAED,OAAM"}
1
+ {"version":3,"file":"index.cjs","names":["basePull","bindOutputSchema","load","generateOptionalImportMap","generateModelImportMap"],"sources":["../../src/hub/index.ts"],"sourcesContent":["import { Runnable } from \"@langchain/core/runnables\";\nimport type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { load } from \"../load/index.js\";\nimport {\n basePush,\n basePull,\n generateModelImportMap,\n generateOptionalImportMap,\n bindOutputSchema,\n} from \"./base.js\";\n\nexport { basePush as push };\n\n/**\n * Pull a prompt from the hub.\n *\n * @param ownerRepoCommit The name of the repo containing the prompt, as well as an optional commit hash separated by a slash.\n * @param options.apiKey LangSmith API key to use when pulling the prompt\n * @param options.apiUrl LangSmith API URL to use when pulling the prompt\n * @param options.includeModel Whether to also instantiate and attach a model instance to the prompt,\n * if the prompt has associated model metadata. If set to true, invoking the resulting pulled prompt will\n * also invoke the instantiated model. For non-OpenAI models, you must also set \"modelClass\" to the\n * correct class of the model.\n * @param options.modelClass If includeModel is true, the class of the model to instantiate. Required\n * for non-OpenAI models. If you are running in Node or another environment that supports dynamic imports,\n * you may instead import this function from \"langchain/hub/node\" and pass \"includeModel: true\" instead\n * of specifying this parameter.\n * @param options.secrets A map of secrets to use when loading, e.g.\n * {'OPENAI_API_KEY': 'sk-...'}`.\n * If a secret is not found in the map, it will be loaded from the\n * environment if `secrets_from_env` is `True`. Should only be needed when\n * `includeModel` is `true`.\n * @param options.secretsFromEnv Whether to load secrets from environment variables.\n * Use with caution and only with trusted prompts.\n * @returns\n */\nexport async function pull<T extends Runnable>(\n ownerRepoCommit: string,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n includeModel?: boolean;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel;\n secrets?: Record<string, string>;\n secretsFromEnv?: boolean;\n }\n) {\n const promptObject = await basePull(ownerRepoCommit, options);\n try {\n const loadedPrompt = await load<T>(\n JSON.stringify(promptObject.manifest),\n options?.secrets,\n generateOptionalImportMap(options?.modelClass),\n generateModelImportMap(options?.modelClass),\n options?.secretsFromEnv\n );\n return bindOutputSchema(loadedPrompt);\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if (options?.includeModel) {\n throw new Error(\n [\n e.message,\n \"\",\n `To load prompts with an associated non-OpenAI model, you must use the \"langchain/hub/node\" entrypoint, or pass a \"modelClass\" parameter like this:`,\n \"\",\n \"```\",\n `import { pull } from \"langchain/hub\";`,\n `import { ChatAnthropic } from \"@langchain/anthropic\";`,\n \"\",\n `const prompt = await pull(\"my-prompt\", {`,\n ` includeModel: true,`,\n ` modelClass: ChatAnthropic,`,\n `});`,\n \"```\",\n ].join(\"\\n\")\n );\n } else {\n throw e;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,eAAsB,KACpB,iBACA,SASA;CACA,MAAM,eAAe,MAAMA,aAAAA,SAAS,iBAAiB,QAAQ;AAC7D,KAAI;AAQF,SAAOC,aAAAA,iBAPc,MAAMC,mBAAAA,KACzB,KAAK,UAAU,aAAa,SAAS,EACrC,SAAS,SACTC,aAAAA,0BAA0B,SAAS,WAAW,EAC9CC,aAAAA,uBAAuB,SAAS,WAAW,EAC3C,SAAS,eACV,CACoC;UAE9B,GAAQ;AACf,MAAI,SAAS,aACX,OAAM,IAAI,MACR;GACE,EAAE;GACF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,KAAK,KAAK,CACb;MAED,OAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/hub/index.ts"],"sourcesContent":["import { Runnable } from \"@langchain/core/runnables\";\nimport type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { load } from \"../load/index.js\";\nimport {\n basePush,\n basePull,\n generateModelImportMap,\n generateOptionalImportMap,\n bindOutputSchema,\n} from \"./base.js\";\n\nexport { basePush as push };\n\n/**\n * Pull a prompt from the hub.\n *\n * @param ownerRepoCommit The name of the repo containing the prompt, as well as an optional commit hash separated by a slash.\n * @param options.apiKey LangSmith API key to use when pulling the prompt\n * @param options.apiUrl LangSmith API URL to use when pulling the prompt\n * @param options.includeModel Whether to also instantiate and attach a model instance to the prompt,\n * if the prompt has associated model metadata. If set to true, invoking the resulting pulled prompt will\n * also invoke the instantiated model. For non-OpenAI models, you must also set \"modelClass\" to the\n * correct class of the model.\n * @param options.modelClass If includeModel is true, the class of the model to instantiate. Required\n * for non-OpenAI models. If you are running in Node or another environment that supports dynamic imports,\n * you may instead import this function from \"langchain/hub/node\" and pass \"includeModel: true\" instead\n * of specifying this parameter.\n * @param options.secrets A map of secrets to use when loading, e.g.\n * {'OPENAI_API_KEY': 'sk-...'}`.\n * If a secret is not found in the map, it will be loaded from the\n * environment if `secrets_from_env` is `True`. Should only be needed when\n * `includeModel` is `true`.\n * @param options.secretsFromEnv Whether to load secrets from environment variables.\n * Use with caution and only with trusted prompts.\n * @returns\n */\nexport async function pull<T extends Runnable>(\n ownerRepoCommit: string,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n includeModel?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel;\n secrets?: Record<string, string>;\n secretsFromEnv?: boolean;\n }\n) {\n const promptObject = await basePull(ownerRepoCommit, options);\n try {\n const loadedPrompt = await load<T>(\n JSON.stringify(promptObject.manifest),\n options?.secrets,\n generateOptionalImportMap(options?.modelClass),\n generateModelImportMap(options?.modelClass),\n options?.secretsFromEnv\n );\n return bindOutputSchema(loadedPrompt);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if (options?.includeModel) {\n throw new Error(\n [\n e.message,\n \"\",\n `To load prompts with an associated non-OpenAI model, you must use the \"langchain/hub/node\" entrypoint, or pass a \"modelClass\" parameter like this:`,\n \"\",\n \"```\",\n `import { pull } from \"langchain/hub\";`,\n `import { ChatAnthropic } from \"@langchain/anthropic\";`,\n \"\",\n `const prompt = await pull(\"my-prompt\", {`,\n ` includeModel: true,`,\n ` modelClass: ChatAnthropic,`,\n `});`,\n \"```\",\n ].join(\"\\n\")\n );\n } else {\n throw e;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,eAAsB,KACpB,iBACA,SASA;CACA,MAAM,eAAe,MAAM,SAAS,iBAAiB,QAAQ;AAC7D,KAAI;AAQF,SAAO,iBAPc,MAAM,KACzB,KAAK,UAAU,aAAa,SAAS,EACrC,SAAS,SACT,0BAA0B,SAAS,WAAW,EAC9C,uBAAuB,SAAS,WAAW,EAC3C,SAAS,eACV,CACoC;UAE9B,GAAQ;AACf,MAAI,SAAS,aACX,OAAM,IAAI,MACR;GACE,EAAE;GACF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,KAAK,KAAK,CACb;MAED,OAAM"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/hub/index.ts"],"sourcesContent":["import { Runnable } from \"@langchain/core/runnables\";\nimport type { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { load } from \"../load/index.js\";\nimport {\n basePush,\n basePull,\n generateModelImportMap,\n generateOptionalImportMap,\n bindOutputSchema,\n} from \"./base.js\";\n\nexport { basePush as push };\n\n/**\n * Pull a prompt from the hub.\n *\n * @param ownerRepoCommit The name of the repo containing the prompt, as well as an optional commit hash separated by a slash.\n * @param options.apiKey LangSmith API key to use when pulling the prompt\n * @param options.apiUrl LangSmith API URL to use when pulling the prompt\n * @param options.includeModel Whether to also instantiate and attach a model instance to the prompt,\n * if the prompt has associated model metadata. If set to true, invoking the resulting pulled prompt will\n * also invoke the instantiated model. For non-OpenAI models, you must also set \"modelClass\" to the\n * correct class of the model.\n * @param options.modelClass If includeModel is true, the class of the model to instantiate. Required\n * for non-OpenAI models. If you are running in Node or another environment that supports dynamic imports,\n * you may instead import this function from \"langchain/hub/node\" and pass \"includeModel: true\" instead\n * of specifying this parameter.\n * @param options.secrets A map of secrets to use when loading, e.g.\n * {'OPENAI_API_KEY': 'sk-...'}`.\n * If a secret is not found in the map, it will be loaded from the\n * environment if `secrets_from_env` is `True`. Should only be needed when\n * `includeModel` is `true`.\n * @param options.secretsFromEnv Whether to load secrets from environment variables.\n * Use with caution and only with trusted prompts.\n * @returns\n */\nexport async function pull<T extends Runnable>(\n ownerRepoCommit: string,\n options?: {\n apiKey?: string;\n apiUrl?: string;\n includeModel?: boolean;\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n modelClass?: new (...args: any[]) => BaseLanguageModel;\n secrets?: Record<string, string>;\n secretsFromEnv?: boolean;\n }\n) {\n const promptObject = await basePull(ownerRepoCommit, options);\n try {\n const loadedPrompt = await load<T>(\n JSON.stringify(promptObject.manifest),\n options?.secrets,\n generateOptionalImportMap(options?.modelClass),\n generateModelImportMap(options?.modelClass),\n options?.secretsFromEnv\n );\n return bindOutputSchema(loadedPrompt);\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e: any) {\n if (options?.includeModel) {\n throw new Error(\n [\n e.message,\n \"\",\n `To load prompts with an associated non-OpenAI model, you must use the \"langchain/hub/node\" entrypoint, or pass a \"modelClass\" parameter like this:`,\n \"\",\n \"```\",\n `import { pull } from \"langchain/hub\";`,\n `import { ChatAnthropic } from \"@langchain/anthropic\";`,\n \"\",\n `const prompt = await pull(\"my-prompt\", {`,\n ` includeModel: true,`,\n ` modelClass: ChatAnthropic,`,\n `});`,\n \"```\",\n ].join(\"\\n\")\n );\n } else {\n throw e;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,eAAsB,KACpB,iBACA,SASA;CACA,MAAM,eAAe,MAAM,SAAS,iBAAiB,QAAQ;AAC7D,KAAI;AAQF,SAAO,iBAPc,MAAM,KACzB,KAAK,UAAU,aAAa,SAAS,EACrC,SAAS,SACT,0BAA0B,SAAS,WAAW,EAC9C,uBAAuB,SAAS,WAAW,EAC3C,SAAS,eACV,CACoC;UAE9B,GAAQ;AACf,MAAI,SAAS,aACX,OAAM,IAAI,MACR;GACE,EAAE;GACF;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,KAAK,KAAK,CACb;MAED,OAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,KACpB,MAEA,aAAkC,EAAE,EAEpC,qBAA8D,EAAE,EAEhE,uBAA4C,EAAE,EAC9C,gBACY;AACZ,SAAA,GAAA,qBAAA,MAAgB,MAAM;EACpB;EACA;EACA,2BAAA,yBAAA;EACA,WAAW;GAAE,GAAGA,mBAAAA;GAAW,GAAG;GAAsB;EACpD;EACD,CAAC"}
1
+ {"version":3,"file":"index.cjs","names":["importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,KACpB,MAEA,aAAkC,EAAE,EAEpC,qBAA8D,EAAE,EAEhE,uBAA4C,EAAE,EAC9C,gBACY;AACZ,SAAA,GAAA,qBAAA,MAAgB,MAAM;EACpB;EACA;EACA,2BAAA,yBAAA;EACA,WAAW;GAAE,GAAGA,mBAAAA;GAAW,GAAG;GAAsB;EACpD;EACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["coreLoad","importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,KACpB,MAEA,aAAkC,EAAE,EAEpC,qBAA8D,EAAE,EAEhE,uBAA4C,EAAE,EAC9C,gBACY;AACZ,QAAOA,OAAS,MAAM;EACpB;EACA;EACA;EACA,WAAW;GAAE,GAAGC;GAAW,GAAG;GAAsB;EACpD;EACD,CAAC"}
1
+ {"version":3,"file":"index.js","names":["coreLoad","importMap"],"sources":["../../src/load/index.ts"],"sourcesContent":["import { load as coreLoad } from \"@langchain/core/load\";\nimport { optionalImportEntrypoints } from \"./import_constants.js\";\nimport * as importMap from \"./import_map.js\";\nimport { OptionalImportMap } from \"./import_type.js\";\n\n/**\n * Load a LangChain module from a serialized text representation.\n * NOTE: This functionality is currently in beta.\n * Loaded classes may change independently of semver.\n *\n * **WARNING — insecure deserialization risk.** This function instantiates\n * classes and invokes constructors based on the contents of `text`. Never\n * call this on untrusted or user-supplied input. Only deserialize data that\n * originates from a trusted source you control.\n *\n * See `@langchain/core/load` {@link LoadOptions} for detailed security\n * guidance on `secretsFromEnv`, `secretsMap`, and import maps.\n *\n * @param text Serialized text representation of the module.\n * @param secretsMap\n * @param optionalImportsMap\n * @returns A loaded instance of a LangChain module.\n */\nexport async function load<T>(\n text: string,\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n secretsMap: Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n optionalImportsMap: OptionalImportMap & Record<string, any> = {},\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n additionalImportsMap: Record<string, any> = {},\n secretsFromEnv?: boolean\n): Promise<T> {\n return coreLoad(text, {\n secretsMap,\n optionalImportsMap,\n optionalImportEntrypoints,\n importMap: { ...importMap, ...additionalImportsMap },\n secretsFromEnv,\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,eAAsB,KACpB,MAEA,aAAkC,EAAE,EAEpC,qBAA8D,EAAE,EAEhE,uBAA4C,EAAE,EAC9C,gBACY;AACZ,QAAOA,OAAS,MAAM;EACpB;EACA;EACA;EACA,WAAW;GAAE,GAAGC;GAAW,GAAG;GAAsB;EACpD;EACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"combining.cjs","names":["BaseOutputParser"],"sources":["../../src/output_parsers/combining.ts"],"sourcesContent":["import { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BaseOutputParser } from \"@langchain/core/output_parsers\";\n\n/**\n * Type for the combined output of the CombiningOutputParser class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type CombinedOutput = Record<string, any>;\n\n/**\n * Interface for the fields required by the CombiningOutputParser class.\n */\nexport interface CombiningOutputParserFields {\n parsers: BaseOutputParser[];\n}\n\n/**\n * Class to combine multiple output parsers\n * @augments BaseOutputParser\n */\nexport class CombiningOutputParser extends BaseOutputParser<object> {\n static lc_name() {\n return \"CombiningOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"combining\"];\n\n lc_serializable = true;\n\n parsers: BaseOutputParser[];\n\n outputDelimiter = \"-----\";\n\n constructor(fields: CombiningOutputParserFields);\n\n constructor(...parsers: BaseOutputParser[]);\n\n constructor(\n fields: BaseOutputParser | CombiningOutputParserFields,\n ...parsers: BaseOutputParser[]\n ) {\n if (parsers.length > 0 || !(\"parsers\" in fields)) {\n // eslint-disable-next-line no-param-reassign\n fields = {\n parsers: [fields as BaseOutputParser, ...parsers],\n };\n }\n super(fields);\n this.parsers = fields.parsers;\n }\n\n /**\n * Method to parse an input string using the parsers in the parsers array.\n * The parsed outputs are combined into a single object and returned.\n * @param input The input string to parse.\n * @param callbacks Optional Callbacks object.\n * @returns A Promise that resolves to a CombinedOutput object.\n */\n async parse(input: string, callbacks?: Callbacks): Promise<CombinedOutput> {\n const inputs = input\n .trim()\n .split(\n new RegExp(`${this.outputDelimiter}Output \\\\d+${this.outputDelimiter}`)\n )\n .slice(1);\n const ret: CombinedOutput = {};\n for (const [i, p] of this.parsers.entries()) {\n let parsed;\n try {\n let extracted = inputs[i].includes(\"```\")\n ? inputs[i].trim().split(/```/)[1]\n : inputs[i].trim();\n if (extracted.endsWith(this.outputDelimiter)) {\n extracted = extracted.slice(0, -this.outputDelimiter.length);\n }\n parsed = await p.parse(extracted, callbacks);\n } catch {\n parsed = await p.parse(input.trim(), callbacks);\n }\n Object.assign(ret, parsed);\n }\n return ret;\n }\n\n /**\n * Method to get instructions on how to format the LLM output. The\n * instructions are based on the parsers array and the outputDelimiter.\n * @returns A string with format instructions.\n */\n getFormatInstructions(): string {\n return `${[\n `Return the following ${this.parsers.length} outputs, each formatted as described below. Include the delimiter characters \"${this.outputDelimiter}\" in your response:`,\n ...this.parsers.map(\n (p, i) =>\n `${this.outputDelimiter}Output ${i + 1}${this.outputDelimiter}\\n${p\n .getFormatInstructions()\n .trim()}\\n${this.outputDelimiter}`\n ),\n ].join(\"\\n\\n\")}\\n`;\n }\n}\n"],"mappings":";;;;;;;AAoBA,IAAa,wBAAb,cAA2CA,+BAAAA,iBAAyB;CAClE,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAY;CAE3D,kBAAkB;CAElB;CAEA,kBAAkB;CAMlB,YACE,QACA,GAAG,SACH;AACA,MAAI,QAAQ,SAAS,KAAK,EAAE,aAAa,QAEvC,UAAS,EACP,SAAS,CAAC,QAA4B,GAAG,QAAQ,EAClD;AAEH,QAAM,OAAO;AACb,OAAK,UAAU,OAAO;;;;;;;;;CAUxB,MAAM,MAAM,OAAe,WAAgD;EACzE,MAAM,SAAS,MACZ,MAAM,CACN,MACC,IAAI,OAAO,GAAG,KAAK,gBAAgB,aAAa,KAAK,kBAAkB,CACxE,CACA,MAAM,EAAE;EACX,MAAM,MAAsB,EAAE;AAC9B,OAAK,MAAM,CAAC,GAAG,MAAM,KAAK,QAAQ,SAAS,EAAE;GAC3C,IAAI;AACJ,OAAI;IACF,IAAI,YAAY,OAAO,GAAG,SAAS,MAAM,GACrC,OAAO,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,KAC9B,OAAO,GAAG,MAAM;AACpB,QAAI,UAAU,SAAS,KAAK,gBAAgB,CAC1C,aAAY,UAAU,MAAM,GAAG,CAAC,KAAK,gBAAgB,OAAO;AAE9D,aAAS,MAAM,EAAE,MAAM,WAAW,UAAU;WACtC;AACN,aAAS,MAAM,EAAE,MAAM,MAAM,MAAM,EAAE,UAAU;;AAEjD,UAAO,OAAO,KAAK,OAAO;;AAE5B,SAAO;;;;;;;CAQT,wBAAgC;AAC9B,SAAO,GAAG,CACR,wBAAwB,KAAK,QAAQ,OAAO,iFAAiF,KAAK,gBAAgB,sBAClJ,GAAG,KAAK,QAAQ,KACb,GAAG,MACF,GAAG,KAAK,gBAAgB,SAAS,IAAI,IAAI,KAAK,gBAAgB,IAAI,EAC/D,uBAAuB,CACvB,MAAM,CAAC,IAAI,KAAK,kBACtB,CACF,CAAC,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"combining.cjs","names":["BaseOutputParser"],"sources":["../../src/output_parsers/combining.ts"],"sourcesContent":["import { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BaseOutputParser } from \"@langchain/core/output_parsers\";\n\n/**\n * Type for the combined output of the CombiningOutputParser class.\n */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport type CombinedOutput = Record<string, any>;\n\n/**\n * Interface for the fields required by the CombiningOutputParser class.\n */\nexport interface CombiningOutputParserFields {\n parsers: BaseOutputParser[];\n}\n\n/**\n * Class to combine multiple output parsers\n * @augments BaseOutputParser\n */\nexport class CombiningOutputParser extends BaseOutputParser<object> {\n static lc_name() {\n return \"CombiningOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"combining\"];\n\n lc_serializable = true;\n\n parsers: BaseOutputParser[];\n\n outputDelimiter = \"-----\";\n\n constructor(fields: CombiningOutputParserFields);\n\n constructor(...parsers: BaseOutputParser[]);\n\n constructor(\n fields: BaseOutputParser | CombiningOutputParserFields,\n ...parsers: BaseOutputParser[]\n ) {\n if (parsers.length > 0 || !(\"parsers\" in fields)) {\n // oxlint-disable-next-line no-param-reassign\n fields = {\n parsers: [fields as BaseOutputParser, ...parsers],\n };\n }\n super(fields);\n this.parsers = fields.parsers;\n }\n\n /**\n * Method to parse an input string using the parsers in the parsers array.\n * The parsed outputs are combined into a single object and returned.\n * @param input The input string to parse.\n * @param callbacks Optional Callbacks object.\n * @returns A Promise that resolves to a CombinedOutput object.\n */\n async parse(input: string, callbacks?: Callbacks): Promise<CombinedOutput> {\n const inputs = input\n .trim()\n .split(\n new RegExp(`${this.outputDelimiter}Output \\\\d+${this.outputDelimiter}`)\n )\n .slice(1);\n const ret: CombinedOutput = {};\n for (const [i, p] of this.parsers.entries()) {\n let parsed;\n try {\n let extracted = inputs[i].includes(\"```\")\n ? inputs[i].trim().split(/```/)[1]\n : inputs[i].trim();\n if (extracted.endsWith(this.outputDelimiter)) {\n extracted = extracted.slice(0, -this.outputDelimiter.length);\n }\n parsed = await p.parse(extracted, callbacks);\n } catch {\n parsed = await p.parse(input.trim(), callbacks);\n }\n Object.assign(ret, parsed);\n }\n return ret;\n }\n\n /**\n * Method to get instructions on how to format the LLM output. The\n * instructions are based on the parsers array and the outputDelimiter.\n * @returns A string with format instructions.\n */\n getFormatInstructions(): string {\n return `${[\n `Return the following ${this.parsers.length} outputs, each formatted as described below. Include the delimiter characters \"${this.outputDelimiter}\" in your response:`,\n ...this.parsers.map(\n (p, i) =>\n `${this.outputDelimiter}Output ${i + 1}${this.outputDelimiter}\\n${p\n .getFormatInstructions()\n .trim()}\\n${this.outputDelimiter}`\n ),\n ].join(\"\\n\\n\")}\\n`;\n }\n}\n"],"mappings":";;;;;;;AAoBA,IAAa,wBAAb,cAA2CA,+BAAAA,iBAAyB;CAClE,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAY;CAE3D,kBAAkB;CAElB;CAEA,kBAAkB;CAMlB,YACE,QACA,GAAG,SACH;AACA,MAAI,QAAQ,SAAS,KAAK,EAAE,aAAa,QAEvC,UAAS,EACP,SAAS,CAAC,QAA4B,GAAG,QAAQ,EAClD;AAEH,QAAM,OAAO;AACb,OAAK,UAAU,OAAO;;;;;;;;;CAUxB,MAAM,MAAM,OAAe,WAAgD;EACzE,MAAM,SAAS,MACZ,MAAM,CACN,MACC,IAAI,OAAO,GAAG,KAAK,gBAAgB,aAAa,KAAK,kBAAkB,CACxE,CACA,MAAM,EAAE;EACX,MAAM,MAAsB,EAAE;AAC9B,OAAK,MAAM,CAAC,GAAG,MAAM,KAAK,QAAQ,SAAS,EAAE;GAC3C,IAAI;AACJ,OAAI;IACF,IAAI,YAAY,OAAO,GAAG,SAAS,MAAM,GACrC,OAAO,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,KAC9B,OAAO,GAAG,MAAM;AACpB,QAAI,UAAU,SAAS,KAAK,gBAAgB,CAC1C,aAAY,UAAU,MAAM,GAAG,CAAC,KAAK,gBAAgB,OAAO;AAE9D,aAAS,MAAM,EAAE,MAAM,WAAW,UAAU;WACtC;AACN,aAAS,MAAM,EAAE,MAAM,MAAM,MAAM,EAAE,UAAU;;AAEjD,UAAO,OAAO,KAAK,OAAO;;AAE5B,SAAO;;;;;;;CAQT,wBAAgC;AAC9B,SAAO,GAAG,CACR,wBAAwB,KAAK,QAAQ,OAAO,iFAAiF,KAAK,gBAAgB,sBAClJ,GAAG,KAAK,QAAQ,KACb,GAAG,MACF,GAAG,KAAK,gBAAgB,SAAS,IAAI,IAAI,KAAK,gBAAgB,IAAI,EAC/D,uBAAuB,CACvB,MAAM,CAAC,IAAI,KAAK,kBACtB,CACF,CAAC,KAAK,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"combining.js","names":[],"sources":["../../src/output_parsers/combining.ts"],"sourcesContent":["import { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BaseOutputParser } from \"@langchain/core/output_parsers\";\n\n/**\n * Type for the combined output of the CombiningOutputParser class.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type CombinedOutput = Record<string, any>;\n\n/**\n * Interface for the fields required by the CombiningOutputParser class.\n */\nexport interface CombiningOutputParserFields {\n parsers: BaseOutputParser[];\n}\n\n/**\n * Class to combine multiple output parsers\n * @augments BaseOutputParser\n */\nexport class CombiningOutputParser extends BaseOutputParser<object> {\n static lc_name() {\n return \"CombiningOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"combining\"];\n\n lc_serializable = true;\n\n parsers: BaseOutputParser[];\n\n outputDelimiter = \"-----\";\n\n constructor(fields: CombiningOutputParserFields);\n\n constructor(...parsers: BaseOutputParser[]);\n\n constructor(\n fields: BaseOutputParser | CombiningOutputParserFields,\n ...parsers: BaseOutputParser[]\n ) {\n if (parsers.length > 0 || !(\"parsers\" in fields)) {\n // eslint-disable-next-line no-param-reassign\n fields = {\n parsers: [fields as BaseOutputParser, ...parsers],\n };\n }\n super(fields);\n this.parsers = fields.parsers;\n }\n\n /**\n * Method to parse an input string using the parsers in the parsers array.\n * The parsed outputs are combined into a single object and returned.\n * @param input The input string to parse.\n * @param callbacks Optional Callbacks object.\n * @returns A Promise that resolves to a CombinedOutput object.\n */\n async parse(input: string, callbacks?: Callbacks): Promise<CombinedOutput> {\n const inputs = input\n .trim()\n .split(\n new RegExp(`${this.outputDelimiter}Output \\\\d+${this.outputDelimiter}`)\n )\n .slice(1);\n const ret: CombinedOutput = {};\n for (const [i, p] of this.parsers.entries()) {\n let parsed;\n try {\n let extracted = inputs[i].includes(\"```\")\n ? inputs[i].trim().split(/```/)[1]\n : inputs[i].trim();\n if (extracted.endsWith(this.outputDelimiter)) {\n extracted = extracted.slice(0, -this.outputDelimiter.length);\n }\n parsed = await p.parse(extracted, callbacks);\n } catch {\n parsed = await p.parse(input.trim(), callbacks);\n }\n Object.assign(ret, parsed);\n }\n return ret;\n }\n\n /**\n * Method to get instructions on how to format the LLM output. The\n * instructions are based on the parsers array and the outputDelimiter.\n * @returns A string with format instructions.\n */\n getFormatInstructions(): string {\n return `${[\n `Return the following ${this.parsers.length} outputs, each formatted as described below. Include the delimiter characters \"${this.outputDelimiter}\" in your response:`,\n ...this.parsers.map(\n (p, i) =>\n `${this.outputDelimiter}Output ${i + 1}${this.outputDelimiter}\\n${p\n .getFormatInstructions()\n .trim()}\\n${this.outputDelimiter}`\n ),\n ].join(\"\\n\\n\")}\\n`;\n }\n}\n"],"mappings":";;;;;;AAoBA,IAAa,wBAAb,cAA2C,iBAAyB;CAClE,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAY;CAE3D,kBAAkB;CAElB;CAEA,kBAAkB;CAMlB,YACE,QACA,GAAG,SACH;AACA,MAAI,QAAQ,SAAS,KAAK,EAAE,aAAa,QAEvC,UAAS,EACP,SAAS,CAAC,QAA4B,GAAG,QAAQ,EAClD;AAEH,QAAM,OAAO;AACb,OAAK,UAAU,OAAO;;;;;;;;;CAUxB,MAAM,MAAM,OAAe,WAAgD;EACzE,MAAM,SAAS,MACZ,MAAM,CACN,MACC,IAAI,OAAO,GAAG,KAAK,gBAAgB,aAAa,KAAK,kBAAkB,CACxE,CACA,MAAM,EAAE;EACX,MAAM,MAAsB,EAAE;AAC9B,OAAK,MAAM,CAAC,GAAG,MAAM,KAAK,QAAQ,SAAS,EAAE;GAC3C,IAAI;AACJ,OAAI;IACF,IAAI,YAAY,OAAO,GAAG,SAAS,MAAM,GACrC,OAAO,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,KAC9B,OAAO,GAAG,MAAM;AACpB,QAAI,UAAU,SAAS,KAAK,gBAAgB,CAC1C,aAAY,UAAU,MAAM,GAAG,CAAC,KAAK,gBAAgB,OAAO;AAE9D,aAAS,MAAM,EAAE,MAAM,WAAW,UAAU;WACtC;AACN,aAAS,MAAM,EAAE,MAAM,MAAM,MAAM,EAAE,UAAU;;AAEjD,UAAO,OAAO,KAAK,OAAO;;AAE5B,SAAO;;;;;;;CAQT,wBAAgC;AAC9B,SAAO,GAAG,CACR,wBAAwB,KAAK,QAAQ,OAAO,iFAAiF,KAAK,gBAAgB,sBAClJ,GAAG,KAAK,QAAQ,KACb,GAAG,MACF,GAAG,KAAK,gBAAgB,SAAS,IAAI,IAAI,KAAK,gBAAgB,IAAI,EAC/D,uBAAuB,CACvB,MAAM,CAAC,IAAI,KAAK,kBACtB,CACF,CAAC,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"combining.js","names":[],"sources":["../../src/output_parsers/combining.ts"],"sourcesContent":["import { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport { BaseOutputParser } from \"@langchain/core/output_parsers\";\n\n/**\n * Type for the combined output of the CombiningOutputParser class.\n */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport type CombinedOutput = Record<string, any>;\n\n/**\n * Interface for the fields required by the CombiningOutputParser class.\n */\nexport interface CombiningOutputParserFields {\n parsers: BaseOutputParser[];\n}\n\n/**\n * Class to combine multiple output parsers\n * @augments BaseOutputParser\n */\nexport class CombiningOutputParser extends BaseOutputParser<object> {\n static lc_name() {\n return \"CombiningOutputParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"combining\"];\n\n lc_serializable = true;\n\n parsers: BaseOutputParser[];\n\n outputDelimiter = \"-----\";\n\n constructor(fields: CombiningOutputParserFields);\n\n constructor(...parsers: BaseOutputParser[]);\n\n constructor(\n fields: BaseOutputParser | CombiningOutputParserFields,\n ...parsers: BaseOutputParser[]\n ) {\n if (parsers.length > 0 || !(\"parsers\" in fields)) {\n // oxlint-disable-next-line no-param-reassign\n fields = {\n parsers: [fields as BaseOutputParser, ...parsers],\n };\n }\n super(fields);\n this.parsers = fields.parsers;\n }\n\n /**\n * Method to parse an input string using the parsers in the parsers array.\n * The parsed outputs are combined into a single object and returned.\n * @param input The input string to parse.\n * @param callbacks Optional Callbacks object.\n * @returns A Promise that resolves to a CombinedOutput object.\n */\n async parse(input: string, callbacks?: Callbacks): Promise<CombinedOutput> {\n const inputs = input\n .trim()\n .split(\n new RegExp(`${this.outputDelimiter}Output \\\\d+${this.outputDelimiter}`)\n )\n .slice(1);\n const ret: CombinedOutput = {};\n for (const [i, p] of this.parsers.entries()) {\n let parsed;\n try {\n let extracted = inputs[i].includes(\"```\")\n ? inputs[i].trim().split(/```/)[1]\n : inputs[i].trim();\n if (extracted.endsWith(this.outputDelimiter)) {\n extracted = extracted.slice(0, -this.outputDelimiter.length);\n }\n parsed = await p.parse(extracted, callbacks);\n } catch {\n parsed = await p.parse(input.trim(), callbacks);\n }\n Object.assign(ret, parsed);\n }\n return ret;\n }\n\n /**\n * Method to get instructions on how to format the LLM output. The\n * instructions are based on the parsers array and the outputDelimiter.\n * @returns A string with format instructions.\n */\n getFormatInstructions(): string {\n return `${[\n `Return the following ${this.parsers.length} outputs, each formatted as described below. Include the delimiter characters \"${this.outputDelimiter}\" in your response:`,\n ...this.parsers.map(\n (p, i) =>\n `${this.outputDelimiter}Output ${i + 1}${this.outputDelimiter}\\n${p\n .getFormatInstructions()\n .trim()}\\n${this.outputDelimiter}`\n ),\n ].join(\"\\n\\n\")}\\n`;\n }\n}\n"],"mappings":";;;;;;AAoBA,IAAa,wBAAb,cAA2C,iBAAyB;CAClE,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAY;CAE3D,kBAAkB;CAElB;CAEA,kBAAkB;CAMlB,YACE,QACA,GAAG,SACH;AACA,MAAI,QAAQ,SAAS,KAAK,EAAE,aAAa,QAEvC,UAAS,EACP,SAAS,CAAC,QAA4B,GAAG,QAAQ,EAClD;AAEH,QAAM,OAAO;AACb,OAAK,UAAU,OAAO;;;;;;;;;CAUxB,MAAM,MAAM,OAAe,WAAgD;EACzE,MAAM,SAAS,MACZ,MAAM,CACN,MACC,IAAI,OAAO,GAAG,KAAK,gBAAgB,aAAa,KAAK,kBAAkB,CACxE,CACA,MAAM,EAAE;EACX,MAAM,MAAsB,EAAE;AAC9B,OAAK,MAAM,CAAC,GAAG,MAAM,KAAK,QAAQ,SAAS,EAAE;GAC3C,IAAI;AACJ,OAAI;IACF,IAAI,YAAY,OAAO,GAAG,SAAS,MAAM,GACrC,OAAO,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,KAC9B,OAAO,GAAG,MAAM;AACpB,QAAI,UAAU,SAAS,KAAK,gBAAgB,CAC1C,aAAY,UAAU,MAAM,GAAG,CAAC,KAAK,gBAAgB,OAAO;AAE9D,aAAS,MAAM,EAAE,MAAM,WAAW,UAAU;WACtC;AACN,aAAS,MAAM,EAAE,MAAM,MAAM,MAAM,EAAE,UAAU;;AAEjD,UAAO,OAAO,KAAK,OAAO;;AAE5B,SAAO;;;;;;;CAQT,wBAAgC;AAC9B,SAAO,GAAG,CACR,wBAAwB,KAAK,QAAQ,OAAO,iFAAiF,KAAK,gBAAgB,sBAClJ,GAAG,KAAK,QAAQ,KACb,GAAG,MACF,GAAG,KAAK,gBAAgB,SAAS,IAAI,IAAI,KAAK,gBAAgB,IAAI,EAC/D,uBAAuB,CACvB,MAAM,CAAC,IAAI,KAAK,kBACtB,CACF,CAAC,KAAK,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.cjs","names":["GRAMMAR"],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"sourcesContent":["import { GRAMMAR } from \"./grammar/parser_grammar.js\";\nimport type {\n ExpressionNode,\n Program,\n ExpressionStatement,\n CallExpression,\n StringLiteral,\n NumericLiteral,\n BooleanLiteral,\n Identifier,\n ObjectExpression,\n ArrayExpression,\n PropertyAssignment,\n MemberExpression,\n ParseFunction,\n} from \"../../types/expression-parser.js\";\n\n/**\n * Abstract class for handling nodes in an expression language. Subclasses\n * must implement the `accepts` and `handle` methods.\n */\nexport abstract class NodeHandler {\n constructor(protected parentHandler?: NodeHandler) {}\n\n /**\n * Determines whether the given node is acceptable.\n * @param node The node to be checked.\n * @returns A Promise that resolves to either the node itself or a boolean indicating whether the node is acceptable.\n */\n abstract accepts(node: ExpressionNode): Promise<ExpressionNode | boolean>;\n\n /**\n * Handles the given node. The specifics of how the node is handled are\n * determined by the subclass implementation.\n * @param node The node to be handled.\n * @returns A Promise that resolves to the result of handling the node.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract handle(node: ExpressionNode): Promise<any>;\n}\n\n/**\n * Utility class for parsing Abstract Syntax Trees (ASTs). Contains\n * methods for identifying the type of a given node and a method for\n * importing and generating a parser using the Peggy library.\n */\nexport class ASTParser {\n static astParseInstance: ParseFunction;\n\n /**\n * Imports and generates a parser using the Peggy library.\n * @returns A Promise that resolves to the parser instance.\n */\n static async importASTParser() {\n try {\n if (!ASTParser.astParseInstance) {\n const { default: peggy } = await import(\"peggy\");\n const parser = peggy.generate(GRAMMAR);\n const { parse } = parser;\n ASTParser.astParseInstance = parse as ParseFunction;\n }\n return ASTParser.astParseInstance;\n } catch {\n throw new Error(\n `Failed to import peggy. Please install peggy (i.e. \"npm install peggy\" or \"pnpm install peggy\").`\n );\n }\n }\n\n /**\n * Checks if the given node is a Program node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a Program node.\n */\n static isProgram(node: ExpressionNode): node is Program {\n return node.type === \"Program\";\n }\n\n /**\n * Checks if the given node is an ExpressionStatement node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ExpressionStatement node.\n */\n static isExpressionStatement(\n node: ExpressionNode\n ): node is ExpressionStatement {\n return node.type === \"ExpressionStatement\";\n }\n\n /**\n * Checks if the given node is a CallExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a CallExpression node.\n */\n static isCallExpression(node: ExpressionNode): node is CallExpression {\n return node.type === \"CallExpression\";\n }\n\n /**\n * Checks if the given node is a StringLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a StringLiteral node.\n */\n static isStringLiteral(node: ExpressionNode): node is StringLiteral {\n return node.type === \"StringLiteral\" && typeof node.value === \"string\";\n }\n\n /**\n * Checks if the given node is a NumericLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a NumericLiteral node.\n */\n static isNumericLiteral(node: ExpressionNode): node is NumericLiteral {\n return node.type === \"NumericLiteral\" && typeof node.value === \"number\";\n }\n\n /**\n * Checks if the given node is a BooleanLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a BooleanLiteral node.\n */\n static isBooleanLiteral(node: ExpressionNode): node is BooleanLiteral {\n return node.type === \"BooleanLiteral\" && typeof node.value === \"boolean\";\n }\n\n /**\n * Checks if the given node is an Identifier node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an Identifier node.\n */\n static isIdentifier(node: ExpressionNode): node is Identifier {\n return node.type === \"Identifier\";\n }\n\n /**\n * Checks if the given node is an ObjectExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ObjectExpression node.\n */\n static isObjectExpression(node: ExpressionNode): node is ObjectExpression {\n return node.type === \"ObjectExpression\";\n }\n\n /**\n * Checks if the given node is an ArrayExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ArrayExpression node.\n */\n static isArrayExpression(node: ExpressionNode): node is ArrayExpression {\n return node.type === \"ArrayExpression\";\n }\n\n /**\n * Checks if the given node is a PropertyAssignment node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a PropertyAssignment node.\n */\n static isPropertyAssignment(\n node: ExpressionNode\n ): node is PropertyAssignment {\n return node.type === \"PropertyAssignment\";\n }\n\n /**\n * Checks if the given node is a MemberExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a MemberExpression node.\n */\n static isMemberExpression(node: ExpressionNode): node is MemberExpression {\n return node.type === \"MemberExpression\";\n }\n}\n"],"mappings":";;;;;;AAqBA,IAAsB,cAAtB,MAAkC;CAChC,YAAY,eAAuC;AAA7B,OAAA,gBAAA;;;;;;;;AAwBxB,IAAa,YAAb,MAAa,UAAU;CACrB,OAAO;;;;;CAMP,aAAa,kBAAkB;AAC7B,MAAI;AACF,OAAI,CAAC,UAAU,kBAAkB;IAC/B,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;IAExC,MAAM,EAAE,UADO,MAAM,SAASA,uBAAAA,QAAQ;AAEtC,cAAU,mBAAmB;;AAE/B,UAAO,UAAU;UACX;AACN,SAAM,IAAI,MACR,mGACD;;;;;;;;CASL,OAAO,UAAU,MAAuC;AACtD,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,sBACL,MAC6B;AAC7B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,gBAAgB,MAA6C;AAClE,SAAO,KAAK,SAAS,mBAAmB,OAAO,KAAK,UAAU;;;;;;;CAQhE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,aAAa,MAA0C;AAC5D,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,kBAAkB,MAA+C;AACtE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,qBACL,MAC4B;AAC5B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS"}
1
+ {"version":3,"file":"base.cjs","names":["GRAMMAR"],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"sourcesContent":["import { GRAMMAR } from \"./grammar/parser_grammar.js\";\nimport type {\n ExpressionNode,\n Program,\n ExpressionStatement,\n CallExpression,\n StringLiteral,\n NumericLiteral,\n BooleanLiteral,\n Identifier,\n ObjectExpression,\n ArrayExpression,\n PropertyAssignment,\n MemberExpression,\n ParseFunction,\n} from \"../../types/expression-parser.js\";\n\n/**\n * Abstract class for handling nodes in an expression language. Subclasses\n * must implement the `accepts` and `handle` methods.\n */\nexport abstract class NodeHandler {\n constructor(protected parentHandler?: NodeHandler) {}\n\n /**\n * Determines whether the given node is acceptable.\n * @param node The node to be checked.\n * @returns A Promise that resolves to either the node itself or a boolean indicating whether the node is acceptable.\n */\n abstract accepts(node: ExpressionNode): Promise<ExpressionNode | boolean>;\n\n /**\n * Handles the given node. The specifics of how the node is handled are\n * determined by the subclass implementation.\n * @param node The node to be handled.\n * @returns A Promise that resolves to the result of handling the node.\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n abstract handle(node: ExpressionNode): Promise<any>;\n}\n\n/**\n * Utility class for parsing Abstract Syntax Trees (ASTs). Contains\n * methods for identifying the type of a given node and a method for\n * importing and generating a parser using the Peggy library.\n */\nexport class ASTParser {\n static astParseInstance: ParseFunction;\n\n /**\n * Imports and generates a parser using the Peggy library.\n * @returns A Promise that resolves to the parser instance.\n */\n static async importASTParser() {\n try {\n if (!ASTParser.astParseInstance) {\n const { default: peggy } = await import(\"peggy\");\n const parser = peggy.generate(GRAMMAR);\n const { parse } = parser;\n ASTParser.astParseInstance = parse as ParseFunction;\n }\n return ASTParser.astParseInstance;\n } catch {\n throw new Error(\n `Failed to import peggy. Please install peggy (i.e. \"npm install peggy\" or \"pnpm install peggy\").`\n );\n }\n }\n\n /**\n * Checks if the given node is a Program node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a Program node.\n */\n static isProgram(node: ExpressionNode): node is Program {\n return node.type === \"Program\";\n }\n\n /**\n * Checks if the given node is an ExpressionStatement node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ExpressionStatement node.\n */\n static isExpressionStatement(\n node: ExpressionNode\n ): node is ExpressionStatement {\n return node.type === \"ExpressionStatement\";\n }\n\n /**\n * Checks if the given node is a CallExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a CallExpression node.\n */\n static isCallExpression(node: ExpressionNode): node is CallExpression {\n return node.type === \"CallExpression\";\n }\n\n /**\n * Checks if the given node is a StringLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a StringLiteral node.\n */\n static isStringLiteral(node: ExpressionNode): node is StringLiteral {\n return node.type === \"StringLiteral\" && typeof node.value === \"string\";\n }\n\n /**\n * Checks if the given node is a NumericLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a NumericLiteral node.\n */\n static isNumericLiteral(node: ExpressionNode): node is NumericLiteral {\n return node.type === \"NumericLiteral\" && typeof node.value === \"number\";\n }\n\n /**\n * Checks if the given node is a BooleanLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a BooleanLiteral node.\n */\n static isBooleanLiteral(node: ExpressionNode): node is BooleanLiteral {\n return node.type === \"BooleanLiteral\" && typeof node.value === \"boolean\";\n }\n\n /**\n * Checks if the given node is an Identifier node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an Identifier node.\n */\n static isIdentifier(node: ExpressionNode): node is Identifier {\n return node.type === \"Identifier\";\n }\n\n /**\n * Checks if the given node is an ObjectExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ObjectExpression node.\n */\n static isObjectExpression(node: ExpressionNode): node is ObjectExpression {\n return node.type === \"ObjectExpression\";\n }\n\n /**\n * Checks if the given node is an ArrayExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ArrayExpression node.\n */\n static isArrayExpression(node: ExpressionNode): node is ArrayExpression {\n return node.type === \"ArrayExpression\";\n }\n\n /**\n * Checks if the given node is a PropertyAssignment node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a PropertyAssignment node.\n */\n static isPropertyAssignment(\n node: ExpressionNode\n ): node is PropertyAssignment {\n return node.type === \"PropertyAssignment\";\n }\n\n /**\n * Checks if the given node is a MemberExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a MemberExpression node.\n */\n static isMemberExpression(node: ExpressionNode): node is MemberExpression {\n return node.type === \"MemberExpression\";\n }\n}\n"],"mappings":";;;;;;AAqBA,IAAsB,cAAtB,MAAkC;CAChC,YAAY,eAAuC;AAA7B,OAAA,gBAAA;;;;;;;;AAwBxB,IAAa,YAAb,MAAa,UAAU;CACrB,OAAO;;;;;CAMP,aAAa,kBAAkB;AAC7B,MAAI;AACF,OAAI,CAAC,UAAU,kBAAkB;IAC/B,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;IAExC,MAAM,EAAE,UADO,MAAM,SAASA,uBAAAA,QAAQ;AAEtC,cAAU,mBAAmB;;AAE/B,UAAO,UAAU;UACX;AACN,SAAM,IAAI,MACR,mGACD;;;;;;;;CASL,OAAO,UAAU,MAAuC;AACtD,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,sBACL,MAC6B;AAC7B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,gBAAgB,MAA6C;AAClE,SAAO,KAAK,SAAS,mBAAmB,OAAO,KAAK,UAAU;;;;;;;CAQhE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,aAAa,MAA0C;AAC5D,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,kBAAkB,MAA+C;AACtE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,qBACL,MAC4B;AAC5B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.cts","names":[],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"mappings":";;;;;AAqBA;;uBAAsB,WAAA;EAAA,UACE,aAAA,GAAc,WAAA;EAApC,WAAA,CAAsB,aAAA,GAAc,WAAA;EAOb;;;;;EAAA,SAAd,OAAA,CAAQ,IAAA,EAAM,cAAA,GAAiB,OAAA,CAAQ,cAAA;EASF;;;;;;EAAA,SAArC,MAAA,CAAO,IAAA,EAAM,cAAA,GAAiB,OAAA;AAAA;;;;;;cAQ5B,SAAA;EAAA,OACJ,gBAAA,EAAkB,aAAA;EATqB;;AAQhD;;EARgD,OAejC,eAAA,CAAA,GAAe,OAAA,CAAA,aAAA;EANH;;;;;EAAA,OA2BlB,SAAA,CAAU,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,OAAA;EAWrC;;;;;EAAA,OAFJ,qBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,mBAAA;EA2B4C;;;;;EAAA,OAlBhD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA6CE;;;;;EAAA,OApClD,eAAA,CAAgB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,aAAA;EAiEG;;;;;EAAA,OAxDlD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA3D3B;;;;;EAAA,OAoErB,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA/CP;;;;;EAAA,OAwDzC,YAAA,CAAa,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,UAAA;EApC5C;;;;;EAAA,OA6CA,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;EApC5B;;;;;EAAA,OA6CtB,iBAAA,CAAkB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,eAAA;EApChC;;;;;EAAA,OA6CjB,oBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,kBAAA;EAtCoC;;;;;EAAA,OA+CxC,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;AAAA"}
1
+ {"version":3,"file":"base.d.cts","names":[],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"mappings":";;;;;AAqBA;;uBAAsB,WAAA;EAAA,UACE,aAAA,GAAgB,WAAA;EAAtC,WAAA,CAAsB,aAAA,GAAgB,WAAA;EAOf;;;;;EAAA,SAAd,OAAA,CAAQ,IAAA,EAAM,cAAA,GAAiB,OAAA,CAAQ,cAAA;EASF;;;;;;EAAA,SAArC,MAAA,CAAO,IAAA,EAAM,cAAA,GAAiB,OAAA;AAAA;;;;;;cAQ5B,SAAA;EAAA,OACJ,gBAAA,EAAkB,aAAA;EATqB;;AAQhD;;EARgD,OAejC,eAAA,CAAA,GAAe,OAAA,CAAA,aAAA;EANH;;;;;EAAA,OA2BlB,SAAA,CAAU,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,OAAA;EAWrC;;;;;EAAA,OAFJ,qBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,mBAAA;EA2B4C;;;;;EAAA,OAlBhD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA6CE;;;;;EAAA,OApClD,eAAA,CAAgB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,aAAA;EAiEG;;;;;EAAA,OAxDlD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA3D3B;;;;;EAAA,OAoErB,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA/CP;;;;;EAAA,OAwDzC,YAAA,CAAa,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,UAAA;EApC5C;;;;;EAAA,OA6CA,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;EApC5B;;;;;EAAA,OA6CtB,iBAAA,CAAkB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,eAAA;EApChC;;;;;EAAA,OA6CjB,oBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,kBAAA;EAtCoC;;;;;EAAA,OA+CxC,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"mappings":";;;;;AAqBA;;uBAAsB,WAAA;EAAA,UACE,aAAA,GAAc,WAAA;EAApC,WAAA,CAAsB,aAAA,GAAc,WAAA;EAOb;;;;;EAAA,SAAd,OAAA,CAAQ,IAAA,EAAM,cAAA,GAAiB,OAAA,CAAQ,cAAA;EASF;;;;;;EAAA,SAArC,MAAA,CAAO,IAAA,EAAM,cAAA,GAAiB,OAAA;AAAA;;;;;;cAQ5B,SAAA;EAAA,OACJ,gBAAA,EAAkB,aAAA;EATqB;;AAQhD;;EARgD,OAejC,eAAA,CAAA,GAAe,OAAA,CAAA,aAAA;EANH;;;;;EAAA,OA2BlB,SAAA,CAAU,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,OAAA;EAWrC;;;;;EAAA,OAFJ,qBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,mBAAA;EA2B4C;;;;;EAAA,OAlBhD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA6CE;;;;;EAAA,OApClD,eAAA,CAAgB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,aAAA;EAiEG;;;;;EAAA,OAxDlD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA3D3B;;;;;EAAA,OAoErB,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA/CP;;;;;EAAA,OAwDzC,YAAA,CAAa,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,UAAA;EApC5C;;;;;EAAA,OA6CA,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;EApC5B;;;;;EAAA,OA6CtB,iBAAA,CAAkB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,eAAA;EApChC;;;;;EAAA,OA6CjB,oBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,kBAAA;EAtCoC;;;;;EAAA,OA+CxC,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;AAAA"}
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"mappings":";;;;;AAqBA;;uBAAsB,WAAA;EAAA,UACE,aAAA,GAAgB,WAAA;EAAtC,WAAA,CAAsB,aAAA,GAAgB,WAAA;EAOf;;;;;EAAA,SAAd,OAAA,CAAQ,IAAA,EAAM,cAAA,GAAiB,OAAA,CAAQ,cAAA;EASF;;;;;;EAAA,SAArC,MAAA,CAAO,IAAA,EAAM,cAAA,GAAiB,OAAA;AAAA;;;;;;cAQ5B,SAAA;EAAA,OACJ,gBAAA,EAAkB,aAAA;EATqB;;AAQhD;;EARgD,OAejC,eAAA,CAAA,GAAe,OAAA,CAAA,aAAA;EANH;;;;;EAAA,OA2BlB,SAAA,CAAU,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,OAAA;EAWrC;;;;;EAAA,OAFJ,qBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,mBAAA;EA2B4C;;;;;EAAA,OAlBhD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA6CE;;;;;EAAA,OApClD,eAAA,CAAgB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,aAAA;EAiEG;;;;;EAAA,OAxDlD,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA3D3B;;;;;EAAA,OAoErB,gBAAA,CAAiB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,cAAA;EA/CP;;;;;EAAA,OAwDzC,YAAA,CAAa,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,UAAA;EApC5C;;;;;EAAA,OA6CA,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;EApC5B;;;;;EAAA,OA6CtB,iBAAA,CAAkB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,eAAA;EApChC;;;;;EAAA,OA6CjB,oBAAA,CACL,IAAA,EAAM,cAAA,GACL,IAAA,IAAQ,kBAAA;EAtCoC;;;;;EAAA,OA+CxC,kBAAA,CAAmB,IAAA,EAAM,cAAA,GAAiB,IAAA,IAAQ,gBAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"sourcesContent":["import { GRAMMAR } from \"./grammar/parser_grammar.js\";\nimport type {\n ExpressionNode,\n Program,\n ExpressionStatement,\n CallExpression,\n StringLiteral,\n NumericLiteral,\n BooleanLiteral,\n Identifier,\n ObjectExpression,\n ArrayExpression,\n PropertyAssignment,\n MemberExpression,\n ParseFunction,\n} from \"../../types/expression-parser.js\";\n\n/**\n * Abstract class for handling nodes in an expression language. Subclasses\n * must implement the `accepts` and `handle` methods.\n */\nexport abstract class NodeHandler {\n constructor(protected parentHandler?: NodeHandler) {}\n\n /**\n * Determines whether the given node is acceptable.\n * @param node The node to be checked.\n * @returns A Promise that resolves to either the node itself or a boolean indicating whether the node is acceptable.\n */\n abstract accepts(node: ExpressionNode): Promise<ExpressionNode | boolean>;\n\n /**\n * Handles the given node. The specifics of how the node is handled are\n * determined by the subclass implementation.\n * @param node The node to be handled.\n * @returns A Promise that resolves to the result of handling the node.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n abstract handle(node: ExpressionNode): Promise<any>;\n}\n\n/**\n * Utility class for parsing Abstract Syntax Trees (ASTs). Contains\n * methods for identifying the type of a given node and a method for\n * importing and generating a parser using the Peggy library.\n */\nexport class ASTParser {\n static astParseInstance: ParseFunction;\n\n /**\n * Imports and generates a parser using the Peggy library.\n * @returns A Promise that resolves to the parser instance.\n */\n static async importASTParser() {\n try {\n if (!ASTParser.astParseInstance) {\n const { default: peggy } = await import(\"peggy\");\n const parser = peggy.generate(GRAMMAR);\n const { parse } = parser;\n ASTParser.astParseInstance = parse as ParseFunction;\n }\n return ASTParser.astParseInstance;\n } catch {\n throw new Error(\n `Failed to import peggy. Please install peggy (i.e. \"npm install peggy\" or \"pnpm install peggy\").`\n );\n }\n }\n\n /**\n * Checks if the given node is a Program node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a Program node.\n */\n static isProgram(node: ExpressionNode): node is Program {\n return node.type === \"Program\";\n }\n\n /**\n * Checks if the given node is an ExpressionStatement node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ExpressionStatement node.\n */\n static isExpressionStatement(\n node: ExpressionNode\n ): node is ExpressionStatement {\n return node.type === \"ExpressionStatement\";\n }\n\n /**\n * Checks if the given node is a CallExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a CallExpression node.\n */\n static isCallExpression(node: ExpressionNode): node is CallExpression {\n return node.type === \"CallExpression\";\n }\n\n /**\n * Checks if the given node is a StringLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a StringLiteral node.\n */\n static isStringLiteral(node: ExpressionNode): node is StringLiteral {\n return node.type === \"StringLiteral\" && typeof node.value === \"string\";\n }\n\n /**\n * Checks if the given node is a NumericLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a NumericLiteral node.\n */\n static isNumericLiteral(node: ExpressionNode): node is NumericLiteral {\n return node.type === \"NumericLiteral\" && typeof node.value === \"number\";\n }\n\n /**\n * Checks if the given node is a BooleanLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a BooleanLiteral node.\n */\n static isBooleanLiteral(node: ExpressionNode): node is BooleanLiteral {\n return node.type === \"BooleanLiteral\" && typeof node.value === \"boolean\";\n }\n\n /**\n * Checks if the given node is an Identifier node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an Identifier node.\n */\n static isIdentifier(node: ExpressionNode): node is Identifier {\n return node.type === \"Identifier\";\n }\n\n /**\n * Checks if the given node is an ObjectExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ObjectExpression node.\n */\n static isObjectExpression(node: ExpressionNode): node is ObjectExpression {\n return node.type === \"ObjectExpression\";\n }\n\n /**\n * Checks if the given node is an ArrayExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ArrayExpression node.\n */\n static isArrayExpression(node: ExpressionNode): node is ArrayExpression {\n return node.type === \"ArrayExpression\";\n }\n\n /**\n * Checks if the given node is a PropertyAssignment node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a PropertyAssignment node.\n */\n static isPropertyAssignment(\n node: ExpressionNode\n ): node is PropertyAssignment {\n return node.type === \"PropertyAssignment\";\n }\n\n /**\n * Checks if the given node is a MemberExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a MemberExpression node.\n */\n static isMemberExpression(node: ExpressionNode): node is MemberExpression {\n return node.type === \"MemberExpression\";\n }\n}\n"],"mappings":";;;;;;AAqBA,IAAsB,cAAtB,MAAkC;CAChC,YAAY,eAAuC;AAA7B,OAAA,gBAAA;;;;;;;;AAwBxB,IAAa,YAAb,MAAa,UAAU;CACrB,OAAO;;;;;CAMP,aAAa,kBAAkB;AAC7B,MAAI;AACF,OAAI,CAAC,UAAU,kBAAkB;IAC/B,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;IAExC,MAAM,EAAE,UADO,MAAM,SAAS,QAAQ;AAEtC,cAAU,mBAAmB;;AAE/B,UAAO,UAAU;UACX;AACN,SAAM,IAAI,MACR,mGACD;;;;;;;;CASL,OAAO,UAAU,MAAuC;AACtD,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,sBACL,MAC6B;AAC7B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,gBAAgB,MAA6C;AAClE,SAAO,KAAK,SAAS,mBAAmB,OAAO,KAAK,UAAU;;;;;;;CAQhE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,aAAa,MAA0C;AAC5D,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,kBAAkB,MAA+C;AACtE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,qBACL,MAC4B;AAC5B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS"}
1
+ {"version":3,"file":"base.js","names":[],"sources":["../../../src/output_parsers/expression_type_handlers/base.ts"],"sourcesContent":["import { GRAMMAR } from \"./grammar/parser_grammar.js\";\nimport type {\n ExpressionNode,\n Program,\n ExpressionStatement,\n CallExpression,\n StringLiteral,\n NumericLiteral,\n BooleanLiteral,\n Identifier,\n ObjectExpression,\n ArrayExpression,\n PropertyAssignment,\n MemberExpression,\n ParseFunction,\n} from \"../../types/expression-parser.js\";\n\n/**\n * Abstract class for handling nodes in an expression language. Subclasses\n * must implement the `accepts` and `handle` methods.\n */\nexport abstract class NodeHandler {\n constructor(protected parentHandler?: NodeHandler) {}\n\n /**\n * Determines whether the given node is acceptable.\n * @param node The node to be checked.\n * @returns A Promise that resolves to either the node itself or a boolean indicating whether the node is acceptable.\n */\n abstract accepts(node: ExpressionNode): Promise<ExpressionNode | boolean>;\n\n /**\n * Handles the given node. The specifics of how the node is handled are\n * determined by the subclass implementation.\n * @param node The node to be handled.\n * @returns A Promise that resolves to the result of handling the node.\n */\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n abstract handle(node: ExpressionNode): Promise<any>;\n}\n\n/**\n * Utility class for parsing Abstract Syntax Trees (ASTs). Contains\n * methods for identifying the type of a given node and a method for\n * importing and generating a parser using the Peggy library.\n */\nexport class ASTParser {\n static astParseInstance: ParseFunction;\n\n /**\n * Imports and generates a parser using the Peggy library.\n * @returns A Promise that resolves to the parser instance.\n */\n static async importASTParser() {\n try {\n if (!ASTParser.astParseInstance) {\n const { default: peggy } = await import(\"peggy\");\n const parser = peggy.generate(GRAMMAR);\n const { parse } = parser;\n ASTParser.astParseInstance = parse as ParseFunction;\n }\n return ASTParser.astParseInstance;\n } catch {\n throw new Error(\n `Failed to import peggy. Please install peggy (i.e. \"npm install peggy\" or \"pnpm install peggy\").`\n );\n }\n }\n\n /**\n * Checks if the given node is a Program node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a Program node.\n */\n static isProgram(node: ExpressionNode): node is Program {\n return node.type === \"Program\";\n }\n\n /**\n * Checks if the given node is an ExpressionStatement node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ExpressionStatement node.\n */\n static isExpressionStatement(\n node: ExpressionNode\n ): node is ExpressionStatement {\n return node.type === \"ExpressionStatement\";\n }\n\n /**\n * Checks if the given node is a CallExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a CallExpression node.\n */\n static isCallExpression(node: ExpressionNode): node is CallExpression {\n return node.type === \"CallExpression\";\n }\n\n /**\n * Checks if the given node is a StringLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a StringLiteral node.\n */\n static isStringLiteral(node: ExpressionNode): node is StringLiteral {\n return node.type === \"StringLiteral\" && typeof node.value === \"string\";\n }\n\n /**\n * Checks if the given node is a NumericLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a NumericLiteral node.\n */\n static isNumericLiteral(node: ExpressionNode): node is NumericLiteral {\n return node.type === \"NumericLiteral\" && typeof node.value === \"number\";\n }\n\n /**\n * Checks if the given node is a BooleanLiteral node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a BooleanLiteral node.\n */\n static isBooleanLiteral(node: ExpressionNode): node is BooleanLiteral {\n return node.type === \"BooleanLiteral\" && typeof node.value === \"boolean\";\n }\n\n /**\n * Checks if the given node is an Identifier node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an Identifier node.\n */\n static isIdentifier(node: ExpressionNode): node is Identifier {\n return node.type === \"Identifier\";\n }\n\n /**\n * Checks if the given node is an ObjectExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ObjectExpression node.\n */\n static isObjectExpression(node: ExpressionNode): node is ObjectExpression {\n return node.type === \"ObjectExpression\";\n }\n\n /**\n * Checks if the given node is an ArrayExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is an ArrayExpression node.\n */\n static isArrayExpression(node: ExpressionNode): node is ArrayExpression {\n return node.type === \"ArrayExpression\";\n }\n\n /**\n * Checks if the given node is a PropertyAssignment node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a PropertyAssignment node.\n */\n static isPropertyAssignment(\n node: ExpressionNode\n ): node is PropertyAssignment {\n return node.type === \"PropertyAssignment\";\n }\n\n /**\n * Checks if the given node is a MemberExpression node.\n * @param node The node to be checked.\n * @returns A boolean indicating whether the node is a MemberExpression node.\n */\n static isMemberExpression(node: ExpressionNode): node is MemberExpression {\n return node.type === \"MemberExpression\";\n }\n}\n"],"mappings":";;;;;;AAqBA,IAAsB,cAAtB,MAAkC;CAChC,YAAY,eAAuC;AAA7B,OAAA,gBAAA;;;;;;;;AAwBxB,IAAa,YAAb,MAAa,UAAU;CACrB,OAAO;;;;;CAMP,aAAa,kBAAkB;AAC7B,MAAI;AACF,OAAI,CAAC,UAAU,kBAAkB;IAC/B,MAAM,EAAE,SAAS,UAAU,MAAM,OAAO;IAExC,MAAM,EAAE,UADO,MAAM,SAAS,QAAQ;AAEtC,cAAU,mBAAmB;;AAE/B,UAAO,UAAU;UACX;AACN,SAAM,IAAI,MACR,mGACD;;;;;;;;CASL,OAAO,UAAU,MAAuC;AACtD,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,sBACL,MAC6B;AAC7B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,gBAAgB,MAA6C;AAClE,SAAO,KAAK,SAAS,mBAAmB,OAAO,KAAK,UAAU;;;;;;;CAQhE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,iBAAiB,MAA8C;AACpE,SAAO,KAAK,SAAS,oBAAoB,OAAO,KAAK,UAAU;;;;;;;CAQjE,OAAO,aAAa,MAA0C;AAC5D,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,kBAAkB,MAA+C;AACtE,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,qBACL,MAC4B;AAC5B,SAAO,KAAK,SAAS;;;;;;;CAQvB,OAAO,mBAAmB,MAAgD;AACxE,SAAO,KAAK,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"fix.cjs","names":["BaseOutputParser","LLMChain","NAIVE_FIX_PROMPT","OutputParserException"],"sources":["../../src/output_parsers/fix.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport {\n BaseOutputParser,\n OutputParserException,\n} from \"@langchain/core/output_parsers\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport { NAIVE_FIX_PROMPT } from \"./prompts.js\";\n\ninterface OutputFixingParserRetryInput {\n instructions: string;\n completion: string;\n error: OutputParserException;\n}\n\nfunction isLLMChain<T>(\n x: LLMChain | Runnable<OutputFixingParserRetryInput, T>\n): x is LLMChain {\n return (\n (x as LLMChain).prompt !== undefined && (x as LLMChain).llm !== undefined\n );\n}\n\n/**\n * Class that extends the BaseOutputParser to handle situations where the\n * initial parsing attempt fails. It contains a retryChain for retrying\n * the parsing process in case of a failure.\n */\nexport class OutputFixingParser<T> extends BaseOutputParser<T> {\n static lc_name() {\n return \"OutputFixingParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"fix\"];\n\n lc_serializable = true;\n\n parser: BaseOutputParser<T>;\n\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n\n /**\n * Static method to create a new instance of OutputFixingParser using a\n * given language model, parser, and optional fields.\n * @param llm The language model to be used.\n * @param parser The parser to be used.\n * @param fields Optional fields which may contain a prompt.\n * @returns A new instance of OutputFixingParser.\n */\n static fromLLM<T>(\n llm: BaseLanguageModelInterface,\n parser: BaseOutputParser<T>,\n fields?: {\n prompt?: BasePromptTemplate;\n }\n ) {\n const prompt = fields?.prompt ?? NAIVE_FIX_PROMPT;\n const chain = new LLMChain({ llm, prompt });\n return new OutputFixingParser<T>({ parser, retryChain: chain });\n }\n\n constructor({\n parser,\n retryChain,\n }: {\n parser: BaseOutputParser<T>;\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n }) {\n super(...arguments);\n this.parser = parser;\n this.retryChain = retryChain;\n }\n\n /**\n * Method to parse the completion using the parser. If the initial parsing\n * fails, it uses the retryChain to attempt to fix the output and retry\n * the parsing process.\n * @param completion The completion to be parsed.\n * @param callbacks Optional callbacks to be used during parsing.\n * @returns The parsed output.\n */\n async parse(completion: string, callbacks?: Callbacks) {\n try {\n return await this.parser.parse(completion, callbacks);\n } catch (e) {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (e instanceof OutputParserException) {\n const retryInput = {\n instructions: this.parser.getFormatInstructions(),\n completion,\n error: e,\n };\n\n if (isLLMChain(this.retryChain)) {\n const result = await this.retryChain.call(retryInput, callbacks);\n const newCompletion: string = result[this.retryChain.outputKey];\n return this.parser.parse(newCompletion, callbacks);\n } else {\n const result = await this.retryChain.invoke(retryInput, {\n callbacks,\n });\n return result;\n }\n }\n throw e;\n }\n }\n\n /**\n * Method to get the format instructions for the parser.\n * @returns The format instructions for the parser.\n */\n getFormatInstructions() {\n return this.parser.getFormatInstructions();\n }\n}\n"],"mappings":";;;;;AAiBA,SAAS,WACP,GACe;AACf,QACG,EAAe,WAAW,KAAA,KAAc,EAAe,QAAQ,KAAA;;;;;;;AASpE,IAAa,qBAAb,MAAa,2BAA8BA,+BAAAA,iBAAoB;CAC7D,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAM;CAErD,kBAAkB;CAElB;CAEA;;;;;;;;;CAUA,OAAO,QACL,KACA,QACA,QAGA;AAGA,SAAO,IAAI,mBAAsB;GAAE;GAAQ,YAD7B,IAAIC,kBAAAA,SAAS;IAAE;IAAK,QADnB,QAAQ,UAAUC,gBAAAA;IACS,CAAC;GACmB,CAAC;;CAGjE,YAAY,EACV,QACA,cAIC;AACD,QAAM,GAAG,UAAU;AACnB,OAAK,SAAS;AACd,OAAK,aAAa;;;;;;;;;;CAWpB,MAAM,MAAM,YAAoB,WAAuB;AACrD,MAAI;AACF,UAAO,MAAM,KAAK,OAAO,MAAM,YAAY,UAAU;WAC9C,GAAG;AAEV,OAAI,aAAaC,+BAAAA,uBAAuB;IACtC,MAAM,aAAa;KACjB,cAAc,KAAK,OAAO,uBAAuB;KACjD;KACA,OAAO;KACR;AAED,QAAI,WAAW,KAAK,WAAW,EAAE;KAE/B,MAAM,iBADS,MAAM,KAAK,WAAW,KAAK,YAAY,UAAU,EAC3B,KAAK,WAAW;AACrD,YAAO,KAAK,OAAO,MAAM,eAAe,UAAU;UAKlD,QAHe,MAAM,KAAK,WAAW,OAAO,YAAY,EACtD,WACD,CAAC;;AAIN,SAAM;;;;;;;CAQV,wBAAwB;AACtB,SAAO,KAAK,OAAO,uBAAuB"}
1
+ {"version":3,"file":"fix.cjs","names":["BaseOutputParser","LLMChain","NAIVE_FIX_PROMPT","OutputParserException"],"sources":["../../src/output_parsers/fix.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport {\n BaseOutputParser,\n OutputParserException,\n} from \"@langchain/core/output_parsers\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport { NAIVE_FIX_PROMPT } from \"./prompts.js\";\n\ninterface OutputFixingParserRetryInput {\n instructions: string;\n completion: string;\n error: OutputParserException;\n}\n\nfunction isLLMChain<T>(\n x: LLMChain | Runnable<OutputFixingParserRetryInput, T>\n): x is LLMChain {\n return (\n (x as LLMChain).prompt !== undefined && (x as LLMChain).llm !== undefined\n );\n}\n\n/**\n * Class that extends the BaseOutputParser to handle situations where the\n * initial parsing attempt fails. It contains a retryChain for retrying\n * the parsing process in case of a failure.\n */\nexport class OutputFixingParser<T> extends BaseOutputParser<T> {\n static lc_name() {\n return \"OutputFixingParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"fix\"];\n\n lc_serializable = true;\n\n parser: BaseOutputParser<T>;\n\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n\n /**\n * Static method to create a new instance of OutputFixingParser using a\n * given language model, parser, and optional fields.\n * @param llm The language model to be used.\n * @param parser The parser to be used.\n * @param fields Optional fields which may contain a prompt.\n * @returns A new instance of OutputFixingParser.\n */\n static fromLLM<T>(\n llm: BaseLanguageModelInterface,\n parser: BaseOutputParser<T>,\n fields?: {\n prompt?: BasePromptTemplate;\n }\n ) {\n const prompt = fields?.prompt ?? NAIVE_FIX_PROMPT;\n const chain = new LLMChain({ llm, prompt });\n return new OutputFixingParser<T>({ parser, retryChain: chain });\n }\n\n constructor({\n parser,\n retryChain,\n }: {\n parser: BaseOutputParser<T>;\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n }) {\n super(...arguments);\n this.parser = parser;\n this.retryChain = retryChain;\n }\n\n /**\n * Method to parse the completion using the parser. If the initial parsing\n * fails, it uses the retryChain to attempt to fix the output and retry\n * the parsing process.\n * @param completion The completion to be parsed.\n * @param callbacks Optional callbacks to be used during parsing.\n * @returns The parsed output.\n */\n async parse(completion: string, callbacks?: Callbacks) {\n try {\n return await this.parser.parse(completion, callbacks);\n } catch (e) {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n if (e instanceof OutputParserException) {\n const retryInput = {\n instructions: this.parser.getFormatInstructions(),\n completion,\n error: e,\n };\n\n if (isLLMChain(this.retryChain)) {\n const result = await this.retryChain.call(retryInput, callbacks);\n const newCompletion: string = result[this.retryChain.outputKey];\n return this.parser.parse(newCompletion, callbacks);\n } else {\n const result = await this.retryChain.invoke(retryInput, {\n callbacks,\n });\n return result;\n }\n }\n throw e;\n }\n }\n\n /**\n * Method to get the format instructions for the parser.\n * @returns The format instructions for the parser.\n */\n getFormatInstructions() {\n return this.parser.getFormatInstructions();\n }\n}\n"],"mappings":";;;;;AAiBA,SAAS,WACP,GACe;AACf,QACG,EAAe,WAAW,KAAA,KAAc,EAAe,QAAQ,KAAA;;;;;;;AASpE,IAAa,qBAAb,MAAa,2BAA8BA,+BAAAA,iBAAoB;CAC7D,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAM;CAErD,kBAAkB;CAElB;CAEA;;;;;;;;;CAUA,OAAO,QACL,KACA,QACA,QAGA;AAGA,SAAO,IAAI,mBAAsB;GAAE;GAAQ,YAD7B,IAAIC,kBAAAA,SAAS;IAAE;IAAK,QADnB,QAAQ,UAAUC,gBAAAA;IACS,CAAC;GACmB,CAAC;;CAGjE,YAAY,EACV,QACA,cAIC;AACD,QAAM,GAAG,UAAU;AACnB,OAAK,SAAS;AACd,OAAK,aAAa;;;;;;;;;;CAWpB,MAAM,MAAM,YAAoB,WAAuB;AACrD,MAAI;AACF,UAAO,MAAM,KAAK,OAAO,MAAM,YAAY,UAAU;WAC9C,GAAG;AAEV,OAAI,aAAaC,+BAAAA,uBAAuB;IACtC,MAAM,aAAa;KACjB,cAAc,KAAK,OAAO,uBAAuB;KACjD;KACA,OAAO;KACR;AAED,QAAI,WAAW,KAAK,WAAW,EAAE;KAE/B,MAAM,iBADS,MAAM,KAAK,WAAW,KAAK,YAAY,UAAU,EAC3B,KAAK,WAAW;AACrD,YAAO,KAAK,OAAO,MAAM,eAAe,UAAU;UAKlD,QAHe,MAAM,KAAK,WAAW,OAAO,YAAY,EACtD,WACD,CAAC;;AAIN,SAAM;;;;;;;CAQV,wBAAwB;AACtB,SAAO,KAAK,OAAO,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"fix.js","names":[],"sources":["../../src/output_parsers/fix.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport {\n BaseOutputParser,\n OutputParserException,\n} from \"@langchain/core/output_parsers\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport { NAIVE_FIX_PROMPT } from \"./prompts.js\";\n\ninterface OutputFixingParserRetryInput {\n instructions: string;\n completion: string;\n error: OutputParserException;\n}\n\nfunction isLLMChain<T>(\n x: LLMChain | Runnable<OutputFixingParserRetryInput, T>\n): x is LLMChain {\n return (\n (x as LLMChain).prompt !== undefined && (x as LLMChain).llm !== undefined\n );\n}\n\n/**\n * Class that extends the BaseOutputParser to handle situations where the\n * initial parsing attempt fails. It contains a retryChain for retrying\n * the parsing process in case of a failure.\n */\nexport class OutputFixingParser<T> extends BaseOutputParser<T> {\n static lc_name() {\n return \"OutputFixingParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"fix\"];\n\n lc_serializable = true;\n\n parser: BaseOutputParser<T>;\n\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n\n /**\n * Static method to create a new instance of OutputFixingParser using a\n * given language model, parser, and optional fields.\n * @param llm The language model to be used.\n * @param parser The parser to be used.\n * @param fields Optional fields which may contain a prompt.\n * @returns A new instance of OutputFixingParser.\n */\n static fromLLM<T>(\n llm: BaseLanguageModelInterface,\n parser: BaseOutputParser<T>,\n fields?: {\n prompt?: BasePromptTemplate;\n }\n ) {\n const prompt = fields?.prompt ?? NAIVE_FIX_PROMPT;\n const chain = new LLMChain({ llm, prompt });\n return new OutputFixingParser<T>({ parser, retryChain: chain });\n }\n\n constructor({\n parser,\n retryChain,\n }: {\n parser: BaseOutputParser<T>;\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n }) {\n super(...arguments);\n this.parser = parser;\n this.retryChain = retryChain;\n }\n\n /**\n * Method to parse the completion using the parser. If the initial parsing\n * fails, it uses the retryChain to attempt to fix the output and retry\n * the parsing process.\n * @param completion The completion to be parsed.\n * @param callbacks Optional callbacks to be used during parsing.\n * @returns The parsed output.\n */\n async parse(completion: string, callbacks?: Callbacks) {\n try {\n return await this.parser.parse(completion, callbacks);\n } catch (e) {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (e instanceof OutputParserException) {\n const retryInput = {\n instructions: this.parser.getFormatInstructions(),\n completion,\n error: e,\n };\n\n if (isLLMChain(this.retryChain)) {\n const result = await this.retryChain.call(retryInput, callbacks);\n const newCompletion: string = result[this.retryChain.outputKey];\n return this.parser.parse(newCompletion, callbacks);\n } else {\n const result = await this.retryChain.invoke(retryInput, {\n callbacks,\n });\n return result;\n }\n }\n throw e;\n }\n }\n\n /**\n * Method to get the format instructions for the parser.\n * @returns The format instructions for the parser.\n */\n getFormatInstructions() {\n return this.parser.getFormatInstructions();\n }\n}\n"],"mappings":";;;;AAiBA,SAAS,WACP,GACe;AACf,QACG,EAAe,WAAW,KAAA,KAAc,EAAe,QAAQ,KAAA;;;;;;;AASpE,IAAa,qBAAb,MAAa,2BAA8B,iBAAoB;CAC7D,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAM;CAErD,kBAAkB;CAElB;CAEA;;;;;;;;;CAUA,OAAO,QACL,KACA,QACA,QAGA;AAGA,SAAO,IAAI,mBAAsB;GAAE;GAAQ,YAD7B,IAAI,SAAS;IAAE;IAAK,QADnB,QAAQ,UAAU;IACS,CAAC;GACmB,CAAC;;CAGjE,YAAY,EACV,QACA,cAIC;AACD,QAAM,GAAG,UAAU;AACnB,OAAK,SAAS;AACd,OAAK,aAAa;;;;;;;;;;CAWpB,MAAM,MAAM,YAAoB,WAAuB;AACrD,MAAI;AACF,UAAO,MAAM,KAAK,OAAO,MAAM,YAAY,UAAU;WAC9C,GAAG;AAEV,OAAI,aAAa,uBAAuB;IACtC,MAAM,aAAa;KACjB,cAAc,KAAK,OAAO,uBAAuB;KACjD;KACA,OAAO;KACR;AAED,QAAI,WAAW,KAAK,WAAW,EAAE;KAE/B,MAAM,iBADS,MAAM,KAAK,WAAW,KAAK,YAAY,UAAU,EAC3B,KAAK,WAAW;AACrD,YAAO,KAAK,OAAO,MAAM,eAAe,UAAU;UAKlD,QAHe,MAAM,KAAK,WAAW,OAAO,YAAY,EACtD,WACD,CAAC;;AAIN,SAAM;;;;;;;CAQV,wBAAwB;AACtB,SAAO,KAAK,OAAO,uBAAuB"}
1
+ {"version":3,"file":"fix.js","names":[],"sources":["../../src/output_parsers/fix.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { Callbacks } from \"@langchain/core/callbacks/manager\";\nimport {\n BaseOutputParser,\n OutputParserException,\n} from \"@langchain/core/output_parsers\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Runnable } from \"@langchain/core/runnables\";\nimport { LLMChain } from \"../chains/llm_chain.js\";\nimport { NAIVE_FIX_PROMPT } from \"./prompts.js\";\n\ninterface OutputFixingParserRetryInput {\n instructions: string;\n completion: string;\n error: OutputParserException;\n}\n\nfunction isLLMChain<T>(\n x: LLMChain | Runnable<OutputFixingParserRetryInput, T>\n): x is LLMChain {\n return (\n (x as LLMChain).prompt !== undefined && (x as LLMChain).llm !== undefined\n );\n}\n\n/**\n * Class that extends the BaseOutputParser to handle situations where the\n * initial parsing attempt fails. It contains a retryChain for retrying\n * the parsing process in case of a failure.\n */\nexport class OutputFixingParser<T> extends BaseOutputParser<T> {\n static lc_name() {\n return \"OutputFixingParser\";\n }\n\n lc_namespace = [\"langchain\", \"output_parsers\", \"fix\"];\n\n lc_serializable = true;\n\n parser: BaseOutputParser<T>;\n\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n\n /**\n * Static method to create a new instance of OutputFixingParser using a\n * given language model, parser, and optional fields.\n * @param llm The language model to be used.\n * @param parser The parser to be used.\n * @param fields Optional fields which may contain a prompt.\n * @returns A new instance of OutputFixingParser.\n */\n static fromLLM<T>(\n llm: BaseLanguageModelInterface,\n parser: BaseOutputParser<T>,\n fields?: {\n prompt?: BasePromptTemplate;\n }\n ) {\n const prompt = fields?.prompt ?? NAIVE_FIX_PROMPT;\n const chain = new LLMChain({ llm, prompt });\n return new OutputFixingParser<T>({ parser, retryChain: chain });\n }\n\n constructor({\n parser,\n retryChain,\n }: {\n parser: BaseOutputParser<T>;\n retryChain: LLMChain | Runnable<OutputFixingParserRetryInput, T>;\n }) {\n super(...arguments);\n this.parser = parser;\n this.retryChain = retryChain;\n }\n\n /**\n * Method to parse the completion using the parser. If the initial parsing\n * fails, it uses the retryChain to attempt to fix the output and retry\n * the parsing process.\n * @param completion The completion to be parsed.\n * @param callbacks Optional callbacks to be used during parsing.\n * @returns The parsed output.\n */\n async parse(completion: string, callbacks?: Callbacks) {\n try {\n return await this.parser.parse(completion, callbacks);\n } catch (e) {\n // oxlint-disable-next-line no-instanceof/no-instanceof\n if (e instanceof OutputParserException) {\n const retryInput = {\n instructions: this.parser.getFormatInstructions(),\n completion,\n error: e,\n };\n\n if (isLLMChain(this.retryChain)) {\n const result = await this.retryChain.call(retryInput, callbacks);\n const newCompletion: string = result[this.retryChain.outputKey];\n return this.parser.parse(newCompletion, callbacks);\n } else {\n const result = await this.retryChain.invoke(retryInput, {\n callbacks,\n });\n return result;\n }\n }\n throw e;\n }\n }\n\n /**\n * Method to get the format instructions for the parser.\n * @returns The format instructions for the parser.\n */\n getFormatInstructions() {\n return this.parser.getFormatInstructions();\n }\n}\n"],"mappings":";;;;AAiBA,SAAS,WACP,GACe;AACf,QACG,EAAe,WAAW,KAAA,KAAc,EAAe,QAAQ,KAAA;;;;;;;AASpE,IAAa,qBAAb,MAAa,2BAA8B,iBAAoB;CAC7D,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAkB;EAAM;CAErD,kBAAkB;CAElB;CAEA;;;;;;;;;CAUA,OAAO,QACL,KACA,QACA,QAGA;AAGA,SAAO,IAAI,mBAAsB;GAAE;GAAQ,YAD7B,IAAI,SAAS;IAAE;IAAK,QADnB,QAAQ,UAAU;IACS,CAAC;GACmB,CAAC;;CAGjE,YAAY,EACV,QACA,cAIC;AACD,QAAM,GAAG,UAAU;AACnB,OAAK,SAAS;AACd,OAAK,aAAa;;;;;;;;;;CAWpB,MAAM,MAAM,YAAoB,WAAuB;AACrD,MAAI;AACF,UAAO,MAAM,KAAK,OAAO,MAAM,YAAY,UAAU;WAC9C,GAAG;AAEV,OAAI,aAAa,uBAAuB;IACtC,MAAM,aAAa;KACjB,cAAc,KAAK,OAAO,uBAAuB;KACjD;KACA,OAAO;KACR;AAED,QAAI,WAAW,KAAK,WAAW,EAAE;KAE/B,MAAM,iBADS,MAAM,KAAK,WAAW,KAAK,YAAY,UAAU,EAC3B,KAAK,WAAW;AACrD,YAAO,KAAK,OAAO,MAAM,eAAe,UAAU;UAKlD,QAHe,MAAM,KAAK,WAAW,OAAO,YAAY,EACtD,WACD,CAAC;;AAIN,SAAM;;;;;;;CAQV,wBAAwB;AACtB,SAAO,KAAK,OAAO,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai_functions.d.cts","names":[],"sources":["../../src/output_parsers/openai_functions.ts"],"mappings":";;;;;;;;;AAmBA;KAAY,kBAAA,GAAqB,QAAA,CAC/B,qBAAA;;;;AAQF;cAAa,qBAAA,SAA8B,mBAAA;EAAA,OAClC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,QAAA;EAEA,WAAA,CAAY,MAAA;IAAW,QAAA;EAAA;EAXkB;;;;;;EAsBnC,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA;AAAA;;;;;cA8BQ,yBAAA,yCAEH,mCAAA,CAAoC,MAAA;EAAA,OACrC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAc,qBAAA;EAEd,QAAA;EAEA,WAAA,CACE,MAAA;IAAW,QAAA;EAAA,IAAuB,wCAAA;EAAA,UAO1B,KAAA,CACR,IAAA,uBACA,IAAA,YACC,SAAA;EAQG,kBAAA,CACJ,WAAA,EAAa,cAAA,KACZ,OAAA,CAAQ,MAAA;EAAA;;;;;;EA0BL,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA,CAAQ,MAAA;EAUL,KAAA,CAAM,IAAA,WAAe,OAAA,CAAQ,MAAA;EAenC,qBAAA,CAAA;AAAA;;;;;;cAUW,4BAAA,qBAEH,mBAAA,CAAoB,CAAA;EAAA,OACrB,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAY,yBAAA;EAEZ,QAAA;EAAA,IAEI,UAAA,CAAA;;;EAMJ,WAAA,CAAY,MAAA;IAAU,QAAA;EAAA;EA9FnB;;;;;;EAyGG,WAAA,CAAY,WAAA,EAAa,UAAA,KAAe,cAAA,KAAmB,OAAA,CAAQ,CAAA;AAAA"}
1
+ {"version":3,"file":"openai_functions.d.cts","names":[],"sources":["../../src/output_parsers/openai_functions.ts"],"mappings":";;;;;;;;;AAmBA;KAAY,kBAAA,GAAqB,QAAA,CAC/B,qBAAA;;;;AAQF;cAAa,qBAAA,SAA8B,mBAAA;EAAA,OAClC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,QAAA;EAEA,WAAA,CAAY,MAAA;IAAW,QAAA;EAAA;EAXkB;;;;;;EAsBnC,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA;AAAA;;;;;cA8BQ,yBAAA,yCAEH,mCAAA,CAAoC,MAAA;EAAA,OACrC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAc,qBAAA;EAEd,QAAA;EAEA,WAAA,CACE,MAAA;IAAW,QAAA;EAAA,IAAuB,wCAAA;EAAA,UAO1B,KAAA,CACR,IAAA,uBACA,IAAA,YACC,SAAA;EAQG,kBAAA,CACJ,WAAA,EAAa,cAAA,KACZ,OAAA,CAAQ,MAAA;EAAA;;;;;;EA0BL,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA,CAAQ,MAAA;EAUL,KAAA,CAAM,IAAA,WAAe,OAAA,CAAQ,MAAA;EAenC,qBAAA,CAAA;AAAA;;;;;;cAUW,4BAAA,qBAEH,mBAAA,CAAoB,CAAA;EAAA,OACrB,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAY,yBAAA;EAEZ,QAAA;EAAA,IAEI,UAAA,CAAA;IAEA,QAAA;EAAA;EAIJ,WAAA,CAAY,MAAA;IAAU,QAAA;EAAA;EA9FnB;;;;;;EAyGG,WAAA,CAAY,WAAA,EAAa,UAAA,KAAe,cAAA,KAAmB,OAAA,CAAQ,CAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai_functions.d.ts","names":[],"sources":["../../src/output_parsers/openai_functions.ts"],"mappings":";;;;;;;;;AAmBA;KAAY,kBAAA,GAAqB,QAAA,CAC/B,qBAAA;;;;AAQF;cAAa,qBAAA,SAA8B,mBAAA;EAAA,OAClC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,QAAA;EAEA,WAAA,CAAY,MAAA;IAAW,QAAA;EAAA;EAXkB;;;;;;EAsBnC,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA;AAAA;;;;;cA8BQ,yBAAA,yCAEH,mCAAA,CAAoC,MAAA;EAAA,OACrC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAc,qBAAA;EAEd,QAAA;EAEA,WAAA,CACE,MAAA;IAAW,QAAA;EAAA,IAAuB,wCAAA;EAAA,UAO1B,KAAA,CACR,IAAA,uBACA,IAAA,YACC,SAAA;EAQG,kBAAA,CACJ,WAAA,EAAa,cAAA,KACZ,OAAA,CAAQ,MAAA;EAAA;;;;;;EA0BL,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA,CAAQ,MAAA;EAUL,KAAA,CAAM,IAAA,WAAe,OAAA,CAAQ,MAAA;EAenC,qBAAA,CAAA;AAAA;;;;;;cAUW,4BAAA,qBAEH,mBAAA,CAAoB,CAAA;EAAA,OACrB,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAY,yBAAA;EAEZ,QAAA;EAAA,IAEI,UAAA,CAAA;;;EAMJ,WAAA,CAAY,MAAA;IAAU,QAAA;EAAA;EA9FnB;;;;;;EAyGG,WAAA,CAAY,WAAA,EAAa,UAAA,KAAe,cAAA,KAAmB,OAAA,CAAQ,CAAA;AAAA"}
1
+ {"version":3,"file":"openai_functions.d.ts","names":[],"sources":["../../src/output_parsers/openai_functions.ts"],"mappings":";;;;;;;;;AAmBA;KAAY,kBAAA,GAAqB,QAAA,CAC/B,qBAAA;;;;AAQF;cAAa,qBAAA,SAA8B,mBAAA;EAAA,OAClC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,QAAA;EAEA,WAAA,CAAY,MAAA;IAAW,QAAA;EAAA;EAXkB;;;;;;EAsBnC,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA;AAAA;;;;;cA8BQ,yBAAA,yCAEH,mCAAA,CAAoC,MAAA;EAAA,OACrC,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAc,qBAAA;EAEd,QAAA;EAEA,WAAA,CACE,MAAA;IAAW,QAAA;EAAA,IAAuB,wCAAA;EAAA,UAO1B,KAAA,CACR,IAAA,uBACA,IAAA,YACC,SAAA;EAQG,kBAAA,CACJ,WAAA,EAAa,cAAA,KACZ,OAAA,CAAQ,MAAA;EAAA;;;;;;EA0BL,WAAA,CACJ,WAAA,EAAa,UAAA,KAAe,cAAA,KAC3B,OAAA,CAAQ,MAAA;EAUL,KAAA,CAAM,IAAA,WAAe,OAAA,CAAQ,MAAA;EAenC,qBAAA,CAAA;AAAA;;;;;;cAUW,4BAAA,qBAEH,mBAAA,CAAoB,CAAA;EAAA,OACrB,OAAA,CAAA;EAIP,YAAA;EAEA,eAAA;EAEA,YAAA,EAAY,yBAAA;EAEZ,QAAA;EAAA,IAEI,UAAA,CAAA;IAEA,QAAA;EAAA;EAIJ,WAAA,CAAY,MAAA;IAAU,QAAA;EAAA;EA9FnB;;;;;;EAyGG,WAAA,CAAY,WAAA,EAAa,UAAA,KAAe,cAAA,KAAmB,OAAA,CAAQ,CAAA;AAAA"}