@adhd/apigen-engine-runtime 0.3.4 → 0.3.5

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/index.mjs CHANGED
@@ -51,10 +51,8 @@ function o(e) {
51
51
  }
52
52
  //#endregion
53
53
  //#region ../apigen-base-logical/src/lib/descriptor-ext.ts
54
- var s = "x-apigen-logical", c = "x-apigen-codec", l = "x-apigen-ctor", u = "x-apigen-tojson", d = "0.1.0";
55
- //#endregion
56
- //#region ../apigen-base-logical/src/lib/runmode.ts
57
- function f(e, t) {
54
+ var s = "x-apigen-logical", c = "x-apigen-codec", l = "x-apigen-ctor", u = "x-apigen-tojson", d = "0.1.0", f = [];
55
+ function p(e, t) {
58
56
  return {
59
57
  registry: e,
60
58
  resolve: (e) => {
@@ -66,78 +64,74 @@ function f(e, t) {
66
64
  ...t
67
65
  };
68
66
  }
69
- function p(e, t, n) {
70
- let r = n.registry.resolve(t);
71
- if (r) return r.encode(e, t, n);
72
- let i = t.$ref;
73
- if (typeof i == "string") return p(e, n.resolve(i), n);
74
- let a = t.oneOf;
75
- if (Array.isArray(a)) return p(e, h(e, a, t, n), n);
76
- let o = t.type;
77
- if (o === "array") {
78
- if (!Array.isArray(e)) return v(e, t, n);
67
+ function m(e, t, n, r = f) {
68
+ let i = n.registry.resolve(t);
69
+ if (i) return i.encode(e, t, n);
70
+ let a = t.$ref;
71
+ if (typeof a == "string") return re(a, r, n), m(e, ee(a, n), n, [...r, a]);
72
+ let o = t.oneOf;
73
+ if (Array.isArray(o)) return m(e, te(e, o, t, n, r), n, r);
74
+ let s = t.type;
75
+ return s === "array" ? Array.isArray(e) ? g(e, n, () => {
79
76
  let r = t.items;
80
77
  if (!r) return e.map((e) => x(e));
81
78
  let i = n.path;
82
79
  return Array.isArray(r) ? e.map((e, t) => {
83
80
  let a = r[t];
84
- return a === void 0 ? x(e) : p(e, a, {
81
+ return a === void 0 ? x(e) : m(e, a, {
85
82
  ...n,
86
83
  path: `${i}/${t}`
87
84
  });
88
- }) : e.map((e, t) => p(e, r, {
85
+ }) : e.map((e, t) => m(e, r, {
89
86
  ...n,
90
87
  path: `${i}/${t}`
91
88
  }));
92
- }
93
- if (o === "object") {
94
- if (typeof e != "object" || !e || Array.isArray(e)) return v(e, t, n);
89
+ }) : y(e, t, n) : s === "object" ? typeof e != "object" || !e || Array.isArray(e) ? y(e, t, n) : g(e, n, () => {
95
90
  let r = t.properties;
96
91
  if (!r) return x(e);
97
92
  let i = n.path, a = {};
98
93
  for (let [t, o] of Object.entries(r)) {
99
94
  let r = e[t];
100
- r !== void 0 && (a[t] = p(r, o, {
95
+ r !== void 0 && (a[t] = m(r, o, {
101
96
  ...n,
102
97
  path: `${i}/${t}`
103
98
  }));
104
99
  }
105
100
  return a;
106
- }
107
- return o == null ? v(e, t, n) : x(e);
108
- }
109
- function m(e, t, n) {
110
- let r = n.registry.resolve(t);
111
- if (r) return r.decode(e, t, n);
112
- let i = t.$ref;
113
- if (typeof i == "string") return m(e, n.resolve(i), n);
114
- let a = t.oneOf;
115
- if (Array.isArray(a)) return m(e, h(e, a, t, n), n);
116
- let o = t.type;
117
- if (o === "array") {
101
+ }) : s == null ? y(e, t, n) : x(e);
102
+ }
103
+ function h(e, t, n, r = f) {
104
+ let i = n.registry.resolve(t);
105
+ if (i) return i.decode(e, t, n);
106
+ let a = t.$ref;
107
+ if (typeof a == "string") return re(a, r, n), h(e, ee(a, n), n, [...r, a]);
108
+ let o = t.oneOf;
109
+ if (Array.isArray(o)) return h(e, te(e, o, t, n, r), n, r);
110
+ let s = t.type;
111
+ if (s === "array") {
118
112
  if (!Array.isArray(e)) return e;
119
113
  let r = t.items;
120
114
  if (!r) return e;
121
115
  let i = n.path;
122
116
  return Array.isArray(r) ? e.map((e, t) => {
123
117
  let a = r[t];
124
- return a === void 0 ? e : m(e, a, {
118
+ return a === void 0 ? e : h(e, a, {
125
119
  ...n,
126
120
  path: `${i}/${t}`
127
121
  });
128
- }) : e.map((e, t) => m(e, r, {
122
+ }) : e.map((e, t) => h(e, r, {
129
123
  ...n,
130
124
  path: `${i}/${t}`
131
125
  }));
132
126
  }
133
- if (o === "object") {
127
+ if (s === "object") {
134
128
  if (typeof e != "object" || !e || Array.isArray(e)) return e;
135
129
  let r = t.properties;
136
130
  if (!r) return e;
137
131
  let i = n.path, a = {};
138
132
  for (let [t, o] of Object.entries(r)) {
139
133
  let r = e[t];
140
- r !== void 0 && (a[t] = m(r, o, {
134
+ r !== void 0 && (a[t] = h(r, o, {
141
135
  ...n,
142
136
  path: `${i}/${t}`
143
137
  }));
@@ -145,101 +139,142 @@ function m(e, t, n) {
145
139
  for (let [t, n] of Object.entries(e)) !(t in r) && n !== void 0 && (a[t] = n);
146
140
  return a;
147
141
  }
148
- return o == null ? b(e, n) : e;
142
+ return s == null ? b(e, n) : e;
143
+ }
144
+ function ee(e, t) {
145
+ let n = [e], r = t.resolve(e);
146
+ for (; typeof r.$ref == "string" && t.registry.resolve(r) === void 0;) {
147
+ let e = r.$ref;
148
+ if (n.includes(e)) throw Error(`[apigen-logical] $ref "${e}" at "${t.path || "#"}" is an alias cycle (${[...n, e].join(" -> ")}); a $ref chain must end at a definition that is not itself a $ref`);
149
+ n.push(e), r = t.resolve(e);
150
+ }
151
+ return r;
152
+ }
153
+ function g(e, t, n) {
154
+ if (t.seen.has(e)) throw Error(`[apigen-logical] cyclic host value at "${t.path || "#"}": the value contains a reference to one of its own ancestors, which cannot be encoded to JSON`);
155
+ t.seen.add(e);
156
+ try {
157
+ return n();
158
+ } finally {
159
+ t.seen.delete(e);
160
+ }
149
161
  }
150
- function h(e, t, n, r) {
151
- let i = n.discriminator;
152
- if (i?.propertyName) {
153
- let n = i.propertyName, a = typeof e == "object" && e ? e[n] : void 0;
154
- if (typeof a == "string") {
155
- if (i.mapping) {
156
- let e = i.mapping[a];
162
+ function te(e, t, n, r, i = f) {
163
+ let a = n.discriminator;
164
+ if (a?.propertyName) {
165
+ let n = a.propertyName, i = typeof e == "object" && e ? e[n] : void 0;
166
+ if (typeof i == "string") {
167
+ if (a.mapping) {
168
+ let e = a.mapping[i];
157
169
  if (e) {
158
170
  let n = t.find((t) => t.$ref === e);
159
171
  if (n) return n;
160
172
  }
161
173
  }
162
174
  for (let e of t) {
163
- let t = g(e, r).properties?.[n];
175
+ let t = ne(e, r).properties?.[n];
164
176
  if (!t) continue;
165
- let i = t.enum;
166
- if (t.const === a || Array.isArray(i) && i.includes(a)) return e;
177
+ let a = t.enum;
178
+ if (t.const === i || Array.isArray(a) && a.includes(i)) return e;
167
179
  }
168
180
  }
169
181
  }
170
- let a = te(e, t, r);
171
- if (a) return a;
172
- let o, s = -1;
182
+ let o = ae(e, t, r, i);
183
+ if (o) return o;
184
+ let s, c = -1;
173
185
  for (let n of t) {
174
- let t = _(e, g(n, r), r);
175
- t !== null && t > s && (s = t, o = n);
186
+ let t = _(n, r, i);
187
+ if (t === void 0) continue;
188
+ let a = v(e, t.node, r, t.viaRefs);
189
+ a !== null && a > c && (c = a, s = n);
176
190
  }
177
- return o === void 0 ? t[0] ?? {} : o;
191
+ return s === void 0 ? t[0] ?? {} : s;
178
192
  }
179
- function g(e, t) {
193
+ function ne(e, t) {
180
194
  let n = e.$ref;
181
195
  return typeof n == "string" ? t.resolve(n) : e;
182
196
  }
183
- function ee(e) {
197
+ function _(e, t, n) {
198
+ let r = e.$ref;
199
+ if (typeof r != "string") return {
200
+ node: e,
201
+ viaRefs: n
202
+ };
203
+ if (!n.includes(r)) return {
204
+ node: t.resolve(r),
205
+ viaRefs: [...n, r]
206
+ };
207
+ }
208
+ function re(e, t, n) {
209
+ let r = t.indexOf(e);
210
+ if (r === -1) return;
211
+ let i = [...t.slice(r), e].join(" -> ");
212
+ throw Error(`[apigen-logical] E_RUNMODE_CYCLE: $ref "${e}" at "${n.path || "#"}" re-enters itself while transcoding the same value (chain ${i}); a $ref/oneOf cycle that never descends into a property or item cannot terminate`);
213
+ }
214
+ function ie(e) {
184
215
  if ("const" in e) return e.const;
185
216
  let t = e.enum;
186
217
  if (Array.isArray(t) && t.length === 1) return t[0];
187
218
  }
188
- function te(e, t, n) {
219
+ function ae(e, t, n, r = f) {
189
220
  if (typeof e != "object" || !e || Array.isArray(e)) return;
190
- let r = e, i = t.map((e) => g(e, n)), a = /* @__PURE__ */ new Set();
191
- for (let e of i) {
221
+ let i = e, a = t.map((e) => ne(e, n)), o = /* @__PURE__ */ new Set();
222
+ for (let e of a) {
192
223
  let t = e.properties;
193
- if (t) for (let [e, n] of Object.entries(t)) ee(n) !== void 0 && a.add(e);
194
- }
195
- for (let o of a) {
196
- let a = i.map((e) => {
197
- let t = e.properties?.[o];
198
- return t ? ee(t) : void 0;
199
- }), s = a.filter((e) => e !== void 0), c = new Set(s);
200
- if (s.length < 2 || c.size !== s.length) continue;
201
- let l = r[o];
202
- if (l === void 0) continue;
203
- let u = a.findIndex((e) => e === l);
204
- if (u !== -1 && _(e, i[u], n) !== null) return t[u];
205
- }
206
- }
207
- function ne(e) {
224
+ if (t) for (let [e, n] of Object.entries(t)) ie(n) !== void 0 && o.add(e);
225
+ }
226
+ for (let s of o) {
227
+ let o = a.map((e) => {
228
+ let t = e.properties?.[s];
229
+ return t ? ie(t) : void 0;
230
+ }), c = o.filter((e) => e !== void 0), l = new Set(c);
231
+ if (c.length < 2 || l.size !== c.length) continue;
232
+ let u = i[s];
233
+ if (u === void 0) continue;
234
+ let d = o.findIndex((e) => e === u);
235
+ if (d === -1) continue;
236
+ let f = _(t[d], n, r);
237
+ if (f !== void 0 && v(e, f.node, n, f.viaRefs) !== null) return t[d];
238
+ }
239
+ }
240
+ function oe(e) {
208
241
  if (e === null) return "null";
209
242
  if (Array.isArray(e)) return "array";
210
243
  let t = typeof e;
211
244
  return t === "number" ? Number.isInteger(e) ? "integer" : "number" : t;
212
245
  }
213
- function _(e, t, n) {
214
- let r = t.oneOf;
215
- if (Array.isArray(r)) {
246
+ function v(e, t, n, r = f) {
247
+ let i = t.oneOf;
248
+ if (Array.isArray(i)) {
216
249
  let t = null;
217
- for (let i of r) {
218
- let r = _(e, g(i, n), n);
219
- r !== null && (t === null || r > t) && (t = r);
250
+ for (let a of i) {
251
+ let i = _(a, n, r);
252
+ if (i === void 0) continue;
253
+ let o = v(e, i.node, n, i.viaRefs);
254
+ o !== null && (t === null || o > t) && (t = o);
220
255
  }
221
256
  return t;
222
257
  }
223
- let i = t.type, a = ne(e);
224
- if (typeof i == "string") {
225
- if (!(i === a || i === "number" && a === "integer")) return null;
226
- } else if (Array.isArray(i) && !i.some((e) => e === a || e === "number" && a === "integer")) return null;
227
- if (typeof e != "object" || !e || Array.isArray(e)) return +(typeof i == "string");
228
- let o = e, s = t.required, c = 0;
229
- if (Array.isArray(s)) {
230
- for (let e of s) if (typeof e == "string") {
231
- if (o[e] === void 0) return null;
232
- c += 2;
258
+ let a = t.type, o = oe(e);
259
+ if (typeof a == "string") {
260
+ if (!(a === o || a === "number" && o === "integer")) return null;
261
+ } else if (Array.isArray(a) && !a.some((e) => e === o || e === "number" && o === "integer")) return null;
262
+ if (typeof e != "object" || !e || Array.isArray(e)) return +(typeof a == "string");
263
+ let s = e, c = t.required, l = 0;
264
+ if (Array.isArray(c)) {
265
+ for (let e of c) if (typeof e == "string") {
266
+ if (s[e] === void 0) return null;
267
+ l += 2;
233
268
  }
234
269
  }
235
- let l = t.properties;
236
- if (l) {
237
- for (let e of Object.keys(l)) o[e] !== void 0 && (c += 1);
238
- for (let e of Object.keys(o)) l[e] === void 0 && --c;
270
+ let u = t.properties;
271
+ if (u) {
272
+ for (let e of Object.keys(u)) s[e] !== void 0 && (l += 1);
273
+ for (let e of Object.keys(s)) u[e] === void 0 && --l;
239
274
  }
240
- return c;
275
+ return l;
241
276
  }
242
- function v(e, t, n) {
277
+ function y(e, t, n) {
243
278
  for (let t of n.registry.ids()) {
244
279
  let r = n.registry.get(t);
245
280
  if (r?.ownsValue?.(e)) return {
@@ -247,15 +282,15 @@ function v(e, t, n) {
247
282
  v: r.encode(e, r.schema, n)
248
283
  };
249
284
  }
250
- if (Array.isArray(e)) return e.map((e) => v(e, {}, n));
251
- if (y(e)) {
285
+ if (Array.isArray(e)) return e.map((e) => y(e, {}, n));
286
+ if (se(e)) {
252
287
  let t = {};
253
- for (let [r, i] of Object.entries(e)) i !== void 0 && (t[r] = v(i, {}, n));
288
+ for (let [r, i] of Object.entries(e)) i !== void 0 && (t[r] = y(i, {}, n));
254
289
  return t;
255
290
  }
256
291
  return x(e);
257
292
  }
258
- function y(e) {
293
+ function se(e) {
259
294
  if (typeof e != "object" || !e || Array.isArray(e)) return !1;
260
295
  let t = Object.getPrototypeOf(e);
261
296
  return t === Object.prototype || t === null;
@@ -266,7 +301,7 @@ function b(e, t) {
266
301
  if (a) return a.decode(n.v, a.schema, t);
267
302
  }
268
303
  if (Array.isArray(e)) return e.map((e) => b(e, t));
269
- if (y(e)) {
304
+ if (se(e)) {
270
305
  let n = {};
271
306
  for (let [r, i] of Object.entries(e)) n[r] = b(i, t);
272
307
  return n;
@@ -283,7 +318,7 @@ function x(e) {
283
318
  }
284
319
  return null;
285
320
  }
286
- function re(e, t) {
321
+ function ce(e, t) {
287
322
  let n = /* @__PURE__ */ new Set(), r = [e];
288
323
  for (; r.length > 0;) {
289
324
  let e = r.pop();
@@ -314,17 +349,67 @@ function re(e, t) {
314
349
  typeof l == "object" && l && r.push(l);
315
350
  }
316
351
  }
317
- function ie(e) {
352
+ function le(e) {
318
353
  return {
319
354
  encode(t, n, r) {
320
- return p(t, n, f(e, r));
355
+ return m(t, n, p(e, r));
321
356
  },
322
357
  decode(t, n, r) {
323
- return m(t, n, f(e, r));
358
+ return h(t, n, p(e, r));
324
359
  }
325
360
  };
326
361
  }
327
362
  //#endregion
363
+ //#region ../apigen-base-logical/src/lib/emit.ts
364
+ var ue = class extends Error {
365
+ constructor(e, t) {
366
+ super(`${e} (at ${t || "#"})`), this.code = "E_EMIT", this.name = "EmitError", this.path = t;
367
+ }
368
+ };
369
+ function de(e) {
370
+ return (t) => {
371
+ let n = /^#\/(\$defs|definitions)\/([^/]+)$/.exec(t);
372
+ if (!n) throw new ue(`E_EMIT: unsupported $ref form "${t}"; supported forms are "#/$defs/<name>" and "#/definitions/<name>"`, "");
373
+ let r = e[n[1]], i = fe(r, pe(n[2])) ?? fe(r, t);
374
+ if (typeof i != "object" || !i) throw new ue(`E_EMIT: $ref "${t}" has no $def target`, "");
375
+ return i;
376
+ };
377
+ }
378
+ function fe(e, t) {
379
+ if (typeof e == "object" && e) return Object.prototype.hasOwnProperty.call(e, t) ? e[t] : void 0;
380
+ }
381
+ function pe(e) {
382
+ return e.replace(/~1/g, "/").replace(/~0/g, "~");
383
+ }
384
+ `
385
+ function __apigenEnvelopeEncode(v) {
386
+ // Schema-less position: pass typed JSON through unchanged. A richer host
387
+ // prelude may wrap recognized runtime types as { ${JSON.stringify(i)}: id, v }.
388
+ return v;
389
+ }
390
+ function __apigenEnvelopeDecode(w) {
391
+ return w != null && typeof w === 'object' && ${JSON.stringify(i)} in w
392
+ ? w.v
393
+ : w;
394
+ }
395
+ `.trim(), Object.freeze({
396
+ "date-time": {
397
+ encode: "$.toISOString()",
398
+ decode: "new Date($)",
399
+ mode: "native"
400
+ },
401
+ int64: {
402
+ encode: "String($)",
403
+ decode: "BigInt($)",
404
+ mode: "native"
405
+ },
406
+ byte: {
407
+ encode: "Buffer.from($).toString('base64')",
408
+ decode: "new Uint8Array(Buffer.from($, 'base64'))",
409
+ mode: "native"
410
+ }
411
+ });
412
+ //#endregion
328
413
  //#region ../apigen-base-logical/src/lib/codecs/date-time.ts
329
414
  var S = {
330
415
  id: "date-time",
@@ -386,7 +471,7 @@ var S = {
386
471
  };
387
472
  //#endregion
388
473
  //#region ../apigen-base-logical/src/lib/codecs/decimal.ts
389
- function ae(e) {
474
+ function me(e) {
390
475
  return e;
391
476
  }
392
477
  var w = {
@@ -405,10 +490,10 @@ var w = {
405
490
  decode(e, t, n) {
406
491
  if (typeof e != "string") {
407
492
  if (n.mode === "strict") throw TypeError(`[decimal] expected a string on the wire at "${n.path}", got ${typeof e}`);
408
- return ae(String(e));
493
+ return me(String(e));
409
494
  }
410
495
  if (n.mode === "strict" && !/^-?\d+(\.\d+)?$/.test(e)) throw TypeError(`[decimal] wire value "${e}" at "${n.path}" is not a valid decimal string`);
411
- return ae(e);
496
+ return me(e);
412
497
  }
413
498
  }, T = {
414
499
  id: "byte",
@@ -434,7 +519,7 @@ var w = {
434
519
  if (n.mode === "strict" && !/^[A-Za-z0-9+/]*={0,2}$/.test(e)) throw TypeError(`[byte] wire value at "${n.path}" is not standard base64 (format:byte): "${e}"`);
435
520
  return new Uint8Array(Buffer.from(e, "base64"));
436
521
  }
437
- }, oe = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/, E = {
522
+ }, he = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/, E = {
438
523
  id: "uuid",
439
524
  kind: "scalar",
440
525
  schema: {
@@ -452,10 +537,10 @@ var w = {
452
537
  if (n.mode === "strict") throw TypeError(`[uuid] expected a string on the wire at "${n.path}", got ${typeof e}`);
453
538
  return String(e).toLowerCase();
454
539
  }
455
- if (n.mode === "strict" && !oe.test(e)) throw TypeError(`[uuid] wire value "${e}" at "${n.path}" is not a lowercase-hyphenated RFC 4122 UUID`);
540
+ if (n.mode === "strict" && !he.test(e)) throw TypeError(`[uuid] wire value "${e}" at "${n.path}" is not a lowercase-hyphenated RFC 4122 UUID`);
456
541
  return e;
457
542
  }
458
- }, D = "NaN", O = "Infinity", k = "-Infinity", se = /* @__PURE__ */ new Set([
543
+ }, D = "NaN", O = "Infinity", k = "-Infinity", ge = /* @__PURE__ */ new Set([
459
544
  D,
460
545
  O,
461
546
  k
@@ -481,10 +566,10 @@ var w = {
481
566
  let t = Number(e);
482
567
  if (!Number.isNaN(t)) return t;
483
568
  }
484
- if (n.mode === "strict") throw TypeError(`[number-special] unrecognized wire value at "${n.path}": ${JSON.stringify(e)}. Expected a number or one of ${[...se].join(", ")}.`);
569
+ if (n.mode === "strict") throw TypeError(`[number-special] unrecognized wire value at "${n.path}": ${JSON.stringify(e)}. Expected a number or one of ${[...ge].join(", ")}.`);
485
570
  return NaN;
486
571
  }
487
- }, ce = [
572
+ }, _e = [
488
573
  S,
489
574
  C,
490
575
  w,
@@ -492,27 +577,27 @@ var w = {
492
577
  E,
493
578
  A
494
579
  ];
495
- function le(e, t = {}) {
496
- for (let n of ce) e.register(n, { override: t.override ?? !1 });
580
+ function ve(e, t = {}) {
581
+ for (let n of _e) e.register(n, { override: t.override ?? !1 });
497
582
  }
498
583
  //#endregion
499
584
  //#region ../apigen-base-logical/src/lib/example.ts
500
- var ue = 12;
501
- function de(e, t) {
585
+ var ye = 12;
586
+ function be(e, t) {
502
587
  let n = /^#\/(definitions|\$defs)\/(.+)$/.exec(e);
503
588
  if (!n) return;
504
589
  let [, r, i] = n;
505
590
  return (r === "$defs" ? t.$defs : t.definitions)?.[decodeURIComponent(i)];
506
591
  }
507
- function j(e) {
592
+ function xe(e) {
508
593
  return Array.isArray(e) && e.length > 0 ? e[0] : void 0;
509
594
  }
510
- function fe(e) {
595
+ function Se(e) {
511
596
  if (Array.isArray(e.type)) return e.type.find((e) => e !== "null") ?? e.type[0];
512
597
  if (typeof e.type == "string") return e.type;
513
598
  if (e.properties) return "object";
514
599
  }
515
- function pe(e) {
600
+ function Ce(e) {
516
601
  switch (e.format) {
517
602
  case "date-time": return "1970-01-01T00:00:00.000Z";
518
603
  case "date": return "1970-01-01";
@@ -531,23 +616,23 @@ function pe(e) {
531
616
  default: return "<string>";
532
617
  }
533
618
  }
534
- function me(e, t, n) {
619
+ function we(e, t, n) {
535
620
  let r = e.properties ?? {}, i = e.required ?? [], a = {};
536
621
  for (let e of i) {
537
622
  let i = r[e];
538
- a[e] = i === void 0 ? `<${e}>` : M(i, t, n + 1);
623
+ a[e] = i === void 0 ? `<${e}>` : j(i, t, n + 1);
539
624
  }
540
625
  return a;
541
626
  }
542
- function he(e, t, n) {
627
+ function Te(e, t, n) {
543
628
  let r = Array.isArray(e.items) ? e.items[0] : e.items;
544
- return r ? [M(r, t, n + 1)] : [];
629
+ return r ? [j(r, t, n + 1)] : [];
545
630
  }
546
- function M(e, t = e ?? {}, n = 0) {
547
- if (!e || n > ue) return null;
631
+ function j(e, t = e ?? {}, n = 0) {
632
+ if (!e || n > ye) return null;
548
633
  if (typeof e.$ref == "string") {
549
- let r = de(e.$ref, t);
550
- return r === void 0 ? null : M(r, t, n + 1);
634
+ let r = be(e.$ref, t);
635
+ return r === void 0 ? null : j(r, t, n + 1);
551
636
  }
552
637
  if (e.const !== void 0) return e.const;
553
638
  if (Array.isArray(e.enum) && e.enum.length > 0) return e.enum[0];
@@ -557,18 +642,18 @@ function M(e, t = e ?? {}, n = 0) {
557
642
  Object.assign(r, t.properties ?? {});
558
643
  for (let e of t.required ?? []) i.includes(e) || i.push(e);
559
644
  }
560
- return me({
645
+ return we({
561
646
  ...e,
562
647
  properties: r,
563
648
  required: i
564
649
  }, t, n);
565
650
  }
566
- let r = j(e.oneOf) ?? j(e.anyOf);
567
- if (r) return M(r, t, n + 1);
568
- switch (fe(e)) {
569
- case "object": return me(e, t, n);
570
- case "array": return he(e, t, n);
571
- case "string": return pe(e);
651
+ let r = xe(e.oneOf) ?? xe(e.anyOf);
652
+ if (r) return j(r, t, n + 1);
653
+ switch (Se(e)) {
654
+ case "object": return we(e, t, n);
655
+ case "array": return Te(e, t, n);
656
+ case "string": return Ce(e);
572
657
  case "integer":
573
658
  case "number": return 0;
574
659
  case "boolean": return !1;
@@ -576,9 +661,9 @@ function M(e, t = e ?? {}, n = 0) {
576
661
  default: return null;
577
662
  }
578
663
  }
579
- function ge(e) {
664
+ function Ee(e) {
580
665
  if (!e) return;
581
- let t = M(e);
666
+ let t = j(e);
582
667
  return `Example: ${JSON.stringify(t)}`;
583
668
  }
584
669
  S.id, C.id, w.id, T.id, E.id, A.id, Object.freeze({
@@ -804,43 +889,149 @@ S.id, C.id, w.id, T.id, E.id, A.id, Object.freeze({
804
889
  }
805
890
  });
806
891
  //#endregion
892
+ //#region ../apigen-base-errors/src/lib/errors.ts
893
+ var De = [
894
+ "invalid_argument",
895
+ "unauthenticated",
896
+ "permission_denied",
897
+ "not_found",
898
+ "internal"
899
+ ], M = class extends Error {
900
+ constructor(e, t, n) {
901
+ super(t), this.name = "ApiError", this.code = e, this.details = n, Object.setPrototypeOf(this, new.target.prototype);
902
+ }
903
+ toJSON() {
904
+ let e = {
905
+ code: this.code,
906
+ message: this.message
907
+ };
908
+ return this.details !== void 0 && (e.details = this.details), e;
909
+ }
910
+ };
911
+ function Oe(e) {
912
+ return typeof e == "object" && !!e && e.name === "ApiError" && De.includes(e.code) && typeof e.toJSON == "function";
913
+ }
914
+ function ke(e, t, n = 0) {
915
+ return e === "before-first-chunk" ? {
916
+ phase: e,
917
+ error: t
918
+ } : {
919
+ phase: e,
920
+ error: t,
921
+ chunksDelivered: n
922
+ };
923
+ }
924
+ //#endregion
925
+ //#region src/lib/stream.ts
926
+ function Ae(e) {
927
+ let { produce: t, signal: n } = e, r = n ?? new AbortController().signal;
928
+ return { [Symbol.asyncIterator]() {
929
+ let e = t(r);
930
+ return {
931
+ async next() {
932
+ return r.aborted ? (await e.return(void 0), {
933
+ done: !0,
934
+ value: void 0
935
+ }) : e.next();
936
+ },
937
+ async return(t) {
938
+ return await e.return(t), {
939
+ done: !0,
940
+ value: void 0
941
+ };
942
+ },
943
+ async throw(t) {
944
+ return await e.throw(t), {
945
+ done: !0,
946
+ value: void 0
947
+ };
948
+ }
949
+ };
950
+ } };
951
+ }
952
+ async function je(e) {
953
+ let t = [];
954
+ for await (let n of e) t.push(n);
955
+ return t;
956
+ }
957
+ async function Me(e) {
958
+ let t = [];
959
+ try {
960
+ for await (let n of e) t.push(n);
961
+ return {
962
+ ok: !0,
963
+ chunks: t
964
+ };
965
+ } catch (e) {
966
+ let n = Oe(e) ? e : new M("internal", e instanceof Error ? e.message : String(e));
967
+ return t.length === 0 ? {
968
+ ok: !1,
969
+ carrier: ke("before-first-chunk", n)
970
+ } : {
971
+ ok: !1,
972
+ carrier: ke("after-first-chunk", n, t.length)
973
+ };
974
+ }
975
+ }
976
+ function N(e) {
977
+ return typeof e == "object" && !!e && Symbol.asyncIterator in e;
978
+ }
979
+ //#endregion
807
980
  //#region src/lib/dispatch.ts
808
- var N = o();
809
- le(N);
810
- var _e = ie(N.freeze());
811
- function ve(e, t) {
981
+ var Ne = o();
982
+ ve(Ne);
983
+ var P = le(Ne.freeze());
984
+ function F(e, t) {
812
985
  return t in (e.input?.properties ?? {});
813
986
  }
814
- function ye(e) {
987
+ function I(e) {
815
988
  let t = e.input?.properties?.data;
816
989
  return Object.keys(t?.properties ?? {});
817
990
  }
818
- function be(e, t) {
991
+ function Pe(e, t) {
819
992
  let n = e.input?.properties?.data?.properties?.[t];
820
993
  return n === void 0 ? void 0 : n;
821
994
  }
822
- function xe(e, t) {
823
- return t === void 0 || e === void 0 ? e : _e.decode(e, t);
995
+ function Fe(e, t, n) {
996
+ return t === void 0 || e === void 0 ? e : P.decode(e, t, n);
824
997
  }
825
- function P(e, t) {
826
- let n = t.output;
827
- return !n || Object.keys(n).length === 0 ? e : _e.encode(e, n);
998
+ function L(e, t) {
999
+ let n = de(e);
1000
+ return { resolve: (e) => {
1001
+ try {
1002
+ return n(e);
1003
+ } catch (e) {
1004
+ let n = e instanceof Error ? e.message : String(e), r = /* @__PURE__ */ Error(`[apigen-engine-runtime] op "${t}": ${n}`);
1005
+ throw r.cause = e, r;
1006
+ }
1007
+ } };
828
1008
  }
829
- async function Se(e, t, n, r, i, a) {
830
- let o = ye(n).map((e) => xe(a[e], be(n, e)));
831
- if (ve(n, "session") && t) {
1009
+ function Ie(e, t, n) {
1010
+ return { [Symbol.asyncIterator]: async function* () {
1011
+ for await (let r of e) yield P.encode(r, t, n);
1012
+ } };
1013
+ }
1014
+ function R(e, t, n) {
1015
+ let r = n.output;
1016
+ if (!r || Object.keys(r).length === 0) return e;
1017
+ let i = L(r, t);
1018
+ return N(e) ? Ie(e, r, i) : P.encode(e, r, i);
1019
+ }
1020
+ async function z(e, t, n, r, i, a) {
1021
+ let o = I(n), s = L(n.input, r), c = o.map((e) => Fe(a[e], Pe(n, e), s));
1022
+ if (F(n, "session") && t) {
832
1023
  let a = await t({ session: i.session });
833
- return P(await e[r](a, ...o), n);
1024
+ return R(await e[r](a, ...c), r, n);
834
1025
  }
835
1026
  if (n.hasCtx) {
836
1027
  let a = t ? await t(i) : void 0;
837
- return P(await e[r](a, ...o), n);
1028
+ return R(await e[r](a, ...c), r, n);
838
1029
  }
839
- return P(await e[r](...o), n);
1030
+ return R(await e[r](...c), r, n);
840
1031
  }
841
1032
  //#endregion
842
1033
  //#region src/lib/invoke.ts
843
- var Ce = class {
1034
+ var Le = class {
844
1035
  constructor() {
845
1036
  this._map = /* @__PURE__ */ new Map();
846
1037
  }
@@ -854,21 +1045,21 @@ var Ce = class {
854
1045
  return this._map.has(e);
855
1046
  }
856
1047
  };
857
- function we(e = []) {
1048
+ function Re(e = []) {
858
1049
  return async function(t, n, r) {
859
1050
  let i = r.schemas[t];
860
1051
  if (!i) throw Error(`apigen/invoke: no schema found for operation "${t}"`);
861
- return e.reduceRight((e, t) => () => t(n, e), () => Se(r.fns, r.createClient, i, t, n.envelope, n.domainArgs))();
1052
+ return e.reduceRight((e, t) => () => t(n, e), () => z(r.fns, r.createClient, i, t, n.envelope, n.domainArgs))();
862
1053
  };
863
1054
  }
864
1055
  //#endregion
865
1056
  //#region src/lib/define-middleware.ts
866
- function Te(e) {
1057
+ function ze(e) {
867
1058
  return e;
868
1059
  }
869
1060
  //#endregion
870
1061
  //#region src/lib/event-bus.ts
871
- var Ee = class {
1062
+ var Be = class {
872
1063
  constructor() {
873
1064
  this.handlers = /* @__PURE__ */ new Map();
874
1065
  }
@@ -886,19 +1077,19 @@ var Ee = class {
886
1077
  this.handlers.clear();
887
1078
  }
888
1079
  async emit(e) {
889
- for (let [t, n] of this.handlers) if (De(t, e)) for (let t of n) await t(e);
1080
+ for (let [t, n] of this.handlers) if (Ve(t, e)) for (let t of n) await t(e);
890
1081
  }
891
1082
  };
892
- function De(e, t) {
1083
+ function Ve(e, t) {
893
1084
  let [n, r, i] = e.split(":");
894
1085
  return !(n !== "*" && n !== t.module || r && r !== "*" && r !== t.method || i && i !== "*" && i !== t.lifecycle);
895
1086
  }
896
- function Oe(e, t) {
1087
+ function He(e, t) {
897
1088
  for (let n of e) if (n.eventMapping) for (let [e, r] of Object.entries(n.eventMapping)) t.on(e, r);
898
1089
  }
899
1090
  //#endregion
900
1091
  //#region src/lib/build-context.ts
901
- async function ke(e, t, n) {
1092
+ async function Ue(e, t, n) {
902
1093
  let r = { ...t };
903
1094
  for (let t of e) if (t.createContext) {
904
1095
  await n.emit({
@@ -933,13 +1124,13 @@ async function ke(e, t, n) {
933
1124
  e(import.meta.url);
934
1125
  //#endregion
935
1126
  //#region ../apigen-core-client/src/lib/get-safety.ts
936
- var F = /* @__PURE__ */ new Set([
1127
+ var B = /* @__PURE__ */ new Set([
937
1128
  "string",
938
1129
  "number",
939
1130
  "boolean",
940
1131
  "integer"
941
1132
  ]);
942
- function Ae(e) {
1133
+ function We(e) {
943
1134
  if (!Array.isArray(e) || e.length < 2) return !1;
944
1135
  let t = 0;
945
1136
  for (let n of e) {
@@ -947,7 +1138,7 @@ function Ae(e) {
947
1138
  let { type: e, $ref: r, oneOf: i, anyOf: a, allOf: o } = n;
948
1139
  if (r !== void 0 || i || a || o) return !1;
949
1140
  if (e !== "null") {
950
- if (typeof e == "string" && F.has(e)) {
1141
+ if (typeof e == "string" && B.has(e)) {
951
1142
  t++;
952
1143
  continue;
953
1144
  }
@@ -956,26 +1147,26 @@ function Ae(e) {
956
1147
  }
957
1148
  return t === 1;
958
1149
  }
959
- function je(e) {
1150
+ function Ge(e) {
960
1151
  if (typeof e != "object" || !e) return !1;
961
1152
  let t = e;
962
1153
  if (t.$ref !== void 0 || t.allOf) return !1;
963
- if (t.oneOf || t.anyOf) return Ae(t.oneOf ?? t.anyOf);
1154
+ if (t.oneOf || t.anyOf) return We(t.oneOf ?? t.anyOf);
964
1155
  let { type: n } = t;
965
- return typeof n == "string" ? F.has(n) : Array.isArray(n) ? n.every((e) => F.has(e) || e === "null") : Array.isArray(t.enum) && t.enum.length > 0 ? t.enum.every((e) => [
1156
+ return typeof n == "string" ? B.has(n) : Array.isArray(n) ? n.every((e) => B.has(e) || e === "null") : Array.isArray(t.enum) && t.enum.length > 0 ? t.enum.every((e) => [
966
1157
  "string",
967
1158
  "number",
968
1159
  "boolean"
969
1160
  ].includes(typeof e)) : !1;
970
1161
  }
971
- function I(e) {
1162
+ function Ke(e) {
972
1163
  if (!e || typeof e != "object") return !1;
973
1164
  let t = e.properties;
974
- return t === void 0 || typeof t != "object" || !t ? !1 : Object.values(t).every(je);
1165
+ return t === void 0 || typeof t != "object" || !t ? !1 : Object.values(t).every(Ge);
975
1166
  }
976
1167
  //#endregion
977
1168
  //#region ../apigen-core-client/src/lib/compose-schemas.ts
978
- function Me(e) {
1169
+ function qe(e) {
979
1170
  let t = {}, n = (e) => {
980
1171
  for (let n of ["definitions", "$defs"]) {
981
1172
  let r = e[n];
@@ -987,17 +1178,17 @@ function Me(e) {
987
1178
  };
988
1179
  for (let t of Object.values(e.schemas)) n(t.input), n(t.output);
989
1180
  if (Object.keys(t).length !== 0) for (let [n, r] of Object.entries(e.schemas)) try {
990
- re(r.input, t), re(r.output, t);
1181
+ ce(r.input, t), ce(r.output, t);
991
1182
  } catch (e) {
992
1183
  throw Error(`[apigen-core-client] Schema validation failed for function "${n}": ${e.message}`);
993
1184
  }
994
1185
  }
995
- function Ne(e, t) {
1186
+ function Je(e, t) {
996
1187
  let n = ["apigen calling convention: all domain parameters go inside a \"data\" envelope — e.g. { \"data\": { ... } }" + (t ? "." : " (an empty object for this zero-parameter tool).")];
997
1188
  return e.length > 0 && n.push(`Field(s) ${e.map((e) => `"${e}"`).join(", ")} are transport-level envelope metadata, NOT domain data — do not nest them under "data". Over MCP they are read from arguments._meta["x-<pluginId>-<field>"] (default pluginId "adhd"); see @adhd/apigen-engine-naming's envelopeMetaKey/envelopeCliFlag/envelopeEnvVar for the HTTP-header / CLI-flag / env-var equivalents.`), n.join(" ");
998
1189
  }
999
- function Pe(e, t, n) {
1000
- Me(e);
1190
+ function Ye(e, t, n) {
1191
+ qe(e);
1001
1192
  let r = {};
1002
1193
  for (let [i, a] of Object.entries(e.schemas)) {
1003
1194
  let e = n?.[i] ?? {}, o = a.input.properties ?? {}, s = a.input.required ?? [], c = {}, l = [], u = {};
@@ -1007,7 +1198,7 @@ function Pe(e, t, n) {
1007
1198
  properties: o,
1008
1199
  additionalProperties: !1,
1009
1200
  ...s.length > 0 ? { required: s } : {}
1010
- }, f = a.safe === !0 || I(a.input), p = a.input.definitions, m = a.input.$defs;
1201
+ }, f = a.safe === !0 || Ke(a.input), p = a.input.definitions, m = a.input.$defs;
1011
1202
  r[i] = {
1012
1203
  input: {
1013
1204
  type: "object",
@@ -1017,7 +1208,7 @@ function Pe(e, t, n) {
1017
1208
  },
1018
1209
  required: [...l, ...s.length > 0 ? ["data"] : []],
1019
1210
  additionalProperties: !1,
1020
- description: Ne(Object.keys(c), Object.keys(o).length > 0),
1211
+ description: Je(Object.keys(c), Object.keys(o).length > 0),
1021
1212
  ...p ? { definitions: p } : {},
1022
1213
  ...m ? { $defs: m } : {}
1023
1214
  },
@@ -1031,53 +1222,53 @@ function Pe(e, t, n) {
1031
1222
  }
1032
1223
  //#endregion
1033
1224
  //#region ../apigen-core-client/src/lib/schema-builders/ts-json-schema.ts
1034
- var Fe = { "decimal.js": "Decimal" };
1035
- function Ie(e) {
1225
+ var Xe = { "decimal.js": "Decimal" };
1226
+ function Ze(e) {
1036
1227
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1037
1228
  }
1038
- Object.entries(Fe).map(([e, t]) => ({
1039
- pattern: RegExp(`import\\(["'][^"']*${Ie(e)}[^"']*["']\\)\\.\\w+`, "g"),
1229
+ Object.entries(Xe).map(([e, t]) => ({
1230
+ pattern: RegExp(`import\\(["'][^"']*${Ze(e)}[^"']*["']\\)\\.\\w+`, "g"),
1040
1231
  key: t
1041
1232
  }));
1042
1233
  //#endregion
1043
1234
  //#region src/lib/types.ts
1044
- var L = class extends Error {
1235
+ var V = class extends Error {
1045
1236
  constructor(e) {
1046
1237
  super(e), this.name = "ConfigurationError";
1047
1238
  }
1048
1239
  };
1049
1240
  //#endregion
1050
1241
  //#region src/lib/api-package.ts
1051
- function R(e) {
1242
+ function Qe(e) {
1052
1243
  for (let t of e) for (let e of Object.keys(t.eventMapping ?? {})) {
1053
1244
  let [n] = e.split(":");
1054
- if (n !== "*" && n === t.id) throw new L(`Middleware "${t.id}" subscribes to its own events via "${e}". This would cause infinite recursion.`);
1245
+ if (n !== "*" && n === t.id) throw new V(`Middleware "${t.id}" subscribes to its own events via "${e}". This would cause infinite recursion.`);
1055
1246
  }
1056
1247
  }
1057
- function Le(e) {
1248
+ function $e(e) {
1058
1249
  let { domainSchemas: t, middlewares: n, overrides: r = {}, strict: i = !1 } = e;
1059
- R(n);
1250
+ Qe(n);
1060
1251
  for (let e of Object.keys(r)) if (!(e in t.schemas)) {
1061
1252
  let t = `Override key "${e}" not found in domain schemas.`;
1062
- if (i) throw new L(t);
1253
+ if (i) throw new V(t);
1063
1254
  console.warn("[apigen-runtime]", t);
1064
1255
  }
1065
1256
  let a = new Set(n.map((e) => e.id));
1066
1257
  for (let [e, t] of Object.entries(r)) for (let n of Object.keys(t ?? {})) if (!a.has(n)) {
1067
1258
  let t = `Override key "${e}.${n}" does not match any declared middleware id.`;
1068
- if (i) throw new L(t);
1259
+ if (i) throw new V(t);
1069
1260
  console.warn("[apigen-runtime]", t);
1070
1261
  }
1071
- let o = Pe(t, n, r), s = new Ee();
1072
- return Oe(n, s), {
1262
+ let o = Ye(t, n, r), s = new Be();
1263
+ return He(n, s), {
1073
1264
  schemas: o,
1074
- createClient: async (e) => ke(n, e, s),
1265
+ createClient: async (e) => Ue(n, e, s),
1075
1266
  dispose: () => s.clear()
1076
1267
  };
1077
1268
  }
1078
1269
  //#endregion
1079
1270
  //#region src/lib/logger.ts
1080
- function Re(e = {}) {
1271
+ function et(e = {}) {
1081
1272
  let n = e.level ?? "info", r = typeof e.destination == "string" && e.destination.length > 0, i = !r && !!process.stderr.isTTY, a = e.format ?? (i ? "pretty" : "json"), o = { level: n };
1082
1273
  if (a === "pretty") return o.transport = {
1083
1274
  target: "pino-pretty",
@@ -1100,35 +1291,35 @@ function Re(e = {}) {
1100
1291
  }
1101
1292
  //#endregion
1102
1293
  //#region src/lib/describe-params.ts
1103
- function ze(e) {
1294
+ function tt(e) {
1104
1295
  if (e?.type !== "object" || !e.properties) return;
1105
1296
  let t = Object.entries(e.properties);
1106
1297
  if (t.length === 0) return;
1107
1298
  let n = new Set(e.required ?? []);
1108
- return `{ ${t.map(([e, t]) => `${e}${n.has(e) ? "" : "?"}: ${z(t)}`).join(", ")} }`;
1299
+ return `{ ${t.map(([e, t]) => `${e}${n.has(e) ? "" : "?"}: ${H(t)}`).join(", ")} }`;
1109
1300
  }
1110
- function Be(e) {
1301
+ function nt(e) {
1111
1302
  return typeof e == "string" ? `'${e}'` : JSON.stringify(e);
1112
1303
  }
1113
- function Ve(e) {
1304
+ function rt(e) {
1114
1305
  let t = e.enum ?? [];
1115
- return t.length === 0 ? "unknown" : t.map(Be).join("|");
1306
+ return t.length === 0 ? "unknown" : t.map(nt).join("|");
1116
1307
  }
1117
- function He(e, t) {
1118
- return e.map((e) => z(e, t)).join(" | ");
1308
+ function it(e, t) {
1309
+ return e.map((e) => H(e, t)).join(" | ");
1119
1310
  }
1120
- function z(e, t = 0) {
1311
+ function H(e, t = 0) {
1121
1312
  if (!e) return "unknown";
1122
- if (e.type === "array") return `${z(e.items, 0)}[]`;
1123
- if (e.enum) return Ve(e);
1313
+ if (e.type === "array") return `${H(e.items, 0)}[]`;
1314
+ if (e.enum) return rt(e);
1124
1315
  if (e.$ref) return String(e.$ref).split("/").pop() || "object";
1125
1316
  let n = e.anyOf ?? e.oneOf;
1126
- return n ? n.length === 0 ? "unknown" : t >= 2 ? He(n, t - 1) : "union" : t >= 1 && e.type === "object" ? ze(e) ?? "object" : e.type ?? "object";
1317
+ return n ? n.length === 0 ? "unknown" : t >= 2 ? it(n, t - 1) : "union" : t >= 1 && e.type === "object" ? tt(e) ?? "object" : e.type ?? "object";
1127
1318
  }
1128
- function B(e) {
1319
+ function at(e) {
1129
1320
  let t = (e?.input ?? {}).properties?.data, n = t?.properties ?? {}, r = new Set(t?.required ?? []), i = Object.entries(n).map(([e, t]) => ({
1130
1321
  name: e,
1131
- type: z(t, 2),
1322
+ type: H(t, 2),
1132
1323
  required: r.has(e)
1133
1324
  }));
1134
1325
  return {
@@ -1138,16 +1329,16 @@ function B(e) {
1138
1329
  }
1139
1330
  //#endregion
1140
1331
  //#region src/lib/coerce-query.ts
1141
- function Ue(e) {
1332
+ function ot(e) {
1142
1333
  let t;
1143
1334
  return t = Array.isArray(e) ? e : e ? [e] : [], t.find((e) => e === "number" || e === "integer" || e === "boolean");
1144
1335
  }
1145
- function We(e, t) {
1336
+ function st(e, t) {
1146
1337
  let n = (t?.input ?? {}).properties?.data?.properties ?? {}, r = { ...e };
1147
1338
  for (let [e, t] of Object.entries(n)) {
1148
1339
  let n = r[e];
1149
1340
  if (typeof n != "string") continue;
1150
- let i = Ue(t?.type);
1341
+ let i = ot(t?.type);
1151
1342
  if (i === "number" || i === "integer") {
1152
1343
  let t = Number(n);
1153
1344
  !Number.isNaN(t) && n.trim() !== "" && (r[e] = t);
@@ -1157,55 +1348,22 @@ function We(e, t) {
1157
1348
  }
1158
1349
  //#endregion
1159
1350
  //#region src/lib/fn-table.ts
1160
- var V = /* @__PURE__ */ new Set([
1351
+ var ct = /* @__PURE__ */ new Set([
1161
1352
  "default",
1162
1353
  "module.exports",
1163
1354
  "__esModule"
1164
1355
  ]);
1165
- function Ge(e) {
1356
+ function lt(e) {
1166
1357
  let t = {}, n = (e, r) => {
1167
1358
  for (let [i, a] of Object.entries(e)) if (typeof a == "function") {
1168
- !V.has(i) && !(i in t) && (t[i] = a);
1359
+ !ct.has(i) && !(i in t) && (t[i] = a);
1169
1360
  let e = a.name;
1170
1361
  e && !(e in t) && (t[e] = a);
1171
- } else a && typeof a == "object" && r < 2 && V.has(i) && n(a, r + 1);
1362
+ } else a && typeof a == "object" && r < 2 && ct.has(i) && n(a, r + 1);
1172
1363
  };
1173
1364
  return n(e, 0), t;
1174
1365
  }
1175
1366
  //#endregion
1176
- //#region ../apigen-base-errors/src/lib/errors.ts
1177
- var Ke = [
1178
- "invalid_argument",
1179
- "unauthenticated",
1180
- "permission_denied",
1181
- "not_found",
1182
- "internal"
1183
- ], H = class extends Error {
1184
- constructor(e, t, n) {
1185
- super(t), this.name = "ApiError", this.code = e, this.details = n, Object.setPrototypeOf(this, new.target.prototype);
1186
- }
1187
- toJSON() {
1188
- let e = {
1189
- code: this.code,
1190
- message: this.message
1191
- };
1192
- return this.details !== void 0 && (e.details = this.details), e;
1193
- }
1194
- };
1195
- function qe(e) {
1196
- return typeof e == "object" && !!e && e.name === "ApiError" && Ke.includes(e.code) && typeof e.toJSON == "function";
1197
- }
1198
- function Je(e, t, n = 0) {
1199
- return e === "before-first-chunk" ? {
1200
- phase: e,
1201
- error: t
1202
- } : {
1203
- phase: e,
1204
- error: t,
1205
- chunksDelivered: n
1206
- };
1207
- }
1208
- //#endregion
1209
1367
  //#region src/lib/validate-layer.ts
1210
1368
  var U = new n({
1211
1369
  allErrors: !0,
@@ -1223,14 +1381,14 @@ for (let e of [
1223
1381
  valid: !0
1224
1382
  });
1225
1383
  U.addFormat("decimal", /^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/);
1226
- function Ye(e) {
1384
+ function ut(e) {
1227
1385
  return e ? e.replace(/^\//, "").split("/").map((e) => e.replace(/~1/g, "/").replace(/~0/g, "~")).join(".") : "(root)";
1228
1386
  }
1229
- function Xe(e) {
1387
+ function dt(e) {
1230
1388
  let t = e?.properties;
1231
1389
  return t ? Object.keys(t) : [];
1232
1390
  }
1233
- function Ze(e, t) {
1391
+ function ft(e, t) {
1234
1392
  let n = e.length, r = t.length;
1235
1393
  if (n === 0) return r;
1236
1394
  if (r === 0) return n;
@@ -1245,27 +1403,27 @@ function Ze(e, t) {
1245
1403
  }
1246
1404
  return i[r];
1247
1405
  }
1248
- function Qe(e, t) {
1406
+ function pt(e, t) {
1249
1407
  let n, r = Infinity;
1250
1408
  for (let i of t) {
1251
- let t = Ze(e.toLowerCase(), i.toLowerCase());
1409
+ let t = ft(e.toLowerCase(), i.toLowerCase());
1252
1410
  t < r && (r = t, n = i);
1253
1411
  }
1254
1412
  let i = Math.max(2, Math.floor(e.length / 3));
1255
1413
  return n !== void 0 && r <= i ? n : void 0;
1256
1414
  }
1257
- function $e(e) {
1415
+ function mt(e) {
1258
1416
  return e === null ? "null" : Array.isArray(e) ? "array" : typeof e;
1259
1417
  }
1260
- function et(e) {
1261
- let t = Ye(e.instancePath), n = e.params ?? {};
1418
+ function ht(e) {
1419
+ let t = ut(e.instancePath), n = e.params ?? {};
1262
1420
  switch (e.keyword) {
1263
1421
  case "additionalProperties": {
1264
- let r = String(n.additionalProperty ?? "?"), i = Xe(e.parentSchema), a = Qe(r, i);
1422
+ let r = String(n.additionalProperty ?? "?"), i = dt(e.parentSchema), a = pt(r, i);
1265
1423
  return `unknown key '${r}' at ${t}${i.length ? `; allowed keys: ${i.join(", ")}` : ""}${a ? ` (did you mean '${a}'?)` : ""}`;
1266
1424
  }
1267
1425
  case "required": {
1268
- let r = String(n.missingProperty ?? "?"), i = Xe(e.parentSchema);
1426
+ let r = String(n.missingProperty ?? "?"), i = dt(e.parentSchema);
1269
1427
  return `missing required key '${r}' at ${t}${i.length ? `; allowed keys: ${i.join(", ")}` : ""}`;
1270
1428
  }
1271
1429
  case "enum": {
@@ -1274,25 +1432,25 @@ function et(e) {
1274
1432
  }
1275
1433
  case "type": {
1276
1434
  let r = e.data;
1277
- return `${t} must be ${String(n.type)} (got ${$e(r)})`;
1435
+ return `${t} must be ${String(n.type)} (got ${mt(r)})`;
1278
1436
  }
1279
1437
  default: return `${t} ${e.message ?? "failed schema check"}`;
1280
1438
  }
1281
1439
  }
1282
1440
  var W = 12;
1283
- function tt(e) {
1284
- let t = e.slice(0, W).map(et);
1441
+ function gt(e) {
1442
+ let t = e.slice(0, W).map(ht);
1285
1443
  return e.length > W && t.push(`…and ${e.length - W} more`), t.join("; ");
1286
1444
  }
1287
1445
  function G(e) {
1288
1446
  return e === null ? !1 : Array.isArray(e) ? e.some(G) : typeof e != "object" || Object.values(e).some(G);
1289
1447
  }
1290
- function nt(e, t) {
1291
- let n = [`Validation failed: ${tt(e)}`], r = M(t);
1448
+ function _t(e, t) {
1449
+ let n = [`Validation failed: ${gt(e)}`], r = j(t);
1292
1450
  return G(r) && n.push(`Example: ${JSON.stringify(r)}`), n.join(" — ");
1293
1451
  }
1294
- var rt = async (e, t) => {
1295
- let n = e.ctx.get(it);
1452
+ var vt = async (e, t) => {
1453
+ let n = e.ctx.get(yt);
1296
1454
  if (n === void 0) return t();
1297
1455
  let r = n[e.operation.id];
1298
1456
  if (r === void 0) return t();
@@ -1302,11 +1460,11 @@ var rt = async (e, t) => {
1302
1460
  }, a = U.compile(r.input);
1303
1461
  if (!a(i)) {
1304
1462
  let e = a.errors ?? [];
1305
- throw new H("invalid_argument", nt(e, r.input), e);
1463
+ throw new M("invalid_argument", _t(e, r.input), e);
1306
1464
  }
1307
1465
  return t();
1308
- }, it = Symbol("ValidateSchemasToken");
1309
- function at(e) {
1466
+ }, yt = Symbol("ValidateSchemasToken");
1467
+ function bt(e) {
1310
1468
  return async function(t, n) {
1311
1469
  let r = e[t.operation.id];
1312
1470
  if (r === void 0) return n();
@@ -1316,27 +1474,27 @@ function at(e) {
1316
1474
  }, a = U.compile(r.input);
1317
1475
  if (!a(i)) {
1318
1476
  let e = a.errors ?? [];
1319
- throw new H("invalid_argument", nt(e, r.input), e);
1477
+ throw new M("invalid_argument", _t(e, r.input), e);
1320
1478
  }
1321
1479
  return n();
1322
1480
  };
1323
1481
  }
1324
1482
  //#endregion
1325
1483
  //#region src/lib/instance-registry.ts
1326
- function ot() {
1484
+ function xt() {
1327
1485
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (e) => {
1328
1486
  let t = Math.random() * 16 | 0;
1329
1487
  return (e === "x" ? t : t & 3 | 8).toString(16);
1330
1488
  });
1331
1489
  }
1332
- var st = class {
1490
+ var St = class {
1333
1491
  constructor(e = {}) {
1334
1492
  this._store = /* @__PURE__ */ new Map(), this._sweeper = null, this._defaultTtlMs = e.defaultTtlMs;
1335
1493
  let t = null;
1336
1494
  t = e.sweepIntervalMs === 0 ? null : e.sweepIntervalMs === void 0 ? this._defaultTtlMs === void 0 ? null : Math.max(1e3, Math.floor(this._defaultTtlMs / 4)) : e.sweepIntervalMs, t !== null && t > 0 && (this._sweeper = setInterval(() => this._sweep(), t), this._sweeper.unref?.());
1337
1495
  }
1338
1496
  create(e, t = [], n) {
1339
- let r = new e(...t), i = ot(), a = n ?? this._defaultTtlMs, o = a === void 0 ? null : Date.now() + a;
1497
+ let r = new e(...t), i = xt(), a = n ?? this._defaultTtlMs, o = a === void 0 ? null : Date.now() + a;
1340
1498
  return this._store.set(i, {
1341
1499
  instance: r,
1342
1500
  expiresAt: o
@@ -1380,61 +1538,6 @@ async function K(e) {
1380
1538
  }
1381
1539
  }
1382
1540
  //#endregion
1383
- //#region src/lib/stream.ts
1384
- function ct(e) {
1385
- let { produce: t, signal: n } = e, r = n ?? new AbortController().signal;
1386
- return { [Symbol.asyncIterator]() {
1387
- let e = t(r);
1388
- return {
1389
- async next() {
1390
- return r.aborted ? (await e.return(void 0), {
1391
- done: !0,
1392
- value: void 0
1393
- }) : e.next();
1394
- },
1395
- async return(t) {
1396
- return await e.return(t), {
1397
- done: !0,
1398
- value: void 0
1399
- };
1400
- },
1401
- async throw(t) {
1402
- return await e.throw(t), {
1403
- done: !0,
1404
- value: void 0
1405
- };
1406
- }
1407
- };
1408
- } };
1409
- }
1410
- async function lt(e) {
1411
- let t = [];
1412
- for await (let n of e) t.push(n);
1413
- return t;
1414
- }
1415
- async function ut(e) {
1416
- let t = [];
1417
- try {
1418
- for await (let n of e) t.push(n);
1419
- return {
1420
- ok: !0,
1421
- chunks: t
1422
- };
1423
- } catch (e) {
1424
- let n = qe(e) ? e : new H("internal", e instanceof Error ? e.message : String(e));
1425
- return t.length === 0 ? {
1426
- ok: !1,
1427
- carrier: Je("before-first-chunk", n)
1428
- } : {
1429
- ok: !1,
1430
- carrier: Je("after-first-chunk", n, t.length)
1431
- };
1432
- }
1433
- }
1434
- function dt(e) {
1435
- return typeof e == "object" && !!e && Symbol.asyncIterator in e;
1436
- }
1437
- //#endregion
1438
1541
  //#region src/lib/logical/union-codec.ts
1439
1542
  var q = class extends Error {
1440
1543
  constructor(e, t) {
@@ -1452,7 +1555,7 @@ function J(e) {
1452
1555
  mapping: r
1453
1556
  };
1454
1557
  }
1455
- function ft(e, t) {
1558
+ function Ct(e, t) {
1456
1559
  let n = e[c];
1457
1560
  if (typeof n == "string") {
1458
1561
  let e = t.registry.get(n);
@@ -1460,15 +1563,15 @@ function ft(e, t) {
1460
1563
  }
1461
1564
  return t.registry.resolve(e);
1462
1565
  }
1463
- function pt(e, t, n) {
1464
- let r = ft(t, n);
1566
+ function wt(e, t, n) {
1567
+ let r = Ct(t, n);
1465
1568
  return r ? r.encode(e, t, n) : e;
1466
1569
  }
1467
- function mt(e, t, n) {
1468
- let r = ft(t, n);
1570
+ function Tt(e, t, n) {
1571
+ let r = Ct(t, n);
1469
1572
  return r ? r.decode(e, t, n) : e;
1470
1573
  }
1471
- function ht(e) {
1574
+ function Et(e) {
1472
1575
  let { id: t, schema: n } = e;
1473
1576
  return {
1474
1577
  id: t,
@@ -1486,7 +1589,7 @@ function ht(e) {
1486
1589
  if (s == null) throw new q("E_UNION_NO_DISCRIMINATOR", `[${t}] value at "${r.path}" is missing the discriminator property "${a}".`);
1487
1590
  let c = String(s), l = o[c];
1488
1591
  if (!l) throw new q("E_UNION_UNKNOWN_TAG", `[${t}] discriminator tag "${c}" at "${r.path}" is not in the mapping (known: ${Object.keys(o).join(", ")}).`);
1489
- return pt(e, r.resolve(l), {
1592
+ return wt(e, r.resolve(l), {
1490
1593
  ...r,
1491
1594
  path: `${r.path}[${c}]`
1492
1595
  });
@@ -1502,7 +1605,7 @@ function ht(e) {
1502
1605
  if (c == null) throw new q("E_UNION_NO_DISCRIMINATOR", `[${t}] wire object at "${r.path}" is missing the discriminator property "${o}".`);
1503
1606
  let l = String(c), u = s[l];
1504
1607
  if (!u) throw new q("E_UNION_UNKNOWN_TAG", `[${t}] discriminator tag "${l}" on the wire at "${r.path}" is not in the mapping (known: ${Object.keys(s).join(", ")}).`);
1505
- return mt(e, r.resolve(u), {
1608
+ return Tt(e, r.resolve(u), {
1506
1609
  ...r,
1507
1610
  path: `${r.path}[${l}]`
1508
1611
  });
@@ -1514,29 +1617,29 @@ var Y = class extends Error {
1514
1617
  super(t), this.name = "NominalCodecError", this.code = e;
1515
1618
  }
1516
1619
  };
1517
- function gt(e) {
1620
+ function Dt(e) {
1518
1621
  let t = e.properties;
1519
1622
  return t && typeof t == "object" && !Array.isArray(t) ? t : {};
1520
1623
  }
1521
- function _t(e) {
1624
+ function Ot(e) {
1522
1625
  let t = e.required;
1523
1626
  return Array.isArray(t) ? t.filter((e) => typeof e == "string") : [];
1524
1627
  }
1525
- function vt(e, t, n) {
1628
+ function kt(e, t, n) {
1526
1629
  if (t) {
1527
1630
  let r = n.registry.resolve(t);
1528
1631
  if (r) return r.encode(e, t, n);
1529
1632
  }
1530
1633
  return e;
1531
1634
  }
1532
- function yt(e, t, n) {
1635
+ function At(e, t, n) {
1533
1636
  if (t) {
1534
1637
  let r = n.registry.resolve(t);
1535
1638
  if (r) return r.decode(e, t, n);
1536
1639
  }
1537
1640
  return e;
1538
1641
  }
1539
- function bt(e) {
1642
+ function jt(e) {
1540
1643
  let { id: t, schema: n, ctor: r } = e;
1541
1644
  return {
1542
1645
  id: t,
@@ -1553,12 +1656,12 @@ function bt(e) {
1553
1656
  }
1554
1657
  r.seen.add(e);
1555
1658
  try {
1556
- let t = gt(n), i = e[typeof n["x-apigen-tojson"] == "string" ? n[u] : "toJSON"];
1659
+ let t = Dt(n), i = e[typeof n["x-apigen-tojson"] == "string" ? n[u] : "toJSON"];
1557
1660
  if (typeof i == "function") {
1558
1661
  let n = i.call(e);
1559
1662
  if (typeof n == "object" && n && !Array.isArray(n)) {
1560
1663
  let e = {};
1561
- for (let [i, a] of Object.entries(n)) e[i] = vt(a, t[i], {
1664
+ for (let [i, a] of Object.entries(n)) e[i] = kt(a, t[i], {
1562
1665
  ...r,
1563
1666
  path: `${r.path}/${i}`
1564
1667
  });
@@ -1569,7 +1672,7 @@ function bt(e) {
1569
1672
  let a = {}, o = Object.keys(t), s = e, c = o.length > 0 ? o : Object.keys(s);
1570
1673
  for (let e of c) {
1571
1674
  let n = s[e];
1572
- n !== void 0 && (a[e] = vt(n, t[e], {
1675
+ n !== void 0 && (a[e] = kt(n, t[e], {
1573
1676
  ...r,
1574
1677
  path: `${r.path}/${e}`
1575
1678
  }));
@@ -1585,10 +1688,10 @@ function bt(e) {
1585
1688
  throw n = e === null ? "null" : Array.isArray(e) ? "array" : typeof e, new Y("E_NOMINAL_INVALID_WIRE", `[${t}] expected a JSON object on the wire at "${i.path}", got ${n}.`);
1586
1689
  }
1587
1690
  let a = e;
1588
- for (let e of _t(n)) if (!(e in a)) throw new Y("E_NOMINAL_INVALID_WIRE", `[${t}] required field "${e}" missing on the wire at "${i.path}".`);
1691
+ for (let e of Ot(n)) if (!(e in a)) throw new Y("E_NOMINAL_INVALID_WIRE", `[${t}] required field "${e}" missing on the wire at "${i.path}".`);
1589
1692
  if (n["x-apigen-instances"] === !1) throw new Y("E_NOMINAL_NONRECONSTRUCTABLE", `[${t}] is encode-only: the extractor marked it non-reconstructable (x-apigen-instances:false). It cannot be decoded back to a live instance.`);
1590
- let o = gt(n), s = {};
1591
- for (let [e, t] of Object.entries(a)) s[e] = yt(t, o[e], {
1693
+ let o = Dt(n), s = {};
1694
+ for (let [e, t] of Object.entries(a)) s[e] = At(t, o[e], {
1592
1695
  ...i,
1593
1696
  path: `${i.path}/${e}`
1594
1697
  });
@@ -1602,21 +1705,21 @@ function bt(e) {
1602
1705
  }
1603
1706
  //#endregion
1604
1707
  //#region src/lib/logical/host-ts.ts
1605
- var xt = [
1708
+ var Mt = [
1606
1709
  S,
1607
1710
  C,
1608
1711
  w,
1609
1712
  T,
1610
1713
  E,
1611
1714
  A
1612
- ], X = bt({
1715
+ ], Nt = jt({
1613
1716
  id: "ts.NominalSentinel",
1614
1717
  schema: {
1615
1718
  type: "object",
1616
1719
  "x-apigen-logical": "nominal",
1617
1720
  "x-apigen-codec": "ts.NominalSentinel"
1618
1721
  }
1619
- }), St = ht({
1722
+ }), Pt = Et({
1620
1723
  id: "ts.UnionSentinel",
1621
1724
  schema: {
1622
1725
  oneOf: [],
@@ -1628,32 +1731,32 @@ var xt = [
1628
1731
  "x-apigen-codec": "ts.UnionSentinel"
1629
1732
  }
1630
1733
  });
1631
- function Ct() {
1734
+ function Ft() {
1632
1735
  let e = [
1633
- ...xt.map((e) => [e.id, e]),
1634
- [X.id, X],
1635
- [St.id, St]
1736
+ ...Mt.map((e) => [e.id, e]),
1737
+ [Nt.id, Nt],
1738
+ [Pt.id, Pt]
1636
1739
  ];
1637
1740
  return Object.freeze(new Map(e));
1638
1741
  }
1639
- var wt = Object.freeze({
1742
+ var It = Object.freeze({
1640
1743
  host: "ts",
1641
1744
  logicalTypeVersion: d,
1642
- codecs: Ct()
1745
+ codecs: Ft()
1643
1746
  });
1644
1747
  //#endregion
1645
1748
  //#region src/lib/tool-description.ts
1646
- function Tt(e, t, n) {
1749
+ function Lt(e, t, n) {
1647
1750
  let r = [
1648
1751
  n,
1649
1752
  typeof t?.input?.description == "string" ? t.input.description : void 0,
1650
- ge(t?.input)
1753
+ Ee(t?.input)
1651
1754
  ].filter((e) => typeof e == "string" && e.length > 0);
1652
1755
  return r.length > 0 ? r.join(" — ") : e;
1653
1756
  }
1654
1757
  //#endregion
1655
1758
  //#region src/lib/mcp-output-schema.ts
1656
- function Et(e) {
1759
+ function Rt(e) {
1657
1760
  if (!e || typeof e != "object" || Array.isArray(e) || Object.keys(e).length === 0) return {
1658
1761
  outputSchema: void 0,
1659
1762
  wrapped: !1
@@ -1667,25 +1770,25 @@ function Et(e) {
1667
1770
  wrapped: !1
1668
1771
  };
1669
1772
  }
1670
- function Dt(e, t) {
1773
+ function zt(e, t) {
1671
1774
  if (e) return t && typeof t == "object" && !Array.isArray(t) ? t : void 0;
1672
1775
  }
1673
1776
  //#endregion
1674
1777
  //#region src/lib/batch.ts
1675
- var Ot = 4, kt = 32;
1676
- function Z(e) {
1677
- return qe(e) ? e : e instanceof Error ? new H("internal", e.message) : e;
1778
+ var Bt = 4, Vt = 32;
1779
+ function X(e) {
1780
+ return Oe(e) ? e : e instanceof Error ? new M("internal", e.message) : e;
1678
1781
  }
1679
- function At(e, t) {
1782
+ function Ht(e, t) {
1680
1783
  if (e === "serial" || e === "chained") return 1;
1681
1784
  let n = t ?? 4;
1682
1785
  return !Number.isFinite(n) || n < 1 ? 1 : Math.min(Math.floor(n), 32);
1683
1786
  }
1684
- function jt() {}
1685
- function Mt(e, t) {
1787
+ function Ut() {}
1788
+ function Wt(e, t) {
1686
1789
  if (!e && !t) return {
1687
1790
  signal: void 0,
1688
- dispose: jt
1791
+ dispose: Ut
1689
1792
  };
1690
1793
  let n = new AbortController(), r = () => {
1691
1794
  n.abort(e?.reason);
@@ -1701,21 +1804,21 @@ function Mt(e, t) {
1701
1804
  }
1702
1805
  };
1703
1806
  }
1704
- async function Nt(e, t, n, r, i, a) {
1705
- let o = Mt(r.signal, a);
1807
+ async function Gt(e, t, n, r, i, a) {
1808
+ let o = Wt(r.signal, a);
1706
1809
  try {
1707
1810
  let a = await e(t, o.signal ? {
1708
1811
  ...r,
1709
1812
  signal: o.signal
1710
1813
  } : r, i);
1711
- if (dt(a)) {
1712
- let e = await ut(a);
1814
+ if (N(a)) {
1815
+ let e = await Me(a);
1713
1816
  if (!e.ok) {
1714
1817
  let t = e.carrier;
1715
1818
  return {
1716
1819
  index: n,
1717
1820
  status: "rejected",
1718
- reason: Z(t.error),
1821
+ reason: X(t.error),
1719
1822
  ...t.phase === "after-first-chunk" ? { chunksDelivered: t.chunksDelivered } : {}
1720
1823
  };
1721
1824
  }
@@ -1734,17 +1837,17 @@ async function Nt(e, t, n, r, i, a) {
1734
1837
  return {
1735
1838
  index: n,
1736
1839
  status: "rejected",
1737
- reason: Z(e)
1840
+ reason: X(e)
1738
1841
  };
1739
1842
  } finally {
1740
1843
  o.dispose();
1741
1844
  }
1742
1845
  }
1743
- async function Pt(e, t, n, r, i = {}) {
1744
- let a = i.mode ?? "parallel", o = i.onItemError ?? "continue", s = At(a, i.concurrency), c = Array(n.length), l = (e) => ({
1846
+ async function Kt(e, t, n, r, i = {}) {
1847
+ let a = i.mode ?? "parallel", o = i.onItemError ?? "continue", s = Ht(a, i.concurrency), c = Array(n.length), l = (e) => ({
1745
1848
  index: e,
1746
1849
  status: "rejected",
1747
- reason: Z(/* @__PURE__ */ Error("apigen/invokeBatch: not attempted — an earlier item failed and " + (a === "chained" ? "mode is \"chained\"" : "onItemError is \"abort\"")))
1850
+ reason: X(/* @__PURE__ */ Error("apigen/invokeBatch: not attempted — an earlier item failed and " + (a === "chained" ? "mode is \"chained\"" : "onItemError is \"abort\"")))
1748
1851
  });
1749
1852
  if (a === "serial" || a === "chained") {
1750
1853
  let s = !1;
@@ -1753,7 +1856,7 @@ async function Pt(e, t, n, r, i = {}) {
1753
1856
  c[u] = l(u);
1754
1857
  continue;
1755
1858
  }
1756
- let d = await Nt(e, t, u, n[u], r, i.itemTimeoutMs);
1859
+ let d = await Gt(e, t, u, n[u], r, i.itemTimeoutMs);
1757
1860
  c[u] = d, d.status === "rejected" && (a === "chained" || o === "abort") && (s = !0);
1758
1861
  }
1759
1862
  return c;
@@ -1766,7 +1869,7 @@ async function Pt(e, t, n, r, i = {}) {
1766
1869
  c[a] = l(a);
1767
1870
  continue;
1768
1871
  }
1769
- let s = await Nt(e, t, a, n[a], r, i.itemTimeoutMs);
1872
+ let s = await Gt(e, t, a, n[a], r, i.itemTimeoutMs);
1770
1873
  c[a] = s, s.status === "rejected" && o === "abort" && (d = !0);
1771
1874
  }
1772
1875
  });
@@ -1774,17 +1877,17 @@ async function Pt(e, t, n, r, i = {}) {
1774
1877
  }
1775
1878
  //#endregion
1776
1879
  //#region ../apigen-engine-naming/src/lib/naming.ts
1777
- function Ft(e) {
1880
+ function qt(e) {
1778
1881
  return e.words.join("-");
1779
1882
  }
1780
- function It(e) {
1781
- return e.words.map(Ht).join("");
1883
+ function Z(e) {
1884
+ return e.words.map($t).join("");
1782
1885
  }
1783
- function Lt(e) {
1886
+ function Jt(e) {
1784
1887
  return e.words.join("_");
1785
1888
  }
1786
- function Rt(e, t = {}) {
1787
- let n = [e.namespace, ...e.path], r = e.safe || I(e.input) ? "GET" : "POST", i = t.http?.verb?.[e.id] ?? r, a = "/" + n.map((e) => Ft(e)).join("/"), o = n.map((e) => Lt(e)).join("_"), s = n.map((e) => Lt(e)).slice(0, -1).join("."), c = It(n[n.length - 2] ?? n[0]), l = It(n[n.length - 1]), u = n.map((e) => Ft(e));
1889
+ function Yt(e, t = {}) {
1890
+ let n = [e.namespace, ...e.path], r = e.safe || Ke(e.input) ? "GET" : "POST", i = t.http?.verb?.[e.id] ?? r, a = "/" + n.map((e) => qt(e)).join("/"), o = n.map((e) => Jt(e)).join("_"), s = n.map((e) => Jt(e)).slice(0, -1).join("."), c = Z(n[n.length - 2] ?? n[0]), l = Z(n[n.length - 1]), u = n.map((e) => qt(e));
1788
1891
  return {
1789
1892
  http: {
1790
1893
  verb: i,
@@ -1799,17 +1902,17 @@ function Rt(e, t = {}) {
1799
1902
  cli: { path: u }
1800
1903
  };
1801
1904
  }
1802
- function zt(e, t) {
1905
+ function Xt(e, t) {
1803
1906
  return `x-${e}-${t}`;
1804
1907
  }
1805
- function Bt(e, t) {
1908
+ function Zt(e, t) {
1806
1909
  return `--${e}-${t}`;
1807
1910
  }
1808
- function Vt(e, t) {
1911
+ function Qt(e, t) {
1809
1912
  let n = (e) => e.toUpperCase().replace(/-/g, "_");
1810
1913
  return e === "adhd" ? `APIGEN_${n(t)}` : `APIGEN_${n(e)}_${n(t)}`;
1811
1914
  }
1812
- function Ht(e) {
1915
+ function $t(e) {
1813
1916
  return e.length === 0 ? e : e[0].toUpperCase() + e.slice(1);
1814
1917
  }
1815
1918
  //#endregion
@@ -1817,7 +1920,7 @@ function Ht(e) {
1817
1920
  function Q(e) {
1818
1921
  return e.anyOf ?? e.oneOf;
1819
1922
  }
1820
- function Ut(e) {
1923
+ function en(e) {
1821
1924
  if (!e) return !1;
1822
1925
  if (e.type === "array" || e.type === "object") return !0;
1823
1926
  let t = Q(e);
@@ -1827,7 +1930,7 @@ function Ut(e) {
1827
1930
  }
1828
1931
  return !1;
1829
1932
  }
1830
- function Wt(e) {
1933
+ function tn(e) {
1831
1934
  if (!e) return !1;
1832
1935
  if (e.type === "boolean") return !0;
1833
1936
  let t = Q(e);
@@ -1837,7 +1940,7 @@ function Wt(e) {
1837
1940
  }
1838
1941
  return !1;
1839
1942
  }
1840
- function Gt(e) {
1943
+ function nn(e) {
1841
1944
  if (!e) return !1;
1842
1945
  if (e.type === "number" || e.type === "integer") return !0;
1843
1946
  let t = Q(e);
@@ -1847,52 +1950,52 @@ function Gt(e) {
1847
1950
  }
1848
1951
  return !1;
1849
1952
  }
1850
- function Kt(e) {
1953
+ function rn(e) {
1851
1954
  return e.replace(/[A-Z]/g, (e) => "-" + e.toLowerCase());
1852
1955
  }
1853
- function qt(e) {
1956
+ function an(e) {
1854
1957
  let t = e.input?.properties?.data;
1855
1958
  return {
1856
1959
  props: t?.properties ?? {},
1857
1960
  required: t?.required ?? []
1858
1961
  };
1859
1962
  }
1860
- function Jt(e) {
1963
+ function on(e) {
1861
1964
  return typeof e.handler == "function";
1862
1965
  }
1863
- function Yt(e) {
1966
+ function sn(e) {
1864
1967
  let t = e.input?.properties ?? {}, n = e["x-apigen-envelope"], r = [];
1865
1968
  for (let e of Object.keys(t)) {
1866
1969
  if (e === "data") continue;
1867
- let t = n?.[e] ?? "adhd", i = zt(t, e);
1970
+ let t = n?.[e] ?? "adhd", i = Xt(t, e);
1868
1971
  r.push({
1869
1972
  field: e,
1870
1973
  pluginId: t,
1871
1974
  httpHeader: i,
1872
1975
  mcpMetaKey: i,
1873
- cliFlag: Bt(t, e),
1874
- envVar: Vt(t, e)
1976
+ cliFlag: Zt(t, e),
1977
+ envVar: Qt(t, e)
1875
1978
  });
1876
1979
  }
1877
1980
  return r;
1878
1981
  }
1879
- function Xt(e, t, n, r) {
1982
+ function cn(e, t, n, r) {
1880
1983
  t === n || e.has(t) || e.set(t, {
1881
1984
  ...r,
1882
1985
  aliasOf: n
1883
1986
  });
1884
1987
  }
1885
- function Zt(e, t) {
1886
- let n = /* @__PURE__ */ new Map(), { props: r } = qt(e);
1988
+ function ln(e, t) {
1989
+ let n = /* @__PURE__ */ new Map(), { props: r } = an(e);
1887
1990
  for (let [e, t] of Object.entries(r)) {
1888
1991
  let r = "string";
1889
- Wt(t) ? r = "boolean" : (Ut(t) || Gt(t)) && (r = "json");
1890
- let i = Kt(e), a = {
1992
+ tn(t) ? r = "boolean" : (en(t) || nn(t)) && (r = "json");
1993
+ let i = rn(e), a = {
1891
1994
  camelKey: e,
1892
1995
  kind: "domain",
1893
1996
  valueKind: r
1894
1997
  };
1895
- n.set(i, a), Xt(n, e, i, a);
1998
+ n.set(i, a), cn(n, e, i, a);
1896
1999
  }
1897
2000
  for (let e of t) {
1898
2001
  let t = e.cliFlag.replace(/^--/, ""), r = {
@@ -1905,8 +2008,8 @@ function Zt(e, t) {
1905
2008
  }
1906
2009
  return n;
1907
2010
  }
1908
- function Qt(e) {
1909
- let { op: t, schema: n, transport: r, projection: i } = e, a = Rt(t, i), o = n ? Yt(n) : [], s = n ? Zt(n, o) : /* @__PURE__ */ new Map(), c = n ? B(n).params : void 0, l = {
2011
+ function un(e) {
2012
+ let { op: t, schema: n, transport: r, projection: i } = e, a = Yt(t, i), o = n ? sn(n) : [], s = n ? ln(n, o) : /* @__PURE__ */ new Map(), c = n ? at(n).params : void 0, l = {
1910
2013
  op: t,
1911
2014
  transport: r,
1912
2015
  http: a.http,
@@ -1917,9 +2020,9 @@ function Qt(e) {
1917
2020
  envelope: o,
1918
2021
  cliFlags: s,
1919
2022
  streaming: t.streaming,
1920
- isMount: Jt(t)
2023
+ isMount: on(t)
1921
2024
  };
1922
- if (Jt(t)) {
2025
+ if (on(t)) {
1923
2026
  let e = t.handler;
1924
2027
  l.mountHandler = async (t) => e(t);
1925
2028
  }
@@ -1927,35 +2030,35 @@ function Qt(e) {
1927
2030
  }
1928
2031
  //#endregion
1929
2032
  //#region src/lib/package-invoker.ts
1930
- function $t(e) {
2033
+ function dn(e) {
1931
2034
  let t = e.usePlugins;
1932
2035
  return Array.isArray(t) ? t : [];
1933
2036
  }
1934
- function en(e) {
2037
+ function fn(e) {
1935
2038
  let t = e.exitCode;
1936
2039
  return typeof t == "function" ? t : void 0;
1937
2040
  }
1938
- function tn(e) {
2041
+ function pn(e) {
1939
2042
  let t = e.useOptions;
1940
2043
  return t && typeof t == "object" ? t : {};
1941
2044
  }
1942
- function nn(e) {
2045
+ function mn(e) {
1943
2046
  return async function(t, n) {
1944
2047
  let r = Object.assign(t, { data: t.domainArgs });
1945
2048
  return await e.layer(r, n);
1946
2049
  };
1947
2050
  }
1948
- function rn(e, t) {
2051
+ function hn(e, t) {
1949
2052
  let n = [];
1950
2053
  for (let e of t) {
1951
2054
  let t = e.capabilities?.layer;
1952
- t && n.push(nn(t));
2055
+ t && n.push(mn(t));
1953
2056
  }
1954
- return n.push(at(e)), we(n);
2057
+ return n.push(bt(e)), Re(n);
1955
2058
  }
1956
2059
  //#endregion
1957
2060
  //#region src/lib/dispatch-for-plan.ts
1958
- function an() {
2061
+ function gn() {
1959
2062
  let e = /* @__PURE__ */ new Map();
1960
2063
  return {
1961
2064
  get: (t) => e.get(t),
@@ -1964,7 +2067,7 @@ function an() {
1964
2067
  }
1965
2068
  };
1966
2069
  }
1967
- var on = {
2070
+ var _n = {
1968
2071
  input: {
1969
2072
  type: "object",
1970
2073
  properties: { data: {
@@ -1974,11 +2077,11 @@ var on = {
1974
2077
  },
1975
2078
  output: {}
1976
2079
  };
1977
- async function sn(e, t, n, r) {
2080
+ async function vn(e, t, n, r) {
1978
2081
  let i = {
1979
2082
  ...n,
1980
2083
  operation: { id: e.op.id },
1981
- ctx: new Ce(),
2084
+ ctx: new Le(),
1982
2085
  transport: e.transport
1983
2086
  };
1984
2087
  if (e.isMount) {
@@ -1988,13 +2091,13 @@ async function sn(e, t, n, r) {
1988
2091
  operation: e.op,
1989
2092
  data: n.domainArgs,
1990
2093
  envelope: n.envelope,
1991
- ctx: an(),
2094
+ ctx: gn(),
1992
2095
  transport: e.transport,
1993
2096
  signal: n.signal ?? new AbortController().signal
1994
2097
  }, s = {
1995
2098
  ...r,
1996
2099
  fns: { [e.op.id]: () => a(o) },
1997
- schemas: { [e.op.id]: on }
2100
+ schemas: { [e.op.id]: _n }
1998
2101
  };
1999
2102
  return t(e.op.id, i, s);
2000
2103
  }
@@ -2003,22 +2106,22 @@ async function sn(e, t, n, r) {
2003
2106
  //#endregion
2004
2107
  //#region src/lib/bind-host.ts
2005
2108
  var $ = "127.0.0.1";
2006
- function cn(e) {
2109
+ function yn(e) {
2007
2110
  let t = e.trim().toLowerCase().replace(/^\[|\]$/g, "");
2008
2111
  if (t === "localhost" || t === "::1") return !0;
2009
2112
  let n = t.startsWith("::ffff:") ? t.slice(7) : t;
2010
2113
  return /^127(\.\d{1,3}){3}$/.test(n);
2011
2114
  }
2012
- function ln(e) {
2115
+ function bn(e) {
2013
2116
  if (typeof e != "string") return $;
2014
2117
  let t = e.trim();
2015
2118
  return t === "" ? $ : t;
2016
2119
  }
2017
- function un(e, t, n) {
2018
- return !cn(e) && (n?.warn({
2120
+ function xn(e, t, n) {
2121
+ return !yn(e) && (n?.warn({
2019
2122
  host: e,
2020
2123
  host_kind: t
2021
2124
  }, `${t} binding non-loopback host "${e}": the server will be reachable from the network. Omit the host option to bind ${$}.`), !0);
2022
2125
  }
2023
2126
  //#endregion
2024
- export { Ot as BATCH_DEFAULT_CONCURRENCY, kt as BATCH_MAX_CONCURRENCY, $ as DEFAULT_LISTEN_HOST, Ee as EventBus, st as InstanceRegistry, Ce as LayerContext, q as UnionCodecError, it as ValidateSchemasToken, xt as WELL_KNOWN_TS_CODECS, nn as adaptCoreLayer, R as assertNoSelfSubscription, ke as buildContext, Ge as buildFnTable, Et as buildMcpOutputSchema, Qt as buildOpPlan, Tt as buildToolDescription, We as coerceQueryParams, ut as collectWithPhase, Le as createApiPackage, we as createInvoker, Re as createLogger, rn as createPackageInvoker, ct as createStream, ht as createUnionCodec, ye as dataParamNames, Te as defineMiddleware, B as describeParams, Se as dispatch, sn as dispatchForPlan, lt as drainStream, Pt as invokeBatch, dt as isApiStream, cn as isLoopbackListenHost, at as makeValidateLayer, ve as needsEnvelopeField, en as readExitCodeHook, tn as readUseOptions, $t as readUsePlugins, ln as resolveListenHost, wt as tsHostBinding, rt as validateLayer, un as warnIfNonLoopbackListen, Oe as wireObservers, Dt as wrapMcpStructuredContent };
2127
+ export { Bt as BATCH_DEFAULT_CONCURRENCY, Vt as BATCH_MAX_CONCURRENCY, $ as DEFAULT_LISTEN_HOST, Be as EventBus, St as InstanceRegistry, Le as LayerContext, q as UnionCodecError, yt as ValidateSchemasToken, Mt as WELL_KNOWN_TS_CODECS, mn as adaptCoreLayer, Qe as assertNoSelfSubscription, Ue as buildContext, lt as buildFnTable, Rt as buildMcpOutputSchema, un as buildOpPlan, Lt as buildToolDescription, st as coerceQueryParams, Me as collectWithPhase, $e as createApiPackage, Re as createInvoker, et as createLogger, hn as createPackageInvoker, Ae as createStream, Et as createUnionCodec, I as dataParamNames, ze as defineMiddleware, at as describeParams, z as dispatch, vn as dispatchForPlan, je as drainStream, Kt as invokeBatch, N as isApiStream, yn as isLoopbackListenHost, bt as makeValidateLayer, F as needsEnvelopeField, fn as readExitCodeHook, pn as readUseOptions, dn as readUsePlugins, bn as resolveListenHost, It as tsHostBinding, vt as validateLayer, xn as warnIfNonLoopbackListen, He as wireObservers, zt as wrapMcpStructuredContent };