lalph 0.2.21 → 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.
package/dist/cli.mjs CHANGED
@@ -45,7 +45,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
45
45
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
46
46
 
47
47
  //#endregion
48
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Pipeable.js
48
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Pipeable.js
49
49
  /**
50
50
  * @since 2.0.0
51
51
  */
@@ -98,7 +98,7 @@ const Class$3 = class {
98
98
  };
99
99
 
100
100
  //#endregion
101
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Function.js
101
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Function.js
102
102
  /**
103
103
  * Creates a function that can be used in a data-last (aka `pipe`able) or
104
104
  * data-first style.
@@ -367,7 +367,7 @@ function memoize(f) {
367
367
  }
368
368
 
369
369
  //#endregion
370
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/equal.js
370
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/equal.js
371
371
  /** @internal */
372
372
  const getAllObjectKeys = (obj) => {
373
373
  const keys = new Set(Reflect.ownKeys(obj));
@@ -387,7 +387,7 @@ const getAllObjectKeys = (obj) => {
387
387
  const byReferenceInstances = /* @__PURE__ */ new WeakSet();
388
388
 
389
389
  //#endregion
390
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Predicate.js
390
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Predicate.js
391
391
  /**
392
392
  * Predicate and Refinement helpers for runtime checks, filtering, and type narrowing.
393
393
  * This module provides small, pure functions you can combine to decide whether a
@@ -1065,7 +1065,7 @@ function isRegExp$1(input) {
1065
1065
  const or = /* @__PURE__ */ dual(2, (self, that) => (a) => self(a) || that(a));
1066
1066
 
1067
1067
  //#endregion
1068
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Hash.js
1068
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Hash.js
1069
1069
  /**
1070
1070
  * This module provides utilities for hashing values in TypeScript.
1071
1071
  *
@@ -1415,7 +1415,7 @@ function withVisitedTracking$1(obj, fn) {
1415
1415
  }
1416
1416
 
1417
1417
  //#endregion
1418
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Equal.js
1418
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Equal.js
1419
1419
  /**
1420
1420
  * The unique identifier used to identify objects that implement the `Equal` interface.
1421
1421
  *
@@ -1617,7 +1617,7 @@ const byReferenceUnsafe = (obj) => {
1617
1617
  };
1618
1618
 
1619
1619
  //#endregion
1620
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Redactable.js
1620
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Redactable.js
1621
1621
  /**
1622
1622
  * @since 4.0.0
1623
1623
  */
@@ -1712,7 +1712,7 @@ const emptyServiceMap$1 = {
1712
1712
  };
1713
1713
 
1714
1714
  //#endregion
1715
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Formatter.js
1715
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Formatter.js
1716
1716
  /**
1717
1717
  * @since 4.0.0
1718
1718
  */
@@ -1877,7 +1877,7 @@ function formatJson$1(input, options) {
1877
1877
  }
1878
1878
 
1879
1879
  //#endregion
1880
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Inspectable.js
1880
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Inspectable.js
1881
1881
  /**
1882
1882
  * This module provides utilities for making values inspectable and debuggable in TypeScript.
1883
1883
  *
@@ -2081,7 +2081,7 @@ var Class$2 = class {
2081
2081
  };
2082
2082
 
2083
2083
  //#endregion
2084
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Utils.js
2084
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Utils.js
2085
2085
  /**
2086
2086
  * @since 2.0.0
2087
2087
  */
@@ -2159,7 +2159,7 @@ const internalCall = isNotOptimizedAway ? standard[InternalTypeId] : forced[Inte
2159
2159
  const genConstructor = function* () {}.constructor;
2160
2160
 
2161
2161
  //#endregion
2162
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/core.js
2162
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/core.js
2163
2163
  /** @internal */
2164
2164
  const EffectTypeId$1 = `~effect/Effect`;
2165
2165
  /** @internal */
@@ -2552,7 +2552,7 @@ const done$2 = (value) => {
2552
2552
  };
2553
2553
 
2554
2554
  //#endregion
2555
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Data.js
2555
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Data.js
2556
2556
  /**
2557
2557
  * Provides a constructor for a Case Class.
2558
2558
  *
@@ -2703,7 +2703,7 @@ const Error$2 = Error$3;
2703
2703
  const TaggedError = TaggedError$1;
2704
2704
 
2705
2705
  //#endregion
2706
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Order.js
2706
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Order.js
2707
2707
  /**
2708
2708
  * This module provides the `Order` type class for defining total orderings on types.
2709
2709
  * An `Order` is a comparison function that returns `-1` (less than), `0` (equal), or `1` (greater than).
@@ -3388,7 +3388,7 @@ const clamp$2 = (O) => dual(2, (self, options) => min$3(O)(options.maximum, max$
3388
3388
  const isBetween$1 = (O) => dual(2, (self, options) => !isLessThan$4(O)(self, options.minimum) && !isGreaterThan$4(O)(self, options.maximum));
3389
3389
 
3390
3390
  //#endregion
3391
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/UndefinedOr.js
3391
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/UndefinedOr.js
3392
3392
  /**
3393
3393
  * @since 4.0.0
3394
3394
  */
@@ -3409,7 +3409,7 @@ const liftThrowable = (f) => (...a) => {
3409
3409
  };
3410
3410
 
3411
3411
  //#endregion
3412
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Duration.js
3412
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Duration.js
3413
3413
  const TypeId$66 = "~effect/time/Duration";
3414
3414
  const bigint0$1 = /* @__PURE__ */ BigInt(0);
3415
3415
  const bigint24 = /* @__PURE__ */ BigInt(24);
@@ -4064,7 +4064,7 @@ const format$2 = (self) => {
4064
4064
  };
4065
4065
 
4066
4066
  //#endregion
4067
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Equivalence.js
4067
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Equivalence.js
4068
4068
  /**
4069
4069
  * Creates a custom equivalence relation with an optimized reference equality check.
4070
4070
  *
@@ -4362,7 +4362,7 @@ function Struct$1(fields) {
4362
4362
  }
4363
4363
 
4364
4364
  //#endregion
4365
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/option.js
4365
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/option.js
4366
4366
  /**
4367
4367
  * @since 2.0.0
4368
4368
  */
@@ -4434,7 +4434,7 @@ const some$3 = (value) => {
4434
4434
  };
4435
4435
 
4436
4436
  //#endregion
4437
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/result.js
4437
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/result.js
4438
4438
  const TypeId$64 = "~effect/data/Result";
4439
4439
  const CommonProto = {
4440
4440
  [TypeId$64]: {
@@ -4516,7 +4516,7 @@ const getSuccess$3 = (self) => isFailure$6(self) ? none$5 : some$3(self.success)
4516
4516
  const fromOption$4 = /* @__PURE__ */ dual(2, (self, onNone) => isNone$1(self) ? fail$10(onNone()) : succeed$7(self.value));
4517
4517
 
4518
4518
  //#endregion
4519
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Option.js
4519
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Option.js
4520
4520
  /**
4521
4521
  * Represents the absence of a value by creating an empty `Option`.
4522
4522
  *
@@ -4799,6 +4799,11 @@ const getOrElse$1 = /* @__PURE__ */ dual(2, (self, onNone) => isNone(self) ? onN
4799
4799
  */
4800
4800
  const fromNullishOr$2 = (a) => a == null ? none$4() : some$2(a);
4801
4801
  /**
4802
+ * @category Conversions
4803
+ * @since 4.0.0
4804
+ */
4805
+ const fromUndefinedOr = (a) => a === void 0 ? none$4() : some$2(a);
4806
+ /**
4802
4807
  * Returns the value contained in the `Option` if it is `Some`; otherwise,
4803
4808
  * returns `undefined`.
4804
4809
  *
@@ -5048,40 +5053,6 @@ const flatMap$5 = /* @__PURE__ */ dual(2, (self, f) => isNone(self) ? none$4() :
5048
5053
  */
5049
5054
  const flatMapNullishOr = /* @__PURE__ */ dual(2, (self, f) => isNone(self) ? none$4() : fromNullishOr$2(f(self.value)));
5050
5055
  /**
5051
- * Flattens an `Option` of `Option` into a single `Option`.
5052
- *
5053
- * **Details**
5054
- *
5055
- * This function takes an `Option` that wraps another `Option` and flattens it
5056
- * into a single `Option`. If the outer `Option` is `Some`, the function
5057
- * extracts the inner `Option`. If the outer `Option` is `None`, the result
5058
- * remains `None`.
5059
- *
5060
- * This is useful for simplifying nested `Option` structures that may arise
5061
- * during functional operations.
5062
- *
5063
- * @example
5064
- * ```ts
5065
- * import { Option } from "effect"
5066
- *
5067
- * const nested = Option.some(Option.some("value"))
5068
- * console.log(Option.flatten(nested))
5069
- * // Output: { _id: 'Option', _tag: 'Some', value: 'value' }
5070
- *
5071
- * const nestedNone = Option.some(Option.none())
5072
- * console.log(Option.flatten(nestedNone))
5073
- * // Output: { _id: 'Option', _tag: 'None' }
5074
- *
5075
- * const outerNone = Option.none<Option.Option<string>>()
5076
- * console.log(Option.flatten(outerNone))
5077
- * // Output: { _id: 'Option', _tag: 'None' }
5078
- * ```
5079
- *
5080
- * @category Sequencing
5081
- * @since 2.0.0
5082
- */
5083
- const flatten$2 = /* @__PURE__ */ flatMap$5(identity);
5084
- /**
5085
5056
  * Converts an `Option` into an `Array`.
5086
5057
  *
5087
5058
  * **Details**
@@ -5136,7 +5107,7 @@ const toArray = (self) => isNone(self) ? [] : [self.value];
5136
5107
  * @category Filtering
5137
5108
  * @since 2.0.0
5138
5109
  */
5139
- const filterMap$4 = flatMap$5;
5110
+ const filterMap$5 = flatMap$5;
5140
5111
  /**
5141
5112
  * Filters an `Option` using a predicate. If the predicate is not satisfied or
5142
5113
  * the `Option` is `None` returns `None`.
@@ -5170,7 +5141,7 @@ const filterMap$4 = flatMap$5;
5170
5141
  * @category Filtering
5171
5142
  * @since 2.0.0
5172
5143
  */
5173
- const filter$8 = /* @__PURE__ */ dual(2, (self, predicate) => filterMap$4(self, (b) => predicate(b) ? some$3(b) : none$5));
5144
+ const filter$8 = /* @__PURE__ */ dual(2, (self, predicate) => filterMap$5(self, (b) => predicate(b) ? some$3(b) : none$5));
5174
5145
  /**
5175
5146
  * Creates an `Equivalence` instance for comparing `Option` values, using a
5176
5147
  * provided `Equivalence` for the inner type.
@@ -5247,7 +5218,7 @@ const makeEquivalence$5 = (isEquivalent) => make$58((x, y) => isNone(x) ? isNone
5247
5218
  const liftPredicate = /* @__PURE__ */ dual(2, (b, predicate) => predicate(b) ? some$2(b) : none$4());
5248
5219
 
5249
5220
  //#endregion
5250
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Result.js
5221
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Result.js
5251
5222
  /**
5252
5223
  * Constructs a new `Result` holding a `Success` value.
5253
5224
  *
@@ -5515,7 +5486,7 @@ const getOrThrow$1 = /* @__PURE__ */ getOrThrowWith(identity);
5515
5486
  const succeedNone$2 = /* @__PURE__ */ succeed$6(none$5);
5516
5487
 
5517
5488
  //#endregion
5518
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Filter.js
5489
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Filter.js
5519
5490
  const FailTypeId = "~effect/data/Filter/fail";
5520
5491
  /**
5521
5492
  * @since 4.0.0
@@ -5759,7 +5730,7 @@ const toOption = (self) => (input) => {
5759
5730
  };
5760
5731
 
5761
5732
  //#endregion
5762
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/array.js
5733
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/array.js
5763
5734
  /**
5764
5735
  * @since 2.0.0
5765
5736
  */
@@ -5767,7 +5738,7 @@ const toOption = (self) => (input) => {
5767
5738
  const isArrayNonEmpty$1 = (self) => self.length > 0;
5768
5739
 
5769
5740
  //#endregion
5770
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Tuple.js
5741
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Tuple.js
5771
5742
  /**
5772
5743
  * Creates an `Equivalence` for tuples by comparing corresponding elements using the provided `Equivalence`s.
5773
5744
  *
@@ -5805,7 +5776,7 @@ const makeEquivalence$4 = Tuple$1;
5805
5776
  const makeOrder$2 = Tuple$2;
5806
5777
 
5807
5778
  //#endregion
5808
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Iterable.js
5779
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Iterable.js
5809
5780
  /**
5810
5781
  * Return the number of elements in a `Iterable`.
5811
5782
  *
@@ -5958,7 +5929,7 @@ const constEmptyIterator = { next() {
5958
5929
  const empty$17 = () => constEmpty;
5959
5930
 
5960
5931
  //#endregion
5961
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Record.js
5932
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Record.js
5962
5933
  /**
5963
5934
  * Creates a new, empty record.
5964
5935
  *
@@ -6162,7 +6133,7 @@ const makeEquivalence$3 = (equivalence) => {
6162
6133
  };
6163
6134
 
6164
6135
  //#endregion
6165
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Array.js
6136
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Array.js
6166
6137
  /**
6167
6138
  * This module provides utility functions for working with arrays in TypeScript.
6168
6139
  *
@@ -6670,6 +6641,52 @@ const of$1 = (a) => [a];
6670
6641
  */
6671
6642
  const map$12 = /* @__PURE__ */ dual(2, (self, f) => self.map(f));
6672
6643
  /**
6644
+ * Applies a function to each element of the `Iterable` and filters based on the result, keeping the transformed values where the function returns `Some`.
6645
+ * This method combines filtering and mapping functionalities, allowing transformations and filtering of elements based on a single function pass.
6646
+ *
6647
+ * @example
6648
+ *
6649
+ * ```ts
6650
+ * import { Array } from "effect"
6651
+ * import * as Option from "effect/Option"
6652
+ *
6653
+ * const evenSquares = (x: number) =>
6654
+ * x % 2 === 0 ? Option.some(x * x) : Option.none()
6655
+ *
6656
+ * const result = Array.filterMap([1, 2, 3, 4, 5], evenSquares)
6657
+ * console.log(result) // [4, 16]
6658
+ * ```
6659
+ *
6660
+ * @category filtering
6661
+ * @since 2.0.0
6662
+ */
6663
+ const filterMap$4 = /* @__PURE__ */ dual(2, (self, f) => {
6664
+ const as = fromIterable$4(self);
6665
+ const out = [];
6666
+ for (let i = 0; i < as.length; i++) {
6667
+ const o = f(as[i], i);
6668
+ if (isSome(o)) out.push(o.value);
6669
+ }
6670
+ return out;
6671
+ });
6672
+ /**
6673
+ * Retrieves the `Some` values from an `Iterable` of `Option`s, collecting them into an array.
6674
+ *
6675
+ * @example
6676
+ *
6677
+ * ```ts
6678
+ * import { Array } from "effect"
6679
+ * import * as Option from "effect/Option"
6680
+ *
6681
+ * const result = Array.getSomes([Option.some(1), Option.none(), Option.some(2)])
6682
+ * console.log(result) // [1, 2]
6683
+ * ```
6684
+ *
6685
+ * @category filtering
6686
+ * @since 2.0.0
6687
+ */
6688
+ const getSomes = /* @__PURE__ */ filterMap$4(identity);
6689
+ /**
6673
6690
  * Filters array elements based on a predicate, creating a new array.
6674
6691
  *
6675
6692
  * @example
@@ -6800,7 +6817,7 @@ const dedupeWith = /* @__PURE__ */ dual(2, (self, isEquivalent) => {
6800
6817
  const join$3 = /* @__PURE__ */ dual(2, (self, sep) => fromIterable$4(self).join(sep));
6801
6818
 
6802
6819
  //#endregion
6803
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/ServiceMap.js
6820
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/ServiceMap.js
6804
6821
  const ServiceTypeId = "~effect/ServiceMap/Service";
6805
6822
  /**
6806
6823
  * @example
@@ -7314,7 +7331,7 @@ const mergeAll$1 = (...ctxs) => {
7314
7331
  const Reference = Service$1;
7315
7332
 
7316
7333
  //#endregion
7317
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Scheduler.js
7334
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Scheduler.js
7318
7335
  /**
7319
7336
  * @since 4.0.0
7320
7337
  * @category references
@@ -7543,7 +7560,7 @@ var MixedScheduler = class {
7543
7560
  const MaxOpsBeforeYield = /* @__PURE__ */ Reference("effect/Scheduler/MaxOpsBeforeYield", { defaultValue: () => 2048 });
7544
7561
 
7545
7562
  //#endregion
7546
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Tracer.js
7563
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Tracer.js
7547
7564
  /**
7548
7565
  * @since 2.0.0
7549
7566
  * @category tags
@@ -7752,7 +7769,7 @@ const randomHexString = /* @__PURE__ */ function() {
7752
7769
  }();
7753
7770
 
7754
7771
  //#endregion
7755
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/References.js
7772
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/References.js
7756
7773
  /**
7757
7774
  * This module provides a collection of reference implementations for commonly used
7758
7775
  * Effect runtime configuration values. These references allow you to access and
@@ -8215,12 +8232,12 @@ const CurrentLogSpans = /* @__PURE__ */ Reference("effect/References/CurrentLogS
8215
8232
  const MinimumLogLevel = /* @__PURE__ */ Reference("effect/References/MinimumLogLevel", { defaultValue: () => "Info" });
8216
8233
 
8217
8234
  //#endregion
8218
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/metric.js
8235
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/metric.js
8219
8236
  /** @internal */
8220
8237
  const FiberRuntimeMetricsKey = "effect/observability/Metric/FiberRuntimeMetricsKey";
8221
8238
 
8222
8239
  //#endregion
8223
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/tracer.js
8240
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/tracer.js
8224
8241
  /** @internal */
8225
8242
  const addSpanStackTrace = (options) => {
8226
8243
  if (options?.captureStackTrace === false) return options;
@@ -8251,11 +8268,11 @@ const makeStackCleaner = (line) => (stack) => {
8251
8268
  const spanCleaner = /* @__PURE__ */ makeStackCleaner(3);
8252
8269
 
8253
8270
  //#endregion
8254
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/version.js
8271
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/version.js
8255
8272
  const version$1 = "dev";
8256
8273
 
8257
8274
  //#endregion
8258
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/effect.js
8275
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/effect.js
8259
8276
  /** @internal */
8260
8277
  var Interrupt$1 = class extends FailureBase {
8261
8278
  fiberId;
@@ -10571,7 +10588,7 @@ function interruptChildrenPatch() {
10571
10588
  const undefined_$2 = /* @__PURE__ */ succeed$5(void 0);
10572
10589
 
10573
10590
  //#endregion
10574
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Exit.js
10591
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Exit.js
10575
10592
  ExitTypeId;
10576
10593
  /**
10577
10594
  * Tests if a value is an `Exit`.
@@ -10945,7 +10962,7 @@ const getCause = exitGetCause;
10945
10962
  const getError = exitGetError;
10946
10963
 
10947
10964
  //#endregion
10948
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Deferred.js
10965
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Deferred.js
10949
10966
  const DeferredProto = {
10950
10967
  ["~effect/Deferred"]: {
10951
10968
  _A: identity,
@@ -11206,7 +11223,7 @@ const doneUnsafe = (self, effect) => {
11206
11223
  const into = /* @__PURE__ */ dual(2, (self, deferred) => uninterruptibleMask$1((restore) => flatMap$4(exit$1(restore(self)), (exit) => done$1(deferred, exit))));
11207
11224
 
11208
11225
  //#endregion
11209
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Scope.js
11226
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Scope.js
11210
11227
  /**
11211
11228
  * The `Scope` module provides functionality for managing resource lifecycles
11212
11229
  * and cleanup operations in a functional and composable manner.
@@ -11480,7 +11497,7 @@ const closeUnsafe = scopeCloseUnsafe;
11480
11497
  const use$1 = scopeUse;
11481
11498
 
11482
11499
  //#endregion
11483
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Layer.js
11500
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Layer.js
11484
11501
  const TypeId$62 = "~effect/Layer";
11485
11502
  const MemoMapTypeId = "~effect/Layer/MemoMap";
11486
11503
  /**
@@ -12342,7 +12359,7 @@ const orDie$3 = (self) => fromBuildUnsafe((memoMap, scope) => orDie$4(self.build
12342
12359
  const fresh = (self) => fromBuildUnsafe((_, scope) => self.build(makeMemoMapUnsafe(), scope));
12343
12360
 
12344
12361
  //#endregion
12345
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/ExecutionPlan.js
12362
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/ExecutionPlan.js
12346
12363
  /**
12347
12364
  * @since 3.16.0
12348
12365
  * @category Type IDs
@@ -12376,7 +12393,7 @@ const CurrentMetadata$1 = /* @__PURE__ */ Reference("effect/ExecutionPlan/Curren
12376
12393
  }) });
12377
12394
 
12378
12395
  //#endregion
12379
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Cause.js
12396
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Cause.js
12380
12397
  /**
12381
12398
  * @since 2.0.0
12382
12399
  */
@@ -12943,7 +12960,7 @@ const failureAnnotations = failureAnnotations$1;
12943
12960
  const annotations = causeAnnotations;
12944
12961
 
12945
12962
  //#endregion
12946
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Clock.js
12963
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Clock.js
12947
12964
  /**
12948
12965
  * A reference to the current Clock service in the environment.
12949
12966
  *
@@ -13019,7 +13036,7 @@ const currentTimeMillis = currentTimeMillis$1;
13019
13036
  const currentTimeNanos = currentTimeNanos$1;
13020
13037
 
13021
13038
  //#endregion
13022
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/dateTime.js
13039
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/dateTime.js
13023
13040
  /** @internal */
13024
13041
  const TypeId$59 = "~effect/time/DateTime";
13025
13042
  /** @internal */
@@ -13630,7 +13647,7 @@ const formatIsoOffset$1 = (self) => {
13630
13647
  const formatIsoZoned$1 = (self) => self.zone._tag === "Offset" ? formatIsoOffset$1(self) : `${formatIsoOffset$1(self)}[${self.zone.id}]`;
13631
13648
 
13632
13649
  //#endregion
13633
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Number.js
13650
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Number.js
13634
13651
  /**
13635
13652
  * The global `Number` constructor.
13636
13653
  *
@@ -13683,7 +13700,7 @@ const isNumber = isNumber$1;
13683
13700
  const Order$3 = Number$5;
13684
13701
 
13685
13702
  //#endregion
13686
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/String.js
13703
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/String.js
13687
13704
  /**
13688
13705
  * Reference to the global `String` constructor.
13689
13706
  *
@@ -13754,10 +13771,10 @@ const trim = (self) => self.trim();
13754
13771
  * @category guards
13755
13772
  * @since 2.0.0
13756
13773
  */
13757
- const isNonEmpty = (self) => self.length > 0;
13774
+ const isNonEmpty$1 = (self) => self.length > 0;
13758
13775
 
13759
13776
  //#endregion
13760
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Pull.js
13777
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Pull.js
13761
13778
  /**
13762
13779
  * @since 4.0.0
13763
13780
  */
@@ -13839,7 +13856,7 @@ const matchEffect$1 = /* @__PURE__ */ dual(2, (self, options) => matchCauseEffec
13839
13856
  }));
13840
13857
 
13841
13858
  //#endregion
13842
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Schedule.js
13859
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Schedule.js
13843
13860
  /**
13844
13861
  * This module provides utilities for creating and composing schedules for retrying operations,
13845
13862
  * repeating effects, and implementing various timing strategies.
@@ -14386,13 +14403,13 @@ const while_ = /* @__PURE__ */ dual(2, (self, predicate) => fromStep(map$11(toSt
14386
14403
  const forever$1 = /* @__PURE__ */ spaced(zero);
14387
14404
 
14388
14405
  //#endregion
14389
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/layer.js
14406
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/layer.js
14390
14407
  const provideLayer = (self, layer, options) => scopedWith$1((scope) => flatMap$4(options?.local ? buildWithMemoMap(layer, makeMemoMapUnsafe(), scope) : buildWithScope(layer, scope), (context) => provideServices$1(self, context)));
14391
14408
  /** @internal */
14392
14409
  const provide$2 = /* @__PURE__ */ dual((args) => isEffect$1(args[0]), (self, source, options) => isServiceMap(source) ? provideServices$1(self, source) : provideLayer(self, Array.isArray(source) ? mergeAll(...source) : source, options));
14393
14410
 
14394
14411
  //#endregion
14395
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/schedule.js
14412
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/schedule.js
14396
14413
  /** @internal */
14397
14414
  const repeatOrElse$1 = /* @__PURE__ */ dual(3, (self, schedule, orElse) => flatMap$4(toStepWithMetadata(schedule), (step) => {
14398
14415
  let meta = CurrentMetadata.defaultValue();
@@ -14451,7 +14468,7 @@ const buildFromOptions = (options) => {
14451
14468
  };
14452
14469
 
14453
14470
  //#endregion
14454
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/executionPlan.js
14471
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/executionPlan.js
14455
14472
  /** @internal */
14456
14473
  const withExecutionPlan$1 = /* @__PURE__ */ dual(2, (self, plan) => suspend$4(() => {
14457
14474
  let i = 0;
@@ -14510,7 +14527,7 @@ const scheduleFromStep = (step, first) => {
14510
14527
  const scheduleOnce = /* @__PURE__ */ recurs(1);
14511
14528
 
14512
14529
  //#endregion
14513
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Request.js
14530
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Request.js
14514
14531
  const TypeId$57 = "~effect/Request";
14515
14532
  const requestVariance = /* @__PURE__ */ byReferenceUnsafe({
14516
14533
  _E: (_) => _,
@@ -14531,7 +14548,7 @@ const RequestPrototype = {
14531
14548
  const makeEntry = (options) => options;
14532
14549
 
14533
14550
  //#endregion
14534
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/request.js
14551
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/request.js
14535
14552
  /** @internal */
14536
14553
  const request$2 = /* @__PURE__ */ dual(2, (self, resolver) => {
14537
14554
  const withResolver = (resolver) => callback$2((resume) => {
@@ -14631,7 +14648,7 @@ function runBatch(batch) {
14631
14648
  }
14632
14649
 
14633
14650
  //#endregion
14634
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Effect.js
14651
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Effect.js
14635
14652
  const TypeId$56 = EffectTypeId$1;
14636
14653
  /**
14637
14654
  * Tests if a value is an `Effect`.
@@ -21128,7 +21145,7 @@ const catchEager = catchEager$1;
21128
21145
  const fnUntracedEager = fnUntracedEager$1;
21129
21146
 
21130
21147
  //#endregion
21131
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/record.js
21148
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/record.js
21132
21149
  /**
21133
21150
  * @since 4.0.0
21134
21151
  */
@@ -21145,7 +21162,7 @@ function set$10(self, key, value) {
21145
21162
  }
21146
21163
 
21147
21164
  //#endregion
21148
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/schema/annotations.js
21165
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/schema/annotations.js
21149
21166
  /** @internal */
21150
21167
  function resolve$2(ast) {
21151
21168
  return ast.checks ? ast.checks[ast.checks.length - 1].annotations : ast.annotations;
@@ -21168,7 +21185,7 @@ const getExpected = /* @__PURE__ */ memoize((ast) => {
21168
21185
  });
21169
21186
 
21170
21187
  //#endregion
21171
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/RegExp.js
21188
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/RegExp.js
21172
21189
  /**
21173
21190
  * This module provides utility functions for working with RegExp in TypeScript.
21174
21191
  *
@@ -21223,7 +21240,7 @@ const isRegExp = isRegExp$1;
21223
21240
  const escape = (string) => string.replace(/[/\\^$*+?.()|[\]{}]/g, "\\$&");
21224
21241
 
21225
21242
  //#endregion
21226
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/DateTime.js
21243
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/DateTime.js
21227
21244
  TypeId$59;
21228
21245
  TimeZoneTypeId;
21229
21246
  /**
@@ -22837,7 +22854,7 @@ const formatIsoZoned = formatIsoZoned$1;
22837
22854
  const layerCurrentZoneNamed = /* @__PURE__ */ effect$1(CurrentTimeZone)(zoneMakeNamedEffect$1);
22838
22855
 
22839
22856
  //#endregion
22840
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/encoding/EncodingError.js
22857
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/encoding/EncodingError.js
22841
22858
  /**
22842
22859
  * @since 4.0.0
22843
22860
  */
@@ -22854,7 +22871,7 @@ var EncodingError = class extends TaggedError("EncodingError") {
22854
22871
  };
22855
22872
 
22856
22873
  //#endregion
22857
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/encoding/Base64.js
22874
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/encoding/Base64.js
22858
22875
  /**
22859
22876
  * This module provides encoding & decoding functionality for:
22860
22877
  *
@@ -23159,7 +23176,7 @@ const base64codes = [
23159
23176
  ];
23160
23177
 
23161
23178
  //#endregion
23162
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/encoding/Base64Url.js
23179
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/encoding/Base64Url.js
23163
23180
  /**
23164
23181
  * Encodes the given value into a base64 (URL) `string`.
23165
23182
  *
@@ -23182,7 +23199,7 @@ const encodeUint8Array = (data) => encode$1(data).replace(/=/g, "").replace(/\+/
23182
23199
  const encoder$1 = /* @__PURE__ */ new TextEncoder();
23183
23200
 
23184
23201
  //#endregion
23185
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/redacted.js
23202
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/redacted.js
23186
23203
  /** @internal */
23187
23204
  const redactedRegistry = /* @__PURE__ */ new WeakMap();
23188
23205
  /** @internal */
@@ -23192,7 +23209,7 @@ const value$2 = (self) => {
23192
23209
  };
23193
23210
 
23194
23211
  //#endregion
23195
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Redacted.js
23212
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Redacted.js
23196
23213
  /**
23197
23214
  * The Redacted module provides functionality for handling sensitive information
23198
23215
  * securely within your application. By using the `Redacted` data type, you can
@@ -23275,7 +23292,7 @@ const Proto$20 = {
23275
23292
  const value$1 = value$2;
23276
23293
 
23277
23294
  //#endregion
23278
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/SchemaIssue.js
23295
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/SchemaIssue.js
23279
23296
  const TypeId$54 = "~effect/SchemaIssue/Issue";
23280
23297
  /**
23281
23298
  * @since 4.0.0
@@ -23681,7 +23698,7 @@ function formatOption(actual) {
23681
23698
  }
23682
23699
 
23683
23700
  //#endregion
23684
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/SchemaGetter.js
23701
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/SchemaGetter.js
23685
23702
  /**
23686
23703
  * @since 4.0.0
23687
23704
  */
@@ -23857,7 +23874,7 @@ function collectBracketPathEntries(isLeaf) {
23857
23874
  }
23858
23875
 
23859
23876
  //#endregion
23860
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/SchemaTransformation.js
23877
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/SchemaTransformation.js
23861
23878
  /**
23862
23879
  * @since 4.0.0
23863
23880
  */
@@ -23969,7 +23986,7 @@ const uint8ArrayFromBase64String = /* @__PURE__ */ new Transformation(/* @__PURE
23969
23986
  const fromJsonString$1 = /* @__PURE__ */ new Transformation(/* @__PURE__ */ parseJson$1(), /* @__PURE__ */ stringifyJson());
23970
23987
 
23971
23988
  //#endregion
23972
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/SchemaAST.js
23989
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/SchemaAST.js
23973
23990
  /**
23974
23991
  * @since 4.0.0
23975
23992
  */
@@ -25420,7 +25437,7 @@ const resolveTitle = resolveTitle$1;
25420
25437
  const resolveDescription = resolveDescription$1;
25421
25438
 
25422
25439
  //#endregion
25423
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Brand.js
25440
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Brand.js
25424
25441
  /**
25425
25442
  * This function returns a `Constructor` that **does not apply any runtime
25426
25443
  * checks**, it just returns the provided value. It can be used to create
@@ -25442,7 +25459,7 @@ function nominal() {
25442
25459
  }
25443
25460
 
25444
25461
  //#endregion
25445
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/PlatformError.js
25462
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/PlatformError.js
25446
25463
  /**
25447
25464
  * @since 4.0.0
25448
25465
  */
@@ -25503,7 +25520,7 @@ const systemError = (options) => new PlatformError(new SystemError(options));
25503
25520
  const badArgument = (options) => new PlatformError(new BadArgument(options));
25504
25521
 
25505
25522
  //#endregion
25506
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Chunk.js
25523
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Chunk.js
25507
25524
  /**
25508
25525
  * The `Chunk` module provides an immutable, high-performance sequence data structure
25509
25526
  * optimized for functional programming patterns. A `Chunk` is a persistent data structure
@@ -26245,7 +26262,7 @@ const reduce$2 = reduce$3;
26245
26262
  const reduceRight = reduceRight$1;
26246
26263
 
26247
26264
  //#endregion
26248
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Fiber.js
26265
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Fiber.js
26249
26266
  `${version$1}`;
26250
26267
  const await_ = fiberAwait;
26251
26268
  /**
@@ -26453,7 +26470,7 @@ const getCurrent = getCurrentFiber;
26453
26470
  const runIn = fiberRunIn;
26454
26471
 
26455
26472
  //#endregion
26456
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/MutableList.js
26473
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/MutableList.js
26457
26474
  /**
26458
26475
  * @fileoverview
26459
26476
  * MutableList is an efficient, mutable linked list implementation optimized for high-throughput
@@ -26996,7 +27013,7 @@ const filter$3 = (self, f) => {
26996
27013
  const remove$6 = (self, value) => filter$3(self, (v) => v !== value);
26997
27014
 
26998
27015
  //#endregion
26999
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/MutableRef.js
27016
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/MutableRef.js
27000
27017
  const TypeId$49 = "~effect/MutableRef";
27001
27018
  const MutableRefProto = {
27002
27019
  [TypeId$49]: TypeId$49,
@@ -27081,7 +27098,7 @@ const set$9 = /* @__PURE__ */ dual(2, (self, value) => {
27081
27098
  });
27082
27099
 
27083
27100
  //#endregion
27084
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/PubSub.js
27101
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/PubSub.js
27085
27102
  /**
27086
27103
  * This module provides utilities for working with publish-subscribe (PubSub) systems.
27087
27104
  *
@@ -27315,7 +27332,7 @@ var PubSubImpl = class {
27315
27332
  };
27316
27333
 
27317
27334
  //#endregion
27318
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Queue.js
27335
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Queue.js
27319
27336
  /**
27320
27337
  * @since 3.8.0
27321
27338
  */
@@ -28042,7 +28059,7 @@ const finalize = (self, exit) => {
28042
28059
  };
28043
28060
 
28044
28061
  //#endregion
28045
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Channel.js
28062
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Channel.js
28046
28063
  /**
28047
28064
  * The `Channel` module provides a powerful abstraction for bi-directional communication
28048
28065
  * and streaming operations. A `Channel` is a nexus of I/O operations that supports both
@@ -29395,7 +29412,7 @@ const toPull$1 = /* @__PURE__ */ fnUntraced(function* (self) {
29395
29412
  const toPullScoped = (self, scope) => toTransform(self)(done(), scope);
29396
29413
 
29397
29414
  //#endregion
29398
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/stream.js
29415
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/stream.js
29399
29416
  const TypeId$45 = "~effect/Stream";
29400
29417
  const streamVariance = {
29401
29418
  _R: identity,
@@ -29416,7 +29433,7 @@ const fromChannel$2 = (channel) => {
29416
29433
  };
29417
29434
 
29418
29435
  //#endregion
29419
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Sink.js
29436
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Sink.js
29420
29437
  const TypeId$44 = "~effect/Sink";
29421
29438
  const endVoid = /* @__PURE__ */ succeed$1([void 0]);
29422
29439
  const sinkVariance = {
@@ -29622,7 +29639,7 @@ const forEachArray = (f) => fromTransform((upstream) => upstream.pipe(flatMap$2(
29622
29639
  const unwrap$1 = (effect) => fromChannel$1(unwrap$2(map$8(effect, toChannel$1)));
29623
29640
 
29624
29641
  //#endregion
29625
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/MutableHashMap.js
29642
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/MutableHashMap.js
29626
29643
  const TypeId$43 = "~effect/collections/MutableHashMap";
29627
29644
  const MutableHashMapProto = {
29628
29645
  [TypeId$43]: TypeId$43,
@@ -29989,7 +30006,7 @@ const clear$1 = (self) => {
29989
30006
  const size$2 = (self) => self.backing.size;
29990
30007
 
29991
30008
  //#endregion
29992
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/RcMap.js
30009
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/RcMap.js
29993
30010
  /**
29994
30011
  * @since 3.5.0
29995
30012
  */
@@ -30189,7 +30206,7 @@ const invalidate$4 = /* @__PURE__ */ dual(2, /* @__PURE__ */ fnUntraced(function
30189
30206
  }, uninterruptible));
30190
30207
 
30191
30208
  //#endregion
30192
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/rcRef.js
30209
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/rcRef.js
30193
30210
  const TypeId$41 = "~effect/RcRef";
30194
30211
  const stateEmpty = { _tag: "Empty" };
30195
30212
  const stateClosed = { _tag: "Closed" };
@@ -30288,7 +30305,7 @@ const invalidate$3 = (self_) => {
30288
30305
  };
30289
30306
 
30290
30307
  //#endregion
30291
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/RcRef.js
30308
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/RcRef.js
30292
30309
  /**
30293
30310
  * Create an `RcRef` from an acquire `Effect`.
30294
30311
  *
@@ -30363,7 +30380,7 @@ const get$8 = get$9;
30363
30380
  const invalidate$2 = invalidate$3;
30364
30381
 
30365
30382
  //#endregion
30366
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Stream.js
30383
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Stream.js
30367
30384
  /**
30368
30385
  * @since 2.0.0
30369
30386
  */
@@ -31560,7 +31577,7 @@ const toReadableStreamWith = /* @__PURE__ */ dual((args) => isStream(args[0]), (
31560
31577
  const toReadableStreamEffect = /* @__PURE__ */ dual((args) => isStream(args[0]), (self, options) => map$8(services(), (context) => toReadableStreamWith(self, context, options)));
31561
31578
 
31562
31579
  //#endregion
31563
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/FileSystem.js
31580
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/FileSystem.js
31564
31581
  /**
31565
31582
  * This module provides a comprehensive file system abstraction that supports both synchronous
31566
31583
  * and asynchronous file operations through Effect. It includes utilities for file I/O, directory
@@ -31783,7 +31800,7 @@ const FileDescriptor = /* @__PURE__ */ nominal();
31783
31800
  var WatchBackend = class extends Service$1()("effect/platform/FileSystem/WatchBackend") {};
31784
31801
 
31785
31802
  //#endregion
31786
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Path.js
31803
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Path.js
31787
31804
  /**
31788
31805
  * @since 4.0.0
31789
31806
  */
@@ -32208,7 +32225,7 @@ const posixImpl = /* @__PURE__ */ Path$1.of({
32208
32225
  });
32209
32226
 
32210
32227
  //#endregion
32211
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/ConfigProvider.js
32228
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/ConfigProvider.js
32212
32229
  /**
32213
32230
  * @category Constructors
32214
32231
  * @since 4.0.0
@@ -32319,7 +32336,7 @@ function trieNodeAt(root, path) {
32319
32336
  }
32320
32337
 
32321
32338
  //#endregion
32322
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/LogLevel.js
32339
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/LogLevel.js
32323
32340
  /**
32324
32341
  * @since 2.0.0
32325
32342
  *
@@ -32520,7 +32537,7 @@ const isGreaterThan$1 = isLogLevelGreaterThan;
32520
32537
  const isLessThan$1 = /* @__PURE__ */ isLessThan$4(Order);
32521
32538
 
32522
32539
  //#endregion
32523
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Struct.js
32540
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Struct.js
32524
32541
  /**
32525
32542
  * Given a struct of `Equivalence`s returns a new `Equivalence` that compares values of a struct
32526
32543
  * by applying each `Equivalence` to the corresponding property of the struct.
@@ -32595,7 +32612,7 @@ const makeOrder = Struct$2;
32595
32612
  const lambda = (f) => f;
32596
32613
 
32597
32614
  //#endregion
32598
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/SchemaParser.js
32615
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/SchemaParser.js
32599
32616
  /**
32600
32617
  * @since 4.0.0
32601
32618
  */
@@ -32833,7 +32850,7 @@ const recur$1 = /* @__PURE__ */ memoize((ast) => {
32833
32850
  });
32834
32851
 
32835
32852
  //#endregion
32836
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/JsonPointer.js
32853
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/JsonPointer.js
32837
32854
  /**
32838
32855
  * Utilities for escaping and unescaping JSON Pointer reference tokens according to RFC 6901.
32839
32856
  *
@@ -32927,7 +32944,7 @@ function escapeToken(token) {
32927
32944
  }
32928
32945
 
32929
32946
  //#endregion
32930
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/schema/schema.js
32947
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/schema/schema.js
32931
32948
  /** @internal */
32932
32949
  const TypeId$37 = "~effect/Schema/Schema";
32933
32950
  const SchemaProto = {
@@ -32956,7 +32973,7 @@ function make$39(ast, options) {
32956
32973
  }
32957
32974
 
32958
32975
  //#endregion
32959
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/schema/to-codec.js
32976
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/schema/to-codec.js
32960
32977
  /** @internal */
32961
32978
  const toCodecJson$1 = /* @__PURE__ */ toCodec((ast) => {
32962
32979
  const out = toCodecJsonBase(ast);
@@ -33026,7 +33043,7 @@ function makeReorder(getPriority) {
33026
33043
  const unknownToNull = /* @__PURE__ */ new Link(null_, /* @__PURE__ */ new Transformation(/* @__PURE__ */ passthrough$1(), /* @__PURE__ */ transform$3(() => null)));
33027
33044
 
33028
33045
  //#endregion
33029
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/schema/representation.js
33046
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/schema/representation.js
33030
33047
  /** @internal */
33031
33048
  function fromAST(ast) {
33032
33049
  const { references, representations: schemas } = fromASTs([ast]);
@@ -33638,7 +33655,7 @@ function getPartPattern(part) {
33638
33655
  }
33639
33656
 
33640
33657
  //#endregion
33641
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Schema.js
33658
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Schema.js
33642
33659
  const TypeId$36 = TypeId$37;
33643
33660
  /**
33644
33661
  * An API for creating schemas for parametric types.
@@ -34860,6 +34877,67 @@ const isBetweenBigInt = /* @__PURE__ */ makeIsBetween({
34860
34877
  })
34861
34878
  });
34862
34879
  /**
34880
+ * Validates that a value has at least the specified length. Works with strings
34881
+ * and arrays.
34882
+ *
34883
+ * **JSON Schema**
34884
+ *
34885
+ * This check corresponds to the `minLength` constraint for strings or the
34886
+ * `minItems` constraint for arrays in JSON Schema.
34887
+ *
34888
+ * **Arbitrary**
34889
+ *
34890
+ * When generating test data with fast-check, this applies a `minLength`
34891
+ * constraint to ensure generated strings or arrays have at least the required
34892
+ * length.
34893
+ *
34894
+ * @category Length checks
34895
+ * @since 4.0.0
34896
+ */
34897
+ function isMinLength(minLength, annotations) {
34898
+ minLength = Math.max(0, Math.floor(minLength));
34899
+ return makeFilter((input) => input.length >= minLength, {
34900
+ expected: `a value with a length of at least ${minLength}`,
34901
+ meta: {
34902
+ _tag: "isMinLength",
34903
+ minLength
34904
+ },
34905
+ [STRUCTURAL_ANNOTATION_KEY]: true,
34906
+ toArbitraryConstraint: {
34907
+ string: { minLength },
34908
+ array: { minLength }
34909
+ },
34910
+ ...annotations
34911
+ });
34912
+ }
34913
+ /**
34914
+ * Validates that a value has at least one element. Works with strings and arrays.
34915
+ * This is equivalent to `isMinLength(1)`.
34916
+ *
34917
+ * **JSON Schema**
34918
+ *
34919
+ * This check corresponds to the `minLength: 1` constraint for strings or the
34920
+ * `minItems: 1` constraint for arrays in JSON Schema.
34921
+ *
34922
+ * **Arbitrary**
34923
+ *
34924
+ * When generating test data with fast-check, this applies a `minLength: 1`
34925
+ * constraint to ensure generated strings or arrays are non-empty.
34926
+ *
34927
+ * @category Length checks
34928
+ * @since 4.0.0
34929
+ */
34930
+ function isNonEmpty(annotations) {
34931
+ return isMinLength(1, annotations);
34932
+ }
34933
+ /**
34934
+ * A schema for non-empty strings. Validates that a string has at least one
34935
+ * character.
34936
+ *
34937
+ * @since 4.0.0
34938
+ */
34939
+ const NonEmptyString = /* @__PURE__ */ String$1.check(/* @__PURE__ */ isNonEmpty());
34940
+ /**
34863
34941
  * @category Option
34864
34942
  * @since 4.0.0
34865
34943
  */
@@ -35662,7 +35740,7 @@ function onSerializerEnsureArray(ast) {
35662
35740
  }
35663
35741
 
35664
35742
  //#endregion
35665
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Config.js
35743
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Config.js
35666
35744
  const TypeId$35 = "~effect/Config";
35667
35745
  /**
35668
35746
  * @since 4.0.0
@@ -35952,7 +36030,7 @@ function int(name) {
35952
36030
  }
35953
36031
 
35954
36032
  //#endregion
35955
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/CliError.js
36033
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/CliError.js
35956
36034
  /**
35957
36035
  * @since 4.0.0
35958
36036
  */
@@ -46956,7 +47034,7 @@ var require_dist = /* @__PURE__ */ __commonJSMin$1(((exports) => {
46956
47034
  }));
46957
47035
 
46958
47036
  //#endregion
46959
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/Primitive.js
47037
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/Primitive.js
46960
47038
  var import_ini = /* @__PURE__ */ __toESM(require_ini(), 1);
46961
47039
  var import_toml = /* @__PURE__ */ __toESM(require_toml(), 1);
46962
47040
  var import_dist = /* @__PURE__ */ __toESM(require_dist(), 1);
@@ -47225,7 +47303,7 @@ const getTypeName = (primitive) => {
47225
47303
  };
47226
47304
 
47227
47305
  //#endregion
47228
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Terminal.js
47306
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Terminal.js
47229
47307
  const TypeId$33 = "~effect/platform/Terminal";
47230
47308
  const QuitErrorTypeId = "effect/platform/Terminal/QuitError";
47231
47309
  /**
@@ -47263,7 +47341,7 @@ const make$36 = (impl) => Terminal.of({
47263
47341
  });
47264
47342
 
47265
47343
  //#endregion
47266
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/ansi.js
47344
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/ansi.js
47267
47345
  const ESC = "\x1B[";
47268
47346
  const BEL = "\x07";
47269
47347
  const SEP = ";";
@@ -47354,7 +47432,7 @@ const eraseLines = (rows) => {
47354
47432
  };
47355
47433
 
47356
47434
  //#endregion
47357
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/Prompt.js
47435
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/Prompt.js
47358
47436
  /**
47359
47437
  * @since 4.0.0
47360
47438
  */
@@ -47490,7 +47568,7 @@ const select = (options) => {
47490
47568
  return custom(getSelectInitialIndex(opts.choices), {
47491
47569
  render: handleSelectRender(opts),
47492
47570
  process: handleSelectProcess(opts),
47493
- clear: () => handleSelectClear(opts)
47571
+ clear: handleSelectClear(opts)
47494
47572
  });
47495
47573
  };
47496
47574
  /**
@@ -47552,7 +47630,7 @@ const multiSelect = (options) => {
47552
47630
  }, {
47553
47631
  render: handleMultiSelectRender(opts),
47554
47632
  process: handleMultiSelectProcess(opts),
47555
- clear: () => handleMultiSelectClear(opts)
47633
+ clear: handleMultiSelectClear(opts)
47556
47634
  });
47557
47635
  };
47558
47636
  /**
@@ -47633,12 +47711,27 @@ const lines = (prompt, columns) => {
47633
47711
  const lines = prompt.split(NEWLINE_REGEXP);
47634
47712
  return columns === 0 ? lines.length : pipe(map$12(lines, (line) => Math.ceil(line.length / columns)), reduce$3(0, (left, right) => left + right));
47635
47713
  };
47714
+ const clearOutputWithError = (outputText, columns, errorText) => {
47715
+ if (errorText !== void 0 && errorText.length > 0) return cursorDown(lines(errorText, columns)) + eraseText(`\n${errorText}`, columns) + eraseText(outputText, columns);
47716
+ return eraseText(outputText, columns);
47717
+ };
47636
47718
  const renderBeep = beep;
47637
47719
  const NEWLINE_REGEXP = /\r?\n/;
47638
- const renderMultiSelectError = (state, pointer) => {
47720
+ const renderPrompt = (confirm, message, leadingSymbol, trailingSymbol, options) => {
47721
+ const prefix = leadingSymbol + " ";
47722
+ const annotate = options?.plain === true ? (line) => line : annotateLine;
47723
+ return match$5(message.split(NEWLINE_REGEXP), {
47724
+ onEmpty: () => prefix + " " + trailingSymbol + " " + confirm,
47725
+ onNonEmpty: (promptLines) => {
47726
+ return prefix + map$12(promptLines, (line) => annotate(line)).join("\n") + " " + trailingSymbol + " " + confirm;
47727
+ }
47728
+ });
47729
+ };
47730
+ const renderMultiSelectError = (state, pointer, renderOptions) => {
47639
47731
  if (state.error !== void 0) return match$5(state.error.split(NEWLINE_REGEXP), {
47640
47732
  onEmpty: () => "",
47641
47733
  onNonEmpty: (errorLines) => {
47734
+ if (renderOptions?.plain === true) return `${pointer} ${errorLines.join("\n")}`;
47642
47735
  const prefix = annotate(pointer, red) + " ";
47643
47736
  const lines = map$12(errorLines, (str) => annotateErrorLine(str));
47644
47737
  return cursorSavePosition + "\n" + prefix + lines.join("\n") + cursorRestorePosition;
@@ -47646,12 +47739,12 @@ const renderMultiSelectError = (state, pointer) => {
47646
47739
  });
47647
47740
  return "";
47648
47741
  };
47649
- const renderChoiceDescription = (choice, isActive) => {
47650
- if (!choice.disabled && choice.description && isActive) return annotate("- " + choice.description, blackBright);
47742
+ const renderChoiceDescription = (choice, isActive, renderOptions) => {
47743
+ if (!choice.disabled && choice.description && isActive) return renderOptions?.plain === true ? "- " + choice.description : annotate("- " + choice.description, blackBright);
47651
47744
  return "";
47652
47745
  };
47653
47746
  const metaOptionsCount = 2;
47654
- const renderMultiSelectChoices = (state, options, figures) => {
47747
+ const renderMultiSelectChoices = (state, options, figures, renderOptions) => {
47655
47748
  const choices = options.choices;
47656
47749
  const totalChoices = choices.length;
47657
47750
  const selectAllText = state.selectedIndices.size === totalChoices ? options?.selectNone ?? "Select None" : options?.selectAll ?? "Select All";
@@ -47667,14 +47760,14 @@ const renderMultiSelectChoices = (state, options, figures) => {
47667
47760
  if (index === toDisplay.startIndex && toDisplay.startIndex > 0) prefix = figures.arrowUp;
47668
47761
  else if (index === toDisplay.endIndex - 1 && toDisplay.endIndex < allChoices.length) prefix = figures.arrowDown;
47669
47762
  if (index < metaOptions.length) {
47670
- const title = isHighlighted ? annotate(choice.title, cyanBright) : choice.title;
47763
+ const title = isHighlighted && renderOptions?.plain !== true ? annotate(choice.title, cyanBright) : choice.title;
47671
47764
  documents.push(prefix + " " + title);
47672
47765
  } else {
47673
47766
  const choiceIndex = index - metaOptions.length;
47674
47767
  const checkbox = state.selectedIndices.has(choiceIndex) ? figures.checkboxOn : figures.checkboxOff;
47675
- const annotatedCheckbox = isHighlighted ? annotate(checkbox, cyanBright) : checkbox;
47768
+ const annotatedCheckbox = isHighlighted && renderOptions?.plain !== true ? annotate(checkbox, cyanBright) : checkbox;
47676
47769
  const title = choice.title;
47677
- const description = renderChoiceDescription(choice, isHighlighted);
47770
+ const description = renderChoiceDescription(choice, isHighlighted, renderOptions);
47678
47771
  documents.push(prefix + " " + annotatedCheckbox + " " + title + " " + description);
47679
47772
  }
47680
47773
  }
@@ -47722,10 +47815,14 @@ const processSpace = (state, options) => {
47722
47815
  selectedIndices
47723
47816
  } }));
47724
47817
  };
47725
- const handleMultiSelectClear = /* @__PURE__ */ fnUntraced(function* (options) {
47818
+ const handleMultiSelectClear = (options) => fnUntraced(function* (state, _) {
47726
47819
  const columns = yield* (yield* Terminal).columns;
47820
+ const figures = yield* platformFigures;
47727
47821
  const clearPrompt = eraseLine + cursorLeft;
47728
- return eraseText("\n".repeat(Math.min(options.choices.length + 2, options.maxPerPage)) + options.message + 1, columns) + clearPrompt;
47822
+ const promptText = renderSelectOutput("?", figures.pointerSmall, options, { plain: true });
47823
+ const choicesText = renderMultiSelectChoices(state, options, figures, { plain: true });
47824
+ const errorText = renderMultiSelectError(state, figures.pointer, { plain: true });
47825
+ return clearOutputWithError(`${promptText}\n${choicesText}`, columns, errorText) + clearPrompt;
47729
47826
  });
47730
47827
  const handleMultiSelectProcess = (options) => {
47731
47828
  return (input, state) => {
@@ -47773,19 +47870,23 @@ const handleMultiSelectRender = (options) => {
47773
47870
  const handleNumberClear = (options) => {
47774
47871
  return fnUntraced(function* (state, _) {
47775
47872
  const columns = yield* (yield* Terminal).columns;
47873
+ const figures = yield* platformFigures;
47776
47874
  const resetCurrentLine = eraseLine + cursorLeft;
47777
- return (state.error !== void 0 ? cursorDown(lines(state.error, columns)) + eraseText(`\n${state.error}`, columns) : "") + eraseText(options.message, columns) + resetCurrentLine;
47875
+ const errorText = renderNumberError(state, figures.pointerSmall, { plain: true });
47876
+ return clearOutputWithError(renderNumberOutput(state, "?", figures.pointerSmall, options, { plain: true }), columns, errorText) + resetCurrentLine;
47778
47877
  });
47779
47878
  };
47780
- const renderNumberInput = (state, submitted) => {
47781
- const annotation = state.error !== void 0 ? red : combine(underlined, cyanBright);
47879
+ const renderNumberInput = (state, submitted, renderOptions) => {
47782
47880
  const value = state.value === "" ? "" : `${state.value}`;
47783
- return submitted ? value : annotate(value, annotation);
47881
+ if (submitted || renderOptions?.plain === true) return value;
47882
+ const annotation = state.error !== void 0 ? red : combine(underlined, cyanBright);
47883
+ return annotate(value, annotation);
47784
47884
  };
47785
- const renderNumberError = (state, pointer) => {
47885
+ const renderNumberError = (state, pointer, renderOptions) => {
47786
47886
  if (state.error !== void 0) return match$5(state.error.split(NEWLINE_REGEXP), {
47787
47887
  onEmpty: () => "",
47788
47888
  onNonEmpty: (errorLines) => {
47889
+ if (renderOptions?.plain === true) return `${pointer} ${errorLines.join("\n")}`;
47789
47890
  const prefix = annotate(pointer, red) + " ";
47790
47891
  const lines = map$12(errorLines, (str) => annotateErrorLine(str));
47791
47892
  return cursorSavePosition + "\n" + prefix + lines.join("\n") + cursorRestorePosition;
@@ -47793,14 +47894,8 @@ const renderNumberError = (state, pointer) => {
47793
47894
  });
47794
47895
  return "";
47795
47896
  };
47796
- const renderNumberOutput = (state, leadingSymbol, trailingSymbol, options, submitted = false) => {
47797
- const prefix = leadingSymbol + " ";
47798
- return match$5(options.message.split(NEWLINE_REGEXP), {
47799
- onEmpty: () => prefix + " " + trailingSymbol + " " + renderNumberInput(state, submitted),
47800
- onNonEmpty: (promptLines) => {
47801
- return prefix + map$12(promptLines, (line) => annotateLine(line)).join("\n") + " " + trailingSymbol + " " + renderNumberInput(state, submitted);
47802
- }
47803
- });
47897
+ const renderNumberOutput = (state, leadingSymbol, trailingSymbol, options, renderOptions, submitted = false) => {
47898
+ return renderPrompt(renderNumberInput(state, submitted, renderOptions), options.message, leadingSymbol, trailingSymbol, renderOptions);
47804
47899
  };
47805
47900
  const renderNumberNextFrame = /* @__PURE__ */ fnUntraced(function* (state, options) {
47806
47901
  const figures = yield* platformFigures;
@@ -47811,7 +47906,7 @@ const renderNumberNextFrame = /* @__PURE__ */ fnUntraced(function* (state, optio
47811
47906
  });
47812
47907
  const renderNumberSubmission = /* @__PURE__ */ fnUntraced(function* (nextState, options) {
47813
47908
  const figures = yield* platformFigures;
47814
- return renderNumberOutput(nextState, annotate(figures.tick, green$1), annotate(figures.ellipsis, blackBright), options, true) + "\n";
47909
+ return renderNumberOutput(nextState, annotate(figures.tick, green$1), annotate(figures.ellipsis, blackBright), options, void 0, true) + "\n";
47815
47910
  });
47816
47911
  const processNumberBackspace = (state) => {
47817
47912
  if (state.value.length <= 0) return succeed$1(Action.Beep());
@@ -47907,80 +48002,68 @@ const updateAutoCompleteState = (state, options, query) => {
47907
48002
  };
47908
48003
  };
47909
48004
  const autoCompleteCursor = (state) => findFirstIndex$1(state.filtered, (index) => index === state.index) ?? 0;
47910
- const renderSelectOutput = (leadingSymbol, trailingSymbol, options) => {
47911
- const prefix = leadingSymbol + " ";
47912
- return match$5(options.message.split(NEWLINE_REGEXP), {
47913
- onEmpty: () => prefix + " " + trailingSymbol,
47914
- onNonEmpty: (promptLines) => {
47915
- return prefix + map$12(promptLines, (line) => annotateLine(line)).join("\n") + " " + trailingSymbol + " ";
47916
- }
47917
- });
47918
- };
47919
- const renderAutoCompleteFilter = (state, options) => {
47920
- const filterValue = state.query.length === 0 ? annotate(options.filterPlaceholder, blackBright) : annotate(state.query, combine(underlined, cyanBright));
48005
+ const renderSelectOutput = (leadingSymbol, trailingSymbol, options, renderOptions) => renderPrompt("", options.message, leadingSymbol, trailingSymbol, renderOptions);
48006
+ const renderAutoCompleteFilter = (state, options, renderOptions) => {
48007
+ const filterValue = state.query.length === 0 ? renderOptions?.plain === true ? options.filterPlaceholder : annotate(options.filterPlaceholder, blackBright) : renderOptions?.plain === true ? state.query : annotate(state.query, combine(underlined, cyanBright));
47921
48008
  return `[${options.filterLabel}: ${filterValue}]`;
47922
48009
  };
47923
- const renderAutoCompleteOutput = (state, leadingSymbol, trailingSymbol, options) => {
47924
- const prefix = leadingSymbol + " ";
47925
- const filter = renderAutoCompleteFilter(state, options);
47926
- return match$5(options.message.split(NEWLINE_REGEXP), {
47927
- onEmpty: () => prefix + " " + trailingSymbol + " " + filter,
47928
- onNonEmpty: (promptLines) => {
47929
- return prefix + map$12(promptLines, (line) => annotateLine(line)).join("\n") + " " + trailingSymbol + " " + filter;
47930
- }
47931
- });
48010
+ const renderAutoCompleteOutput = (state, leadingSymbol, trailingSymbol, options, renderOptions) => {
48011
+ return renderPrompt(renderAutoCompleteFilter(state, options, renderOptions), options.message, leadingSymbol, trailingSymbol, renderOptions);
47932
48012
  };
47933
- const renderChoicePrefix = (state, choices, toDisplay, currentIndex, figures) => {
48013
+ const renderChoicePrefix = (state, choices, toDisplay, currentIndex, figures, renderOptions) => {
47934
48014
  let prefix = " ";
47935
48015
  if (currentIndex === toDisplay.startIndex && toDisplay.startIndex > 0) prefix = figures.arrowUp;
47936
48016
  else if (currentIndex === toDisplay.endIndex - 1 && toDisplay.endIndex < choices.length) prefix = figures.arrowDown;
48017
+ if (renderOptions?.plain === true) return state === currentIndex ? figures.pointer + prefix : prefix + " ";
47937
48018
  if (choices[currentIndex].disabled) {
47938
48019
  const annotation = combine(bold, blackBright);
47939
48020
  return state === currentIndex ? annotate(figures.pointer, annotation) + prefix : prefix + " ";
47940
48021
  }
47941
48022
  return state === currentIndex ? annotate(figures.pointer, cyanBright) + prefix : prefix + " ";
47942
48023
  };
47943
- const renderAutoCompleteChoicePrefix = (state, options, toDisplay, currentIndex, figures) => {
48024
+ const renderAutoCompleteChoicePrefix = (state, options, toDisplay, currentIndex, figures, renderOptions) => {
47944
48025
  let prefix = " ";
47945
48026
  if (currentIndex === toDisplay.startIndex && toDisplay.startIndex > 0) prefix = figures.arrowUp;
47946
48027
  else if (currentIndex === toDisplay.endIndex - 1 && toDisplay.endIndex < state.filtered.length) prefix = figures.arrowDown;
47947
48028
  const choiceIndex = state.filtered[currentIndex];
48029
+ if (renderOptions?.plain === true) return state.index === choiceIndex ? figures.pointer + prefix : prefix + " ";
47948
48030
  if (options.choices[choiceIndex].disabled) {
47949
48031
  const annotation = combine(bold, blackBright);
47950
48032
  return state.index === choiceIndex ? annotate(figures.pointer, annotation) + prefix : prefix + " ";
47951
48033
  }
47952
48034
  return state.index === choiceIndex ? annotate(figures.pointer, cyanBright) + prefix : prefix + " ";
47953
48035
  };
47954
- const renderChoiceTitle = (choice, isSelected) => {
48036
+ const renderChoiceTitle = (choice, isSelected, renderOptions) => {
48037
+ if (renderOptions?.plain === true) return choice.title;
47955
48038
  const title = choice.title;
47956
48039
  if (isSelected) return choice.disabled ? annotate(title, combine(underlined, blackBright)) : annotate(title, combine(underlined, cyanBright));
47957
48040
  return choice.disabled ? annotate(title, combine(strikethrough, blackBright)) : title;
47958
48041
  };
47959
- const renderSelectChoices = (state, options, figures) => {
48042
+ const renderSelectChoices = (state, options, figures, renderOptions) => {
47960
48043
  const choices = options.choices;
47961
48044
  const toDisplay = entriesToDisplay(state, choices.length, options.maxPerPage);
47962
48045
  const documents = [];
47963
48046
  for (let index = toDisplay.startIndex; index < toDisplay.endIndex; index++) {
47964
48047
  const choice = choices[index];
47965
48048
  const isSelected = state === index;
47966
- const prefix = renderChoicePrefix(state, choices, toDisplay, index, figures);
47967
- const title = renderChoiceTitle(choice, isSelected);
47968
- const description = renderChoiceDescription(choice, isSelected);
48049
+ const prefix = renderChoicePrefix(state, choices, toDisplay, index, figures, renderOptions);
48050
+ const title = renderChoiceTitle(choice, isSelected, renderOptions);
48051
+ const description = renderChoiceDescription(choice, isSelected, renderOptions);
47969
48052
  documents.push(prefix + title + " " + description);
47970
48053
  }
47971
48054
  return documents.join("\n");
47972
48055
  };
47973
- const renderAutoCompleteChoices = (state, options, figures) => {
47974
- if (state.filtered.length === 0) return annotate(options.emptyMessage, blackBright);
48056
+ const renderAutoCompleteChoices = (state, options, figures, renderOptions) => {
48057
+ if (state.filtered.length === 0) return renderOptions?.plain === true ? options.emptyMessage : annotate(options.emptyMessage, blackBright);
47975
48058
  const toDisplay = entriesToDisplay(autoCompleteCursor(state), state.filtered.length, options.maxPerPage);
47976
48059
  const documents = [];
47977
48060
  for (let index = toDisplay.startIndex; index < toDisplay.endIndex; index++) {
47978
48061
  const choiceIndex = state.filtered[index];
47979
48062
  const choice = options.choices[choiceIndex];
47980
48063
  const isSelected = state.index === choiceIndex;
47981
- const prefix = renderAutoCompleteChoicePrefix(state, options, toDisplay, index, figures);
47982
- const title = renderChoiceTitle(choice, isSelected);
47983
- const description = renderChoiceDescription(choice, isSelected);
48064
+ const prefix = renderAutoCompleteChoicePrefix(state, options, toDisplay, index, figures, renderOptions);
48065
+ const title = renderChoiceTitle(choice, isSelected, renderOptions);
48066
+ const description = renderChoiceDescription(choice, isSelected, renderOptions);
47984
48067
  documents.push(prefix + title + " " + description);
47985
48068
  }
47986
48069
  return documents.join("\n");
@@ -48064,18 +48147,17 @@ const handleAutoCompleteRender = (options) => {
48064
48147
  });
48065
48148
  };
48066
48149
  };
48067
- const handleSelectClear = /* @__PURE__ */ fnUntraced(function* (options) {
48150
+ const handleSelectClear = (options) => fnUntraced(function* (state, _) {
48068
48151
  const columns = yield* (yield* Terminal).columns;
48152
+ const figures = yield* platformFigures;
48069
48153
  const clearPrompt = eraseLine + cursorLeft;
48070
- return eraseText("\n".repeat(Math.min(options.choices.length, options.maxPerPage)) + options.message, columns) + clearPrompt;
48154
+ return eraseText(`${renderSelectOutput("?", figures.pointerSmall, options, { plain: true })}\n${renderSelectChoices(state, options, figures, { plain: true })}`, columns) + clearPrompt;
48071
48155
  });
48072
48156
  const handleAutoCompleteClear = (options) => fnUntraced(function* (state, _) {
48073
48157
  const columns = yield* (yield* Terminal).columns;
48158
+ const figures = yield* platformFigures;
48074
48159
  const clearPrompt = eraseLine + cursorLeft;
48075
- const filterValue = state.query.length === 0 ? options.filterPlaceholder : state.query;
48076
- const prompt = `${options.message} [${options.filterLabel}: ${filterValue}]`;
48077
- const visibleChoices = Math.min(Math.max(state.filtered.length, 1), options.maxPerPage);
48078
- return eraseText("\n".repeat(visibleChoices) + prompt, columns) + clearPrompt;
48160
+ return eraseText(`${renderAutoCompleteOutput(state, "?", figures.pointerSmall, options, { plain: true })}\n${renderAutoCompleteChoices(state, options, figures, { plain: true })}`, columns) + clearPrompt;
48079
48161
  });
48080
48162
  const handleSelectProcess = (options) => {
48081
48163
  return (input, state) => {
@@ -48120,11 +48202,18 @@ const getValue = (state, options) => {
48120
48202
  };
48121
48203
  const renderClearScreen = /* @__PURE__ */ fnUntraced(function* (state, options) {
48122
48204
  const columns = yield* (yield* Terminal).columns;
48205
+ const figures = yield* platformFigures;
48123
48206
  const resetCurrentLine = eraseLine + cursorLeft;
48124
- return (state.error !== void 0 ? cursorDown(lines(state.error, columns)) + eraseText(`\n${state.error}`, columns) : "") + eraseText(options.message, columns) + resetCurrentLine;
48207
+ const errorText = renderTextError(state, figures.pointerSmall, { plain: true });
48208
+ return clearOutputWithError(renderTextOutput(state, "?", figures.pointerSmall, options, { plain: true }), columns, errorText) + resetCurrentLine;
48125
48209
  });
48126
- const renderTextInput = (nextState, options, submitted) => {
48210
+ const renderTextInput = (nextState, options, submitted, renderOptions) => {
48127
48211
  const text = getValue(nextState, options);
48212
+ if (renderOptions?.plain === true) switch (options.type) {
48213
+ case "hidden": return "";
48214
+ case "password": return "*".repeat(text.length);
48215
+ case "text": return text;
48216
+ }
48128
48217
  const annotation = nextState.error !== void 0 ? red : submitted ? white : nextState.value.length === 0 ? blackBright : combine(underlined, cyanBright);
48129
48218
  switch (options.type) {
48130
48219
  case "hidden": return "";
@@ -48132,10 +48221,11 @@ const renderTextInput = (nextState, options, submitted) => {
48132
48221
  case "text": return annotate(text, annotation);
48133
48222
  }
48134
48223
  };
48135
- const renderTextError = (nextState, pointer) => {
48224
+ const renderTextError = (nextState, pointer, renderOptions) => {
48136
48225
  if (nextState.error !== void 0) return match$5(nextState.error.split(NEWLINE_REGEXP), {
48137
48226
  onEmpty: () => "",
48138
48227
  onNonEmpty: (errorLines) => {
48228
+ if (renderOptions?.plain === true) return `${pointer} ${errorLines.join("\n")}`;
48139
48229
  const prefix = annotate(pointer, red) + " ";
48140
48230
  const lines = map$12(errorLines, (str) => annotateErrorLine(str));
48141
48231
  return cursorSavePosition + "\n" + prefix + lines.join("\n") + cursorRestorePosition;
@@ -48143,11 +48233,8 @@ const renderTextError = (nextState, pointer) => {
48143
48233
  });
48144
48234
  return "";
48145
48235
  };
48146
- const renderTextOutput = (nextState, leadingSymbol, trailingSymbol, options, submitted = false) => {
48147
- const promptLines = options.message.split(NEWLINE_REGEXP);
48148
- const prefix = leadingSymbol + " ";
48149
- if (isReadonlyArrayNonEmpty(promptLines)) return prefix + map$12(promptLines, (line) => annotateLine(line)).join("\n") + " " + trailingSymbol + " " + renderTextInput(nextState, options, submitted);
48150
- return prefix + " " + trailingSymbol + " " + renderTextInput(nextState, options, submitted);
48236
+ const renderTextOutput = (nextState, leadingSymbol, trailingSymbol, options, renderOptions, submitted = false) => {
48237
+ return renderPrompt(renderTextInput(nextState, options, submitted, renderOptions), options.message, leadingSymbol, trailingSymbol, renderOptions);
48151
48238
  };
48152
48239
  const renderTextNextFrame = /* @__PURE__ */ fnUntraced(function* (state, options) {
48153
48240
  const figures = yield* platformFigures;
@@ -48158,7 +48245,7 @@ const renderTextNextFrame = /* @__PURE__ */ fnUntraced(function* (state, options
48158
48245
  });
48159
48246
  const renderTextSubmission = /* @__PURE__ */ fnUntraced(function* (state, options) {
48160
48247
  const figures = yield* platformFigures;
48161
- return renderTextOutput(state, annotate(figures.tick, green$1), annotate(figures.ellipsis, blackBright), options, true) + "\n";
48248
+ return renderTextOutput(state, annotate(figures.tick, green$1), annotate(figures.ellipsis, blackBright), options, void 0, true) + "\n";
48162
48249
  });
48163
48250
  const processTextBackspace = (state) => {
48164
48251
  if (state.cursor <= 0) return succeed$1(Action.Beep());
@@ -48268,8 +48355,9 @@ const basePrompt = (options, type) => {
48268
48355
  };
48269
48356
  const handleToggleClear = /* @__PURE__ */ fnUntraced(function* (options) {
48270
48357
  const columns = yield* (yield* Terminal).columns;
48358
+ const figures = yield* platformFigures;
48271
48359
  const clearPrompt = eraseLine + cursorLeft;
48272
- return eraseText(options.message, columns) + clearPrompt;
48360
+ return eraseText(renderPrompt(`${options.active} / ${options.inactive}`, options.message, "?", figures.pointerSmall, { plain: true }), columns) + clearPrompt;
48273
48361
  });
48274
48362
  const renderToggle = (value, options, submitted = false) => {
48275
48363
  const separator = annotate("/", blackBright);
@@ -48337,7 +48425,7 @@ const entriesToDisplay = (cursor, total, maxVisible) => {
48337
48425
  };
48338
48426
 
48339
48427
  //#endregion
48340
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/Param.js
48428
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/Param.js
48341
48429
  /**
48342
48430
  * @internal
48343
48431
  *
@@ -49027,7 +49115,7 @@ const getParamMetadata = (param) => {
49027
49115
  };
49028
49116
 
49029
49117
  //#endregion
49030
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/Argument.js
49118
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/Argument.js
49031
49119
  /**
49032
49120
  * Creates a positional path argument.
49033
49121
  *
@@ -49089,7 +49177,7 @@ const withDescription$2 = /* @__PURE__ */ dual(2, (self, description) => withDes
49089
49177
  const withDefault$1 = withDefault$2;
49090
49178
 
49091
49179
  //#endregion
49092
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/CliOutput.js
49180
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/CliOutput.js
49093
49181
  /**
49094
49182
  * Service reference for the CLI output formatter. Provides a default implementation
49095
49183
  * that can be overridden for custom formatting or testing.
@@ -49291,7 +49379,7 @@ const formatHelpDocImpl = (doc, colors) => {
49291
49379
  };
49292
49380
 
49293
49381
  //#endregion
49294
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Console.js
49382
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Console.js
49295
49383
  /**
49296
49384
  * A reference to the current console service in the Effect system.
49297
49385
  *
@@ -49384,7 +49472,7 @@ const log = (...args) => consoleWith((console) => sync$1(() => {
49384
49472
  }));
49385
49473
 
49386
49474
  //#endregion
49387
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/config.js
49475
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/config.js
49388
49476
  const ConfigInternalTypeId = "~effect/cli/Command/Config/Internal";
49389
49477
  /**
49390
49478
  * Parses a Command.Config into a ConfigInternal.
@@ -49454,7 +49542,7 @@ const reconstructTree = (tree, results) => {
49454
49542
  };
49455
49543
 
49456
49544
  //#endregion
49457
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/command.js
49545
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/command.js
49458
49546
  /**
49459
49547
  * Command Implementation
49460
49548
  * ======================
@@ -49607,7 +49695,7 @@ const getHelpForCommandPath = (command, commandPath) => {
49607
49695
  };
49608
49696
 
49609
49697
  //#endregion
49610
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/bash.js
49698
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/bash.js
49611
49699
  /**
49612
49700
  * Dynamic Bash completion template.
49613
49701
  * This generates a completion script that calls the CLI at runtime to get completions.
@@ -49664,7 +49752,7 @@ complete -F _${executableName}_dynamic_completions ${executableName}
49664
49752
  };
49665
49753
 
49666
49754
  //#endregion
49667
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/fish.js
49755
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/fish.js
49668
49756
  /**
49669
49757
  * Dynamic Fish completion template.
49670
49758
  * This generates a completion script that calls the CLI at runtime to get completions.
@@ -49724,7 +49812,7 @@ complete -c ${executableName} -f -a '(__${executableName}_complete)'
49724
49812
  };
49725
49813
 
49726
49814
  //#endregion
49727
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/zsh.js
49815
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/zsh.js
49728
49816
  /**
49729
49817
  * Dynamic Zsh completion template.
49730
49818
  * This generates a completion script that calls the CLI at runtime to get completions.
@@ -49846,7 +49934,7 @@ fi
49846
49934
  };
49847
49935
 
49848
49936
  //#endregion
49849
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/core.js
49937
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/core.js
49850
49938
  /**
49851
49939
  * Core dynamic completion functions.
49852
49940
  */
@@ -49876,7 +49964,7 @@ const isCompletionRequest = (args) => {
49876
49964
  };
49877
49965
 
49878
49966
  //#endregion
49879
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/completions/shared.js
49967
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/completions/shared.js
49880
49968
  /** @internal */
49881
49969
  const getSingles = (flags) => flags.flatMap(extractSingleParams).filter((s) => s.kind === "flag").map((s) => {
49882
49970
  const description = s.description;
@@ -49893,12 +49981,12 @@ const getSingles = (flags) => flags.flatMap(extractSingleParams).filter((s) => s
49893
49981
  });
49894
49982
 
49895
49983
  //#endregion
49896
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/completions/types.js
49984
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/completions/types.js
49897
49985
  /** @internal */
49898
49986
  const optionRequiresValue = (s) => s.primitiveTag !== "Boolean";
49899
49987
 
49900
49988
  //#endregion
49901
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/handler.js
49989
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/completions/dynamic/handler.js
49902
49990
  /**
49903
49991
  * Runtime completion handler for dynamic completion.
49904
49992
  * This processes completion requests from the shell and returns appropriate suggestions.
@@ -50070,7 +50158,7 @@ const handleCompletionRequest = (rootCmd) => {
50070
50158
  };
50071
50159
 
50072
50160
  //#endregion
50073
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/lexer.js
50161
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/lexer.js
50074
50162
  /** @internal */
50075
50163
  function lex(argv) {
50076
50164
  const endIndex = argv.indexOf("--");
@@ -50122,7 +50210,7 @@ const lexTokens = (args) => {
50122
50210
  };
50123
50211
 
50124
50212
  //#endregion
50125
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/auto-suggest.js
50213
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/auto-suggest.js
50126
50214
  /**
50127
50215
  * Simple Levenshtein distance implementation (small N, no perf worries)
50128
50216
  */
@@ -50151,7 +50239,7 @@ const suggest = (input, candidates) => {
50151
50239
  };
50152
50240
 
50153
50241
  //#endregion
50154
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/Flag.js
50242
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/Flag.js
50155
50243
  /**
50156
50244
  * Creates a boolean flag that can be enabled or disabled.
50157
50245
  *
@@ -50381,7 +50469,7 @@ const withFallbackConfig = /* @__PURE__ */ dual(2, (self, config) => withFallbac
50381
50469
  const map$3 = /* @__PURE__ */ dual(2, (self, f) => map$4(self, f));
50382
50470
 
50383
50471
  //#endregion
50384
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/builtInFlags.js
50472
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/builtInFlags.js
50385
50473
  /**
50386
50474
  * Built-in options that are automatically available for CLI commands.
50387
50475
  * @since 4.0.0
@@ -50435,7 +50523,7 @@ const completionsFlag = /* @__PURE__ */ choice("completions", [
50435
50523
  ]).pipe(optional, /* @__PURE__ */ map$3((v) => map$14(v, (s) => s === "sh" ? "bash" : s)), /* @__PURE__ */ withDescription$1("Print shell completion script for the given shell"));
50436
50524
 
50437
50525
  //#endregion
50438
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/internal/parser.js
50526
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/internal/parser.js
50439
50527
  /**
50440
50528
  * Parsing Pipeline for CLI Commands
50441
50529
  * ==================================
@@ -50746,7 +50834,7 @@ const scanCommandLevel = (tokens, context) => {
50746
50834
  };
50747
50835
 
50748
50836
  //#endregion
50749
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/cli/Command.js
50837
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/cli/Command.js
50750
50838
  /**
50751
50839
  * @since 4.0.0
50752
50840
  */
@@ -51095,7 +51183,7 @@ const runWith = (command, config) => {
51095
51183
  };
51096
51184
 
51097
51185
  //#endregion
51098
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Cache.js
51186
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Cache.js
51099
51187
  /**
51100
51188
  * @since 4.0.0
51101
51189
  */
@@ -51513,7 +51601,7 @@ const invalidate$1 = /* @__PURE__ */ dual(2, (self, key) => sync$1(() => {
51513
51601
  }));
51514
51602
 
51515
51603
  //#endregion
51516
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/FiberHandle.js
51604
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/FiberHandle.js
51517
51605
  /**
51518
51606
  * @since 2.0.0
51519
51607
  */
@@ -51709,7 +51797,7 @@ const runImpl$2 = (self, effect, options) => withFiber((parent) => {
51709
51797
  });
51710
51798
 
51711
51799
  //#endregion
51712
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/FiberMap.js
51800
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/FiberMap.js
51713
51801
  /**
51714
51802
  * @since 2.0.0
51715
51803
  */
@@ -51940,7 +52028,7 @@ const runImpl$1 = (self, key, effect, options) => withFiber((parent) => {
51940
52028
  });
51941
52029
 
51942
52030
  //#endregion
51943
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/FiberSet.js
52031
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/FiberSet.js
51944
52032
  /**
51945
52033
  * @since 2.0.0
51946
52034
  */
@@ -52193,7 +52281,7 @@ const awaitEmpty = (self) => whileLoop({
52193
52281
  });
52194
52282
 
52195
52283
  //#endregion
52196
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/internal/hashMap.js
52284
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/internal/hashMap.js
52197
52285
  /**
52198
52286
  * @since 2.0.0
52199
52287
  */
@@ -52922,7 +53010,7 @@ const every$1 = /* @__PURE__ */ dual(2, (self, predicate) => {
52922
53010
  });
52923
53011
 
52924
53012
  //#endregion
52925
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/HashMap.js
53013
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/HashMap.js
52926
53014
  /**
52927
53015
  * @since 2.0.0
52928
53016
  */
@@ -53727,7 +53815,7 @@ const some = some$1;
53727
53815
  const every = every$1;
53728
53816
 
53729
53817
  //#endregion
53730
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/LayerMap.js
53818
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/LayerMap.js
53731
53819
  const TypeId$25 = "~effect/LayerMap";
53732
53820
  /**
53733
53821
  * @since 3.14.0
@@ -53894,7 +53982,7 @@ const Service = () => (id, options) => {
53894
53982
  };
53895
53983
 
53896
53984
  //#endregion
53897
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Logger.js
53985
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Logger.js
53898
53986
  /**
53899
53987
  * @since 2.0.0
53900
53988
  *
@@ -54342,7 +54430,7 @@ const consolePretty = consolePretty$1;
54342
54430
  const tracerLogger = tracerLogger$1;
54343
54431
 
54344
54432
  //#endregion
54345
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Ref.js
54433
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Ref.js
54346
54434
  const RefProto = {
54347
54435
  ["~effect/Ref"]: { _A: identity },
54348
54436
  ...PipeInspectableProto,
@@ -54384,7 +54472,7 @@ const makeUnsafe$2 = (value) => {
54384
54472
  };
54385
54473
 
54386
54474
  //#endregion
54387
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/reactivity/Reactivity.js
54475
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/reactivity/Reactivity.js
54388
54476
  /**
54389
54477
  * @since 4.0.0
54390
54478
  */
@@ -54521,7 +54609,7 @@ const keysToHashes = (keys, f) => {
54521
54609
  };
54522
54610
 
54523
54611
  //#endregion
54524
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/persistence/KeyValueStore.js
54612
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/persistence/KeyValueStore.js
54525
54613
  /**
54526
54614
  * @since 4.0.0
54527
54615
  */
@@ -54665,7 +54753,7 @@ const toSchemaStore = (self, schema) => {
54665
54753
  };
54666
54754
 
54667
54755
  //#endregion
54668
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Runtime.js
54756
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Runtime.js
54669
54757
  /**
54670
54758
  * This module provides utilities for running Effect programs and managing their execution lifecycle.
54671
54759
  *
@@ -54801,7 +54889,7 @@ const makeRunMain = (f) => dual((args) => isEffect(args[0]), (effect, options) =
54801
54889
  });
54802
54890
 
54803
54891
  //#endregion
54804
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/SynchronizedRef.js
54892
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/SynchronizedRef.js
54805
54893
  /**
54806
54894
  * @since 2.0.0
54807
54895
  */
@@ -54828,7 +54916,7 @@ const makeUnsafe$1 = (value) => {
54828
54916
  };
54829
54917
 
54830
54918
  //#endregion
54831
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/ScopedRef.js
54919
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/ScopedRef.js
54832
54920
  /**
54833
54921
  * @since 2.0.0
54834
54922
  */
@@ -54894,7 +54982,7 @@ const set$4 = /* @__PURE__ */ dual(2, /* @__PURE__ */ fnUntraced(function* (self
54894
54982
  }, uninterruptible, (effect, self) => self.backing.semaphore.withPermit(effect)));
54895
54983
 
54896
54984
  //#endregion
54897
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/Stdio.js
54985
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/Stdio.js
54898
54986
  /**
54899
54987
  * @since 4.0.0
54900
54988
  * @category Type IDs
@@ -54915,7 +55003,7 @@ const make$24 = (options) => ({
54915
55003
  });
54916
55004
 
54917
55005
  //#endregion
54918
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/SubscriptionRef.js
55006
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/SubscriptionRef.js
54919
55007
  /**
54920
55008
  * @since 2.0.0
54921
55009
  */
@@ -56424,7 +56512,7 @@ var Mime_default$1 = Mime;
56424
56512
  var src_default = new Mime_default$1(standard_default, other_default)._freeze();
56425
56513
 
56426
56514
  //#endregion
56427
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/Mime.js
56515
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/Mime.js
56428
56516
  /**
56429
56517
  * @since 1.0.0
56430
56518
  */
@@ -56435,7 +56523,7 @@ var src_default = new Mime_default$1(standard_default, other_default)._freeze();
56435
56523
  var Mime_default = src_default;
56436
56524
 
56437
56525
  //#endregion
56438
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/process/ChildProcessSpawner.js
56526
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/process/ChildProcessSpawner.js
56439
56527
  /**
56440
56528
  * A module providing a generic service interface for spawning child processes.
56441
56529
  *
@@ -56481,7 +56569,7 @@ const makeHandle = (params) => Object.assign(Object.create(HandleProto), params)
56481
56569
  const ChildProcessSpawner = /* @__PURE__ */ Service$1("effect/process/ChildProcessSpawner");
56482
56570
 
56483
56571
  //#endregion
56484
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/process/ChildProcess.js
56572
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/process/ChildProcess.js
56485
56573
  const TypeId$19 = "~effect/unstable/process/ChildProcess";
56486
56574
  const Proto$7 = {
56487
56575
  ...PipeInspectableProto,
@@ -56818,7 +56906,7 @@ const concatTokens = (prevTokens, nextTokens, isSeparated) => isSeparated || pre
56818
56906
  ];
56819
56907
 
56820
56908
  //#endregion
56821
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/internal/utils.js
56909
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/internal/utils.js
56822
56910
  /** @internal */
56823
56911
  const handleErrnoException = (module, method) => (err, [path]) => {
56824
56912
  let reason = "Unknown";
@@ -56856,7 +56944,7 @@ const handleErrnoException = (module, method) => (err, [path]) => {
56856
56944
  };
56857
56945
 
56858
56946
  //#endregion
56859
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodeSink.js
56947
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodeSink.js
56860
56948
  /**
56861
56949
  * @category constructors
56862
56950
  * @since 1.0.0
@@ -56895,7 +56983,7 @@ const pullIntoWritable = (options) => options.pull.pipe(flatMap$2((chunk) => {
56895
56983
  }) : identity);
56896
56984
 
56897
56985
  //#endregion
56898
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodeStream.js
56986
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodeStream.js
56899
56987
  /**
56900
56988
  * @since 1.0.0
56901
56989
  */
@@ -57026,7 +57114,7 @@ const readableToPullUnsafe = (options) => {
57026
57114
  const defaultOnError = (error) => new UnknownError(error);
57027
57115
 
57028
57116
  //#endregion
57029
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js
57117
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js
57030
57118
  const toError = (error) => error instanceof globalThis.Error ? error : new globalThis.Error(String(error));
57031
57119
  const toPlatformError = (method, error, command) => {
57032
57120
  const { commands } = flattenCommand(command);
@@ -57429,7 +57517,7 @@ const flattenCommand = (command) => {
57429
57517
  };
57430
57518
 
57431
57519
  //#endregion
57432
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/Cookies.js
57520
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/Cookies.js
57433
57521
  /**
57434
57522
  * @since 4.0.0
57435
57523
  */
@@ -57819,7 +57907,7 @@ const tryDecodeURIComponent = (str) => {
57819
57907
  };
57820
57908
 
57821
57909
  //#endregion
57822
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/Headers.js
57910
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/Headers.js
57823
57911
  /**
57824
57912
  * @since 4.0.0
57825
57913
  */
@@ -57940,7 +58028,7 @@ const CurrentRedactedNames = /* @__PURE__ */ Reference("effect/Headers/CurrentRe
57940
58028
  ] });
57941
58029
 
57942
58030
  //#endregion
57943
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpClientError.js
58031
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpClientError.js
57944
58032
  /**
57945
58033
  * @since 4.0.0
57946
58034
  */
@@ -58079,7 +58167,7 @@ var EmptyBodyError = class extends TaggedError("EmptyBodyError") {
58079
58167
  };
58080
58168
 
58081
58169
  //#endregion
58082
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/UrlParams.js
58170
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/UrlParams.js
58083
58171
  /**
58084
58172
  * @since 4.0.0
58085
58173
  */
@@ -58292,7 +58380,7 @@ const schemaRecord = /* @__PURE__ */ UrlParamsSchema.pipe(/* @__PURE__ */ decode
58292
58380
  })));
58293
58381
 
58294
58382
  //#endregion
58295
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpBody.js
58383
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpBody.js
58296
58384
  /**
58297
58385
  * @since 4.0.0
58298
58386
  */
@@ -58440,7 +58528,7 @@ var Stream = class extends Proto$3 {
58440
58528
  const stream$3 = (body, contentType, contentLength) => new Stream(body, contentType ?? "application/octet-stream", contentLength);
58441
58529
 
58442
58530
  //#endregion
58443
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpClientRequest.js
58531
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpClientRequest.js
58444
58532
  const TypeId$13 = "~effect/http/HttpClientRequest";
58445
58533
  const Proto$2 = {
58446
58534
  [TypeId$13]: TypeId$13,
@@ -58586,7 +58674,7 @@ const setBody = /* @__PURE__ */ dual(2, (self, body) => {
58586
58674
  const bodyUrlParams = /* @__PURE__ */ dual(2, (self, input) => setBody(self, urlParams(fromInput(input))));
58587
58675
 
58588
58676
  //#endregion
58589
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpIncomingMessage.js
58677
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpIncomingMessage.js
58590
58678
  /**
58591
58679
  * @since 4.0.0
58592
58680
  */
@@ -58638,7 +58726,7 @@ const inspect = (self, that) => {
58638
58726
  };
58639
58727
 
58640
58728
  //#endregion
58641
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpClientResponse.js
58729
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpClientResponse.js
58642
58730
  /**
58643
58731
  * @since 4.0.0
58644
58732
  */
@@ -58762,7 +58850,7 @@ var WebHttpClientResponse = class extends Class$2 {
58762
58850
  };
58763
58851
 
58764
58852
  //#endregion
58765
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpMethod.js
58853
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpMethod.js
58766
58854
  /**
58767
58855
  * @since 4.0.0
58768
58856
  */
@@ -58777,7 +58865,7 @@ const allShort = [
58777
58865
  ];
58778
58866
 
58779
58867
  //#endregion
58780
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpTraceContext.js
58868
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpTraceContext.js
58781
58869
  /**
58782
58870
  * @since 4.0.0
58783
58871
  */
@@ -58846,7 +58934,7 @@ const w3c = (headers) => {
58846
58934
  };
58847
58935
 
58848
58936
  //#endregion
58849
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpClient.js
58937
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpClient.js
58850
58938
  const TypeId$10 = "~effect/http/HttpClient";
58851
58939
  /**
58852
58940
  * @since 4.0.0
@@ -59689,7 +59777,7 @@ const httpMethods = [
59689
59777
  const make$16 = make$17;
59690
59778
 
59691
59779
  //#endregion
59692
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/Template.js
59780
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/Template.js
59693
59781
  /**
59694
59782
  * @since 4.0.0
59695
59783
  */
@@ -59739,7 +59827,7 @@ function isSuccess$1(u) {
59739
59827
  }
59740
59828
 
59741
59829
  //#endregion
59742
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpServerResponse.js
59830
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpServerResponse.js
59743
59831
  /**
59744
59832
  * @since 4.0.0
59745
59833
  */
@@ -59842,7 +59930,7 @@ const makeResponse = (options) => {
59842
59930
  };
59843
59931
 
59844
59932
  //#endregion
59845
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpServerRespondable.js
59933
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpServerRespondable.js
59846
59934
  /**
59847
59935
  * @since 4.0.0
59848
59936
  */
@@ -59880,7 +59968,7 @@ const toResponseOrElseDefect = (u, orElse) => {
59880
59968
  };
59881
59969
 
59882
59970
  //#endregion
59883
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpServerError.js
59971
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpServerError.js
59884
59972
  /**
59885
59973
  * @since 4.0.0
59886
59974
  */
@@ -60080,7 +60168,7 @@ const exitResponse = (exit) => {
60080
60168
  };
60081
60169
 
60082
60170
  //#endregion
60083
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/socket/Socket.js
60171
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/socket/Socket.js
60084
60172
  /**
60085
60173
  * @since 4.0.0
60086
60174
  * @category Type IDs
@@ -61213,7 +61301,7 @@ const defaultIsFile = defaultIsFile$1;
61213
61301
  const decodeField = decodeField$1;
61214
61302
 
61215
61303
  //#endregion
61216
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/Multipart.js
61304
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/Multipart.js
61217
61305
  /**
61218
61306
  * @since 4.0.0
61219
61307
  */
@@ -61469,7 +61557,7 @@ const MaxFileSize = /* @__PURE__ */ Reference("effect/http/Multipart/MaxFileSize
61469
61557
  const FieldMimeTypes = /* @__PURE__ */ Reference("effect/http/Multipart/FieldMimeTypes", { defaultValue: /* @__PURE__ */ constant(["application/json"]) });
61470
61558
 
61471
61559
  //#endregion
61472
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpServerRequest.js
61560
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpServerRequest.js
61473
61561
  /**
61474
61562
  * @since 4.0.0
61475
61563
  * @category Type IDs
@@ -61622,7 +61710,7 @@ const toURL = (self) => {
61622
61710
  };
61623
61711
 
61624
61712
  //#endregion
61625
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpMiddleware.js
61713
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpMiddleware.js
61626
61714
  /**
61627
61715
  * @since 4.0.0
61628
61716
  */
@@ -61725,7 +61813,7 @@ const tracer = /* @__PURE__ */ make$10((httpApp) => withFiber((fiber) => {
61725
61813
  }));
61726
61814
 
61727
61815
  //#endregion
61728
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpEffect.js
61816
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpEffect.js
61729
61817
  /**
61730
61818
  * @since 4.0.0
61731
61819
  * @category combinators
@@ -61803,7 +61891,7 @@ const scoped = (effect) => withFiber((fiber) => {
61803
61891
  const PreResponseHandlers = /* @__PURE__ */ Reference("effect/http/HttpEffect/PreResponseHandlers", { defaultValue: () => void 0 });
61804
61892
 
61805
61893
  //#endregion
61806
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/Etag.js
61894
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/Etag.js
61807
61895
  /**
61808
61896
  * @since 4.0.0
61809
61897
  */
@@ -61867,7 +61955,7 @@ const layerWeak = /* @__PURE__ */ succeed$2(Generator)({
61867
61955
  });
61868
61956
 
61869
61957
  //#endregion
61870
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpPlatform.js
61958
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpPlatform.js
61871
61959
  /**
61872
61960
  * @since 4.0.0
61873
61961
  */
@@ -61934,7 +62022,7 @@ const layer$14 = /* @__PURE__ */ effect$1(HttpPlatform)(flatMap$2(FileSystem.asE
61934
62022
  }))).pipe(/* @__PURE__ */ provide$3(layerWeak));
61935
62023
 
61936
62024
  //#endregion
61937
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpServer.js
62025
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpServer.js
61938
62026
  /**
61939
62027
  * @since 4.0.0
61940
62028
  */
@@ -61997,7 +62085,7 @@ const makeTestClient = /* @__PURE__ */ gen(function* () {
61997
62085
  const layerTestClient = /* @__PURE__ */ effect$1(HttpClient)(makeTestClient);
61998
62086
 
61999
62087
  //#endregion
62000
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/HttpRouter.js
62088
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/HttpRouter.js
62001
62089
  /**
62002
62090
  * @since 4.0.0
62003
62091
  */
@@ -65864,7 +65952,7 @@ var import_websocket = /* @__PURE__ */ __toESM(require_websocket(), 1);
65864
65952
  var import_websocket_server = /* @__PURE__ */ __toESM(require_websocket_server(), 1);
65865
65953
 
65866
65954
  //#endregion
65867
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodeFileSystem.js
65955
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodeFileSystem.js
65868
65956
  /**
65869
65957
  * @since 1.0.0
65870
65958
  */
@@ -66214,7 +66302,7 @@ const makeFileSystem = /* @__PURE__ */ map$8(/* @__PURE__ */ serviceOption(Watch
66214
66302
  const layer$12 = /* @__PURE__ */ effect$1(FileSystem)(makeFileSystem);
66215
66303
 
66216
66304
  //#endregion
66217
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeFileSystem.js
66305
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeFileSystem.js
66218
66306
  /**
66219
66307
  * @since 1.0.0
66220
66308
  */
@@ -66225,7 +66313,7 @@ const layer$12 = /* @__PURE__ */ effect$1(FileSystem)(makeFileSystem);
66225
66313
  const layer$11 = layer$12;
66226
66314
 
66227
66315
  //#endregion
66228
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeHttpIncomingMessage.js
66316
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeHttpIncomingMessage.js
66229
66317
  /**
66230
66318
  * @since 1.0.0
66231
66319
  */
@@ -66296,7 +66384,7 @@ var NodeHttpIncomingMessage = class extends Class$2 {
66296
66384
  };
66297
66385
 
66298
66386
  //#endregion
66299
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/http/FetchHttpClient.js
66387
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/http/FetchHttpClient.js
66300
66388
  /**
66301
66389
  * @since 4.0.0
66302
66390
  */
@@ -66343,7 +66431,7 @@ const fetch$1 = /* @__PURE__ */ make$18((request, url, signal, fiber) => {
66343
66431
  const layer$10 = /* @__PURE__ */ layerMergedServices(/* @__PURE__ */ succeed$1(fetch$1));
66344
66432
 
66345
66433
  //#endregion
66346
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeHttpPlatform.js
66434
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeHttpPlatform.js
66347
66435
  /**
66348
66436
  * @since 1.0.0
66349
66437
  */
@@ -66467,7 +66555,7 @@ var FileStream = class extends Readable {
66467
66555
  };
66468
66556
 
66469
66557
  //#endregion
66470
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeMultipart.js
66558
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeMultipart.js
66471
66559
  /**
66472
66560
  * @since 1.0.0
66473
66561
  */
@@ -66563,7 +66651,7 @@ function convertError(cause) {
66563
66651
  }
66564
66652
 
66565
66653
  //#endregion
66566
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodePath.js
66654
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodePath.js
66567
66655
  /**
66568
66656
  * @since 1.0.0
66569
66657
  */
@@ -66615,7 +66703,7 @@ const layer$8 = /* @__PURE__ */ succeed$2(Path$1)({
66615
66703
  });
66616
66704
 
66617
66705
  //#endregion
66618
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodePath.js
66706
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodePath.js
66619
66707
  /**
66620
66708
  * @since 1.0.0
66621
66709
  */
@@ -66636,7 +66724,7 @@ const layerPosix = layerPosix$1;
66636
66724
  const layerWin32 = layerWin32$1;
66637
66725
 
66638
66726
  //#endregion
66639
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodeStdio.js
66727
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodeStdio.js
66640
66728
  /**
66641
66729
  * @since 1.0.0
66642
66730
  */
@@ -66676,7 +66764,7 @@ const layer$6 = /* @__PURE__ */ succeed$2(Stdio, /* @__PURE__ */ make$24({
66676
66764
  }));
66677
66765
 
66678
66766
  //#endregion
66679
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeStdio.js
66767
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeStdio.js
66680
66768
  /**
66681
66769
  * @since 1.0.0
66682
66770
  */
@@ -66687,7 +66775,7 @@ const layer$6 = /* @__PURE__ */ succeed$2(Stdio, /* @__PURE__ */ make$24({
66687
66775
  const layer$5 = layer$6;
66688
66776
 
66689
66777
  //#endregion
66690
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodeTerminal.js
66778
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodeTerminal.js
66691
66779
  /**
66692
66780
  * @since 1.0.0
66693
66781
  * @category constructors
@@ -66758,7 +66846,7 @@ function defaultShouldQuit(input) {
66758
66846
  }
66759
66847
 
66760
66848
  //#endregion
66761
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeTerminal.js
66849
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeTerminal.js
66762
66850
  /**
66763
66851
  * @since 1.0.0
66764
66852
  */
@@ -66774,7 +66862,7 @@ const make$3 = make$4;
66774
66862
  const layer$3 = layer$4;
66775
66863
 
66776
66864
  //#endregion
66777
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeServices.js
66865
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeServices.js
66778
66866
  /**
66779
66867
  * @since 1.0.0
66780
66868
  * @category layer
@@ -66782,7 +66870,7 @@ const layer$3 = layer$4;
66782
66870
  const layer$2 = /* @__PURE__ */ provideMerge(layer$16, /* @__PURE__ */ mergeAll(layer$11, layer$7, layer$5, layer$3));
66783
66871
 
66784
66872
  //#endregion
66785
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeHttpServer.js
66873
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeHttpServer.js
66786
66874
  /**
66787
66875
  * @since 1.0.0
66788
66876
  */
@@ -67069,7 +67157,7 @@ const handleCause = (nodeResponse, originalResponse) => (originalCause) => flatM
67069
67157
  });
67070
67158
 
67071
67159
  //#endregion
67072
- //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_0e3ed52df3a01e5ec7d2c31578afff67/node_modules/@effect/platform-node-shared/dist/NodeRuntime.js
67160
+ //#region node_modules/.pnpm/@effect+platform-node-shared@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-_c587f801a66e046f1fd419475d66e239/node_modules/@effect/platform-node-shared/dist/NodeRuntime.js
67073
67161
  /**
67074
67162
  * @since 1.0.0
67075
67163
  * @category Run main
@@ -67096,7 +67184,7 @@ const runMain$1 = /* @__PURE__ */ makeRunMain(({ fiber, teardown }) => {
67096
67184
  });
67097
67185
 
67098
67186
  //#endregion
67099
- //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@a5_26005f191a75f6f6b39e9dfb9f21108b/node_modules/@effect/platform-node/dist/NodeRuntime.js
67187
+ //#region node_modules/.pnpm/@effect+platform-node@https+++pkg.pr.new+Effect-TS+effect-smol+@effect+platform-node@39_7ee3a74053db385af3e1ee6c9795c447/node_modules/@effect/platform-node/dist/NodeRuntime.js
67100
67188
  /**
67101
67189
  * @since 1.0.0
67102
67190
  */
@@ -67314,33 +67402,48 @@ var CliAgent = class extends Class$1 {};
67314
67402
  const opencode = new CliAgent({
67315
67403
  id: "opencode",
67316
67404
  name: "opencode",
67317
- command: ({ prompt, prdFilePath }) => make$23({
67405
+ command: ({ prompt, prdFilePath, extraArgs }) => make$23("opencode", [
67406
+ "run",
67407
+ ...extraArgs,
67408
+ "-f",
67409
+ prdFilePath,
67410
+ prompt
67411
+ ], {
67318
67412
  extendEnv: true,
67319
67413
  env: { OPENCODE_PERMISSION: "{\"*\":\"allow\", \"question\":\"deny\"}" },
67320
67414
  stdout: "pipe",
67321
67415
  stderr: "pipe",
67322
67416
  stdin: "inherit"
67323
- })`opencode run ${prompt} -f ${prdFilePath}`,
67324
- commandPlan: ({ prompt, prdFilePath, dangerous }) => make$23({
67417
+ }),
67418
+ commandPlan: ({ prompt, prdFilePath, dangerous }) => make$23("opencode", ["--prompt", `@${prdFilePath}
67419
+
67420
+ ${prompt}`], {
67325
67421
  extendEnv: true,
67326
67422
  ...dangerous ? { env: { OPENCODE_PERMISSION: "{\"*\":\"allow\"}" } } : {},
67327
67423
  stdout: "inherit",
67328
67424
  stderr: "inherit",
67329
67425
  stdin: "inherit"
67330
- })`opencode --prompt ${`@${prdFilePath}
67331
-
67332
- ${prompt}`}`
67426
+ })
67333
67427
  });
67334
67428
  const claude = new CliAgent({
67335
67429
  id: "claude",
67336
67430
  name: "Claude Code",
67337
- command: ({ prompt, prdFilePath }) => make$23({
67431
+ command: ({ prompt, prdFilePath, extraArgs }) => make$23("claude", [
67432
+ "--dangerously-skip-permissions",
67433
+ "--output-format",
67434
+ "stream-json",
67435
+ "--verbose",
67436
+ "--disallowed-tools",
67437
+ "AskUserQuestion",
67438
+ ...extraArgs,
67439
+ `@${prdFilePath}
67440
+
67441
+ ${prompt}`
67442
+ ], {
67338
67443
  stdout: "pipe",
67339
67444
  stderr: "pipe",
67340
67445
  stdin: "inherit"
67341
- })`claude --dangerously-skip-permissions --output-format stream-json --verbose --disallowed-tools AskUserQuestion -p ${`@${prdFilePath}
67342
-
67343
- ${prompt}`}`,
67446
+ }),
67344
67447
  outputTransformer: claudeOutputTransformer,
67345
67448
  commandPlan: ({ prompt, prdFilePath, dangerous }) => make$23("claude", [...dangerous ? ["--dangerously-skip-permissions"] : [], `@${prdFilePath}
67346
67449
 
@@ -67353,13 +67456,18 @@ ${prompt}`], {
67353
67456
  const codex = new CliAgent({
67354
67457
  id: "codex",
67355
67458
  name: "Codex CLI",
67356
- command: ({ prompt, prdFilePath }) => make$23({
67459
+ command: ({ prompt, prdFilePath, extraArgs }) => make$23("codex", [
67460
+ "exec",
67461
+ "--dangerously-bypass-approvals-and-sandbox",
67462
+ ...extraArgs,
67463
+ `@${prdFilePath}
67464
+
67465
+ ${prompt}`
67466
+ ], {
67357
67467
  stdout: "pipe",
67358
67468
  stderr: "pipe",
67359
67469
  stdin: "inherit"
67360
- })`codex exec --dangerously-bypass-approvals-and-sandbox ${`@${prdFilePath}
67361
-
67362
- ${prompt}`}`,
67470
+ }),
67363
67471
  commandPlan: ({ prompt, prdFilePath, dangerous }) => make$23("codex", [...dangerous ? ["--dangerously-bypass-approvals-and-sandbox"] : [], `@${prdFilePath}
67364
67472
 
67365
67473
  ${prompt}`], {
@@ -67371,13 +67479,18 @@ ${prompt}`], {
67371
67479
  const amp = new CliAgent({
67372
67480
  id: "amp",
67373
67481
  name: "amp",
67374
- command: ({ prompt, prdFilePath }) => make$23({
67482
+ command: ({ prompt, prdFilePath, extraArgs }) => make$23("amp", [
67483
+ "--dangerously-allow-all",
67484
+ "--stream-json-thinking",
67485
+ ...extraArgs,
67486
+ `@${prdFilePath}
67487
+
67488
+ ${prompt}`
67489
+ ], {
67375
67490
  stdout: "pipe",
67376
67491
  stderr: "pipe",
67377
67492
  stdin: "inherit"
67378
- })`amp --dangerously-allow-all --stream-json-thinking -x ${`@${prdFilePath}
67379
-
67380
- ${prompt}`}`,
67493
+ }),
67381
67494
  commandPlan: () => make$23({
67382
67495
  stdout: "inherit",
67383
67496
  stderr: "inherit",
@@ -67390,9 +67503,13 @@ const allCliAgents = [
67390
67503
  codex,
67391
67504
  amp
67392
67505
  ];
67506
+ const CliAgentFromId = Literals(allCliAgents.map((agent) => agent.id)).pipe(decodeTo(declare((u) => allCliAgents.includes(u)), transform$2({
67507
+ decode: (id) => allCliAgents.find((agent) => agent.id === id),
67508
+ encode: (agent) => agent.id
67509
+ })));
67393
67510
 
67394
67511
  //#endregion
67395
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/reactivity/AsyncResult.js
67512
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/reactivity/AsyncResult.js
67396
67513
  /**
67397
67514
  * @since 4.0.0
67398
67515
  */
@@ -67555,7 +67672,7 @@ const toExit = (self) => {
67555
67672
  };
67556
67673
 
67557
67674
  //#endregion
67558
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/reactivity/AtomRegistry.js
67675
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/reactivity/AtomRegistry.js
67559
67676
  /**
67560
67677
  * @since 4.0.0
67561
67678
  */
@@ -68152,7 +68269,7 @@ function batchRebuildNode(node) {
68152
68269
  }
68153
68270
 
68154
68271
  //#endregion
68155
- //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@a5fa8be_57990762f5f9c1c9080840df62658af0/node_modules/effect/dist/unstable/reactivity/Atom.js
68272
+ //#region node_modules/.pnpm/effect@https+++pkg.pr.new+Effect-TS+effect-smol+effect@39ecde9_0439b66529d374979abbb8b9176f9611/node_modules/effect/dist/unstable/reactivity/Atom.js
68156
68273
  /**
68157
68274
  * @since 4.0.0
68158
68275
  */
@@ -143893,6 +144010,146 @@ const LinearIssueData = Struct({ issue: IssuesNode });
143893
144010
  var Issues = class extends Class("Issues")({ nodes: Array$1(IssuesNode) }) {};
143894
144011
  var LinearIssuesData = class extends Class("LinearIssuesData")({ issues: Issues }) {};
143895
144012
 
144013
+ //#endregion
144014
+ //#region src/domain/CliAgentPreset.ts
144015
+ const CliAgentPresetId = NonEmptyString.pipe(brand("lalph/CliAgentPresetId"));
144016
+ var CliAgentPreset = class CliAgentPreset extends Class("lalph/CliAgentPreset")({
144017
+ id: CliAgentPresetId,
144018
+ cliAgent: CliAgentFromId,
144019
+ commandPrefix: Array$1(String$1),
144020
+ extraArgs: Array$1(String$1),
144021
+ sourceMetadata: Record(String$1, Any)
144022
+ }) {
144023
+ static defaultId = CliAgentPresetId.makeUnsafe("default");
144024
+ decodeMetadata(source, schema) {
144025
+ const data = this.sourceMetadata[source];
144026
+ if (data === void 0) return succeedNone;
144027
+ return option$1(decodeEffect(schema)(data));
144028
+ }
144029
+ addMetadata(source, schema, value) {
144030
+ return encodeEffect(toCodecJson(schema))(value).pipe(orDie$2, map$8((encoded) => new CliAgentPreset({
144031
+ ...this,
144032
+ sourceMetadata: {
144033
+ ...this.sourceMetadata,
144034
+ [source]: encoded
144035
+ }
144036
+ })));
144037
+ }
144038
+ withCommandPrefix = isReadonlyArrayNonEmpty(this.commandPrefix) ? prefix(this.commandPrefix[0], this.commandPrefix) : identity;
144039
+ };
144040
+
144041
+ //#endregion
144042
+ //#region src/shared/child-process.ts
144043
+ const parseCommand = (command) => {
144044
+ const args = [];
144045
+ let currentArg = "";
144046
+ let inQuotes = false;
144047
+ let escapeNext = false;
144048
+ for (let i = 0; i < command.length; i++) {
144049
+ const char = command[i];
144050
+ if (escapeNext) {
144051
+ currentArg += char;
144052
+ escapeNext = false;
144053
+ } else if (char === "\\") escapeNext = true;
144054
+ else if (char === "\"") inQuotes = !inQuotes;
144055
+ else if (char === " " && !inQuotes) {
144056
+ if (currentArg.length > 0) {
144057
+ args.push(currentArg);
144058
+ currentArg = "";
144059
+ }
144060
+ } else currentArg += char;
144061
+ }
144062
+ if (currentArg.length > 0) args.push(currentArg);
144063
+ return args;
144064
+ };
144065
+
144066
+ //#endregion
144067
+ //#region src/Presets.ts
144068
+ const allCliAgentPresets = new Setting("cliAgentPresets", Array$1(CliAgentPreset));
144069
+ const getAllCliAgentPresets = Settings.get(allCliAgentPresets).pipe(map$8(getOrElse$1(() => [])));
144070
+ const getPresetsWithMetadata = (source, schema) => getAllCliAgentPresets.pipe(flatMap$2(forEach$3((preset) => preset.decodeMetadata(source, schema).pipe(map$8(map$14((metadata) => ({
144071
+ preset,
144072
+ metadata
144073
+ })))))), map$8(getSomes));
144074
+ const cliAgentPresetById = fnUntraced(function* (presetId) {
144075
+ const presets = yield* getAllCliAgentPresets;
144076
+ return findFirst$3(presets, (p) => p.id === presetId);
144077
+ });
144078
+ const getDefaultCliAgentPreset = gen(function* () {
144079
+ return (yield* getAllCliAgentPresets).find((p) => p.id === CliAgentPreset.defaultId) ?? (yield* welcomeWizard$1);
144080
+ });
144081
+ const welcomeWizard$1 = gen(function* () {
144082
+ const welcome = [
144083
+ " .--.",
144084
+ " |^()^| lalph",
144085
+ " '--'",
144086
+ "",
144087
+ "Let's setup your default AI agent preset.",
144088
+ "AI agent presets let you configure what cli agent lalph",
144089
+ "uses to run tasks.",
144090
+ ""
144091
+ ].join("\n");
144092
+ console.log(welcome);
144093
+ return yield* addOrUpdatePreset({ idOverride: CliAgentPreset.defaultId });
144094
+ });
144095
+ const selectCliAgentPreset = gen(function* () {
144096
+ const presets = yield* getAllCliAgentPresets;
144097
+ if (presets.length === 0) return yield* welcomeWizard$1;
144098
+ else if (presets.length === 1) {
144099
+ const preset = presets[0];
144100
+ yield* log$1(`Using agent preset: ${preset.id}`);
144101
+ return preset;
144102
+ }
144103
+ return yield* autoComplete({
144104
+ message: "Select a preset:",
144105
+ choices: presets.map((p) => ({
144106
+ title: p.id,
144107
+ value: p
144108
+ }))
144109
+ });
144110
+ });
144111
+ const addOrUpdatePreset = fnUntraced(function* (options) {
144112
+ const presets = yield* getAllCliAgentPresets;
144113
+ const id = options?.existing ? options.existing.id : options?.idOverride ?? CliAgentPresetId.makeUnsafe(yield* text$2({
144114
+ message: "Preset name",
144115
+ validate(input) {
144116
+ input = input.trim();
144117
+ if (input.length === 0) return fail$4("Preset name cannot be empty");
144118
+ else if (presets.some((p) => p.id === input)) return fail$4("Preset already exists");
144119
+ return succeed$1(input);
144120
+ }
144121
+ }));
144122
+ const cliAgent = yield* selectCliAgent(options?.existing?.cliAgent.id);
144123
+ const extraArgs = yield* text$2({
144124
+ message: "Extra arguments? (leave empty for none)",
144125
+ default: options?.existing?.extraArgs.join(" ") ?? ""
144126
+ }).asEffect().pipe(map$8(parseCommand));
144127
+ let preset = new CliAgentPreset({
144128
+ id,
144129
+ cliAgent,
144130
+ commandPrefix: yield* promptForCommandPrefix(options?.existing?.commandPrefix),
144131
+ extraArgs,
144132
+ sourceMetadata: {}
144133
+ });
144134
+ if (id !== CliAgentPreset.defaultId) preset = yield* (yield* IssueSource).updateCliAgentPreset(preset);
144135
+ yield* Settings.set(allCliAgentPresets, some$2(options?.existing ? presets.map((p) => p.id === preset.id ? preset : p) : [...presets, preset]));
144136
+ return preset;
144137
+ });
144138
+ const selectCliAgent = (initial) => select({
144139
+ message: "Select the CLI agent to use",
144140
+ choices: allCliAgents.map((agent) => ({
144141
+ title: agent.name,
144142
+ value: agent,
144143
+ selected: agent.id === initial
144144
+ }))
144145
+ });
144146
+ const promptForCommandPrefix = fnUntraced(function* (initial) {
144147
+ return parseCommand(yield* text$2({
144148
+ message: "Command prefix? (leave empty for none)",
144149
+ default: initial ? initial.join(" ") : ""
144150
+ }));
144151
+ });
144152
+
143896
144153
  //#endregion
143897
144154
  //#region src/Linear.ts
143898
144155
  var Linear = class extends Service$1()("lalph/Linear", { make: gen(function* () {
@@ -143968,7 +144225,9 @@ const LinearIssueSource = effect$1(IssueSource, gen(function* () {
143968
144225
  }, orDie$2, (effect, projectId) => provideService(effect, CurrentProjectId, projectId)),
143969
144226
  capacity: Number.POSITIVE_INFINITY
143970
144227
  });
144228
+ const presets = yield* getPresetsWithMetadata("linear", PresetMetadata$1);
143971
144229
  const identifierMap = /* @__PURE__ */ new Map();
144230
+ const presetMap = /* @__PURE__ */ new Map();
143972
144231
  const backlogState = linear.states.find((s) => s.type === "backlog" && s.name.toLowerCase().includes("backlog")) || linear.states.find((s) => s.type === "backlog");
143973
144232
  const todoState = linear.states.find((s) => s.type === "unstarted" && (s.name.toLowerCase().includes("todo") || s.name.toLowerCase().includes("unstarted"))) || linear.states.find((s) => s.type === "unstarted");
143974
144233
  const inProgressState = linear.states.find((s) => s.type === "started" && (s.name.toLowerCase().includes("progress") || s.name.toLowerCase().includes("started"))) || linear.states.find((s) => s.type === "started");
@@ -144006,6 +144265,8 @@ const LinearIssueSource = effect$1(IssueSource, gen(function* () {
144006
144265
  const threeDaysAgo = nowUnsafe().pipe(subtract({ days: 3 }));
144007
144266
  return pipe(filter$6(issues, (issue) => {
144008
144267
  identifierMap.set(issue.identifier, issue.id);
144268
+ const preset = presets.find((p) => issue.labelIds.includes(p.metadata.labelId));
144269
+ if (preset) presetMap.set(issue.identifier, preset.preset);
144009
144270
  const completedAt = issue.completedAt;
144010
144271
  if (!completedAt) return true;
144011
144272
  return isGreaterThanOrEqualTo$1(completedAt, threeDaysAgo);
@@ -144120,9 +144381,32 @@ const LinearIssueSource = effect$1(IssueSource, gen(function* () {
144120
144381
  console.log(` Label filter: ${resolveLabel(label)}`);
144121
144382
  console.log(` Auto-merge label: ${resolveAutoMergeLabel(autoMergeLabel)}`);
144122
144383
  }, mapError$2((cause) => new IssueSourceError({ cause }))),
144384
+ issueCliAgentPreset: (_issue) => sync(() => fromUndefinedOr(presetMap.get(_issue.id))),
144385
+ updateCliAgentPreset: fnUntraced(function* (preset) {
144386
+ const labels = yield* runCollect(linear.labels).pipe(mapError$2((cause) => new IssueSourceError({ cause })));
144387
+ const labelId = yield* autoComplete({
144388
+ message: "Select a label for this preset",
144389
+ choices: labels.map((label) => ({
144390
+ title: label.name,
144391
+ value: label.id
144392
+ }))
144393
+ });
144394
+ return yield* preset.addMetadata("linear", PresetMetadata$1, { labelId });
144395
+ }),
144396
+ cliAgentPresetInfo: fnUntraced(function* (preset) {
144397
+ const metadata = yield* preset.decodeMetadata("linear", PresetMetadata$1);
144398
+ if (isNone(metadata)) return;
144399
+ const label = yield* linear.labels.pipe(filter$2((label) => label.id === metadata.value.labelId), runHead);
144400
+ if (isNone(label)) return;
144401
+ console.log(` Label: ${label.value.name}`);
144402
+ }, mapError$2((cause) => new IssueSourceError({ cause }))),
144123
144403
  ensureInProgress: () => void_$1
144124
144404
  });
144125
- })).pipe(provide$3([Linear.layer, layer$17]));
144405
+ })).pipe(provide$3([
144406
+ Linear.layer,
144407
+ layer$17,
144408
+ Settings.layer
144409
+ ]));
144126
144410
  var LinearError = class extends ErrorClass("lalph/LinearError")({
144127
144411
  _tag: tag("LinearError"),
144128
144412
  cause: Defect
@@ -144208,6 +144492,7 @@ const getOrSelectAutoMergeLabel$1 = gen(function* () {
144208
144492
  if (isSome(labelId)) return labelId.value;
144209
144493
  return yield* autoMergeLabelIdSelect;
144210
144494
  });
144495
+ const PresetMetadata$1 = Struct({ labelId: String$1 });
144211
144496
  const issueQueryFields = `
144212
144497
  id
144213
144498
  identifier
@@ -150385,7 +150670,7 @@ var ReviewThreads = class extends Class("ReviewThreads")({ nodes: Array$1(Review
150385
150670
  //#region src/Github/Cli.ts
150386
150671
  var GithubCli = class extends Service$1()("lalph/Github/Cli", { make: gen(function* () {
150387
150672
  const spawner = yield* ChildProcessSpawner;
150388
- const [owner, repo] = (yield* make$23`gh repo view --json nameWithOwner -q ${".nameWithOwner"}`.pipe(string, option$1, flatMap$2(flow(map$14(trim), filter$8(isNonEmpty), match$7({
150673
+ const [owner, repo] = (yield* make$23`gh repo view --json nameWithOwner -q ${".nameWithOwner"}`.pipe(string, option$1, flatMap$2(flow(map$14(trim), filter$8(isNonEmpty$1), match$7({
150389
150674
  onNone: () => fail$4(new GithubCliRepoNotFound()),
150390
150675
  onSome: (value) => succeed$1(value)
150391
150676
  }))))).split("/");
@@ -150412,7 +150697,7 @@ ${reviewCommentsMd}`;
150412
150697
  }
150413
150698
  if (reviews.length > 0) {
150414
150699
  const reviewsXml = reviews.map((review) => `<review author="${review.author.login}">
150415
- <body><![CDATA[${review.body}]]></body>
150700
+ <body>${review.body}</body>
150416
150701
  </review>`).join("\n");
150417
150702
  content += `
150418
150703
 
@@ -150447,17 +150732,17 @@ var GithubCliRepoNotFound = class extends TaggedError("GithubCliRepoNotFound") {
150447
150732
  message = "GitHub repository not found. Ensure the current directory is inside a git repo with a GitHub remote.";
150448
150733
  };
150449
150734
  const renderReviewComments = (comment, followup) => `<comment author="${comment.author.login}" path="${comment.path}"${comment.originalLine ? ` originalLine="${comment.originalLine}"` : ""}>
150450
- <diffHunk><![CDATA[${comment.diffHunk}]]></diffHunk>
150451
- <body><![CDATA[${comment.body}]]></body>${followup.length > 0 ? `
150735
+ <diffHunk>${comment.diffHunk}</diffHunk>
150736
+ <body>${comment.body}</body>${followup.length > 0 ? `
150452
150737
 
150453
150738
  <followup>${followup.map((fc) => `
150454
150739
  <comment author="${fc.author.login}">
150455
- <body><![CDATA[${fc.body}]]></body>
150740
+ <body>${fc.body}</body>
150456
150741
  </comment>`).join("")}
150457
150742
  </followup>` : ""}
150458
150743
  </comment>`;
150459
150744
  const renderGeneralComment = (comment) => ` <comment author="${comment.author.login}">
150460
- <body><![CDATA[${comment.body}]]></body>
150745
+ <body>${comment.body}</body>
150461
150746
  </comment>`;
150462
150747
  const PullRequestDataFromJson = fromJsonString(GithubPullRequestData);
150463
150748
  const githubReviewCommentsQuery = `
@@ -150568,6 +150853,8 @@ const GithubIssueSource = effect$1(IssueSource, gen(function* () {
150568
150853
  page,
150569
150854
  since: nowUnsafe().pipe(subtract({ days: 3 }), formatIso)
150570
150855
  })), filter$2((issue) => issue.state_reason !== "not_planned"));
150856
+ const presets = yield* getPresetsWithMetadata("github", PresetMetadata);
150857
+ const issuePresetMap = /* @__PURE__ */ new Map();
150571
150858
  const issues = (options) => pipe(github.stream((rest, page) => rest.issues.listForRepo({
150572
150859
  owner: cli.owner,
150573
150860
  repo: cli.repo,
@@ -150576,10 +150863,13 @@ const GithubIssueSource = effect$1(IssueSource, gen(function* () {
150576
150863
  page,
150577
150864
  labels: getOrUndefined(options.labelFilter)
150578
150865
  })), merge$2(recentlyClosed), filter$2((issue) => issue.pull_request === void 0), mapEffect$1(fnUntraced(function* (issue) {
150866
+ const id = `#${issue.number}`;
150579
150867
  const dependencies = yield* listOpenBlockedBy(issue.number).pipe(runCollect);
150580
150868
  const state = issue.state === "closed" ? "done" : hasLabel(issue.labels, "in-progress") ? "in-progress" : hasLabel(issue.labels, "in-review") ? "in-review" : "todo";
150869
+ const preset = presets.find(({ metadata }) => hasLabel(issue.labels, metadata.label));
150870
+ if (preset) issuePresetMap.set(id, preset.preset);
150581
150871
  return new PrdIssue({
150582
- id: `#${issue.number}`,
150872
+ id,
150583
150873
  title: issue.title,
150584
150874
  description: issue.body ?? "",
150585
150875
  priority: 0,
@@ -150717,6 +151007,23 @@ const GithubIssueSource = effect$1(IssueSource, gen(function* () {
150717
151007
  onSome: (value) => value
150718
151008
  })}`);
150719
151009
  }),
151010
+ issueCliAgentPreset: (issue) => sync(() => fromUndefinedOr(issuePresetMap.get(issue.id))),
151011
+ updateCliAgentPreset: fnUntraced(function* (preset) {
151012
+ const label = yield* text$2({
151013
+ message: "Enter a label for this preset",
151014
+ validate(value) {
151015
+ value = value.trim();
151016
+ if (value.length === 0) return fail$4("Label cannot be empty");
151017
+ return succeed$1(value);
151018
+ }
151019
+ });
151020
+ return yield* preset.addMetadata("github", PresetMetadata, { label });
151021
+ }),
151022
+ cliAgentPresetInfo: fnUntraced(function* (preset) {
151023
+ const metadata = yield* preset.decodeMetadata("github", PresetMetadata);
151024
+ if (isNone(metadata)) return;
151025
+ console.log(` Label: ${metadata.value.label}`);
151026
+ }),
150720
151027
  ensureInProgress: fnUntraced(function* (_project, issueId) {
150721
151028
  const issueNumber = Number(issueId.slice(1));
150722
151029
  yield* pipe(github.request((rest) => rest.issues.get({
@@ -150738,7 +151045,7 @@ const GithubIssueSource = effect$1(IssueSource, gen(function* () {
150738
151045
  const labelFilter = new ProjectSetting("github.labelFilter", Option(String$1));
150739
151046
  const labelSelect = gen(function* () {
150740
151047
  const label = yield* text$2({ message: "What label do you want to filter issues by? (leave empty for none)" });
150741
- const labelOption = some$2(label.trim()).pipe(filter$8(isNonEmpty));
151048
+ const labelOption = some$2(label.trim()).pipe(filter$8(isNonEmpty$1));
150742
151049
  yield* Settings.setProject(labelFilter, some$2(labelOption));
150743
151050
  return labelOption;
150744
151051
  });
@@ -150750,7 +151057,7 @@ const getOrSelectLabel = gen(function* () {
150750
151057
  const autoMergeLabel = new ProjectSetting("github.autoMergeLabel", Option(String$1));
150751
151058
  const autoMergeLabelSelect = gen(function* () {
150752
151059
  const label = yield* text$2({ message: "What label do you want to use for auto-mergable issues? (leave empty for none)" });
150753
- const labelOption = some$2(label.trim()).pipe(filter$8(isNonEmpty));
151060
+ const labelOption = some$2(label.trim()).pipe(filter$8(isNonEmpty$1));
150754
151061
  yield* Settings.setProject(autoMergeLabel, some$2(labelOption));
150755
151062
  return labelOption;
150756
151063
  });
@@ -150759,6 +151066,7 @@ const getOrSelectAutoMergeLabel = gen(function* () {
150759
151066
  if (isSome(label)) return label.value;
150760
151067
  return yield* autoMergeLabelSelect;
150761
151068
  });
151069
+ const PresetMetadata = Struct({ label: NonEmptyString });
150762
151070
  const maybeNextPage = (page, linkHeader) => pipe(fromNullishOr$2(linkHeader), filter$8((_) => _.includes(`rel="next"`)), as$2(page + 1));
150763
151071
 
150764
151072
  //#endregion
@@ -150806,6 +151114,9 @@ var CurrentIssueSource = class CurrentIssueSource extends Service$1()("lalph/Cur
150806
151114
  reset: get$4(ref).pipe(flatMap$2((source) => source.reset)),
150807
151115
  settings: (projectId) => get$4(ref).pipe(flatMap$2((source) => source.settings(projectId))),
150808
151116
  info: (projectId) => get$4(ref).pipe(flatMap$2((source) => source.info(projectId))),
151117
+ issueCliAgentPreset: (issue) => get$4(ref).pipe(flatMap$2((source) => source.issueCliAgentPreset(issue))),
151118
+ updateCliAgentPreset: (preset) => get$4(ref).pipe(flatMap$2((source) => source.updateCliAgentPreset(preset))),
151119
+ cliAgentPresetInfo: (preset) => get$4(ref).pipe(flatMap$2((source) => source.cliAgentPresetInfo(preset))),
150809
151120
  ensureInProgress: (projectId, issueId) => get$4(ref).pipe(flatMap$2((source) => source.ensureInProgress(projectId, issueId)))
150810
151121
  });
150811
151122
  return IssueSource.serviceMap(proxy).pipe(add$3(CurrentIssueSource, source));
@@ -150968,9 +151279,12 @@ ${options.task.description}
150968
151279
 
150969
151280
  # Instructions
150970
151281
 
150971
- 1. Study the ${options.specsDirectory}/README.md file (if available), and read
150972
- the entire prd.yml file to understand the context of the task and any key
150973
- learnings from previous work.
151282
+ Your job is to implement the task described above.
151283
+
151284
+ 1. Carefully study the prd.yml file to understand the context of the task, and
151285
+ discover any key learnings from previous work.
151286
+ Also read the ${options.specsDirectory}/README.md file (if available), to see
151287
+ if any previous specifications could assist you.
150974
151288
  2. ${options.gitFlow.setupInstructions(options)}
150975
151289
  3. Implement the task.
150976
151290
  - If this task is a research task, **do not** make any code changes yet.
@@ -151032,9 +151346,9 @@ permission.
151032
151346
  5. If any specifications need updating based on your new understanding, update them.
151033
151347
 
151034
151348
  ${prdNotes(options)}`;
151035
- const planPrompt = (options) => `<request><![CDATA[
151349
+ const planPrompt = (options) => `<request>
151036
151350
  ${options.plan}
151037
- ]]></request>
151351
+ </request>
151038
151352
 
151039
151353
  ## Instructions
151040
151354
 
@@ -151057,7 +151371,6 @@ ${options.plan}
151057
151371
  }
151058
151372
  \`\`\`
151059
151373
  5. Present the saved specification for review (include the full text in your response).
151060
- If any corrections are needed, update the specification and adjust the plan tasks accordingly.
151061
151374
 
151062
151375
  **Important:** You are only creating or updating a plan, not implementing any tasks yet.
151063
151376
 
@@ -151241,7 +151554,7 @@ const welcomeWizard = gen(function* () {
151241
151554
  " |^()^| lalph",
151242
151555
  " '--'",
151243
151556
  "",
151244
- "Welcome! Let's add your first project.",
151557
+ "Let's add your first project.",
151245
151558
  "Projects let you configure how lalph runs tasks.",
151246
151559
  ""
151247
151560
  ].join("\n");
@@ -151263,20 +151576,28 @@ const addOrUpdateProject = fnUntraced(function* (existing) {
151263
151576
  message: "Concurrency (number of tasks to run in parallel)",
151264
151577
  min: 1
151265
151578
  });
151266
- const targetBranch = pipe(yield* text$2({ message: "Target branch (leave empty to use HEAD)" }), trim, liftPredicate(isNonEmpty));
151579
+ const targetBranch = pipe(yield* text$2({
151580
+ message: "Target branch (leave empty to use HEAD)",
151581
+ default: existing ? getOrElse$1(existing.targetBranch, () => "") : ""
151582
+ }), trim, liftPredicate(isNonEmpty$1));
151267
151583
  const gitFlow = yield* select({
151268
151584
  message: "Git flow",
151269
151585
  choices: [{
151270
151586
  title: "Pull Request",
151271
151587
  description: "Create a pull request for each task",
151272
- value: "pr"
151588
+ value: "pr",
151589
+ selected: existing ? existing.gitFlow === "pr" : false
151273
151590
  }, {
151274
151591
  title: "Commit",
151275
151592
  description: "Tasks are committed directly to the target branch",
151276
- value: "commit"
151593
+ value: "commit",
151594
+ selected: existing ? existing.gitFlow === "pr" : false
151277
151595
  }]
151278
151596
  });
151279
- const reviewAgent = yield* toggle({ message: "Enable review agent?" });
151597
+ const reviewAgent = yield* toggle({
151598
+ message: "Enable review agent?",
151599
+ initial: existing ? existing.reviewAgent : true
151600
+ });
151280
151601
  const project = new Project$1({
151281
151602
  id: ProjectId.makeUnsafe(id),
151282
151603
  enabled: existing ? existing.enabled : true,
@@ -151613,80 +151934,17 @@ var Prd = class extends Service$1()("lalph/Prd", { make: gen(function* () {
151613
151934
  ]));
151614
151935
  };
151615
151936
 
151616
- //#endregion
151617
- //#region src/shared/child-process.ts
151618
- const parseCommand = (command) => {
151619
- const args = [];
151620
- let currentArg = "";
151621
- let inQuotes = false;
151622
- let escapeNext = false;
151623
- for (let i = 0; i < command.length; i++) {
151624
- const char = command[i];
151625
- if (escapeNext) {
151626
- currentArg += char;
151627
- escapeNext = false;
151628
- } else if (char === "\\") escapeNext = true;
151629
- else if (char === "\"") inQuotes = !inQuotes;
151630
- else if (char === " " && !inQuotes) {
151631
- if (currentArg.length > 0) {
151632
- args.push(currentArg);
151633
- currentArg = "";
151634
- }
151635
- } else currentArg += char;
151636
- }
151637
- if (currentArg.length > 0) args.push(currentArg);
151638
- return args;
151639
- };
151640
-
151641
- //#endregion
151642
- //#region src/commands/agent.ts
151643
- const commandPrefixSetting = new Setting("commandPrefix", Option(String$1));
151644
- const parseCommandPrefix = (value) => {
151645
- const parts = parseCommand(value);
151646
- return isReadonlyArrayNonEmpty(parts) ? prefix(parts[0], parts.slice(1)) : identity;
151647
- };
151648
- const normalizePrefix = (value) => some$2(value.trim()).pipe(filter$8(isNonEmpty));
151649
- const promptForCommandPrefix = gen(function* () {
151650
- const prefixOption = normalizePrefix(yield* text$2({ message: "Command prefix for agent commands? (leave empty for none)" }));
151651
- yield* Settings.set(commandPrefixSetting, some$2(prefixOption));
151652
- return prefixOption;
151653
- });
151654
- const getCommandPrefix = gen(function* () {
151655
- const stored = yield* Settings.get(commandPrefixSetting);
151656
- return match$7(flatten$2(stored), {
151657
- onNone: () => identity,
151658
- onSome: parseCommandPrefix
151659
- });
151660
- });
151661
- const selectCliAgent = gen(function* () {
151662
- const agent = yield* select({
151663
- message: "Select the CLI agent to use",
151664
- choices: allCliAgents.map((agent) => ({
151665
- title: agent.name,
151666
- value: agent
151667
- }))
151668
- });
151669
- yield* Settings.set(selectedCliAgentId, some$2(agent.id));
151670
- yield* promptForCommandPrefix;
151671
- return agent;
151672
- });
151673
- const getOrSelectCliAgent = gen(function* () {
151674
- const selectedAgent = (yield* Settings.get(selectedCliAgentId)).pipe(filterMap$4((id) => findFirst$3(allCliAgents, (agent) => agent.id === id)));
151675
- if (isSome(selectedAgent)) return selectedAgent.value;
151676
- return yield* selectCliAgent;
151677
- });
151678
- const commandAgent = make$35("agent").pipe(withDescription("Select the CLI agent to use"), withHandler(() => selectCliAgent.pipe(provide$1(Settings.layer))));
151679
-
151680
151937
  //#endregion
151681
151938
  //#region src/Agents/worker.ts
151682
151939
  const agentWorker = fnUntraced(function* (options) {
151683
151940
  const pathService = yield* Path$1;
151684
151941
  const worktree = yield* Worktree;
151685
- return yield* pipe(options.cliAgent.command({
151942
+ return yield* pipe(options.preset.cliAgent.command({
151686
151943
  prompt: options.prompt,
151687
- prdFilePath: pathService.join(".lalph", "prd.yml")
151688
- }), setCwd(worktree.directory), options.commandPrefix).pipe(worktree.execWithStallTimeout({
151689
- cliAgent: options.cliAgent,
151944
+ prdFilePath: pathService.join(".lalph", "prd.yml"),
151945
+ extraArgs: []
151946
+ }), setCwd(worktree.directory), options.preset.withCommandPrefix).pipe(worktree.execWithStallTimeout({
151947
+ cliAgent: options.preset.cliAgent,
151690
151948
  stallTimeout: options.stallTimeout
151691
151949
  }));
151692
151950
  });
@@ -151790,10 +152048,11 @@ const agentChooser = fnUntraced(function* (options) {
151790
152048
  const prd = yield* Prd;
151791
152049
  const gitFlow = yield* GitFlow;
151792
152050
  const taskJsonCreated = (yield* makeWaitForFile)(pathService.join(worktree.directory, ".lalph"), "task.json");
151793
- yield* pipe(options.cliAgent.command({
152051
+ yield* pipe(options.preset.cliAgent.command({
151794
152052
  prompt: promptGen.promptChoose({ gitFlow }),
151795
- prdFilePath: pathService.join(".lalph", "prd.yml")
151796
- }), setCwd(worktree.directory), options.commandPrefix, worktree.execWithWorkerOutput({ cliAgent: options.cliAgent }), timeoutOrElse({
152053
+ prdFilePath: pathService.join(".lalph", "prd.yml"),
152054
+ extraArgs: options.preset.extraArgs
152055
+ }), setCwd(worktree.directory), options.preset.withCommandPrefix, worktree.execWithWorkerOutput({ cliAgent: options.preset.cliAgent }), timeoutOrElse({
151797
152056
  duration: options.stallTimeout,
151798
152057
  onTimeout: () => fail$4(new RunnerStalled())
151799
152058
  }), raceFirst(taskJsonCreated));
@@ -151823,7 +152082,7 @@ const agentReviewer = fnUntraced(function* (options) {
151823
152082
  const promptGen = yield* PromptGen;
151824
152083
  const gitFlow = yield* GitFlow;
151825
152084
  const customInstructions = yield* pipe(fs.readFileString(pathService.join(worktree.directory, "LALPH_REVIEW.md")), option$1);
151826
- return yield* pipe(options.cliAgent.command({
152085
+ return yield* pipe(options.preset.cliAgent.command({
151827
152086
  prompt: match$7(customInstructions, {
151828
152087
  onNone: () => promptGen.promptReview({
151829
152088
  prompt: options.instructions,
@@ -151834,9 +152093,10 @@ const agentReviewer = fnUntraced(function* (options) {
151834
152093
  specsDirectory: options.specsDirectory
151835
152094
  })
151836
152095
  }),
151837
- prdFilePath: pathService.join(".lalph", "prd.yml")
151838
- }), setCwd(worktree.directory), options.commandPrefix).pipe(worktree.execWithStallTimeout({
151839
- cliAgent: options.cliAgent,
152096
+ prdFilePath: pathService.join(".lalph", "prd.yml"),
152097
+ extraArgs: options.preset.extraArgs
152098
+ }), setCwd(worktree.directory), options.preset.withCommandPrefix).pipe(worktree.execWithStallTimeout({
152099
+ cliAgent: options.preset.cliAgent,
151840
152100
  stallTimeout: options.stallTimeout
151841
152101
  }));
151842
152102
  });
@@ -151847,14 +152107,15 @@ const agentTimeout = fnUntraced(function* (options) {
151847
152107
  const pathService = yield* Path$1;
151848
152108
  const worktree = yield* Worktree;
151849
152109
  const promptGen = yield* PromptGen;
151850
- return yield* pipe(options.cliAgent.command({
152110
+ return yield* pipe(options.preset.cliAgent.command({
151851
152111
  prompt: promptGen.promptTimeout({
151852
152112
  taskId: options.task.id,
151853
152113
  specsDirectory: options.specsDirectory
151854
152114
  }),
151855
- prdFilePath: pathService.join(".lalph", "prd.yml")
151856
- }), setCwd(worktree.directory), options.commandPrefix).pipe(worktree.execWithStallTimeout({
151857
- cliAgent: options.cliAgent,
152115
+ prdFilePath: pathService.join(".lalph", "prd.yml"),
152116
+ extraArgs: options.preset.extraArgs
152117
+ }), setCwd(worktree.directory), options.preset.withCommandPrefix).pipe(worktree.execWithStallTimeout({
152118
+ cliAgent: options.preset.cliAgent,
151858
152119
  stallTimeout: options.stallTimeout
151859
152120
  }));
151860
152121
  });
@@ -151867,12 +152128,12 @@ const run = fnUntraced(function* (options) {
151867
152128
  const pathService = yield* Path$1;
151868
152129
  const worktree = yield* Worktree;
151869
152130
  const gh = yield* GithubCli;
151870
- const cliAgent = yield* getOrSelectCliAgent;
151871
152131
  const prd = yield* Prd;
151872
152132
  const source = yield* IssueSource;
151873
152133
  const gitFlow = yield* GitFlow;
151874
152134
  const currentWorker = yield* CurrentWorkerState;
151875
152135
  const registry = yield* AtomRegistry;
152136
+ const preset = yield* getDefaultCliAgentPreset;
151876
152137
  yield* addFinalizer(fnUntraced(function* () {
151877
152138
  const currentBranchName = yield* worktree.currentBranch(worktree.directory).pipe(option$1, map$8(getOrUndefined));
151878
152139
  if (!currentBranchName) return;
@@ -151892,8 +152153,7 @@ const run = fnUntraced(function* (options) {
151892
152153
  registry.update(currentWorker.state, (s) => s.transitionTo(WorkerStatus.ChoosingTask()));
151893
152154
  const chosenTask = yield* agentChooser({
151894
152155
  stallTimeout: options.stallTimeout,
151895
- commandPrefix: options.commandPrefix,
151896
- cliAgent
152156
+ preset
151897
152157
  }).pipe(withSpan("Main.agentChooser"));
151898
152158
  taskId = chosenTask.id;
151899
152159
  yield* prd.setChosenIssueId(taskId);
@@ -151908,6 +152168,7 @@ const run = fnUntraced(function* (options) {
151908
152168
  const feedback = yield* gh.prFeedbackMd(chosenTask.githubPrNumber);
151909
152169
  yield* fs.writeFileString(pathService.join(worktree.directory, ".lalph", "feedback.md"), feedback);
151910
152170
  }
152171
+ const taskPreset = getOrElse$1(yield* source.issueCliAgentPreset(chosenTask.prd), () => preset);
151911
152172
  yield* gen(function* () {
151912
152173
  registry.update(currentWorker.state, (s) => s.transitionTo(WorkerStatus.Working({ issueId: taskId })));
151913
152174
  const instructions = (yield* PromptGen).prompt({
@@ -151919,8 +152180,7 @@ const run = fnUntraced(function* (options) {
151919
152180
  });
151920
152181
  const exitCode = yield* agentWorker({
151921
152182
  stallTimeout: options.stallTimeout,
151922
- cliAgent,
151923
- commandPrefix: options.commandPrefix,
152183
+ preset: taskPreset,
151924
152184
  prompt: instructions
151925
152185
  }).pipe(withSpan("Main.agentWorker"));
151926
152186
  yield* log$1(`Agent exited with code: ${exitCode}`);
@@ -151929,16 +152189,14 @@ const run = fnUntraced(function* (options) {
151929
152189
  yield* agentReviewer({
151930
152190
  specsDirectory: options.specsDirectory,
151931
152191
  stallTimeout: options.stallTimeout,
151932
- cliAgent,
151933
- commandPrefix: options.commandPrefix,
152192
+ preset: taskPreset,
151934
152193
  instructions
151935
152194
  }).pipe(withSpan("Main.agentReviewer"));
151936
152195
  }
151937
152196
  }).pipe(timeout(options.runTimeout), tapErrorTag("TimeoutError", () => agentTimeout({
151938
152197
  specsDirectory: options.specsDirectory,
151939
152198
  stallTimeout: options.stallTimeout,
151940
- cliAgent,
151941
- commandPrefix: options.commandPrefix,
152199
+ preset: taskPreset,
151942
152200
  task: chosenTask.prd
151943
152201
  })));
151944
152202
  yield* gitFlow.postWork({
@@ -151975,7 +152233,6 @@ const runProject = fnUntraced(function* (options) {
151975
152233
  specsDirectory: options.specsDirectory,
151976
152234
  stallTimeout: options.stallTimeout,
151977
152235
  runTimeout: options.runTimeout,
151978
- commandPrefix: options.commandPrefix,
151979
152236
  review: options.project.reviewAgent
151980
152237
  }).pipe(provide$1(options.project.gitFlow === "commit" ? GitFlowCommit : GitFlowPR, { local: true }), withWorkerState(options.project.id))), catchTags({
151981
152238
  NoMoreWork(_error) {
@@ -152008,8 +152265,7 @@ const commandRoot = make$35("lalph", {
152008
152265
  specsDirectory,
152009
152266
  verbose
152010
152267
  }).pipe(withHandler(fnUntraced(function* ({ iterations, maxIterationMinutes, stallMinutes, specsDirectory }) {
152011
- const commandPrefix = yield* getCommandPrefix;
152012
- yield* getOrSelectCliAgent;
152268
+ yield* getDefaultCliAgentPreset;
152013
152269
  let allProjects = yield* getAllProjects;
152014
152270
  if (allProjects.length === 0) {
152015
152271
  yield* welcomeWizard;
@@ -152022,8 +152278,7 @@ const commandRoot = make$35("lalph", {
152022
152278
  project,
152023
152279
  specsDirectory,
152024
152280
  stallTimeout: minutes(stallMinutes),
152025
- runTimeout: minutes(maxIterationMinutes),
152026
- commandPrefix
152281
+ runTimeout: minutes(maxIterationMinutes)
152027
152282
  }).pipe(provideService(CurrentProjectId, project.id)), {
152028
152283
  concurrency: "unbounded",
152029
152284
  discard: true
@@ -152043,11 +152298,11 @@ const agentPlanner = fnUntraced(function* (options) {
152043
152298
  const pathService = yield* Path$1;
152044
152299
  const worktree = yield* Worktree;
152045
152300
  const promptGen = yield* PromptGen;
152046
- yield* pipe(options.cliAgent.commandPlan({
152301
+ yield* pipe(options.preset.cliAgent.commandPlan({
152047
152302
  prompt: promptGen.planPrompt(options),
152048
152303
  prdFilePath: pathService.join(".lalph", "prd.yml"),
152049
152304
  dangerous: options.dangerous
152050
- }), setCwd(worktree.directory), options.commandPrefix, exitCode);
152305
+ }), setCwd(worktree.directory), options.preset.withCommandPrefix, exitCode);
152051
152306
  });
152052
152307
 
152053
152308
  //#endregion
@@ -152056,13 +152311,14 @@ const agentTasker = fnUntraced(function* (options) {
152056
152311
  const pathService = yield* Path$1;
152057
152312
  const worktree = yield* Worktree;
152058
152313
  const promptGen = yield* PromptGen;
152059
- return yield* pipe(options.cliAgent.command({
152314
+ return yield* pipe(options.preset.cliAgent.command({
152060
152315
  prompt: promptGen.promptPlanTasks({
152061
152316
  specsDirectory: options.specsDirectory,
152062
152317
  specificationPath: options.specificationPath
152063
152318
  }),
152064
- prdFilePath: pathService.join(".lalph", "prd.yml")
152065
- }), setCwd(worktree.directory), options.commandPrefix, worktree.execWithOutput(options));
152319
+ prdFilePath: pathService.join(".lalph", "prd.yml"),
152320
+ extraArgs: options.preset.extraArgs
152321
+ }), setCwd(worktree.directory), options.preset.withCommandPrefix, worktree.execWithOutput({ cliAgent: options.preset.cliAgent }));
152066
152322
  });
152067
152323
 
152068
152324
  //#endregion
@@ -152076,8 +152332,7 @@ const commandPlanTasks = make$35("tasks", { specificationPath }).pipe(withDescri
152076
152332
  const fs = yield* FileSystem;
152077
152333
  const pathService = yield* Path$1;
152078
152334
  const worktree = yield* Worktree;
152079
- const cliAgent = yield* getOrSelectCliAgent;
152080
- const commandPrefix = yield* getCommandPrefix;
152335
+ const preset = yield* getDefaultCliAgentPreset;
152081
152336
  const content = yield* fs.readFileString(specificationPath);
152082
152337
  const relative = pathService.relative(pathService.resolve("."), specificationPath);
152083
152338
  const worktreeSpecPath = pathService.join(worktree.directory, relative);
@@ -152086,14 +152341,14 @@ const commandPlanTasks = make$35("tasks", { specificationPath }).pipe(withDescri
152086
152341
  yield* agentTasker({
152087
152342
  specsDirectory,
152088
152343
  specificationPath: relative,
152089
- commandPrefix,
152090
- cliAgent
152344
+ preset
152091
152345
  });
152092
152346
  }, provide$1([
152093
152347
  Settings.layer,
152094
152348
  PromptGen.layer,
152095
152349
  Prd.layerProvided.pipe(provide$3(layerProjectIdPrompt)),
152096
- Worktree.layer.pipe(provide$3(layerProjectIdPrompt))
152350
+ CurrentIssueSource.layer,
152351
+ Settings.layer
152097
152352
  ]))));
152098
152353
 
152099
152354
  //#endregion
@@ -152143,12 +152398,10 @@ const commandPlan = make$35("plan", {
152143
152398
  if (isNone(thePlan)) return;
152144
152399
  const project = withNewProject ? yield* addOrUpdateProject() : yield* selectProject;
152145
152400
  const { specsDirectory } = yield* commandRoot;
152146
- const commandPrefix = yield* getCommandPrefix;
152147
152401
  yield* plan({
152148
152402
  plan: thePlan.value,
152149
152403
  specsDirectory,
152150
152404
  targetBranch: project.targetBranch,
152151
- commandPrefix,
152152
152405
  dangerous
152153
152406
  }).pipe(provideService(CurrentProjectId, project.id));
152154
152407
  }, provide$1([
@@ -152160,21 +152413,19 @@ const plan = fnUntraced(function* (options) {
152160
152413
  const fs = yield* FileSystem;
152161
152414
  const pathService = yield* Path$1;
152162
152415
  const worktree = yield* Worktree;
152163
- const cliAgent = yield* getOrSelectCliAgent;
152416
+ const preset = yield* getDefaultCliAgentPreset;
152164
152417
  yield* agentPlanner({
152165
152418
  plan: options.plan,
152166
152419
  specsDirectory: options.specsDirectory,
152167
- commandPrefix: options.commandPrefix,
152168
152420
  dangerous: options.dangerous,
152169
- cliAgent
152421
+ preset
152170
152422
  });
152171
152423
  const planDetails = yield* pipe(fs.readFileString(pathService.join(worktree.directory, ".lalph", "plan.json")), flatMap$2(decodeEffect(PlanDetails)), mapError$2(() => new SpecNotFound()));
152172
152424
  yield* log$1("Converting specification into tasks");
152173
152425
  yield* agentTasker({
152174
152426
  specificationPath: planDetails.specification,
152175
152427
  specsDirectory: options.specsDirectory,
152176
- commandPrefix: options.commandPrefix,
152177
- cliAgent
152428
+ preset
152178
152429
  });
152179
152430
  if (!worktree.inExisting) yield* pipe(fs.copy(pathService.join(worktree.directory, options.specsDirectory), options.specsDirectory, { overwrite: true }), ignore);
152180
152431
  }, scoped$1, provide$1([
@@ -152259,7 +152510,7 @@ const commandSource = make$35("source").pipe(withDescription("Select the issue s
152259
152510
 
152260
152511
  //#endregion
152261
152512
  //#region package.json
152262
- var version = "0.2.21";
152513
+ var version = "0.3.1";
152263
152514
 
152264
152515
  //#endregion
152265
152516
  //#region src/commands/projects/ls.ts
@@ -152331,15 +152582,15 @@ const commandProjectsToggle = make$35("toggle").pipe(withDescription("Enable or
152331
152582
 
152332
152583
  //#endregion
152333
152584
  //#region src/commands/projects.ts
152334
- const subcommands = withSubcommands([
152585
+ const subcommands$1 = withSubcommands([
152335
152586
  commandProjectsLs,
152336
152587
  commandProjectsAdd,
152337
152588
  commandProjectsEdit,
152338
152589
  commandProjectsToggle,
152339
152590
  commandProjectsRm
152340
152591
  ]);
152341
- const commandProjects = make$35("projects").pipe(withDescription("Manage projects"), subcommands);
152342
- const commandProjectsAlias = make$35("p").pipe(withDescription("Alias for 'projects' command"), subcommands);
152592
+ const commandProjects = make$35("projects").pipe(withDescription("Manage projects"), subcommands$1);
152593
+ const commandProjectsAlias = make$35("p").pipe(withDescription("Alias for 'projects' command"), subcommands$1);
152343
152594
 
152344
152595
  //#endregion
152345
152596
  //#region src/commands/sh.ts
@@ -152357,6 +152608,60 @@ const commandSh = make$35("sh").pipe(withDescription("Enter an interactive shell
152357
152608
  }).pipe(exitCode);
152358
152609
  }, scoped$1, provide$1(Prd.layerProvided.pipe(provideMerge(layerProjectIdPrompt))))));
152359
152610
 
152611
+ //#endregion
152612
+ //#region src/commands/agents/ls.ts
152613
+ const commandAgentsLs = make$35("ls").pipe(withDescription("List all configured CLI agent presets"), withHandler(fnUntraced(function* () {
152614
+ const meta = yield* CurrentIssueSource;
152615
+ const source = yield* IssueSource;
152616
+ console.log("Issue source:", meta.name);
152617
+ console.log("");
152618
+ const presets = yield* getAllCliAgentPresets;
152619
+ if (presets.length === 0) {
152620
+ console.log("No presets configured yet. Run 'lalph agents add' to get started.");
152621
+ return;
152622
+ }
152623
+ for (const preset of presets) {
152624
+ console.log(`Preset: ${preset.id}`);
152625
+ yield* source.cliAgentPresetInfo(preset);
152626
+ console.log(` CLI agent: ${preset.cliAgent.name}`);
152627
+ if (preset.extraArgs.length > 0) console.log(` Extra args: ${preset.extraArgs.join(" ")}`);
152628
+ if (preset.commandPrefix.length > 0) console.log(` Command prefix: ${preset.commandPrefix.join(" ")}`);
152629
+ console.log("");
152630
+ }
152631
+ })), provide(Settings.layer), provide(CurrentIssueSource.layer));
152632
+
152633
+ //#endregion
152634
+ //#region src/commands/agents/add.ts
152635
+ const commandAgentsAdd = make$35("add").pipe(withDescription("Add a new CLI agent preset"), withHandler(() => addOrUpdatePreset()), provide(Settings.layer), provide(CurrentIssueSource.layer));
152636
+
152637
+ //#endregion
152638
+ //#region src/commands/agents/rm.ts
152639
+ const commandAgentsRm = make$35("rm").pipe(withDescription("Remove a CLI agent preset"), withHandler(fnUntraced(function* () {
152640
+ const presets = yield* getAllCliAgentPresets;
152641
+ if (presets.length === 0) return yield* log$1("There are no presets to remove.");
152642
+ const preset = yield* selectCliAgentPreset;
152643
+ const newPresets = presets.filter((p) => p.id !== preset.id);
152644
+ yield* Settings.set(allCliAgentPresets, some$2(newPresets));
152645
+ })), provide(Settings.layer), provide(CurrentIssueSource.layer));
152646
+
152647
+ //#endregion
152648
+ //#region src/commands/agents/edit.ts
152649
+ const commandAgentsEdit = make$35("edit").pipe(withDescription("Modify a CLI agent preset"), withHandler(fnUntraced(function* () {
152650
+ if ((yield* getAllCliAgentPresets).length === 0) return yield* log$1("No presets available to edit.");
152651
+ yield* addOrUpdatePreset({ existing: yield* selectCliAgentPreset });
152652
+ })), provide(Settings.layer), provide(CurrentIssueSource.layer));
152653
+
152654
+ //#endregion
152655
+ //#region src/commands/agents.ts
152656
+ const subcommands = withSubcommands([
152657
+ commandAgentsLs,
152658
+ commandAgentsAdd,
152659
+ commandAgentsEdit,
152660
+ commandAgentsRm
152661
+ ]);
152662
+ const commandAgents = make$35("agents").pipe(withDescription("Manage CLI agent presets"), subcommands);
152663
+ const commandAgentsAlias = make$35("a").pipe(withDescription("Alias for 'agents' command"), subcommands);
152664
+
152360
152665
  //#endregion
152361
152666
  //#region src/cli.ts
152362
152667
  commandRoot.pipe(withSubcommands([
@@ -152365,10 +152670,11 @@ commandRoot.pipe(withSubcommands([
152365
152670
  commandEdit,
152366
152671
  commandSh,
152367
152672
  commandSource,
152368
- commandAgent,
152673
+ commandAgents,
152369
152674
  commandProjects,
152370
- commandIssueAlias,
152675
+ commandAgentsAlias,
152371
152676
  commandEditAlias,
152677
+ commandIssueAlias,
152372
152678
  commandProjectsAlias
152373
152679
  ]), provide(Settings.layer), provide(TracingLayer), provide(({ verbose }) => {
152374
152680
  if (!verbose) return empty$13;