@langchain/langgraph-checkpoint 0.1.0 → 1.0.0

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 (121) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  3. package/dist/base.cjs +74 -88
  4. package/dist/base.cjs.map +1 -0
  5. package/dist/base.d.cts +95 -0
  6. package/dist/base.d.cts.map +1 -0
  7. package/dist/base.d.ts +79 -73
  8. package/dist/base.d.ts.map +1 -0
  9. package/dist/base.js +69 -80
  10. package/dist/base.js.map +1 -1
  11. package/dist/cache/base.cjs +17 -21
  12. package/dist/cache/base.cjs.map +1 -0
  13. package/dist/cache/base.d.cts +43 -0
  14. package/dist/cache/base.d.cts.map +1 -0
  15. package/dist/cache/base.d.ts +41 -36
  16. package/dist/cache/base.d.ts.map +1 -0
  17. package/dist/cache/base.js +16 -16
  18. package/dist/cache/base.js.map +1 -1
  19. package/dist/cache/index.cjs +2 -19
  20. package/dist/cache/index.js +4 -3
  21. package/dist/cache/memory.cjs +53 -58
  22. package/dist/cache/memory.cjs.map +1 -0
  23. package/dist/cache/memory.d.cts +19 -0
  24. package/dist/cache/memory.d.cts.map +1 -0
  25. package/dist/cache/memory.d.ts +18 -13
  26. package/dist/cache/memory.d.ts.map +1 -0
  27. package/dist/cache/memory.js +52 -53
  28. package/dist/cache/memory.js.map +1 -1
  29. package/dist/id.cjs +12 -16
  30. package/dist/id.cjs.map +1 -0
  31. package/dist/id.d.cts +10 -0
  32. package/dist/id.d.cts.map +1 -0
  33. package/dist/id.d.ts +10 -2
  34. package/dist/id.d.ts.map +1 -0
  35. package/dist/id.js +10 -12
  36. package/dist/id.js.map +1 -1
  37. package/dist/index.cjs +36 -27
  38. package/dist/index.d.cts +12 -0
  39. package/dist/index.d.ts +12 -8
  40. package/dist/index.js +12 -9
  41. package/dist/memory.cjs +194 -268
  42. package/dist/memory.cjs.map +1 -0
  43. package/dist/memory.d.cts +22 -0
  44. package/dist/memory.d.cts.map +1 -0
  45. package/dist/memory.d.ts +19 -12
  46. package/dist/memory.d.ts.map +1 -0
  47. package/dist/memory.js +193 -263
  48. package/dist/memory.js.map +1 -1
  49. package/dist/serde/base.d.cts +10 -0
  50. package/dist/serde/base.d.cts.map +1 -0
  51. package/dist/serde/base.d.ts +9 -3
  52. package/dist/serde/base.d.ts.map +1 -0
  53. package/dist/serde/jsonplus.cjs +92 -141
  54. package/dist/serde/jsonplus.cjs.map +1 -0
  55. package/dist/serde/jsonplus.js +90 -136
  56. package/dist/serde/jsonplus.js.map +1 -1
  57. package/dist/serde/types.cjs +15 -9
  58. package/dist/serde/types.cjs.map +1 -0
  59. package/dist/serde/types.d.cts +55 -0
  60. package/dist/serde/types.d.cts.map +1 -0
  61. package/dist/serde/types.d.ts +53 -47
  62. package/dist/serde/types.d.ts.map +1 -0
  63. package/dist/serde/types.js +9 -5
  64. package/dist/serde/types.js.map +1 -1
  65. package/dist/serde/utils/fast-safe-stringify/index.cjs +88 -208
  66. package/dist/serde/utils/fast-safe-stringify/index.cjs.map +1 -0
  67. package/dist/serde/utils/fast-safe-stringify/index.js +87 -205
  68. package/dist/serde/utils/fast-safe-stringify/index.js.map +1 -1
  69. package/dist/store/base.cjs +200 -209
  70. package/dist/store/base.cjs.map +1 -0
  71. package/dist/store/base.d.cts +392 -0
  72. package/dist/store/base.d.cts.map +1 -0
  73. package/dist/store/base.d.ts +336 -332
  74. package/dist/store/base.d.ts.map +1 -0
  75. package/dist/store/base.js +198 -204
  76. package/dist/store/base.js.map +1 -1
  77. package/dist/store/batch.cjs +116 -147
  78. package/dist/store/batch.cjs.map +1 -0
  79. package/dist/store/batch.d.cts +49 -0
  80. package/dist/store/batch.d.cts.map +1 -0
  81. package/dist/store/batch.d.ts +48 -40
  82. package/dist/store/batch.d.ts.map +1 -0
  83. package/dist/store/batch.js +116 -143
  84. package/dist/store/batch.js.map +1 -1
  85. package/dist/store/memory.cjs +262 -363
  86. package/dist/store/memory.cjs.map +1 -0
  87. package/dist/store/memory.d.cts +64 -0
  88. package/dist/store/memory.d.cts.map +1 -0
  89. package/dist/store/memory.d.ts +30 -24
  90. package/dist/store/memory.d.ts.map +1 -0
  91. package/dist/store/memory.js +261 -358
  92. package/dist/store/memory.js.map +1 -1
  93. package/dist/store/utils.cjs +141 -249
  94. package/dist/store/utils.cjs.map +1 -0
  95. package/dist/store/utils.js +140 -245
  96. package/dist/store/utils.js.map +1 -1
  97. package/dist/types.d.cts +35 -0
  98. package/dist/types.d.cts.map +1 -0
  99. package/dist/types.d.ts +29 -28
  100. package/dist/types.d.ts.map +1 -0
  101. package/package.json +16 -18
  102. package/dist/cache/index.d.ts +0 -2
  103. package/dist/cache/index.js.map +0 -1
  104. package/dist/index.js.map +0 -1
  105. package/dist/serde/base.cjs +0 -3
  106. package/dist/serde/base.js +0 -2
  107. package/dist/serde/base.js.map +0 -1
  108. package/dist/serde/jsonplus.d.ts +0 -7
  109. package/dist/serde/utils/fast-safe-stringify/index.d.ts +0 -1
  110. package/dist/store/index.cjs +0 -20
  111. package/dist/store/index.d.ts +0 -3
  112. package/dist/store/index.js +0 -4
  113. package/dist/store/index.js.map +0 -1
  114. package/dist/store/utils.d.ts +0 -26
  115. package/dist/types.cjs +0 -3
  116. package/dist/types.js +0 -2
  117. package/dist/types.js.map +0 -1
  118. package/index.cjs +0 -1
  119. package/index.d.cts +0 -1
  120. package/index.d.ts +0 -1
  121. package/index.js +0 -1
@@ -1,150 +1,101 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JsonPlusSerializer = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
- /* eslint-disable no-instanceof/no-instanceof */
6
- const load_1 = require("@langchain/core/load");
7
- const index_js_1 = require("./utils/fast-safe-stringify/index.cjs");
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_index = require('./utils/fast-safe-stringify/index.cjs');
3
+ const __langchain_core_load = require_rolldown_runtime.__toESM(require("@langchain/core/load"));
4
+
5
+ //#region src/serde/jsonplus.ts
8
6
  function isLangChainSerializedObject(value) {
9
- return (value !== null &&
10
- value.lc === 1 &&
11
- value.type === "constructor" &&
12
- Array.isArray(value.id));
7
+ return value !== null && value.lc === 1 && value.type === "constructor" && Array.isArray(value.id);
13
8
  }
14
9
  /**
15
- * The replacer in stringify does not allow delegation to built-in LangChain
16
- * serialization methods, and instead immediately calls `.toJSON()` and
17
- * continues to stringify subfields.
18
- *
19
- * We therefore must start from the most nested elements in the input and
20
- * deserialize upwards rather than top-down.
21
- */
10
+ * The replacer in stringify does not allow delegation to built-in LangChain
11
+ * serialization methods, and instead immediately calls `.toJSON()` and
12
+ * continues to stringify subfields.
13
+ *
14
+ * We therefore must start from the most nested elements in the input and
15
+ * deserialize upwards rather than top-down.
16
+ */
22
17
  async function _reviver(value) {
23
- if (value && typeof value === "object") {
24
- if (Array.isArray(value)) {
25
- const revivedArray = await Promise.all(value.map((item) => _reviver(item)));
26
- return revivedArray;
27
- }
28
- else {
29
- const revivedObj = {};
30
- for (const [k, v] of Object.entries(value)) {
31
- revivedObj[k] = await _reviver(v);
32
- }
33
- if (revivedObj.lc === 2 && revivedObj.type === "undefined") {
34
- return undefined;
35
- }
36
- else if (revivedObj.lc === 2 &&
37
- revivedObj.type === "constructor" &&
38
- Array.isArray(revivedObj.id)) {
39
- try {
40
- const constructorName = revivedObj.id[revivedObj.id.length - 1];
41
- let constructor;
42
- switch (constructorName) {
43
- case "Set":
44
- constructor = Set;
45
- break;
46
- case "Map":
47
- constructor = Map;
48
- break;
49
- case "RegExp":
50
- constructor = RegExp;
51
- break;
52
- case "Error":
53
- constructor = Error;
54
- break;
55
- default:
56
- return revivedObj;
57
- }
58
- if (revivedObj.method) {
59
- return constructor[revivedObj.method](...(revivedObj.args || []));
60
- }
61
- else {
62
- return new constructor(...(revivedObj.args || []));
63
- }
64
- }
65
- catch (error) {
66
- return revivedObj;
67
- }
68
- }
69
- else if (isLangChainSerializedObject(revivedObj)) {
70
- return (0, load_1.load)(JSON.stringify(revivedObj));
71
- }
72
- return revivedObj;
73
- }
74
- }
75
- return value;
18
+ if (value && typeof value === "object") if (Array.isArray(value)) {
19
+ const revivedArray = await Promise.all(value.map((item) => _reviver(item)));
20
+ return revivedArray;
21
+ } else {
22
+ const revivedObj = {};
23
+ for (const [k, v] of Object.entries(value)) revivedObj[k] = await _reviver(v);
24
+ if (revivedObj.lc === 2 && revivedObj.type === "undefined") return void 0;
25
+ else if (revivedObj.lc === 2 && revivedObj.type === "constructor" && Array.isArray(revivedObj.id)) try {
26
+ const constructorName = revivedObj.id[revivedObj.id.length - 1];
27
+ let constructor;
28
+ switch (constructorName) {
29
+ case "Set":
30
+ constructor = Set;
31
+ break;
32
+ case "Map":
33
+ constructor = Map;
34
+ break;
35
+ case "RegExp":
36
+ constructor = RegExp;
37
+ break;
38
+ case "Error":
39
+ constructor = Error;
40
+ break;
41
+ default: return revivedObj;
42
+ }
43
+ if (revivedObj.method) return constructor[revivedObj.method](...revivedObj.args || []);
44
+ else return new constructor(...revivedObj.args || []);
45
+ } catch (error) {
46
+ return revivedObj;
47
+ }
48
+ else if (isLangChainSerializedObject(revivedObj)) return (0, __langchain_core_load.load)(JSON.stringify(revivedObj));
49
+ return revivedObj;
50
+ }
51
+ return value;
76
52
  }
77
- function _encodeConstructorArgs(
78
- // eslint-disable-next-line @typescript-eslint/ban-types
79
- constructor, method, args, kwargs) {
80
- return {
81
- lc: 2,
82
- type: "constructor",
83
- id: [constructor.name],
84
- method: method ?? null,
85
- args: args ?? [],
86
- kwargs: kwargs ?? {},
87
- };
53
+ function _encodeConstructorArgs(constructor, method, args, kwargs) {
54
+ return {
55
+ lc: 2,
56
+ type: "constructor",
57
+ id: [constructor.name],
58
+ method: method ?? null,
59
+ args: args ?? [],
60
+ kwargs: kwargs ?? {}
61
+ };
88
62
  }
89
63
  function _default(obj) {
90
- if (obj === undefined) {
91
- return {
92
- lc: 2,
93
- type: "undefined",
94
- };
95
- }
96
- else if (obj instanceof Set || obj instanceof Map) {
97
- return _encodeConstructorArgs(obj.constructor, undefined, [
98
- Array.from(obj),
99
- ]);
100
- }
101
- else if (obj instanceof RegExp) {
102
- return _encodeConstructorArgs(RegExp, undefined, [obj.source, obj.flags]);
103
- }
104
- else if (obj instanceof Error) {
105
- return _encodeConstructorArgs(obj.constructor, undefined, [obj.message]);
106
- // TODO: Remove special case
107
- }
108
- else if (obj?.lg_name === "Send") {
109
- return {
110
- node: obj.node,
111
- args: obj.args,
112
- };
113
- }
114
- else {
115
- return obj;
116
- }
117
- }
118
- class JsonPlusSerializer {
119
- _dumps(obj) {
120
- const encoder = new TextEncoder();
121
- return encoder.encode((0, index_js_1.stringify)(obj, (_, value) => {
122
- return _default(value);
123
- }));
124
- }
125
- async dumpsTyped(obj) {
126
- if (obj instanceof Uint8Array) {
127
- return ["bytes", obj];
128
- }
129
- else {
130
- return ["json", this._dumps(obj)];
131
- }
132
- }
133
- async _loads(data) {
134
- const parsed = JSON.parse(data);
135
- return _reviver(parsed);
136
- }
137
- async loadsTyped(type, data) {
138
- if (type === "bytes") {
139
- return typeof data === "string" ? new TextEncoder().encode(data) : data;
140
- }
141
- else if (type === "json") {
142
- return this._loads(typeof data === "string" ? data : new TextDecoder().decode(data));
143
- }
144
- else {
145
- throw new Error(`Unknown serialization type: ${type}`);
146
- }
147
- }
64
+ if (obj === void 0) return {
65
+ lc: 2,
66
+ type: "undefined"
67
+ };
68
+ else if (obj instanceof Set || obj instanceof Map) return _encodeConstructorArgs(obj.constructor, void 0, [Array.from(obj)]);
69
+ else if (obj instanceof RegExp) return _encodeConstructorArgs(RegExp, void 0, [obj.source, obj.flags]);
70
+ else if (obj instanceof Error) return _encodeConstructorArgs(obj.constructor, void 0, [obj.message]);
71
+ else if (obj?.lg_name === "Send") return {
72
+ node: obj.node,
73
+ args: obj.args
74
+ };
75
+ else return obj;
148
76
  }
77
+ var JsonPlusSerializer = class {
78
+ _dumps(obj) {
79
+ const encoder = new TextEncoder();
80
+ return encoder.encode(require_index.stringify(obj, (_, value) => {
81
+ return _default(value);
82
+ }));
83
+ }
84
+ async dumpsTyped(obj) {
85
+ if (obj instanceof Uint8Array) return ["bytes", obj];
86
+ else return ["json", this._dumps(obj)];
87
+ }
88
+ async _loads(data) {
89
+ const parsed = JSON.parse(data);
90
+ return _reviver(parsed);
91
+ }
92
+ async loadsTyped(type, data) {
93
+ if (type === "bytes") return typeof data === "string" ? new TextEncoder().encode(data) : data;
94
+ else if (type === "json") return this._loads(typeof data === "string" ? data : new TextDecoder().decode(data));
95
+ else throw new Error(`Unknown serialization type: ${type}`);
96
+ }
97
+ };
98
+
99
+ //#endregion
149
100
  exports.JsonPlusSerializer = JsonPlusSerializer;
150
- //# sourceMappingURL=jsonplus.js.map
101
+ //# sourceMappingURL=jsonplus.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonplus.cjs","names":["revivedObj: any","constructor: any","stringify"],"sources":["../../src/serde/jsonplus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-instanceof/no-instanceof */\nimport { load } from \"@langchain/core/load\";\nimport { SerializerProtocol } from \"./base.js\";\nimport { stringify } from \"./utils/fast-safe-stringify/index.js\";\n\nfunction isLangChainSerializedObject(value: Record<string, unknown>) {\n return (\n value !== null &&\n value.lc === 1 &&\n value.type === \"constructor\" &&\n Array.isArray(value.id)\n );\n}\n\n/**\n * The replacer in stringify does not allow delegation to built-in LangChain\n * serialization methods, and instead immediately calls `.toJSON()` and\n * continues to stringify subfields.\n *\n * We therefore must start from the most nested elements in the input and\n * deserialize upwards rather than top-down.\n */\nasync function _reviver(value: any): Promise<any> {\n if (value && typeof value === \"object\") {\n if (Array.isArray(value)) {\n const revivedArray = await Promise.all(\n value.map((item) => _reviver(item))\n );\n return revivedArray;\n } else {\n const revivedObj: any = {};\n for (const [k, v] of Object.entries(value)) {\n revivedObj[k] = await _reviver(v);\n }\n\n if (revivedObj.lc === 2 && revivedObj.type === \"undefined\") {\n return undefined;\n } else if (\n revivedObj.lc === 2 &&\n revivedObj.type === \"constructor\" &&\n Array.isArray(revivedObj.id)\n ) {\n try {\n const constructorName = revivedObj.id[revivedObj.id.length - 1];\n let constructor: any;\n\n switch (constructorName) {\n case \"Set\":\n constructor = Set;\n break;\n case \"Map\":\n constructor = Map;\n break;\n case \"RegExp\":\n constructor = RegExp;\n break;\n case \"Error\":\n constructor = Error;\n break;\n default:\n return revivedObj;\n }\n if (revivedObj.method) {\n return (constructor as any)[revivedObj.method](\n ...(revivedObj.args || [])\n );\n } else {\n return new (constructor as any)(...(revivedObj.args || []));\n }\n } catch (error) {\n return revivedObj;\n }\n } else if (isLangChainSerializedObject(revivedObj)) {\n return load(JSON.stringify(revivedObj));\n }\n\n return revivedObj;\n }\n }\n return value;\n}\n\nfunction _encodeConstructorArgs(\n // eslint-disable-next-line @typescript-eslint/ban-types\n constructor: Function,\n method?: string,\n args?: any[],\n kwargs?: Record<string, any>\n): object {\n return {\n lc: 2,\n type: \"constructor\",\n id: [constructor.name],\n method: method ?? null,\n args: args ?? [],\n kwargs: kwargs ?? {},\n };\n}\n\nfunction _default(obj: any): any {\n if (obj === undefined) {\n return {\n lc: 2,\n type: \"undefined\",\n };\n } else if (obj instanceof Set || obj instanceof Map) {\n return _encodeConstructorArgs(obj.constructor, undefined, [\n Array.from(obj),\n ]);\n } else if (obj instanceof RegExp) {\n return _encodeConstructorArgs(RegExp, undefined, [obj.source, obj.flags]);\n } else if (obj instanceof Error) {\n return _encodeConstructorArgs(obj.constructor, undefined, [obj.message]);\n // TODO: Remove special case\n } else if (obj?.lg_name === \"Send\") {\n return {\n node: obj.node,\n args: obj.args,\n };\n } else {\n return obj;\n }\n}\n\nexport class JsonPlusSerializer implements SerializerProtocol {\n protected _dumps(obj: any): Uint8Array {\n const encoder = new TextEncoder();\n return encoder.encode(\n stringify(obj, (_: string, value: any) => {\n return _default(value);\n })\n );\n }\n\n async dumpsTyped(obj: any): Promise<[string, Uint8Array]> {\n if (obj instanceof Uint8Array) {\n return [\"bytes\", obj];\n } else {\n return [\"json\", this._dumps(obj)];\n }\n }\n\n protected async _loads(data: string): Promise<any> {\n const parsed = JSON.parse(data);\n return _reviver(parsed);\n }\n\n async loadsTyped(type: string, data: Uint8Array | string): Promise<any> {\n if (type === \"bytes\") {\n return typeof data === \"string\" ? new TextEncoder().encode(data) : data;\n } else if (type === \"json\") {\n return this._loads(\n typeof data === \"string\" ? data : new TextDecoder().decode(data)\n );\n } else {\n throw new Error(`Unknown serialization type: ${type}`);\n }\n }\n}\n"],"mappings":";;;;;AAMA,SAAS,4BAA4B,OAAgC;AACnE,QACE,UAAU,QACV,MAAM,OAAO,KACb,MAAM,SAAS,iBACf,MAAM,QAAQ,MAAM;;;;;;;;;;AAYxB,eAAe,SAAS,OAA0B;AAChD,KAAI,SAAS,OAAO,UAAU,SAC5B,KAAI,MAAM,QAAQ,QAAQ;EACxB,MAAM,eAAe,MAAM,QAAQ,IACjC,MAAM,KAAK,SAAS,SAAS;AAE/B,SAAO;QACF;EACL,MAAMA,aAAkB;AACxB,OAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,OAClC,YAAW,KAAK,MAAM,SAAS;AAGjC,MAAI,WAAW,OAAO,KAAK,WAAW,SAAS,YAC7C,QAAO;WAEP,WAAW,OAAO,KAClB,WAAW,SAAS,iBACpB,MAAM,QAAQ,WAAW,IAEzB,KAAI;GACF,MAAM,kBAAkB,WAAW,GAAG,WAAW,GAAG,SAAS;GAC7D,IAAIC;AAEJ,WAAQ,iBAAR;IACE,KAAK;AACH,mBAAc;AACd;IACF,KAAK;AACH,mBAAc;AACd;IACF,KAAK;AACH,mBAAc;AACd;IACF,KAAK;AACH,mBAAc;AACd;IACF,QACE,QAAO;;AAEX,OAAI,WAAW,OACb,QAAQ,YAAoB,WAAW,QACrC,GAAI,WAAW,QAAQ;OAGzB,QAAO,IAAK,YAAoB,GAAI,WAAW,QAAQ;WAElD,OAAO;AACd,UAAO;;WAEA,4BAA4B,YACrC,wCAAY,KAAK,UAAU;AAG7B,SAAO;;AAGX,QAAO;;AAGT,SAAS,uBAEP,aACA,QACA,MACA,QACQ;AACR,QAAO;EACL,IAAI;EACJ,MAAM;EACN,IAAI,CAAC,YAAY;EACjB,QAAQ,UAAU;EAClB,MAAM,QAAQ;EACd,QAAQ,UAAU;;;AAItB,SAAS,SAAS,KAAe;AAC/B,KAAI,QAAQ,OACV,QAAO;EACL,IAAI;EACJ,MAAM;;UAEC,eAAe,OAAO,eAAe,IAC9C,QAAO,uBAAuB,IAAI,aAAa,QAAW,CACxD,MAAM,KAAK;UAEJ,eAAe,OACxB,QAAO,uBAAuB,QAAQ,QAAW,CAAC,IAAI,QAAQ,IAAI;UACzD,eAAe,MACxB,QAAO,uBAAuB,IAAI,aAAa,QAAW,CAAC,IAAI;UAEtD,KAAK,YAAY,OAC1B,QAAO;EACL,MAAM,IAAI;EACV,MAAM,IAAI;;KAGZ,QAAO;;AAIX,IAAa,qBAAb,MAA8D;CAC5D,AAAU,OAAO,KAAsB;EACrC,MAAM,UAAU,IAAI;AACpB,SAAO,QAAQ,OACbC,wBAAU,MAAM,GAAW,UAAe;AACxC,UAAO,SAAS;;;CAKtB,MAAM,WAAW,KAAyC;AACxD,MAAI,eAAe,WACjB,QAAO,CAAC,SAAS;MAEjB,QAAO,CAAC,QAAQ,KAAK,OAAO;;CAIhC,MAAgB,OAAO,MAA4B;EACjD,MAAM,SAAS,KAAK,MAAM;AAC1B,SAAO,SAAS;;CAGlB,MAAM,WAAW,MAAc,MAAyC;AACtE,MAAI,SAAS,QACX,QAAO,OAAO,SAAS,WAAW,IAAI,cAAc,OAAO,QAAQ;WAC1D,SAAS,OAClB,QAAO,KAAK,OACV,OAAO,SAAS,WAAW,OAAO,IAAI,cAAc,OAAO;MAG7D,OAAM,IAAI,MAAM,+BAA+B"}
@@ -1,146 +1,100 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable no-instanceof/no-instanceof */
3
- import { load } from "@langchain/core/load";
4
1
  import { stringify } from "./utils/fast-safe-stringify/index.js";
2
+ import { load } from "@langchain/core/load";
3
+
4
+ //#region src/serde/jsonplus.ts
5
5
  function isLangChainSerializedObject(value) {
6
- return (value !== null &&
7
- value.lc === 1 &&
8
- value.type === "constructor" &&
9
- Array.isArray(value.id));
6
+ return value !== null && value.lc === 1 && value.type === "constructor" && Array.isArray(value.id);
10
7
  }
11
8
  /**
12
- * The replacer in stringify does not allow delegation to built-in LangChain
13
- * serialization methods, and instead immediately calls `.toJSON()` and
14
- * continues to stringify subfields.
15
- *
16
- * We therefore must start from the most nested elements in the input and
17
- * deserialize upwards rather than top-down.
18
- */
9
+ * The replacer in stringify does not allow delegation to built-in LangChain
10
+ * serialization methods, and instead immediately calls `.toJSON()` and
11
+ * continues to stringify subfields.
12
+ *
13
+ * We therefore must start from the most nested elements in the input and
14
+ * deserialize upwards rather than top-down.
15
+ */
19
16
  async function _reviver(value) {
20
- if (value && typeof value === "object") {
21
- if (Array.isArray(value)) {
22
- const revivedArray = await Promise.all(value.map((item) => _reviver(item)));
23
- return revivedArray;
24
- }
25
- else {
26
- const revivedObj = {};
27
- for (const [k, v] of Object.entries(value)) {
28
- revivedObj[k] = await _reviver(v);
29
- }
30
- if (revivedObj.lc === 2 && revivedObj.type === "undefined") {
31
- return undefined;
32
- }
33
- else if (revivedObj.lc === 2 &&
34
- revivedObj.type === "constructor" &&
35
- Array.isArray(revivedObj.id)) {
36
- try {
37
- const constructorName = revivedObj.id[revivedObj.id.length - 1];
38
- let constructor;
39
- switch (constructorName) {
40
- case "Set":
41
- constructor = Set;
42
- break;
43
- case "Map":
44
- constructor = Map;
45
- break;
46
- case "RegExp":
47
- constructor = RegExp;
48
- break;
49
- case "Error":
50
- constructor = Error;
51
- break;
52
- default:
53
- return revivedObj;
54
- }
55
- if (revivedObj.method) {
56
- return constructor[revivedObj.method](...(revivedObj.args || []));
57
- }
58
- else {
59
- return new constructor(...(revivedObj.args || []));
60
- }
61
- }
62
- catch (error) {
63
- return revivedObj;
64
- }
65
- }
66
- else if (isLangChainSerializedObject(revivedObj)) {
67
- return load(JSON.stringify(revivedObj));
68
- }
69
- return revivedObj;
70
- }
71
- }
72
- return value;
17
+ if (value && typeof value === "object") if (Array.isArray(value)) {
18
+ const revivedArray = await Promise.all(value.map((item) => _reviver(item)));
19
+ return revivedArray;
20
+ } else {
21
+ const revivedObj = {};
22
+ for (const [k, v] of Object.entries(value)) revivedObj[k] = await _reviver(v);
23
+ if (revivedObj.lc === 2 && revivedObj.type === "undefined") return void 0;
24
+ else if (revivedObj.lc === 2 && revivedObj.type === "constructor" && Array.isArray(revivedObj.id)) try {
25
+ const constructorName = revivedObj.id[revivedObj.id.length - 1];
26
+ let constructor;
27
+ switch (constructorName) {
28
+ case "Set":
29
+ constructor = Set;
30
+ break;
31
+ case "Map":
32
+ constructor = Map;
33
+ break;
34
+ case "RegExp":
35
+ constructor = RegExp;
36
+ break;
37
+ case "Error":
38
+ constructor = Error;
39
+ break;
40
+ default: return revivedObj;
41
+ }
42
+ if (revivedObj.method) return constructor[revivedObj.method](...revivedObj.args || []);
43
+ else return new constructor(...revivedObj.args || []);
44
+ } catch (error) {
45
+ return revivedObj;
46
+ }
47
+ else if (isLangChainSerializedObject(revivedObj)) return load(JSON.stringify(revivedObj));
48
+ return revivedObj;
49
+ }
50
+ return value;
73
51
  }
74
- function _encodeConstructorArgs(
75
- // eslint-disable-next-line @typescript-eslint/ban-types
76
- constructor, method, args, kwargs) {
77
- return {
78
- lc: 2,
79
- type: "constructor",
80
- id: [constructor.name],
81
- method: method ?? null,
82
- args: args ?? [],
83
- kwargs: kwargs ?? {},
84
- };
52
+ function _encodeConstructorArgs(constructor, method, args, kwargs) {
53
+ return {
54
+ lc: 2,
55
+ type: "constructor",
56
+ id: [constructor.name],
57
+ method: method ?? null,
58
+ args: args ?? [],
59
+ kwargs: kwargs ?? {}
60
+ };
85
61
  }
86
62
  function _default(obj) {
87
- if (obj === undefined) {
88
- return {
89
- lc: 2,
90
- type: "undefined",
91
- };
92
- }
93
- else if (obj instanceof Set || obj instanceof Map) {
94
- return _encodeConstructorArgs(obj.constructor, undefined, [
95
- Array.from(obj),
96
- ]);
97
- }
98
- else if (obj instanceof RegExp) {
99
- return _encodeConstructorArgs(RegExp, undefined, [obj.source, obj.flags]);
100
- }
101
- else if (obj instanceof Error) {
102
- return _encodeConstructorArgs(obj.constructor, undefined, [obj.message]);
103
- // TODO: Remove special case
104
- }
105
- else if (obj?.lg_name === "Send") {
106
- return {
107
- node: obj.node,
108
- args: obj.args,
109
- };
110
- }
111
- else {
112
- return obj;
113
- }
114
- }
115
- export class JsonPlusSerializer {
116
- _dumps(obj) {
117
- const encoder = new TextEncoder();
118
- return encoder.encode(stringify(obj, (_, value) => {
119
- return _default(value);
120
- }));
121
- }
122
- async dumpsTyped(obj) {
123
- if (obj instanceof Uint8Array) {
124
- return ["bytes", obj];
125
- }
126
- else {
127
- return ["json", this._dumps(obj)];
128
- }
129
- }
130
- async _loads(data) {
131
- const parsed = JSON.parse(data);
132
- return _reviver(parsed);
133
- }
134
- async loadsTyped(type, data) {
135
- if (type === "bytes") {
136
- return typeof data === "string" ? new TextEncoder().encode(data) : data;
137
- }
138
- else if (type === "json") {
139
- return this._loads(typeof data === "string" ? data : new TextDecoder().decode(data));
140
- }
141
- else {
142
- throw new Error(`Unknown serialization type: ${type}`);
143
- }
144
- }
63
+ if (obj === void 0) return {
64
+ lc: 2,
65
+ type: "undefined"
66
+ };
67
+ else if (obj instanceof Set || obj instanceof Map) return _encodeConstructorArgs(obj.constructor, void 0, [Array.from(obj)]);
68
+ else if (obj instanceof RegExp) return _encodeConstructorArgs(RegExp, void 0, [obj.source, obj.flags]);
69
+ else if (obj instanceof Error) return _encodeConstructorArgs(obj.constructor, void 0, [obj.message]);
70
+ else if (obj?.lg_name === "Send") return {
71
+ node: obj.node,
72
+ args: obj.args
73
+ };
74
+ else return obj;
145
75
  }
76
+ var JsonPlusSerializer = class {
77
+ _dumps(obj) {
78
+ const encoder = new TextEncoder();
79
+ return encoder.encode(stringify(obj, (_, value) => {
80
+ return _default(value);
81
+ }));
82
+ }
83
+ async dumpsTyped(obj) {
84
+ if (obj instanceof Uint8Array) return ["bytes", obj];
85
+ else return ["json", this._dumps(obj)];
86
+ }
87
+ async _loads(data) {
88
+ const parsed = JSON.parse(data);
89
+ return _reviver(parsed);
90
+ }
91
+ async loadsTyped(type, data) {
92
+ if (type === "bytes") return typeof data === "string" ? new TextEncoder().encode(data) : data;
93
+ else if (type === "json") return this._loads(typeof data === "string" ? data : new TextDecoder().decode(data));
94
+ else throw new Error(`Unknown serialization type: ${type}`);
95
+ }
96
+ };
97
+
98
+ //#endregion
99
+ export { JsonPlusSerializer };
146
100
  //# sourceMappingURL=jsonplus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonplus.js","sourceRoot":"","sources":["../../src/serde/jsonplus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonplus.js","names":["revivedObj: any","constructor: any"],"sources":["../../src/serde/jsonplus.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-instanceof/no-instanceof */\nimport { load } from \"@langchain/core/load\";\nimport { SerializerProtocol } from \"./base.js\";\nimport { stringify } from \"./utils/fast-safe-stringify/index.js\";\n\nfunction isLangChainSerializedObject(value: Record<string, unknown>) {\n return (\n value !== null &&\n value.lc === 1 &&\n value.type === \"constructor\" &&\n Array.isArray(value.id)\n );\n}\n\n/**\n * The replacer in stringify does not allow delegation to built-in LangChain\n * serialization methods, and instead immediately calls `.toJSON()` and\n * continues to stringify subfields.\n *\n * We therefore must start from the most nested elements in the input and\n * deserialize upwards rather than top-down.\n */\nasync function _reviver(value: any): Promise<any> {\n if (value && typeof value === \"object\") {\n if (Array.isArray(value)) {\n const revivedArray = await Promise.all(\n value.map((item) => _reviver(item))\n );\n return revivedArray;\n } else {\n const revivedObj: any = {};\n for (const [k, v] of Object.entries(value)) {\n revivedObj[k] = await _reviver(v);\n }\n\n if (revivedObj.lc === 2 && revivedObj.type === \"undefined\") {\n return undefined;\n } else if (\n revivedObj.lc === 2 &&\n revivedObj.type === \"constructor\" &&\n Array.isArray(revivedObj.id)\n ) {\n try {\n const constructorName = revivedObj.id[revivedObj.id.length - 1];\n let constructor: any;\n\n switch (constructorName) {\n case \"Set\":\n constructor = Set;\n break;\n case \"Map\":\n constructor = Map;\n break;\n case \"RegExp\":\n constructor = RegExp;\n break;\n case \"Error\":\n constructor = Error;\n break;\n default:\n return revivedObj;\n }\n if (revivedObj.method) {\n return (constructor as any)[revivedObj.method](\n ...(revivedObj.args || [])\n );\n } else {\n return new (constructor as any)(...(revivedObj.args || []));\n }\n } catch (error) {\n return revivedObj;\n }\n } else if (isLangChainSerializedObject(revivedObj)) {\n return load(JSON.stringify(revivedObj));\n }\n\n return revivedObj;\n }\n }\n return value;\n}\n\nfunction _encodeConstructorArgs(\n // eslint-disable-next-line @typescript-eslint/ban-types\n constructor: Function,\n method?: string,\n args?: any[],\n kwargs?: Record<string, any>\n): object {\n return {\n lc: 2,\n type: \"constructor\",\n id: [constructor.name],\n method: method ?? null,\n args: args ?? [],\n kwargs: kwargs ?? {},\n };\n}\n\nfunction _default(obj: any): any {\n if (obj === undefined) {\n return {\n lc: 2,\n type: \"undefined\",\n };\n } else if (obj instanceof Set || obj instanceof Map) {\n return _encodeConstructorArgs(obj.constructor, undefined, [\n Array.from(obj),\n ]);\n } else if (obj instanceof RegExp) {\n return _encodeConstructorArgs(RegExp, undefined, [obj.source, obj.flags]);\n } else if (obj instanceof Error) {\n return _encodeConstructorArgs(obj.constructor, undefined, [obj.message]);\n // TODO: Remove special case\n } else if (obj?.lg_name === \"Send\") {\n return {\n node: obj.node,\n args: obj.args,\n };\n } else {\n return obj;\n }\n}\n\nexport class JsonPlusSerializer implements SerializerProtocol {\n protected _dumps(obj: any): Uint8Array {\n const encoder = new TextEncoder();\n return encoder.encode(\n stringify(obj, (_: string, value: any) => {\n return _default(value);\n })\n );\n }\n\n async dumpsTyped(obj: any): Promise<[string, Uint8Array]> {\n if (obj instanceof Uint8Array) {\n return [\"bytes\", obj];\n } else {\n return [\"json\", this._dumps(obj)];\n }\n }\n\n protected async _loads(data: string): Promise<any> {\n const parsed = JSON.parse(data);\n return _reviver(parsed);\n }\n\n async loadsTyped(type: string, data: Uint8Array | string): Promise<any> {\n if (type === \"bytes\") {\n return typeof data === \"string\" ? new TextEncoder().encode(data) : data;\n } else if (type === \"json\") {\n return this._loads(\n typeof data === \"string\" ? data : new TextDecoder().decode(data)\n );\n } else {\n throw new Error(`Unknown serialization type: ${type}`);\n }\n }\n}\n"],"mappings":";;;;AAMA,SAAS,4BAA4B,OAAgC;AACnE,QACE,UAAU,QACV,MAAM,OAAO,KACb,MAAM,SAAS,iBACf,MAAM,QAAQ,MAAM;;;;;;;;;;AAYxB,eAAe,SAAS,OAA0B;AAChD,KAAI,SAAS,OAAO,UAAU,SAC5B,KAAI,MAAM,QAAQ,QAAQ;EACxB,MAAM,eAAe,MAAM,QAAQ,IACjC,MAAM,KAAK,SAAS,SAAS;AAE/B,SAAO;QACF;EACL,MAAMA,aAAkB;AACxB,OAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,OAClC,YAAW,KAAK,MAAM,SAAS;AAGjC,MAAI,WAAW,OAAO,KAAK,WAAW,SAAS,YAC7C,QAAO;WAEP,WAAW,OAAO,KAClB,WAAW,SAAS,iBACpB,MAAM,QAAQ,WAAW,IAEzB,KAAI;GACF,MAAM,kBAAkB,WAAW,GAAG,WAAW,GAAG,SAAS;GAC7D,IAAIC;AAEJ,WAAQ,iBAAR;IACE,KAAK;AACH,mBAAc;AACd;IACF,KAAK;AACH,mBAAc;AACd;IACF,KAAK;AACH,mBAAc;AACd;IACF,KAAK;AACH,mBAAc;AACd;IACF,QACE,QAAO;;AAEX,OAAI,WAAW,OACb,QAAQ,YAAoB,WAAW,QACrC,GAAI,WAAW,QAAQ;OAGzB,QAAO,IAAK,YAAoB,GAAI,WAAW,QAAQ;WAElD,OAAO;AACd,UAAO;;WAEA,4BAA4B,YACrC,QAAO,KAAK,KAAK,UAAU;AAG7B,SAAO;;AAGX,QAAO;;AAGT,SAAS,uBAEP,aACA,QACA,MACA,QACQ;AACR,QAAO;EACL,IAAI;EACJ,MAAM;EACN,IAAI,CAAC,YAAY;EACjB,QAAQ,UAAU;EAClB,MAAM,QAAQ;EACd,QAAQ,UAAU;;;AAItB,SAAS,SAAS,KAAe;AAC/B,KAAI,QAAQ,OACV,QAAO;EACL,IAAI;EACJ,MAAM;;UAEC,eAAe,OAAO,eAAe,IAC9C,QAAO,uBAAuB,IAAI,aAAa,QAAW,CACxD,MAAM,KAAK;UAEJ,eAAe,OACxB,QAAO,uBAAuB,QAAQ,QAAW,CAAC,IAAI,QAAQ,IAAI;UACzD,eAAe,MACxB,QAAO,uBAAuB,IAAI,aAAa,QAAW,CAAC,IAAI;UAEtD,KAAK,YAAY,OAC1B,QAAO;EACL,MAAM,IAAI;EACV,MAAM,IAAI;;KAGZ,QAAO;;AAIX,IAAa,qBAAb,MAA8D;CAC5D,AAAU,OAAO,KAAsB;EACrC,MAAM,UAAU,IAAI;AACpB,SAAO,QAAQ,OACb,UAAU,MAAM,GAAW,UAAe;AACxC,UAAO,SAAS;;;CAKtB,MAAM,WAAW,KAAyC;AACxD,MAAI,eAAe,WACjB,QAAO,CAAC,SAAS;MAEjB,QAAO,CAAC,QAAQ,KAAK,OAAO;;CAIhC,MAAgB,OAAO,MAA4B;EACjD,MAAM,SAAS,KAAK,MAAM;AAC1B,SAAO,SAAS;;CAGlB,MAAM,WAAW,MAAc,MAAyC;AACtE,MAAI,SAAS,QACX,QAAO,OAAO,SAAS,WAAW,IAAI,cAAc,OAAO,QAAQ;WAC1D,SAAS,OAClB,QAAO,KAAK,OACV,OAAO,SAAS,WAAW,OAAO,IAAI,cAAc,OAAO;MAG7D,OAAM,IAAI,MAAM,+BAA+B"}
@@ -1,9 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RESUME = exports.INTERRUPT = exports.SCHEDULED = exports.ERROR = exports.TASKS = void 0;
4
- exports.TASKS = "__pregel_tasks";
5
- exports.ERROR = "__error__";
6
- exports.SCHEDULED = "__scheduled__";
7
- exports.INTERRUPT = "__interrupt__";
8
- exports.RESUME = "__resume__";
9
- //# sourceMappingURL=types.js.map
1
+
2
+ //#region src/serde/types.ts
3
+ const TASKS = "__pregel_tasks";
4
+ const ERROR = "__error__";
5
+ const SCHEDULED = "__scheduled__";
6
+ const INTERRUPT = "__interrupt__";
7
+ const RESUME = "__resume__";
8
+
9
+ //#endregion
10
+ exports.ERROR = ERROR;
11
+ exports.INTERRUPT = INTERRUPT;
12
+ exports.RESUME = RESUME;
13
+ exports.SCHEDULED = SCHEDULED;
14
+ exports.TASKS = TASKS;
15
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","names":[],"sources":["../../src/serde/types.ts"],"sourcesContent":["export const TASKS = \"__pregel_tasks\";\nexport const ERROR = \"__error__\";\nexport const SCHEDULED = \"__scheduled__\";\nexport const INTERRUPT = \"__interrupt__\";\nexport const RESUME = \"__resume__\";\n\n// Mirrors BaseChannel in \"@langchain/langgraph\"\nexport interface ChannelProtocol<\n ValueType = unknown,\n UpdateType = unknown,\n CheckpointType = unknown\n> {\n ValueType: ValueType;\n\n UpdateType: UpdateType;\n\n /**\n * The name of the channel.\n */\n lc_graph_name: string;\n\n /**\n * Return a new identical channel, optionally initialized from a checkpoint.\n * Can be thought of as a \"restoration\" from a checkpoint which is a \"snapshot\" of the channel's state.\n *\n * @param {CheckpointType | undefined} checkpoint\n * @returns {this}\n */\n fromCheckpoint(checkpoint?: CheckpointType): this;\n\n /**\n * Update the channel's value with the given sequence of updates.\n * The order of the updates in the sequence is arbitrary.\n *\n * @throws {InvalidUpdateError} if the sequence of updates is invalid.\n * @param {Array<UpdateType>} values\n * @returns {void}\n */\n update(values: UpdateType[]): void;\n\n /**\n * Return the current value of the channel.\n *\n * @throws {EmptyChannelError} if the channel is empty (never updated yet).\n * @returns {ValueType}\n */\n get(): ValueType;\n\n /**\n * Return a string representation of the channel's current state.\n *\n * @throws {EmptyChannelError} if the channel is empty (never updated yet), or doesn't support checkpoints.\n * @returns {CheckpointType | undefined}\n */\n checkpoint(): CheckpointType | undefined;\n}\n\n// Mirrors SendInterface in \"@langchain/langgraph\"\nexport interface SendProtocol {\n node: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any;\n}\n"],"mappings":";;AAAA,MAAa,QAAQ;AACrB,MAAa,QAAQ;AACrB,MAAa,YAAY;AACzB,MAAa,YAAY;AACzB,MAAa,SAAS"}
@@ -0,0 +1,55 @@
1
+ //#region src/serde/types.d.ts
2
+ declare const TASKS = "__pregel_tasks";
3
+ declare const ERROR = "__error__";
4
+ declare const SCHEDULED = "__scheduled__";
5
+ declare const INTERRUPT = "__interrupt__";
6
+ declare const RESUME = "__resume__";
7
+ // Mirrors BaseChannel in "@langchain/langgraph"
8
+ interface ChannelProtocol<ValueType = unknown, UpdateType = unknown, CheckpointType = unknown> {
9
+ ValueType: ValueType;
10
+ UpdateType: UpdateType;
11
+ /**
12
+ * The name of the channel.
13
+ */
14
+ lc_graph_name: string;
15
+ /**
16
+ * Return a new identical channel, optionally initialized from a checkpoint.
17
+ * Can be thought of as a "restoration" from a checkpoint which is a "snapshot" of the channel's state.
18
+ *
19
+ * @param {CheckpointType | undefined} checkpoint
20
+ * @returns {this}
21
+ */
22
+ fromCheckpoint(checkpoint?: CheckpointType): this;
23
+ /**
24
+ * Update the channel's value with the given sequence of updates.
25
+ * The order of the updates in the sequence is arbitrary.
26
+ *
27
+ * @throws {InvalidUpdateError} if the sequence of updates is invalid.
28
+ * @param {Array<UpdateType>} values
29
+ * @returns {void}
30
+ */
31
+ update(values: UpdateType[]): void;
32
+ /**
33
+ * Return the current value of the channel.
34
+ *
35
+ * @throws {EmptyChannelError} if the channel is empty (never updated yet).
36
+ * @returns {ValueType}
37
+ */
38
+ get(): ValueType;
39
+ /**
40
+ * Return a string representation of the channel's current state.
41
+ *
42
+ * @throws {EmptyChannelError} if the channel is empty (never updated yet), or doesn't support checkpoints.
43
+ * @returns {CheckpointType | undefined}
44
+ */
45
+ checkpoint(): CheckpointType | undefined;
46
+ }
47
+ // Mirrors SendInterface in "@langchain/langgraph"
48
+ interface SendProtocol {
49
+ node: string;
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ args: any;
52
+ }
53
+ //#endregion
54
+ export { ChannelProtocol, ERROR, INTERRUPT, RESUME, SCHEDULED, SendProtocol, TASKS };
55
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","names":["TASKS","ERROR","SCHEDULED","INTERRUPT","RESUME","ChannelProtocol","ValueType","UpdateType","CheckpointType","SendProtocol"],"sources":["../../src/serde/types.d.ts"],"sourcesContent":["export declare const TASKS = \"__pregel_tasks\";\nexport declare const ERROR = \"__error__\";\nexport declare const SCHEDULED = \"__scheduled__\";\nexport declare const INTERRUPT = \"__interrupt__\";\nexport declare const RESUME = \"__resume__\";\n// Mirrors BaseChannel in \"@langchain/langgraph\"\nexport interface ChannelProtocol<ValueType = unknown, UpdateType = unknown, CheckpointType = unknown> {\n ValueType: ValueType;\n UpdateType: UpdateType;\n /**\n * The name of the channel.\n */\n lc_graph_name: string;\n /**\n * Return a new identical channel, optionally initialized from a checkpoint.\n * Can be thought of as a \"restoration\" from a checkpoint which is a \"snapshot\" of the channel's state.\n *\n * @param {CheckpointType | undefined} checkpoint\n * @returns {this}\n */\n fromCheckpoint(checkpoint?: CheckpointType): this;\n /**\n * Update the channel's value with the given sequence of updates.\n * The order of the updates in the sequence is arbitrary.\n *\n * @throws {InvalidUpdateError} if the sequence of updates is invalid.\n * @param {Array<UpdateType>} values\n * @returns {void}\n */\n update(values: UpdateType[]): void;\n /**\n * Return the current value of the channel.\n *\n * @throws {EmptyChannelError} if the channel is empty (never updated yet).\n * @returns {ValueType}\n */\n get(): ValueType;\n /**\n * Return a string representation of the channel's current state.\n *\n * @throws {EmptyChannelError} if the channel is empty (never updated yet), or doesn't support checkpoints.\n * @returns {CheckpointType | undefined}\n */\n checkpoint(): CheckpointType | undefined;\n}\n// Mirrors SendInterface in \"@langchain/langgraph\"\nexport interface SendProtocol {\n node: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n args: any;\n}\n"],"mappings":";cAAqBA,KAAAA;AAAAA,cACAC,KAAAA,GADK,WAAA;AACLA,cACAC,SAAAA,GADK,eAAA;AACLA,cACAC,SAAAA,GADS,eAAA;AACTA,cACAC,MAAAA,GADS,YAAA;AAC9B;AAEiBC,UAAAA,eAAe,CAAA,YAAA,OAAA,EAAA,aAAA,OAAA,EAAA,iBAAA,OAAA,CAAA,CAAA;EAAA,SAAA,EACjBC,SADiB;YACjBA,EACCC,UADDD;;;;eA6BJA,EAAAA,MAAAA;;;AAUX;;;;;8BA1BgCE;;;;;;;;;iBASbD;;;;;;;SAORD;;;;;;;gBAOOE;;;UAGDC,YAAAA"}