@langchain/langgraph 0.2.74 → 0.3.1

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 (105) hide show
  1. package/dist/channels/any_value.cjs +3 -0
  2. package/dist/channels/any_value.d.ts +1 -0
  3. package/dist/channels/any_value.js +3 -0
  4. package/dist/channels/any_value.js.map +1 -1
  5. package/dist/channels/base.cjs +31 -2
  6. package/dist/channels/base.d.ts +17 -2
  7. package/dist/channels/base.js +31 -2
  8. package/dist/channels/base.js.map +1 -1
  9. package/dist/channels/binop.cjs +3 -0
  10. package/dist/channels/binop.d.ts +1 -0
  11. package/dist/channels/binop.js +3 -0
  12. package/dist/channels/binop.js.map +1 -1
  13. package/dist/channels/dynamic_barrier_value.cjs +119 -9
  14. package/dist/channels/dynamic_barrier_value.d.ts +29 -0
  15. package/dist/channels/dynamic_barrier_value.js +117 -8
  16. package/dist/channels/dynamic_barrier_value.js.map +1 -1
  17. package/dist/channels/ephemeral_value.cjs +3 -0
  18. package/dist/channels/ephemeral_value.d.ts +1 -0
  19. package/dist/channels/ephemeral_value.js +3 -0
  20. package/dist/channels/ephemeral_value.js.map +1 -1
  21. package/dist/channels/last_value.cjs +82 -4
  22. package/dist/channels/last_value.d.ts +21 -0
  23. package/dist/channels/last_value.js +80 -3
  24. package/dist/channels/last_value.js.map +1 -1
  25. package/dist/channels/named_barrier_value.cjs +94 -1
  26. package/dist/channels/named_barrier_value.d.ts +23 -0
  27. package/dist/channels/named_barrier_value.js +92 -0
  28. package/dist/channels/named_barrier_value.js.map +1 -1
  29. package/dist/channels/topic.cjs +3 -0
  30. package/dist/channels/topic.d.ts +1 -0
  31. package/dist/channels/topic.js +3 -0
  32. package/dist/channels/topic.js.map +1 -1
  33. package/dist/constants.cjs +29 -8
  34. package/dist/constants.d.ts +47 -26
  35. package/dist/constants.js +27 -7
  36. package/dist/constants.js.map +1 -1
  37. package/dist/func/index.cjs +17 -4
  38. package/dist/func/index.d.ts +14 -5
  39. package/dist/func/index.js +17 -4
  40. package/dist/func/index.js.map +1 -1
  41. package/dist/func/types.d.ts +1 -1
  42. package/dist/graph/graph.d.ts +4 -2
  43. package/dist/graph/graph.js.map +1 -1
  44. package/dist/graph/index.cjs +2 -1
  45. package/dist/graph/index.d.ts +1 -1
  46. package/dist/graph/index.js +1 -1
  47. package/dist/graph/index.js.map +1 -1
  48. package/dist/graph/messages_annotation.cjs +3 -0
  49. package/dist/graph/messages_annotation.js +3 -0
  50. package/dist/graph/messages_annotation.js.map +1 -1
  51. package/dist/graph/state.cjs +67 -22
  52. package/dist/graph/state.d.ts +22 -8
  53. package/dist/graph/state.js +68 -24
  54. package/dist/graph/state.js.map +1 -1
  55. package/dist/graph/zod/schema.cjs +12 -61
  56. package/dist/graph/zod/schema.js +12 -61
  57. package/dist/graph/zod/schema.js.map +1 -1
  58. package/dist/graph/zod/state.cjs +63 -0
  59. package/dist/graph/zod/state.d.ts +10 -1
  60. package/dist/graph/zod/state.js +61 -0
  61. package/dist/graph/zod/state.js.map +1 -1
  62. package/dist/prebuilt/react_agent_executor.cjs +99 -45
  63. package/dist/prebuilt/react_agent_executor.d.ts +20 -4
  64. package/dist/prebuilt/react_agent_executor.js +99 -45
  65. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  66. package/dist/pregel/algo.cjs +60 -20
  67. package/dist/pregel/algo.d.ts +1 -1
  68. package/dist/pregel/algo.js +61 -21
  69. package/dist/pregel/algo.js.map +1 -1
  70. package/dist/pregel/call.cjs +2 -1
  71. package/dist/pregel/call.d.ts +3 -2
  72. package/dist/pregel/call.js +2 -1
  73. package/dist/pregel/call.js.map +1 -1
  74. package/dist/pregel/debug.test.cjs +6 -0
  75. package/dist/pregel/debug.test.js +6 -0
  76. package/dist/pregel/debug.test.js.map +1 -1
  77. package/dist/pregel/index.cjs +99 -29
  78. package/dist/pregel/index.d.ts +19 -6
  79. package/dist/pregel/index.js +100 -30
  80. package/dist/pregel/index.js.map +1 -1
  81. package/dist/pregel/loop.cjs +126 -26
  82. package/dist/pregel/loop.d.ts +29 -2
  83. package/dist/pregel/loop.js +127 -27
  84. package/dist/pregel/loop.js.map +1 -1
  85. package/dist/pregel/read.cjs +12 -1
  86. package/dist/pregel/read.d.ts +3 -1
  87. package/dist/pregel/read.js +12 -1
  88. package/dist/pregel/read.js.map +1 -1
  89. package/dist/pregel/retry.cjs +2 -6
  90. package/dist/pregel/retry.js +2 -6
  91. package/dist/pregel/retry.js.map +1 -1
  92. package/dist/pregel/runner.cjs +1 -0
  93. package/dist/pregel/runner.js +1 -0
  94. package/dist/pregel/runner.js.map +1 -1
  95. package/dist/pregel/types.cjs +8 -1
  96. package/dist/pregel/types.d.ts +64 -8
  97. package/dist/pregel/types.js +8 -1
  98. package/dist/pregel/types.js.map +1 -1
  99. package/dist/pregel/utils/index.d.ts +15 -0
  100. package/dist/pregel/utils/index.js.map +1 -1
  101. package/dist/web.cjs +4 -1
  102. package/dist/web.d.ts +3 -3
  103. package/dist/web.js +2 -2
  104. package/dist/web.js.map +1 -1
  105. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LastValue = void 0;
3
+ exports.LastValueAfterFinish = exports.LastValue = void 0;
4
4
  const errors_js_1 = require("../errors.cjs");
5
5
  const base_js_1 = require("./base.cjs");
6
6
  /**
@@ -40,9 +40,7 @@ class LastValue extends base_js_1.BaseChannel {
40
40
  return false;
41
41
  }
42
42
  if (values.length !== 1) {
43
- throw new errors_js_1.InvalidUpdateError("LastValue can only receive one value per step.", {
44
- lc_error_code: "INVALID_CONCURRENT_GRAPH_UPDATE",
45
- });
43
+ throw new errors_js_1.InvalidUpdateError("LastValue can only receive one value per step.", { lc_error_code: "INVALID_CONCURRENT_GRAPH_UPDATE" });
46
44
  }
47
45
  // eslint-disable-next-line prefer-destructuring
48
46
  this.value = [values[values.length - 1]];
@@ -60,6 +58,86 @@ class LastValue extends base_js_1.BaseChannel {
60
58
  }
61
59
  return this.value[0];
62
60
  }
61
+ isAvailable() {
62
+ return this.value.length !== 0;
63
+ }
63
64
  }
64
65
  exports.LastValue = LastValue;
66
+ /**
67
+ * Stores the last value received, but only made available after finish().
68
+ * Once made available, clears the value.
69
+ * @internal
70
+ */
71
+ class LastValueAfterFinish extends base_js_1.BaseChannel {
72
+ constructor() {
73
+ super(...arguments);
74
+ Object.defineProperty(this, "lc_graph_name", {
75
+ enumerable: true,
76
+ configurable: true,
77
+ writable: true,
78
+ value: "LastValueAfterFinish"
79
+ });
80
+ // value is an array so we don't misinterpret an update to undefined as no write
81
+ Object.defineProperty(this, "value", {
82
+ enumerable: true,
83
+ configurable: true,
84
+ writable: true,
85
+ value: []
86
+ });
87
+ Object.defineProperty(this, "finished", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: false
92
+ });
93
+ }
94
+ fromCheckpoint(checkpoint) {
95
+ const empty = new LastValueAfterFinish();
96
+ if (typeof checkpoint !== "undefined") {
97
+ const [value, finished] = checkpoint;
98
+ empty.value = [value];
99
+ empty.finished = finished;
100
+ }
101
+ return empty;
102
+ }
103
+ update(values) {
104
+ if (values.length === 0) {
105
+ return false;
106
+ }
107
+ this.finished = false;
108
+ // eslint-disable-next-line prefer-destructuring
109
+ this.value = [values[values.length - 1]];
110
+ return true;
111
+ }
112
+ get() {
113
+ if (this.value.length === 0 || !this.finished) {
114
+ throw new errors_js_1.EmptyChannelError();
115
+ }
116
+ return this.value[0];
117
+ }
118
+ checkpoint() {
119
+ if (this.value.length === 0)
120
+ return undefined;
121
+ return [this.value[0], this.finished];
122
+ }
123
+ consume() {
124
+ if (this.finished) {
125
+ this.finished = false;
126
+ this.value = [];
127
+ return true;
128
+ }
129
+ return false;
130
+ }
131
+ finish() {
132
+ if (!this.finished && this.value.length > 0) {
133
+ this.finished = true;
134
+ return true;
135
+ }
136
+ return false;
137
+ }
138
+ isAvailable() {
139
+ return this.value.length !== 0 && this.finished;
140
+ }
141
+ }
142
+ exports.LastValueAfterFinish = LastValueAfterFinish;
65
143
  //# sourceMappingURL=last_value.js.map
@@ -14,4 +14,25 @@ export declare class LastValue<Value> extends BaseChannel<Value, Value, Value> {
14
14
  update(values: Value[]): boolean;
15
15
  get(): Value;
16
16
  checkpoint(): Value;
17
+ isAvailable(): boolean;
18
+ }
19
+ /**
20
+ * Stores the last value received, but only made available after finish().
21
+ * Once made available, clears the value.
22
+ * @internal
23
+ */
24
+ export declare class LastValueAfterFinish<Value> extends BaseChannel<Value, Value, [
25
+ Value,
26
+ boolean
27
+ ]> {
28
+ lc_graph_name: string;
29
+ value: [Value] | [];
30
+ finished: boolean;
31
+ fromCheckpoint(checkpoint?: [Value, boolean]): this;
32
+ update(values: Value[]): boolean;
33
+ get(): Value;
34
+ checkpoint(): [Value, boolean] | undefined;
35
+ consume(): boolean;
36
+ finish(): boolean;
37
+ isAvailable(): boolean;
17
38
  }
@@ -37,9 +37,7 @@ export class LastValue extends BaseChannel {
37
37
  return false;
38
38
  }
39
39
  if (values.length !== 1) {
40
- throw new InvalidUpdateError("LastValue can only receive one value per step.", {
41
- lc_error_code: "INVALID_CONCURRENT_GRAPH_UPDATE",
42
- });
40
+ throw new InvalidUpdateError("LastValue can only receive one value per step.", { lc_error_code: "INVALID_CONCURRENT_GRAPH_UPDATE" });
43
41
  }
44
42
  // eslint-disable-next-line prefer-destructuring
45
43
  this.value = [values[values.length - 1]];
@@ -57,5 +55,84 @@ export class LastValue extends BaseChannel {
57
55
  }
58
56
  return this.value[0];
59
57
  }
58
+ isAvailable() {
59
+ return this.value.length !== 0;
60
+ }
61
+ }
62
+ /**
63
+ * Stores the last value received, but only made available after finish().
64
+ * Once made available, clears the value.
65
+ * @internal
66
+ */
67
+ export class LastValueAfterFinish extends BaseChannel {
68
+ constructor() {
69
+ super(...arguments);
70
+ Object.defineProperty(this, "lc_graph_name", {
71
+ enumerable: true,
72
+ configurable: true,
73
+ writable: true,
74
+ value: "LastValueAfterFinish"
75
+ });
76
+ // value is an array so we don't misinterpret an update to undefined as no write
77
+ Object.defineProperty(this, "value", {
78
+ enumerable: true,
79
+ configurable: true,
80
+ writable: true,
81
+ value: []
82
+ });
83
+ Object.defineProperty(this, "finished", {
84
+ enumerable: true,
85
+ configurable: true,
86
+ writable: true,
87
+ value: false
88
+ });
89
+ }
90
+ fromCheckpoint(checkpoint) {
91
+ const empty = new LastValueAfterFinish();
92
+ if (typeof checkpoint !== "undefined") {
93
+ const [value, finished] = checkpoint;
94
+ empty.value = [value];
95
+ empty.finished = finished;
96
+ }
97
+ return empty;
98
+ }
99
+ update(values) {
100
+ if (values.length === 0) {
101
+ return false;
102
+ }
103
+ this.finished = false;
104
+ // eslint-disable-next-line prefer-destructuring
105
+ this.value = [values[values.length - 1]];
106
+ return true;
107
+ }
108
+ get() {
109
+ if (this.value.length === 0 || !this.finished) {
110
+ throw new EmptyChannelError();
111
+ }
112
+ return this.value[0];
113
+ }
114
+ checkpoint() {
115
+ if (this.value.length === 0)
116
+ return undefined;
117
+ return [this.value[0], this.finished];
118
+ }
119
+ consume() {
120
+ if (this.finished) {
121
+ this.finished = false;
122
+ this.value = [];
123
+ return true;
124
+ }
125
+ return false;
126
+ }
127
+ finish() {
128
+ if (!this.finished && this.value.length > 0) {
129
+ this.finished = true;
130
+ return true;
131
+ }
132
+ return false;
133
+ }
134
+ isAvailable() {
135
+ return this.value.length !== 0 && this.finished;
136
+ }
60
137
  }
61
138
  //# sourceMappingURL=last_value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"last_value.js","sourceRoot":"","sources":["../../src/channels/last_value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,OAAO,SAAiB,SAAQ,WAAgC;IAAtE;;QACE;;;;mBAAgB,WAAW;WAAC;QAE5B,gFAAgF;QAChF;;;;mBAAsB,EAAE;WAAC;IA0C3B,CAAC;IAxCC,cAAc,CAAC,UAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,SAAS,EAAS,CAAC;QACrC,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,KAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,kBAAkB,CAC1B,gDAAgD,EAChD;gBACE,aAAa,EAAE,iCAAiC;aACjD,CACF,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"last_value.js","sourceRoot":"","sources":["../../src/channels/last_value.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NamedBarrierValue = exports.areSetsEqual = void 0;
3
+ exports.NamedBarrierValueAfterFinish = exports.NamedBarrierValue = exports.areSetsEqual = void 0;
4
4
  const errors_js_1 = require("../errors.cjs");
5
5
  const base_js_1 = require("./base.cjs");
6
6
  const areSetsEqual = (a, b) => a.size === b.size && [...a].every((value) => b.has(value));
@@ -76,6 +76,99 @@ class NamedBarrierValue extends base_js_1.BaseChannel {
76
76
  }
77
77
  return false;
78
78
  }
79
+ isAvailable() {
80
+ return !!this.names && (0, exports.areSetsEqual)(this.names, this.seen);
81
+ }
79
82
  }
80
83
  exports.NamedBarrierValue = NamedBarrierValue;
84
+ /**
85
+ * A channel that waits until all named values are received before making the value ready to be made available.
86
+ * It is only made available after finish() is called.
87
+ * @internal
88
+ */
89
+ class NamedBarrierValueAfterFinish extends base_js_1.BaseChannel {
90
+ constructor(names) {
91
+ super();
92
+ Object.defineProperty(this, "lc_graph_name", {
93
+ enumerable: true,
94
+ configurable: true,
95
+ writable: true,
96
+ value: "NamedBarrierValueAfterFinish"
97
+ });
98
+ Object.defineProperty(this, "names", {
99
+ enumerable: true,
100
+ configurable: true,
101
+ writable: true,
102
+ value: void 0
103
+ }); // Names of nodes that we want to wait for.
104
+ Object.defineProperty(this, "seen", {
105
+ enumerable: true,
106
+ configurable: true,
107
+ writable: true,
108
+ value: void 0
109
+ });
110
+ Object.defineProperty(this, "finished", {
111
+ enumerable: true,
112
+ configurable: true,
113
+ writable: true,
114
+ value: void 0
115
+ });
116
+ this.names = names;
117
+ this.seen = new Set();
118
+ this.finished = false;
119
+ }
120
+ fromCheckpoint(checkpoint) {
121
+ const empty = new NamedBarrierValueAfterFinish(this.names);
122
+ if (typeof checkpoint !== "undefined") {
123
+ const [seen, finished] = checkpoint;
124
+ empty.seen = new Set(seen);
125
+ empty.finished = finished;
126
+ }
127
+ return empty;
128
+ }
129
+ update(values) {
130
+ let updated = false;
131
+ for (const nodeName of values) {
132
+ if (this.names.has(nodeName) && !this.seen.has(nodeName)) {
133
+ this.seen.add(nodeName);
134
+ updated = true;
135
+ }
136
+ else if (!this.names.has(nodeName)) {
137
+ throw new errors_js_1.InvalidUpdateError(`Value ${JSON.stringify(nodeName)} not in names ${JSON.stringify(this.names)}`);
138
+ }
139
+ }
140
+ return updated;
141
+ }
142
+ get() {
143
+ if (!this.finished || !(0, exports.areSetsEqual)(this.names, this.seen)) {
144
+ throw new errors_js_1.EmptyChannelError();
145
+ }
146
+ return undefined;
147
+ }
148
+ checkpoint() {
149
+ return [[...this.seen], this.finished];
150
+ }
151
+ consume() {
152
+ if (this.finished &&
153
+ this.seen &&
154
+ this.names &&
155
+ (0, exports.areSetsEqual)(this.seen, this.names)) {
156
+ this.seen = new Set();
157
+ this.finished = false;
158
+ return true;
159
+ }
160
+ return false;
161
+ }
162
+ finish() {
163
+ if (!this.finished && !!this.names && (0, exports.areSetsEqual)(this.names, this.seen)) {
164
+ this.finished = true;
165
+ return true;
166
+ }
167
+ return false;
168
+ }
169
+ isAvailable() {
170
+ return this.finished && !!this.names && (0, exports.areSetsEqual)(this.names, this.seen);
171
+ }
172
+ }
173
+ exports.NamedBarrierValueAfterFinish = NamedBarrierValueAfterFinish;
81
174
  //# sourceMappingURL=named_barrier_value.js.map
@@ -17,4 +17,27 @@ export declare class NamedBarrierValue<Value> extends BaseChannel<void, Value, V
17
17
  get(): void;
18
18
  checkpoint(): Value[];
19
19
  consume(): boolean;
20
+ isAvailable(): boolean;
21
+ }
22
+ /**
23
+ * A channel that waits until all named values are received before making the value ready to be made available.
24
+ * It is only made available after finish() is called.
25
+ * @internal
26
+ */
27
+ export declare class NamedBarrierValueAfterFinish<Value> extends BaseChannel<void, Value, [
28
+ Value[],
29
+ boolean
30
+ ]> {
31
+ lc_graph_name: string;
32
+ names: Set<Value>;
33
+ seen: Set<Value>;
34
+ finished: boolean;
35
+ constructor(names: Set<Value>);
36
+ fromCheckpoint(checkpoint?: [Value[], boolean]): this;
37
+ update(values: Value[]): boolean;
38
+ get(): void;
39
+ checkpoint(): [Value[], boolean];
40
+ consume(): boolean;
41
+ finish(): boolean;
42
+ isAvailable(): boolean;
20
43
  }
@@ -72,5 +72,97 @@ export class NamedBarrierValue extends BaseChannel {
72
72
  }
73
73
  return false;
74
74
  }
75
+ isAvailable() {
76
+ return !!this.names && areSetsEqual(this.names, this.seen);
77
+ }
78
+ }
79
+ /**
80
+ * A channel that waits until all named values are received before making the value ready to be made available.
81
+ * It is only made available after finish() is called.
82
+ * @internal
83
+ */
84
+ export class NamedBarrierValueAfterFinish extends BaseChannel {
85
+ constructor(names) {
86
+ super();
87
+ Object.defineProperty(this, "lc_graph_name", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: "NamedBarrierValueAfterFinish"
92
+ });
93
+ Object.defineProperty(this, "names", {
94
+ enumerable: true,
95
+ configurable: true,
96
+ writable: true,
97
+ value: void 0
98
+ }); // Names of nodes that we want to wait for.
99
+ Object.defineProperty(this, "seen", {
100
+ enumerable: true,
101
+ configurable: true,
102
+ writable: true,
103
+ value: void 0
104
+ });
105
+ Object.defineProperty(this, "finished", {
106
+ enumerable: true,
107
+ configurable: true,
108
+ writable: true,
109
+ value: void 0
110
+ });
111
+ this.names = names;
112
+ this.seen = new Set();
113
+ this.finished = false;
114
+ }
115
+ fromCheckpoint(checkpoint) {
116
+ const empty = new NamedBarrierValueAfterFinish(this.names);
117
+ if (typeof checkpoint !== "undefined") {
118
+ const [seen, finished] = checkpoint;
119
+ empty.seen = new Set(seen);
120
+ empty.finished = finished;
121
+ }
122
+ return empty;
123
+ }
124
+ update(values) {
125
+ let updated = false;
126
+ for (const nodeName of values) {
127
+ if (this.names.has(nodeName) && !this.seen.has(nodeName)) {
128
+ this.seen.add(nodeName);
129
+ updated = true;
130
+ }
131
+ else if (!this.names.has(nodeName)) {
132
+ throw new InvalidUpdateError(`Value ${JSON.stringify(nodeName)} not in names ${JSON.stringify(this.names)}`);
133
+ }
134
+ }
135
+ return updated;
136
+ }
137
+ get() {
138
+ if (!this.finished || !areSetsEqual(this.names, this.seen)) {
139
+ throw new EmptyChannelError();
140
+ }
141
+ return undefined;
142
+ }
143
+ checkpoint() {
144
+ return [[...this.seen], this.finished];
145
+ }
146
+ consume() {
147
+ if (this.finished &&
148
+ this.seen &&
149
+ this.names &&
150
+ areSetsEqual(this.seen, this.names)) {
151
+ this.seen = new Set();
152
+ this.finished = false;
153
+ return true;
154
+ }
155
+ return false;
156
+ }
157
+ finish() {
158
+ if (!this.finished && !!this.names && areSetsEqual(this.names, this.seen)) {
159
+ this.finished = true;
160
+ return true;
161
+ }
162
+ return false;
163
+ }
164
+ isAvailable() {
165
+ return this.finished && !!this.names && areSetsEqual(this.names, this.seen);
166
+ }
75
167
  }
76
168
  //# sourceMappingURL=named_barrier_value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"named_barrier_value.js","sourceRoot":"","sources":["../../src/channels/named_barrier_value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,CAAS,EAAE,CAAS,EAAE,EAAE,CACtD,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,OAAO,iBAAyB,SAAQ,WAI7C;IAOC,YAAY,KAAiB;QAC3B,KAAK,EAAE,CAAC;QAPV;;;;mBAAgB,mBAAmB;WAAC;QAEpC;;;;;WAAkB,CAAC,2CAA2C;QAE9D;;;;;WAAiB;QAIf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAS,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,UAAoB;QACjC,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAQ,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACxB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,kBAAkB,CAC1B,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAC9D,IAAI,CAAC,KAAK,CACX,EAAE,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kEAAkE;IAClE,wCAAwC;IACxC,GAAG;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAS,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"named_barrier_value.js","sourceRoot":"","sources":["../../src/channels/named_barrier_value.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,9 @@ class Topic extends base_js_1.BaseChannel {
90
90
  checkpoint() {
91
91
  return [[...this.seen], this.values];
92
92
  }
93
+ isAvailable() {
94
+ return this.values.length !== 0;
95
+ }
93
96
  }
94
97
  exports.Topic = Topic;
95
98
  //# sourceMappingURL=topic.js.map
@@ -19,4 +19,5 @@ export declare class Topic<Value> extends BaseChannel<Array<Value>, Value | Valu
19
19
  update(values: Array<Value | Value[]>): boolean;
20
20
  get(): Array<Value>;
21
21
  checkpoint(): [Value[], Value[]];
22
+ isAvailable(): boolean;
22
23
  }
@@ -87,5 +87,8 @@ export class Topic extends BaseChannel {
87
87
  checkpoint() {
88
88
  return [[...this.seen], this.values];
89
89
  }
90
+ isAvailable() {
91
+ return this.values.length !== 0;
92
+ }
90
93
  }
91
94
  //# sourceMappingURL=topic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"topic.js","sourceRoot":"","sources":["../../src/channels/topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,SAAS,WAAW,CAAI,CAAM,EAAE,CAAM;IACpC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,KAAa,SAAQ,WAIjC;IAWC,YAAY,MAAmD;QAC7D,KAAK,EAAE,CAAC;QAXV;;;;mBAAgB,OAAO;WAAC;QAExB;;;;mBAAS,KAAK;WAAC;QAEf;;;;mBAAa,KAAK;WAAC;QAEnB;;;;;WAAiB;QAEjB;;;;;WAAgB;QAKd,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QACxD,QAAQ;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAS,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAEM,cAAc,CAAC,UAA+B;QACnD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAQ;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,gDAAgD;YAChD,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAA8B;QAC1C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAa,CAAC;QAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEM,GAAG;QACR,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEM,UAAU;QACf,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"topic.js","sourceRoot":"","sources":["../../src/channels/topic.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Command = exports.Send = exports.CHECKPOINT_NAMESPACE_END = exports.CHECKPOINT_NAMESPACE_SEPARATOR = exports.RESERVED = exports.NULL_TASK_ID = exports.TASK_NAMESPACE = exports.PULL = exports.PUSH = exports.TASKS = exports.SELF = exports.TAG_NOSTREAM = exports.TAG_HIDDEN = exports.RECURSION_LIMIT_DEFAULT = exports.RUNTIME_PLACEHOLDER = exports.PREVIOUS = exports.RETURN = exports.NO_WRITES = exports.RESUME = exports.INTERRUPT = exports.CONFIG_KEY_ABORT_SIGNALS = exports.CONFIG_KEY_CHECKPOINT_MAP = exports.CONFIG_KEY_NODE_FINISHED = exports.CONFIG_KEY_CHECKPOINT_NS = exports.CONFIG_KEY_CHECKPOINT_ID = exports.CONFIG_KEY_PREVIOUS_STATE = exports.CONFIG_KEY_SCRATCHPAD = exports.CONFIG_KEY_RESUME_VALUE = exports.CONFIG_KEY_STREAM = exports.CONFIG_KEY_TASK_ID = exports.CONFIG_KEY_RESUMING = exports.CONFIG_KEY_CHECKPOINTER = exports.CONFIG_KEY_READ = exports.CONFIG_KEY_CALL = exports.CONFIG_KEY_SEND = exports.ERROR = exports.COPY = exports.INPUT = exports.END = exports.START = void 0;
3
+ exports.Command = exports.Send = exports.CHECKPOINT_NAMESPACE_END = exports.CHECKPOINT_NAMESPACE_SEPARATOR = exports.RESERVED = exports.NULL_TASK_ID = exports.TASK_NAMESPACE = exports.PULL = exports.PUSH = exports.TASKS = exports.SELF = exports.TAG_NOSTREAM = exports.TAG_HIDDEN = exports.RECURSION_LIMIT_DEFAULT = exports.RUNTIME_PLACEHOLDER = exports.PREVIOUS = exports.RETURN = exports.NO_WRITES = exports.RESUME = exports.INTERRUPT = exports.CONFIG_KEY_ABORT_SIGNALS = exports.CONFIG_KEY_CHECKPOINT_MAP = exports.CONFIG_KEY_NODE_FINISHED = exports.CONFIG_KEY_CHECKPOINT_NS = exports.CONFIG_KEY_CHECKPOINT_ID = exports.CONFIG_KEY_PREVIOUS_STATE = exports.CONFIG_KEY_SCRATCHPAD = exports.CONFIG_KEY_RESUME_VALUE = exports.CONFIG_KEY_STREAM = exports.CONFIG_KEY_TASK_ID = exports.CONFIG_KEY_RESUMING = exports.CONFIG_KEY_CHECKPOINTER = exports.CONFIG_KEY_READ = exports.CONFIG_KEY_CALL = exports.CONFIG_KEY_SEND = exports.CACHE_NS_WRITES = exports.ERROR = exports.COPY = exports.INPUT = exports.END = exports.START = void 0;
4
4
  exports._isSendInterface = _isSendInterface;
5
5
  exports._isSend = _isSend;
6
+ exports.isInterrupted = isInterrupted;
6
7
  exports.isCommand = isCommand;
7
8
  exports._deserializeCommandSendObjectGraph = _deserializeCommandSendObjectGraph;
8
9
  /** Special reserved node name denoting the start of a graph. */
@@ -12,6 +13,8 @@ exports.END = "__end__";
12
13
  exports.INPUT = "__input__";
13
14
  exports.COPY = "__copy__";
14
15
  exports.ERROR = "__error__";
16
+ /** Special reserved cache namespaces */
17
+ exports.CACHE_NS_WRITES = "__pregel_ns_writes";
15
18
  exports.CONFIG_KEY_SEND = "__pregel_send";
16
19
  /** config key containing function used to call a node (push task) */
17
20
  exports.CONFIG_KEY_CALL = "__pregel_call";
@@ -128,8 +131,8 @@ function _isSendInterface(x) {
128
131
  * // { subjects: ["cats", "dogs"], jokes: [`Joke about cats`, `Joke about dogs`] }
129
132
  * ```
130
133
  */
134
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
131
135
  class Send {
132
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
133
136
  constructor(node, args) {
134
137
  Object.defineProperty(this, "lg_name", {
135
138
  enumerable: true,
@@ -143,7 +146,6 @@ class Send {
143
146
  writable: true,
144
147
  value: void 0
145
148
  });
146
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
147
149
  Object.defineProperty(this, "args", {
148
150
  enumerable: true,
149
151
  configurable: true,
@@ -154,11 +156,7 @@ class Send {
154
156
  this.args = _deserializeCommandSendObjectGraph(args);
155
157
  }
156
158
  toJSON() {
157
- return {
158
- lg_name: this.lg_name,
159
- node: this.node,
160
- args: this.args,
161
- };
159
+ return { lg_name: this.lg_name, node: this.node, args: this.args };
162
160
  }
163
161
  }
164
162
  exports.Send = Send;
@@ -166,6 +164,29 @@ function _isSend(x) {
166
164
  // eslint-disable-next-line no-instanceof/no-instanceof
167
165
  return x instanceof Send;
168
166
  }
167
+ /**
168
+ * Checks if the given graph invoke / stream chunk contains interrupt.
169
+ *
170
+ * @example
171
+ * ```ts
172
+ * import { INTERRUPT, isInterrupted } from "@langchain/langgraph";
173
+ *
174
+ * const values = await graph.invoke({ foo: "bar" });
175
+ * if (isInterrupted<string>(values)) {
176
+ * const interrupt = values[INTERRUPT][0].value;
177
+ * }
178
+ * ```
179
+ *
180
+ * @param values - The values to check.
181
+ * @returns `true` if the values contain an interrupt, `false` otherwise.
182
+ */
183
+ function isInterrupted(values) {
184
+ if (!values || typeof values !== "object")
185
+ return false;
186
+ if (!(exports.INTERRUPT in values))
187
+ return false;
188
+ return Array.isArray(values[exports.INTERRUPT]);
189
+ }
169
190
  /**
170
191
  * One or more commands to update the graph's state and send messages to nodes.
171
192
  * Can be used to combine routing logic with state updates in lieu of conditional edges