@foldkit/devtools-mcp 0.15.0 → 0.16.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 (3) hide show
  1. package/README.md +16 -16
  2. package/dist/server.js +116 -118
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -6,13 +6,13 @@ With it attached, agents can:
6
6
 
7
7
  - Read the current Model, or any historical Model by history index
8
8
  - Narrow reads with dot-string paths and summarized payloads to fit token budgets
9
- - List and inspect the Message history, with Command and Mount lifecycle, diffs, and submodel chains
9
+ - List and inspect the Message history, with Command and Mount lifecycle, diffs, and Submodel chains
10
10
  - Query history server-side: filter entries by changed Model paths, count Messages by tag, tail the latest entries, and diff the Models at two indices
11
11
  - Read the recorded init Model, the Commands returned from `init`, and the Mounts that fired during the first render
12
- - Inspect runtime state: current index, retained history bounds, pause status
12
+ - Inspect Runtime state: current index, retained history bounds, pause status
13
13
  - Replay to any past state and resume
14
- - Discover the runtime's `Message` Schema as JSON Schema so agents can construct valid payloads without reading the application source
15
- - Dispatch Messages into the runtime, singly or as an ordered batch, decoded against your `Message` Schema
14
+ - Discover the Runtime's `Message` Schema as JSON Schema so agents can construct valid payloads without reading the application source
15
+ - Dispatch Messages into the Runtime, singly or as an ordered batch, decoded against your `Message` Schema
16
16
 
17
17
  ## Quick Start
18
18
 
@@ -50,7 +50,7 @@ export default defineConfig({
50
50
  })
51
51
  ```
52
52
 
53
- In your `Runtime.makeApplication` call, pass your `Message` Schema. The runtime decodes every dispatched payload against it, returning a clean error if the shape does not match before it reaches your update function:
53
+ In your `Runtime.makeApplication` call, pass your `Message` Schema. The Runtime decodes every dispatched payload against it, returning a clean error if the shape does not match before it reaches your update function:
54
54
 
55
55
  ```typescript
56
56
  Runtime.makeApplication({
@@ -63,29 +63,29 @@ Runtime.makeApplication({
63
63
 
64
64
  Restart your dev server, then restart your AI agent. The MCP server will appear with the `foldkit_*` tools attached.
65
65
 
66
- The browser bridge runs inside your app, so the MCP server only sees a runtime while the app is open in a browser tab. Close the tab and the runtime disappears from `foldkit_list_runtimes`.
66
+ The browser bridge runs inside your app, so the MCP server only sees a Runtime while the app is open in a browser tab. Close the tab and the Runtime disappears from `foldkit_list_runtimes`.
67
67
 
68
68
  ## Tools
69
69
 
70
- Each tool accepts an optional `runtime_id`. When omitted, the most recently connected runtime is used.
70
+ Each tool accepts an optional `runtime_id`. When omitted, the most recently connected Runtime is used.
71
71
 
72
72
  | Tool | Description |
73
73
  | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
74
- | `foldkit_list_runtimes` | Returns metadata for every connected browser tab. Agents call this first to discover which runtime to target. |
74
+ | `foldkit_list_runtimes` | Returns metadata for every connected browser tab. Agents call this first to discover which Runtime to target. |
75
75
  | `foldkit_get_model` | Snapshots the current Model. Accepts an optional `path` to narrow to a subtree and `expand` to control summarization. |
76
- | `foldkit_get_model_at` | Snapshots a historical Model after a given history entry. Pass `index: N - 1` to read the Model just before message `N`. Same `path`/`expand` semantics as `foldkit_get_model`. Indices outside the readable range (older entries are evicted past the rolling buffer) are rejected with the valid bounds. For the initial Model (and the init Commands and Mounts), use `foldkit_get_init`. |
76
+ | `foldkit_get_model_at` | Snapshots a historical Model after a given history entry. Pass `index: N - 1` to read the Model just before Message `N`. Same `path`/`expand` semantics as `foldkit_get_model`. Indices outside the readable range (older entries are evicted past the rolling buffer) are rejected with the valid bounds. For the initial Model (and the init Commands and Mounts), use `foldkit_get_init`. |
77
77
  | `foldkit_get_init` | Reads the recorded initial Model, the Commands returned from the application's `init` function, and the Mounts that fired during the first render. Each Command and Mount carries its declared args. Equivalent to selecting the synthetic "init" row in the DevTools panel. |
78
- | `foldkit_get_runtime_state` | Snapshots the runtime's DevTools state: history bounds, current paused/live status, and whether init is recorded. Useful for understanding what `foldkit_list_messages` and `foldkit_get_message` will see and detecting whether the runtime is paused. |
78
+ | `foldkit_get_runtime_state` | Snapshots the Runtime's DevTools state: history bounds, current paused/live status, and whether init is recorded. Useful for understanding what `foldkit_list_messages` and `foldkit_get_message` will see and detecting whether the Runtime is paused. |
79
79
  | `foldkit_list_messages` | Lists Message history entries. Each entry carries the Message body, Commands triggered (with args), Mounts that started or ended during the resulting render (with args), timestamp, an `isModelChanged` flag, the diff path lists (`changedPaths` / `affectedPaths`), and any extracted Submodel chain. Filter server-side with `changed_paths_match`, read the latest entries with `from_end`, and paginate forward with `since_index`. |
80
80
  | `foldkit_count_messages_by_tag` | Counts retained history entries by Message tag, without payloads, sorted by count descending. A cheap reconnaissance call before paging through history: it surfaces the high-frequency Messages worth filtering out, and with `changed_paths_match` it answers which Message tags touch a Model subtree. |
81
81
  | `foldkit_diff_models` | Diffs the Models at two history indices server-side, returning path-level changes `{ path, before, after }` with summarized values. Each side is `{ _tag: 'Present', value }`, or `{ _tag: 'Absent' }` when the path does not exist on that side. Pass `changed_paths_match` to narrow the diff to a subtree. |
82
82
  | `foldkit_get_message` | Reads one entry at a given index. The response carries the SerializedEntry only; to inspect the Model around the entry, call `foldkit_get_model_at` with `index - 1` (before) and `index` (after). Use `foldkit_get_init` for the synthetic init entry. |
83
83
  | `foldkit_list_keyframes` | Returns the indices Foldkit can replay back to. Index `-1` is the initial Model. |
84
- | `foldkit_replay_to_keyframe` | Time-travels the runtime to a previous state. The runtime is paused at that snapshot until `foldkit_resume` is called. |
84
+ | `foldkit_replay_to_keyframe` | Time-travels the Runtime to a previous state. The Runtime is paused at that snapshot until `foldkit_resume` is called. |
85
85
  | `foldkit_resume` | Resumes normal execution after a replay. |
86
- | `foldkit_get_message_schema` | Describes the runtime's Message Schema so agents can construct valid Messages without reading the application source. With no arguments, returns a small variant index (top-level tag names plus payload fields). With `variant_tag` set to a dot-separated path of variant tags (e.g. `"GotChildMessage.Opened"`), narrows the JSON Schema along the chain and collapses deeper unions to summary placeholders. Returns `maybeResult: None` when the runtime hasn't configured `DevToolsConfig.Message`. |
87
- | `foldkit_dispatch_message` | Dispatches a Message into the runtime as if your application produced it. The runtime decodes the payload against your Schema and returns a clean error if it does not match. |
88
- | `foldkit_dispatch_messages` | Dispatches an ordered batch of 1 to 100 Messages in one call, first to last. The runtime validates every payload before dispatching any of them, so one invalid entry rejects the whole batch with its zero-based position and nothing is dispatched. The response reports the predicted history index for each Message. |
86
+ | `foldkit_get_message_schema` | Describes the Runtime's Message Schema so agents can construct valid Messages without reading the application source. With no arguments, returns a small variant index (top-level tag names plus payload fields). With `variant_tag` set to a dot-separated path of variant tags (e.g. `"GotChildMessage.Opened"`), narrows the JSON Schema along the chain and collapses deeper unions to summary placeholders. Returns `maybeResult: None` when the Runtime hasn't configured `DevToolsConfig.Message`. |
87
+ | `foldkit_dispatch_message` | Dispatches a Message into the Runtime as if your application produced it. The Runtime decodes the payload against your Schema and returns a clean error if it does not match. |
88
+ | `foldkit_dispatch_messages` | Dispatches an ordered batch of 1 to 100 Messages in one call, first to last. The Runtime validates every payload before dispatching any of them, so one invalid entry rejects the whole batch with its zero-based position and nothing is dispatched. The response reports the predicted history index for each Message. |
89
89
 
90
90
  ### Reading the Model efficiently
91
91
 
@@ -111,7 +111,7 @@ Three components cooperate:
111
111
  - **Vite plugin relay** (in `@foldkit/vite-plugin`): opens a separate WebSocket server on `devToolsMcpPort` and forwards traffic between browsers and MCP clients.
112
112
  - **MCP server** (this package): runs as a Node child process under your AI agent, connects to the plugin's relay over WebSocket, and exposes the typed tools over MCP's stdio transport.
113
113
 
114
- Multiple browser tabs can be connected at once and each is addressable by its connection id. Tabs that close (gracefully or not) are pruned from the live runtime list automatically.
114
+ Multiple browser tabs can be connected at once and each is addressable by its connection id. Tabs that close (gracefully or not) are pruned from the live Runtime list automatically.
115
115
 
116
116
  ## Configuration
117
117
 
@@ -122,7 +122,7 @@ Multiple browser tabs can be connected at once and each is addressable by its co
122
122
 
123
123
  ## Notes
124
124
 
125
- - The MCP bridge shares its lifecycle with Foldkit DevTools. If you set `devTools: false` in your program config, the bridge does not start and the runtime is invisible to MCP. The default enables the bridge in dev.
125
+ - The MCP bridge shares its lifecycle with Foldkit DevTools. If you set `devTools: false` in your program config, the bridge does not start and the Runtime is invisible to MCP. The default enables the bridge in dev.
126
126
  - Without `Message` in your `DevToolsConfig`, dispatch is rejected. The other (read-only) tools still work.
127
127
  - The relay only runs at dev time. Production builds never include the relay or the bridge, regardless of any `show` setting.
128
128
 
package/dist/server.js CHANGED
@@ -10575,7 +10575,7 @@ var require_websocket_server = __commonJS({
10575
10575
  }
10576
10576
  });
10577
10577
 
10578
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Pipeable.js
10578
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Pipeable.js
10579
10579
  var pipeArguments = (self, args2) => {
10580
10580
  switch (args2.length) {
10581
10581
  case 0:
@@ -10619,7 +10619,7 @@ var Class = /* @__PURE__ */ (function() {
10619
10619
  return PipeableBase;
10620
10620
  })();
10621
10621
 
10622
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Function.js
10622
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Function.js
10623
10623
  var dual = function(arity, body) {
10624
10624
  if (typeof arity === "function") {
10625
10625
  return function() {
@@ -10692,7 +10692,7 @@ function memoizeIdempotent(f) {
10692
10692
  };
10693
10693
  }
10694
10694
 
10695
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Array.js
10695
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Array.js
10696
10696
  var Array_exports = {};
10697
10697
  __export(Array_exports, {
10698
10698
  Array: () => Array2,
@@ -10830,7 +10830,7 @@ __export(Array_exports, {
10830
10830
  zipWith: () => zipWith2
10831
10831
  });
10832
10832
 
10833
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/equal.js
10833
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/equal.js
10834
10834
  var getAllObjectKeys = (obj) => {
10835
10835
  const keys4 = new Set(Reflect.ownKeys(obj));
10836
10836
  if (obj.constructor === Object) return keys4;
@@ -10853,7 +10853,7 @@ var getAllObjectKeys = (obj) => {
10853
10853
  };
10854
10854
  var byReferenceInstances = /* @__PURE__ */ new WeakSet();
10855
10855
 
10856
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Predicate.js
10856
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Predicate.js
10857
10857
  function isString(input) {
10858
10858
  return typeof input === "string";
10859
10859
  }
@@ -10911,7 +10911,7 @@ function isIterable(input) {
10911
10911
  return hasProperty(input, Symbol.iterator) || isString(input);
10912
10912
  }
10913
10913
 
10914
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Hash.js
10914
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Hash.js
10915
10915
  var symbol = "~effect/interfaces/Hash";
10916
10916
  var hash = (self) => {
10917
10917
  switch (typeof self) {
@@ -11035,7 +11035,7 @@ function withVisitedTracking(obj, fn3) {
11035
11035
  return result5;
11036
11036
  }
11037
11037
 
11038
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Equal.js
11038
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Equal.js
11039
11039
  var symbol2 = "~effect/interfaces/Equal";
11040
11040
  function equals() {
11041
11041
  if (arguments.length === 1) {
@@ -11232,7 +11232,7 @@ var byReferenceUnsafe = (obj) => {
11232
11232
  return obj;
11233
11233
  };
11234
11234
 
11235
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Reducer.js
11235
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Reducer.js
11236
11236
  function make(combine2, initialValue, combineAll2) {
11237
11237
  return {
11238
11238
  combine: combine2,
@@ -11247,7 +11247,7 @@ function make(combine2, initialValue, combineAll2) {
11247
11247
  };
11248
11248
  }
11249
11249
 
11250
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Equivalence.js
11250
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Equivalence.js
11251
11251
  var make2 = (isEquivalent) => (self, that) => self === that || isEquivalent(self, that);
11252
11252
  var isStrictEquivalent = (x, y) => x === y;
11253
11253
  var strictEqual = () => isStrictEquivalent;
@@ -11261,10 +11261,10 @@ function Array_(item) {
11261
11261
  });
11262
11262
  }
11263
11263
 
11264
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/array.js
11264
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/array.js
11265
11265
  var isArrayNonEmpty = (self) => self.length > 0;
11266
11266
 
11267
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/doNotation.js
11267
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/doNotation.js
11268
11268
  var let_ = (map14) => dual(3, (self, name, f) => map14(self, (a) => ({
11269
11269
  ...a,
11270
11270
  [name]: f(a)
@@ -11277,7 +11277,7 @@ var bind = (map14, flatMap8) => dual(3, (self, name, f) => flatMap8(self, (a) =>
11277
11277
  [name]: b
11278
11278
  }))));
11279
11279
 
11280
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/record.js
11280
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/record.js
11281
11281
  function assignProperty(self, key, value5) {
11282
11282
  if (key === "__proto__") {
11283
11283
  Object.defineProperty(self, key, {
@@ -11299,7 +11299,7 @@ function assignProperties(self, source) {
11299
11299
  }
11300
11300
  }
11301
11301
 
11302
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Option.js
11302
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Option.js
11303
11303
  var Option_exports = {};
11304
11304
  __export(Option_exports, {
11305
11305
  Do: () => Do,
@@ -11364,7 +11364,7 @@ __export(Option_exports, {
11364
11364
  zipWith: () => zipWith
11365
11365
  });
11366
11366
 
11367
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Combiner.js
11367
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Combiner.js
11368
11368
  function make3(combine2) {
11369
11369
  return {
11370
11370
  combine: combine2
@@ -11377,7 +11377,7 @@ function max(order) {
11377
11377
  return make3((self, that) => order(self, that) === 1 ? self : that);
11378
11378
  }
11379
11379
 
11380
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Redactable.js
11380
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Redactable.js
11381
11381
  var symbolRedactable = /* @__PURE__ */ Symbol.for("~effect/Redactable");
11382
11382
  var isRedactable = (u) => hasProperty(u, symbolRedactable);
11383
11383
  function redact(u) {
@@ -11399,7 +11399,7 @@ var emptyContext = {
11399
11399
  }
11400
11400
  };
11401
11401
 
11402
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Formatter.js
11402
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Formatter.js
11403
11403
  function format(input, options) {
11404
11404
  const space = options?.space ?? 0;
11405
11405
  const ancestors = /* @__PURE__ */ new WeakSet();
@@ -11500,7 +11500,7 @@ function formatJson(input, options) {
11500
11500
  }, options?.space) ?? "null";
11501
11501
  }
11502
11502
 
11503
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Inspectable.js
11503
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Inspectable.js
11504
11504
  var NodeInspectSymbol = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
11505
11505
  var toJson = (input) => {
11506
11506
  try {
@@ -11567,7 +11567,7 @@ var Class2 = class {
11567
11567
  }
11568
11568
  };
11569
11569
 
11570
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Utils.js
11570
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Utils.js
11571
11571
  var SingleShotGen = class _SingleShotGen {
11572
11572
  called = false;
11573
11573
  self;
@@ -11627,7 +11627,7 @@ var pickInternalCall = () => {
11627
11627
  };
11628
11628
  var internalCall = /* @__PURE__ */ pickInternalCall();
11629
11629
 
11630
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/core.js
11630
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/core.js
11631
11631
  var EffectTypeId = `~effect/Effect`;
11632
11632
  var ExitTypeId = `~effect/Exit`;
11633
11633
  var effectVariance = {
@@ -11988,7 +11988,7 @@ var done = (value5) => {
11988
11988
  return exitFail(Done(value5));
11989
11989
  };
11990
11990
 
11991
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/option.js
11991
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/option.js
11992
11992
  var TypeId = "~effect/data/Option";
11993
11993
  var CommonProto = {
11994
11994
  [TypeId]: {
@@ -12054,7 +12054,7 @@ var some = (value5) => {
12054
12054
  return a;
12055
12055
  };
12056
12056
 
12057
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/result.js
12057
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/result.js
12058
12058
  var TypeId2 = "~effect/data/Result";
12059
12059
  var CommonProto2 = {
12060
12060
  [TypeId2]: {
@@ -12124,7 +12124,7 @@ var getFailure = (self) => isSuccess(self) ? none : some(self.failure);
12124
12124
  var getSuccess = (self) => isFailure(self) ? none : some(self.success);
12125
12125
  var fromOption = /* @__PURE__ */ dual(2, (self, onNone) => isNone(self) ? fail(onNone()) : succeed(self.value));
12126
12126
 
12127
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Order.js
12127
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Order.js
12128
12128
  function make4(compare) {
12129
12129
  return (self, that) => self === that ? 0 : compare(self, that);
12130
12130
  }
@@ -12172,7 +12172,7 @@ var max2 = (O) => dual(2, (self, that) => self === that || O(self, that) > -1 ?
12172
12172
  var clamp = (O) => dual(2, (self, options) => min2(O)(options.maximum, max2(O)(options.minimum, self)));
12173
12173
  var isBetween = (O) => dual(2, (self, options) => !isLessThan(O)(self, options.minimum) && !isGreaterThan(O)(self, options.maximum));
12174
12174
 
12175
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Option.js
12175
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Option.js
12176
12176
  var none2 = () => none;
12177
12177
  var some2 = some;
12178
12178
  var isOption2 = isOption;
@@ -12350,7 +12350,7 @@ function makeReducerFailFast(reducer2) {
12350
12350
  });
12351
12351
  }
12352
12352
 
12353
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Result.js
12353
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Result.js
12354
12354
  var succeed2 = succeed;
12355
12355
  var fail2 = fail;
12356
12356
  var fromOption2 = fromOption;
@@ -12407,10 +12407,10 @@ var all2 = (input) => {
12407
12407
  return succeed2(out);
12408
12408
  };
12409
12409
 
12410
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Tuple.js
12410
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Tuple.js
12411
12411
  var make5 = (...elements) => elements;
12412
12412
 
12413
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Iterable.js
12413
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Iterable.js
12414
12414
  var findFirst = /* @__PURE__ */ dual(2, (self, f) => {
12415
12415
  let i = 0;
12416
12416
  for (const a of self) {
@@ -12453,7 +12453,7 @@ var filter2 = /* @__PURE__ */ dual(2, (self, predicate) => ({
12453
12453
  }
12454
12454
  }));
12455
12455
 
12456
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Record.js
12456
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Record.js
12457
12457
  var collect = /* @__PURE__ */ dual(2, (self, f) => {
12458
12458
  const out = [];
12459
12459
  for (const key of keys(self)) {
@@ -12473,7 +12473,7 @@ var map3 = /* @__PURE__ */ dual(2, (self, f) => {
12473
12473
  });
12474
12474
  var keys = (self) => Object.keys(self);
12475
12475
 
12476
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Array.js
12476
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Array.js
12477
12477
  var Array2 = globalThis.Array;
12478
12478
  var make6 = (...elements) => elements;
12479
12479
  var allocate = (n) => new Array2(n);
@@ -13178,7 +13178,7 @@ var countBy = /* @__PURE__ */ dual(2, (self, f) => {
13178
13178
  return count2;
13179
13179
  });
13180
13180
 
13181
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/BigDecimal.js
13181
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/BigDecimal.js
13182
13182
  var FINITE_INT_REGEXP = /^[+-]?\d+$/;
13183
13183
  var TypeId3 = "~effect/BigDecimal";
13184
13184
  var BigDecimalProto = {
@@ -13407,17 +13407,17 @@ var floor = /* @__PURE__ */ dual(isBigDecimalArgs, (self, scale2 = 0) => {
13407
13407
  return truncated;
13408
13408
  });
13409
13409
 
13410
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Boolean.js
13410
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Boolean.js
13411
13411
  var Boolean2 = globalThis.Boolean;
13412
13412
  var ReducerOr = /* @__PURE__ */ make((a, b) => a || b, false);
13413
13413
 
13414
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Effectable.js
13414
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Effectable.js
13415
13415
  var Prototype2 = (options) => makePrimitiveProto({
13416
13416
  op: options.label,
13417
13417
  [evaluate]: options.evaluate
13418
13418
  });
13419
13419
 
13420
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Context.js
13420
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Context.js
13421
13421
  var ServiceTypeId = "~effect/Context/Service";
13422
13422
  var Service = function() {
13423
13423
  function KeyClass() {
@@ -13553,20 +13553,21 @@ var isReference = (u) => !!u[ReferenceTypeId];
13553
13553
  var empty2 = () => emptyContext2;
13554
13554
  var emptyContext2 = /* @__PURE__ */ makeUnsafe(/* @__PURE__ */ new Map());
13555
13555
  var make8 = (key, service3) => makeUnsafe(/* @__PURE__ */ new Map([[key.key, service3]]));
13556
- var add = /* @__PURE__ */ dual(3, (self, key, service3) => {
13556
+ var add = /* @__PURE__ */ dual(3, (self, key, service3) => addUnsafe(self, key.key, service3));
13557
+ var addUnsafe = (self, key, service3) => {
13557
13558
  const impl = self;
13558
- const cacheRoot = cacheKeys.has(key.key) ? void 0 : impl.cacheRoot;
13559
+ const cacheRoot = cacheKeys.has(key) ? void 0 : impl.cacheRoot;
13559
13560
  if (impl.depth >= MaxDepth) {
13560
13561
  const map14 = new Map(impl.mapUnsafe);
13561
- map14.set(key.key, service3);
13562
+ map14.set(key, service3);
13562
13563
  return makeImpl(cacheRoot, map14, void 0, 0);
13563
13564
  }
13564
13565
  return makeImpl(cacheRoot, impl.base, {
13565
- key: key.key,
13566
+ key,
13566
13567
  value: service3,
13567
13568
  parent: impl.overlay
13568
13569
  }, impl.depth + 1);
13569
- });
13570
+ };
13570
13571
  var getOrUndefined2 = /* @__PURE__ */ dual(2, (self, key) => getOrUndefinedUnsafe(self, key.key));
13571
13572
  var getOrUndefinedUnsafe = (self, key) => {
13572
13573
  const value5 = lookup(self, key);
@@ -13618,7 +13619,7 @@ var mergeAll = (...ctxs) => {
13618
13619
  };
13619
13620
  var Reference = Service;
13620
13621
 
13621
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Duration.js
13622
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Duration.js
13622
13623
  var Duration_exports = {};
13623
13624
  __export(Duration_exports, {
13624
13625
  CombinerMax: () => CombinerMax,
@@ -14206,7 +14207,7 @@ var ReducerSum = /* @__PURE__ */ make(sum2, zero2);
14206
14207
  var CombinerMax = /* @__PURE__ */ max(Order2);
14207
14208
  var CombinerMin = /* @__PURE__ */ min(Order2);
14208
14209
 
14209
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Filter.js
14210
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Filter.js
14210
14211
  var composePassthrough = /* @__PURE__ */ dual(2, (left, right) => (input) => {
14211
14212
  const leftOut = left(input);
14212
14213
  if (isFailure2(leftOut)) return fail2(input);
@@ -14215,7 +14216,7 @@ var composePassthrough = /* @__PURE__ */ dual(2, (left, right) => (input) => {
14215
14216
  return rightOut;
14216
14217
  });
14217
14218
 
14218
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Scheduler.js
14219
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Scheduler.js
14219
14220
  var Scheduler = /* @__PURE__ */ Reference("effect/Scheduler", {
14220
14221
  fiberCached: true,
14221
14222
  defaultValue: () => new MixedScheduler()
@@ -14352,7 +14353,7 @@ var PreventSchedulerYield = /* @__PURE__ */ Reference("effect/Scheduler/PreventS
14352
14353
  defaultValue: () => false
14353
14354
  });
14354
14355
 
14355
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Tracer.js
14356
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Tracer.js
14356
14357
  var ParentSpanKey = "effect/Tracer/ParentSpan";
14357
14358
  var ParentSpan = class extends (/* @__PURE__ */ Service()(ParentSpanKey, {
14358
14359
  fiberCached: true
@@ -14435,10 +14436,10 @@ var randomHexString = /* @__PURE__ */ (function() {
14435
14436
  };
14436
14437
  })();
14437
14438
 
14438
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/metric.js
14439
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/metric.js
14439
14440
  var FiberRuntimeMetricsKey = "effect/observability/Metric/FiberRuntimeMetricsKey";
14440
14441
 
14441
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/references.js
14442
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/references.js
14442
14443
  var CurrentErrorReporters = /* @__PURE__ */ Reference("effect/ErrorReporter/CurrentErrorReporters", {
14443
14444
  defaultValue: () => /* @__PURE__ */ new Set()
14444
14445
  });
@@ -14473,7 +14474,7 @@ var CurrentLogSpans = /* @__PURE__ */ Reference("effect/References/CurrentLogSpa
14473
14474
  defaultValue: () => []
14474
14475
  });
14475
14476
 
14476
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/stackTraceLimit.js
14477
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/stackTraceLimit.js
14477
14478
  var isStackTraceLimitWritable = () => {
14478
14479
  const desc = Object.getOwnPropertyDescriptor(Error, "stackTraceLimit");
14479
14480
  if (desc === void 0) {
@@ -14490,7 +14491,7 @@ var setStackTraceLimit = (value5) => {
14490
14491
  }
14491
14492
  };
14492
14493
 
14493
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/tracer.js
14494
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/tracer.js
14494
14495
  var addSpanStackTrace = (options) => {
14495
14496
  if (options?.captureStackTrace === false) {
14496
14497
  return options;
@@ -14521,7 +14522,7 @@ var makeStackCleaner = (line) => (stack) => {
14521
14522
  };
14522
14523
  var spanCleaner = /* @__PURE__ */ makeStackCleaner(3);
14523
14524
 
14524
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/effect.js
14525
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/effect.js
14525
14526
  var Interrupt = class extends ReasonBase {
14526
14527
  fiberId;
14527
14528
  constructor(fiberId3, annotations = constEmptyAnnotations) {
@@ -15501,7 +15502,7 @@ var exitFindErrorOption = (self) => {
15501
15502
  };
15502
15503
  var service = (service3) => service3;
15503
15504
  var serviceOption = (service3) => withFiber((fiber3) => succeed3(getOption(fiber3.context, service3)));
15504
- var serviceOptional = (service3) => withFiber((fiber3) => fiber3.context.mapUnsafe.has(service3.key) ? succeed3(getUnsafe2(fiber3.context, service3)) : fail3(new NoSuchElementError()));
15505
+ var serviceOptional = (service3) => withFiber((fiber3) => fromOption4(getOption(fiber3.context, service3)));
15505
15506
  var updateContext = /* @__PURE__ */ dual(2, (self, f) => withFiber((fiber3) => {
15506
15507
  const prevContext = fiber3.context;
15507
15508
  const nextContext = f(prevContext);
@@ -15549,11 +15550,7 @@ var provideService = function() {
15549
15550
  }
15550
15551
  return dual(3, (self, service3, impl) => provideServiceImpl(self, service3, impl)).apply(this, arguments);
15551
15552
  };
15552
- var provideServiceImpl = (self, service3, implementation) => updateContext(self, (s) => {
15553
- const prev = s.mapUnsafe.get(service3.key);
15554
- if (prev === implementation) return s;
15555
- return add(s, service3, implementation);
15556
- });
15553
+ var provideServiceImpl = (self, service3, implementation) => updateContext(self, add(service3, implementation));
15557
15554
  var provideServiceEffect = /* @__PURE__ */ dual(3, (self, service3, acquire) => flatMap4(acquire, (implementation) => provideService(self, service3, implementation)));
15558
15555
  var zip2 = /* @__PURE__ */ dual((args2) => isEffect(args2[1]), (self, that, options) => zipWith3(self, that, (a, a2) => [a, a2], options));
15559
15556
  var zipWith3 = /* @__PURE__ */ dual((args2) => isEffect(args2[1]), (self, that, f, options) => options?.concurrent ? map5(all3([self, that], {
@@ -17086,7 +17083,7 @@ var reportCauseUnsafe = (fiber3, cause, defectsOnly) => {
17086
17083
  reporters.forEach((reporter) => reporter.report(opts));
17087
17084
  };
17088
17085
 
17089
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Cause.js
17086
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Cause.js
17090
17087
  var isCause2 = isCause;
17091
17088
  var isReason = isCauseReason;
17092
17089
  var isFailReason2 = isFailReason;
@@ -17102,7 +17099,7 @@ var isDone2 = isDone;
17102
17099
  var done2 = done;
17103
17100
  var IllegalArgumentError2 = IllegalArgumentError;
17104
17101
 
17105
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Effect.js
17102
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Effect.js
17106
17103
  var Effect_exports = {};
17107
17104
  __export(Effect_exports, {
17108
17105
  Do: () => Do4,
@@ -17334,7 +17331,7 @@ __export(Effect_exports, {
17334
17331
  zipWith: () => zipWith4
17335
17332
  });
17336
17333
 
17337
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Exit.js
17334
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Exit.js
17338
17335
  var Exit_exports = {};
17339
17336
  __export(Exit_exports, {
17340
17337
  asVoid: () => asVoid3,
@@ -17393,7 +17390,7 @@ var getSuccess3 = exitGetSuccess;
17393
17390
  var getCause = exitGetCause;
17394
17391
  var findErrorOption2 = exitFindErrorOption;
17395
17392
 
17396
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Deferred.js
17393
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Deferred.js
17397
17394
  var Deferred_exports = {};
17398
17395
  __export(Deferred_exports, {
17399
17396
  await: () => _await,
@@ -17479,16 +17476,16 @@ var doneUnsafe = (self, effect) => {
17479
17476
  };
17480
17477
  var into = /* @__PURE__ */ dual(2, (self, deferred) => uninterruptibleMask((restore) => flatMap4(exit(restore(self)), (exit3) => done3(deferred, exit3))));
17481
17478
 
17482
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/References.js
17479
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/References.js
17483
17480
  var CurrentLogAnnotations2 = CurrentLogAnnotations;
17484
17481
  var CurrentLogSpans2 = CurrentLogSpans;
17485
17482
 
17486
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Scope.js
17483
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Scope.js
17487
17484
  var makeUnsafe3 = scopeMakeUnsafe;
17488
17485
  var forkUnsafe2 = scopeForkUnsafe;
17489
17486
  var close = scopeClose;
17490
17487
 
17491
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Layer.js
17488
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Layer.js
17492
17489
  var TypeId7 = "~effect/Layer";
17493
17490
  var MemoMapTypeId = "~effect/Layer/MemoMap";
17494
17491
  var memoMapReuse = (entry, scope3) => {
@@ -17583,7 +17580,7 @@ var mergeAll2 = (...layers) => fromBuild((memoMap, scope3) => mergeAllEffect(lay
17583
17580
  var provideWith = (self, that, f) => fromBuild((memoMap, scope3) => flatMap4(Array.isArray(that) ? mergeAllEffect(that, memoMap, scope3) : that.build(memoMap, scope3), (context3) => self.build(memoMap, scope3).pipe(provideContext(context3), map5((merged) => f(merged, context3)))));
17584
17581
  var provide2 = /* @__PURE__ */ dual(2, (self, that) => provideWith(self, that, identity));
17585
17582
 
17586
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/ExecutionPlan.js
17583
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/ExecutionPlan.js
17587
17584
  var TypeId8 = "~effect/ExecutionPlan";
17588
17585
  var Proto2 = {
17589
17586
  [TypeId8]: TypeId8,
@@ -17610,7 +17607,7 @@ var CurrentMetadata = /* @__PURE__ */ Reference("effect/ExecutionPlan/CurrentMet
17610
17607
  })
17611
17608
  });
17612
17609
 
17613
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Schedule.js
17610
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Schedule.js
17614
17611
  var Schedule_exports = {};
17615
17612
  __export(Schedule_exports, {
17616
17613
  CurrentMetadata: () => CurrentMetadata2,
@@ -17646,7 +17643,7 @@ __export(Schedule_exports, {
17646
17643
  windowed: () => windowed
17647
17644
  });
17648
17645
 
17649
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Data.js
17646
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Data.js
17650
17647
  var Class3 = class extends Class {
17651
17648
  constructor(props) {
17652
17649
  super();
@@ -17657,7 +17654,7 @@ var Class3 = class extends Class {
17657
17654
  };
17658
17655
  var TaggedError2 = TaggedError;
17659
17656
 
17660
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/dateTime.js
17657
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/dateTime.js
17661
17658
  var TypeId9 = "~effect/time/DateTime";
17662
17659
  var TimeZoneTypeId = "~effect/time/DateTime/TimeZone";
17663
17660
  var Proto3 = {
@@ -18063,7 +18060,7 @@ var formatIsoOffset = (self) => {
18063
18060
  };
18064
18061
  var formatIsoZoned = (self) => self.zone._tag === "Offset" ? formatIsoOffset(self) : `${formatIsoOffset(self)}[${self.zone.id}]`;
18065
18062
 
18066
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Number.js
18063
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Number.js
18067
18064
  var Number3 = globalThis.Number;
18068
18065
  var Order4 = Number2;
18069
18066
  var remainder = /* @__PURE__ */ dual(2, (self, divisor) => {
@@ -18105,13 +18102,13 @@ function toScientificInteger(n) {
18105
18102
  var ReducerMax = /* @__PURE__ */ make((a, b) => Math.max(a, b), -Infinity);
18106
18103
  var ReducerMin = /* @__PURE__ */ make((a, b) => Math.min(a, b), Infinity);
18107
18104
 
18108
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/String.js
18105
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/String.js
18109
18106
  var String2 = globalThis.String;
18110
18107
  var toLowerCase = (self) => self.toLowerCase();
18111
18108
  var trim = (self) => self.trim();
18112
18109
  var isNonEmpty = (self) => self.length > 0;
18113
18110
 
18114
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Cron.js
18111
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Cron.js
18115
18112
  var TypeId10 = "~effect/time/Cron";
18116
18113
  function toPojo(cron2) {
18117
18114
  const out = {
@@ -18630,7 +18627,7 @@ function aliasOrValue(field, aliases) {
18630
18627
  }
18631
18628
  var decimalRegex = /^\d+$/;
18632
18629
 
18633
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/random.js
18630
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/random.js
18634
18631
  var Random = /* @__PURE__ */ Reference("effect/Random", {
18635
18632
  defaultValue: () => ({
18636
18633
  nextIntUnsafe() {
@@ -18642,7 +18639,7 @@ var Random = /* @__PURE__ */ Reference("effect/Random", {
18642
18639
  })
18643
18640
  });
18644
18641
 
18645
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Pull.js
18642
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Pull.js
18646
18643
  var catchDone = /* @__PURE__ */ dual(2, (effect, f) => catchCauseFilter(effect, filterDoneLeftover, (l) => f(l)));
18647
18644
  var filterDone = /* @__PURE__ */ composePassthrough(findError2, (e) => isDone2(e) ? succeed2(e) : fail2(e));
18648
18645
  var filterDoneLeftover = /* @__PURE__ */ composePassthrough(findError2, (e) => isDone2(e) ? succeed2(e.value) : fail2(e));
@@ -18654,7 +18651,7 @@ var matchEffect2 = /* @__PURE__ */ dual(2, (self, options) => matchCauseEffect(s
18654
18651
  }
18655
18652
  }));
18656
18653
 
18657
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Schedule.js
18654
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Schedule.js
18658
18655
  var TypeId11 = "~effect/Schedule";
18659
18656
  var randomNext = /* @__PURE__ */ Random.useSync((random2) => random2.nextDoubleUnsafe());
18660
18657
  var CurrentMetadata2 = /* @__PURE__ */ Reference("effect/Schedule/CurrentMetadata", {
@@ -18944,11 +18941,11 @@ var constIdentity = /* @__PURE__ */ fromStep(/* @__PURE__ */ succeed3((_now, inp
18944
18941
  var identity_ = () => constIdentity;
18945
18942
  var setInputType = () => (self) => self;
18946
18943
 
18947
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/layer.js
18944
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/layer.js
18948
18945
  var provideLayer = (self, layer, options) => scopedWith((scope3) => flatMap4(options?.local ? buildWithMemoMap(layer, makeMemoMapUnsafe(), scope3) : buildWithScope(layer, scope3), (context3) => provideContext(self, context3)));
18949
18946
  var provide3 = /* @__PURE__ */ dual((args2) => isEffect(args2[0]), (self, source, options) => isContext(source) ? provideContext(self, source) : provideLayer(self, Array.isArray(source) ? mergeAll2(...source) : source, options));
18950
18947
 
18951
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schedule.js
18948
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schedule.js
18952
18949
  var repeatOrElse = /* @__PURE__ */ dual(3, (self, schedule2, orElse4) => flatMap4(toStepWithMetadata(schedule2), (step) => {
18953
18950
  let meta3 = CurrentMetadata2.defaultValue();
18954
18951
  return catch_(forever(tap2(flatMap4(suspend(() => provideService(self, CurrentMetadata2, meta3)), step), (meta_) => sync(() => {
@@ -19019,7 +19016,7 @@ var buildFromOptions = (options) => {
19019
19016
  return schedule2;
19020
19017
  };
19021
19018
 
19022
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/executionPlan.js
19019
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/executionPlan.js
19023
19020
  var makeEventEmitter = (onEvent, currentMetadata) => {
19024
19021
  let lastStepIndex = -1;
19025
19022
  let stepAttempt = 0;
@@ -19124,7 +19121,7 @@ var scheduleFromStep = (step, first) => {
19124
19121
  };
19125
19122
  var scheduleOnce = /* @__PURE__ */ recurs(1);
19126
19123
 
19127
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Request.js
19124
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Request.js
19128
19125
  var TypeId12 = "~effect/Request";
19129
19126
  var requestVariance = /* @__PURE__ */ byReferenceUnsafe({
19130
19127
  /* c8 ignore next */
@@ -19140,7 +19137,7 @@ var RequestPrototype = {
19140
19137
  };
19141
19138
  var makeEntry = (options) => options;
19142
19139
 
19143
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/request.js
19140
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/request.js
19144
19141
  var request = /* @__PURE__ */ dual(2, (self, resolver) => {
19145
19142
  const withResolver = (resolver2) => callback((resume) => {
19146
19143
  const entry = addEntry(resolver2, self, resume, getCurrentFiber());
@@ -19250,7 +19247,7 @@ function runBatch(batch) {
19250
19247
  return batch.run;
19251
19248
  }
19252
19249
 
19253
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Metric.js
19250
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Metric.js
19254
19251
  var CurrentMetricAttributesKey = "effect/Metric/CurrentMetricAttributes";
19255
19252
  var CurrentMetricAttributes = /* @__PURE__ */ Reference(CurrentMetricAttributesKey, {
19256
19253
  defaultValue: () => ({})
@@ -19350,7 +19347,7 @@ function attributesToRecord(attributes) {
19350
19347
  return attributes;
19351
19348
  }
19352
19349
 
19353
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Effect.js
19350
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Effect.js
19354
19351
  var TypeId14 = EffectTypeId;
19355
19352
  var isEffect2 = isEffect;
19356
19353
  var all4 = all3;
@@ -19604,10 +19601,11 @@ var trackDuration = /* @__PURE__ */ dual((args2) => isEffect2(args2[0]), (self,
19604
19601
  var Transaction = class extends (/* @__PURE__ */ Service()("effect/Effect/Transaction")) {
19605
19602
  };
19606
19603
  var tx = (effect) => withFiber2((fiber3) => {
19607
- if (fiber3.context.mapUnsafe.has(Transaction.key)) {
19604
+ let state = getOrUndefined2(fiber3.context, Transaction);
19605
+ if (state) {
19608
19606
  return effect;
19609
19607
  }
19610
- const state = {
19608
+ state = {
19611
19609
  journal: /* @__PURE__ */ new Map(),
19612
19610
  retry: false
19613
19611
  };
@@ -19705,7 +19703,7 @@ var flatMapEager2 = flatMapEager;
19705
19703
  var catchEager2 = catchEager;
19706
19704
  var fnUntracedEager2 = fnUntracedEager;
19707
19705
 
19708
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/annotations.js
19706
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/annotations.js
19709
19707
  function resolve(ast) {
19710
19708
  return ast.checks ? ast.checks[ast.checks.length - 1].annotations : ast.annotations;
19711
19709
  }
@@ -19728,7 +19726,7 @@ var getExpected = /* @__PURE__ */ memoize((ast) => {
19728
19726
  });
19729
19727
  var annotationExcludedKeys = /* @__PURE__ */ new Set([SENTINELS_ANNOTATION_KEY, STRUCTURAL_ANNOTATION_KEY, "representation", "arbitrary", "brands", "toJsonSchema", "toCode", "toArbitrary", "toEquivalence", "toFormatter", "toCodec", "toCodecJson", "toCodecStringTree", "toCodecIso"]);
19730
19728
 
19731
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/parser.js
19729
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/parser.js
19732
19730
  var missing = /* @__PURE__ */ Symbol();
19733
19731
  var succeed7 = succeed4;
19734
19732
  var missingExit = /* @__PURE__ */ succeed7(missing);
@@ -19736,7 +19734,7 @@ var sameExit = /* @__PURE__ */ succeed7(missing);
19736
19734
  var toOption2 = (value5) => value5 === missing ? none2() : some2(value5);
19737
19735
  var fromOptionExit = (option5) => option5._tag === "None" ? missingExit : succeed7(option5.value);
19738
19736
 
19739
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/SchemaIssue.js
19737
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/SchemaIssue.js
19740
19738
  var TypeId15 = "~effect/SchemaIssue/Issue";
19741
19739
  function isIssue(u) {
19742
19740
  return hasProperty(u, TypeId15) && u[TypeId15] === TypeId15;
@@ -20079,7 +20077,7 @@ function findMessage(issue2) {
20079
20077
  if (typeof message === "string") return message;
20080
20078
  }
20081
20079
 
20082
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/cause.js
20080
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/cause.js
20083
20081
  function getSchemaIssue(cause) {
20084
20082
  let issue2;
20085
20083
  for (const reason of cause.reasons) {
@@ -20100,7 +20098,7 @@ function getSchemaIssueOrThrow(cause, message) {
20100
20098
  return issue2;
20101
20099
  }
20102
20100
 
20103
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/DateTime.js
20101
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/DateTime.js
20104
20102
  var isDateTime2 = isDateTime;
20105
20103
  var isTimeZone2 = isTimeZone;
20106
20104
  var isTimeZoneOffset2 = isTimeZoneOffset;
@@ -20124,7 +20122,7 @@ var toEpochMillis2 = toEpochMillis;
20124
20122
  var formatIso2 = formatIso;
20125
20123
  var formatIsoZoned2 = formatIsoZoned;
20126
20124
 
20127
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Encoding.js
20125
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Encoding.js
20128
20126
  var EncodingErrorTypeId = "~effect/encoding/EncodingError";
20129
20127
  var EncodingError = class extends (/* @__PURE__ */ TaggedError2("EncodingError")) {
20130
20128
  /**
@@ -20294,7 +20292,7 @@ var fromHexChar = (byte) => {
20294
20292
  };
20295
20293
  var bytesToHex = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1a", "1b", "1c", "1d", "1e", "1f", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2a", "2b", "2c", "2d", "2e", "2f", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", "3b", "3c", "3d", "3e", "3f", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d", "4e", "4f", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5a", "5b", "5c", "5d", "5e", "5f", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6a", "6b", "6c", "6d", "6e", "6f", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7a", "7b", "7c", "7d", "7e", "7f", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8a", "8b", "8c", "8d", "8e", "8f", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9a", "9b", "9c", "9d", "9e", "9f", "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "aa", "ab", "ac", "ad", "ae", "af", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "ba", "bb", "bc", "bd", "be", "bf", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "da", "db", "dc", "dd", "de", "df", "e0", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "ea", "eb", "ec", "ed", "ee", "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "fa", "fb", "fc", "fd", "fe", "ff"];
20296
20294
 
20297
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/SchemaGetter.js
20295
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/SchemaGetter.js
20298
20296
  var Getter = class _Getter extends Class {
20299
20297
  run;
20300
20298
  constructor(run2) {
@@ -20581,7 +20579,7 @@ function collectBracketPathEntries(isLeaf) {
20581
20579
  };
20582
20580
  }
20583
20581
 
20584
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/SchemaTransformation.js
20582
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/SchemaTransformation.js
20585
20583
  var Middleware = class _Middleware {
20586
20584
  _tag = "Middleware";
20587
20585
  decode;
@@ -20822,7 +20820,7 @@ var dateTimeZonedFromString = /* @__PURE__ */ transformOrFail2({
20822
20820
  encode: (zoned) => succeed6(formatIsoZoned2(zoned))
20823
20821
  });
20824
20822
 
20825
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/SchemaAST.js
20823
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/SchemaAST.js
20826
20824
  function makeGuard(tag4) {
20827
20825
  return (ast) => ast._tag === tag4;
20828
20826
  }
@@ -22812,7 +22810,7 @@ var StringTree = /* @__PURE__ */ new Declaration([], () => (input, ast, options)
22812
22810
  });
22813
22811
  var unknownToStringTree = /* @__PURE__ */ new Link(StringTree, /* @__PURE__ */ passthrough3());
22814
22812
 
22815
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Chunk.js
22813
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Chunk.js
22816
22814
  var TypeId18 = "~effect/collections/Chunk";
22817
22815
  function copy2(src, srcPos, dest, destPos, len) {
22818
22816
  for (let i = srcPos; i < Math.min(src.length, srcPos + len); i++) {
@@ -22996,7 +22994,7 @@ var getUnsafe3 = /* @__PURE__ */ dual(2, (self, index2) => {
22996
22994
  });
22997
22995
  var size = (self) => self.length;
22998
22996
 
22999
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Fiber.js
22997
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Fiber.js
23000
22998
  var Fiber_exports = {};
23001
22999
  __export(Fiber_exports, {
23002
23000
  await: () => await_,
@@ -23023,7 +23021,7 @@ var isFiber = (u) => hasProperty(u, FiberTypeId);
23023
23021
  var getCurrent = getCurrentFiber;
23024
23022
  var runIn = fiberRunIn;
23025
23023
 
23026
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/MutableRef.js
23024
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/MutableRef.js
23027
23025
  var TypeId19 = "~effect/MutableRef";
23028
23026
  var MutableRefProto = {
23029
23027
  [TypeId19]: TypeId19,
@@ -23045,7 +23043,7 @@ var set = /* @__PURE__ */ dual(2, (self, value5) => {
23045
23043
  return self;
23046
23044
  });
23047
23045
 
23048
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Schema.js
23046
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Schema.js
23049
23047
  var Schema_exports = {};
23050
23048
  __export(Schema_exports, {
23051
23049
  Any: () => Any2,
@@ -23395,7 +23393,7 @@ __export(Schema_exports, {
23395
23393
  withDecodingDefaultTypeKey: () => withDecodingDefaultTypeKey
23396
23394
  });
23397
23395
 
23398
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/HashMap.js
23396
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/HashMap.js
23399
23397
  var HashMap_exports = {};
23400
23398
  __export(HashMap_exports, {
23401
23399
  beginMutation: () => beginMutation2,
@@ -23438,7 +23436,7 @@ __export(HashMap_exports, {
23438
23436
  values: () => values2
23439
23437
  });
23440
23438
 
23441
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/hashMap.js
23439
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/hashMap.js
23442
23440
  var HashMapTypeId = "~effect/collections/HashMap";
23443
23441
  var SHIFT = 5;
23444
23442
  var BUCKET_SIZE = 1 << SHIFT;
@@ -24281,7 +24279,7 @@ var every2 = /* @__PURE__ */ dual(2, (self, predicate) => {
24281
24279
  return true;
24282
24280
  });
24283
24281
 
24284
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/HashMap.js
24282
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/HashMap.js
24285
24283
  var isHashMap2 = isHashMap;
24286
24284
  var empty6 = empty5;
24287
24285
  var make18 = make17;
@@ -24321,7 +24319,7 @@ var findFirst6 = findFirst5;
24321
24319
  var some5 = some4;
24322
24320
  var every3 = every2;
24323
24321
 
24324
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/hashSet.js
24322
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/hashSet.js
24325
24323
  var HashSetTypeId = "~effect/collections/HashSet";
24326
24324
  var HashSetProto = {
24327
24325
  [symbol]() {
@@ -24375,12 +24373,12 @@ var every4 = (self, predicate) => {
24375
24373
  return true;
24376
24374
  };
24377
24375
 
24378
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/HashSet.js
24376
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/HashSet.js
24379
24377
  var fromIterable7 = fromIterable6;
24380
24378
  var isHashSet2 = isHashSet;
24381
24379
  var size5 = size4;
24382
24380
 
24383
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/SchemaParser.js
24381
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/SchemaParser.js
24384
24382
  function makeEffect(schema) {
24385
24383
  const parser = runWithCompiler(constructorCompiler, toType(schema.ast));
24386
24384
  return (input, options) => {
@@ -24678,7 +24676,7 @@ function makeParser(ast, compile, compileConstructorDefault2, constructorDefault
24678
24676
  };
24679
24677
  }
24680
24678
 
24681
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/schema.js
24679
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/schema.js
24682
24680
  var TypeId20 = "~effect/Schema/Schema";
24683
24681
  function makeDeclarationReviver(id2, payloadSchema, revive) {
24684
24682
  return {
@@ -24723,7 +24721,7 @@ function make21(ast, options) {
24723
24721
  return self;
24724
24722
  }
24725
24723
 
24726
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Struct.js
24724
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Struct.js
24727
24725
  var pick = /* @__PURE__ */ dual(2, (self, keys4) => {
24728
24726
  return buildStruct(self, (k, v) => keys4.includes(k) ? [k, v] : void 0);
24729
24727
  });
@@ -24766,7 +24764,7 @@ function makeCombiner(combiners, options) {
24766
24764
  });
24767
24765
  }
24768
24766
 
24769
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/UndefinedOr.js
24767
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/UndefinedOr.js
24770
24768
  function makeReducer2(combiner2) {
24771
24769
  return make((self, that) => {
24772
24770
  if (self === void 0) return that;
@@ -24775,7 +24773,7 @@ function makeReducer2(combiner2) {
24775
24773
  }, void 0);
24776
24774
  }
24777
24775
 
24778
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/errors.js
24776
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/errors.js
24779
24777
  function errorWithPath(message, path) {
24780
24778
  if (path.length > 0) {
24781
24779
  message += `
@@ -24784,7 +24782,7 @@ function errorWithPath(message, path) {
24784
24782
  return new Error(message);
24785
24783
  }
24786
24784
 
24787
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/toArbitrary.js
24785
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/toArbitrary.js
24788
24786
  var arbitraryMemoMap = /* @__PURE__ */ new WeakMap();
24789
24787
  var suspendDepthIdentifierMap = /* @__PURE__ */ new WeakMap();
24790
24788
  var emptyRecursionStack = [];
@@ -25446,7 +25444,7 @@ function base(ast, path) {
25446
25444
  }
25447
25445
  }
25448
25446
 
25449
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/toEquivalence.js
25447
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/toEquivalence.js
25450
25448
  var toEquivalence = /* @__PURE__ */ memoize((ast) => {
25451
25449
  return recur2(ast, []);
25452
25450
  });
@@ -25569,7 +25567,7 @@ function recur2(ast, path) {
25569
25567
  }
25570
25568
  }
25571
25569
 
25572
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/JsonPointer.js
25570
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/JsonPointer.js
25573
25571
  function escapeToken(token) {
25574
25572
  return token.replace(/~/g, "~0").replace(/\//g, "~1");
25575
25573
  }
@@ -25577,7 +25575,7 @@ function unescapeToken(token) {
25577
25575
  return token.replace(/~1/g, "/").replace(/~0/g, "~");
25578
25576
  }
25579
25577
 
25580
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/JsonSchema.js
25578
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/JsonSchema.js
25581
25579
  var RE_DEFS = /^#\/\$defs(?=\/|$)/;
25582
25580
  var DRAFT_04_COPY_KEYWORDS = /* @__PURE__ */ new Set(["$ref", "type", "required", "enum", "title", "description", "default", "format", "pattern", "minLength", "maxLength", "minItems", "maxItems", "minProperties", "maxProperties", "multipleOf", "uniqueItems"]);
25583
25581
  var DRAFT_07_COPY_KEYWORDS = /* @__PURE__ */ new Set([...DRAFT_04_COPY_KEYWORDS, "const", "examples", "readOnly", "writeOnly", "minimum", "maximum", "exclusiveMinimum", "exclusiveMaximum"]);
@@ -25692,11 +25690,11 @@ function mapObject(value5, f) {
25692
25690
  return isObject(value5) ? map3(value5, f) : void 0;
25693
25691
  }
25694
25692
 
25695
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/RegExp.js
25693
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/RegExp.js
25696
25694
  var RegExp2 = globalThis.RegExp;
25697
25695
  var escape2 = (string6) => string6.replace(/[/\\^$*+?.()|[\]{}]/g, "\\$&");
25698
25696
 
25699
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/toJsonSchemaDocument.js
25697
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/toJsonSchemaDocument.js
25700
25698
  var jsonSchemaAnnotationExcludedKeys = /* @__PURE__ */ new Set([...annotationExcludedKeys, IDENTIFIER_FALLBACK_KEY, ...jsonSchemaAnnotationKeys]);
25701
25699
  var toRepresentationOptions = {
25702
25700
  isAnonymousReferenceAllowed: (ast) => !isDeclaration(ast)
@@ -26200,7 +26198,7 @@ function toJsonSchemaDocument(document, options) {
26200
26198
  };
26201
26199
  }
26202
26200
 
26203
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/schema/toRepresentation.js
26201
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/schema/toRepresentation.js
26204
26202
  function toRepresentation(ast, options) {
26205
26203
  const {
26206
26204
  references,
@@ -26546,7 +26544,7 @@ function fromASTs(asts, options) {
26546
26544
  }
26547
26545
  }
26548
26546
 
26549
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/JsonPatch.js
26547
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/JsonPatch.js
26550
26548
  function get5(oldValue, newValue) {
26551
26549
  const patches = [];
26552
26550
  getLoop(oldValue, newValue, "", patches);
@@ -26727,7 +26725,7 @@ function rebuildFromStack(stack, newParent) {
26727
26725
  return acc;
26728
26726
  }
26729
26727
 
26730
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Optic.js
26728
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Optic.js
26731
26729
  function makeIso(get7, set6) {
26732
26730
  return make22(primitiveNode("Iso", get7, set6));
26733
26731
  }
@@ -27073,7 +27071,7 @@ function id() {
27073
27071
  return identityIso;
27074
27072
  }
27075
27073
 
27076
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/redacted.js
27074
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/redacted.js
27077
27075
  var redactedRegistry = /* @__PURE__ */ new WeakMap();
27078
27076
  var value = (self) => {
27079
27077
  if (redactedRegistry.has(self)) {
@@ -27083,7 +27081,7 @@ var value = (self) => {
27083
27081
  }
27084
27082
  };
27085
27083
 
27086
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Redacted.js
27084
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Redacted.js
27087
27085
  var TypeId21 = "~effect/data/Redacted";
27088
27086
  var isRedacted = (u) => hasProperty(u, TypeId21);
27089
27087
  var make23 = (value5, options) => {
@@ -27116,7 +27114,7 @@ var Proto4 = {
27116
27114
  var value2 = value;
27117
27115
  var makeEquivalence5 = (isEquivalent) => make2((x, y) => isEquivalent(value2(x), value2(y)));
27118
27116
 
27119
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Schema.js
27117
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Schema.js
27120
27118
  var TypeId22 = TypeId20;
27121
27119
  function declareConstructor() {
27122
27120
  return (typeParameters, run2, annotations) => {
@@ -31315,7 +31313,7 @@ function resolveAnnotationsKey(schema) {
31315
31313
  return schema.ast.context?.annotations;
31316
31314
  }
31317
31315
 
31318
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Console.js
31316
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Console.js
31319
31317
  var Console_exports = {};
31320
31318
  __export(Console_exports, {
31321
31319
  Console: () => Console,
@@ -31412,7 +31410,7 @@ var withTime = /* @__PURE__ */ dual((args2) => isEffect(args2[0]), (self, label)
31412
31410
  console2.timeEnd(label);
31413
31411
  }))));
31414
31412
 
31415
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Match.js
31413
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Match.js
31416
31414
  var Match_exports = {};
31417
31415
  __export(Match_exports, {
31418
31416
  any: () => any3,
@@ -31454,7 +31452,7 @@ __export(Match_exports, {
31454
31452
  withReturnType: () => withReturnType2
31455
31453
  });
31456
31454
 
31457
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/internal/matcher.js
31455
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/internal/matcher.js
31458
31456
  var TypeId23 = "~effect/match/Match/Matcher";
31459
31457
  var TypeMatcherProto = {
31460
31458
  [TypeId23]: {
@@ -31707,7 +31705,7 @@ var exhaustive = (self) => {
31707
31705
  };
31708
31706
  };
31709
31707
 
31710
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Match.js
31708
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Match.js
31711
31709
  var type2 = type;
31712
31710
  var value4 = value3;
31713
31711
  var valueTags2 = valueTags;
@@ -31746,7 +31744,7 @@ var result4 = result3;
31746
31744
  var option4 = option3;
31747
31745
  var exhaustive2 = exhaustive;
31748
31746
 
31749
- // ../../node_modules/.pnpm/effect@4.0.0-rc.108/node_modules/effect/dist/Ref.js
31747
+ // ../../node_modules/.pnpm/effect@4.0.0-rc.109/node_modules/effect/dist/Ref.js
31750
31748
  var Ref_exports = {};
31751
31749
  __export(Ref_exports, {
31752
31750
  get: () => get6,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foldkit/devtools-mcp",
3
- "version": "0.15.0",
3
+ "version": "0.16.1",
4
4
  "description": "MCP server exposing Foldkit DevTools to AI agents (Claude Code, Cursor, etc.)",
5
5
  "type": "module",
6
6
  "main": "./dist/server.js",
@@ -16,7 +16,7 @@
16
16
  }
17
17
  },
18
18
  "peerDependencies": {
19
- "effect": "4.0.0-rc.108",
19
+ "effect": "4.0.0-rc.109",
20
20
  "foldkit": "^0"
21
21
  },
22
22
  "dependencies": {
@@ -26,11 +26,11 @@
26
26
  "devDependencies": {
27
27
  "@types/node": "^25.9.3",
28
28
  "@types/ws": "^8.18.1",
29
- "effect": "4.0.0-rc.108",
29
+ "effect": "4.0.0-rc.109",
30
30
  "esbuild": "^0.28.1",
31
31
  "rimraf": "^6.1.3",
32
32
  "typescript": "^6.0.3",
33
- "foldkit": "0.144.0"
33
+ "foldkit": "0.148.2"
34
34
  },
35
35
  "files": [
36
36
  "dist"