@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
@@ -57,6 +57,9 @@ class AnyValue extends base_js_1.BaseChannel {
57
57
  }
58
58
  return this.value[0];
59
59
  }
60
+ isAvailable() {
61
+ return this.value.length !== 0;
62
+ }
60
63
  }
61
64
  exports.AnyValue = AnyValue;
62
65
  //# sourceMappingURL=any_value.js.map
@@ -15,4 +15,5 @@ export declare class AnyValue<Value> extends BaseChannel<Value, Value, Value> {
15
15
  update(values: Value[]): boolean;
16
16
  get(): Value;
17
17
  checkpoint(): Value;
18
+ isAvailable(): boolean;
18
19
  }
@@ -54,5 +54,8 @@ export class AnyValue extends BaseChannel {
54
54
  }
55
55
  return this.value[0];
56
56
  }
57
+ isAvailable() {
58
+ return this.value.length !== 0;
59
+ }
57
60
  }
58
61
  //# sourceMappingURL=any_value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"any_value.js","sourceRoot":"","sources":["../../src/channels/any_value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,OAAO,QAAgB,SAAQ,WAAgC;IAMnE;QACE,KAAK,EAAE,CAAC;QANV;;;;mBAAgB,UAAU;WAAC;QAE3B,gFAAgF;QAChF;;;;mBAAsB,EAAE;WAAC;IAIzB,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAS,CAAC;QACpC,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,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":"any_value.js","sourceRoot":"","sources":["../../src/channels/any_value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,OAAO,QAAgB,SAAQ,WAAgC;IAMnE;QACE,KAAK,EAAE,CAAC;QANV;;;;mBAAgB,UAAU;WAAC;QAE3B,gFAAgF;QAChF;;;;mBAAsB,EAAE;WAAC;IAIzB,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAS,CAAC;QACpC,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,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;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -33,12 +33,41 @@ class BaseChannel {
33
33
  }
34
34
  /**
35
35
  * Mark the current value of the channel as consumed. By default, no-op.
36
- * This is called by Pregel before the start of the next step, for all
37
- * channels that triggered a node. If the channel was updated, return true.
36
+ * A channel can use this method to modify its state, preventing the value
37
+ * from being consumed again.
38
+ *
39
+ * Returns True if the channel was updated, False otherwise.
38
40
  */
39
41
  consume() {
40
42
  return false;
41
43
  }
44
+ /**
45
+ * Notify the channel that the Pregel run is finishing. By default, no-op.
46
+ * A channel can use this method to modify its state, preventing finish.
47
+ *
48
+ * Returns True if the channel was updated, False otherwise.
49
+ */
50
+ finish() {
51
+ return false;
52
+ }
53
+ /**
54
+ * Return True if the channel is available (not empty), False otherwise.
55
+ * Subclasses should override this method to provide a more efficient
56
+ * implementation than calling get() and catching EmptyChannelError.
57
+ */
58
+ isAvailable() {
59
+ try {
60
+ this.get();
61
+ return true;
62
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
+ }
64
+ catch (error) {
65
+ if (error.name === errors_js_1.EmptyChannelError.unminifiable_name) {
66
+ return false;
67
+ }
68
+ throw error;
69
+ }
70
+ }
42
71
  }
43
72
  exports.BaseChannel = BaseChannel;
44
73
  function emptyChannels(channels, checkpoint) {
@@ -48,10 +48,25 @@ export declare abstract class BaseChannel<ValueType = unknown, UpdateType = unkn
48
48
  abstract checkpoint(): CheckpointType | undefined;
49
49
  /**
50
50
  * Mark the current value of the channel as consumed. By default, no-op.
51
- * This is called by Pregel before the start of the next step, for all
52
- * channels that triggered a node. If the channel was updated, return true.
51
+ * A channel can use this method to modify its state, preventing the value
52
+ * from being consumed again.
53
+ *
54
+ * Returns True if the channel was updated, False otherwise.
53
55
  */
54
56
  consume(): boolean;
57
+ /**
58
+ * Notify the channel that the Pregel run is finishing. By default, no-op.
59
+ * A channel can use this method to modify its state, preventing finish.
60
+ *
61
+ * Returns True if the channel was updated, False otherwise.
62
+ */
63
+ finish(): boolean;
64
+ /**
65
+ * Return True if the channel is available (not empty), False otherwise.
66
+ * Subclasses should override this method to provide a more efficient
67
+ * implementation than calling get() and catching EmptyChannelError.
68
+ */
69
+ isAvailable(): boolean;
55
70
  }
56
71
  export declare function emptyChannels<Cc extends Record<string, BaseChannel>>(channels: Cc, checkpoint: ReadonlyCheckpoint): Cc;
57
72
  export declare function createCheckpoint<ValueType>(checkpoint: ReadonlyCheckpoint, channels: Record<string, BaseChannel<ValueType>> | undefined, step: number): Checkpoint;
@@ -27,12 +27,41 @@ export class BaseChannel {
27
27
  }
28
28
  /**
29
29
  * Mark the current value of the channel as consumed. By default, no-op.
30
- * This is called by Pregel before the start of the next step, for all
31
- * channels that triggered a node. If the channel was updated, return true.
30
+ * A channel can use this method to modify its state, preventing the value
31
+ * from being consumed again.
32
+ *
33
+ * Returns True if the channel was updated, False otherwise.
32
34
  */
33
35
  consume() {
34
36
  return false;
35
37
  }
38
+ /**
39
+ * Notify the channel that the Pregel run is finishing. By default, no-op.
40
+ * A channel can use this method to modify its state, preventing finish.
41
+ *
42
+ * Returns True if the channel was updated, False otherwise.
43
+ */
44
+ finish() {
45
+ return false;
46
+ }
47
+ /**
48
+ * Return True if the channel is available (not empty), False otherwise.
49
+ * Subclasses should override this method to provide a more efficient
50
+ * implementation than calling get() and catching EmptyChannelError.
51
+ */
52
+ isAvailable() {
53
+ try {
54
+ this.get();
55
+ return true;
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ }
58
+ catch (error) {
59
+ if (error.name === EmptyChannelError.unminifiable_name) {
60
+ return false;
61
+ }
62
+ throw error;
63
+ }
64
+ }
36
65
  }
37
66
  export function emptyChannels(channels, checkpoint) {
38
67
  const filteredChannels = Object.fromEntries(Object.entries(channels).filter(([, value]) => isBaseChannel(value)));
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/channels/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,KAAK,GAEN,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,GAAG,IAAI,IAAI,IAAK,GAAmB,CAAC,aAAa,KAAK,IAAI,CAAC;AACpE,CAAC;AAED,MAAM,OAAgB,WAAW;IAAjC;QAKE;;;;;WAAqB;QAErB;;;;;WAAuB;QAOvB,cAAc;QACd;;;;mBAAgB,IAAI;WAAC;IAmDvB,CAAC;IARC;;;;OAIG;IACH,OAAO;QACL,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAC3B,QAAY,EACZ,UAA8B;IAE9B,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CACzC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC;IAER,MAAM,WAAW,GAAG,EAAQ,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAClD,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAA8B,EAC9B,QAA4D,EAC5D,IAAY;IAEZ,8DAA8D;IAC9D,IAAI,MAA2B,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;gBACrC,8DAA8D;YAChE,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;oBACvD,QAAQ;gBACV,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC,CAAC,4BAA4B;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;QACf,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,cAAc,EAAE,MAAM;QACtB,gBAAgB,EAAE,EAAE,GAAG,UAAU,CAAC,gBAAgB,EAAE;QACpD,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;QACjD,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,EAAE;KAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/channels/base.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,9 @@ class BinaryOperatorAggregate extends base_js_1.BaseChannel {
71
71
  }
72
72
  return this.value;
73
73
  }
74
+ isAvailable() {
75
+ return this.value !== undefined;
76
+ }
74
77
  }
75
78
  exports.BinaryOperatorAggregate = BinaryOperatorAggregate;
76
79
  //# sourceMappingURL=binop.js.map
@@ -13,4 +13,5 @@ export declare class BinaryOperatorAggregate<ValueType, UpdateType = ValueType>
13
13
  update(values: UpdateType[]): boolean;
14
14
  get(): ValueType;
15
15
  checkpoint(): ValueType;
16
+ isAvailable(): boolean;
16
17
  }
@@ -68,5 +68,8 @@ export class BinaryOperatorAggregate extends BaseChannel {
68
68
  }
69
69
  return this.value;
70
70
  }
71
+ isAvailable() {
72
+ return this.value !== undefined;
73
+ }
71
74
  }
72
75
  //# sourceMappingURL=binop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binop.js","sourceRoot":"","sources":["../../src/channels/binop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOxC;;GAEG;AACH,MAAM,OAAO,uBAGX,SAAQ,WAA6C;IASrD,YACE,QAA+C,EAC/C,mBAAqC;QAErC,KAAK,EAAE,CAAC;QAZV;;;;mBAAgB,yBAAyB;WAAC;QAE1C;;;;;WAA6B;QAE7B;;;;;WAAgD;QAEhD;;;;;WAAsC;QAQpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,mBAAmB,EAAE,EAAE,CAAC;IACvC,CAAC;IAEM,cAAc,CAAC,UAAsB;QAC1C,MAAM,KAAK,GAAG,IAAI,uBAAuB,CACvC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACF,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;QAC3B,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAoB;QAChC,IAAI,SAAS,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,CAAC,IAAI,CAAC,KAAmB,CAAC,GAAG,SAAS,CAAC;YACvC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,UAAU;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"binop.js","sourceRoot":"","sources":["../../src/channels/binop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOxC;;GAEG;AACH,MAAM,OAAO,uBAGX,SAAQ,WAA6C;IASrD,YACE,QAA+C,EAC/C,mBAAqC;QAErC,KAAK,EAAE,CAAC;QAZV;;;;mBAAgB,yBAAyB;WAAC;QAE1C;;;;;WAA6B;QAE7B;;;;;WAAgD;QAEhD;;;;;WAAsC;QAQpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,mBAAmB,EAAE,EAAE,CAAC;IACvC,CAAC;IAEM,cAAc,CAAC,UAAsB;QAC1C,MAAM,KAAK,GAAG,IAAI,uBAAuB,CACvC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACF,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;QAC3B,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,MAAoB;QAChC,IAAI,SAAS,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,CAAC,IAAI,CAAC,KAAmB,CAAC,GAAG,SAAS,CAAC;YACvC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,UAAU;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,iBAAiB,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DynamicBarrierValue = void 0;
3
+ exports.DynamicBarrierValueAfterFinish = exports.DynamicBarrierValue = void 0;
4
4
  const errors_js_1 = require("../errors.cjs");
5
5
  const base_js_1 = require("./base.cjs");
6
6
  const named_barrier_value_js_1 = require("./named_barrier_value.cjs");
@@ -64,14 +64,9 @@ class DynamicBarrierValue extends base_js_1.BaseChannel {
64
64
  if (isWaitForNames(value)) {
65
65
  throw new Error("Assertion Error: Received unexpected WaitForNames instance.");
66
66
  }
67
- if (this.names.has(value)) {
68
- if (!this.seen.has(value)) {
69
- this.seen.add(value);
70
- updated = true;
71
- }
72
- }
73
- else {
74
- throw new errors_js_1.InvalidUpdateError(`Value ${value} not in ${[...this.names]}`);
67
+ if (this.names.has(value) && !this.seen.has(value)) {
68
+ this.seen.add(value);
69
+ updated = true;
75
70
  }
76
71
  }
77
72
  return updated;
@@ -97,6 +92,121 @@ class DynamicBarrierValue extends base_js_1.BaseChannel {
97
92
  checkpoint() {
98
93
  return [this.names ? [...this.names] : undefined, [...this.seen]];
99
94
  }
95
+ isAvailable() {
96
+ return !!this.names && (0, named_barrier_value_js_1.areSetsEqual)(this.names, this.seen);
97
+ }
100
98
  }
101
99
  exports.DynamicBarrierValue = DynamicBarrierValue;
100
+ /**
101
+ * A channel that switches between two states with an additional finished flag
102
+ *
103
+ * - in the "priming" state it can't be read from.
104
+ * - if it receives a WaitForNames update, it switches to the "waiting" state.
105
+ * - in the "waiting" state it collects named values until all are received.
106
+ * - once all named values are received, and the finished flag is set, it can be read once, and it switches
107
+ * back to the "priming" state.
108
+ * @internal
109
+ */
110
+ class DynamicBarrierValueAfterFinish extends base_js_1.BaseChannel {
111
+ constructor() {
112
+ super();
113
+ Object.defineProperty(this, "lc_graph_name", {
114
+ enumerable: true,
115
+ configurable: true,
116
+ writable: true,
117
+ value: "DynamicBarrierValueAfterFinish"
118
+ });
119
+ Object.defineProperty(this, "names", {
120
+ enumerable: true,
121
+ configurable: true,
122
+ writable: true,
123
+ value: void 0
124
+ }); // Names of nodes that we want to wait for.
125
+ Object.defineProperty(this, "seen", {
126
+ enumerable: true,
127
+ configurable: true,
128
+ writable: true,
129
+ value: void 0
130
+ });
131
+ Object.defineProperty(this, "finished", {
132
+ enumerable: true,
133
+ configurable: true,
134
+ writable: true,
135
+ value: void 0
136
+ });
137
+ this.names = undefined;
138
+ this.seen = new Set();
139
+ this.finished = false;
140
+ }
141
+ fromCheckpoint(checkpoint) {
142
+ const empty = new DynamicBarrierValueAfterFinish();
143
+ if (typeof checkpoint !== "undefined") {
144
+ const [names, seen, finished] = checkpoint;
145
+ empty.names = names ? new Set(names) : undefined;
146
+ empty.seen = new Set(seen);
147
+ empty.finished = finished;
148
+ }
149
+ return empty;
150
+ }
151
+ update(values) {
152
+ const waitForNames = values.filter(isWaitForNames);
153
+ if (waitForNames.length > 0) {
154
+ if (waitForNames.length > 1) {
155
+ throw new errors_js_1.InvalidUpdateError("Received multiple WaitForNames updates in the same step.");
156
+ }
157
+ this.names = new Set(waitForNames[0].__names);
158
+ return true;
159
+ }
160
+ else if (this.names !== undefined) {
161
+ let updated = false;
162
+ for (const value of values) {
163
+ if (isWaitForNames(value)) {
164
+ throw new Error("Assertion Error: Received unexpected WaitForNames instance.");
165
+ }
166
+ if (this.names.has(value) && !this.seen.has(value)) {
167
+ this.seen.add(value);
168
+ updated = true;
169
+ }
170
+ }
171
+ return updated;
172
+ }
173
+ return false;
174
+ }
175
+ consume() {
176
+ if (this.finished &&
177
+ this.seen &&
178
+ this.names &&
179
+ (0, named_barrier_value_js_1.areSetsEqual)(this.seen, this.names)) {
180
+ this.seen = new Set();
181
+ this.names = undefined;
182
+ this.finished = false;
183
+ return true;
184
+ }
185
+ return false;
186
+ }
187
+ finish() {
188
+ if (!this.finished && this.names && (0, named_barrier_value_js_1.areSetsEqual)(this.names, this.seen)) {
189
+ this.finished = true;
190
+ return true;
191
+ }
192
+ return false;
193
+ }
194
+ get() {
195
+ if (!this.finished || !this.names || !(0, named_barrier_value_js_1.areSetsEqual)(this.names, this.seen)) {
196
+ throw new errors_js_1.EmptyChannelError();
197
+ }
198
+ return undefined;
199
+ }
200
+ checkpoint() {
201
+ return [
202
+ this.names ? [...this.names] : undefined,
203
+ [...this.seen],
204
+ this.finished,
205
+ ];
206
+ }
207
+ isAvailable() {
208
+ return this.finished && !!this.names && (0, named_barrier_value_js_1.areSetsEqual)(this.names, this.seen);
209
+ }
210
+ }
211
+ exports.DynamicBarrierValueAfterFinish = DynamicBarrierValueAfterFinish;
102
212
  //# sourceMappingURL=dynamic_barrier_value.js.map
@@ -25,4 +25,33 @@ export declare class DynamicBarrierValue<Value> extends BaseChannel<void, Value
25
25
  consume(): boolean;
26
26
  get(): void;
27
27
  checkpoint(): [Value[] | undefined, Value[]];
28
+ isAvailable(): boolean;
29
+ }
30
+ /**
31
+ * A channel that switches between two states with an additional finished flag
32
+ *
33
+ * - in the "priming" state it can't be read from.
34
+ * - if it receives a WaitForNames update, it switches to the "waiting" state.
35
+ * - in the "waiting" state it collects named values until all are received.
36
+ * - once all named values are received, and the finished flag is set, it can be read once, and it switches
37
+ * back to the "priming" state.
38
+ * @internal
39
+ */
40
+ export declare class DynamicBarrierValueAfterFinish<Value> extends BaseChannel<void, Value | WaitForNames<Value>, [
41
+ Value[] | undefined,
42
+ Value[],
43
+ boolean
44
+ ]> {
45
+ lc_graph_name: string;
46
+ names?: Set<Value>;
47
+ seen: Set<Value>;
48
+ finished: boolean;
49
+ constructor();
50
+ fromCheckpoint(checkpoint?: [Value[] | undefined, Value[], boolean]): this;
51
+ update(values: (Value | WaitForNames<Value>)[]): boolean;
52
+ consume(): boolean;
53
+ finish(): boolean;
54
+ get(): void;
55
+ checkpoint(): [Value[] | undefined, Value[], boolean];
56
+ isAvailable(): boolean;
28
57
  }
@@ -61,14 +61,9 @@ export class DynamicBarrierValue extends BaseChannel {
61
61
  if (isWaitForNames(value)) {
62
62
  throw new Error("Assertion Error: Received unexpected WaitForNames instance.");
63
63
  }
64
- if (this.names.has(value)) {
65
- if (!this.seen.has(value)) {
66
- this.seen.add(value);
67
- updated = true;
68
- }
69
- }
70
- else {
71
- throw new InvalidUpdateError(`Value ${value} not in ${[...this.names]}`);
64
+ if (this.names.has(value) && !this.seen.has(value)) {
65
+ this.seen.add(value);
66
+ updated = true;
72
67
  }
73
68
  }
74
69
  return updated;
@@ -94,5 +89,119 @@ export class DynamicBarrierValue extends BaseChannel {
94
89
  checkpoint() {
95
90
  return [this.names ? [...this.names] : undefined, [...this.seen]];
96
91
  }
92
+ isAvailable() {
93
+ return !!this.names && areSetsEqual(this.names, this.seen);
94
+ }
95
+ }
96
+ /**
97
+ * A channel that switches between two states with an additional finished flag
98
+ *
99
+ * - in the "priming" state it can't be read from.
100
+ * - if it receives a WaitForNames update, it switches to the "waiting" state.
101
+ * - in the "waiting" state it collects named values until all are received.
102
+ * - once all named values are received, and the finished flag is set, it can be read once, and it switches
103
+ * back to the "priming" state.
104
+ * @internal
105
+ */
106
+ export class DynamicBarrierValueAfterFinish extends BaseChannel {
107
+ constructor() {
108
+ super();
109
+ Object.defineProperty(this, "lc_graph_name", {
110
+ enumerable: true,
111
+ configurable: true,
112
+ writable: true,
113
+ value: "DynamicBarrierValueAfterFinish"
114
+ });
115
+ Object.defineProperty(this, "names", {
116
+ enumerable: true,
117
+ configurable: true,
118
+ writable: true,
119
+ value: void 0
120
+ }); // Names of nodes that we want to wait for.
121
+ Object.defineProperty(this, "seen", {
122
+ enumerable: true,
123
+ configurable: true,
124
+ writable: true,
125
+ value: void 0
126
+ });
127
+ Object.defineProperty(this, "finished", {
128
+ enumerable: true,
129
+ configurable: true,
130
+ writable: true,
131
+ value: void 0
132
+ });
133
+ this.names = undefined;
134
+ this.seen = new Set();
135
+ this.finished = false;
136
+ }
137
+ fromCheckpoint(checkpoint) {
138
+ const empty = new DynamicBarrierValueAfterFinish();
139
+ if (typeof checkpoint !== "undefined") {
140
+ const [names, seen, finished] = checkpoint;
141
+ empty.names = names ? new Set(names) : undefined;
142
+ empty.seen = new Set(seen);
143
+ empty.finished = finished;
144
+ }
145
+ return empty;
146
+ }
147
+ update(values) {
148
+ const waitForNames = values.filter(isWaitForNames);
149
+ if (waitForNames.length > 0) {
150
+ if (waitForNames.length > 1) {
151
+ throw new InvalidUpdateError("Received multiple WaitForNames updates in the same step.");
152
+ }
153
+ this.names = new Set(waitForNames[0].__names);
154
+ return true;
155
+ }
156
+ else if (this.names !== undefined) {
157
+ let updated = false;
158
+ for (const value of values) {
159
+ if (isWaitForNames(value)) {
160
+ throw new Error("Assertion Error: Received unexpected WaitForNames instance.");
161
+ }
162
+ if (this.names.has(value) && !this.seen.has(value)) {
163
+ this.seen.add(value);
164
+ updated = true;
165
+ }
166
+ }
167
+ return updated;
168
+ }
169
+ return false;
170
+ }
171
+ consume() {
172
+ if (this.finished &&
173
+ this.seen &&
174
+ this.names &&
175
+ areSetsEqual(this.seen, this.names)) {
176
+ this.seen = new Set();
177
+ this.names = undefined;
178
+ this.finished = false;
179
+ return true;
180
+ }
181
+ return false;
182
+ }
183
+ finish() {
184
+ if (!this.finished && this.names && areSetsEqual(this.names, this.seen)) {
185
+ this.finished = true;
186
+ return true;
187
+ }
188
+ return false;
189
+ }
190
+ get() {
191
+ if (!this.finished || !this.names || !areSetsEqual(this.names, this.seen)) {
192
+ throw new EmptyChannelError();
193
+ }
194
+ return undefined;
195
+ }
196
+ checkpoint() {
197
+ return [
198
+ this.names ? [...this.names] : undefined,
199
+ [...this.seen],
200
+ this.finished,
201
+ ];
202
+ }
203
+ isAvailable() {
204
+ return this.finished && !!this.names && areSetsEqual(this.names, this.seen);
205
+ }
97
206
  }
98
207
  //# sourceMappingURL=dynamic_barrier_value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic_barrier_value.js","sourceRoot":"","sources":["../../src/channels/dynamic_barrier_value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic_barrier_value.js","sourceRoot":"","sources":["../../src/channels/dynamic_barrier_value.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,9 @@ class EphemeralValue extends index_js_1.BaseChannel {
64
64
  }
65
65
  return this.value[0];
66
66
  }
67
+ isAvailable() {
68
+ return this.value.length !== 0;
69
+ }
67
70
  }
68
71
  exports.EphemeralValue = EphemeralValue;
69
72
  //# sourceMappingURL=ephemeral_value.js.map
@@ -12,4 +12,5 @@ export declare class EphemeralValue<Value> extends BaseChannel<Value, Value, Val
12
12
  update(values: Value[]): boolean;
13
13
  get(): Value;
14
14
  checkpoint(): Value;
15
+ isAvailable(): boolean;
15
16
  }
@@ -61,5 +61,8 @@ export class EphemeralValue extends BaseChannel {
61
61
  }
62
62
  return this.value[0];
63
63
  }
64
+ isAvailable() {
65
+ return this.value.length !== 0;
66
+ }
64
67
  }
65
68
  //# sourceMappingURL=ephemeral_value.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ephemeral_value.js","sourceRoot":"","sources":["../../src/channels/ephemeral_value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,OAAO,cAAsB,SAAQ,WAAgC;IAQzE,YAAY,QAAiB,IAAI;QAC/B,KAAK,EAAE,CAAC;QARV;;;;mBAAgB,gBAAgB;WAAC;QAEjC;;;;;WAAe;QAEf,gFAAgF;QAChF;;;;mBAAsB,EAAE;WAAC;QAIvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,cAAc,CAAQ,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtC,qFAAqF;YACrF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,IAAI,kBAAkB,CAC1B,qDAAqD,CACtD,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":"ephemeral_value.js","sourceRoot":"","sources":["../../src/channels/ephemeral_value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,OAAO,cAAsB,SAAQ,WAAgC;IAQzE,YAAY,QAAiB,IAAI;QAC/B,KAAK,EAAE,CAAC;QARV;;;;mBAAgB,gBAAgB;WAAC;QAEjC;;;;;WAAe;QAEf,gFAAgF;QAChF;;;;mBAAsB,EAAE;WAAC;QAIvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,MAAM,KAAK,GAAG,IAAI,cAAc,CAAQ,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACtC,qFAAqF;YACrF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,MAAM,IAAI,kBAAkB,CAC1B,qDAAqD,CACtD,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;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;CACF"}