@langchain/core 1.0.0-alpha.5 → 1.0.0-alpha.7

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 (284) hide show
  1. package/LICENSE +6 -6
  2. package/dist/agents.d.ts.map +1 -1
  3. package/dist/caches/base.d.ts.map +1 -1
  4. package/dist/callbacks/base.d.ts.map +1 -1
  5. package/dist/callbacks/manager.cjs +9 -64
  6. package/dist/callbacks/manager.cjs.map +1 -1
  7. package/dist/callbacks/manager.d.cts +1 -23
  8. package/dist/callbacks/manager.d.cts.map +1 -1
  9. package/dist/callbacks/manager.d.ts +1 -23
  10. package/dist/callbacks/manager.d.ts.map +1 -1
  11. package/dist/callbacks/manager.js +10 -63
  12. package/dist/callbacks/manager.js.map +1 -1
  13. package/dist/chat_history.cjs +0 -4
  14. package/dist/chat_history.cjs.map +1 -1
  15. package/dist/chat_history.d.cts +1 -3
  16. package/dist/chat_history.d.cts.map +1 -1
  17. package/dist/chat_history.d.ts +1 -3
  18. package/dist/chat_history.d.ts.map +1 -1
  19. package/dist/chat_history.js +0 -4
  20. package/dist/chat_history.js.map +1 -1
  21. package/dist/document_loaders/base.cjs +1 -13
  22. package/dist/document_loaders/base.cjs.map +1 -1
  23. package/dist/document_loaders/base.d.cts +0 -9
  24. package/dist/document_loaders/base.d.cts.map +1 -1
  25. package/dist/document_loaders/base.d.ts +0 -9
  26. package/dist/document_loaders/base.d.ts.map +1 -1
  27. package/dist/document_loaders/base.js +1 -13
  28. package/dist/document_loaders/base.js.map +1 -1
  29. package/dist/document_loaders/langsmith.d.cts +1 -1
  30. package/dist/language_models/base.cjs.map +1 -1
  31. package/dist/language_models/base.d.cts +0 -16
  32. package/dist/language_models/base.d.cts.map +1 -1
  33. package/dist/language_models/base.d.ts +0 -16
  34. package/dist/language_models/base.d.ts.map +1 -1
  35. package/dist/language_models/base.js.map +1 -1
  36. package/dist/language_models/chat_models.cjs +1 -80
  37. package/dist/language_models/chat_models.cjs.map +1 -1
  38. package/dist/language_models/chat_models.d.cts +1 -53
  39. package/dist/language_models/chat_models.d.cts.map +1 -1
  40. package/dist/language_models/chat_models.d.ts +1 -53
  41. package/dist/language_models/chat_models.d.ts.map +1 -1
  42. package/dist/language_models/chat_models.js +2 -80
  43. package/dist/language_models/chat_models.js.map +1 -1
  44. package/dist/language_models/llms.cjs +0 -56
  45. package/dist/language_models/llms.cjs.map +1 -1
  46. package/dist/language_models/llms.d.cts +1 -43
  47. package/dist/language_models/llms.d.cts.map +1 -1
  48. package/dist/language_models/llms.d.ts +1 -43
  49. package/dist/language_models/llms.d.ts.map +1 -1
  50. package/dist/language_models/llms.js +0 -56
  51. package/dist/language_models/llms.js.map +1 -1
  52. package/dist/load/import_map.cjs +1 -7
  53. package/dist/load/import_map.cjs.map +1 -1
  54. package/dist/load/import_map.js +1 -7
  55. package/dist/load/import_map.js.map +1 -1
  56. package/dist/messages/ai.cjs +8 -4
  57. package/dist/messages/ai.cjs.map +1 -1
  58. package/dist/messages/ai.js +8 -4
  59. package/dist/messages/ai.js.map +1 -1
  60. package/dist/messages/base.cjs +1 -1
  61. package/dist/messages/base.cjs.map +1 -1
  62. package/dist/messages/base.d.cts +2 -2
  63. package/dist/messages/base.d.cts.map +1 -1
  64. package/dist/messages/base.d.ts +2 -2
  65. package/dist/messages/base.d.ts.map +1 -1
  66. package/dist/messages/base.js +1 -1
  67. package/dist/messages/base.js.map +1 -1
  68. package/dist/messages/block_translators/anthropic.cjs +191 -144
  69. package/dist/messages/block_translators/anthropic.cjs.map +1 -1
  70. package/dist/messages/block_translators/anthropic.js +191 -144
  71. package/dist/messages/block_translators/anthropic.js.map +1 -1
  72. package/dist/messages/block_translators/bedrock_converse.cjs +213 -0
  73. package/dist/messages/block_translators/bedrock_converse.cjs.map +1 -0
  74. package/dist/messages/block_translators/bedrock_converse.js +213 -0
  75. package/dist/messages/block_translators/bedrock_converse.js.map +1 -0
  76. package/dist/messages/block_translators/google_genai.cjs +73 -0
  77. package/dist/messages/block_translators/google_genai.cjs.map +1 -0
  78. package/dist/messages/block_translators/google_genai.js +73 -0
  79. package/dist/messages/block_translators/google_genai.js.map +1 -0
  80. package/dist/messages/block_translators/google_vertexai.cjs +74 -0
  81. package/dist/messages/block_translators/google_vertexai.cjs.map +1 -0
  82. package/dist/messages/block_translators/google_vertexai.js +74 -0
  83. package/dist/messages/block_translators/google_vertexai.js.map +1 -0
  84. package/dist/messages/block_translators/index.cjs +10 -1
  85. package/dist/messages/block_translators/index.cjs.map +1 -1
  86. package/dist/messages/block_translators/index.js +12 -3
  87. package/dist/messages/block_translators/index.js.map +1 -1
  88. package/dist/messages/block_translators/openai.cjs +78 -22
  89. package/dist/messages/block_translators/openai.cjs.map +1 -1
  90. package/dist/messages/block_translators/openai.js +78 -22
  91. package/dist/messages/block_translators/openai.js.map +1 -1
  92. package/dist/messages/block_translators/utils.cjs +4 -0
  93. package/dist/messages/block_translators/utils.cjs.map +1 -1
  94. package/dist/messages/block_translators/utils.js +4 -1
  95. package/dist/messages/block_translators/utils.js.map +1 -1
  96. package/dist/messages/content/index.cjs.map +1 -1
  97. package/dist/messages/content/index.d.cts +20 -1
  98. package/dist/messages/content/index.d.cts.map +1 -1
  99. package/dist/messages/content/index.d.ts +20 -1
  100. package/dist/messages/content/index.d.ts.map +1 -1
  101. package/dist/messages/content/index.js.map +1 -1
  102. package/dist/messages/content/tools.cjs +3 -4
  103. package/dist/messages/content/tools.cjs.map +1 -1
  104. package/dist/messages/content/tools.d.cts +22 -45
  105. package/dist/messages/content/tools.d.cts.map +1 -1
  106. package/dist/messages/content/tools.d.ts +22 -45
  107. package/dist/messages/content/tools.d.ts.map +1 -1
  108. package/dist/messages/content/tools.js +3 -4
  109. package/dist/messages/content/tools.js.map +1 -1
  110. package/dist/messages/index.cjs +4 -0
  111. package/dist/messages/index.cjs.map +1 -1
  112. package/dist/messages/index.d.cts +2 -2
  113. package/dist/messages/index.d.ts +2 -2
  114. package/dist/messages/index.js +4 -2
  115. package/dist/messages/index.js.map +1 -1
  116. package/dist/messages/message.cjs.map +1 -1
  117. package/dist/messages/message.d.cts +6 -6
  118. package/dist/messages/message.d.cts.map +1 -1
  119. package/dist/messages/message.d.ts +6 -6
  120. package/dist/messages/message.d.ts.map +1 -1
  121. package/dist/messages/message.js.map +1 -1
  122. package/dist/messages/metadata.cjs.map +1 -1
  123. package/dist/messages/metadata.d.cts +3 -0
  124. package/dist/messages/metadata.d.cts.map +1 -1
  125. package/dist/messages/metadata.d.ts +3 -0
  126. package/dist/messages/metadata.d.ts.map +1 -1
  127. package/dist/messages/metadata.js.map +1 -1
  128. package/dist/messages/tool.cjs +2 -0
  129. package/dist/messages/tool.cjs.map +1 -1
  130. package/dist/messages/tool.d.cts +5 -1
  131. package/dist/messages/tool.d.cts.map +1 -1
  132. package/dist/messages/tool.d.ts +5 -1
  133. package/dist/messages/tool.d.ts.map +1 -1
  134. package/dist/messages/tool.js +2 -0
  135. package/dist/messages/tool.js.map +1 -1
  136. package/dist/output_parsers/json.cjs +5 -0
  137. package/dist/output_parsers/json.cjs.map +1 -1
  138. package/dist/output_parsers/json.d.cts +2 -0
  139. package/dist/output_parsers/json.d.cts.map +1 -1
  140. package/dist/output_parsers/json.d.ts +2 -0
  141. package/dist/output_parsers/json.d.ts.map +1 -1
  142. package/dist/output_parsers/json.js +5 -0
  143. package/dist/output_parsers/json.js.map +1 -1
  144. package/dist/prompts/base.cjs +0 -36
  145. package/dist/prompts/base.cjs.map +1 -1
  146. package/dist/prompts/base.d.cts +0 -16
  147. package/dist/prompts/base.d.cts.map +1 -1
  148. package/dist/prompts/base.d.ts +0 -16
  149. package/dist/prompts/base.d.ts.map +1 -1
  150. package/dist/prompts/base.js +0 -36
  151. package/dist/prompts/base.js.map +1 -1
  152. package/dist/prompts/chat.cjs +1 -5
  153. package/dist/prompts/chat.cjs.map +1 -1
  154. package/dist/prompts/chat.d.cts +1 -4
  155. package/dist/prompts/chat.d.cts.map +1 -1
  156. package/dist/prompts/chat.d.ts +1 -4
  157. package/dist/prompts/chat.d.ts.map +1 -1
  158. package/dist/prompts/chat.js +1 -5
  159. package/dist/prompts/chat.js.map +1 -1
  160. package/dist/prompts/dict.d.cts +1 -1
  161. package/dist/prompts/dict.d.ts +1 -1
  162. package/dist/prompts/few_shot.d.cts +2 -2
  163. package/dist/prompts/few_shot.d.ts +2 -2
  164. package/dist/prompts/image.d.cts +1 -1
  165. package/dist/prompts/image.d.ts +1 -1
  166. package/dist/prompts/index.d.cts +2 -2
  167. package/dist/prompts/index.d.ts +2 -2
  168. package/dist/prompts/pipeline.d.cts +1 -1
  169. package/dist/prompts/pipeline.d.ts +1 -1
  170. package/dist/prompts/prompt.d.cts +2 -2
  171. package/dist/prompts/prompt.d.ts +2 -2
  172. package/dist/retrievers/index.cjs +3 -18
  173. package/dist/retrievers/index.cjs.map +1 -1
  174. package/dist/retrievers/index.d.cts +2 -27
  175. package/dist/retrievers/index.d.cts.map +1 -1
  176. package/dist/retrievers/index.d.ts +2 -27
  177. package/dist/retrievers/index.d.ts.map +1 -1
  178. package/dist/retrievers/index.js +3 -18
  179. package/dist/retrievers/index.js.map +1 -1
  180. package/dist/runnables/base.cjs +24 -63
  181. package/dist/runnables/base.cjs.map +1 -1
  182. package/dist/runnables/base.d.cts +10 -39
  183. package/dist/runnables/base.d.cts.map +1 -1
  184. package/dist/runnables/base.d.ts +10 -39
  185. package/dist/runnables/base.d.ts.map +1 -1
  186. package/dist/runnables/base.js +24 -63
  187. package/dist/runnables/base.js.map +1 -1
  188. package/dist/runnables/graph.cjs +1 -1
  189. package/dist/runnables/graph.cjs.map +1 -1
  190. package/dist/runnables/graph.js +2 -2
  191. package/dist/runnables/graph.js.map +1 -1
  192. package/dist/runnables/graph_mermaid.cjs +1 -10
  193. package/dist/runnables/graph_mermaid.cjs.map +1 -1
  194. package/dist/runnables/graph_mermaid.js +1 -10
  195. package/dist/runnables/graph_mermaid.js.map +1 -1
  196. package/dist/runnables/history.cjs +1 -1
  197. package/dist/runnables/history.cjs.map +1 -1
  198. package/dist/runnables/history.d.cts +2 -2
  199. package/dist/runnables/history.d.cts.map +1 -1
  200. package/dist/runnables/history.d.ts +2 -2
  201. package/dist/runnables/history.d.ts.map +1 -1
  202. package/dist/runnables/history.js +1 -1
  203. package/dist/runnables/history.js.map +1 -1
  204. package/dist/stores.cjs.map +1 -1
  205. package/dist/stores.d.cts +3 -29
  206. package/dist/stores.d.cts.map +1 -1
  207. package/dist/stores.d.ts +3 -29
  208. package/dist/stores.d.ts.map +1 -1
  209. package/dist/stores.js.map +1 -1
  210. package/dist/tools/index.cjs +12 -4
  211. package/dist/tools/index.cjs.map +1 -1
  212. package/dist/tools/index.js +12 -4
  213. package/dist/tools/index.js.map +1 -1
  214. package/dist/tools/types.cjs.map +1 -1
  215. package/dist/tools/types.d.cts +4 -0
  216. package/dist/tools/types.d.cts.map +1 -1
  217. package/dist/tools/types.d.ts +4 -0
  218. package/dist/tools/types.d.ts.map +1 -1
  219. package/dist/tools/types.js.map +1 -1
  220. package/dist/tracers/base.cjs +1 -1
  221. package/dist/tracers/base.cjs.map +1 -1
  222. package/dist/tracers/base.d.cts +1 -1
  223. package/dist/tracers/base.js +2 -2
  224. package/dist/tracers/base.js.map +1 -1
  225. package/dist/tracers/log_stream.d.cts +1 -1
  226. package/dist/tracers/log_stream.d.ts +1 -1
  227. package/dist/tracers/tracer_langchain.cjs +1 -0
  228. package/dist/tracers/tracer_langchain.cjs.map +1 -1
  229. package/dist/tracers/tracer_langchain.d.cts +2 -2
  230. package/dist/tracers/tracer_langchain.js +1 -0
  231. package/dist/tracers/tracer_langchain.js.map +1 -1
  232. package/dist/utils/env.cjs +1 -9
  233. package/dist/utils/env.cjs.map +1 -1
  234. package/dist/utils/env.d.cts +2 -6
  235. package/dist/utils/env.d.cts.map +1 -1
  236. package/dist/utils/env.d.ts +2 -6
  237. package/dist/utils/env.d.ts.map +1 -1
  238. package/dist/utils/env.js +2 -9
  239. package/dist/utils/env.js.map +1 -1
  240. package/dist/utils/testing/message_history.cjs +1 -1
  241. package/dist/utils/testing/message_history.cjs.map +1 -1
  242. package/dist/utils/testing/message_history.d.cts +1 -1
  243. package/dist/utils/testing/message_history.d.cts.map +1 -1
  244. package/dist/utils/testing/message_history.d.ts +1 -1
  245. package/dist/utils/testing/message_history.d.ts.map +1 -1
  246. package/dist/utils/testing/message_history.js +1 -1
  247. package/dist/utils/testing/message_history.js.map +1 -1
  248. package/dist/utils/types/index.cjs +8 -0
  249. package/dist/utils/types/index.d.cts +2 -2
  250. package/dist/utils/types/index.d.ts +2 -2
  251. package/dist/utils/types/index.js +6 -2
  252. package/dist/utils/types/zod.cjs +62 -3
  253. package/dist/utils/types/zod.cjs.map +1 -1
  254. package/dist/utils/types/zod.d.cts +28 -1
  255. package/dist/utils/types/zod.d.cts.map +1 -1
  256. package/dist/utils/types/zod.d.ts +28 -1
  257. package/dist/utils/types/zod.d.ts.map +1 -1
  258. package/dist/utils/types/zod.js +59 -4
  259. package/dist/utils/types/zod.js.map +1 -1
  260. package/package.json +1 -37
  261. package/dist/runnables/remote.cjs +0 -399
  262. package/dist/runnables/remote.cjs.map +0 -1
  263. package/dist/runnables/remote.d.cts +0 -73
  264. package/dist/runnables/remote.d.cts.map +0 -1
  265. package/dist/runnables/remote.d.ts +0 -73
  266. package/dist/runnables/remote.d.ts.map +0 -1
  267. package/dist/runnables/remote.js +0 -393
  268. package/dist/runnables/remote.js.map +0 -1
  269. package/dist/tracers/initialize.cjs +0 -46
  270. package/dist/tracers/initialize.cjs.map +0 -1
  271. package/dist/tracers/initialize.d.cts +0 -26
  272. package/dist/tracers/initialize.d.cts.map +0 -1
  273. package/dist/tracers/initialize.d.ts +0 -26
  274. package/dist/tracers/initialize.d.ts.map +0 -1
  275. package/dist/tracers/initialize.js +0 -39
  276. package/dist/tracers/initialize.js.map +0 -1
  277. package/dist/tracers/tracer_langchain_v1.cjs +0 -168
  278. package/dist/tracers/tracer_langchain_v1.cjs.map +0 -1
  279. package/dist/tracers/tracer_langchain_v1.d.cts +0 -64
  280. package/dist/tracers/tracer_langchain_v1.d.cts.map +0 -1
  281. package/dist/tracers/tracer_langchain_v1.d.ts +0 -64
  282. package/dist/tracers/tracer_langchain_v1.d.ts.map +0 -1
  283. package/dist/tracers/tracer_langchain_v1.js +0 -162
  284. package/dist/tracers/tracer_langchain_v1.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@langchain/core",
3
- "version": "1.0.0-alpha.5",
3
+ "version": "1.0.0-alpha.7",
4
4
  "description": "Core LangChain.js abstractions and schemas",
5
5
  "type": "module",
6
6
  "engines": {
@@ -37,8 +37,6 @@
37
37
  "eslint": "^9.34.0",
38
38
  "ml-matrix": "^6.10.4",
39
39
  "prettier": "^2.8.3",
40
- "release-it": "^19.0.4",
41
- "release-it-pnpm": "^4.6.6",
42
40
  "rimraf": "^5.0.1",
43
41
  "typescript": "~5.8.3",
44
42
  "vitest": "^3.2.4",
@@ -415,17 +413,6 @@
415
413
  },
416
414
  "input": "./src/runnables/graph.ts"
417
415
  },
418
- "./runnables/remote": {
419
- "require": {
420
- "types": "./dist/runnables/remote.d.cts",
421
- "default": "./dist/runnables/remote.cjs"
422
- },
423
- "import": {
424
- "types": "./dist/runnables/remote.d.ts",
425
- "default": "./dist/runnables/remote.js"
426
- },
427
- "input": "./src/runnables/remote.ts"
428
- },
429
416
  "./retrievers": {
430
417
  "require": {
431
418
  "types": "./dist/retrievers/index.d.cts",
@@ -514,17 +501,6 @@
514
501
  },
515
502
  "input": "./src/tracers/console.ts"
516
503
  },
517
- "./tracers/initialize": {
518
- "require": {
519
- "types": "./dist/tracers/initialize.d.cts",
520
- "default": "./dist/tracers/initialize.cjs"
521
- },
522
- "import": {
523
- "types": "./dist/tracers/initialize.d.ts",
524
- "default": "./dist/tracers/initialize.js"
525
- },
526
- "input": "./src/tracers/initialize.ts"
527
- },
528
504
  "./tracers/log_stream": {
529
505
  "require": {
530
506
  "types": "./dist/tracers/log_stream.d.cts",
@@ -558,17 +534,6 @@
558
534
  },
559
535
  "input": "./src/tracers/tracer_langchain.ts"
560
536
  },
561
- "./tracers/tracer_langchain_v1": {
562
- "require": {
563
- "types": "./dist/tracers/tracer_langchain_v1.d.cts",
564
- "default": "./dist/tracers/tracer_langchain_v1.cjs"
565
- },
566
- "import": {
567
- "types": "./dist/tracers/tracer_langchain_v1.d.ts",
568
- "default": "./dist/tracers/tracer_langchain_v1.js"
569
- },
570
- "input": "./src/tracers/tracer_langchain_v1.ts"
571
- },
572
537
  "./types/stream": {
573
538
  "require": {
574
539
  "types": "./dist/types/stream.d.cts",
@@ -746,7 +711,6 @@
746
711
  "lint:dpdm": "dpdm --skip-dynamic-imports circular --exit-code circular:1 --no-warning --no-tree src/*.ts src/**/*.ts --exclude \"(node_modules|src/utils/zod-to-json-schema)\" --transform",
747
712
  "lint": "pnpm lint:eslint && pnpm lint:dpdm",
748
713
  "lint:fix": "pnpm lint:eslint --fix && pnpm lint:dpdm",
749
- "release": "release-it --only-version --config .release-it.json",
750
714
  "test": "vitest run",
751
715
  "test:watch": "vitest watch",
752
716
  "test:int": "vitest run --mode int",
@@ -1,399 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
- const require_base = require('../messages/base.cjs');
3
- const require_messages_tool = require('../messages/tool.cjs');
4
- const require_ai = require('../messages/ai.cjs');
5
- const require_chat = require('../messages/chat.cjs');
6
- const require_function = require('../messages/function.cjs');
7
- const require_human = require('../messages/human.cjs');
8
- const require_system = require('../messages/system.cjs');
9
- const require_config = require('./config.cjs');
10
- const require_utils_stream = require('../utils/stream.cjs');
11
- const require_tracers_log_stream = require('../tracers/log_stream.cjs');
12
- const require_outputs = require('../outputs.cjs');
13
- const require_base$1 = require('./base.cjs');
14
- require('../messages/index.cjs');
15
- const require_prompt_values = require('../prompt_values.cjs');
16
- const require_document = require('../documents/document.cjs');
17
- require('../documents/index.cjs');
18
- const require_utils_event_source_parse = require('../utils/event_source_parse.cjs');
19
-
20
- //#region src/runnables/remote.ts
21
- var remote_exports = {};
22
- require_rolldown_runtime.__export(remote_exports, { RemoteRunnable: () => RemoteRunnable });
23
- function isSuperset(set, subset) {
24
- for (const elem of subset) if (!set.has(elem)) return false;
25
- return true;
26
- }
27
- function revive(obj) {
28
- if (Array.isArray(obj)) return obj.map(revive);
29
- if (typeof obj === "object") {
30
- if (!obj || obj instanceof Date) return obj;
31
- const keysArr = Object.keys(obj);
32
- const keys = new Set(keysArr);
33
- if (isSuperset(keys, new Set(["page_content", "metadata"]))) return new require_document.Document({
34
- pageContent: obj.page_content,
35
- metadata: obj.metadata
36
- });
37
- if (isSuperset(keys, new Set([
38
- "content",
39
- "type",
40
- "additional_kwargs"
41
- ]))) {
42
- if (obj.type === "HumanMessage" || obj.type === "human") return new require_human.HumanMessage({ content: obj.content });
43
- if (obj.type === "SystemMessage" || obj.type === "system") return new require_system.SystemMessage({ content: obj.content });
44
- if (obj.type === "ChatMessage" || obj.type === "generic") return new require_chat.ChatMessage({
45
- content: obj.content,
46
- role: obj.role
47
- });
48
- if (obj.type === "FunctionMessage" || obj.type === "function") return new require_function.FunctionMessage({
49
- content: obj.content,
50
- name: obj.name
51
- });
52
- if (obj.type === "ToolMessage" || obj.type === "tool") return new require_messages_tool.ToolMessage({
53
- content: obj.content,
54
- tool_call_id: obj.tool_call_id,
55
- status: obj.status,
56
- artifact: obj.artifact
57
- });
58
- if (obj.type === "AIMessage" || obj.type === "ai") return new require_ai.AIMessage({ content: obj.content });
59
- if (obj.type === "HumanMessageChunk") return new require_human.HumanMessageChunk({ content: obj.content });
60
- if (obj.type === "SystemMessageChunk") return new require_system.SystemMessageChunk({ content: obj.content });
61
- if (obj.type === "ChatMessageChunk") return new require_chat.ChatMessageChunk({
62
- content: obj.content,
63
- role: obj.role
64
- });
65
- if (obj.type === "FunctionMessageChunk") return new require_function.FunctionMessageChunk({
66
- content: obj.content,
67
- name: obj.name
68
- });
69
- if (obj.type === "ToolMessageChunk") return new require_messages_tool.ToolMessageChunk({
70
- content: obj.content,
71
- tool_call_id: obj.tool_call_id,
72
- status: obj.status,
73
- artifact: obj.artifact
74
- });
75
- if (obj.type === "AIMessageChunk") return new require_ai.AIMessageChunk({ content: obj.content });
76
- }
77
- if (isSuperset(keys, new Set([
78
- "text",
79
- "generation_info",
80
- "type"
81
- ]))) {
82
- if (obj.type === "ChatGenerationChunk") return new require_outputs.ChatGenerationChunk({
83
- message: revive(obj.message),
84
- text: obj.text,
85
- generationInfo: obj.generation_info
86
- });
87
- else if (obj.type === "ChatGeneration") return {
88
- message: revive(obj.message),
89
- text: obj.text,
90
- generationInfo: obj.generation_info
91
- };
92
- else if (obj.type === "GenerationChunk") return new require_outputs.GenerationChunk({
93
- text: obj.text,
94
- generationInfo: obj.generation_info
95
- });
96
- else if (obj.type === "Generation") return {
97
- text: obj.text,
98
- generationInfo: obj.generation_info
99
- };
100
- }
101
- if (isSuperset(keys, new Set([
102
- "tool",
103
- "tool_input",
104
- "log",
105
- "type"
106
- ]))) {
107
- if (obj.type === "AgentAction") return {
108
- tool: obj.tool,
109
- toolInput: obj.tool_input,
110
- log: obj.log
111
- };
112
- }
113
- if (isSuperset(keys, new Set([
114
- "return_values",
115
- "log",
116
- "type"
117
- ]))) {
118
- if (obj.type === "AgentFinish") return {
119
- returnValues: obj.return_values,
120
- log: obj.log
121
- };
122
- }
123
- if (isSuperset(keys, new Set([
124
- "generations",
125
- "run",
126
- "type"
127
- ]))) {
128
- if (obj.type === "LLMResult") return {
129
- generations: revive(obj.generations),
130
- llmOutput: obj.llm_output,
131
- [require_outputs.RUN_KEY]: obj.run
132
- };
133
- }
134
- if (isSuperset(keys, new Set(["messages"]))) return new require_prompt_values.ChatPromptValue({ messages: obj.messages.map((msg) => revive(msg)) });
135
- if (isSuperset(keys, new Set(["text"]))) return new require_prompt_values.StringPromptValue(obj.text);
136
- const innerRevive = (key) => [key, revive(obj[key])];
137
- const rtn = Object.fromEntries(keysArr.map(innerRevive));
138
- return rtn;
139
- }
140
- return obj;
141
- }
142
- function deserialize(str) {
143
- const obj = JSON.parse(str);
144
- return revive(obj);
145
- }
146
- function removeCallbacksAndSignal(options) {
147
- const rest = { ...options };
148
- delete rest.callbacks;
149
- delete rest.signal;
150
- return rest;
151
- }
152
- function serialize(input) {
153
- if (Array.isArray(input)) return input.map(serialize);
154
- if (require_base.isBaseMessage(input)) {
155
- const serializedMessage = {
156
- content: input.content,
157
- type: input._getType(),
158
- additional_kwargs: input.additional_kwargs,
159
- name: input.name,
160
- example: false
161
- };
162
- if (require_messages_tool.ToolMessage.isInstance(input)) serializedMessage.tool_call_id = input.tool_call_id;
163
- else if (require_chat.ChatMessage.isInstance(input)) serializedMessage.role = input.role;
164
- return serializedMessage;
165
- }
166
- if (typeof input === "object") {
167
- if (!input || input instanceof Date) return input;
168
- const keysArr = Object.keys(input);
169
- const innerSerialize = (key) => [key, serialize(input[key])];
170
- const rtn = Object.fromEntries(keysArr.map(innerSerialize));
171
- return rtn;
172
- }
173
- return input;
174
- }
175
- /**
176
- * Client for interacting with LangChain runnables
177
- * that are hosted as LangServe endpoints.
178
- *
179
- * Allows you to interact with hosted runnables using the standard
180
- * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that
181
- * other runnables support.
182
- *
183
- * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.
184
- *
185
- * @param url - The base URL of the LangServe endpoint.
186
- * @param options - Optional configuration for the remote runnable, including timeout and headers.
187
- * @param fetch - Optional custom fetch implementation.
188
- * @param fetchRequestOptions - Optional additional options for fetch requests.
189
- */
190
- var RemoteRunnable = class extends require_base$1.Runnable {
191
- url;
192
- options;
193
- fetchImplementation = (...args) => fetch(...args);
194
- fetchRequestOptions;
195
- lc_namespace = [
196
- "langchain",
197
- "schema",
198
- "runnable",
199
- "remote"
200
- ];
201
- constructor(fields) {
202
- super(fields);
203
- const { url, options, fetch: fetchImplementation, fetchRequestOptions } = fields;
204
- this.url = url.replace(/\/$/, "");
205
- this.options = options;
206
- this.fetchImplementation = fetchImplementation ?? this.fetchImplementation;
207
- this.fetchRequestOptions = fetchRequestOptions;
208
- }
209
- async post(path, body, signal) {
210
- return this.fetchImplementation(`${this.url}${path}`, {
211
- method: "POST",
212
- body: JSON.stringify(serialize(body)),
213
- signal: signal ?? AbortSignal.timeout(this.options?.timeout ?? 6e4),
214
- ...this.fetchRequestOptions,
215
- headers: {
216
- "Content-Type": "application/json",
217
- ...this.fetchRequestOptions?.headers,
218
- ...this.options?.headers
219
- }
220
- });
221
- }
222
- async _invoke(input, options, _) {
223
- const [config, kwargs] = this._separateRunnableConfigFromCallOptions(options);
224
- const response = await this.post("/invoke", {
225
- input,
226
- config: removeCallbacksAndSignal(config),
227
- kwargs: kwargs ?? {}
228
- }, config.signal);
229
- if (!response.ok) throw new Error(`${response.status} Error: ${await response.text()}`);
230
- return revive((await response.json()).output);
231
- }
232
- async invoke(input, options) {
233
- return this._callWithConfig(this._invoke, input, options);
234
- }
235
- async _batch(inputs, options, _, batchOptions) {
236
- if (batchOptions?.returnExceptions) throw new Error("returnExceptions is not supported for remote clients");
237
- const configsAndKwargsArray = options?.map((opts) => this._separateRunnableConfigFromCallOptions(opts));
238
- const [configs, kwargs] = configsAndKwargsArray?.reduce(([pc, pk], [c, k]) => [[...pc, c], [...pk, k]], [[], []]) ?? [void 0, void 0];
239
- const response = await this.post("/batch", {
240
- inputs,
241
- config: (configs ?? []).map(removeCallbacksAndSignal).map((config) => ({
242
- ...config,
243
- ...batchOptions
244
- })),
245
- kwargs
246
- }, options?.[0]?.signal);
247
- if (!response.ok) throw new Error(`${response.status} Error: ${await response.text()}`);
248
- const body = await response.json();
249
- if (!body.output) throw new Error("Invalid response from remote runnable");
250
- return revive(body.output);
251
- }
252
- async batch(inputs, options, batchOptions) {
253
- if (batchOptions?.returnExceptions) throw Error("returnExceptions is not supported for remote clients");
254
- return this._batchWithConfig(this._batch.bind(this), inputs, options, batchOptions);
255
- }
256
- async *_streamIterator(input, options) {
257
- const [config, kwargs] = this._separateRunnableConfigFromCallOptions(options);
258
- const callbackManager_ = await require_config.getCallbackManagerForConfig(options);
259
- const runManager = await callbackManager_?.handleChainStart(this.toJSON(), require_base$1._coerceToDict(input, "input"), config.runId, void 0, void 0, void 0, config.runName);
260
- delete config.runId;
261
- let finalOutput;
262
- let finalOutputSupported = true;
263
- try {
264
- const response = await this.post("/stream", {
265
- input,
266
- config: removeCallbacksAndSignal(config),
267
- kwargs
268
- }, config.signal);
269
- if (!response.ok) {
270
- const json = await response.json();
271
- const error = /* @__PURE__ */ new Error(`RemoteRunnable call failed with status code ${response.status}: ${json.message}`);
272
- error.response = response;
273
- throw error;
274
- }
275
- const { body } = response;
276
- if (!body) throw new Error("Could not begin remote stream. Please check the given URL and try again.");
277
- const runnableStream = require_utils_event_source_parse.convertEventStreamToIterableReadableDataStream(body);
278
- for await (const chunk of runnableStream) {
279
- const deserializedChunk = deserialize(chunk);
280
- yield deserializedChunk;
281
- if (finalOutputSupported) if (finalOutput === void 0) finalOutput = deserializedChunk;
282
- else try {
283
- finalOutput = require_utils_stream.concat(finalOutput, deserializedChunk);
284
- } catch {
285
- finalOutput = void 0;
286
- finalOutputSupported = false;
287
- }
288
- }
289
- } catch (err) {
290
- await runManager?.handleChainError(err);
291
- throw err;
292
- }
293
- await runManager?.handleChainEnd(finalOutput ?? {});
294
- }
295
- async *streamLog(input, options, streamOptions) {
296
- const [config, kwargs] = this._separateRunnableConfigFromCallOptions(options);
297
- const callbackManager_ = await require_config.getCallbackManagerForConfig(options);
298
- const runManager = await callbackManager_?.handleChainStart(this.toJSON(), require_base$1._coerceToDict(input, "input"), config.runId, void 0, void 0, void 0, config.runName);
299
- delete config.runId;
300
- const camelCaseStreamOptions = {
301
- include_names: streamOptions?.includeNames,
302
- include_types: streamOptions?.includeTypes,
303
- include_tags: streamOptions?.includeTags,
304
- exclude_names: streamOptions?.excludeNames,
305
- exclude_types: streamOptions?.excludeTypes,
306
- exclude_tags: streamOptions?.excludeTags
307
- };
308
- let runLog;
309
- try {
310
- const response = await this.post("/stream_log", {
311
- input,
312
- config: removeCallbacksAndSignal(config),
313
- kwargs,
314
- ...camelCaseStreamOptions,
315
- diff: false
316
- }, config.signal);
317
- const { body, ok } = response;
318
- if (!ok) throw new Error(`${response.status} Error: ${await response.text()}`);
319
- if (!body) throw new Error("Could not begin remote stream log. Please check the given URL and try again.");
320
- const runnableStream = require_utils_event_source_parse.convertEventStreamToIterableReadableDataStream(body);
321
- for await (const log of runnableStream) {
322
- const chunk = revive(JSON.parse(log));
323
- const logPatch = new require_tracers_log_stream.RunLogPatch({ ops: chunk.ops });
324
- yield logPatch;
325
- if (runLog === void 0) runLog = require_tracers_log_stream.RunLog.fromRunLogPatch(logPatch);
326
- else runLog = runLog.concat(logPatch);
327
- }
328
- } catch (err) {
329
- await runManager?.handleChainError(err);
330
- throw err;
331
- }
332
- await runManager?.handleChainEnd(runLog?.state.final_output);
333
- }
334
- _streamEvents(input, options, streamOptions) {
335
- const outerThis = this;
336
- const generator = async function* () {
337
- const [config, kwargs] = outerThis._separateRunnableConfigFromCallOptions(options);
338
- const callbackManager_ = await require_config.getCallbackManagerForConfig(options);
339
- const runManager = await callbackManager_?.handleChainStart(outerThis.toJSON(), require_base$1._coerceToDict(input, "input"), config.runId, void 0, void 0, void 0, config.runName);
340
- delete config.runId;
341
- const camelCaseStreamOptions = {
342
- include_names: streamOptions?.includeNames,
343
- include_types: streamOptions?.includeTypes,
344
- include_tags: streamOptions?.includeTags,
345
- exclude_names: streamOptions?.excludeNames,
346
- exclude_types: streamOptions?.excludeTypes,
347
- exclude_tags: streamOptions?.excludeTags
348
- };
349
- const events = [];
350
- try {
351
- const response = await outerThis.post("/stream_events", {
352
- input,
353
- config: removeCallbacksAndSignal(config),
354
- kwargs,
355
- ...camelCaseStreamOptions,
356
- diff: false
357
- }, config.signal);
358
- const { body, ok } = response;
359
- if (!ok) throw new Error(`${response.status} Error: ${await response.text()}`);
360
- if (!body) throw new Error("Could not begin remote stream events. Please check the given URL and try again.");
361
- const runnableStream = require_utils_event_source_parse.convertEventStreamToIterableReadableDataStream(body);
362
- for await (const log of runnableStream) {
363
- const chunk = revive(JSON.parse(log));
364
- const event = {
365
- event: chunk.event,
366
- name: chunk.name,
367
- run_id: chunk.run_id,
368
- tags: chunk.tags,
369
- metadata: chunk.metadata,
370
- data: chunk.data
371
- };
372
- yield event;
373
- events.push(event);
374
- }
375
- } catch (err) {
376
- await runManager?.handleChainError(err);
377
- throw err;
378
- }
379
- await runManager?.handleChainEnd(events);
380
- };
381
- return generator();
382
- }
383
- streamEvents(input, options, streamOptions) {
384
- if (options.version !== "v1" && options.version !== "v2") throw new Error(`Only versions "v1" and "v2" of the events schema is currently supported.`);
385
- if (options.encoding !== void 0) throw new Error("Special encodings are not supported for this runnable.");
386
- const eventStream = this._streamEvents(input, options, streamOptions);
387
- return require_utils_stream.IterableReadableStream.fromAsyncGenerator(eventStream);
388
- }
389
- };
390
-
391
- //#endregion
392
- exports.RemoteRunnable = RemoteRunnable;
393
- Object.defineProperty(exports, 'remote_exports', {
394
- enumerable: true,
395
- get: function () {
396
- return remote_exports;
397
- }
398
- });
399
- //# sourceMappingURL=remote.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote.cjs","names":["set: Set<string>","subset: Set<string>","obj: any","Document","HumanMessage","SystemMessage","ChatMessage","FunctionMessage","ToolMessage","AIMessage","HumanMessageChunk","SystemMessageChunk","ChatMessageChunk","FunctionMessageChunk","ToolMessageChunk","AIMessageChunk","ChatGenerationChunk","GenerationChunk","RUN_KEY","ChatPromptValue","msg: any","StringPromptValue","innerRevive: (key: string) => [string, any]","key: string","str: string","options?: RunnableConfig","input: RunInput","isBaseMessage","serializedMessage: Record<string, any>","innerSerialize: (key: string) => [string, any]","Runnable","fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }","path: string","body: Body","signal?: AbortSignal","options?: Partial<CallOptions>","_?: CallbackManagerForChainRun","inputs: RunInput[]","options?: Partial<CallOptions>[]","_?: (CallbackManagerForChainRun | undefined)[]","batchOptions?: RunnableBatchOptions","options?: Partial<CallOptions> | Partial<CallOptions>[]","getCallbackManagerForConfig","_coerceToDict","finalOutput: RunOutput | undefined","convertEventStreamToIterableReadableDataStream","concat","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">","RunLogPatch","RunLog","options: Partial<CallOptions> & { version: \"v1\" | \"v2\" }","streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined","options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n }","IterableReadableStream"],"sources":["../../src/runnables/remote.ts"],"sourcesContent":["import { Runnable, RunnableBatchOptions, _coerceToDict } from \"./base.js\";\nimport { getCallbackManagerForConfig, type RunnableConfig } from \"./config.js\";\nimport { Document } from \"../documents/index.js\";\nimport { CallbackManagerForChainRun } from \"../callbacks/manager.js\";\nimport { ChatPromptValue, StringPromptValue } from \"../prompt_values.js\";\nimport {\n RunLogPatch,\n type LogStreamCallbackHandlerInput,\n type StreamEvent,\n RunLog,\n} from \"../tracers/log_stream.js\";\nimport {\n AIMessage,\n AIMessageChunk,\n ChatMessage,\n ChatMessageChunk,\n FunctionMessage,\n FunctionMessageChunk,\n HumanMessage,\n HumanMessageChunk,\n SystemMessage,\n SystemMessageChunk,\n ToolMessage,\n ToolMessageChunk,\n isBaseMessage,\n} from \"../messages/index.js\";\nimport { GenerationChunk, ChatGenerationChunk, RUN_KEY } from \"../outputs.js\";\nimport { convertEventStreamToIterableReadableDataStream } from \"../utils/event_source_parse.js\";\nimport { IterableReadableStream, concat } from \"../utils/stream.js\";\n\ntype RemoteRunnableOptions = {\n timeout?: number;\n headers?: Record<string, unknown>;\n};\n\nfunction isSuperset(set: Set<string>, subset: Set<string>) {\n for (const elem of subset) {\n if (!set.has(elem)) {\n return false;\n }\n }\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction revive(obj: any): any {\n if (Array.isArray(obj)) return obj.map(revive);\n if (typeof obj === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!obj || obj instanceof Date) {\n return obj;\n }\n const keysArr = Object.keys(obj);\n const keys = new Set(keysArr);\n if (isSuperset(keys, new Set([\"page_content\", \"metadata\"]))) {\n return new Document({\n pageContent: obj.page_content,\n metadata: obj.metadata,\n });\n }\n\n if (isSuperset(keys, new Set([\"content\", \"type\", \"additional_kwargs\"]))) {\n if (obj.type === \"HumanMessage\" || obj.type === \"human\") {\n return new HumanMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessage\" || obj.type === \"system\") {\n return new SystemMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessage\" || obj.type === \"generic\") {\n return new ChatMessage({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessage\" || obj.type === \"function\") {\n return new FunctionMessage({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessage\" || obj.type === \"tool\") {\n return new ToolMessage({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessage\" || obj.type === \"ai\") {\n return new AIMessage({\n content: obj.content,\n });\n }\n if (obj.type === \"HumanMessageChunk\") {\n return new HumanMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"SystemMessageChunk\") {\n return new SystemMessageChunk({\n content: obj.content,\n });\n }\n if (obj.type === \"ChatMessageChunk\") {\n return new ChatMessageChunk({\n content: obj.content,\n role: obj.role,\n });\n }\n if (obj.type === \"FunctionMessageChunk\") {\n return new FunctionMessageChunk({\n content: obj.content,\n name: obj.name,\n });\n }\n if (obj.type === \"ToolMessageChunk\") {\n return new ToolMessageChunk({\n content: obj.content,\n tool_call_id: obj.tool_call_id,\n status: obj.status,\n artifact: obj.artifact,\n });\n }\n if (obj.type === \"AIMessageChunk\") {\n return new AIMessageChunk({\n content: obj.content,\n });\n }\n }\n if (isSuperset(keys, new Set([\"text\", \"generation_info\", \"type\"]))) {\n if (obj.type === \"ChatGenerationChunk\") {\n return new ChatGenerationChunk({\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"ChatGeneration\") {\n return {\n message: revive(obj.message),\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n } else if (obj.type === \"GenerationChunk\") {\n return new GenerationChunk({\n text: obj.text,\n generationInfo: obj.generation_info,\n });\n } else if (obj.type === \"Generation\") {\n return {\n text: obj.text,\n generationInfo: obj.generation_info,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"tool\", \"tool_input\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentAction\") {\n return {\n tool: obj.tool,\n toolInput: obj.tool_input,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"return_values\", \"log\", \"type\"]))) {\n if (obj.type === \"AgentFinish\") {\n return {\n returnValues: obj.return_values,\n log: obj.log,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"generations\", \"run\", \"type\"]))) {\n if (obj.type === \"LLMResult\") {\n return {\n generations: revive(obj.generations),\n llmOutput: obj.llm_output,\n [RUN_KEY]: obj.run,\n };\n }\n }\n\n if (isSuperset(keys, new Set([\"messages\"]))) {\n // TODO: Start checking for type: ChatPromptValue and ChatPromptValueConcrete\n // when LangServe bug is fixed\n return new ChatPromptValue({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n messages: obj.messages.map((msg: any) => revive(msg)),\n });\n }\n\n if (isSuperset(keys, new Set([\"text\"]))) {\n // TODO: Start checking for type: StringPromptValue\n // when LangServe bug is fixed\n return new StringPromptValue(obj.text);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerRevive: (key: string) => [string, any] = (key: string) => [\n key,\n revive(obj[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerRevive));\n return rtn;\n }\n return obj;\n}\nfunction deserialize<RunOutput>(str: string): RunOutput {\n const obj = JSON.parse(str);\n return revive(obj);\n}\n\nfunction removeCallbacksAndSignal(\n options?: RunnableConfig\n): Omit<RunnableConfig, \"callbacks\" | \"signal\"> {\n const rest = { ...options };\n delete rest.callbacks;\n delete rest.signal;\n return rest;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction serialize<RunInput>(input: RunInput): any {\n if (Array.isArray(input)) return input.map(serialize);\n if (isBaseMessage(input)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const serializedMessage: Record<string, any> = {\n content: input.content,\n type: input._getType(),\n additional_kwargs: input.additional_kwargs,\n name: input.name,\n example: false,\n };\n if (ToolMessage.isInstance(input)) {\n serializedMessage.tool_call_id = input.tool_call_id;\n } else if (ChatMessage.isInstance(input)) {\n serializedMessage.role = input.role;\n }\n return serializedMessage;\n }\n if (typeof input === \"object\") {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!input || input instanceof Date) {\n return input;\n }\n const keysArr = Object.keys(input);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const innerSerialize: (key: string) => [string, any] = (key: string) => [\n key,\n serialize((input as Record<string, unknown>)[key]),\n ];\n const rtn = Object.fromEntries(keysArr.map(innerSerialize));\n return rtn;\n }\n return input;\n}\n\n/**\n * Client for interacting with LangChain runnables\n * that are hosted as LangServe endpoints.\n *\n * Allows you to interact with hosted runnables using the standard\n * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that\n * other runnables support.\n *\n * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.\n *\n * @param url - The base URL of the LangServe endpoint.\n * @param options - Optional configuration for the remote runnable, including timeout and headers.\n * @param fetch - Optional custom fetch implementation.\n * @param fetchRequestOptions - Optional additional options for fetch requests.\n */\nexport class RemoteRunnable<\n RunInput,\n RunOutput,\n CallOptions extends RunnableConfig\n> extends Runnable<RunInput, RunOutput, CallOptions> {\n private url: string;\n\n private options?: RemoteRunnableOptions;\n\n // Wrap the default fetch call due to issues with illegal invocations\n // from the browser:\n // https://stackoverflow.com/questions/69876859/why-does-bind-fix-failed-to-execute-fetch-on-window-illegal-invocation-err\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchImplementation: (...args: any[]) => any = (...args: any[]) =>\n // @ts-expect-error Broad typing to support a range of fetch implementations\n fetch(...args);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n\n lc_namespace = [\"langchain\", \"schema\", \"runnable\", \"remote\"];\n\n constructor(fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n }) {\n super(fields);\n const {\n url,\n options,\n fetch: fetchImplementation,\n fetchRequestOptions,\n } = fields;\n\n this.url = url.replace(/\\/$/, \"\"); // remove trailing slash\n this.options = options;\n this.fetchImplementation = fetchImplementation ?? this.fetchImplementation;\n this.fetchRequestOptions = fetchRequestOptions;\n }\n\n private async post<Body>(path: string, body: Body, signal?: AbortSignal) {\n return this.fetchImplementation(`${this.url}${path}`, {\n method: \"POST\",\n body: JSON.stringify(serialize(body)),\n signal: signal ?? AbortSignal.timeout(this.options?.timeout ?? 60000),\n ...this.fetchRequestOptions,\n headers: {\n \"Content-Type\": \"application/json\",\n ...this.fetchRequestOptions?.headers,\n ...this.options?.headers,\n },\n });\n }\n\n async _invoke(\n input: RunInput,\n options?: Partial<CallOptions>,\n _?: CallbackManagerForChainRun\n ) {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/invoke\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs: kwargs ?? {},\n },\n config.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n return revive((await response.json()).output) as RunOutput;\n }\n\n async invoke(\n input: RunInput,\n options?: Partial<CallOptions>\n ): Promise<RunOutput> {\n return this._callWithConfig(this._invoke, input, options);\n }\n\n async _batch(\n inputs: RunInput[],\n options?: Partial<CallOptions>[],\n _?: (CallbackManagerForChainRun | undefined)[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw new Error(\"returnExceptions is not supported for remote clients\");\n }\n const configsAndKwargsArray = options?.map((opts) =>\n this._separateRunnableConfigFromCallOptions(opts)\n );\n const [configs, kwargs] = configsAndKwargsArray?.reduce(\n ([pc, pk], [c, k]) =>\n [\n [...pc, c],\n [...pk, k],\n ] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ],\n [[], []] as [\n RunnableConfig[],\n Omit<Partial<CallOptions>, keyof RunnableConfig>[]\n ]\n ) ?? [undefined, undefined];\n const response = await this.post<{\n inputs: RunInput[];\n config?: (RunnableConfig & RunnableBatchOptions)[];\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>[];\n }>(\n \"/batch\",\n {\n inputs,\n config: (configs ?? [])\n .map(removeCallbacksAndSignal)\n .map((config) => ({ ...config, ...batchOptions })),\n kwargs,\n },\n options?.[0]?.signal\n );\n if (!response.ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n const body = await response.json();\n\n if (!body.output) throw new Error(\"Invalid response from remote runnable\");\n\n return revive(body.output);\n }\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions?: false }\n ): Promise<RunOutput[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions & { returnExceptions: true }\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]>;\n\n async batch(\n inputs: RunInput[],\n options?: Partial<CallOptions> | Partial<CallOptions>[],\n batchOptions?: RunnableBatchOptions\n ): Promise<(RunOutput | Error)[]> {\n if (batchOptions?.returnExceptions) {\n throw Error(\"returnExceptions is not supported for remote clients\");\n }\n return this._batchWithConfig(\n this._batch.bind(this),\n inputs,\n options,\n batchOptions\n );\n }\n\n async *_streamIterator(\n input: RunInput,\n options?: Partial<CallOptions>\n ): AsyncGenerator<RunOutput> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n let finalOutput: RunOutput | undefined;\n let finalOutputSupported = true;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n }>(\n \"/stream\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n },\n config.signal\n );\n if (!response.ok) {\n const json = await response.json();\n const error = new Error(\n `RemoteRunnable call failed with status code ${response.status}: ${json.message}`\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (error as any).response = response;\n throw error;\n }\n const { body } = response;\n if (!body) {\n throw new Error(\n \"Could not begin remote stream. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const chunk of runnableStream) {\n const deserializedChunk = deserialize(chunk) as RunOutput;\n yield deserializedChunk;\n if (finalOutputSupported) {\n if (finalOutput === undefined) {\n finalOutput = deserializedChunk;\n } else {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n finalOutput = concat(finalOutput, deserializedChunk as any);\n } catch {\n finalOutput = undefined;\n finalOutputSupported = false;\n }\n }\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(finalOutput ?? {});\n }\n\n async *streamLog(\n input: RunInput,\n options?: Partial<CallOptions>,\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): AsyncGenerator<RunLogPatch> {\n const [config, kwargs] =\n this._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n this.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n let runLog;\n try {\n const response = await this.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_log\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream log. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const logPatch = new RunLogPatch({ ops: chunk.ops });\n yield logPatch;\n if (runLog === undefined) {\n runLog = RunLog.fromRunLogPatch(logPatch);\n } else {\n runLog = runLog.concat(logPatch);\n }\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(runLog?.state.final_output);\n }\n\n _streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined\n ): AsyncGenerator<StreamEvent> {\n const outerThis = this;\n const generator = async function* () {\n const [config, kwargs] =\n outerThis._separateRunnableConfigFromCallOptions(options);\n const callbackManager_ = await getCallbackManagerForConfig(options);\n const runManager = await callbackManager_?.handleChainStart(\n outerThis.toJSON(),\n _coerceToDict(input, \"input\"),\n config.runId,\n undefined,\n undefined,\n undefined,\n config.runName\n );\n delete config.runId;\n // The type is in camelCase but the API only accepts snake_case.\n const camelCaseStreamOptions = {\n include_names: streamOptions?.includeNames,\n include_types: streamOptions?.includeTypes,\n include_tags: streamOptions?.includeTags,\n exclude_names: streamOptions?.excludeNames,\n exclude_types: streamOptions?.excludeTypes,\n exclude_tags: streamOptions?.excludeTags,\n };\n const events = [];\n try {\n const response = await outerThis.post<{\n input: RunInput;\n config?: RunnableConfig;\n kwargs?: Omit<Partial<CallOptions>, keyof RunnableConfig>;\n diff: false;\n }>(\n \"/stream_events\",\n {\n input,\n config: removeCallbacksAndSignal(config),\n kwargs,\n ...camelCaseStreamOptions,\n diff: false,\n },\n config.signal\n );\n const { body, ok } = response;\n if (!ok) {\n throw new Error(`${response.status} Error: ${await response.text()}`);\n }\n if (!body) {\n throw new Error(\n \"Could not begin remote stream events. Please check the given URL and try again.\"\n );\n }\n const runnableStream =\n convertEventStreamToIterableReadableDataStream(body);\n for await (const log of runnableStream) {\n const chunk = revive(JSON.parse(log));\n const event = {\n event: chunk.event,\n name: chunk.name,\n run_id: chunk.run_id,\n tags: chunk.tags,\n metadata: chunk.metadata,\n data: chunk.data,\n };\n yield event;\n events.push(event);\n }\n } catch (err) {\n await runManager?.handleChainError(err);\n throw err;\n }\n await runManager?.handleChainEnd(events);\n };\n return generator();\n }\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & { version: \"v1\" | \"v2\" },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding: \"text/event-stream\";\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<Uint8Array>;\n\n streamEvents(\n input: RunInput,\n options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding?: \"text/event-stream\" | undefined;\n },\n streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">\n ): IterableReadableStream<StreamEvent | Uint8Array> {\n if (options.version !== \"v1\" && options.version !== \"v2\") {\n throw new Error(\n `Only versions \"v1\" and \"v2\" of the events schema is currently supported.`\n );\n }\n if (options.encoding !== undefined) {\n throw new Error(\"Special encodings are not supported for this runnable.\");\n }\n const eventStream = this._streamEvents(input, options, streamOptions);\n return IterableReadableStream.fromAsyncGenerator(eventStream);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAS,WAAWA,KAAkBC,QAAqB;AACzD,MAAK,MAAM,QAAQ,OACjB,KAAI,CAAC,IAAI,IAAI,KAAK,CAChB,QAAO;AAGX,QAAO;AACR;AAGD,SAAS,OAAOC,KAAe;AAC7B,KAAI,MAAM,QAAQ,IAAI,CAAE,QAAO,IAAI,IAAI,OAAO;AAC9C,KAAI,OAAO,QAAQ,UAAU;AAE3B,MAAI,CAAC,OAAO,eAAe,KACzB,QAAO;EAET,MAAM,UAAU,OAAO,KAAK,IAAI;EAChC,MAAM,OAAO,IAAI,IAAI;AACrB,MAAI,WAAW,MAAM,IAAI,IAAI,CAAC,gBAAgB,UAAW,GAAE,CACzD,QAAO,IAAIC,0BAAS;GAClB,aAAa,IAAI;GACjB,UAAU,IAAI;EACf;AAGH,MAAI,WAAW,MAAM,IAAI,IAAI;GAAC;GAAW;GAAQ;EAAoB,GAAE,EAAE;AACvE,OAAI,IAAI,SAAS,kBAAkB,IAAI,SAAS,QAC9C,QAAO,IAAIC,2BAAa,EACtB,SAAS,IAAI,QACd;AAEH,OAAI,IAAI,SAAS,mBAAmB,IAAI,SAAS,SAC/C,QAAO,IAAIC,6BAAc,EACvB,SAAS,IAAI,QACd;AAEH,OAAI,IAAI,SAAS,iBAAiB,IAAI,SAAS,UAC7C,QAAO,IAAIC,yBAAY;IACrB,SAAS,IAAI;IACb,MAAM,IAAI;GACX;AAEH,OAAI,IAAI,SAAS,qBAAqB,IAAI,SAAS,WACjD,QAAO,IAAIC,iCAAgB;IACzB,SAAS,IAAI;IACb,MAAM,IAAI;GACX;AAEH,OAAI,IAAI,SAAS,iBAAiB,IAAI,SAAS,OAC7C,QAAO,IAAIC,kCAAY;IACrB,SAAS,IAAI;IACb,cAAc,IAAI;IAClB,QAAQ,IAAI;IACZ,UAAU,IAAI;GACf;AAEH,OAAI,IAAI,SAAS,eAAe,IAAI,SAAS,KAC3C,QAAO,IAAIC,qBAAU,EACnB,SAAS,IAAI,QACd;AAEH,OAAI,IAAI,SAAS,oBACf,QAAO,IAAIC,gCAAkB,EAC3B,SAAS,IAAI,QACd;AAEH,OAAI,IAAI,SAAS,qBACf,QAAO,IAAIC,kCAAmB,EAC5B,SAAS,IAAI,QACd;AAEH,OAAI,IAAI,SAAS,mBACf,QAAO,IAAIC,8BAAiB;IAC1B,SAAS,IAAI;IACb,MAAM,IAAI;GACX;AAEH,OAAI,IAAI,SAAS,uBACf,QAAO,IAAIC,sCAAqB;IAC9B,SAAS,IAAI;IACb,MAAM,IAAI;GACX;AAEH,OAAI,IAAI,SAAS,mBACf,QAAO,IAAIC,uCAAiB;IAC1B,SAAS,IAAI;IACb,cAAc,IAAI;IAClB,QAAQ,IAAI;IACZ,UAAU,IAAI;GACf;AAEH,OAAI,IAAI,SAAS,iBACf,QAAO,IAAIC,0BAAe,EACxB,SAAS,IAAI,QACd;EAEJ;AACD,MAAI,WAAW,MAAM,IAAI,IAAI;GAAC;GAAQ;GAAmB;EAAO,GAAE,EAChE;OAAI,IAAI,SAAS,sBACf,QAAO,IAAIC,oCAAoB;IAC7B,SAAS,OAAO,IAAI,QAAQ;IAC5B,MAAM,IAAI;IACV,gBAAgB,IAAI;GACrB;YACQ,IAAI,SAAS,iBACtB,QAAO;IACL,SAAS,OAAO,IAAI,QAAQ;IAC5B,MAAM,IAAI;IACV,gBAAgB,IAAI;GACrB;YACQ,IAAI,SAAS,kBACtB,QAAO,IAAIC,gCAAgB;IACzB,MAAM,IAAI;IACV,gBAAgB,IAAI;GACrB;YACQ,IAAI,SAAS,aACtB,QAAO;IACL,MAAM,IAAI;IACV,gBAAgB,IAAI;GACrB;EACF;AAGH,MAAI,WAAW,MAAM,IAAI,IAAI;GAAC;GAAQ;GAAc;GAAO;EAAO,GAAE,EAClE;OAAI,IAAI,SAAS,cACf,QAAO;IACL,MAAM,IAAI;IACV,WAAW,IAAI;IACf,KAAK,IAAI;GACV;EACF;AAGH,MAAI,WAAW,MAAM,IAAI,IAAI;GAAC;GAAiB;GAAO;EAAO,GAAE,EAC7D;OAAI,IAAI,SAAS,cACf,QAAO;IACL,cAAc,IAAI;IAClB,KAAK,IAAI;GACV;EACF;AAGH,MAAI,WAAW,MAAM,IAAI,IAAI;GAAC;GAAe;GAAO;EAAO,GAAE,EAC3D;OAAI,IAAI,SAAS,YACf,QAAO;IACL,aAAa,OAAO,IAAI,YAAY;IACpC,WAAW,IAAI;KACdC,0BAAU,IAAI;GAChB;EACF;AAGH,MAAI,WAAW,MAAM,IAAI,IAAI,CAAC,UAAW,GAAE,CAGzC,QAAO,IAAIC,sCAAgB,EAEzB,UAAU,IAAI,SAAS,IAAI,CAACC,QAAa,OAAO,IAAI,CAAC,CACtD;AAGH,MAAI,WAAW,MAAM,IAAI,IAAI,CAAC,MAAO,GAAE,CAGrC,QAAO,IAAIC,wCAAkB,IAAI;EAInC,MAAMC,cAA8C,CAACC,QAAgB,CACnE,KACA,OAAO,IAAI,KAAK,AACjB;EACD,MAAM,MAAM,OAAO,YAAY,QAAQ,IAAI,YAAY,CAAC;AACxD,SAAO;CACR;AACD,QAAO;AACR;AACD,SAAS,YAAuBC,KAAwB;CACtD,MAAM,MAAM,KAAK,MAAM,IAAI;AAC3B,QAAO,OAAO,IAAI;AACnB;AAED,SAAS,yBACPC,SAC8C;CAC9C,MAAM,OAAO,EAAE,GAAG,QAAS;CAC3B,OAAO,KAAK;CACZ,OAAO,KAAK;AACZ,QAAO;AACR;AAGD,SAAS,UAAoBC,OAAsB;AACjD,KAAI,MAAM,QAAQ,MAAM,CAAE,QAAO,MAAM,IAAI,UAAU;AACrD,KAAIC,2BAAc,MAAM,EAAE;EAExB,MAAMC,oBAAyC;GAC7C,SAAS,MAAM;GACf,MAAM,MAAM,UAAU;GACtB,mBAAmB,MAAM;GACzB,MAAM,MAAM;GACZ,SAAS;EACV;AACD,MAAIpB,kCAAY,WAAW,MAAM,EAC/B,kBAAkB,eAAe,MAAM;WAC9BF,yBAAY,WAAW,MAAM,EACtC,kBAAkB,OAAO,MAAM;AAEjC,SAAO;CACR;AACD,KAAI,OAAO,UAAU,UAAU;AAE7B,MAAI,CAAC,SAAS,iBAAiB,KAC7B,QAAO;EAET,MAAM,UAAU,OAAO,KAAK,MAAM;EAElC,MAAMuB,iBAAiD,CAACN,QAAgB,CACtE,KACA,UAAW,MAAkC,KAAK,AACnD;EACD,MAAM,MAAM,OAAO,YAAY,QAAQ,IAAI,eAAe,CAAC;AAC3D,SAAO;CACR;AACD,QAAO;AACR;;;;;;;;;;;;;;;;AAiBD,IAAa,iBAAb,cAIUO,wBAA2C;CACnD,AAAQ;CAER,AAAQ;CAMR,sBAA+C,CAAC,GAAG,SAEjD,MAAM,GAAG,KAAK;CAGhB;CAEA,eAAe;EAAC;EAAa;EAAU;EAAY;CAAS;CAE5D,YAAYC,QAOT;EACD,MAAM,OAAO;EACb,MAAM,EACJ,KACA,SACA,OAAO,qBACP,qBACD,GAAG;EAEJ,KAAK,MAAM,IAAI,QAAQ,OAAO,GAAG;EACjC,KAAK,UAAU;EACf,KAAK,sBAAsB,uBAAuB,KAAK;EACvD,KAAK,sBAAsB;CAC5B;CAED,MAAc,KAAWC,MAAcC,MAAYC,QAAsB;AACvE,SAAO,KAAK,oBAAoB,GAAG,KAAK,MAAM,MAAM,EAAE;GACpD,QAAQ;GACR,MAAM,KAAK,UAAU,UAAU,KAAK,CAAC;GACrC,QAAQ,UAAU,YAAY,QAAQ,KAAK,SAAS,WAAW,IAAM;GACrE,GAAG,KAAK;GACR,SAAS;IACP,gBAAgB;IAChB,GAAG,KAAK,qBAAqB;IAC7B,GAAG,KAAK,SAAS;GAClB;EACF,EAAC;CACH;CAED,MAAM,QACJR,OACAS,SACAC,GACA;EACA,MAAM,CAAC,QAAQ,OAAO,GACpB,KAAK,uCAAuC,QAAQ;EACtD,MAAM,WAAW,MAAM,KAAK,KAK1B,WACA;GACE;GACA,QAAQ,yBAAyB,OAAO;GACxC,QAAQ,UAAU,CAAE;EACrB,GACD,OAAO,OACR;AACD,MAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,GAAG,SAAS,OAAO,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE;AAEtE,SAAO,QAAQ,MAAM,SAAS,MAAM,EAAE,OAAO;CAC9C;CAED,MAAM,OACJV,OACAS,SACoB;AACpB,SAAO,KAAK,gBAAgB,KAAK,SAAS,OAAO,QAAQ;CAC1D;CAED,MAAM,OACJE,QACAC,SACAC,GACAC,cACgC;AAChC,MAAI,cAAc,iBAChB,OAAM,IAAI,MAAM;EAElB,MAAM,wBAAwB,SAAS,IAAI,CAAC,SAC1C,KAAK,uCAAuC,KAAK,CAClD;EACD,MAAM,CAAC,SAAS,OAAO,GAAG,uBAAuB,OAC/C,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,KACf,CACE,CAAC,GAAG,IAAI,CAAE,GACV,CAAC,GAAG,IAAI,CAAE,CACX,GAIH,CAAC,CAAE,GAAE,CAAE,CAAC,EAIT,IAAI,CAAC,QAAW,MAAU;EAC3B,MAAM,WAAW,MAAM,KAAK,KAK1B,UACA;GACE;GACA,SAAS,WAAW,CAAE,GACnB,IAAI,yBAAyB,CAC7B,IAAI,CAAC,YAAY;IAAE,GAAG;IAAQ,GAAG;GAAc,GAAE;GACpD;EACD,GACD,UAAU,IAAI,OACf;AACD,MAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,GAAG,SAAS,OAAO,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE;EAEtE,MAAM,OAAO,MAAM,SAAS,MAAM;AAElC,MAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM;AAElC,SAAO,OAAO,KAAK,OAAO;CAC3B;CAoBD,MAAM,MACJH,QACAI,SACAD,cACgC;AAChC,MAAI,cAAc,iBAChB,OAAM,MAAM,uDAAuD;AAErE,SAAO,KAAK,iBACV,KAAK,OAAO,KAAK,KAAK,EACtB,QACA,SACA,aACD;CACF;CAED,OAAO,gBACLd,OACAS,SAC2B;EAC3B,MAAM,CAAC,QAAQ,OAAO,GACpB,KAAK,uCAAuC,QAAQ;EACtD,MAAM,mBAAmB,MAAMO,2CAA4B,QAAQ;EACnE,MAAM,aAAa,MAAM,kBAAkB,iBACzC,KAAK,QAAQ,EACbC,6BAAc,OAAO,QAAQ,EAC7B,OAAO,OACP,QACA,QACA,QACA,OAAO,QACR;EACD,OAAO,OAAO;EACd,IAAIC;EACJ,IAAI,uBAAuB;AAC3B,MAAI;GACF,MAAM,WAAW,MAAM,KAAK,KAK1B,WACA;IACE;IACA,QAAQ,yBAAyB,OAAO;IACxC;GACD,GACD,OAAO,OACR;AACD,OAAI,CAAC,SAAS,IAAI;IAChB,MAAM,OAAO,MAAM,SAAS,MAAM;IAClC,MAAM,wBAAQ,IAAI,MAChB,CAAC,4CAA4C,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,SAAS;IAGlF,MAAc,WAAW;AAC1B,UAAM;GACP;GACD,MAAM,EAAE,MAAM,GAAG;AACjB,OAAI,CAAC,KACH,OAAM,IAAI,MACR;GAGJ,MAAM,iBACJC,gFAA+C,KAAK;AACtD,cAAW,MAAM,SAAS,gBAAgB;IACxC,MAAM,oBAAoB,YAAY,MAAM;IAC5C,MAAM;AACN,QAAI,qBACF,KAAI,gBAAgB,QAClB,cAAc;QAEd,KAAI;KAEF,cAAcC,4BAAO,aAAa,kBAAyB;IAC5D,QAAO;KACN,cAAc;KACd,uBAAuB;IACxB;GAGN;EACF,SAAQ,KAAK;GACZ,MAAM,YAAY,iBAAiB,IAAI;AACvC,SAAM;EACP;EACD,MAAM,YAAY,eAAe,eAAe,CAAE,EAAC;CACpD;CAED,OAAO,UACLpB,OACAS,SACAY,eAC6B;EAC7B,MAAM,CAAC,QAAQ,OAAO,GACpB,KAAK,uCAAuC,QAAQ;EACtD,MAAM,mBAAmB,MAAML,2CAA4B,QAAQ;EACnE,MAAM,aAAa,MAAM,kBAAkB,iBACzC,KAAK,QAAQ,EACbC,6BAAc,OAAO,QAAQ,EAC7B,OAAO,OACP,QACA,QACA,QACA,OAAO,QACR;EACD,OAAO,OAAO;EAEd,MAAM,yBAAyB;GAC7B,eAAe,eAAe;GAC9B,eAAe,eAAe;GAC9B,cAAc,eAAe;GAC7B,eAAe,eAAe;GAC9B,eAAe,eAAe;GAC9B,cAAc,eAAe;EAC9B;EACD,IAAI;AACJ,MAAI;GACF,MAAM,WAAW,MAAM,KAAK,KAM1B,eACA;IACE;IACA,QAAQ,yBAAyB,OAAO;IACxC;IACA,GAAG;IACH,MAAM;GACP,GACD,OAAO,OACR;GACD,MAAM,EAAE,MAAM,IAAI,GAAG;AACrB,OAAI,CAAC,GACH,OAAM,IAAI,MAAM,GAAG,SAAS,OAAO,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE;AAEtE,OAAI,CAAC,KACH,OAAM,IAAI,MACR;GAGJ,MAAM,iBACJE,gFAA+C,KAAK;AACtD,cAAW,MAAM,OAAO,gBAAgB;IACtC,MAAM,QAAQ,OAAO,KAAK,MAAM,IAAI,CAAC;IACrC,MAAM,WAAW,IAAIG,uCAAY,EAAE,KAAK,MAAM,IAAK;IACnD,MAAM;AACN,QAAI,WAAW,QACb,SAASC,kCAAO,gBAAgB,SAAS;SAEzC,SAAS,OAAO,OAAO,SAAS;GAEnC;EACF,SAAQ,KAAK;GACZ,MAAM,YAAY,iBAAiB,IAAI;AACvC,SAAM;EACP;EACD,MAAM,YAAY,eAAe,QAAQ,MAAM,aAAa;CAC7D;CAED,cACEvB,OACAwB,SACAC,eAC6B;EAC7B,MAAM,YAAY;EAClB,MAAM,YAAY,mBAAmB;GACnC,MAAM,CAAC,QAAQ,OAAO,GACpB,UAAU,uCAAuC,QAAQ;GAC3D,MAAM,mBAAmB,MAAMT,2CAA4B,QAAQ;GACnE,MAAM,aAAa,MAAM,kBAAkB,iBACzC,UAAU,QAAQ,EAClBC,6BAAc,OAAO,QAAQ,EAC7B,OAAO,OACP,QACA,QACA,QACA,OAAO,QACR;GACD,OAAO,OAAO;GAEd,MAAM,yBAAyB;IAC7B,eAAe,eAAe;IAC9B,eAAe,eAAe;IAC9B,cAAc,eAAe;IAC7B,eAAe,eAAe;IAC9B,eAAe,eAAe;IAC9B,cAAc,eAAe;GAC9B;GACD,MAAM,SAAS,CAAE;AACjB,OAAI;IACF,MAAM,WAAW,MAAM,UAAU,KAM/B,kBACA;KACE;KACA,QAAQ,yBAAyB,OAAO;KACxC;KACA,GAAG;KACH,MAAM;IACP,GACD,OAAO,OACR;IACD,MAAM,EAAE,MAAM,IAAI,GAAG;AACrB,QAAI,CAAC,GACH,OAAM,IAAI,MAAM,GAAG,SAAS,OAAO,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE;AAEtE,QAAI,CAAC,KACH,OAAM,IAAI,MACR;IAGJ,MAAM,iBACJE,gFAA+C,KAAK;AACtD,eAAW,MAAM,OAAO,gBAAgB;KACtC,MAAM,QAAQ,OAAO,KAAK,MAAM,IAAI,CAAC;KACrC,MAAM,QAAQ;MACZ,OAAO,MAAM;MACb,MAAM,MAAM;MACZ,QAAQ,MAAM;MACd,MAAM,MAAM;MACZ,UAAU,MAAM;MAChB,MAAM,MAAM;KACb;KACD,MAAM;KACN,OAAO,KAAK,MAAM;IACnB;GACF,SAAQ,KAAK;IACZ,MAAM,YAAY,iBAAiB,IAAI;AACvC,UAAM;GACP;GACD,MAAM,YAAY,eAAe,OAAO;EACzC;AACD,SAAO,WAAW;CACnB;CAiBD,aACEnB,OACA0B,SAIAL,eACkD;AAClD,MAAI,QAAQ,YAAY,QAAQ,QAAQ,YAAY,KAClD,OAAM,IAAI,MACR,CAAC,wEAAwE,CAAC;AAG9E,MAAI,QAAQ,aAAa,OACvB,OAAM,IAAI,MAAM;EAElB,MAAM,cAAc,KAAK,cAAc,OAAO,SAAS,cAAc;AACrE,SAAOM,4CAAuB,mBAAmB,YAAY;CAC9D;AACF"}
@@ -1,73 +0,0 @@
1
- import { CallbackManagerForChainRun } from "../callbacks/manager.cjs";
2
- import { RunnableBatchOptions, RunnableConfig } from "./types.cjs";
3
- import { IterableReadableStream } from "../utils/stream.cjs";
4
- import { StreamEvent } from "../tracers/event_stream.cjs";
5
- import { LogStreamCallbackHandlerInput, RunLogPatch } from "../tracers/log_stream.cjs";
6
- import { Runnable } from "./base.cjs";
7
-
8
- //#region src/runnables/remote.d.ts
9
- type RemoteRunnableOptions = {
10
- timeout?: number;
11
- headers?: Record<string, unknown>;
12
- };
13
- /**
14
- * Client for interacting with LangChain runnables
15
- * that are hosted as LangServe endpoints.
16
- *
17
- * Allows you to interact with hosted runnables using the standard
18
- * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that
19
- * other runnables support.
20
- *
21
- * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.
22
- *
23
- * @param url - The base URL of the LangServe endpoint.
24
- * @param options - Optional configuration for the remote runnable, including timeout and headers.
25
- * @param fetch - Optional custom fetch implementation.
26
- * @param fetchRequestOptions - Optional additional options for fetch requests.
27
- */
28
- declare class RemoteRunnable<RunInput, RunOutput, CallOptions extends RunnableConfig> extends Runnable<RunInput, RunOutput, CallOptions> {
29
- private url;
30
- private options?;
31
- // Wrap the default fetch call due to issues with illegal invocations
32
- // from the browser:
33
- // https://stackoverflow.com/questions/69876859/why-does-bind-fix-failed-to-execute-fetch-on-window-illegal-invocation-err
34
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
- fetchImplementation: (...args: any[]) => any;
36
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
- fetchRequestOptions?: Record<string, any>;
38
- lc_namespace: string[];
39
- constructor(fields: {
40
- url: string;
41
- options?: RemoteRunnableOptions;
42
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
- fetch?: (...args: any[]) => any;
44
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
- fetchRequestOptions?: Record<string, any>;
46
- });
47
- private post;
48
- _invoke(input: RunInput, options?: Partial<CallOptions>, _?: CallbackManagerForChainRun): Promise<RunOutput>;
49
- invoke(input: RunInput, options?: Partial<CallOptions>): Promise<RunOutput>;
50
- _batch(inputs: RunInput[], options?: Partial<CallOptions>[], _?: (CallbackManagerForChainRun | undefined)[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;
51
- batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {
52
- returnExceptions?: false;
53
- }): Promise<RunOutput[]>;
54
- batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {
55
- returnExceptions: true;
56
- }): Promise<(RunOutput | Error)[]>;
57
- batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;
58
- _streamIterator(input: RunInput, options?: Partial<CallOptions>): AsyncGenerator<RunOutput>;
59
- streamLog(input: RunInput, options?: Partial<CallOptions>, streamOptions?: Omit<LogStreamCallbackHandlerInput, "autoClose">): AsyncGenerator<RunLogPatch>;
60
- _streamEvents(input: RunInput, options: Partial<CallOptions> & {
61
- version: "v1" | "v2";
62
- }, streamOptions?: Omit<LogStreamCallbackHandlerInput, "autoClose"> | undefined): AsyncGenerator<StreamEvent>;
63
- streamEvents(input: RunInput, options: Partial<CallOptions> & {
64
- version: "v1" | "v2";
65
- }, streamOptions?: Omit<LogStreamCallbackHandlerInput, "autoClose">): IterableReadableStream<StreamEvent>;
66
- streamEvents(input: RunInput, options: Partial<CallOptions> & {
67
- version: "v1" | "v2";
68
- encoding: "text/event-stream";
69
- }, streamOptions?: Omit<LogStreamCallbackHandlerInput, "autoClose">): IterableReadableStream<Uint8Array>;
70
- }
71
- //#endregion
72
- export { RemoteRunnable };
73
- //# sourceMappingURL=remote.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote.d.cts","names":["Runnable","RunnableBatchOptions","RunnableConfig","CallbackManagerForChainRun","RunLogPatch","LogStreamCallbackHandlerInput","StreamEvent","IterableReadableStream","RemoteRunnableOptions","Record","RemoteRunnable","RunInput","RunOutput","CallOptions","Partial","Promise","Error","AsyncGenerator","Omit","Uint8Array"],"sources":["../../src/runnables/remote.d.ts"],"sourcesContent":["import { Runnable, RunnableBatchOptions } from \"./base.js\";\nimport { type RunnableConfig } from \"./config.js\";\nimport { CallbackManagerForChainRun } from \"../callbacks/manager.js\";\nimport { RunLogPatch, type LogStreamCallbackHandlerInput, type StreamEvent } from \"../tracers/log_stream.js\";\nimport { IterableReadableStream } from \"../utils/stream.js\";\ntype RemoteRunnableOptions = {\n timeout?: number;\n headers?: Record<string, unknown>;\n};\n/**\n * Client for interacting with LangChain runnables\n * that are hosted as LangServe endpoints.\n *\n * Allows you to interact with hosted runnables using the standard\n * `.invoke()`, `.stream()`, `.streamEvents()`, etc. methods that\n * other runnables support.\n *\n * @deprecated LangServe is no longer actively developed - please consider using LangGraph Platform.\n *\n * @param url - The base URL of the LangServe endpoint.\n * @param options - Optional configuration for the remote runnable, including timeout and headers.\n * @param fetch - Optional custom fetch implementation.\n * @param fetchRequestOptions - Optional additional options for fetch requests.\n */\nexport declare class RemoteRunnable<RunInput, RunOutput, CallOptions extends RunnableConfig> extends Runnable<RunInput, RunOutput, CallOptions> {\n private url;\n private options?;\n // Wrap the default fetch call due to issues with illegal invocations\n // from the browser:\n // https://stackoverflow.com/questions/69876859/why-does-bind-fix-failed-to-execute-fetch-on-window-illegal-invocation-err\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchImplementation: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n lc_namespace: string[];\n constructor(fields: {\n url: string;\n options?: RemoteRunnableOptions;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetch?: (...args: any[]) => any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fetchRequestOptions?: Record<string, any>;\n });\n private post;\n _invoke(input: RunInput, options?: Partial<CallOptions>, _?: CallbackManagerForChainRun): Promise<RunOutput>;\n invoke(input: RunInput, options?: Partial<CallOptions>): Promise<RunOutput>;\n _batch(inputs: RunInput[], options?: Partial<CallOptions>[], _?: (CallbackManagerForChainRun | undefined)[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions?: false;\n }): Promise<RunOutput[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions & {\n returnExceptions: true;\n }): Promise<(RunOutput | Error)[]>;\n batch(inputs: RunInput[], options?: Partial<CallOptions> | Partial<CallOptions>[], batchOptions?: RunnableBatchOptions): Promise<(RunOutput | Error)[]>;\n _streamIterator(input: RunInput, options?: Partial<CallOptions>): AsyncGenerator<RunOutput>;\n streamLog(input: RunInput, options?: Partial<CallOptions>, streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">): AsyncGenerator<RunLogPatch>;\n _streamEvents(input: RunInput, options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n }, streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\"> | undefined): AsyncGenerator<StreamEvent>;\n streamEvents(input: RunInput, options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n }, streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">): IterableReadableStream<StreamEvent>;\n streamEvents(input: RunInput, options: Partial<CallOptions> & {\n version: \"v1\" | \"v2\";\n encoding: \"text/event-stream\";\n }, streamOptions?: Omit<LogStreamCallbackHandlerInput, \"autoClose\">): IterableReadableStream<Uint8Array>;\n}\nexport {};\n"],"mappings":"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"}