@hashgraphonline/standards-agent-kit 0.0.18 → 0.0.19

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 (430) hide show
  1. package/README.md +83 -0
  2. package/dist/_virtual/_commonjsHelpers.js +7 -0
  3. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  4. package/dist/_virtual/index.js +8 -0
  5. package/dist/_virtual/index.js.map +1 -0
  6. package/dist/_virtual/index10.js +5 -0
  7. package/dist/_virtual/index10.js.map +1 -0
  8. package/dist/_virtual/index11.js +5 -0
  9. package/dist/_virtual/index11.js.map +1 -0
  10. package/dist/_virtual/index12.js +8 -0
  11. package/dist/_virtual/index12.js.map +1 -0
  12. package/dist/_virtual/index13.js +5 -0
  13. package/dist/_virtual/index13.js.map +1 -0
  14. package/dist/_virtual/index14.js +5 -0
  15. package/dist/_virtual/index14.js.map +1 -0
  16. package/dist/_virtual/index2.js +3 -0
  17. package/dist/_virtual/index2.js.map +1 -0
  18. package/dist/_virtual/index3.js +8 -0
  19. package/dist/_virtual/index3.js.map +1 -0
  20. package/dist/_virtual/index4.js +8 -0
  21. package/dist/_virtual/index4.js.map +1 -0
  22. package/dist/_virtual/index5.js +6 -0
  23. package/dist/_virtual/index5.js.map +1 -0
  24. package/dist/_virtual/index6.js +8 -0
  25. package/dist/_virtual/index6.js.map +1 -0
  26. package/dist/_virtual/index7.js +5 -0
  27. package/dist/_virtual/index7.js.map +1 -0
  28. package/dist/_virtual/index8.js +5 -0
  29. package/dist/_virtual/index8.js.map +1 -0
  30. package/dist/_virtual/index9.js +5 -0
  31. package/dist/_virtual/index9.js.map +1 -0
  32. package/dist/_virtual/lower-bound.js +5 -0
  33. package/dist/_virtual/lower-bound.js.map +1 -0
  34. package/dist/_virtual/priority-queue.js +5 -0
  35. package/dist/_virtual/priority-queue.js.map +1 -0
  36. package/dist/_virtual/re.js +5 -0
  37. package/dist/_virtual/re.js.map +1 -0
  38. package/dist/_virtual/retry.js +5 -0
  39. package/dist/_virtual/retry.js.map +1 -0
  40. package/dist/agents/index.d.ts +0 -0
  41. package/dist/hcs10/HCS10Client.d.ts +117 -0
  42. package/dist/hcs10/HCS10Client.js +251 -0
  43. package/dist/hcs10/HCS10Client.js.map +1 -0
  44. package/dist/hcs10/index.d.ts +1 -0
  45. package/dist/hcs10/types.d.ts +35 -0
  46. package/dist/index.d.ts +5 -2
  47. package/dist/index.es.js +9747 -11699
  48. package/dist/index.es.js.map +1 -1
  49. package/dist/index.js +44 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/init.d.ts +59 -0
  52. package/dist/init.js +92 -0
  53. package/dist/init.js.map +1 -0
  54. package/dist/node_modules/@langchain/core/dist/callbacks/base.js +98 -0
  55. package/dist/node_modules/@langchain/core/dist/callbacks/base.js.map +1 -0
  56. package/dist/node_modules/@langchain/core/dist/callbacks/manager.js +419 -0
  57. package/dist/node_modules/@langchain/core/dist/callbacks/manager.js.map +1 -0
  58. package/dist/node_modules/@langchain/core/dist/callbacks/promises.js +16 -0
  59. package/dist/node_modules/@langchain/core/dist/callbacks/promises.js.map +1 -0
  60. package/dist/node_modules/@langchain/core/dist/language_models/base.js +42 -0
  61. package/dist/node_modules/@langchain/core/dist/language_models/base.js.map +1 -0
  62. package/dist/node_modules/@langchain/core/dist/load/map_keys.js +16 -0
  63. package/dist/node_modules/@langchain/core/dist/load/map_keys.js.map +1 -0
  64. package/dist/node_modules/@langchain/core/dist/load/serializable.js +121 -0
  65. package/dist/node_modules/@langchain/core/dist/load/serializable.js.map +1 -0
  66. package/dist/node_modules/@langchain/core/dist/messages/ai.js +95 -0
  67. package/dist/node_modules/@langchain/core/dist/messages/ai.js.map +1 -0
  68. package/dist/node_modules/@langchain/core/dist/messages/base.js +112 -0
  69. package/dist/node_modules/@langchain/core/dist/messages/base.js.map +1 -0
  70. package/dist/node_modules/@langchain/core/dist/messages/utils.js +30 -0
  71. package/dist/node_modules/@langchain/core/dist/messages/utils.js.map +1 -0
  72. package/dist/node_modules/@langchain/core/dist/runnables/base.js +1277 -0
  73. package/dist/node_modules/@langchain/core/dist/runnables/base.js.map +1 -0
  74. package/dist/node_modules/@langchain/core/dist/runnables/config.js +83 -0
  75. package/dist/node_modules/@langchain/core/dist/runnables/config.js.map +1 -0
  76. package/dist/node_modules/@langchain/core/dist/runnables/graph.js +106 -0
  77. package/dist/node_modules/@langchain/core/dist/runnables/graph.js.map +1 -0
  78. package/dist/node_modules/@langchain/core/dist/runnables/iter.js +33 -0
  79. package/dist/node_modules/@langchain/core/dist/runnables/iter.js.map +1 -0
  80. package/dist/node_modules/@langchain/core/dist/runnables/utils.js +54 -0
  81. package/dist/node_modules/@langchain/core/dist/runnables/utils.js.map +1 -0
  82. package/dist/node_modules/@langchain/core/dist/runnables/wrappers.js +20 -0
  83. package/dist/node_modules/@langchain/core/dist/runnables/wrappers.js.map +1 -0
  84. package/dist/node_modules/@langchain/core/dist/singletons/index.js +34 -0
  85. package/dist/node_modules/@langchain/core/dist/singletons/index.js.map +1 -0
  86. package/dist/node_modules/@langchain/core/dist/tools.js +69 -0
  87. package/dist/node_modules/@langchain/core/dist/tools.js.map +1 -0
  88. package/dist/node_modules/@langchain/core/dist/tracers/base.js +299 -0
  89. package/dist/node_modules/@langchain/core/dist/tracers/base.js.map +1 -0
  90. package/dist/node_modules/@langchain/core/dist/tracers/console.js +193 -0
  91. package/dist/node_modules/@langchain/core/dist/tracers/console.js.map +1 -0
  92. package/dist/node_modules/@langchain/core/dist/tracers/initialize.js +10 -0
  93. package/dist/node_modules/@langchain/core/dist/tracers/initialize.js.map +1 -0
  94. package/dist/node_modules/@langchain/core/dist/tracers/log_stream.js +284 -0
  95. package/dist/node_modules/@langchain/core/dist/tracers/log_stream.js.map +1 -0
  96. package/dist/node_modules/@langchain/core/dist/tracers/root_listener.js +54 -0
  97. package/dist/node_modules/@langchain/core/dist/tracers/root_listener.js.map +1 -0
  98. package/dist/node_modules/@langchain/core/dist/tracers/tracer_langchain.js +68 -0
  99. package/dist/node_modules/@langchain/core/dist/tracers/tracer_langchain.js.map +1 -0
  100. package/dist/node_modules/@langchain/core/dist/utils/async_caller.js +86 -0
  101. package/dist/node_modules/@langchain/core/dist/utils/async_caller.js.map +1 -0
  102. package/dist/node_modules/@langchain/core/dist/utils/env.js +33 -0
  103. package/dist/node_modules/@langchain/core/dist/utils/env.js.map +1 -0
  104. package/dist/node_modules/@langchain/core/dist/utils/fast-json-patch/core.js +218 -0
  105. package/dist/node_modules/@langchain/core/dist/utils/fast-json-patch/core.js.map +1 -0
  106. package/dist/node_modules/@langchain/core/dist/utils/fast-json-patch/helpers.js +117 -0
  107. package/dist/node_modules/@langchain/core/dist/utils/fast-json-patch/helpers.js.map +1 -0
  108. package/dist/node_modules/@langchain/core/dist/utils/json.js +40 -0
  109. package/dist/node_modules/@langchain/core/dist/utils/json.js.map +1 -0
  110. package/dist/node_modules/@langchain/core/dist/utils/stream.js +164 -0
  111. package/dist/node_modules/@langchain/core/dist/utils/stream.js.map +1 -0
  112. package/dist/node_modules/@langchain/core/node_modules/ansi-styles/index.js +111 -0
  113. package/dist/node_modules/@langchain/core/node_modules/ansi-styles/index.js.map +1 -0
  114. package/dist/node_modules/@langchain/core/node_modules/camelcase/index.js +30 -0
  115. package/dist/node_modules/@langchain/core/node_modules/camelcase/index.js.map +1 -0
  116. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/client.js +2002 -0
  117. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/client.js.map +1 -0
  118. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/index.js +8 -0
  119. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/index.js.map +1 -0
  120. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/singletons/fetch.js +5 -0
  121. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/singletons/fetch.js.map +1 -0
  122. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/_uuid.js +12 -0
  123. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/_uuid.js.map +1 -0
  124. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/async_caller.js +94 -0
  125. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/async_caller.js.map +1 -0
  126. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/env.js +96 -0
  127. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/env.js.map +1 -0
  128. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/error.js +20 -0
  129. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/error.js.map +1 -0
  130. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/fast-safe-stringify/index.js +82 -0
  131. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/fast-safe-stringify/index.js.map +1 -0
  132. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/messages.js +15 -0
  133. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/messages.js.map +1 -0
  134. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/prompts.js +27 -0
  135. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/prompts.js.map +1 -0
  136. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/warn.js +8 -0
  137. package/dist/node_modules/@langchain/core/node_modules/langsmith/dist/utils/warn.js.map +1 -0
  138. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/native.js +8 -0
  139. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
  140. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  141. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  142. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/rng.js +10 -0
  143. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  144. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/stringify.js +10 -0
  145. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  146. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/v4.js +14 -0
  147. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  148. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  149. package/dist/node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  150. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/native.js +7 -0
  151. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
  152. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  153. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  154. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  155. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  156. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/stringify.js +10 -0
  157. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  158. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/v4.js +14 -0
  159. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  160. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  161. package/dist/node_modules/@langchain/core/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  162. package/dist/node_modules/base64-js/index.js +53 -0
  163. package/dist/node_modules/base64-js/index.js.map +1 -0
  164. package/dist/node_modules/decamelize/index.js +12 -0
  165. package/dist/node_modules/decamelize/index.js.map +1 -0
  166. package/dist/node_modules/eventemitter3/index.js +112 -0
  167. package/dist/node_modules/eventemitter3/index.js.map +1 -0
  168. package/dist/node_modules/js-tiktoken/dist/chunk-Z5MDQTGX.js +117 -0
  169. package/dist/node_modules/js-tiktoken/dist/chunk-Z5MDQTGX.js.map +1 -0
  170. package/dist/node_modules/p-finally/index.js +18 -0
  171. package/dist/node_modules/p-finally/index.js.map +1 -0
  172. package/dist/node_modules/p-queue/dist/index.js +198 -0
  173. package/dist/node_modules/p-queue/dist/index.js.map +1 -0
  174. package/dist/node_modules/p-queue/dist/lower-bound.js +20 -0
  175. package/dist/node_modules/p-queue/dist/lower-bound.js.map +1 -0
  176. package/dist/node_modules/p-queue/dist/priority-queue.js +41 -0
  177. package/dist/node_modules/p-queue/dist/priority-queue.js.map +1 -0
  178. package/dist/node_modules/p-retry/index.js +63 -0
  179. package/dist/node_modules/p-retry/index.js.map +1 -0
  180. package/dist/node_modules/p-timeout/index.js +45 -0
  181. package/dist/node_modules/p-timeout/index.js.map +1 -0
  182. package/dist/node_modules/retry/index.js +9 -0
  183. package/dist/node_modules/retry/index.js.map +1 -0
  184. package/dist/node_modules/retry/lib/retry.js +59 -0
  185. package/dist/node_modules/retry/lib/retry.js.map +1 -0
  186. package/dist/node_modules/retry/lib/retry_operation.js +58 -0
  187. package/dist/node_modules/retry/lib/retry_operation.js.map +1 -0
  188. package/dist/node_modules/semver/classes/comparator.js +57 -0
  189. package/dist/node_modules/semver/classes/comparator.js.map +1 -0
  190. package/dist/node_modules/semver/classes/range.js +149 -0
  191. package/dist/node_modules/semver/classes/range.js.map +1 -0
  192. package/dist/node_modules/semver/classes/semver.js +170 -0
  193. package/dist/node_modules/semver/classes/semver.js.map +1 -0
  194. package/dist/node_modules/semver/functions/clean.js +15 -0
  195. package/dist/node_modules/semver/functions/clean.js.map +1 -0
  196. package/dist/node_modules/semver/functions/cmp.js +40 -0
  197. package/dist/node_modules/semver/functions/cmp.js.map +1 -0
  198. package/dist/node_modules/semver/functions/coerce.js +34 -0
  199. package/dist/node_modules/semver/functions/coerce.js.map +1 -0
  200. package/dist/node_modules/semver/functions/compare-build.js +15 -0
  201. package/dist/node_modules/semver/functions/compare-build.js.map +1 -0
  202. package/dist/node_modules/semver/functions/compare-loose.js +12 -0
  203. package/dist/node_modules/semver/functions/compare-loose.js.map +1 -0
  204. package/dist/node_modules/semver/functions/compare.js +12 -0
  205. package/dist/node_modules/semver/functions/compare.js.map +1 -0
  206. package/dist/node_modules/semver/functions/diff.js +25 -0
  207. package/dist/node_modules/semver/functions/diff.js.map +1 -0
  208. package/dist/node_modules/semver/functions/eq.js +12 -0
  209. package/dist/node_modules/semver/functions/eq.js.map +1 -0
  210. package/dist/node_modules/semver/functions/gt.js +12 -0
  211. package/dist/node_modules/semver/functions/gt.js.map +1 -0
  212. package/dist/node_modules/semver/functions/gte.js +12 -0
  213. package/dist/node_modules/semver/functions/gte.js.map +1 -0
  214. package/dist/node_modules/semver/functions/inc.js +22 -0
  215. package/dist/node_modules/semver/functions/inc.js.map +1 -0
  216. package/dist/node_modules/semver/functions/lt.js +12 -0
  217. package/dist/node_modules/semver/functions/lt.js.map +1 -0
  218. package/dist/node_modules/semver/functions/lte.js +12 -0
  219. package/dist/node_modules/semver/functions/lte.js.map +1 -0
  220. package/dist/node_modules/semver/functions/major.js +12 -0
  221. package/dist/node_modules/semver/functions/major.js.map +1 -0
  222. package/dist/node_modules/semver/functions/minor.js +12 -0
  223. package/dist/node_modules/semver/functions/minor.js.map +1 -0
  224. package/dist/node_modules/semver/functions/neq.js +12 -0
  225. package/dist/node_modules/semver/functions/neq.js.map +1 -0
  226. package/dist/node_modules/semver/functions/parse.js +22 -0
  227. package/dist/node_modules/semver/functions/parse.js.map +1 -0
  228. package/dist/node_modules/semver/functions/patch.js +12 -0
  229. package/dist/node_modules/semver/functions/patch.js.map +1 -0
  230. package/dist/node_modules/semver/functions/prerelease.js +15 -0
  231. package/dist/node_modules/semver/functions/prerelease.js.map +1 -0
  232. package/dist/node_modules/semver/functions/rcompare.js +12 -0
  233. package/dist/node_modules/semver/functions/rcompare.js.map +1 -0
  234. package/dist/node_modules/semver/functions/rsort.js +12 -0
  235. package/dist/node_modules/semver/functions/rsort.js.map +1 -0
  236. package/dist/node_modules/semver/functions/satisfies.js +19 -0
  237. package/dist/node_modules/semver/functions/satisfies.js.map +1 -0
  238. package/dist/node_modules/semver/functions/sort.js +12 -0
  239. package/dist/node_modules/semver/functions/sort.js.map +1 -0
  240. package/dist/node_modules/semver/functions/valid.js +15 -0
  241. package/dist/node_modules/semver/functions/valid.js.map +1 -0
  242. package/dist/node_modules/semver/index.js +98 -0
  243. package/dist/node_modules/semver/index.js.map +1 -0
  244. package/dist/node_modules/semver/internal/constants.js +29 -0
  245. package/dist/node_modules/semver/internal/constants.js.map +1 -0
  246. package/dist/node_modules/semver/internal/debug.js +9 -0
  247. package/dist/node_modules/semver/internal/debug.js.map +1 -0
  248. package/dist/node_modules/semver/internal/identifiers.js +17 -0
  249. package/dist/node_modules/semver/internal/identifiers.js.map +1 -0
  250. package/dist/node_modules/semver/internal/lrucache.js +33 -0
  251. package/dist/node_modules/semver/internal/lrucache.js.map +1 -0
  252. package/dist/node_modules/semver/internal/parse-options.js +11 -0
  253. package/dist/node_modules/semver/internal/parse-options.js.map +1 -0
  254. package/dist/node_modules/semver/internal/re.js +33 -0
  255. package/dist/node_modules/semver/internal/re.js.map +1 -0
  256. package/dist/node_modules/semver/ranges/gtr.js +12 -0
  257. package/dist/node_modules/semver/ranges/gtr.js.map +1 -0
  258. package/dist/node_modules/semver/ranges/intersects.js +12 -0
  259. package/dist/node_modules/semver/ranges/intersects.js.map +1 -0
  260. package/dist/node_modules/semver/ranges/ltr.js +12 -0
  261. package/dist/node_modules/semver/ranges/ltr.js.map +1 -0
  262. package/dist/node_modules/semver/ranges/max-satisfying.js +23 -0
  263. package/dist/node_modules/semver/ranges/max-satisfying.js.map +1 -0
  264. package/dist/node_modules/semver/ranges/min-satisfying.js +23 -0
  265. package/dist/node_modules/semver/ranges/min-satisfying.js.map +1 -0
  266. package/dist/node_modules/semver/ranges/min-version.js +43 -0
  267. package/dist/node_modules/semver/ranges/min-version.js.map +1 -0
  268. package/dist/node_modules/semver/ranges/outside.js +45 -0
  269. package/dist/node_modules/semver/ranges/outside.js.map +1 -0
  270. package/dist/node_modules/semver/ranges/simplify.js +25 -0
  271. package/dist/node_modules/semver/ranges/simplify.js.map +1 -0
  272. package/dist/node_modules/semver/ranges/subset.js +95 -0
  273. package/dist/node_modules/semver/ranges/subset.js.map +1 -0
  274. package/dist/node_modules/semver/ranges/to-comparators.js +12 -0
  275. package/dist/node_modules/semver/ranges/to-comparators.js.map +1 -0
  276. package/dist/node_modules/semver/ranges/valid.js +18 -0
  277. package/dist/node_modules/semver/ranges/valid.js.map +1 -0
  278. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js +32 -0
  279. package/dist/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -0
  280. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js +22 -0
  281. package/dist/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -0
  282. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +14 -0
  283. package/dist/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -0
  284. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js +44 -0
  285. package/dist/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -0
  286. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +7 -0
  287. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -0
  288. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +17 -0
  289. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -0
  290. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +26 -0
  291. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -0
  292. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +9 -0
  293. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -0
  294. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +8 -0
  295. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -0
  296. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +6 -0
  297. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -0
  298. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +59 -0
  299. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -0
  300. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +11 -0
  301. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -0
  302. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +8 -0
  303. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -0
  304. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +10 -0
  305. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -0
  306. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +36 -0
  307. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -0
  308. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +16 -0
  309. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -0
  310. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +27 -0
  311. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -0
  312. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +11 -0
  313. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -0
  314. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +9 -0
  315. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -0
  316. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +12 -0
  317. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -0
  318. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +30 -0
  319. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -0
  320. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +28 -0
  321. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -0
  322. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +50 -0
  323. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -0
  324. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +22 -0
  325. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -0
  326. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +21 -0
  327. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -0
  328. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +8 -0
  329. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -0
  330. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +6 -0
  331. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -0
  332. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +56 -0
  333. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -0
  334. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +17 -0
  335. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -0
  336. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +245 -0
  337. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -0
  338. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +27 -0
  339. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -0
  340. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +9 -0
  341. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -0
  342. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +69 -0
  343. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -0
  344. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +7 -0
  345. package/dist/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -0
  346. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js +110 -0
  347. package/dist/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -0
  348. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +26 -0
  349. package/dist/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -0
  350. package/dist/plugins/BasePlugin.d.ts +28 -0
  351. package/dist/plugins/BasePlugin.js +19 -0
  352. package/dist/plugins/BasePlugin.js.map +1 -0
  353. package/dist/plugins/PluginInterface.d.ts +64 -0
  354. package/dist/plugins/PluginLoader.d.ts +38 -0
  355. package/dist/plugins/PluginLoader.js +60 -0
  356. package/dist/plugins/PluginLoader.js.map +1 -0
  357. package/dist/plugins/PluginRegistry.d.ts +47 -0
  358. package/dist/plugins/PluginRegistry.js +71 -0
  359. package/dist/plugins/PluginRegistry.js.map +1 -0
  360. package/dist/plugins/__tests__/BasePlugin.test.d.ts +1 -0
  361. package/dist/plugins/__tests__/PluginLoader.test.d.ts +1 -0
  362. package/dist/plugins/__tests__/PluginRegistry.test.d.ts +1 -0
  363. package/dist/plugins/defi/index.d.ts +13 -0
  364. package/dist/plugins/hedera/HbarPricePlugin.d.ts +45 -0
  365. package/dist/plugins/hedera/HbarPricePlugin.js +70 -0
  366. package/dist/plugins/hedera/HbarPricePlugin.js.map +1 -0
  367. package/dist/plugins/hedera/__tests__/HbarPricePlugin.test.d.ts +1 -0
  368. package/dist/plugins/index.d.ts +5 -0
  369. package/dist/plugins/weather/index.d.ts +15 -0
  370. package/dist/src/agents/index.d.ts +0 -0
  371. package/dist/src/plugins/hedera/HbarPricePlugin.d.ts +45 -0
  372. package/dist/src/plugins/index.d.ts +1 -0
  373. package/dist/src/tools/CheckMessagesTool.d.ts +9 -2
  374. package/dist/src/utils/state-tools.d.ts +23 -0
  375. package/dist/state/index.d.ts +2 -0
  376. package/dist/state/open-convai-state.d.ts +84 -0
  377. package/dist/state/open-convai-state.js +132 -0
  378. package/dist/state/open-convai-state.js.map +1 -0
  379. package/dist/state/state-types.d.ts +143 -0
  380. package/dist/tools/AcceptConnectionRequestTool.d.ts +33 -0
  381. package/dist/tools/AcceptConnectionRequestTool.js +116 -0
  382. package/dist/tools/AcceptConnectionRequestTool.js.map +1 -0
  383. package/dist/tools/CheckMessagesTool.d.ts +34 -0
  384. package/dist/tools/CheckMessagesTool.js +96 -0
  385. package/dist/tools/CheckMessagesTool.js.map +1 -0
  386. package/dist/tools/ConnectionMonitorTool.d.ts +96 -0
  387. package/dist/tools/ConnectionMonitorTool.js +289 -0
  388. package/dist/tools/ConnectionMonitorTool.js.map +1 -0
  389. package/dist/tools/ConnectionTool.d.ts +40 -0
  390. package/dist/tools/ConnectionTool.js +114 -0
  391. package/dist/tools/ConnectionTool.js.map +1 -0
  392. package/dist/tools/FindRegistrationsTool.d.ts +27 -0
  393. package/dist/tools/FindRegistrationsTool.js +64 -0
  394. package/dist/tools/FindRegistrationsTool.js.map +1 -0
  395. package/dist/tools/InitiateConnectionTool.d.ts +30 -0
  396. package/dist/tools/InitiateConnectionTool.js +79 -0
  397. package/dist/tools/InitiateConnectionTool.js.map +1 -0
  398. package/dist/tools/ListConnectionsTool.d.ts +33 -0
  399. package/dist/tools/ListConnectionsTool.js +327 -0
  400. package/dist/tools/ListConnectionsTool.js.map +1 -0
  401. package/dist/tools/ListUnapprovedConnectionRequestsTool.d.ts +53 -0
  402. package/dist/tools/ListUnapprovedConnectionRequestsTool.js +177 -0
  403. package/dist/tools/ListUnapprovedConnectionRequestsTool.js.map +1 -0
  404. package/dist/tools/ManageConnectionRequestsTool.d.ts +39 -0
  405. package/dist/tools/ManageConnectionRequestsTool.js +161 -0
  406. package/dist/tools/ManageConnectionRequestsTool.js.map +1 -0
  407. package/dist/tools/RegisterAgentTool.d.ts +188 -0
  408. package/dist/tools/RegisterAgentTool.js +331 -0
  409. package/dist/tools/RegisterAgentTool.js.map +1 -0
  410. package/dist/tools/RetrieveProfileTool.d.ts +34 -0
  411. package/dist/tools/RetrieveProfileTool.js +53 -0
  412. package/dist/tools/RetrieveProfileTool.js.map +1 -0
  413. package/dist/tools/SendMessageToConnectionTool.d.ts +31 -0
  414. package/dist/tools/SendMessageToConnectionTool.js +74 -0
  415. package/dist/tools/SendMessageToConnectionTool.js.map +1 -0
  416. package/dist/tools/SendMessageTool.d.ts +44 -0
  417. package/dist/tools/SendMessageTool.js +75 -0
  418. package/dist/tools/SendMessageTool.js.map +1 -0
  419. package/dist/tools/index.d.ts +13 -0
  420. package/dist/utils/Encryption.d.ts +7 -0
  421. package/dist/utils/Encryption.js +7 -0
  422. package/dist/utils/Encryption.js.map +1 -0
  423. package/dist/utils/HederaClient.d.ts +18 -0
  424. package/dist/utils/connectionUtils.d.ts +15 -0
  425. package/dist/utils/connectionUtils.js +64 -0
  426. package/dist/utils/connectionUtils.js.map +1 -0
  427. package/dist/utils/state-tools.d.ts +23 -0
  428. package/dist/utils/state-tools.js +90 -0
  429. package/dist/utils/state-tools.js.map +1 -0
  430. package/package.json +20 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sources":["../../../../../../node_modules/@langchain/core/dist/runnables/base.js"],"sourcesContent":["import { z } from \"zod\";\nimport pRetry from \"p-retry\";\nimport { CallbackManager, } from \"../callbacks/manager.js\";\nimport { LogStreamCallbackHandler, RunLog, RunLogPatch, } from \"../tracers/log_stream.js\";\nimport { Serializable } from \"../load/serializable.js\";\nimport { IterableReadableStream, concat, atee, pipeGeneratorWithSetup, AsyncGeneratorWithSetup, } from \"../utils/stream.js\";\nimport { DEFAULT_RECURSION_LIMIT, ensureConfig, getCallbackManagerForConfig, mergeConfigs, patchConfig, } from \"./config.js\";\nimport { AsyncCaller } from \"../utils/async_caller.js\";\nimport { RootListenersTracer } from \"../tracers/root_listener.js\";\nimport { _RootEventFilter, isRunnableInterface } from \"./utils.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../singletons/index.js\";\nimport { Graph } from \"./graph.js\";\nimport { convertToHttpEventStream } from \"./wrappers.js\";\nimport { consumeAsyncIterableInContext, consumeIteratorInContext, isAsyncIterable, isIterator, } from \"./iter.js\";\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _coerceToDict(value, defaultKey) {\n return value &&\n !Array.isArray(value) &&\n // eslint-disable-next-line no-instanceof/no-instanceof\n !(value instanceof Date) &&\n typeof value === \"object\"\n ? value\n : { [defaultKey]: value };\n}\n/**\n * A Runnable is a generic unit of work that can be invoked, batched, streamed, and/or\n * transformed.\n */\nexport class Runnable extends Serializable {\n constructor() {\n super(...arguments);\n Object.defineProperty(this, \"lc_runnable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n }\n getName(suffix) {\n const name = \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.name ?? this.constructor.lc_name() ?? this.constructor.name;\n return suffix ? `${name}${suffix}` : name;\n }\n /**\n * Bind arguments to a Runnable, returning a new Runnable.\n * @param kwargs\n * @returns A new RunnableBinding that, when invoked, will apply the bound args.\n */\n bind(kwargs) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new RunnableBinding({ bound: this, kwargs, config: {} });\n }\n /**\n * Return a new Runnable that maps a list of inputs to a list of outputs,\n * by calling invoke() with each input.\n */\n map() {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new RunnableEach({ bound: this });\n }\n /**\n * Add retry logic to an existing runnable.\n * @param kwargs\n * @returns A new RunnableRetry that, when invoked, will retry according to the parameters.\n */\n withRetry(fields) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new RunnableRetry({\n bound: this,\n kwargs: {},\n config: {},\n maxAttemptNumber: fields?.stopAfterAttempt,\n ...fields,\n });\n }\n /**\n * Bind config to a Runnable, returning a new Runnable.\n * @param config New configuration parameters to attach to the new runnable.\n * @returns A new RunnableBinding with a config matching what's passed.\n */\n withConfig(config) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new RunnableBinding({\n bound: this,\n config,\n kwargs: {},\n });\n }\n /**\n * Create a new runnable from the current one that will try invoking\n * other passed fallback runnables if the initial invocation fails.\n * @param fields.fallbacks Other runnables to call if the runnable errors.\n * @returns A new RunnableWithFallbacks.\n */\n withFallbacks(fields) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new RunnableWithFallbacks({\n runnable: this,\n fallbacks: fields.fallbacks,\n });\n }\n _getOptionsList(options, length = 0) {\n if (Array.isArray(options) && options.length !== length) {\n throw new Error(`Passed \"options\" must be an array with the same length as the inputs, but got ${options.length} options for ${length} inputs`);\n }\n if (Array.isArray(options)) {\n return options.map(ensureConfig);\n }\n if (length > 1 && !Array.isArray(options) && options.runId) {\n console.warn(\"Provided runId will be used only for the first element of the batch.\");\n const subsequent = Object.fromEntries(Object.entries(options).filter(([key]) => key !== \"runId\"));\n return Array.from({ length }, (_, i) => ensureConfig(i === 0 ? options : subsequent));\n }\n return Array.from({ length }, () => ensureConfig(options));\n }\n async batch(inputs, options, batchOptions) {\n const configList = this._getOptionsList(options ?? {}, inputs.length);\n const maxConcurrency = configList[0]?.maxConcurrency ?? batchOptions?.maxConcurrency;\n const caller = new AsyncCaller({\n maxConcurrency,\n onFailedAttempt: (e) => {\n throw e;\n },\n });\n const batchCalls = inputs.map((input, i) => caller.call(async () => {\n try {\n const result = await this.invoke(input, configList[i]);\n return result;\n }\n catch (e) {\n if (batchOptions?.returnExceptions) {\n return e;\n }\n throw e;\n }\n }));\n return Promise.all(batchCalls);\n }\n /**\n * Default streaming implementation.\n * Subclasses should override this method if they support streaming output.\n * @param input\n * @param options\n */\n async *_streamIterator(input, options) {\n yield this.invoke(input, options);\n }\n /**\n * Stream output in chunks.\n * @param input\n * @param options\n * @returns A readable stream that is also an iterable.\n */\n async stream(input, options) {\n // Buffer the first streamed chunk to allow for initial errors\n // to surface immediately.\n const wrappedGenerator = new AsyncGeneratorWithSetup(this._streamIterator(input, ensureConfig(options)));\n await wrappedGenerator.setup;\n return IterableReadableStream.fromAsyncGenerator(wrappedGenerator);\n }\n _separateRunnableConfigFromCallOptions(options) {\n let runnableConfig;\n if (options === undefined) {\n runnableConfig = ensureConfig(options);\n }\n else {\n runnableConfig = ensureConfig({\n callbacks: options.callbacks,\n tags: options.tags,\n metadata: options.metadata,\n runName: options.runName,\n configurable: options.configurable,\n recursionLimit: options.recursionLimit,\n maxConcurrency: options.maxConcurrency,\n runId: options.runId,\n });\n }\n const callOptions = { ...options };\n delete callOptions.callbacks;\n delete callOptions.tags;\n delete callOptions.metadata;\n delete callOptions.runName;\n delete callOptions.configurable;\n delete callOptions.recursionLimit;\n delete callOptions.maxConcurrency;\n delete callOptions.runId;\n return [runnableConfig, callOptions];\n }\n async _callWithConfig(func, input, options) {\n const config = ensureConfig(options);\n const callbackManager_ = await getCallbackManagerForConfig(config);\n const runManager = await callbackManager_?.handleChainStart(this.toJSON(), _coerceToDict(input, \"input\"), config.runId, config?.runType, undefined, undefined, config?.runName ?? this.getName());\n delete config.runId;\n let output;\n try {\n output = await func.call(this, input, config, runManager);\n }\n catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n await runManager?.handleChainEnd(_coerceToDict(output, \"output\"));\n return output;\n }\n /**\n * Internal method that handles batching and configuration for a runnable\n * It takes a function, input values, and optional configuration, and\n * returns a promise that resolves to the output values.\n * @param func The function to be executed for each input value.\n * @param input The input values to be processed.\n * @param config Optional configuration for the function execution.\n * @returns A promise that resolves to the output values.\n */\n async _batchWithConfig(func, inputs, options, batchOptions) {\n const optionsList = this._getOptionsList(options ?? {}, inputs.length);\n const callbackManagers = await Promise.all(optionsList.map(getCallbackManagerForConfig));\n const runManagers = await Promise.all(callbackManagers.map(async (callbackManager, i) => {\n const handleStartRes = await callbackManager?.handleChainStart(this.toJSON(), _coerceToDict(inputs[i], \"input\"), optionsList[i].runId, optionsList[i].runType, undefined, undefined, optionsList[i].runName ?? this.getName());\n delete optionsList[i].runId;\n return handleStartRes;\n }));\n let outputs;\n try {\n outputs = await func.call(this, inputs, optionsList, runManagers, batchOptions);\n }\n catch (e) {\n await Promise.all(runManagers.map((runManager) => runManager?.handleChainError(e)));\n throw e;\n }\n await Promise.all(runManagers.map((runManager) => runManager?.handleChainEnd(_coerceToDict(outputs, \"output\"))));\n return outputs;\n }\n /**\n * Helper method to transform an Iterator of Input values into an Iterator of\n * Output values, with callbacks.\n * Use this to implement `stream()` or `transform()` in Runnable subclasses.\n */\n async *_transformStreamWithConfig(inputGenerator, transformer, options) {\n let finalInput;\n let finalInputSupported = true;\n let finalOutput;\n let finalOutputSupported = true;\n const config = ensureConfig(options);\n const callbackManager_ = await getCallbackManagerForConfig(config);\n async function* wrapInputForTracing() {\n for await (const chunk of inputGenerator) {\n if (finalInputSupported) {\n if (finalInput === undefined) {\n finalInput = chunk;\n }\n else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalInput = concat(finalInput, chunk);\n }\n catch {\n finalInput = undefined;\n finalInputSupported = false;\n }\n }\n }\n yield chunk;\n }\n }\n let runManager;\n try {\n const pipe = await pipeGeneratorWithSetup(transformer.bind(this), wrapInputForTracing(), async () => callbackManager_?.handleChainStart(this.toJSON(), { input: \"\" }, config.runId, config.runType, undefined, undefined, config.runName ?? this.getName()), config);\n delete config.runId;\n runManager = pipe.setup;\n const isLogStreamHandler = (handler) => handler.name === \"log_stream_tracer\";\n const streamLogHandler = runManager?.handlers.find(isLogStreamHandler);\n let iterator = pipe.output;\n if (streamLogHandler !== undefined && runManager !== undefined) {\n iterator = await streamLogHandler.tapOutputIterable(runManager.runId, pipe.output);\n }\n for await (const chunk of iterator) {\n yield chunk;\n if (finalOutputSupported) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n }\n else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, chunk);\n }\n catch {\n finalOutput = undefined;\n finalOutputSupported = false;\n }\n }\n }\n }\n }\n catch (e) {\n await runManager?.handleChainError(e, undefined, undefined, undefined, {\n inputs: _coerceToDict(finalInput, \"input\"),\n });\n throw e;\n }\n await runManager?.handleChainEnd(finalOutput ?? {}, undefined, undefined, undefined, { inputs: _coerceToDict(finalInput, \"input\") });\n }\n getGraph(_) {\n const graph = new Graph();\n // TODO: Add input schema for runnables\n const inputNode = graph.addNode({\n name: `${this.getName()}Input`,\n schema: z.any(),\n });\n const runnableNode = graph.addNode(this);\n // TODO: Add output schemas for runnables\n const outputNode = graph.addNode({\n name: `${this.getName()}Output`,\n schema: z.any(),\n });\n graph.addEdge(inputNode, runnableNode);\n graph.addEdge(runnableNode, outputNode);\n return graph;\n }\n /**\n * Create a new runnable sequence that runs each individual runnable in series,\n * piping the output of one runnable into another runnable or runnable-like.\n * @param coerceable A runnable, function, or object whose values are functions or runnables.\n * @returns A new runnable sequence.\n */\n pipe(coerceable) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new RunnableSequence({\n first: this,\n last: _coerceToRunnable(coerceable),\n });\n }\n /**\n * Pick keys from the dict output of this runnable. Returns a new runnable.\n */\n pick(keys) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return this.pipe(new RunnablePick(keys));\n }\n /**\n * Assigns new fields to the dict output of this runnable. Returns a new runnable.\n */\n assign(mapping) {\n return this.pipe(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n new RunnableAssign(\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n new RunnableMap({ steps: mapping })));\n }\n /**\n * Default implementation of transform, which buffers input and then calls stream.\n * Subclasses should override this method if they can start producing output while\n * input is still being generated.\n * @param generator\n * @param options\n */\n async *transform(generator, options) {\n let finalChunk;\n for await (const chunk of generator) {\n if (finalChunk === undefined) {\n finalChunk = chunk;\n }\n else {\n // Make a best effort to gather, for any type that supports concat.\n // This method should throw an error if gathering fails.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalChunk = concat(finalChunk, chunk);\n }\n }\n yield* this._streamIterator(finalChunk, ensureConfig(options));\n }\n /**\n * Stream all output from a runnable, as reported to the callback system.\n * This includes all inner runs of LLMs, Retrievers, Tools, etc.\n * Output is streamed as Log objects, which include a list of\n * jsonpatch ops that describe how the state of the run has changed in each\n * step, and the final state of the run.\n * The jsonpatch ops can be applied in order to construct state.\n * @param input\n * @param options\n * @param streamOptions\n */\n async *streamLog(input, options, streamOptions) {\n const logStreamCallbackHandler = new LogStreamCallbackHandler({\n ...streamOptions,\n autoClose: false,\n _schemaFormat: \"original\",\n });\n const config = ensureConfig(options);\n yield* this._streamLog(input, logStreamCallbackHandler, config);\n }\n async *_streamLog(input, logStreamCallbackHandler, config) {\n const { callbacks } = config;\n if (callbacks === undefined) {\n // eslint-disable-next-line no-param-reassign\n config.callbacks = [logStreamCallbackHandler];\n }\n else if (Array.isArray(callbacks)) {\n // eslint-disable-next-line no-param-reassign\n config.callbacks = callbacks.concat([logStreamCallbackHandler]);\n }\n else {\n const copiedCallbacks = callbacks.copy();\n copiedCallbacks.inheritableHandlers.push(logStreamCallbackHandler);\n // eslint-disable-next-line no-param-reassign\n config.callbacks = copiedCallbacks;\n }\n const runnableStreamPromise = this.stream(input, config);\n async function consumeRunnableStream() {\n try {\n const runnableStream = await runnableStreamPromise;\n for await (const chunk of runnableStream) {\n const patch = new RunLogPatch({\n ops: [\n {\n op: \"add\",\n path: \"/streamed_output/-\",\n value: chunk,\n },\n ],\n });\n await logStreamCallbackHandler.writer.write(patch);\n }\n }\n finally {\n await logStreamCallbackHandler.writer.close();\n }\n }\n const runnableStreamConsumePromise = consumeRunnableStream();\n try {\n for await (const log of logStreamCallbackHandler) {\n yield log;\n }\n }\n finally {\n await runnableStreamConsumePromise;\n }\n }\n async *streamEvents(input, options, streamOptions) {\n if (options.encoding === \"text/event-stream\") {\n const stream = await this._streamEvents(input, options, streamOptions);\n yield* convertToHttpEventStream(stream);\n }\n else {\n yield* this._streamEvents(input, options, streamOptions);\n }\n }\n async *_streamEvents(input, options, streamOptions) {\n if (options.version !== \"v1\") {\n throw new Error(`Only version \"v1\" of the events schema is currently supported.`);\n }\n let runLog;\n let hasEncounteredStartEvent = false;\n const config = ensureConfig(options);\n const rootTags = config.tags ?? [];\n const rootMetadata = config.metadata ?? {};\n const rootName = config.runName ?? this.getName();\n const logStreamCallbackHandler = new LogStreamCallbackHandler({\n ...streamOptions,\n autoClose: false,\n _schemaFormat: \"streaming_events\",\n });\n const rootEventFilter = new _RootEventFilter({\n ...streamOptions,\n });\n const logStream = this._streamLog(input, logStreamCallbackHandler, config);\n for await (const log of logStream) {\n if (!runLog) {\n runLog = RunLog.fromRunLogPatch(log);\n }\n else {\n runLog = runLog.concat(log);\n }\n if (runLog.state === undefined) {\n throw new Error(`Internal error: \"streamEvents\" state is missing. Please open a bug report.`);\n }\n // Yield the start event for the root runnable if it hasn't been seen.\n // The root run is never filtered out\n if (!hasEncounteredStartEvent) {\n hasEncounteredStartEvent = true;\n const state = { ...runLog.state };\n const event = {\n run_id: state.id,\n event: `on_${state.type}_start`,\n name: rootName,\n tags: rootTags,\n metadata: rootMetadata,\n data: {\n input,\n },\n };\n if (rootEventFilter.includeEvent(event, state.type)) {\n yield event;\n }\n }\n const paths = log.ops\n .filter((op) => op.path.startsWith(\"/logs/\"))\n .map((op) => op.path.split(\"/\")[2]);\n const dedupedPaths = [...new Set(paths)];\n for (const path of dedupedPaths) {\n let eventType;\n let data = {};\n const logEntry = runLog.state.logs[path];\n if (logEntry.end_time === undefined) {\n if (logEntry.streamed_output.length > 0) {\n eventType = \"stream\";\n }\n else {\n eventType = \"start\";\n }\n }\n else {\n eventType = \"end\";\n }\n if (eventType === \"start\") {\n // Include the inputs with the start event if they are available.\n // Usually they will NOT be available for components that operate\n // on streams, since those components stream the input and\n // don't know its final value until the end of the stream.\n if (logEntry.inputs !== undefined) {\n data.input = logEntry.inputs;\n }\n }\n else if (eventType === \"end\") {\n if (logEntry.inputs !== undefined) {\n data.input = logEntry.inputs;\n }\n data.output = logEntry.final_output;\n }\n else if (eventType === \"stream\") {\n const chunkCount = logEntry.streamed_output.length;\n if (chunkCount !== 1) {\n throw new Error(`Expected exactly one chunk of streamed output, got ${chunkCount} instead. Encountered in: \"${logEntry.name}\"`);\n }\n data = { chunk: logEntry.streamed_output[0] };\n // Clean up the stream, we don't need it anymore.\n // And this avoids duplicates as well!\n logEntry.streamed_output = [];\n }\n yield {\n event: `on_${logEntry.type}_${eventType}`,\n name: logEntry.name,\n run_id: logEntry.id,\n tags: logEntry.tags,\n metadata: logEntry.metadata,\n data,\n };\n }\n // Finally, we take care of the streaming output from the root chain\n // if there is any.\n const { state } = runLog;\n if (state.streamed_output.length > 0) {\n const chunkCount = state.streamed_output.length;\n if (chunkCount !== 1) {\n throw new Error(`Expected exactly one chunk of streamed output, got ${chunkCount} instead. Encountered in: \"${state.name}\"`);\n }\n const data = { chunk: state.streamed_output[0] };\n // Clean up the stream, we don't need it anymore.\n state.streamed_output = [];\n const event = {\n event: `on_${state.type}_stream`,\n run_id: state.id,\n tags: rootTags,\n metadata: rootMetadata,\n name: rootName,\n data,\n };\n if (rootEventFilter.includeEvent(event, state.type)) {\n yield event;\n }\n }\n }\n const state = runLog?.state;\n if (state !== undefined) {\n // Finally, yield the end event for the root runnable.\n const event = {\n event: `on_${state.type}_end`,\n name: rootName,\n run_id: state.id,\n tags: rootTags,\n metadata: rootMetadata,\n data: {\n output: state.final_output,\n },\n };\n if (rootEventFilter.includeEvent(event, state.type))\n yield event;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static isRunnable(thing) {\n return isRunnableInterface(thing);\n }\n /**\n * Bind lifecycle listeners to a Runnable, returning a new Runnable.\n * The Run object contains information about the run, including its id,\n * type, input, output, error, startTime, endTime, and any tags or metadata\n * added to the run.\n *\n * @param {Object} params - The object containing the callback functions.\n * @param {(run: Run) => void} params.onStart - Called before the runnable starts running, with the Run object.\n * @param {(run: Run) => void} params.onEnd - Called after the runnable finishes running, with the Run object.\n * @param {(run: Run) => void} params.onError - Called if the runnable throws an error, with the Run object.\n */\n withListeners({ onStart, onEnd, onError, }) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return new RunnableBinding({\n bound: this,\n config: {},\n configFactories: [\n (config) => ({\n callbacks: [\n new RootListenersTracer({\n config,\n onStart,\n onEnd,\n onError,\n }),\n ],\n }),\n ],\n });\n }\n}\n/**\n * A runnable that delegates calls to another runnable with a set of kwargs.\n */\nexport class RunnableBinding extends Runnable {\n static lc_name() {\n return \"RunnableBinding\";\n }\n constructor(fields) {\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"bound\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"config\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kwargs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"configFactories\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.bound = fields.bound;\n this.kwargs = fields.kwargs;\n this.config = fields.config;\n this.configFactories = fields.configFactories;\n }\n getName(suffix) {\n return this.bound.getName(suffix);\n }\n async _mergeConfig(...options) {\n const config = mergeConfigs(this.config, ...options);\n return mergeConfigs(config, ...(this.configFactories\n ? await Promise.all(this.configFactories.map(async (configFactory) => await configFactory(config)))\n : []));\n }\n bind(kwargs) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.constructor({\n bound: this.bound,\n kwargs: { ...this.kwargs, ...kwargs },\n config: this.config,\n });\n }\n withConfig(config) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.constructor({\n bound: this.bound,\n kwargs: this.kwargs,\n config: { ...this.config, ...config },\n });\n }\n withRetry(fields) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.constructor({\n bound: this.bound.withRetry(fields),\n kwargs: this.kwargs,\n config: this.config,\n });\n }\n async invoke(input, options) {\n return this.bound.invoke(input, await this._mergeConfig(ensureConfig(options), this.kwargs));\n }\n async batch(inputs, options, batchOptions) {\n const mergedOptions = Array.isArray(options)\n ? await Promise.all(options.map(async (individualOption) => this._mergeConfig(ensureConfig(individualOption), this.kwargs)))\n : await this._mergeConfig(ensureConfig(options), this.kwargs);\n return this.bound.batch(inputs, mergedOptions, batchOptions);\n }\n async *_streamIterator(input, options) {\n yield* this.bound._streamIterator(input, await this._mergeConfig(ensureConfig(options), this.kwargs));\n }\n async stream(input, options) {\n return this.bound.stream(input, await this._mergeConfig(ensureConfig(options), this.kwargs));\n }\n async *transform(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n generator, options) {\n yield* this.bound.transform(generator, await this._mergeConfig(ensureConfig(options), this.kwargs));\n }\n async *streamEvents(input, options, streamOptions) {\n yield* this.bound.streamEvents(input, {\n ...(await this._mergeConfig(ensureConfig(options), this.kwargs)),\n version: options.version,\n }, streamOptions);\n }\n static isRunnableBinding(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n thing\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n return thing.bound && Runnable.isRunnable(thing.bound);\n }\n /**\n * Bind lifecycle listeners to a Runnable, returning a new Runnable.\n * The Run object contains information about the run, including its id,\n * type, input, output, error, startTime, endTime, and any tags or metadata\n * added to the run.\n *\n * @param {Object} params - The object containing the callback functions.\n * @param {(run: Run) => void} params.onStart - Called before the runnable starts running, with the Run object.\n * @param {(run: Run) => void} params.onEnd - Called after the runnable finishes running, with the Run object.\n * @param {(run: Run) => void} params.onError - Called if the runnable throws an error, with the Run object.\n */\n withListeners({ onStart, onEnd, onError, }) {\n return new RunnableBinding({\n bound: this.bound,\n kwargs: this.kwargs,\n config: this.config,\n configFactories: [\n (config) => ({\n callbacks: [\n new RootListenersTracer({\n config,\n onStart,\n onEnd,\n onError,\n }),\n ],\n }),\n ],\n });\n }\n}\n/**\n * A runnable that delegates calls to another runnable\n * with each element of the input sequence.\n */\nexport class RunnableEach extends Runnable {\n static lc_name() {\n return \"RunnableEach\";\n }\n constructor(fields) {\n super(fields);\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"bound\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.bound = fields.bound;\n }\n /**\n * Binds the runnable with the specified arguments.\n * @param kwargs The arguments to bind the runnable with.\n * @returns A new instance of the `RunnableEach` class that is bound with the specified arguments.\n */\n bind(kwargs) {\n return new RunnableEach({\n bound: this.bound.bind(kwargs),\n });\n }\n /**\n * Invokes the runnable with the specified input and configuration.\n * @param input The input to invoke the runnable with.\n * @param config The configuration to invoke the runnable with.\n * @returns A promise that resolves to the output of the runnable.\n */\n async invoke(inputs, config) {\n return this._callWithConfig(this._invoke, inputs, config);\n }\n /**\n * A helper method that is used to invoke the runnable with the specified input and configuration.\n * @param input The input to invoke the runnable with.\n * @param config The configuration to invoke the runnable with.\n * @returns A promise that resolves to the output of the runnable.\n */\n async _invoke(inputs, config, runManager) {\n return this.bound.batch(inputs, patchConfig(config, { callbacks: runManager?.getChild() }));\n }\n /**\n * Bind lifecycle listeners to a Runnable, returning a new Runnable.\n * The Run object contains information about the run, including its id,\n * type, input, output, error, startTime, endTime, and any tags or metadata\n * added to the run.\n *\n * @param {Object} params - The object containing the callback functions.\n * @param {(run: Run) => void} params.onStart - Called before the runnable starts running, with the Run object.\n * @param {(run: Run) => void} params.onEnd - Called after the runnable finishes running, with the Run object.\n * @param {(run: Run) => void} params.onError - Called if the runnable throws an error, with the Run object.\n */\n withListeners({ onStart, onEnd, onError, }) {\n return new RunnableEach({\n bound: this.bound.withListeners({ onStart, onEnd, onError }),\n });\n }\n}\n/**\n * Base class for runnables that can be retried a\n * specified number of times.\n */\nexport class RunnableRetry extends RunnableBinding {\n static lc_name() {\n return \"RunnableRetry\";\n }\n constructor(fields) {\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"maxAttemptNumber\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Object.defineProperty(this, \"onFailedAttempt\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => { }\n });\n this.maxAttemptNumber = fields.maxAttemptNumber ?? this.maxAttemptNumber;\n this.onFailedAttempt = fields.onFailedAttempt ?? this.onFailedAttempt;\n }\n _patchConfigForRetry(attempt, config, runManager) {\n const tag = attempt > 1 ? `retry:attempt:${attempt}` : undefined;\n return patchConfig(config, { callbacks: runManager?.getChild(tag) });\n }\n async _invoke(input, config, runManager) {\n return pRetry((attemptNumber) => super.invoke(input, this._patchConfigForRetry(attemptNumber, config, runManager)), {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onFailedAttempt: (error) => this.onFailedAttempt(error, input),\n retries: Math.max(this.maxAttemptNumber - 1, 0),\n randomize: true,\n });\n }\n /**\n * Method that invokes the runnable with the specified input, run manager,\n * and config. It handles the retry logic by catching any errors and\n * recursively invoking itself with the updated config for the next retry\n * attempt.\n * @param input The input for the runnable.\n * @param runManager The run manager for the runnable.\n * @param config The config for the runnable.\n * @returns A promise that resolves to the output of the runnable.\n */\n async invoke(input, config) {\n return this._callWithConfig(this._invoke, input, config);\n }\n async _batch(inputs, configs, runManagers, batchOptions) {\n const resultsMap = {};\n try {\n await pRetry(async (attemptNumber) => {\n const remainingIndexes = inputs\n .map((_, i) => i)\n .filter((i) => resultsMap[i.toString()] === undefined ||\n // eslint-disable-next-line no-instanceof/no-instanceof\n resultsMap[i.toString()] instanceof Error);\n const remainingInputs = remainingIndexes.map((i) => inputs[i]);\n const patchedConfigs = remainingIndexes.map((i) => this._patchConfigForRetry(attemptNumber, configs?.[i], runManagers?.[i]));\n const results = await super.batch(remainingInputs, patchedConfigs, {\n ...batchOptions,\n returnExceptions: true,\n });\n let firstException;\n for (let i = 0; i < results.length; i += 1) {\n const result = results[i];\n const resultMapIndex = remainingIndexes[i];\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (result instanceof Error) {\n if (firstException === undefined) {\n firstException = result;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n firstException.input = remainingInputs[i];\n }\n }\n resultsMap[resultMapIndex.toString()] = result;\n }\n if (firstException) {\n throw firstException;\n }\n return results;\n }, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onFailedAttempt: (error) => this.onFailedAttempt(error, error.input),\n retries: Math.max(this.maxAttemptNumber - 1, 0),\n randomize: true,\n });\n }\n catch (e) {\n if (batchOptions?.returnExceptions !== true) {\n throw e;\n }\n }\n return Object.keys(resultsMap)\n .sort((a, b) => parseInt(a, 10) - parseInt(b, 10))\n .map((key) => resultsMap[parseInt(key, 10)]);\n }\n async batch(inputs, options, batchOptions) {\n return this._batchWithConfig(this._batch.bind(this), inputs, options, batchOptions);\n }\n}\n/**\n * A sequence of runnables, where the output of each is the input of the next.\n * @example\n * ```typescript\n * const promptTemplate = PromptTemplate.fromTemplate(\n * \"Tell me a joke about {topic}\",\n * );\n * const chain = RunnableSequence.from([promptTemplate, new ChatOpenAI({})]);\n * const result = await chain.invoke({ topic: \"bears\" });\n * ```\n */\nexport class RunnableSequence extends Runnable {\n static lc_name() {\n return \"RunnableSequence\";\n }\n constructor(fields) {\n super(fields);\n Object.defineProperty(this, \"first\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"middle\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Object.defineProperty(this, \"last\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n this.first = fields.first;\n this.middle = fields.middle ?? this.middle;\n this.last = fields.last;\n this.name = fields.name;\n }\n get steps() {\n return [this.first, ...this.middle, this.last];\n }\n async invoke(input, options) {\n const config = ensureConfig(options);\n const callbackManager_ = await getCallbackManagerForConfig(config);\n const runManager = await callbackManager_?.handleChainStart(this.toJSON(), _coerceToDict(input, \"input\"), config.runId, undefined, undefined, undefined, config?.runName);\n delete config.runId;\n let nextStepInput = input;\n let finalOutput;\n try {\n const initialSteps = [this.first, ...this.middle];\n for (let i = 0; i < initialSteps.length; i += 1) {\n const step = initialSteps[i];\n nextStepInput = await step.invoke(nextStepInput, patchConfig(config, {\n callbacks: runManager?.getChild(`seq:step:${i + 1}`),\n }));\n }\n // TypeScript can't detect that the last output of the sequence returns RunOutput, so call it out of the loop here\n finalOutput = await this.last.invoke(nextStepInput, patchConfig(config, {\n callbacks: runManager?.getChild(`seq:step:${this.steps.length}`),\n }));\n }\n catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n await runManager?.handleChainEnd(_coerceToDict(finalOutput, \"output\"));\n return finalOutput;\n }\n async batch(inputs, options, batchOptions) {\n const configList = this._getOptionsList(options ?? {}, inputs.length);\n const callbackManagers = await Promise.all(configList.map(getCallbackManagerForConfig));\n const runManagers = await Promise.all(callbackManagers.map(async (callbackManager, i) => {\n const handleStartRes = await callbackManager?.handleChainStart(this.toJSON(), _coerceToDict(inputs[i], \"input\"), configList[i].runId, undefined, undefined, undefined, configList[i].runName);\n delete configList[i].runId;\n return handleStartRes;\n }));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let nextStepInputs = inputs;\n try {\n for (let i = 0; i < this.steps.length; i += 1) {\n const step = this.steps[i];\n nextStepInputs = await step.batch(nextStepInputs, runManagers.map((runManager, j) => {\n const childRunManager = runManager?.getChild(`seq:step:${i + 1}`);\n return patchConfig(configList[j], { callbacks: childRunManager });\n }), batchOptions);\n }\n }\n catch (e) {\n await Promise.all(runManagers.map((runManager) => runManager?.handleChainError(e)));\n throw e;\n }\n await Promise.all(runManagers.map((runManager) => runManager?.handleChainEnd(_coerceToDict(nextStepInputs, \"output\"))));\n return nextStepInputs;\n }\n async *_streamIterator(input, options) {\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const { runId, ...otherOptions } = options ?? {};\n const runManager = await callbackManager_?.handleChainStart(this.toJSON(), _coerceToDict(input, \"input\"), runId, undefined, undefined, undefined, otherOptions?.runName);\n const steps = [this.first, ...this.middle, this.last];\n let concatSupported = true;\n let finalOutput;\n async function* inputGenerator() {\n yield input;\n }\n try {\n let finalGenerator = steps[0].transform(inputGenerator(), patchConfig(otherOptions, {\n callbacks: runManager?.getChild(`seq:step:1`),\n }));\n for (let i = 1; i < steps.length; i += 1) {\n const step = steps[i];\n finalGenerator = await step.transform(finalGenerator, patchConfig(otherOptions, {\n callbacks: runManager?.getChild(`seq:step:${i + 1}`),\n }));\n }\n for await (const chunk of finalGenerator) {\n yield chunk;\n if (concatSupported) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n }\n else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, chunk);\n }\n catch (e) {\n finalOutput = undefined;\n concatSupported = false;\n }\n }\n }\n }\n }\n catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n await runManager?.handleChainEnd(_coerceToDict(finalOutput, \"output\"));\n }\n getGraph(config) {\n const graph = new Graph();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let currentLastNode = null;\n this.steps.forEach((step, index) => {\n const stepGraph = step.getGraph(config);\n if (index !== 0) {\n stepGraph.trimFirstNode();\n }\n if (index !== this.steps.length - 1) {\n stepGraph.trimLastNode();\n }\n graph.extend(stepGraph);\n const stepFirstNode = stepGraph.firstNode();\n if (!stepFirstNode) {\n throw new Error(`Runnable ${step} has no first node`);\n }\n if (currentLastNode) {\n graph.addEdge(currentLastNode, stepFirstNode);\n }\n currentLastNode = stepGraph.lastNode();\n });\n return graph;\n }\n pipe(coerceable) {\n if (RunnableSequence.isRunnableSequence(coerceable)) {\n return new RunnableSequence({\n first: this.first,\n middle: this.middle.concat([\n this.last,\n coerceable.first,\n ...coerceable.middle,\n ]),\n last: coerceable.last,\n name: this.name ?? coerceable.name,\n });\n }\n else {\n return new RunnableSequence({\n first: this.first,\n middle: [...this.middle, this.last],\n last: _coerceToRunnable(coerceable),\n name: this.name,\n });\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static isRunnableSequence(thing) {\n return Array.isArray(thing.middle) && Runnable.isRunnable(thing);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static from([first, ...runnables], name) {\n return new RunnableSequence({\n first: _coerceToRunnable(first),\n middle: runnables.slice(0, -1).map(_coerceToRunnable),\n last: _coerceToRunnable(runnables[runnables.length - 1]),\n name,\n });\n }\n}\n/**\n * A runnable that runs a mapping of runnables in parallel,\n * and returns a mapping of their outputs.\n * @example\n * ```typescript\n * const mapChain = RunnableMap.from({\n * joke: PromptTemplate.fromTemplate(\"Tell me a joke about {topic}\").pipe(\n * new ChatAnthropic({}),\n * ),\n * poem: PromptTemplate.fromTemplate(\"write a 2-line poem about {topic}\").pipe(\n * new ChatAnthropic({}),\n * ),\n * });\n * const result = await mapChain.invoke({ topic: \"bear\" });\n * ```\n */\nexport class RunnableMap extends Runnable {\n static lc_name() {\n return \"RunnableMap\";\n }\n getStepsKeys() {\n return Object.keys(this.steps);\n }\n constructor(fields) {\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"steps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.steps = {};\n for (const [key, value] of Object.entries(fields.steps)) {\n this.steps[key] = _coerceToRunnable(value);\n }\n }\n static from(steps) {\n return new RunnableMap({ steps });\n }\n async invoke(input, options) {\n const config = ensureConfig(options);\n const callbackManager_ = await getCallbackManagerForConfig(config);\n const runManager = await callbackManager_?.handleChainStart(this.toJSON(), {\n input,\n }, config.runId, undefined, undefined, undefined, config?.runName);\n delete config.runId;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const output = {};\n try {\n await Promise.all(Object.entries(this.steps).map(async ([key, runnable]) => {\n output[key] = await runnable.invoke(input, patchConfig(config, {\n callbacks: runManager?.getChild(`map:key:${key}`),\n }));\n }));\n }\n catch (e) {\n await runManager?.handleChainError(e);\n throw e;\n }\n await runManager?.handleChainEnd(output);\n return output;\n }\n async *_transform(generator, runManager, options) {\n // shallow copy steps to ignore changes while iterating\n const steps = { ...this.steps };\n // each step gets a copy of the input iterator\n const inputCopies = atee(generator, Object.keys(steps).length);\n // start the first iteration of each output iterator\n const tasks = new Map(Object.entries(steps).map(([key, runnable], i) => {\n const gen = runnable.transform(inputCopies[i], patchConfig(options, {\n callbacks: runManager?.getChild(`map:key:${key}`),\n }));\n return [key, gen.next().then((result) => ({ key, gen, result }))];\n }));\n // yield chunks as they become available,\n // starting new iterations as needed,\n // until all iterators are done\n while (tasks.size) {\n const { key, result, gen } = await Promise.race(tasks.values());\n tasks.delete(key);\n if (!result.done) {\n yield { [key]: result.value };\n tasks.set(key, gen.next().then((result) => ({ key, gen, result })));\n }\n }\n }\n transform(generator, options) {\n return this._transformStreamWithConfig(generator, this._transform.bind(this), options);\n }\n async stream(input, options) {\n async function* generator() {\n yield input;\n }\n const wrappedGenerator = new AsyncGeneratorWithSetup(this.transform(generator(), options));\n await wrappedGenerator.setup;\n return IterableReadableStream.fromAsyncGenerator(wrappedGenerator);\n }\n}\n/**\n * A runnable that runs a callable.\n */\nexport class RunnableLambda extends Runnable {\n static lc_name() {\n return \"RunnableLambda\";\n }\n constructor(fields) {\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"func\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.func = fields.func;\n }\n static from(func) {\n return new RunnableLambda({\n func,\n });\n }\n async _invoke(input, config, runManager) {\n return new Promise((resolve, reject) => {\n const childConfig = patchConfig(config, {\n callbacks: runManager?.getChild(),\n recursionLimit: (config?.recursionLimit ?? DEFAULT_RECURSION_LIMIT) - 1,\n });\n void AsyncLocalStorageProviderSingleton.getInstance().run(childConfig, async () => {\n try {\n let output = await this.func(input, {\n ...childConfig,\n config: childConfig,\n });\n if (output && Runnable.isRunnable(output)) {\n if (config?.recursionLimit === 0) {\n throw new Error(\"Recursion limit reached.\");\n }\n output = await output.invoke(input, {\n ...childConfig,\n recursionLimit: (childConfig.recursionLimit ?? DEFAULT_RECURSION_LIMIT) - 1,\n });\n }\n else if (isAsyncIterable(output)) {\n let finalOutput;\n for await (const chunk of consumeAsyncIterableInContext(childConfig, output)) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n }\n else {\n // Make a best effort to gather, for any type that supports concat.\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, chunk);\n }\n catch (e) {\n finalOutput = chunk;\n }\n }\n }\n output = finalOutput;\n }\n else if (isIterator(output)) {\n let finalOutput;\n for (const chunk of consumeIteratorInContext(childConfig, output)) {\n if (finalOutput === undefined) {\n finalOutput = chunk;\n }\n else {\n // Make a best effort to gather, for any type that supports concat.\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, chunk);\n }\n catch (e) {\n finalOutput = chunk;\n }\n }\n }\n output = finalOutput;\n }\n resolve(output);\n }\n catch (e) {\n reject(e);\n }\n });\n });\n }\n async invoke(input, options) {\n return this._callWithConfig(this._invoke, input, options);\n }\n async *_transform(generator, runManager, config) {\n let finalChunk;\n for await (const chunk of generator) {\n if (finalChunk === undefined) {\n finalChunk = chunk;\n }\n else {\n // Make a best effort to gather, for any type that supports concat.\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalChunk = concat(finalChunk, chunk);\n }\n catch (e) {\n finalChunk = chunk;\n }\n }\n }\n const output = await new Promise((resolve, reject) => {\n void AsyncLocalStorageProviderSingleton.getInstance().run(config, async () => {\n try {\n const res = await this.func(finalChunk, {\n ...config,\n config,\n });\n resolve(res);\n }\n catch (e) {\n reject(e);\n }\n });\n });\n if (output && Runnable.isRunnable(output)) {\n if (config?.recursionLimit === 0) {\n throw new Error(\"Recursion limit reached.\");\n }\n const stream = await output.stream(finalChunk, patchConfig(config, {\n callbacks: runManager?.getChild(),\n recursionLimit: (config?.recursionLimit ?? DEFAULT_RECURSION_LIMIT) - 1,\n }));\n for await (const chunk of stream) {\n yield chunk;\n }\n }\n else if (isAsyncIterable(output)) {\n for await (const chunk of consumeAsyncIterableInContext(config, output)) {\n yield chunk;\n }\n }\n else if (isIterator(output)) {\n for (const chunk of consumeIteratorInContext(config, output)) {\n yield chunk;\n }\n }\n else {\n yield output;\n }\n }\n transform(generator, options) {\n return this._transformStreamWithConfig(generator, this._transform.bind(this), options);\n }\n async stream(input, options) {\n async function* generator() {\n yield input;\n }\n const wrappedGenerator = new AsyncGeneratorWithSetup(this.transform(generator(), options));\n await wrappedGenerator.setup;\n return IterableReadableStream.fromAsyncGenerator(wrappedGenerator);\n }\n}\nexport class RunnableParallel extends RunnableMap {\n}\n/**\n * A Runnable that can fallback to other Runnables if it fails.\n */\nexport class RunnableWithFallbacks extends Runnable {\n static lc_name() {\n return \"RunnableWithFallbacks\";\n }\n constructor(fields) {\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"runnable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fallbacks\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.runnable = fields.runnable;\n this.fallbacks = fields.fallbacks;\n }\n *runnables() {\n yield this.runnable;\n for (const fallback of this.fallbacks) {\n yield fallback;\n }\n }\n async invoke(input, options) {\n const callbackManager_ = await CallbackManager.configure(options?.callbacks, undefined, options?.tags, undefined, options?.metadata);\n const { runId, ...otherOptions } = options ?? {};\n const runManager = await callbackManager_?.handleChainStart(this.toJSON(), _coerceToDict(input, \"input\"), runId, undefined, undefined, undefined, otherOptions?.runName);\n let firstError;\n for (const runnable of this.runnables()) {\n try {\n const output = await runnable.invoke(input, patchConfig(otherOptions, { callbacks: runManager?.getChild() }));\n await runManager?.handleChainEnd(_coerceToDict(output, \"output\"));\n return output;\n }\n catch (e) {\n if (firstError === undefined) {\n firstError = e;\n }\n }\n }\n if (firstError === undefined) {\n throw new Error(\"No error stored at end of fallback.\");\n }\n await runManager?.handleChainError(firstError);\n throw firstError;\n }\n async batch(inputs, options, batchOptions) {\n if (batchOptions?.returnExceptions) {\n throw new Error(\"Not implemented.\");\n }\n const configList = this._getOptionsList(options ?? {}, inputs.length);\n const callbackManagers = await Promise.all(configList.map((config) => CallbackManager.configure(config?.callbacks, undefined, config?.tags, undefined, config?.metadata)));\n const runManagers = await Promise.all(callbackManagers.map(async (callbackManager, i) => {\n const handleStartRes = await callbackManager?.handleChainStart(this.toJSON(), _coerceToDict(inputs[i], \"input\"), configList[i].runId, undefined, undefined, undefined, configList[i].runName);\n delete configList[i].runId;\n return handleStartRes;\n }));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let firstError;\n for (const runnable of this.runnables()) {\n try {\n const outputs = await runnable.batch(inputs, runManagers.map((runManager, j) => patchConfig(configList[j], {\n callbacks: runManager?.getChild(),\n })), batchOptions);\n await Promise.all(runManagers.map((runManager, i) => runManager?.handleChainEnd(_coerceToDict(outputs[i], \"output\"))));\n return outputs;\n }\n catch (e) {\n if (firstError === undefined) {\n firstError = e;\n }\n }\n }\n if (!firstError) {\n throw new Error(\"No error stored at end of fallbacks.\");\n }\n await Promise.all(runManagers.map((runManager) => runManager?.handleChainError(firstError)));\n throw firstError;\n }\n}\n// TODO: Figure out why the compiler needs help eliminating Error as a RunOutput type\nexport function _coerceToRunnable(coerceable) {\n if (typeof coerceable === \"function\") {\n return new RunnableLambda({ func: coerceable });\n }\n else if (Runnable.isRunnable(coerceable)) {\n return coerceable;\n }\n else if (!Array.isArray(coerceable) && typeof coerceable === \"object\") {\n const runnables = {};\n for (const [key, value] of Object.entries(coerceable)) {\n runnables[key] = _coerceToRunnable(value);\n }\n return new RunnableMap({\n steps: runnables,\n });\n }\n else {\n throw new Error(`Expected a Runnable, function or object.\\nInstead got an unsupported type.`);\n }\n}\n/**\n * A runnable that assigns key-value pairs to inputs of type `Record<string, unknown>`.\n */\nexport class RunnableAssign extends Runnable {\n static lc_name() {\n return \"RunnableAssign\";\n }\n constructor(fields) {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (fields instanceof RunnableMap) {\n // eslint-disable-next-line no-param-reassign\n fields = { mapper: fields };\n }\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"mapper\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.mapper = fields.mapper;\n }\n async invoke(input, options) {\n const mapperResult = await this.mapper.invoke(input, options);\n return {\n ...input,\n ...mapperResult,\n };\n }\n async *_transform(generator, runManager, options) {\n // collect mapper keys\n const mapperKeys = this.mapper.getStepsKeys();\n // create two input gens, one for the mapper, one for the input\n const [forPassthrough, forMapper] = atee(generator);\n // create mapper output gen\n const mapperOutput = this.mapper.transform(forMapper, patchConfig(options, { callbacks: runManager?.getChild() }));\n // start the mapper\n const firstMapperChunkPromise = mapperOutput.next();\n // yield the passthrough\n for await (const chunk of forPassthrough) {\n if (typeof chunk !== \"object\" || Array.isArray(chunk)) {\n throw new Error(`RunnableAssign can only be used with objects as input, got ${typeof chunk}`);\n }\n const filtered = Object.fromEntries(Object.entries(chunk).filter(([key]) => !mapperKeys.includes(key)));\n if (Object.keys(filtered).length > 0) {\n yield filtered;\n }\n }\n // yield the mapper output\n yield (await firstMapperChunkPromise).value;\n for await (const chunk of mapperOutput) {\n yield chunk;\n }\n }\n transform(generator, options) {\n return this._transformStreamWithConfig(generator, this._transform.bind(this), options);\n }\n async stream(input, options) {\n async function* generator() {\n yield input;\n }\n const wrappedGenerator = new AsyncGeneratorWithSetup(this.transform(generator(), options));\n await wrappedGenerator.setup;\n return IterableReadableStream.fromAsyncGenerator(wrappedGenerator);\n }\n}\n/**\n * A runnable that assigns key-value pairs to inputs of type `Record<string, unknown>`.\n */\nexport class RunnablePick extends Runnable {\n static lc_name() {\n return \"RunnablePick\";\n }\n constructor(fields) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign\n fields = { keys: fields };\n }\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"runnables\"]\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n Object.defineProperty(this, \"keys\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.keys = fields.keys;\n }\n async _pick(input) {\n if (typeof this.keys === \"string\") {\n return input[this.keys];\n }\n else {\n const picked = this.keys\n .map((key) => [key, input[key]])\n .filter((v) => v[1] !== undefined);\n return picked.length === 0 ? undefined : Object.fromEntries(picked);\n }\n }\n async invoke(input, options) {\n return this._callWithConfig(this._pick.bind(this), input, options);\n }\n async *_transform(generator) {\n for await (const chunk of generator) {\n const picked = await this._pick(chunk);\n if (picked !== undefined) {\n yield picked;\n }\n }\n }\n transform(generator, options) {\n return this._transformStreamWithConfig(generator, this._transform.bind(this), options);\n }\n async stream(input, options) {\n async function* generator() {\n yield input;\n }\n const wrappedGenerator = new AsyncGeneratorWithSetup(this.transform(generator(), options));\n await wrappedGenerator.setup;\n return IterableReadableStream.fromAsyncGenerator(wrappedGenerator);\n }\n}\n"],"names":["_coerceToDict","value","defaultKey","Runnable","Serializable","suffix","name","kwargs","RunnableBinding","RunnableEach","fields","RunnableRetry","config","RunnableWithFallbacks","options","length","ensureConfig","subsequent","key","_","i","inputs","batchOptions","configList","maxConcurrency","_a","caller","AsyncCaller","e","batchCalls","input","wrappedGenerator","AsyncGeneratorWithSetup","IterableReadableStream","runnableConfig","callOptions","func","callbackManager_","getCallbackManagerForConfig","runManager","output","optionsList","callbackManagers","runManagers","callbackManager","handleStartRes","outputs","inputGenerator","transformer","finalInput","finalInputSupported","finalOutput","finalOutputSupported","wrapInputForTracing","chunk","concat","pipe","pipeGeneratorWithSetup","isLogStreamHandler","handler","streamLogHandler","iterator","graph","Graph","inputNode","z","runnableNode","outputNode","coerceable","RunnableSequence","_coerceToRunnable","keys","RunnablePick","mapping","RunnableAssign","RunnableMap","generator","finalChunk","streamOptions","logStreamCallbackHandler","LogStreamCallbackHandler","callbacks","copiedCallbacks","runnableStreamPromise","consumeRunnableStream","runnableStream","patch","RunLogPatch","runnableStreamConsumePromise","log","stream","convertToHttpEventStream","runLog","hasEncounteredStartEvent","rootTags","rootMetadata","rootName","rootEventFilter","_RootEventFilter","logStream","RunLog","state","event","paths","op","dedupedPaths","path","eventType","data","logEntry","chunkCount","thing","isRunnableInterface","onStart","onEnd","onError","RootListenersTracer","mergeConfigs","configFactory","mergedOptions","individualOption","patchConfig","attempt","tag","pRetry","attemptNumber","error","configs","resultsMap","remainingIndexes","remainingInputs","patchedConfigs","results","firstException","result","resultMapIndex","b","nextStepInput","initialSteps","nextStepInputs","j","childRunManager","runId","otherOptions","steps","concatSupported","finalGenerator","currentLastNode","step","index","stepGraph","stepFirstNode","first","runnables","runnable","inputCopies","atee","tasks","gen","RunnableLambda","resolve","reject","childConfig","DEFAULT_RECURSION_LIMIT","AsyncLocalStorageProviderSingleton","isAsyncIterable","consumeAsyncIterableInContext","isIterator","consumeIteratorInContext","res","fallback","CallbackManager","firstError","mapperResult","mapperKeys","forPassthrough","forMapper","mapperOutput","firstMapperChunkPromise","filtered","picked","v"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,83 @@
1
+ import { CallbackManager as o, ensureHandler as i } from "../callbacks/manager.js";
2
+ import { AsyncLocalStorageProviderSingleton as d } from "../singletons/index.js";
3
+ const y = 25;
4
+ async function k(s) {
5
+ return o.configure(s == null ? void 0 : s.callbacks, void 0, s == null ? void 0 : s.tags, void 0, s == null ? void 0 : s.metadata);
6
+ }
7
+ function g(...s) {
8
+ const e = {};
9
+ for (const t of s.filter((n) => !!n))
10
+ for (const n of Object.keys(t))
11
+ if (n === "metadata")
12
+ e[n] = { ...e[n], ...t[n] };
13
+ else if (n === "tags") {
14
+ const a = e[n] ?? [];
15
+ e[n] = [...new Set(a.concat(t[n] ?? []))];
16
+ } else if (n === "configurable")
17
+ e[n] = { ...e[n], ...t[n] };
18
+ else if (n === "callbacks") {
19
+ const a = e.callbacks, r = t.callbacks;
20
+ if (Array.isArray(r))
21
+ if (!a)
22
+ e.callbacks = r;
23
+ else if (Array.isArray(a))
24
+ e.callbacks = a.concat(r);
25
+ else {
26
+ const c = a.copy();
27
+ for (const l of r)
28
+ c.addHandler(i(l), !0);
29
+ e.callbacks = c;
30
+ }
31
+ else if (r)
32
+ if (!a)
33
+ e.callbacks = r;
34
+ else if (Array.isArray(a)) {
35
+ const c = r.copy();
36
+ for (const l of a)
37
+ c.addHandler(i(l), !0);
38
+ e.callbacks = c;
39
+ } else
40
+ e.callbacks = new o(r._parentRunId, {
41
+ handlers: a.handlers.concat(r.handlers),
42
+ inheritableHandlers: a.inheritableHandlers.concat(r.inheritableHandlers),
43
+ tags: Array.from(new Set(a.tags.concat(r.tags))),
44
+ inheritableTags: Array.from(new Set(a.inheritableTags.concat(r.inheritableTags))),
45
+ metadata: {
46
+ ...a.metadata,
47
+ ...r.metadata
48
+ }
49
+ });
50
+ } else {
51
+ const a = n;
52
+ e[a] = t[a] ?? e[a];
53
+ }
54
+ return e;
55
+ }
56
+ const f = /* @__PURE__ */ new Set(["string", "number", "boolean"]);
57
+ function b(s) {
58
+ var n;
59
+ const e = s ?? d.getInstance().getStore();
60
+ let t = {
61
+ tags: [],
62
+ metadata: {},
63
+ callbacks: void 0,
64
+ recursionLimit: 25,
65
+ runId: void 0
66
+ };
67
+ if (e && (t = { ...t, ...e }), e != null && e.configurable)
68
+ for (const a of Object.keys(e.configurable))
69
+ f.has(typeof e.configurable[a]) && !((n = t.metadata) != null && n[a]) && (t.metadata || (t.metadata = {}), t.metadata[a] = e.configurable[a]);
70
+ return t;
71
+ }
72
+ function p(s = {}, { callbacks: e, maxConcurrency: t, recursionLimit: n, runName: a, configurable: r, runId: c } = {}) {
73
+ const l = b(s);
74
+ return e !== void 0 && (delete l.runName, l.callbacks = e), n !== void 0 && (l.recursionLimit = n), t !== void 0 && (l.maxConcurrency = t), a !== void 0 && (l.runName = a), r !== void 0 && (l.configurable = { ...l.configurable, ...r }), c !== void 0 && delete l.runId, l;
75
+ }
76
+ export {
77
+ y as DEFAULT_RECURSION_LIMIT,
78
+ b as ensureConfig,
79
+ k as getCallbackManagerForConfig,
80
+ g as mergeConfigs,
81
+ p as patchConfig
82
+ };
83
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sources":["../../../../../../node_modules/@langchain/core/dist/runnables/config.js"],"sourcesContent":["import { CallbackManager, ensureHandler, } from \"../callbacks/manager.js\";\nimport { AsyncLocalStorageProviderSingleton } from \"../singletons/index.js\";\nexport const DEFAULT_RECURSION_LIMIT = 25;\nexport async function getCallbackManagerForConfig(config) {\n return CallbackManager.configure(config?.callbacks, undefined, config?.tags, undefined, config?.metadata);\n}\nexport function mergeConfigs(...configs) {\n // We do not want to call ensureConfig on the empty state here as this may cause\n // double loading of callbacks if async local storage is being used.\n const copy = {};\n for (const options of configs.filter((c) => !!c)) {\n for (const key of Object.keys(options)) {\n if (key === \"metadata\") {\n copy[key] = { ...copy[key], ...options[key] };\n }\n else if (key === \"tags\") {\n const baseKeys = copy[key] ?? [];\n copy[key] = [...new Set(baseKeys.concat(options[key] ?? []))];\n }\n else if (key === \"configurable\") {\n copy[key] = { ...copy[key], ...options[key] };\n }\n else if (key === \"callbacks\") {\n const baseCallbacks = copy.callbacks;\n const providedCallbacks = options.callbacks;\n // callbacks can be either undefined, Array<handler> or manager\n // so merging two callbacks values has 6 cases\n if (Array.isArray(providedCallbacks)) {\n if (!baseCallbacks) {\n copy.callbacks = providedCallbacks;\n }\n else if (Array.isArray(baseCallbacks)) {\n copy.callbacks = baseCallbacks.concat(providedCallbacks);\n }\n else {\n // baseCallbacks is a manager\n const manager = baseCallbacks.copy();\n for (const callback of providedCallbacks) {\n manager.addHandler(ensureHandler(callback), true);\n }\n copy.callbacks = manager;\n }\n }\n else if (providedCallbacks) {\n // providedCallbacks is a manager\n if (!baseCallbacks) {\n copy.callbacks = providedCallbacks;\n }\n else if (Array.isArray(baseCallbacks)) {\n const manager = providedCallbacks.copy();\n for (const callback of baseCallbacks) {\n manager.addHandler(ensureHandler(callback), true);\n }\n copy.callbacks = manager;\n }\n else {\n // baseCallbacks is also a manager\n copy.callbacks = new CallbackManager(providedCallbacks._parentRunId, {\n handlers: baseCallbacks.handlers.concat(providedCallbacks.handlers),\n inheritableHandlers: baseCallbacks.inheritableHandlers.concat(providedCallbacks.inheritableHandlers),\n tags: Array.from(new Set(baseCallbacks.tags.concat(providedCallbacks.tags))),\n inheritableTags: Array.from(new Set(baseCallbacks.inheritableTags.concat(providedCallbacks.inheritableTags))),\n metadata: {\n ...baseCallbacks.metadata,\n ...providedCallbacks.metadata,\n },\n });\n }\n }\n }\n else {\n const typedKey = key;\n copy[typedKey] = options[typedKey] ?? copy[typedKey];\n }\n }\n }\n return copy;\n}\nconst PRIMITIVES = new Set([\"string\", \"number\", \"boolean\"]);\n/**\n * Ensure that a passed config is an object with all required keys present.\n *\n * Note: To make sure async local storage loading works correctly, this\n * should not be called with a default or prepopulated config argument.\n */\nexport function ensureConfig(config) {\n const loadedConfig = config ?? AsyncLocalStorageProviderSingleton.getInstance().getStore();\n let empty = {\n tags: [],\n metadata: {},\n callbacks: undefined,\n recursionLimit: 25,\n runId: undefined,\n };\n if (loadedConfig) {\n empty = { ...empty, ...loadedConfig };\n }\n if (loadedConfig?.configurable) {\n for (const key of Object.keys(loadedConfig.configurable)) {\n if (PRIMITIVES.has(typeof loadedConfig.configurable[key]) &&\n !empty.metadata?.[key]) {\n if (!empty.metadata) {\n empty.metadata = {};\n }\n empty.metadata[key] = loadedConfig.configurable[key];\n }\n }\n }\n return empty;\n}\n/**\n * Helper function that patches runnable configs with updated properties.\n */\nexport function patchConfig(config = {}, { callbacks, maxConcurrency, recursionLimit, runName, configurable, runId, } = {}) {\n const newConfig = ensureConfig(config);\n if (callbacks !== undefined) {\n /**\n * If we're replacing callbacks we need to unset runName\n * since that should apply only to the same run as the original callbacks\n */\n delete newConfig.runName;\n newConfig.callbacks = callbacks;\n }\n if (recursionLimit !== undefined) {\n newConfig.recursionLimit = recursionLimit;\n }\n if (maxConcurrency !== undefined) {\n newConfig.maxConcurrency = maxConcurrency;\n }\n if (runName !== undefined) {\n newConfig.runName = runName;\n }\n if (configurable !== undefined) {\n newConfig.configurable = { ...newConfig.configurable, ...configurable };\n }\n if (runId !== undefined) {\n delete newConfig.runId;\n }\n return newConfig;\n}\n"],"names":["DEFAULT_RECURSION_LIMIT","getCallbackManagerForConfig","config","CallbackManager","mergeConfigs","configs","copy","options","c","key","baseKeys","baseCallbacks","providedCallbacks","manager","callback","ensureHandler","typedKey","PRIMITIVES","ensureConfig","loadedConfig","AsyncLocalStorageProviderSingleton","empty","_a","patchConfig","callbacks","maxConcurrency","recursionLimit","runName","configurable","runId","newConfig"],"mappings":";;AAEY,MAACA,IAA0B;AAChC,eAAeC,EAA4BC,GAAQ;AACtD,SAAOC,EAAgB,UAAUD,KAAA,gBAAAA,EAAQ,WAAW,QAAWA,KAAA,gBAAAA,EAAQ,MAAM,QAAWA,KAAA,gBAAAA,EAAQ,QAAQ;AAC5G;AACO,SAASE,KAAgBC,GAAS;AAGrC,QAAMC,IAAO,CAAE;AACf,aAAWC,KAAWF,EAAQ,OAAO,CAACG,MAAM,CAAC,CAACA,CAAC;AAC3C,eAAWC,KAAO,OAAO,KAAKF,CAAO;AACjC,UAAIE,MAAQ;AACR,QAAAH,EAAKG,CAAG,IAAI,EAAE,GAAGH,EAAKG,CAAG,GAAG,GAAGF,EAAQE,CAAG,EAAG;AAAA,eAExCA,MAAQ,QAAQ;AACrB,cAAMC,IAAWJ,EAAKG,CAAG,KAAK,CAAE;AAChC,QAAAH,EAAKG,CAAG,IAAI,CAAC,GAAG,IAAI,IAAIC,EAAS,OAAOH,EAAQE,CAAG,KAAK,CAAA,CAAE,CAAC,CAAC;AAAA,MAC5E,WACqBA,MAAQ;AACb,QAAAH,EAAKG,CAAG,IAAI,EAAE,GAAGH,EAAKG,CAAG,GAAG,GAAGF,EAAQE,CAAG,EAAG;AAAA,eAExCA,MAAQ,aAAa;AAC1B,cAAME,IAAgBL,EAAK,WACrBM,IAAoBL,EAAQ;AAGlC,YAAI,MAAM,QAAQK,CAAiB;AAC/B,cAAI,CAACD;AACD,YAAAL,EAAK,YAAYM;AAAA,mBAEZ,MAAM,QAAQD,CAAa;AAChC,YAAAL,EAAK,YAAYK,EAAc,OAAOC,CAAiB;AAAA,eAEtD;AAED,kBAAMC,IAAUF,EAAc,KAAM;AACpC,uBAAWG,KAAYF;AACnB,cAAAC,EAAQ,WAAWE,EAAcD,CAAQ,GAAG,EAAI;AAEpD,YAAAR,EAAK,YAAYO;AAAA,UACzC;AAAA,iBAEyBD;AAEL,cAAI,CAACD;AACD,YAAAL,EAAK,YAAYM;AAAA,mBAEZ,MAAM,QAAQD,CAAa,GAAG;AACnC,kBAAME,IAAUD,EAAkB,KAAM;AACxC,uBAAWE,KAAYH;AACnB,cAAAE,EAAQ,WAAWE,EAAcD,CAAQ,GAAG,EAAI;AAEpD,YAAAR,EAAK,YAAYO;AAAA,UACzC;AAGwB,YAAAP,EAAK,YAAY,IAAIH,EAAgBS,EAAkB,cAAc;AAAA,cACjE,UAAUD,EAAc,SAAS,OAAOC,EAAkB,QAAQ;AAAA,cAClE,qBAAqBD,EAAc,oBAAoB,OAAOC,EAAkB,mBAAmB;AAAA,cACnG,MAAM,MAAM,KAAK,IAAI,IAAID,EAAc,KAAK,OAAOC,EAAkB,IAAI,CAAC,CAAC;AAAA,cAC3E,iBAAiB,MAAM,KAAK,IAAI,IAAID,EAAc,gBAAgB,OAAOC,EAAkB,eAAe,CAAC,CAAC;AAAA,cAC5G,UAAU;AAAA,gBACN,GAAGD,EAAc;AAAA,gBACjB,GAAGC,EAAkB;AAAA,cACxB;AAAA,YAC7B,CAAyB;AAAA,MAGzB,OACiB;AACD,cAAMI,IAAWP;AACjB,QAAAH,EAAKU,CAAQ,IAAIT,EAAQS,CAAQ,KAAKV,EAAKU,CAAQ;AAAA,MACnE;AAGI,SAAOV;AACX;AACA,MAAMW,IAAa,oBAAI,IAAI,CAAC,UAAU,UAAU,SAAS,CAAC;AAOnD,SAASC,EAAahB,GAAQ;;AACjC,QAAMiB,IAAejB,KAAUkB,EAAmC,YAAW,EAAG,SAAU;AAC1F,MAAIC,IAAQ;AAAA,IACR,MAAM,CAAE;AAAA,IACR,UAAU,CAAE;AAAA,IACZ,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,OAAO;AAAA,EACV;AAID,MAHIF,MACAE,IAAQ,EAAE,GAAGA,GAAO,GAAGF,EAAc,IAErCA,KAAA,QAAAA,EAAc;AACd,eAAWV,KAAO,OAAO,KAAKU,EAAa,YAAY;AACnD,MAAIF,EAAW,IAAI,OAAOE,EAAa,aAAaV,CAAG,CAAC,KACpD,GAACa,IAAAD,EAAM,aAAN,QAAAC,EAAiBb,QACbY,EAAM,aACPA,EAAM,WAAW,CAAE,IAEvBA,EAAM,SAASZ,CAAG,IAAIU,EAAa,aAAaV,CAAG;AAI/D,SAAOY;AACX;AAIO,SAASE,EAAYrB,IAAS,IAAI,EAAE,WAAAsB,GAAW,gBAAAC,GAAgB,gBAAAC,GAAgB,SAAAC,GAAS,cAAAC,GAAc,OAAAC,EAAK,IAAM,CAAA,GAAI;AACxH,QAAMC,IAAYZ,EAAahB,CAAM;AACrC,SAAIsB,MAAc,WAKd,OAAOM,EAAU,SACjBA,EAAU,YAAYN,IAEtBE,MAAmB,WACnBI,EAAU,iBAAiBJ,IAE3BD,MAAmB,WACnBK,EAAU,iBAAiBL,IAE3BE,MAAY,WACZG,EAAU,UAAUH,IAEpBC,MAAiB,WACjBE,EAAU,eAAe,EAAE,GAAGA,EAAU,cAAc,GAAGF,EAAc,IAEvEC,MAAU,UACV,OAAOC,EAAU,OAEdA;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,106 @@
1
+ import "zod";
2
+ import "../../../../zod-to-json-schema/dist/esm/parsers/string.js";
3
+ import { zodToJsonSchema as d } from "../../../../zod-to-json-schema/dist/esm/zodToJsonSchema.js";
4
+ import { isRunnableInterface as o } from "./utils.js";
5
+ import a from "../../node_modules/uuid/dist/esm-browser/validate.js";
6
+ import n from "../../node_modules/uuid/dist/esm-browser/v4.js";
7
+ function h(i) {
8
+ return o(i.data) ? {
9
+ type: "runnable",
10
+ data: {
11
+ id: i.data.lc_id,
12
+ name: i.data.getName()
13
+ }
14
+ } : {
15
+ type: "schema",
16
+ data: { ...d(i.data.schema), title: i.data.name }
17
+ };
18
+ }
19
+ class p {
20
+ constructor() {
21
+ Object.defineProperty(this, "nodes", {
22
+ enumerable: !0,
23
+ configurable: !0,
24
+ writable: !0,
25
+ value: {}
26
+ }), Object.defineProperty(this, "edges", {
27
+ enumerable: !0,
28
+ configurable: !0,
29
+ writable: !0,
30
+ value: []
31
+ });
32
+ }
33
+ // Convert the graph to a JSON-serializable format.
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ toJSON() {
36
+ const t = {};
37
+ return Object.values(this.nodes).forEach((e, s) => {
38
+ t[e.id] = a(e.id) ? s : e.id;
39
+ }), {
40
+ nodes: Object.values(this.nodes).map((e) => ({
41
+ id: t[e.id],
42
+ ...h(e)
43
+ })),
44
+ edges: this.edges.map((e) => e.data ? {
45
+ source: t[e.source],
46
+ target: t[e.target],
47
+ data: e.data
48
+ } : {
49
+ source: t[e.source],
50
+ target: t[e.target]
51
+ })
52
+ };
53
+ }
54
+ addNode(t, e) {
55
+ if (e !== void 0 && this.nodes[e] !== void 0)
56
+ throw new Error(`Node with id ${e} already exists`);
57
+ const s = e || n(), r = { id: s, data: t };
58
+ return this.nodes[s] = r, r;
59
+ }
60
+ removeNode(t) {
61
+ delete this.nodes[t.id], this.edges = this.edges.filter((e) => e.source !== t.id && e.target !== t.id);
62
+ }
63
+ addEdge(t, e, s) {
64
+ if (this.nodes[t.id] === void 0)
65
+ throw new Error(`Source node ${t.id} not in graph`);
66
+ if (this.nodes[e.id] === void 0)
67
+ throw new Error(`Target node ${e.id} not in graph`);
68
+ const r = { source: t.id, target: e.id, data: s };
69
+ return this.edges.push(r), r;
70
+ }
71
+ firstNode() {
72
+ const t = new Set(this.edges.map((s) => s.target)), e = [];
73
+ return Object.values(this.nodes).forEach((s) => {
74
+ t.has(s.id) || e.push(s);
75
+ }), e[0];
76
+ }
77
+ lastNode() {
78
+ const t = new Set(this.edges.map((s) => s.source)), e = [];
79
+ return Object.values(this.nodes).forEach((s) => {
80
+ t.has(s.id) || e.push(s);
81
+ }), e[0];
82
+ }
83
+ extend(t) {
84
+ Object.entries(t.nodes).forEach(([e, s]) => {
85
+ this.nodes[e] = s;
86
+ }), this.edges = [...this.edges, ...t.edges];
87
+ }
88
+ trimFirstNode() {
89
+ const t = this.firstNode();
90
+ if (t) {
91
+ const e = this.edges.filter((s) => s.source === t.id);
92
+ (Object.keys(this.nodes).length === 1 || e.length === 1) && this.removeNode(t);
93
+ }
94
+ }
95
+ trimLastNode() {
96
+ const t = this.lastNode();
97
+ if (t) {
98
+ const e = this.edges.filter((s) => s.target === t.id);
99
+ (Object.keys(this.nodes).length === 1 || e.length === 1) && this.removeNode(t);
100
+ }
101
+ }
102
+ }
103
+ export {
104
+ p as Graph
105
+ };
106
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sources":["../../../../../../node_modules/@langchain/core/dist/runnables/graph.js"],"sourcesContent":["import { zodToJsonSchema } from \"zod-to-json-schema\";\nimport { v4 as uuidv4, validate as isUuid } from \"uuid\";\nimport { isRunnableInterface } from \"./utils.js\";\nconst MAX_DATA_DISPLAY_NAME_LENGTH = 42;\nexport function nodeDataStr(node) {\n if (!isUuid(node.id)) {\n return node.id;\n }\n else if (isRunnableInterface(node.data)) {\n try {\n let data = node.data.toString();\n if (data.startsWith(\"<\") ||\n data[0] !== data[0].toUpperCase() ||\n data.split(\"\\n\").length > 1) {\n data = node.data.getName();\n }\n else if (data.length > MAX_DATA_DISPLAY_NAME_LENGTH) {\n data = `${data.substring(0, MAX_DATA_DISPLAY_NAME_LENGTH)}...`;\n }\n return data.startsWith(\"Runnable\") ? data.slice(\"Runnable\".length) : data;\n }\n catch (error) {\n return node.data.getName();\n }\n }\n else {\n return node.data.name ?? \"UnknownSchema\";\n }\n}\nfunction nodeDataJson(node) {\n // if node.data is implements Runnable\n if (isRunnableInterface(node.data)) {\n return {\n type: \"runnable\",\n data: {\n id: node.data.lc_id,\n name: node.data.getName(),\n },\n };\n }\n else {\n return {\n type: \"schema\",\n data: { ...zodToJsonSchema(node.data.schema), title: node.data.name },\n };\n }\n}\nexport class Graph {\n constructor() {\n Object.defineProperty(this, \"nodes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"edges\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n }\n // Convert the graph to a JSON-serializable format.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n toJSON() {\n const stableNodeIds = {};\n Object.values(this.nodes).forEach((node, i) => {\n stableNodeIds[node.id] = isUuid(node.id) ? i : node.id;\n });\n return {\n nodes: Object.values(this.nodes).map((node) => ({\n id: stableNodeIds[node.id],\n ...nodeDataJson(node),\n })),\n edges: this.edges.map((edge) => edge.data\n ? {\n source: stableNodeIds[edge.source],\n target: stableNodeIds[edge.target],\n data: edge.data,\n }\n : {\n source: stableNodeIds[edge.source],\n target: stableNodeIds[edge.target],\n }),\n };\n }\n addNode(data, id) {\n if (id !== undefined && this.nodes[id] !== undefined) {\n throw new Error(`Node with id ${id} already exists`);\n }\n const nodeId = id || uuidv4();\n const node = { id: nodeId, data };\n this.nodes[nodeId] = node;\n return node;\n }\n removeNode(node) {\n // Remove the node from the nodes map\n delete this.nodes[node.id];\n // Filter out edges connected to the node\n this.edges = this.edges.filter((edge) => edge.source !== node.id && edge.target !== node.id);\n }\n addEdge(source, target, data) {\n if (this.nodes[source.id] === undefined) {\n throw new Error(`Source node ${source.id} not in graph`);\n }\n if (this.nodes[target.id] === undefined) {\n throw new Error(`Target node ${target.id} not in graph`);\n }\n const edge = { source: source.id, target: target.id, data };\n this.edges.push(edge);\n return edge;\n }\n firstNode() {\n const targets = new Set(this.edges.map((edge) => edge.target));\n const found = [];\n Object.values(this.nodes).forEach((node) => {\n if (!targets.has(node.id)) {\n found.push(node);\n }\n });\n return found[0];\n }\n lastNode() {\n const sources = new Set(this.edges.map((edge) => edge.source));\n const found = [];\n Object.values(this.nodes).forEach((node) => {\n if (!sources.has(node.id)) {\n found.push(node);\n }\n });\n return found[0];\n }\n extend(graph) {\n // Add all nodes from the other graph, taking care to avoid duplicates\n Object.entries(graph.nodes).forEach(([key, value]) => {\n this.nodes[key] = value;\n });\n // Add all edges from the other graph\n this.edges = [...this.edges, ...graph.edges];\n }\n trimFirstNode() {\n const firstNode = this.firstNode();\n if (firstNode) {\n const outgoingEdges = this.edges.filter((edge) => edge.source === firstNode.id);\n if (Object.keys(this.nodes).length === 1 || outgoingEdges.length === 1) {\n this.removeNode(firstNode);\n }\n }\n }\n trimLastNode() {\n const lastNode = this.lastNode();\n if (lastNode) {\n const incomingEdges = this.edges.filter((edge) => edge.target === lastNode.id);\n if (Object.keys(this.nodes).length === 1 || incomingEdges.length === 1) {\n this.removeNode(lastNode);\n }\n }\n }\n}\n"],"names":["nodeDataJson","node","isRunnableInterface","zodToJsonSchema","Graph","stableNodeIds","i","isUuid","edge","data","id","nodeId","uuidv4","source","target","targets","found","sources","graph","key","value","firstNode","outgoingEdges","lastNode","incomingEdges"],"mappings":";;;;;;AA6BA,SAASA,EAAaC,GAAM;AAExB,SAAIC,EAAoBD,EAAK,IAAI,IACtB;AAAA,IACH,MAAM;AAAA,IACN,MAAM;AAAA,MACF,IAAIA,EAAK,KAAK;AAAA,MACd,MAAMA,EAAK,KAAK,QAAS;AAAA,IAC5B;AAAA,EACJ,IAGM;AAAA,IACH,MAAM;AAAA,IACN,MAAM,EAAE,GAAGE,EAAgBF,EAAK,KAAK,MAAM,GAAG,OAAOA,EAAK,KAAK,KAAM;AAAA,EACxE;AAET;AACO,MAAMG,EAAM;AAAA,EACf,cAAc;AACV,WAAO,eAAe,MAAM,SAAS;AAAA,MACjC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO,CAAA;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,SAAS;AAAA,MACjC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO,CAAA;AAAA,IACnB,CAAS;AAAA,EACT;AAAA;AAAA;AAAA,EAGI,SAAS;AACL,UAAMC,IAAgB,CAAE;AACxB,kBAAO,OAAO,KAAK,KAAK,EAAE,QAAQ,CAACJ,GAAMK,MAAM;AAC3C,MAAAD,EAAcJ,EAAK,EAAE,IAAIM,EAAON,EAAK,EAAE,IAAIK,IAAIL,EAAK;AAAA,IAChE,CAAS,GACM;AAAA,MACH,OAAO,OAAO,OAAO,KAAK,KAAK,EAAE,IAAI,CAACA,OAAU;AAAA,QAC5C,IAAII,EAAcJ,EAAK,EAAE;AAAA,QACzB,GAAGD,EAAaC,CAAI;AAAA,MACpC,EAAc;AAAA,MACF,OAAO,KAAK,MAAM,IAAI,CAACO,MAASA,EAAK,OAC/B;AAAA,QACE,QAAQH,EAAcG,EAAK,MAAM;AAAA,QACjC,QAAQH,EAAcG,EAAK,MAAM;AAAA,QACjC,MAAMA,EAAK;AAAA,MAC/B,IACkB;AAAA,QACE,QAAQH,EAAcG,EAAK,MAAM;AAAA,QACjC,QAAQH,EAAcG,EAAK,MAAM;AAAA,MACrD,CAAiB;AAAA,IACR;AAAA,EACT;AAAA,EACI,QAAQC,GAAMC,GAAI;AACd,QAAIA,MAAO,UAAa,KAAK,MAAMA,CAAE,MAAM;AACvC,YAAM,IAAI,MAAM,gBAAgBA,CAAE,iBAAiB;AAEvD,UAAMC,IAASD,KAAME,EAAQ,GACvBX,IAAO,EAAE,IAAIU,GAAQ,MAAAF,EAAM;AACjC,gBAAK,MAAME,CAAM,IAAIV,GACdA;AAAA,EACf;AAAA,EACI,WAAWA,GAAM;AAEb,WAAO,KAAK,MAAMA,EAAK,EAAE,GAEzB,KAAK,QAAQ,KAAK,MAAM,OAAO,CAACO,MAASA,EAAK,WAAWP,EAAK,MAAMO,EAAK,WAAWP,EAAK,EAAE;AAAA,EACnG;AAAA,EACI,QAAQY,GAAQC,GAAQL,GAAM;AAC1B,QAAI,KAAK,MAAMI,EAAO,EAAE,MAAM;AAC1B,YAAM,IAAI,MAAM,eAAeA,EAAO,EAAE,eAAe;AAE3D,QAAI,KAAK,MAAMC,EAAO,EAAE,MAAM;AAC1B,YAAM,IAAI,MAAM,eAAeA,EAAO,EAAE,eAAe;AAE3D,UAAMN,IAAO,EAAE,QAAQK,EAAO,IAAI,QAAQC,EAAO,IAAI,MAAAL,EAAM;AAC3D,gBAAK,MAAM,KAAKD,CAAI,GACbA;AAAA,EACf;AAAA,EACI,YAAY;AACR,UAAMO,IAAU,IAAI,IAAI,KAAK,MAAM,IAAI,CAACP,MAASA,EAAK,MAAM,CAAC,GACvDQ,IAAQ,CAAE;AAChB,kBAAO,OAAO,KAAK,KAAK,EAAE,QAAQ,CAACf,MAAS;AACxC,MAAKc,EAAQ,IAAId,EAAK,EAAE,KACpBe,EAAM,KAAKf,CAAI;AAAA,IAE/B,CAAS,GACMe,EAAM,CAAC;AAAA,EACtB;AAAA,EACI,WAAW;AACP,UAAMC,IAAU,IAAI,IAAI,KAAK,MAAM,IAAI,CAACT,MAASA,EAAK,MAAM,CAAC,GACvDQ,IAAQ,CAAE;AAChB,kBAAO,OAAO,KAAK,KAAK,EAAE,QAAQ,CAACf,MAAS;AACxC,MAAKgB,EAAQ,IAAIhB,EAAK,EAAE,KACpBe,EAAM,KAAKf,CAAI;AAAA,IAE/B,CAAS,GACMe,EAAM,CAAC;AAAA,EACtB;AAAA,EACI,OAAOE,GAAO;AAEV,WAAO,QAAQA,EAAM,KAAK,EAAE,QAAQ,CAAC,CAACC,GAAKC,CAAK,MAAM;AAClD,WAAK,MAAMD,CAAG,IAAIC;AAAA,IAC9B,CAAS,GAED,KAAK,QAAQ,CAAC,GAAG,KAAK,OAAO,GAAGF,EAAM,KAAK;AAAA,EACnD;AAAA,EACI,gBAAgB;AACZ,UAAMG,IAAY,KAAK,UAAW;AAClC,QAAIA,GAAW;AACX,YAAMC,IAAgB,KAAK,MAAM,OAAO,CAACd,MAASA,EAAK,WAAWa,EAAU,EAAE;AAC9E,OAAI,OAAO,KAAK,KAAK,KAAK,EAAE,WAAW,KAAKC,EAAc,WAAW,MACjE,KAAK,WAAWD,CAAS;AAAA,IAEzC;AAAA,EACA;AAAA,EACI,eAAe;AACX,UAAME,IAAW,KAAK,SAAU;AAChC,QAAIA,GAAU;AACV,YAAMC,IAAgB,KAAK,MAAM,OAAO,CAAChB,MAASA,EAAK,WAAWe,EAAS,EAAE;AAC7E,OAAI,OAAO,KAAK,KAAK,KAAK,EAAE,WAAW,KAAKC,EAAc,WAAW,MACjE,KAAK,WAAWD,CAAQ;AAAA,IAExC;AAAA,EACA;AACA;","x_google_ignoreList":[0]}
@@ -0,0 +1,33 @@
1
+ import { AsyncLocalStorageProviderSingleton as c } from "../singletons/index.js";
2
+ function l(e) {
3
+ return typeof e == "object" && e !== null && typeof e[Symbol.iterator] == "function" && // avoid detecting array/set as iterator
4
+ typeof e.next == "function";
5
+ }
6
+ function u(e) {
7
+ return typeof e == "object" && e !== null && typeof e[Symbol.asyncIterator] == "function";
8
+ }
9
+ function* i(e, t) {
10
+ const n = c.getInstance();
11
+ for (; ; ) {
12
+ const { value: o, done: r } = n.run(e, t.next.bind(t));
13
+ if (r)
14
+ break;
15
+ yield o;
16
+ }
17
+ }
18
+ async function* y(e, t) {
19
+ const n = c.getInstance(), o = t[Symbol.asyncIterator]();
20
+ for (; ; ) {
21
+ const { value: r, done: a } = await n.run(e, o.next.bind(t));
22
+ if (a)
23
+ break;
24
+ yield r;
25
+ }
26
+ }
27
+ export {
28
+ y as consumeAsyncIterableInContext,
29
+ i as consumeIteratorInContext,
30
+ u as isAsyncIterable,
31
+ l as isIterator
32
+ };
33
+ //# sourceMappingURL=iter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iter.js","sources":["../../../../../../node_modules/@langchain/core/dist/runnables/iter.js"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"../singletons/index.js\";\nexport function isIterator(thing) {\n return (typeof thing === \"object\" &&\n thing !== null &&\n typeof thing[Symbol.iterator] === \"function\" &&\n // avoid detecting array/set as iterator\n typeof thing.next === \"function\");\n}\nexport function isAsyncIterable(thing) {\n return (typeof thing === \"object\" &&\n thing !== null &&\n typeof thing[Symbol.asyncIterator] ===\n \"function\");\n}\nexport function* consumeIteratorInContext(context, iter) {\n const storage = AsyncLocalStorageProviderSingleton.getInstance();\n while (true) {\n const { value, done } = storage.run(context, iter.next.bind(iter));\n if (done) {\n break;\n }\n else {\n yield value;\n }\n }\n}\nexport async function* consumeAsyncIterableInContext(context, iter) {\n const storage = AsyncLocalStorageProviderSingleton.getInstance();\n const iterator = iter[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await storage.run(context, iterator.next.bind(iter));\n if (done) {\n break;\n }\n else {\n yield value;\n }\n }\n}\n"],"names":["isIterator","thing","isAsyncIterable","consumeIteratorInContext","context","iter","storage","AsyncLocalStorageProviderSingleton","value","done","consumeAsyncIterableInContext","iterator"],"mappings":";AACO,SAASA,EAAWC,GAAO;AAC9B,SAAQ,OAAOA,KAAU,YACrBA,MAAU,QACV,OAAOA,EAAM,OAAO,QAAQ,KAAM;AAAA,EAElC,OAAOA,EAAM,QAAS;AAC9B;AACO,SAASC,EAAgBD,GAAO;AACnC,SAAQ,OAAOA,KAAU,YACrBA,MAAU,QACV,OAAOA,EAAM,OAAO,aAAa,KAC7B;AACZ;AACO,UAAUE,EAAyBC,GAASC,GAAM;AACrD,QAAMC,IAAUC,EAAmC,YAAa;AAChE,aAAa;AACT,UAAM,EAAE,OAAAC,GAAO,MAAAC,EAAM,IAAGH,EAAQ,IAAIF,GAASC,EAAK,KAAK,KAAKA,CAAI,CAAC;AACjE,QAAII;AACA;AAGA,UAAMD;AAAA,EAElB;AACA;AACO,gBAAgBE,EAA8BN,GAASC,GAAM;AAChE,QAAMC,IAAUC,EAAmC,YAAa,GAC1DI,IAAWN,EAAK,OAAO,aAAa,EAAG;AAC7C,aAAa;AACT,UAAM,EAAE,OAAAG,GAAO,MAAAC,EAAM,IAAG,MAAMH,EAAQ,IAAIF,GAASO,EAAS,KAAK,KAAKN,CAAI,CAAC;AAC3E,QAAII;AACA;AAGA,UAAMD;AAAA,EAElB;AACA;","x_google_ignoreList":[0]}
@@ -0,0 +1,54 @@
1
+ function d(n) {
2
+ return n ? n.lc_runnable : !1;
3
+ }
4
+ class c {
5
+ constructor(u) {
6
+ Object.defineProperty(this, "includeNames", {
7
+ enumerable: !0,
8
+ configurable: !0,
9
+ writable: !0,
10
+ value: void 0
11
+ }), Object.defineProperty(this, "includeTypes", {
12
+ enumerable: !0,
13
+ configurable: !0,
14
+ writable: !0,
15
+ value: void 0
16
+ }), Object.defineProperty(this, "includeTags", {
17
+ enumerable: !0,
18
+ configurable: !0,
19
+ writable: !0,
20
+ value: void 0
21
+ }), Object.defineProperty(this, "excludeNames", {
22
+ enumerable: !0,
23
+ configurable: !0,
24
+ writable: !0,
25
+ value: void 0
26
+ }), Object.defineProperty(this, "excludeTypes", {
27
+ enumerable: !0,
28
+ configurable: !0,
29
+ writable: !0,
30
+ value: void 0
31
+ }), Object.defineProperty(this, "excludeTags", {
32
+ enumerable: !0,
33
+ configurable: !0,
34
+ writable: !0,
35
+ value: void 0
36
+ }), this.includeNames = u.includeNames, this.includeTypes = u.includeTypes, this.includeTags = u.includeTags, this.excludeNames = u.excludeNames, this.excludeTypes = u.excludeTypes, this.excludeTags = u.excludeTags;
37
+ }
38
+ includeEvent(u, s) {
39
+ let e = this.includeNames === void 0 && this.includeTypes === void 0 && this.includeTags === void 0;
40
+ const l = u.tags ?? [];
41
+ return this.includeNames !== void 0 && (e = e || this.includeNames.includes(u.name)), this.includeTypes !== void 0 && (e = e || this.includeTypes.includes(s)), this.includeTags !== void 0 && (e = e || l.some((t) => {
42
+ var i;
43
+ return (i = this.includeTags) == null ? void 0 : i.includes(t);
44
+ })), this.excludeNames !== void 0 && (e = e && !this.excludeNames.includes(u.name)), this.excludeTypes !== void 0 && (e = e && !this.excludeTypes.includes(s)), this.excludeTags !== void 0 && (e = e && l.every((t) => {
45
+ var i;
46
+ return !((i = this.excludeTags) != null && i.includes(t));
47
+ })), e;
48
+ }
49
+ }
50
+ export {
51
+ c as _RootEventFilter,
52
+ d as isRunnableInterface
53
+ };
54
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../node_modules/@langchain/core/dist/runnables/utils.js"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isRunnableInterface(thing) {\n return thing ? thing.lc_runnable : false;\n}\n/**\n * Utility to filter the root event in the streamEvents implementation.\n * This is simply binding the arguments to the namespace to make save on\n * a bit of typing in the streamEvents implementation.\n *\n * TODO: Refactor and remove.\n */\nexport class _RootEventFilter {\n constructor(fields) {\n Object.defineProperty(this, \"includeNames\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"includeTypes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"includeTags\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeNames\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeTypes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"excludeTags\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.includeNames = fields.includeNames;\n this.includeTypes = fields.includeTypes;\n this.includeTags = fields.includeTags;\n this.excludeNames = fields.excludeNames;\n this.excludeTypes = fields.excludeTypes;\n this.excludeTags = fields.excludeTags;\n }\n includeEvent(event, rootType) {\n let include = this.includeNames === undefined &&\n this.includeTypes === undefined &&\n this.includeTags === undefined;\n const eventTags = event.tags ?? [];\n if (this.includeNames !== undefined) {\n include = include || this.includeNames.includes(event.name);\n }\n if (this.includeTypes !== undefined) {\n include = include || this.includeTypes.includes(rootType);\n }\n if (this.includeTags !== undefined) {\n include =\n include || eventTags.some((tag) => this.includeTags?.includes(tag));\n }\n if (this.excludeNames !== undefined) {\n include = include && !this.excludeNames.includes(event.name);\n }\n if (this.excludeTypes !== undefined) {\n include = include && !this.excludeTypes.includes(rootType);\n }\n if (this.excludeTags !== undefined) {\n include =\n include && eventTags.every((tag) => !this.excludeTags?.includes(tag));\n }\n return include;\n }\n}\n"],"names":["isRunnableInterface","thing","_RootEventFilter","fields","event","rootType","include","eventTags","tag","_a"],"mappings":"AACO,SAASA,EAAoBC,GAAO;AACvC,SAAOA,IAAQA,EAAM,cAAc;AACvC;AAQO,MAAMC,EAAiB;AAAA,EAC1B,YAAYC,GAAQ;AAChB,WAAO,eAAe,MAAM,gBAAgB;AAAA,MACxC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,gBAAgB;AAAA,MACxC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,eAAe;AAAA,MACvC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,gBAAgB;AAAA,MACxC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,gBAAgB;AAAA,MACxC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,OAAO,eAAe,MAAM,eAAe;AAAA,MACvC,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,OAAO;AAAA,IACnB,CAAS,GACD,KAAK,eAAeA,EAAO,cAC3B,KAAK,eAAeA,EAAO,cAC3B,KAAK,cAAcA,EAAO,aAC1B,KAAK,eAAeA,EAAO,cAC3B,KAAK,eAAeA,EAAO,cAC3B,KAAK,cAAcA,EAAO;AAAA,EAClC;AAAA,EACI,aAAaC,GAAOC,GAAU;AAC1B,QAAIC,IAAU,KAAK,iBAAiB,UAChC,KAAK,iBAAiB,UACtB,KAAK,gBAAgB;AACzB,UAAMC,IAAYH,EAAM,QAAQ,CAAE;AAClC,WAAI,KAAK,iBAAiB,WACtBE,IAAUA,KAAW,KAAK,aAAa,SAASF,EAAM,IAAI,IAE1D,KAAK,iBAAiB,WACtBE,IAAUA,KAAW,KAAK,aAAa,SAASD,CAAQ,IAExD,KAAK,gBAAgB,WACrBC,IACIA,KAAWC,EAAU,KAAK,CAACC,MAAQ;AArEnD,UAAAC;AAqEmD,cAAAA,IAAA,KAAK,gBAAL,gBAAAA,EAAkB,SAASD;AAAA,KAAI,IAEtE,KAAK,iBAAiB,WACtBF,IAAUA,KAAW,CAAC,KAAK,aAAa,SAASF,EAAM,IAAI,IAE3D,KAAK,iBAAiB,WACtBE,IAAUA,KAAW,CAAC,KAAK,aAAa,SAASD,CAAQ,IAEzD,KAAK,gBAAgB,WACrBC,IACIA,KAAWC,EAAU,MAAM,CAACC,MAAG;AA/E/C,UAAAC;AA+EoD,gBAACA,IAAA,KAAK,gBAAL,QAAAA,EAAkB,SAASD;AAAA,KAAI,IAErEF;AAAA,EACf;AACA;","x_google_ignoreList":[0]}
@@ -0,0 +1,20 @@
1
+ import { IterableReadableStream as o } from "../utils/stream.js";
2
+ function d(t) {
3
+ const n = new TextEncoder(), a = new ReadableStream({
4
+ async start(e) {
5
+ for await (const r of t)
6
+ e.enqueue(n.encode(`event: data
7
+ data: ${JSON.stringify(r)}
8
+
9
+ `));
10
+ e.enqueue(n.encode(`event: end
11
+
12
+ `)), e.close();
13
+ }
14
+ });
15
+ return o.fromReadableStream(a);
16
+ }
17
+ export {
18
+ d as convertToHttpEventStream
19
+ };
20
+ //# sourceMappingURL=wrappers.js.map