langgraph-ui-components 0.0.7 → 0.0.8

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 (283) hide show
  1. package/dist/index.es100.js +25 -157
  2. package/dist/index.es100.js.map +1 -1
  3. package/dist/index.es101.js +3130 -176
  4. package/dist/index.es101.js.map +1 -1
  5. package/dist/index.es102.js +36 -13
  6. package/dist/index.es102.js.map +1 -1
  7. package/dist/index.es103.js +5 -30
  8. package/dist/index.es103.js.map +1 -1
  9. package/dist/index.es104.js +69 -30
  10. package/dist/index.es104.js.map +1 -1
  11. package/dist/index.es105.js +28 -3148
  12. package/dist/index.es105.js.map +1 -1
  13. package/dist/index.es106.js +5 -16
  14. package/dist/index.es106.js.map +1 -1
  15. package/dist/index.es107.js +2 -7
  16. package/dist/index.es107.js.map +1 -1
  17. package/dist/index.es108.js +13 -2
  18. package/dist/index.es108.js.map +1 -1
  19. package/dist/index.es109.js +499 -9
  20. package/dist/index.es109.js.map +1 -1
  21. package/dist/index.es11.js +2 -2
  22. package/dist/index.es11.js.map +1 -1
  23. package/dist/index.es110.js +5 -501
  24. package/dist/index.es110.js.map +1 -1
  25. package/dist/index.es111.js +2 -7
  26. package/dist/index.es111.js.map +1 -1
  27. package/dist/index.es112.js +148 -2
  28. package/dist/index.es112.js.map +1 -1
  29. package/dist/index.es113.js +878 -118
  30. package/dist/index.es113.js.map +1 -1
  31. package/dist/index.es114.js +251 -877
  32. package/dist/index.es114.js.map +1 -1
  33. package/dist/index.es115.js +3 -281
  34. package/dist/index.es115.js.map +1 -1
  35. package/dist/index.es116.js +445 -3
  36. package/dist/index.es116.js.map +1 -1
  37. package/dist/index.es117.js +39 -437
  38. package/dist/index.es117.js.map +1 -1
  39. package/dist/index.es118.js +22 -46
  40. package/dist/index.es118.js.map +1 -1
  41. package/dist/index.es119.js +78 -21
  42. package/dist/index.es119.js.map +1 -1
  43. package/dist/index.es120.js +126 -76
  44. package/dist/index.es120.js.map +1 -1
  45. package/dist/index.es121.js +45 -125
  46. package/dist/index.es121.js.map +1 -1
  47. package/dist/index.es122.js +9 -48
  48. package/dist/index.es122.js.map +1 -1
  49. package/dist/index.es123.js +45 -10
  50. package/dist/index.es123.js.map +1 -1
  51. package/dist/index.es124.js +97 -43
  52. package/dist/index.es124.js.map +1 -1
  53. package/dist/index.es125.js +48 -94
  54. package/dist/index.es125.js.map +1 -1
  55. package/dist/index.es126.js +14 -51
  56. package/dist/index.es126.js.map +1 -1
  57. package/dist/index.es127.js +13 -162
  58. package/dist/index.es127.js.map +1 -1
  59. package/dist/index.es128.js +89 -2
  60. package/dist/index.es128.js.map +1 -1
  61. package/dist/index.es129.js +2 -15
  62. package/dist/index.es129.js.map +1 -1
  63. package/dist/index.es130.js +54 -87
  64. package/dist/index.es130.js.map +1 -1
  65. package/dist/index.es131.js +100 -2
  66. package/dist/index.es131.js.map +1 -1
  67. package/dist/index.es132.js +186 -51
  68. package/dist/index.es132.js.map +1 -1
  69. package/dist/index.es133.js +97 -87
  70. package/dist/index.es133.js.map +1 -1
  71. package/dist/index.es134.js +31 -187
  72. package/dist/index.es134.js.map +1 -1
  73. package/dist/index.es135.js +10 -110
  74. package/dist/index.es135.js.map +1 -1
  75. package/dist/index.es136.js +11 -35
  76. package/dist/index.es136.js.map +1 -1
  77. package/dist/index.es137.js +12 -10
  78. package/dist/index.es137.js.map +1 -1
  79. package/dist/index.es138.js +90 -10
  80. package/dist/index.es138.js.map +1 -1
  81. package/dist/index.es139.js +274 -11
  82. package/dist/index.es139.js.map +1 -1
  83. package/dist/index.es140.js +2 -91
  84. package/dist/index.es140.js.map +1 -1
  85. package/dist/index.es141.js +150 -261
  86. package/dist/index.es141.js.map +1 -1
  87. package/dist/index.es142.js +51 -2
  88. package/dist/index.es142.js.map +1 -1
  89. package/dist/index.es143.js +34 -158
  90. package/dist/index.es143.js.map +1 -1
  91. package/dist/index.es144.js +34 -50
  92. package/dist/index.es144.js.map +1 -1
  93. package/dist/index.es145.js +32 -32
  94. package/dist/index.es145.js.map +1 -1
  95. package/dist/index.es146.js +23 -34
  96. package/dist/index.es146.js.map +1 -1
  97. package/dist/index.es147.js +583 -32
  98. package/dist/index.es147.js.map +1 -1
  99. package/dist/index.es148.js +121 -20
  100. package/dist/index.es148.js.map +1 -1
  101. package/dist/index.es149.js +158 -585
  102. package/dist/index.es149.js.map +1 -1
  103. package/dist/index.es15.js +15 -15
  104. package/dist/index.es150.js +2 -125
  105. package/dist/index.es150.js.map +1 -1
  106. package/dist/index.es157.js +2 -2
  107. package/dist/index.es159.js +2 -2
  108. package/dist/index.es161.js +64 -25
  109. package/dist/index.es161.js.map +1 -1
  110. package/dist/index.es162.js +22 -12
  111. package/dist/index.es162.js.map +1 -1
  112. package/dist/index.es163.js +5 -53
  113. package/dist/index.es163.js.map +1 -1
  114. package/dist/index.es164.js +337 -52
  115. package/dist/index.es164.js.map +1 -1
  116. package/dist/index.es165.js +24 -21
  117. package/dist/index.es165.js.map +1 -1
  118. package/dist/index.es166.js +12 -6
  119. package/dist/index.es166.js.map +1 -1
  120. package/dist/index.es167.js +49 -344
  121. package/dist/index.es167.js.map +1 -1
  122. package/dist/index.es175.js +1 -1
  123. package/dist/index.es178.js +1 -1
  124. package/dist/index.es183.js +1 -1
  125. package/dist/index.es195.js +2 -2
  126. package/dist/index.es197.js +2 -2
  127. package/dist/index.es200.js +1 -1
  128. package/dist/index.es201.js +1 -1
  129. package/dist/index.es203.js +1 -1
  130. package/dist/index.es204.js +2 -2
  131. package/dist/index.es206.js +1 -1
  132. package/dist/index.es209.js +3 -3
  133. package/dist/index.es21.js +1 -1
  134. package/dist/index.es210.js +2 -2
  135. package/dist/index.es212.js +1 -1
  136. package/dist/index.es214.js +1 -1
  137. package/dist/index.es215.js +1 -1
  138. package/dist/index.es217.js +1 -1
  139. package/dist/index.es218.js +2 -2
  140. package/dist/index.es219.js +1 -1
  141. package/dist/index.es220.js +1 -1
  142. package/dist/index.es221.js +1 -1
  143. package/dist/index.es222.js +1 -1
  144. package/dist/index.es223.js +1 -1
  145. package/dist/index.es224.js +1 -1
  146. package/dist/index.es225.js +1 -1
  147. package/dist/index.es229.js +2 -2
  148. package/dist/index.es28.js +7 -7
  149. package/dist/index.es29.js +1 -1
  150. package/dist/index.es32.js +4 -4
  151. package/dist/index.es33.js +15 -1191
  152. package/dist/index.es33.js.map +1 -1
  153. package/dist/index.es34.js +117 -6
  154. package/dist/index.es34.js.map +1 -1
  155. package/dist/index.es35.js +70 -8
  156. package/dist/index.es35.js.map +1 -1
  157. package/dist/index.es36.js +19 -148
  158. package/dist/index.es36.js.map +1 -1
  159. package/dist/index.es37.js +255 -112
  160. package/dist/index.es37.js.map +1 -1
  161. package/dist/index.es38.js +40 -68
  162. package/dist/index.es38.js.map +1 -1
  163. package/dist/index.es39.js +214 -17
  164. package/dist/index.es39.js.map +1 -1
  165. package/dist/index.es40.js +53 -247
  166. package/dist/index.es40.js.map +1 -1
  167. package/dist/index.es41.js +123 -24
  168. package/dist/index.es41.js.map +1 -1
  169. package/dist/index.es42.js +14 -205
  170. package/dist/index.es42.js.map +1 -1
  171. package/dist/index.es43.js +221 -58
  172. package/dist/index.es43.js.map +1 -1
  173. package/dist/index.es44.js +7 -140
  174. package/dist/index.es44.js.map +1 -1
  175. package/dist/index.es45.js +1185 -17
  176. package/dist/index.es45.js.map +1 -1
  177. package/dist/index.es46.js +6 -229
  178. package/dist/index.es46.js.map +1 -1
  179. package/dist/index.es47.js +146 -15
  180. package/dist/index.es47.js.map +1 -1
  181. package/dist/index.es49.js +7 -90
  182. package/dist/index.es49.js.map +1 -1
  183. package/dist/index.es50.js +92 -6
  184. package/dist/index.es50.js.map +1 -1
  185. package/dist/index.es51.js +3 -14
  186. package/dist/index.es51.js.map +1 -1
  187. package/dist/index.es52.js +36 -8
  188. package/dist/index.es52.js.map +1 -1
  189. package/dist/index.es53.js +61 -83
  190. package/dist/index.es53.js.map +1 -1
  191. package/dist/index.es54.js +37 -3
  192. package/dist/index.es54.js.map +1 -1
  193. package/dist/index.es55.js +304 -34
  194. package/dist/index.es55.js.map +1 -1
  195. package/dist/index.es56.js +9 -72
  196. package/dist/index.es56.js.map +1 -1
  197. package/dist/index.es57.js +85 -32
  198. package/dist/index.es57.js.map +1 -1
  199. package/dist/index.es58.js +6 -304
  200. package/dist/index.es58.js.map +1 -1
  201. package/dist/index.es59.js +15 -9
  202. package/dist/index.es59.js.map +1 -1
  203. package/dist/index.es60.js +142 -5
  204. package/dist/index.es60.js.map +1 -1
  205. package/dist/index.es61.js +285 -148
  206. package/dist/index.es61.js.map +1 -1
  207. package/dist/index.es62.js +62 -668
  208. package/dist/index.es62.js.map +1 -1
  209. package/dist/index.es63.js +201 -131
  210. package/dist/index.es63.js.map +1 -1
  211. package/dist/index.es64.js +29 -295
  212. package/dist/index.es64.js.map +1 -1
  213. package/dist/index.es65.js +8 -65
  214. package/dist/index.es65.js.map +1 -1
  215. package/dist/index.es66.js +9 -210
  216. package/dist/index.es66.js.map +1 -1
  217. package/dist/index.es67.js +181 -28
  218. package/dist/index.es67.js.map +1 -1
  219. package/dist/index.es68.js +23 -8
  220. package/dist/index.es68.js.map +1 -1
  221. package/dist/index.es69.js +1397 -9
  222. package/dist/index.es69.js.map +1 -1
  223. package/dist/index.es70.js +9 -187
  224. package/dist/index.es70.js.map +1 -1
  225. package/dist/index.es71.js +8 -24
  226. package/dist/index.es71.js.map +1 -1
  227. package/dist/index.es72.js +5 -1399
  228. package/dist/index.es72.js.map +1 -1
  229. package/dist/index.es73.js +163 -9
  230. package/dist/index.es73.js.map +1 -1
  231. package/dist/index.es74.js +672 -8
  232. package/dist/index.es74.js.map +1 -1
  233. package/dist/index.es75.js +11 -36
  234. package/dist/index.es75.js.map +1 -1
  235. package/dist/index.es76.js +40 -5
  236. package/dist/index.es76.js.map +1 -1
  237. package/dist/index.es77.js +32 -71
  238. package/dist/index.es77.js.map +1 -1
  239. package/dist/index.es78.js +225 -30
  240. package/dist/index.es78.js.map +1 -1
  241. package/dist/index.es79.js +29 -11
  242. package/dist/index.es79.js.map +1 -1
  243. package/dist/index.es80.js +72 -37
  244. package/dist/index.es80.js.map +1 -1
  245. package/dist/index.es81.js +74 -32
  246. package/dist/index.es81.js.map +1 -1
  247. package/dist/index.es82.js +46 -226
  248. package/dist/index.es82.js.map +1 -1
  249. package/dist/index.es83.js +6 -6
  250. package/dist/index.es83.js.map +1 -1
  251. package/dist/index.es84.js +39 -71
  252. package/dist/index.es84.js.map +1 -1
  253. package/dist/index.es85.js +54 -73
  254. package/dist/index.es85.js.map +1 -1
  255. package/dist/index.es86.js +13 -52
  256. package/dist/index.es86.js.map +1 -1
  257. package/dist/index.es87.js +135 -28
  258. package/dist/index.es87.js.map +1 -1
  259. package/dist/index.es88.js +20 -42
  260. package/dist/index.es88.js.map +1 -1
  261. package/dist/index.es89.js +175 -50
  262. package/dist/index.es89.js.map +1 -1
  263. package/dist/index.es90.js +240 -12
  264. package/dist/index.es90.js.map +1 -1
  265. package/dist/index.es91.js +348 -130
  266. package/dist/index.es91.js.map +1 -1
  267. package/dist/index.es92.js +134 -18
  268. package/dist/index.es92.js.map +1 -1
  269. package/dist/index.es93.js +62 -174
  270. package/dist/index.es93.js.map +1 -1
  271. package/dist/index.es94.js +30 -234
  272. package/dist/index.es94.js.map +1 -1
  273. package/dist/index.es95.js +26 -344
  274. package/dist/index.es95.js.map +1 -1
  275. package/dist/index.es96.js +156 -127
  276. package/dist/index.es96.js.map +1 -1
  277. package/dist/index.es97.js +196 -63
  278. package/dist/index.es97.js.map +1 -1
  279. package/dist/index.es98.js +14 -37
  280. package/dist/index.es98.js.map +1 -1
  281. package/dist/index.es99.js +27 -34
  282. package/dist/index.es99.js.map +1 -1
  283. package/package.json +1 -1
@@ -1,73 +1,206 @@
1
- import { __export } from "./index.es52.js";
2
- import { getAbortSignalError } from "./index.es92.js";
3
- import { pRetry } from "./index.es96.js";
4
- import PQueueMod from "./index.es111.js";
5
- var async_caller_exports = {};
6
- __export(async_caller_exports, { AsyncCaller: () => AsyncCaller });
7
- const STATUS_NO_RETRY = [
8
- 400,
9
- 401,
10
- 402,
11
- 403,
12
- 404,
13
- 405,
14
- 406,
15
- 407,
16
- 409
17
- ];
18
- const defaultFailedAttemptHandler = (error) => {
19
- if (error.message.startsWith("Cancel") || error.message.startsWith("AbortError") || error.name === "AbortError") throw error;
20
- if (error?.code === "ECONNABORTED") throw error;
21
- const status = error?.response?.status ?? error?.status;
22
- if (status && STATUS_NO_RETRY.includes(+status)) throw error;
23
- if (error?.error?.code === "insufficient_quota") {
24
- const err = new Error(error?.message);
25
- err.name = "InsufficientQuotaError";
26
- throw err;
1
+ import { __export } from "./index.es49.js";
2
+ import { isRunnableInterface } from "./index.es95.js";
3
+ import { drawMermaid, drawMermaidImage } from "./index.es124.js";
4
+ import { toJsonSchema } from "./index.es125.js";
5
+ import { validate, v4 } from "uuid";
6
+ var graph_exports = {};
7
+ __export(graph_exports, { Graph: () => Graph });
8
+ function nodeDataStr(id, data) {
9
+ if (id !== void 0 && !validate(id)) return id;
10
+ else if (isRunnableInterface(data)) try {
11
+ let dataStr = data.getName();
12
+ dataStr = dataStr.startsWith("Runnable") ? dataStr.slice(8) : dataStr;
13
+ return dataStr;
14
+ } catch {
15
+ return data.getName();
27
16
  }
28
- };
29
- var AsyncCaller = class {
30
- maxConcurrency;
31
- maxRetries;
32
- onFailedAttempt;
33
- queue;
17
+ else return data.name ?? "UnknownSchema";
18
+ }
19
+ function nodeDataJson(node) {
20
+ if (isRunnableInterface(node.data)) return {
21
+ type: "runnable",
22
+ data: {
23
+ id: node.data.lc_id,
24
+ name: node.data.getName()
25
+ }
26
+ };
27
+ else return {
28
+ type: "schema",
29
+ data: {
30
+ ...toJsonSchema(node.data.schema),
31
+ title: node.data.name
32
+ }
33
+ };
34
+ }
35
+ var Graph = class Graph2 {
36
+ nodes = {};
37
+ edges = [];
34
38
  constructor(params) {
35
- this.maxConcurrency = params.maxConcurrency ?? Infinity;
36
- this.maxRetries = params.maxRetries ?? 6;
37
- this.onFailedAttempt = params.onFailedAttempt ?? defaultFailedAttemptHandler;
38
- const PQueue = "default" in PQueueMod ? PQueueMod.default : PQueueMod;
39
- this.queue = new PQueue({ concurrency: this.maxConcurrency });
40
- }
41
- async call(callable, ...args) {
42
- return this.queue.add(() => pRetry(() => callable(...args).catch((error) => {
43
- if (error instanceof Error) throw error;
44
- else throw new Error(error);
45
- }), {
46
- onFailedAttempt: ({ error }) => this.onFailedAttempt?.(error),
47
- retries: this.maxRetries,
48
- randomize: true
49
- }), { throwOnTimeout: true });
39
+ this.nodes = params?.nodes ?? this.nodes;
40
+ this.edges = params?.edges ?? this.edges;
50
41
  }
51
- callWithOptions(options, callable, ...args) {
52
- if (options.signal) {
53
- let listener;
54
- return Promise.race([this.call(callable, ...args), new Promise((_, reject) => {
55
- listener = () => {
56
- reject(getAbortSignalError(options.signal));
42
+ toJSON() {
43
+ const stableNodeIds = {};
44
+ Object.values(this.nodes).forEach((node, i) => {
45
+ stableNodeIds[node.id] = validate(node.id) ? i : node.id;
46
+ });
47
+ return {
48
+ nodes: Object.values(this.nodes).map((node) => ({
49
+ id: stableNodeIds[node.id],
50
+ ...nodeDataJson(node)
51
+ })),
52
+ edges: this.edges.map((edge) => {
53
+ const item = {
54
+ source: stableNodeIds[edge.source],
55
+ target: stableNodeIds[edge.target]
57
56
  };
58
- options.signal?.addEventListener("abort", listener);
59
- })]).finally(() => {
60
- if (options.signal && listener) options.signal.removeEventListener("abort", listener);
61
- });
62
- }
63
- return this.call(callable, ...args);
57
+ if (typeof edge.data !== "undefined") item.data = edge.data;
58
+ if (typeof edge.conditional !== "undefined") item.conditional = edge.conditional;
59
+ return item;
60
+ })
61
+ };
62
+ }
63
+ addNode(data, id, metadata) {
64
+ if (id !== void 0 && this.nodes[id] !== void 0) throw new Error(`Node with id ${id} already exists`);
65
+ const nodeId = id ?? v4();
66
+ const node = {
67
+ id: nodeId,
68
+ data,
69
+ name: nodeDataStr(id, data),
70
+ metadata
71
+ };
72
+ this.nodes[nodeId] = node;
73
+ return node;
74
+ }
75
+ removeNode(node) {
76
+ delete this.nodes[node.id];
77
+ this.edges = this.edges.filter((edge) => edge.source !== node.id && edge.target !== node.id);
78
+ }
79
+ addEdge(source, target, data, conditional) {
80
+ if (this.nodes[source.id] === void 0) throw new Error(`Source node ${source.id} not in graph`);
81
+ if (this.nodes[target.id] === void 0) throw new Error(`Target node ${target.id} not in graph`);
82
+ const edge = {
83
+ source: source.id,
84
+ target: target.id,
85
+ data,
86
+ conditional
87
+ };
88
+ this.edges.push(edge);
89
+ return edge;
90
+ }
91
+ firstNode() {
92
+ return _firstNode(this);
93
+ }
94
+ lastNode() {
95
+ return _lastNode(this);
96
+ }
97
+ /**
98
+ * Add all nodes and edges from another graph.
99
+ * Note this doesn't check for duplicates, nor does it connect the graphs.
100
+ */
101
+ extend(graph, prefix = "") {
102
+ let finalPrefix = prefix;
103
+ const nodeIds = Object.values(graph.nodes).map((node) => node.id);
104
+ if (nodeIds.every(validate)) finalPrefix = "";
105
+ const prefixed = (id) => {
106
+ return finalPrefix ? `${finalPrefix}:${id}` : id;
107
+ };
108
+ Object.entries(graph.nodes).forEach(([key, value]) => {
109
+ this.nodes[prefixed(key)] = {
110
+ ...value,
111
+ id: prefixed(key)
112
+ };
113
+ });
114
+ const newEdges = graph.edges.map((edge) => {
115
+ return {
116
+ ...edge,
117
+ source: prefixed(edge.source),
118
+ target: prefixed(edge.target)
119
+ };
120
+ });
121
+ this.edges = [...this.edges, ...newEdges];
122
+ const first = graph.firstNode();
123
+ const last = graph.lastNode();
124
+ return [first ? {
125
+ id: prefixed(first.id),
126
+ data: first.data
127
+ } : void 0, last ? {
128
+ id: prefixed(last.id),
129
+ data: last.data
130
+ } : void 0];
131
+ }
132
+ trimFirstNode() {
133
+ const firstNode = this.firstNode();
134
+ if (firstNode && _firstNode(this, [firstNode.id])) this.removeNode(firstNode);
135
+ }
136
+ trimLastNode() {
137
+ const lastNode = this.lastNode();
138
+ if (lastNode && _lastNode(this, [lastNode.id])) this.removeNode(lastNode);
139
+ }
140
+ /**
141
+ * Return a new graph with all nodes re-identified,
142
+ * using their unique, readable names where possible.
143
+ */
144
+ reid() {
145
+ const nodeLabels = Object.fromEntries(Object.values(this.nodes).map((node) => [node.id, node.name]));
146
+ const nodeLabelCounts = /* @__PURE__ */ new Map();
147
+ Object.values(nodeLabels).forEach((label) => {
148
+ nodeLabelCounts.set(label, (nodeLabelCounts.get(label) || 0) + 1);
149
+ });
150
+ const getNodeId = (nodeId) => {
151
+ const label = nodeLabels[nodeId];
152
+ if (validate(nodeId) && nodeLabelCounts.get(label) === 1) return label;
153
+ else return nodeId;
154
+ };
155
+ return new Graph2({
156
+ nodes: Object.fromEntries(Object.entries(this.nodes).map(([id, node]) => [getNodeId(id), {
157
+ ...node,
158
+ id: getNodeId(id)
159
+ }])),
160
+ edges: this.edges.map((edge) => ({
161
+ ...edge,
162
+ source: getNodeId(edge.source),
163
+ target: getNodeId(edge.target)
164
+ }))
165
+ });
166
+ }
167
+ drawMermaid(params) {
168
+ const { withStyles, curveStyle, nodeColors = {
169
+ default: "fill:#f2f0ff,line-height:1.2",
170
+ first: "fill-opacity:0",
171
+ last: "fill:#bfb6fc"
172
+ }, wrapLabelNWords } = params ?? {};
173
+ const graph = this.reid();
174
+ const firstNode = graph.firstNode();
175
+ const lastNode = graph.lastNode();
176
+ return drawMermaid(graph.nodes, graph.edges, {
177
+ firstNode: firstNode?.id,
178
+ lastNode: lastNode?.id,
179
+ withStyles,
180
+ curveStyle,
181
+ nodeColors,
182
+ wrapLabelNWords
183
+ });
64
184
  }
65
- fetch(...args) {
66
- return this.call(() => fetch(...args).then((res) => res.ok ? res : Promise.reject(res)));
185
+ async drawMermaidPng(params) {
186
+ const mermaidSyntax = this.drawMermaid(params);
187
+ return drawMermaidImage(mermaidSyntax, { backgroundColor: params?.backgroundColor });
67
188
  }
68
189
  };
190
+ function _firstNode(graph, exclude = []) {
191
+ const targets = new Set(graph.edges.filter((edge) => !exclude.includes(edge.source)).map((edge) => edge.target));
192
+ const found = [];
193
+ for (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !targets.has(node.id)) found.push(node);
194
+ return found.length === 1 ? found[0] : void 0;
195
+ }
196
+ function _lastNode(graph, exclude = []) {
197
+ const sources = new Set(graph.edges.filter((edge) => !exclude.includes(edge.target)).map((edge) => edge.source));
198
+ const found = [];
199
+ for (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !sources.has(node.id)) found.push(node);
200
+ return found.length === 1 ? found[0] : void 0;
201
+ }
69
202
  export {
70
- AsyncCaller,
71
- async_caller_exports
203
+ Graph,
204
+ graph_exports
72
205
  };
73
206
  //# sourceMappingURL=index.es97.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es97.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/utils/async_caller.js"],"sourcesContent":["import { __export } from \"../_virtual/rolldown_runtime.js\";\nimport { getAbortSignalError } from \"./signal.js\";\nimport { pRetry } from \"./p-retry/index.js\";\nimport PQueueMod from \"p-queue\";\n\n//#region src/utils/async_caller.ts\nvar async_caller_exports = {};\n__export(async_caller_exports, { AsyncCaller: () => AsyncCaller });\nconst STATUS_NO_RETRY = [\n\t400,\n\t401,\n\t402,\n\t403,\n\t404,\n\t405,\n\t406,\n\t407,\n\t409\n];\nconst defaultFailedAttemptHandler = (error) => {\n\tif (error.message.startsWith(\"Cancel\") || error.message.startsWith(\"AbortError\") || error.name === \"AbortError\") throw error;\n\tif (error?.code === \"ECONNABORTED\") throw error;\n\tconst status = error?.response?.status ?? error?.status;\n\tif (status && STATUS_NO_RETRY.includes(+status)) throw error;\n\tif (error?.error?.code === \"insufficient_quota\") {\n\t\tconst err = new Error(error?.message);\n\t\terr.name = \"InsufficientQuotaError\";\n\t\tthrow err;\n\t}\n};\n/**\n* A class that can be used to make async calls with concurrency and retry logic.\n*\n* This is useful for making calls to any kind of \"expensive\" external resource,\n* be it because it's rate-limited, subject to network issues, etc.\n*\n* Concurrent calls are limited by the `maxConcurrency` parameter, which defaults\n* to `Infinity`. This means that by default, all calls will be made in parallel.\n*\n* Retries are limited by the `maxRetries` parameter, which defaults to 6. This\n* means that by default, each call will be retried up to 6 times, with an\n* exponential backoff between each attempt.\n*/\nvar AsyncCaller = class {\n\tmaxConcurrency;\n\tmaxRetries;\n\tonFailedAttempt;\n\tqueue;\n\tconstructor(params) {\n\t\tthis.maxConcurrency = params.maxConcurrency ?? Infinity;\n\t\tthis.maxRetries = params.maxRetries ?? 6;\n\t\tthis.onFailedAttempt = params.onFailedAttempt ?? defaultFailedAttemptHandler;\n\t\tconst PQueue = \"default\" in PQueueMod ? PQueueMod.default : PQueueMod;\n\t\tthis.queue = new PQueue({ concurrency: this.maxConcurrency });\n\t}\n\tasync call(callable, ...args) {\n\t\treturn this.queue.add(() => pRetry(() => callable(...args).catch((error) => {\n\t\t\tif (error instanceof Error) throw error;\n\t\t\telse throw new Error(error);\n\t\t}), {\n\t\t\tonFailedAttempt: ({ error }) => this.onFailedAttempt?.(error),\n\t\t\tretries: this.maxRetries,\n\t\t\trandomize: true\n\t\t}), { throwOnTimeout: true });\n\t}\n\tcallWithOptions(options, callable, ...args) {\n\t\tif (options.signal) {\n\t\t\tlet listener;\n\t\t\treturn Promise.race([this.call(callable, ...args), new Promise((_, reject) => {\n\t\t\t\tlistener = () => {\n\t\t\t\t\treject(getAbortSignalError(options.signal));\n\t\t\t\t};\n\t\t\t\toptions.signal?.addEventListener(\"abort\", listener);\n\t\t\t})]).finally(() => {\n\t\t\t\tif (options.signal && listener) options.signal.removeEventListener(\"abort\", listener);\n\t\t\t});\n\t\t}\n\t\treturn this.call(callable, ...args);\n\t}\n\tfetch(...args) {\n\t\treturn this.call(() => fetch(...args).then((res) => res.ok ? res : Promise.reject(res)));\n\t}\n};\n\n//#endregion\nexport { AsyncCaller, async_caller_exports };\n//# sourceMappingURL=async_caller.js.map"],"names":[],"mappings":";;;;AAMG,IAAC,uBAAuB,CAAA;AAC3B,SAAS,sBAAsB,EAAE,aAAa,MAAM,YAAW,CAAE;AACjE,MAAM,kBAAkB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AACA,MAAM,8BAA8B,CAAC,UAAU;AAC9C,MAAI,MAAM,QAAQ,WAAW,QAAQ,KAAK,MAAM,QAAQ,WAAW,YAAY,KAAK,MAAM,SAAS,aAAc,OAAM;AACvH,MAAI,OAAO,SAAS,eAAgB,OAAM;AAC1C,QAAM,SAAS,OAAO,UAAU,UAAU,OAAO;AACjD,MAAI,UAAU,gBAAgB,SAAS,CAAC,MAAM,EAAG,OAAM;AACvD,MAAI,OAAO,OAAO,SAAS,sBAAsB;AAChD,UAAM,MAAM,IAAI,MAAM,OAAO,OAAO;AACpC,QAAI,OAAO;AACX,UAAM;AAAA,EACP;AACD;AAcG,IAAC,cAAc,MAAM;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,QAAQ;AACnB,SAAK,iBAAiB,OAAO,kBAAkB;AAC/C,SAAK,aAAa,OAAO,cAAc;AACvC,SAAK,kBAAkB,OAAO,mBAAmB;AACjD,UAAM,SAAS,aAAa,YAAY,UAAU,UAAU;AAC5D,SAAK,QAAQ,IAAI,OAAO,EAAE,aAAa,KAAK,gBAAgB;AAAA,EAC7D;AAAA,EACA,MAAM,KAAK,aAAa,MAAM;AAC7B,WAAO,KAAK,MAAM,IAAI,MAAM,OAAO,MAAM,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,UAAU;AAC3E,UAAI,iBAAiB,MAAO,OAAM;AAAA,UAC7B,OAAM,IAAI,MAAM,KAAK;AAAA,IAC3B,CAAC,GAAG;AAAA,MACH,iBAAiB,CAAC,EAAE,MAAK,MAAO,KAAK,kBAAkB,KAAK;AAAA,MAC5D,SAAS,KAAK;AAAA,MACd,WAAW;AAAA,IACd,CAAG,GAAG,EAAE,gBAAgB,MAAM;AAAA,EAC7B;AAAA,EACA,gBAAgB,SAAS,aAAa,MAAM;AAC3C,QAAI,QAAQ,QAAQ;AACnB,UAAI;AACJ,aAAO,QAAQ,KAAK,CAAC,KAAK,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,WAAW;AAC7E,mBAAW,MAAM;AAChB,iBAAO,oBAAoB,QAAQ,MAAM,CAAC;AAAA,QAC3C;AACA,gBAAQ,QAAQ,iBAAiB,SAAS,QAAQ;AAAA,MACnD,CAAC,CAAC,CAAC,EAAE,QAAQ,MAAM;AAClB,YAAI,QAAQ,UAAU,SAAU,SAAQ,OAAO,oBAAoB,SAAS,QAAQ;AAAA,MACrF,CAAC;AAAA,IACF;AACA,WAAO,KAAK,KAAK,UAAU,GAAG,IAAI;AAAA,EACnC;AAAA,EACA,SAAS,MAAM;AACd,WAAO,KAAK,KAAK,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,MAAM,QAAQ,OAAO,GAAG,CAAC,CAAC;AAAA,EACxF;AACD;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es97.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/runnables/graph.js"],"sourcesContent":["import { __export } from \"../_virtual/rolldown_runtime.js\";\nimport { isRunnableInterface } from \"./utils.js\";\nimport { drawMermaid, drawMermaidImage } from \"./graph_mermaid.js\";\nimport { toJsonSchema } from \"../utils/json_schema.js\";\nimport { v4, validate } from \"uuid\";\n\n//#region src/runnables/graph.ts\nvar graph_exports = {};\n__export(graph_exports, { Graph: () => Graph });\nfunction nodeDataStr(id, data) {\n\tif (id !== void 0 && !validate(id)) return id;\n\telse if (isRunnableInterface(data)) try {\n\t\tlet dataStr = data.getName();\n\t\tdataStr = dataStr.startsWith(\"Runnable\") ? dataStr.slice(8) : dataStr;\n\t\treturn dataStr;\n\t} catch {\n\t\treturn data.getName();\n\t}\n\telse return data.name ?? \"UnknownSchema\";\n}\nfunction nodeDataJson(node) {\n\tif (isRunnableInterface(node.data)) return {\n\t\ttype: \"runnable\",\n\t\tdata: {\n\t\t\tid: node.data.lc_id,\n\t\t\tname: node.data.getName()\n\t\t}\n\t};\n\telse return {\n\t\ttype: \"schema\",\n\t\tdata: {\n\t\t\t...toJsonSchema(node.data.schema),\n\t\t\ttitle: node.data.name\n\t\t}\n\t};\n}\nvar Graph = class Graph {\n\tnodes = {};\n\tedges = [];\n\tconstructor(params) {\n\t\tthis.nodes = params?.nodes ?? this.nodes;\n\t\tthis.edges = params?.edges ?? this.edges;\n\t}\n\ttoJSON() {\n\t\tconst stableNodeIds = {};\n\t\tObject.values(this.nodes).forEach((node, i) => {\n\t\t\tstableNodeIds[node.id] = validate(node.id) ? i : node.id;\n\t\t});\n\t\treturn {\n\t\t\tnodes: Object.values(this.nodes).map((node) => ({\n\t\t\t\tid: stableNodeIds[node.id],\n\t\t\t\t...nodeDataJson(node)\n\t\t\t})),\n\t\t\tedges: this.edges.map((edge) => {\n\t\t\t\tconst item = {\n\t\t\t\t\tsource: stableNodeIds[edge.source],\n\t\t\t\t\ttarget: stableNodeIds[edge.target]\n\t\t\t\t};\n\t\t\t\tif (typeof edge.data !== \"undefined\") item.data = edge.data;\n\t\t\t\tif (typeof edge.conditional !== \"undefined\") item.conditional = edge.conditional;\n\t\t\t\treturn item;\n\t\t\t})\n\t\t};\n\t}\n\taddNode(data, id, metadata) {\n\t\tif (id !== void 0 && this.nodes[id] !== void 0) throw new Error(`Node with id ${id} already exists`);\n\t\tconst nodeId = id ?? v4();\n\t\tconst node = {\n\t\t\tid: nodeId,\n\t\t\tdata,\n\t\t\tname: nodeDataStr(id, data),\n\t\t\tmetadata\n\t\t};\n\t\tthis.nodes[nodeId] = node;\n\t\treturn node;\n\t}\n\tremoveNode(node) {\n\t\tdelete this.nodes[node.id];\n\t\tthis.edges = this.edges.filter((edge) => edge.source !== node.id && edge.target !== node.id);\n\t}\n\taddEdge(source, target, data, conditional) {\n\t\tif (this.nodes[source.id] === void 0) throw new Error(`Source node ${source.id} not in graph`);\n\t\tif (this.nodes[target.id] === void 0) throw new Error(`Target node ${target.id} not in graph`);\n\t\tconst edge = {\n\t\t\tsource: source.id,\n\t\t\ttarget: target.id,\n\t\t\tdata,\n\t\t\tconditional\n\t\t};\n\t\tthis.edges.push(edge);\n\t\treturn edge;\n\t}\n\tfirstNode() {\n\t\treturn _firstNode(this);\n\t}\n\tlastNode() {\n\t\treturn _lastNode(this);\n\t}\n\t/**\n\t* Add all nodes and edges from another graph.\n\t* Note this doesn't check for duplicates, nor does it connect the graphs.\n\t*/\n\textend(graph, prefix = \"\") {\n\t\tlet finalPrefix = prefix;\n\t\tconst nodeIds = Object.values(graph.nodes).map((node) => node.id);\n\t\tif (nodeIds.every(validate)) finalPrefix = \"\";\n\t\tconst prefixed = (id) => {\n\t\t\treturn finalPrefix ? `${finalPrefix}:${id}` : id;\n\t\t};\n\t\tObject.entries(graph.nodes).forEach(([key, value]) => {\n\t\t\tthis.nodes[prefixed(key)] = {\n\t\t\t\t...value,\n\t\t\t\tid: prefixed(key)\n\t\t\t};\n\t\t});\n\t\tconst newEdges = graph.edges.map((edge) => {\n\t\t\treturn {\n\t\t\t\t...edge,\n\t\t\t\tsource: prefixed(edge.source),\n\t\t\t\ttarget: prefixed(edge.target)\n\t\t\t};\n\t\t});\n\t\tthis.edges = [...this.edges, ...newEdges];\n\t\tconst first = graph.firstNode();\n\t\tconst last = graph.lastNode();\n\t\treturn [first ? {\n\t\t\tid: prefixed(first.id),\n\t\t\tdata: first.data\n\t\t} : void 0, last ? {\n\t\t\tid: prefixed(last.id),\n\t\t\tdata: last.data\n\t\t} : void 0];\n\t}\n\ttrimFirstNode() {\n\t\tconst firstNode = this.firstNode();\n\t\tif (firstNode && _firstNode(this, [firstNode.id])) this.removeNode(firstNode);\n\t}\n\ttrimLastNode() {\n\t\tconst lastNode = this.lastNode();\n\t\tif (lastNode && _lastNode(this, [lastNode.id])) this.removeNode(lastNode);\n\t}\n\t/**\n\t* Return a new graph with all nodes re-identified,\n\t* using their unique, readable names where possible.\n\t*/\n\treid() {\n\t\tconst nodeLabels = Object.fromEntries(Object.values(this.nodes).map((node) => [node.id, node.name]));\n\t\tconst nodeLabelCounts = /* @__PURE__ */ new Map();\n\t\tObject.values(nodeLabels).forEach((label) => {\n\t\t\tnodeLabelCounts.set(label, (nodeLabelCounts.get(label) || 0) + 1);\n\t\t});\n\t\tconst getNodeId = (nodeId) => {\n\t\t\tconst label = nodeLabels[nodeId];\n\t\t\tif (validate(nodeId) && nodeLabelCounts.get(label) === 1) return label;\n\t\t\telse return nodeId;\n\t\t};\n\t\treturn new Graph({\n\t\t\tnodes: Object.fromEntries(Object.entries(this.nodes).map(([id, node]) => [getNodeId(id), {\n\t\t\t\t...node,\n\t\t\t\tid: getNodeId(id)\n\t\t\t}])),\n\t\t\tedges: this.edges.map((edge) => ({\n\t\t\t\t...edge,\n\t\t\t\tsource: getNodeId(edge.source),\n\t\t\t\ttarget: getNodeId(edge.target)\n\t\t\t}))\n\t\t});\n\t}\n\tdrawMermaid(params) {\n\t\tconst { withStyles, curveStyle, nodeColors = {\n\t\t\tdefault: \"fill:#f2f0ff,line-height:1.2\",\n\t\t\tfirst: \"fill-opacity:0\",\n\t\t\tlast: \"fill:#bfb6fc\"\n\t\t}, wrapLabelNWords } = params ?? {};\n\t\tconst graph = this.reid();\n\t\tconst firstNode = graph.firstNode();\n\t\tconst lastNode = graph.lastNode();\n\t\treturn drawMermaid(graph.nodes, graph.edges, {\n\t\t\tfirstNode: firstNode?.id,\n\t\t\tlastNode: lastNode?.id,\n\t\t\twithStyles,\n\t\t\tcurveStyle,\n\t\t\tnodeColors,\n\t\t\twrapLabelNWords\n\t\t});\n\t}\n\tasync drawMermaidPng(params) {\n\t\tconst mermaidSyntax = this.drawMermaid(params);\n\t\treturn drawMermaidImage(mermaidSyntax, { backgroundColor: params?.backgroundColor });\n\t}\n};\n/**\n* Find the single node that is not a target of any edge.\n* Exclude nodes/sources with ids in the exclude list.\n* If there is no such node, or there are multiple, return undefined.\n* When drawing the graph, this node would be the origin.\n*/\nfunction _firstNode(graph, exclude = []) {\n\tconst targets = new Set(graph.edges.filter((edge) => !exclude.includes(edge.source)).map((edge) => edge.target));\n\tconst found = [];\n\tfor (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !targets.has(node.id)) found.push(node);\n\treturn found.length === 1 ? found[0] : void 0;\n}\n/**\n* Find the single node that is not a source of any edge.\n* Exclude nodes/targets with ids in the exclude list.\n* If there is no such node, or there are multiple, return undefined.\n* When drawing the graph, this node would be the destination.\n*/\nfunction _lastNode(graph, exclude = []) {\n\tconst sources = new Set(graph.edges.filter((edge) => !exclude.includes(edge.target)).map((edge) => edge.source));\n\tconst found = [];\n\tfor (const node of Object.values(graph.nodes)) if (!exclude.includes(node.id) && !sources.has(node.id)) found.push(node);\n\treturn found.length === 1 ? found[0] : void 0;\n}\n\n//#endregion\nexport { Graph, graph_exports };\n//# sourceMappingURL=graph.js.map"],"names":["Graph"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,40 +1,17 @@
1
- import { BaseTracer } from "./index.es117.js";
2
- var RootListenersTracer = class extends BaseTracer {
3
- name = "RootListenersTracer";
4
- /** The Run's ID. Type UUID */
5
- rootId;
6
- config;
7
- argOnStart;
8
- argOnEnd;
9
- argOnError;
10
- constructor({ config, onStart, onEnd, onError }) {
11
- super({ _awaitHandler: true });
12
- this.config = config;
13
- this.argOnStart = onStart;
14
- this.argOnEnd = onEnd;
15
- this.argOnError = onError;
16
- }
17
- /**
18
- * This is a legacy method only called once for an entire run tree
19
- * therefore not useful here
20
- * @param {Run} _ Not used
21
- */
22
- persistRun(_) {
23
- return Promise.resolve();
24
- }
25
- async onRunCreate(run) {
26
- if (this.rootId) return;
27
- this.rootId = run.id;
28
- if (this.argOnStart) await this.argOnStart(run, this.config);
29
- }
30
- async onRunUpdate(run) {
31
- if (run.id !== this.rootId) return;
32
- if (!run.error) {
33
- if (this.argOnEnd) await this.argOnEnd(run, this.config);
34
- } else if (this.argOnError) await this.argOnError(run, this.config);
35
- }
36
- };
1
+ import { IterableReadableStream } from "./index.es89.js";
2
+ function convertToHttpEventStream(stream) {
3
+ const encoder = new TextEncoder();
4
+ const finalStream = new ReadableStream({ async start(controller) {
5
+ for await (const chunk of stream) controller.enqueue(encoder.encode(`event: data
6
+ data: ${JSON.stringify(chunk)}
7
+
8
+ `));
9
+ controller.enqueue(encoder.encode("event: end\n\n"));
10
+ controller.close();
11
+ } });
12
+ return IterableReadableStream.fromReadableStream(finalStream);
13
+ }
37
14
  export {
38
- RootListenersTracer
15
+ convertToHttpEventStream
39
16
  };
40
17
  //# sourceMappingURL=index.es98.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es98.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/tracers/root_listener.js"],"sourcesContent":["import { BaseTracer } from \"./base.js\";\n\n//#region src/tracers/root_listener.ts\nvar RootListenersTracer = class extends BaseTracer {\n\tname = \"RootListenersTracer\";\n\t/** The Run's ID. Type UUID */\n\trootId;\n\tconfig;\n\targOnStart;\n\targOnEnd;\n\targOnError;\n\tconstructor({ config, onStart, onEnd, onError }) {\n\t\tsuper({ _awaitHandler: true });\n\t\tthis.config = config;\n\t\tthis.argOnStart = onStart;\n\t\tthis.argOnEnd = onEnd;\n\t\tthis.argOnError = onError;\n\t}\n\t/**\n\t* This is a legacy method only called once for an entire run tree\n\t* therefore not useful here\n\t* @param {Run} _ Not used\n\t*/\n\tpersistRun(_) {\n\t\treturn Promise.resolve();\n\t}\n\tasync onRunCreate(run) {\n\t\tif (this.rootId) return;\n\t\tthis.rootId = run.id;\n\t\tif (this.argOnStart) await this.argOnStart(run, this.config);\n\t}\n\tasync onRunUpdate(run) {\n\t\tif (run.id !== this.rootId) return;\n\t\tif (!run.error) {\n\t\t\tif (this.argOnEnd) await this.argOnEnd(run, this.config);\n\t\t} else if (this.argOnError) await this.argOnError(run, this.config);\n\t}\n};\n\n//#endregion\nexport { RootListenersTracer };\n//# sourceMappingURL=root_listener.js.map"],"names":[],"mappings":";AAGG,IAAC,sBAAsB,cAAc,WAAW;AAAA,EAClD,OAAO;AAAA;AAAA,EAEP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,EAAE,QAAQ,SAAS,OAAO,QAAO,GAAI;AAChD,UAAM,EAAE,eAAe,MAAM;AAC7B,SAAK,SAAS;AACd,SAAK,aAAa;AAClB,SAAK,WAAW;AAChB,SAAK,aAAa;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW,GAAG;AACb,WAAO,QAAQ,QAAO;AAAA,EACvB;AAAA,EACA,MAAM,YAAY,KAAK;AACtB,QAAI,KAAK,OAAQ;AACjB,SAAK,SAAS,IAAI;AAClB,QAAI,KAAK,WAAY,OAAM,KAAK,WAAW,KAAK,KAAK,MAAM;AAAA,EAC5D;AAAA,EACA,MAAM,YAAY,KAAK;AACtB,QAAI,IAAI,OAAO,KAAK,OAAQ;AAC5B,QAAI,CAAC,IAAI,OAAO;AACf,UAAI,KAAK,SAAU,OAAM,KAAK,SAAS,KAAK,KAAK,MAAM;AAAA,IACxD,WAAW,KAAK,WAAY,OAAM,KAAK,WAAW,KAAK,KAAK,MAAM;AAAA,EACnE;AACD;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es98.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/runnables/wrappers.js"],"sourcesContent":["import { IterableReadableStream } from \"../utils/stream.js\";\n\n//#region src/runnables/wrappers.ts\nfunction convertToHttpEventStream(stream) {\n\tconst encoder = new TextEncoder();\n\tconst finalStream = new ReadableStream({ async start(controller) {\n\t\tfor await (const chunk of stream) controller.enqueue(encoder.encode(`event: data\\ndata: ${JSON.stringify(chunk)}\\n\\n`));\n\t\tcontroller.enqueue(encoder.encode(\"event: end\\n\\n\"));\n\t\tcontroller.close();\n\t} });\n\treturn IterableReadableStream.fromReadableStream(finalStream);\n}\n\n//#endregion\nexport { convertToHttpEventStream };\n//# sourceMappingURL=wrappers.js.map"],"names":[],"mappings":";AAGA,SAAS,yBAAyB,QAAQ;AACzC,QAAM,UAAU,IAAI,YAAW;AAC/B,QAAM,cAAc,IAAI,eAAe,EAAE,MAAM,MAAM,YAAY;AAChE,qBAAiB,SAAS,OAAQ,YAAW,QAAQ,QAAQ,OAAO;AAAA,QAAsB,KAAK,UAAU,KAAK,CAAC;AAAA;AAAA,CAAM,CAAC;AACtH,eAAW,QAAQ,QAAQ,OAAO,gBAAgB,CAAC;AACnD,eAAW,MAAK;AAAA,EACjB,GAAG;AACH,SAAO,uBAAuB,mBAAmB,WAAW;AAC7D;","x_google_ignoreList":[0]}
@@ -1,40 +1,33 @@
1
- function isRunnableInterface(thing) {
2
- return thing ? thing.lc_runnable : false;
1
+ import { AsyncLocalStorageProviderSingleton } from "./index.es85.js";
2
+ import "./index.es86.js";
3
+ import { pickRunnableConfigKeys } from "./index.es87.js";
4
+ function isIterableIterator(thing) {
5
+ return typeof thing === "object" && thing !== null && typeof thing[Symbol.iterator] === "function" && typeof thing.next === "function";
3
6
  }
4
- var _RootEventFilter = class {
5
- includeNames;
6
- includeTypes;
7
- includeTags;
8
- excludeNames;
9
- excludeTypes;
10
- excludeTags;
11
- constructor(fields) {
12
- this.includeNames = fields.includeNames;
13
- this.includeTypes = fields.includeTypes;
14
- this.includeTags = fields.includeTags;
15
- this.excludeNames = fields.excludeNames;
16
- this.excludeTypes = fields.excludeTypes;
17
- this.excludeTags = fields.excludeTags;
7
+ const isIterator = (x) => x != null && typeof x === "object" && "next" in x && typeof x.next === "function";
8
+ function isAsyncIterable(thing) {
9
+ return typeof thing === "object" && thing !== null && typeof thing[Symbol.asyncIterator] === "function";
10
+ }
11
+ function* consumeIteratorInContext(context, iter) {
12
+ while (true) {
13
+ const { value, done } = AsyncLocalStorageProviderSingleton.runWithConfig(pickRunnableConfigKeys(context), iter.next.bind(iter), true);
14
+ if (done) break;
15
+ else yield value;
18
16
  }
19
- includeEvent(event, rootType) {
20
- let include = this.includeNames === void 0 && this.includeTypes === void 0 && this.includeTags === void 0;
21
- const eventTags = event.tags ?? [];
22
- if (this.includeNames !== void 0) include = include || this.includeNames.includes(event.name);
23
- if (this.includeTypes !== void 0) include = include || this.includeTypes.includes(rootType);
24
- if (this.includeTags !== void 0) include = include || eventTags.some((tag) => this.includeTags?.includes(tag));
25
- if (this.excludeNames !== void 0) include = include && !this.excludeNames.includes(event.name);
26
- if (this.excludeTypes !== void 0) include = include && !this.excludeTypes.includes(rootType);
27
- if (this.excludeTags !== void 0) include = include && eventTags.every((tag) => !this.excludeTags?.includes(tag));
28
- return include;
17
+ }
18
+ async function* consumeAsyncIterableInContext(context, iter) {
19
+ const iterator = iter[Symbol.asyncIterator]();
20
+ while (true) {
21
+ const { value, done } = await AsyncLocalStorageProviderSingleton.runWithConfig(pickRunnableConfigKeys(context), iterator.next.bind(iter), true);
22
+ if (done) break;
23
+ else yield value;
29
24
  }
30
- };
31
- const toBase64Url = (str) => {
32
- const encoded = btoa(str);
33
- return encoded.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
34
- };
25
+ }
35
26
  export {
36
- _RootEventFilter,
37
- isRunnableInterface,
38
- toBase64Url
27
+ consumeAsyncIterableInContext,
28
+ consumeIteratorInContext,
29
+ isAsyncIterable,
30
+ isIterableIterator,
31
+ isIterator
39
32
  };
40
33
  //# sourceMappingURL=index.es99.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es99.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/runnables/utils.js"],"sourcesContent":["//#region src/runnables/utils.ts\nfunction isRunnableInterface(thing) {\n\treturn 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*/\nvar _RootEventFilter = class {\n\tincludeNames;\n\tincludeTypes;\n\tincludeTags;\n\texcludeNames;\n\texcludeTypes;\n\texcludeTags;\n\tconstructor(fields) {\n\t\tthis.includeNames = fields.includeNames;\n\t\tthis.includeTypes = fields.includeTypes;\n\t\tthis.includeTags = fields.includeTags;\n\t\tthis.excludeNames = fields.excludeNames;\n\t\tthis.excludeTypes = fields.excludeTypes;\n\t\tthis.excludeTags = fields.excludeTags;\n\t}\n\tincludeEvent(event, rootType) {\n\t\tlet include = this.includeNames === void 0 && this.includeTypes === void 0 && this.includeTags === void 0;\n\t\tconst eventTags = event.tags ?? [];\n\t\tif (this.includeNames !== void 0) include = include || this.includeNames.includes(event.name);\n\t\tif (this.includeTypes !== void 0) include = include || this.includeTypes.includes(rootType);\n\t\tif (this.includeTags !== void 0) include = include || eventTags.some((tag) => this.includeTags?.includes(tag));\n\t\tif (this.excludeNames !== void 0) include = include && !this.excludeNames.includes(event.name);\n\t\tif (this.excludeTypes !== void 0) include = include && !this.excludeTypes.includes(rootType);\n\t\tif (this.excludeTags !== void 0) include = include && eventTags.every((tag) => !this.excludeTags?.includes(tag));\n\t\treturn include;\n\t}\n};\nconst toBase64Url = (str) => {\n\tconst encoded = btoa(str);\n\treturn encoded.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n};\n\n//#endregion\nexport { _RootEventFilter, isRunnableInterface, toBase64Url };\n//# sourceMappingURL=utils.js.map"],"names":[],"mappings":"AACA,SAAS,oBAAoB,OAAO;AACnC,SAAO,QAAQ,MAAM,cAAc;AACpC;AAQG,IAAC,mBAAmB,MAAM;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,QAAQ;AACnB,SAAK,eAAe,OAAO;AAC3B,SAAK,eAAe,OAAO;AAC3B,SAAK,cAAc,OAAO;AAC1B,SAAK,eAAe,OAAO;AAC3B,SAAK,eAAe,OAAO;AAC3B,SAAK,cAAc,OAAO;AAAA,EAC3B;AAAA,EACA,aAAa,OAAO,UAAU;AAC7B,QAAI,UAAU,KAAK,iBAAiB,UAAU,KAAK,iBAAiB,UAAU,KAAK,gBAAgB;AACnG,UAAM,YAAY,MAAM,QAAQ,CAAA;AAChC,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,KAAK,aAAa,SAAS,MAAM,IAAI;AAC5F,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,KAAK,aAAa,SAAS,QAAQ;AAC1F,QAAI,KAAK,gBAAgB,OAAQ,WAAU,WAAW,UAAU,KAAK,CAAC,QAAQ,KAAK,aAAa,SAAS,GAAG,CAAC;AAC7G,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,CAAC,KAAK,aAAa,SAAS,MAAM,IAAI;AAC7F,QAAI,KAAK,iBAAiB,OAAQ,WAAU,WAAW,CAAC,KAAK,aAAa,SAAS,QAAQ;AAC3F,QAAI,KAAK,gBAAgB,OAAQ,WAAU,WAAW,UAAU,MAAM,CAAC,QAAQ,CAAC,KAAK,aAAa,SAAS,GAAG,CAAC;AAC/G,WAAO;AAAA,EACR;AACD;AACK,MAAC,cAAc,CAAC,QAAQ;AAC5B,QAAM,UAAU,KAAK,GAAG;AACxB,SAAO,QAAQ,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE;AACzE;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es99.js","sources":["../node_modules/.pnpm/@langchain+core@1.1.13_openai@6.16.0_zod@4.3.5_/node_modules/@langchain/core/dist/runnables/iter.js"],"sourcesContent":["import { AsyncLocalStorageProviderSingleton } from \"../singletons/async_local_storage/index.js\";\nimport \"../singletons/index.js\";\nimport { pickRunnableConfigKeys } from \"./config.js\";\n\n//#region src/runnables/iter.ts\nfunction isIterableIterator(thing) {\n\treturn typeof thing === \"object\" && thing !== null && typeof thing[Symbol.iterator] === \"function\" && typeof thing.next === \"function\";\n}\nconst isIterator = (x) => x != null && typeof x === \"object\" && \"next\" in x && typeof x.next === \"function\";\nfunction isAsyncIterable(thing) {\n\treturn typeof thing === \"object\" && thing !== null && typeof thing[Symbol.asyncIterator] === \"function\";\n}\nfunction* consumeIteratorInContext(context, iter) {\n\twhile (true) {\n\t\tconst { value, done } = AsyncLocalStorageProviderSingleton.runWithConfig(pickRunnableConfigKeys(context), iter.next.bind(iter), true);\n\t\tif (done) break;\n\t\telse yield value;\n\t}\n}\nasync function* consumeAsyncIterableInContext(context, iter) {\n\tconst iterator = iter[Symbol.asyncIterator]();\n\twhile (true) {\n\t\tconst { value, done } = await AsyncLocalStorageProviderSingleton.runWithConfig(pickRunnableConfigKeys(context), iterator.next.bind(iter), true);\n\t\tif (done) break;\n\t\telse yield value;\n\t}\n}\n\n//#endregion\nexport { consumeAsyncIterableInContext, consumeIteratorInContext, isAsyncIterable, isIterableIterator, isIterator };\n//# sourceMappingURL=iter.js.map"],"names":[],"mappings":";;;AAKA,SAAS,mBAAmB,OAAO;AAClC,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,OAAO,MAAM,OAAO,QAAQ,MAAM,cAAc,OAAO,MAAM,SAAS;AAC7H;AACK,MAAC,aAAa,CAAC,MAAM,KAAK,QAAQ,OAAO,MAAM,YAAY,UAAU,KAAK,OAAO,EAAE,SAAS;AACjG,SAAS,gBAAgB,OAAO;AAC/B,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,OAAO,MAAM,OAAO,aAAa,MAAM;AAC9F;AACA,UAAU,yBAAyB,SAAS,MAAM;AACjD,SAAO,MAAM;AACZ,UAAM,EAAE,OAAO,KAAI,IAAK,mCAAmC,cAAc,uBAAuB,OAAO,GAAG,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI;AACpI,QAAI,KAAM;AAAA,QACL,OAAM;AAAA,EACZ;AACD;AACA,gBAAgB,8BAA8B,SAAS,MAAM;AAC5D,QAAM,WAAW,KAAK,OAAO,aAAa,EAAC;AAC3C,SAAO,MAAM;AACZ,UAAM,EAAE,OAAO,KAAI,IAAK,MAAM,mCAAmC,cAAc,uBAAuB,OAAO,GAAG,SAAS,KAAK,KAAK,IAAI,GAAG,IAAI;AAC9I,QAAI,KAAM;AAAA,QACL,OAAM;AAAA,EACZ;AACD;","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "langgraph-ui-components",
3
3
  "private": false,
4
- "version": "0.0.7",
4
+ "version": "0.0.8",
5
5
  "type": "module",
6
6
  "main": "./dist/index.es.js",
7
7
  "module": "./dist/index.es.js",