@adhd/apigen-engine-runtime 0.3.2 β†’ 0.3.4

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/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
- ## 0.3.2 (2026-10-02)
1
+ ## 0.3.4 (2026-10-15)
2
+
3
+ This was a version bump only for apigen-engine-runtime to align it with other projects, there were no code changes.
4
+
5
+ ## 0.3.3 (2026-10-09)
6
+
7
+ ### 🩹 Fixes
8
+
9
+ - **agent-mcp:** bind loopback 127.0.0.1 by default; apigen hosts and generated servers too (5989ed90) ([c079e826](https://github.com/PseudoSky/adhd/commit/c079e826))
10
+
11
+ ### ❀️ Thank You
12
+
13
+ - pseudosky
14
+
15
+ ## 0.3.2 (2026-10-03)
2
16
 
3
17
  ### 🩹 Fixes
4
18
 
package/index.d.ts CHANGED
@@ -34,3 +34,4 @@ export type { TransportAdapter } from './lib/transport-adapter';
34
34
  export { createPackageInvoker, readUsePlugins, readExitCodeHook, readUseOptions, adaptCoreLayer, } from './lib/package-invoker';
35
35
  export type { UsePlugin, UseOptions } from './lib/package-invoker';
36
36
  export { dispatchForPlan } from './lib/dispatch-for-plan';
37
+ export { DEFAULT_LISTEN_HOST, isLoopbackListenHost, resolveListenHost, warnIfNonLoopbackListen, } from './lib/bind-host';
package/index.js CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));require("node:fs");let c=require("node:module");require("node:path");let l=require("pino");l=s(l);let u=require("ajv");u=s(u);let d=require("ajv-formats");d=s(d);var f=`$apigen`,p=class extends Error{constructor(e){super(e),this.code=`E_DUP_CODEC`,this.name=`CodecRegistryError`}};function m(e){e?.wellKnown;let t=new Map;return{register(e,n){if(t.has(e.id)&&!n?.override)throw new p(`E_DUP_CODEC: a codec is already registered for id "${e.id}"`);t.set(e.id,e)},resolve(e){for(let n of t.values())if(n.matches(e))return n},get(e){return t.get(e)},ids(){return[...t.keys()]},freeze(){let e=new Map(t),n={register(){throw new p(`E_DUP_CODEC: registry is frozen and cannot accept new codecs`)},resolve(t){for(let n of e.values())if(n.matches(t))return n},get(t){return e.get(t)},ids(){return[...e.keys()]},freeze(){return n}};return n}}}var ee=`x-apigen-logical`,h=`x-apigen-codec`,te=`x-apigen-ctor`,ne=`x-apigen-tojson`,re=`0.1.0`;function ie(e,t){return{registry:e,resolve:e=>{throw Error(`[apigen-logical] $ref "${e}" cannot be resolved in run-mode without a descriptor root. Supply a resolve() in the ctx override to handle $ref.`)},seen:new WeakSet,path:``,mode:`strict`,...t}}function g(e,t,n){let r=n.registry.resolve(t);if(r)return r.encode(e,t,n);let i=t.$ref;if(typeof i==`string`)return g(e,n.resolve(i),n);let a=t.oneOf;if(Array.isArray(a))return g(e,ae(e,a,t,n),n);let o=t.type;if(o===`array`){if(!Array.isArray(e))return b(e,t,n);let r=t.items;if(!r)return e.map(e=>S(e));let i=n.path;return Array.isArray(r)?e.map((e,t)=>{let a=r[t];return a===void 0?S(e):g(e,a,{...n,path:`${i}/${t}`})}):e.map((e,t)=>g(e,r,{...n,path:`${i}/${t}`}))}if(o===`object`){if(typeof e!=`object`||!e||Array.isArray(e))return b(e,t,n);let r=t.properties;if(!r)return S(e);let i=n.path,a={};for(let[t,o]of Object.entries(r)){let r=e[t];r!==void 0&&(a[t]=g(r,o,{...n,path:`${i}/${t}`}))}return a}return o==null?b(e,t,n):S(e)}function _(e,t,n){let r=n.registry.resolve(t);if(r)return r.decode(e,t,n);let i=t.$ref;if(typeof i==`string`)return _(e,n.resolve(i),n);let a=t.oneOf;if(Array.isArray(a))return _(e,ae(e,a,t,n),n);let o=t.type;if(o===`array`){if(!Array.isArray(e))return e;let r=t.items;if(!r)return e;let i=n.path;return Array.isArray(r)?e.map((e,t)=>{let a=r[t];return a===void 0?e:_(e,a,{...n,path:`${i}/${t}`})}):e.map((e,t)=>_(e,r,{...n,path:`${i}/${t}`}))}if(o===`object`){if(typeof e!=`object`||!e||Array.isArray(e))return e;let r=t.properties;if(!r)return e;let i=n.path,a={};for(let[t,o]of Object.entries(r)){let r=e[t];r!==void 0&&(a[t]=_(r,o,{...n,path:`${i}/${t}`}))}for(let[t,n]of Object.entries(e))!(t in r)&&n!==void 0&&(a[t]=n);return a}return o==null?x(e,n):e}function ae(e,t,n,r){let i=n.discriminator;if(i?.propertyName){let n=i.propertyName,a=typeof e==`object`&&e?e[n]:void 0;if(typeof a==`string`){if(i.mapping){let e=i.mapping[a];if(e){let n=t.find(t=>t.$ref===e);if(n)return n}}for(let e of t){let t=v(e,r).properties?.[n];if(!t)continue;let i=t.enum;if(t.const===a||Array.isArray(i)&&i.includes(a))return e}}}let a=se(e,t,r);if(a)return a;let o,s=-1;for(let n of t){let t=y(e,v(n,r),r);t!==null&&t>s&&(s=t,o=n)}return o===void 0?t[0]??{}:o}function v(e,t){let n=e.$ref;return typeof n==`string`?t.resolve(n):e}function oe(e){if(`const`in e)return e.const;let t=e.enum;if(Array.isArray(t)&&t.length===1)return t[0]}function se(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e))return;let r=e,i=t.map(e=>v(e,n)),a=new Set;for(let e of i){let t=e.properties;if(t)for(let[e,n]of Object.entries(t))oe(n)!==void 0&&a.add(e)}for(let o of a){let a=i.map(e=>{let t=e.properties?.[o];return t?oe(t):void 0}),s=a.filter(e=>e!==void 0),c=new Set(s);if(s.length<2||c.size!==s.length)continue;let l=r[o];if(l===void 0)continue;let u=a.findIndex(e=>e===l);if(u!==-1&&y(e,i[u],n)!==null)return t[u]}}function ce(e){if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=typeof e;return t===`number`?Number.isInteger(e)?`integer`:`number`:t}function y(e,t,n){let r=t.oneOf;if(Array.isArray(r)){let t=null;for(let i of r){let r=y(e,v(i,n),n);r!==null&&(t===null||r>t)&&(t=r)}return t}let i=t.type,a=ce(e);if(typeof i==`string`){if(!(i===a||i===`number`&&a===`integer`))return null}else if(Array.isArray(i)&&!i.some(e=>e===a||e===`number`&&a===`integer`))return null;if(typeof e!=`object`||!e||Array.isArray(e))return+(typeof i==`string`);let o=e,s=t.required,c=0;if(Array.isArray(s)){for(let e of s)if(typeof e==`string`){if(o[e]===void 0)return null;c+=2}}let l=t.properties;if(l){for(let e of Object.keys(l))o[e]!==void 0&&(c+=1);for(let e of Object.keys(o))l[e]===void 0&&--c}return c}function b(e,t,n){for(let t of n.registry.ids()){let r=n.registry.get(t);if(r?.ownsValue?.(e))return{[f]:t,v:r.encode(e,r.schema,n)}}if(Array.isArray(e))return e.map(e=>b(e,{},n));if(le(e)){let t={};for(let[r,i]of Object.entries(e))i!==void 0&&(t[r]=b(i,{},n));return t}return S(e)}function le(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function x(e,t){if(typeof e==`object`&&e&&!Array.isArray(e)&&`$apigen`in e){let n=e,r=n[f],i=t.registry.get(r);if(i)return i.decode(n.v,i.schema,t)}if(Array.isArray(e))return e.map(e=>x(e,t));if(le(e)){let n={};for(let[r,i]of Object.entries(e))n[r]=x(i,t);return n}return e}function S(e){if(e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(Array.isArray(e))return e.map(S);if(typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=S(r));return t}return null}function ue(e,t){let n=new Set,r=[e];for(;r.length>0;){let e=r.pop();if(!e||n.has(e))continue;n.add(e);let i=e.$ref;if(typeof i==`string`){if(t){let e=t[i];if(!e){let e=Object.keys(t).join(`, `)||`(none)`;throw Error(`[apigen-logical] $ref "${i}" cannot be resolved. Available $defs: ${e}`)}r.push(e)}continue}let a=e.oneOf;if(Array.isArray(a))for(let e of a)typeof e==`object`&&e&&r.push(e);let o=e.properties;if(o)for(let e of Object.values(o))r.push(e);let s=e.items;if(Array.isArray(s))for(let e of s)typeof e==`object`&&e&&r.push(e);else typeof s==`object`&&s&&r.push(s);let c=e.additionalProperties;typeof c==`object`&&c&&r.push(c);let l=e.propertyNames;typeof l==`object`&&l&&r.push(l)}}function de(e){return{encode(t,n,r){return g(t,n,ie(e,r))},decode(t,n,r){return _(t,n,ie(e,r))}}}var C={id:`date-time`,kind:`scalar`,schema:{type:`string`,format:`date-time`},matches(e){return e.type===`string`&&e.format===`date-time`},ownsValue(e){return e instanceof Date},encode(e,t,n){return e.toISOString()},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[date-time] expected a string on the wire at "${n.path}", got ${typeof e}`);return new Date(String(e))}if(n.mode===`strict`&&Number.isNaN(new Date(e).getTime()))throw TypeError(`[date-time] invalid date-time string at "${n.path}": ${JSON.stringify(e)}`);return new Date(e)}},w={id:`int64`,kind:`scalar`,schema:{type:`string`,format:`int64`},matches(e){return e.type===`string`&&e.format===`int64`},ownsValue(e){return typeof e==`bigint`},encode(e,t,n){return String(e)},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[int64] expected a string on the wire at "${n.path}", got ${typeof e}`);try{return BigInt(Math.trunc(Number(e)))}catch{return BigInt(0)}}if(n.mode===`strict`)return BigInt(e);if(/^-?\d+$/.test(e))try{return BigInt(e)}catch{return BigInt(0)}return BigInt(0)}};function fe(e){return e}var T={id:`decimal`,kind:`scalar`,schema:{type:`string`,format:`decimal`},matches(e){return e.type===`string`&&e.format===`decimal`},encode(e,t,n){return e},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[decimal] expected a string on the wire at "${n.path}", got ${typeof e}`);return fe(String(e))}if(n.mode===`strict`&&!/^-?\d+(\.\d+)?$/.test(e))throw TypeError(`[decimal] wire value "${e}" at "${n.path}" is not a valid decimal string`);return fe(e)}},E={id:`byte`,kind:`scalar`,schema:{type:`string`,format:`byte`},matches(e){return e.type===`string`&&e.format===`byte`},ownsValue(e){return e instanceof Uint8Array},encode(e,t,n){return Buffer.from(e).toString(`base64`)},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[byte] expected a base64 string on the wire at "${n.path}", got ${typeof e}`);return new Uint8Array}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}"`);return new Uint8Array(Buffer.from(e,`base64`))}},pe=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,D={id:`uuid`,kind:`scalar`,schema:{type:`string`,format:`uuid`},matches(e){return e.type===`string`&&e.format===`uuid`},encode(e,t,n){return e.toLowerCase()},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[uuid] expected a string on the wire at "${n.path}", got ${typeof e}`);return String(e).toLowerCase()}if(n.mode===`strict`&&!pe.test(e))throw TypeError(`[uuid] wire value "${e}" at "${n.path}" is not a lowercase-hyphenated RFC 4122 UUID`);return e}},O=`NaN`,k=`Infinity`,A=`-Infinity`,me=new Set([O,k,A]),j={id:`number-special`,kind:`scalar`,schema:{type:`number`},matches(e){return e.type===`number`&&e.format===void 0},ownsValue(e){return typeof e==`number`&&!Number.isFinite(e)},encode(e,t,n){return Number.isNaN(e)?O:e===1/0?k:e===-1/0?A:e},decode(e,t,n){if(typeof e==`number`)return e;if(typeof e==`string`){if(e===O)return NaN;if(e===k)return 1/0;if(e===A)return-1/0;let t=Number(e);if(!Number.isNaN(t))return t}if(n.mode===`strict`)throw TypeError(`[number-special] unrecognized wire value at "${n.path}": ${JSON.stringify(e)}. Expected a number or one of ${[...me].join(`, `)}.`);return NaN}},he=[C,w,T,E,D,j];function ge(e,t={}){for(let n of he)e.register(n,{override:t.override??!1})}var _e=12;function ve(e,t){let n=/^#\/(definitions|\$defs)\/(.+)$/.exec(e);if(!n)return;let[,r,i]=n;return(r===`$defs`?t.$defs:t.definitions)?.[decodeURIComponent(i)]}function ye(e){return Array.isArray(e)&&e.length>0?e[0]:void 0}function be(e){if(Array.isArray(e.type))return e.type.find(e=>e!==`null`)??e.type[0];if(typeof e.type==`string`)return e.type;if(e.properties)return`object`}function xe(e){switch(e.format){case`date-time`:return`1970-01-01T00:00:00.000Z`;case`date`:return`1970-01-01`;case`time`:return`00:00:00Z`;case`uuid`:return`00000000-0000-0000-0000-000000000000`;case`email`:return`user@example.com`;case`uri`:case`url`:case`uri-reference`:return`https://example.com`;case`hostname`:return`example.com`;case`ipv4`:return`127.0.0.1`;case`ipv6`:return`::1`;case`decimal`:return`0`;case`int64`:return`0`;case`byte`:return``;default:return`<string>`}}function Se(e,t,n){let r=e.properties??{},i=e.required??[],a={};for(let e of i){let i=r[e];a[e]=i===void 0?`<${e}>`:M(i,t,n+1)}return a}function Ce(e,t,n){let r=Array.isArray(e.items)?e.items[0]:e.items;return r?[M(r,t,n+1)]:[]}function M(e,t=e??{},n=0){if(!e||n>_e)return null;if(typeof e.$ref==`string`){let r=ve(e.$ref,t);return r===void 0?null:M(r,t,n+1)}if(e.const!==void 0)return e.const;if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0];if(Array.isArray(e.allOf)&&e.allOf.length>0){let r={},i=[];for(let t of e.allOf){Object.assign(r,t.properties??{});for(let e of t.required??[])i.includes(e)||i.push(e)}return Se({...e,properties:r,required:i},t,n)}let r=ye(e.oneOf)??ye(e.anyOf);if(r)return M(r,t,n+1);switch(be(e)){case`object`:return Se(e,t,n);case`array`:return Ce(e,t,n);case`string`:return xe(e);case`integer`:case`number`:return 0;case`boolean`:return!1;case`null`:return null;default:return null}}function we(e){if(!e)return;let t=M(e);return`Example: ${JSON.stringify(t)}`}C.id,w.id,T.id,E.id,D.id,j.id,Object.freeze({typescript:{"date-time":{encode:`$.toISOString()`,decode:`new Date($)`,mode:`native`},int64:{encode:`String($)`,decode:`BigInt($)`,mode:`native`},decimal:{encode:`$.toString()`,decode:`new Decimal($)`,imports:[],dep:{name:`decimal.js`,version:`^10`},mode:`branded`},byte:{encode:`Buffer.from($).toString('base64')`,decode:`new Uint8Array(Buffer.from($, 'base64'))`,mode:`native`},uuid:{encode:`$.toLowerCase()`,decode:`$`,mode:`native`},"number-special":{encode:`numToWire($)`,decode:`wireToNum($)`,mode:`native`}},python:{"date-time":{encode:`$.isoformat()`,decode:`datetime.fromisoformat($)`,imports:[`from datetime import datetime`],mode:`native`},int64:{encode:`str($)`,decode:`int($)`,mode:`native`},decimal:{encode:`str($)`,decode:`Decimal($)`,imports:[`from decimal import Decimal`],mode:`native`},byte:{encode:`b64encode($).decode()`,decode:`b64decode($)`,imports:[`from base64 import b64encode, b64decode`],mode:`native`},uuid:{encode:`str($)`,decode:`UUID($)`,imports:[`from uuid import UUID`],mode:`native`},"number-special":{encode:`num_to_wire($)`,decode:`wire_to_num($)`,mode:`native`}},rust:{"date-time":{encode:`__SCAFFOLD_RUST_DATETIME_ENCODE__`,decode:`__SCAFFOLD_RUST_DATETIME_DECODE__`,imports:[`use chrono::{DateTime, Utc};`],dep:{name:`chrono`,version:`^0.4`},mode:`lib`},int64:{encode:`__SCAFFOLD_RUST_INT64_ENCODE__`,decode:`__SCAFFOLD_RUST_INT64_DECODE__`,imports:[`use serde_with::DisplayFromStr;`],dep:{name:`serde_with`,version:`^3`},mode:`lib`},decimal:{encode:`__SCAFFOLD_RUST_DECIMAL_ENCODE__`,decode:`__SCAFFOLD_RUST_DECIMAL_DECODE__`,imports:[`use rust_decimal::Decimal;`],dep:{name:`rust_decimal`,version:`^1`},mode:`lib`},byte:{encode:`__SCAFFOLD_RUST_BYTE_ENCODE__`,decode:`__SCAFFOLD_RUST_BYTE_DECODE__`,imports:[`use serde_with::base64::Base64;`],dep:{name:`serde_with`,version:`^3`},mode:`lib`},uuid:{encode:`__SCAFFOLD_RUST_UUID_ENCODE__`,decode:`__SCAFFOLD_RUST_UUID_DECODE__`,imports:[`use uuid::Uuid;`],dep:{name:`uuid`,version:`^1`},mode:`lib`},"number-special":{encode:`__SCAFFOLD_RUST_NUMSPECIAL_ENCODE__`,decode:`__SCAFFOLD_RUST_NUMSPECIAL_DECODE__`,mode:`native`}},go:{"date-time":{encode:`__SCAFFOLD_GO_DATETIME_ENCODE__`,decode:`__SCAFFOLD_GO_DATETIME_DECODE__`,imports:[`"time"`],mode:`native`},int64:{encode:`__SCAFFOLD_GO_INT64_ENCODE__`,decode:`__SCAFFOLD_GO_INT64_DECODE__`,imports:[`"strconv"`],mode:`native`},decimal:{encode:`__SCAFFOLD_GO_DECIMAL_ENCODE__`,decode:`__SCAFFOLD_GO_DECIMAL_DECODE__`,imports:[`"github.com/shopspring/decimal"`],dep:{name:`github.com/shopspring/decimal`,version:`v1`},mode:`lib`},byte:{encode:`__SCAFFOLD_GO_BYTE_ENCODE__`,decode:`__SCAFFOLD_GO_BYTE_DECODE__`,imports:[`"encoding/base64"`],mode:`native`},uuid:{encode:`__SCAFFOLD_GO_UUID_ENCODE__`,decode:`__SCAFFOLD_GO_UUID_DECODE__`,imports:[`"github.com/google/uuid"`],dep:{name:`github.com/google/uuid`,version:`v1`},mode:`lib`},"number-special":{encode:`__SCAFFOLD_GO_NUMSPECIAL_ENCODE__`,decode:`__SCAFFOLD_GO_NUMSPECIAL_DECODE__`,mode:`native`}},java:{"date-time":{encode:`$.toString()`,decode:`Instant.parse($)`,imports:[`import java.time.Instant;`],dep:{name:`jackson-datatype-jsr310`,version:`2.x`},mode:`lib`},int64:{encode:`@JsonFormat(shape = JsonFormat.Shape.STRING)`,decode:`@JsonFormat(shape = JsonFormat.Shape.STRING)`,imports:[`import com.fasterxml.jackson.annotation.JsonFormat;`],mode:`native`},decimal:{encode:`@JsonSerialize(using = ToStringSerializer.class)`,decode:`new BigDecimal($)`,imports:[`import java.math.BigDecimal;`,`import com.fasterxml.jackson.databind.annotation.JsonSerialize;`,`import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;`],mode:`native`},byte:{encode:`$`,decode:`$`,mode:`native`},uuid:{encode:`$.toString()`,decode:`UUID.fromString($)`,imports:[`import java.util.UUID;`],mode:`native`},"number-special":{encode:`@JsonSerialize(using = NumberSpecialSerializer.class)`,decode:`@JsonDeserialize(using = NumberSpecialDeserializer.class)`,imports:[`import com.fasterxml.jackson.databind.annotation.JsonSerialize;`,`import com.fasterxml.jackson.databind.annotation.JsonDeserialize;`],mode:`native`}}});var Te=m();ge(Te);var Ee=de(Te.freeze());function De(e,t){return t in(e.input?.properties??{})}function Oe(e){let t=e.input?.properties?.data;return Object.keys(t?.properties??{})}function ke(e,t){let n=e.input?.properties?.data?.properties?.[t];return n===void 0?void 0:n}function Ae(e,t){return t===void 0||e===void 0?e:Ee.decode(e,t)}function N(e,t){let n=t.output;return!n||Object.keys(n).length===0?e:Ee.encode(e,n)}async function je(e,t,n,r,i,a){let o=Oe(n).map(e=>Ae(a[e],ke(n,e)));if(De(n,`session`)&&t){let a=await t({session:i.session});return N(await e[r](a,...o),n)}if(n.hasCtx){let a=t?await t(i):void 0;return N(await e[r](a,...o),n)}return N(await e[r](...o),n)}var P=class{constructor(){this._map=new Map}set(e,t){this._map.set(e,t)}get(e){return this._map.get(e)}has(e){return this._map.has(e)}};function F(e=[]){return async function(t,n,r){let i=r.schemas[t];if(!i)throw Error(`apigen/invoke: no schema found for operation "${t}"`);return e.reduceRight((e,t)=>()=>t(n,e),()=>je(r.fns,r.createClient,i,t,n.envelope,n.domainArgs))()}}function Me(e){return e}var I=class{constructor(){this.handlers=new Map}on(e,t){let n=this.handlers.get(e)??[];return this.handlers.set(e,[...n,t]),()=>this.off(e,t)}off(e,t){let n=this.handlers.get(e);if(!n)return;let r=n.filter(e=>e!==t);r.length===0?this.handlers.delete(e):this.handlers.set(e,r)}clear(){this.handlers.clear()}async emit(e){for(let[t,n]of this.handlers)if(Ne(t,e))for(let t of n)await t(e)}};function Ne(e,t){let[n,r,i]=e.split(`:`);return!(n!==`*`&&n!==t.module||r&&r!==`*`&&r!==t.method||i&&i!==`*`&&i!==t.lifecycle)}function L(e,t){for(let n of e)if(n.eventMapping)for(let[e,r]of Object.entries(n.eventMapping))t.on(e,r)}async function R(e,t,n){let r={...t};for(let t of e)if(t.createContext){await n.emit({module:t.id,method:`createContext`,lifecycle:`start`,ctx:r});try{let e=await t.createContext(r);r={...r,...e},await n.emit({module:t.id,method:`createContext`,lifecycle:`complete`,ctx:r})}catch(e){throw await n.emit({module:t.id,method:`createContext`,lifecycle:`error`,ctx:r,error:e}),e}}return r}(0,c.createRequire)(require("node:url").pathToFileURL(__filename).href);var z=new Set([`string`,`number`,`boolean`,`integer`]);function Pe(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.$ref!==void 0||t.oneOf||t.anyOf||t.allOf)return!1;let{type:n}=t;return typeof n==`string`?z.has(n):Array.isArray(n)?n.every(e=>z.has(e)||e===`null`):Array.isArray(t.enum)&&t.enum.length>0?t.enum.every(e=>[`string`,`number`,`boolean`].includes(typeof e)):!1}function B(e){if(!e||typeof e!=`object`)return!1;let t=e.properties;return t===void 0||typeof t!=`object`||!t?!1:Object.values(t).every(Pe)}function Fe(e){let t={},n=e=>{for(let n of[`definitions`,`$defs`]){let r=e[n];if(r)for(let[e,i]of Object.entries(r)){let r=e.startsWith(`#/`)?e:`#/${n}/${e}`;t[r]=i}}};for(let t of Object.values(e.schemas))n(t.input),n(t.output);if(Object.keys(t).length!==0)for(let[n,r]of Object.entries(e.schemas))try{ue(r.input,t),ue(r.output,t)}catch(e){throw Error(`[apigen-core-client] Schema validation failed for function "${n}": ${e.message}`)}}function Ie(e,t){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).`)];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(` `)}function Le(e,t,n){Fe(e);let r={};for(let[i,a]of Object.entries(e.schemas)){let e=n?.[i]??{},o=a.input.properties??{},s=a.input.required??[],c={},l=[],u={};for(let n of t)if(n.envelope&&e[n.id]!==!1)for(let[e,t]of Object.entries(n.envelope))c[e]=t,u[e]=n.id,l.includes(e)||l.push(e);let d={type:`object`,properties:o,additionalProperties:!1,...s.length>0?{required:s}:{}},f=a.safe===!0||B(a.input),p=a.input.definitions,m=a.input.$defs;r[i]={input:{type:`object`,properties:{...c,data:d},required:[...l,...s.length>0?[`data`]:[]],additionalProperties:!1,description:Ie(Object.keys(c),Object.keys(o).length>0),...p?{definitions:p}:{},...m?{$defs:m}:{}},output:a.output,...a.hasCtx?{hasCtx:!0}:{},"x-apigen-safe":f,...Object.keys(u).length>0?{"x-apigen-envelope":u}:{}}}return r}var Re={"decimal.js":`Decimal`};function ze(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}Object.entries(Re).map(([e,t])=>({pattern:RegExp(`import\\(["'][^"']*${ze(e)}[^"']*["']\\)\\.\\w+`,`g`),key:t}));var V=class extends Error{constructor(e){super(e),this.name=`ConfigurationError`}};function Be(e){for(let t of e)for(let e of Object.keys(t.eventMapping??{})){let[n]=e.split(`:`);if(n!==`*`&&n===t.id)throw new V(`Middleware "${t.id}" subscribes to its own events via "${e}". This would cause infinite recursion.`)}}function Ve(e){let{domainSchemas:t,middlewares:n,overrides:r={},strict:i=!1}=e;Be(n);for(let e of Object.keys(r))if(!(e in t.schemas)){let t=`Override key "${e}" not found in domain schemas.`;if(i)throw new V(t);console.warn(`[apigen-runtime]`,t)}let a=new Set(n.map(e=>e.id));for(let[e,t]of Object.entries(r))for(let n of Object.keys(t??{}))if(!a.has(n)){let t=`Override key "${e}.${n}" does not match any declared middleware id.`;if(i)throw new V(t);console.warn(`[apigen-runtime]`,t)}let o=Le(t,n,r),s=new I;return L(n,s),{schemas:o,createClient:async e=>R(n,e,s),dispose:()=>s.clear()}}function He(e={}){let t=e.level??`info`,n=typeof e.destination==`string`&&e.destination.length>0,r=!n&&!!process.stderr.isTTY,i=e.format??(r?`pretty`:`json`),a={level:t};if(i===`pretty`)return a.transport={target:`pino-pretty`,options:{colorize:!n,translateTime:`SYS:HH:MM:ss.l`,ignore:`pid,hostname`,...n?{destination:e.destination,mkdir:!0}:{destination:2}}},(0,l.default)(a);let o=n?l.default.destination({dest:e.destination,mkdir:!0,sync:!0}):l.default.destination(2);return(0,l.default)(a,o)}function Ue(e){if(e?.type!==`object`||!e.properties)return;let t=Object.entries(e.properties);if(t.length===0)return;let n=new Set(e.required??[]);return`{ ${t.map(([e,t])=>`${e}${n.has(e)?``:`?`}: ${H(t)}`).join(`, `)} }`}function We(e){return typeof e==`string`?`'${e}'`:JSON.stringify(e)}function Ge(e){let t=e.enum??[];return t.length===0?`unknown`:t.map(We).join(`|`)}function Ke(e,t){return e.map(e=>H(e,t)).join(` | `)}function H(e,t=0){if(!e)return`unknown`;if(e.type===`array`)return`${H(e.items,0)}[]`;if(e.enum)return Ge(e);if(e.$ref)return String(e.$ref).split(`/`).pop()||`object`;let n=e.anyOf??e.oneOf;return n?n.length===0?`unknown`:t>=2?Ke(n,t-1):`union`:t>=1&&e.type===`object`?Ue(e)??`object`:e.type??`object`}function qe(e){let t=(e?.input??{}).properties?.data,n=t?.properties??{},r=new Set(t?.required??[]),i=Object.entries(n).map(([e,t])=>({name:e,type:H(t,2),required:r.has(e)}));return{params:i,text:i.map(e=>`${e.name}${e.required?``:`?`}: ${e.type}`).join(`, `)}}function Je(e){let t;return t=Array.isArray(e)?e:e?[e]:[],t.find(e=>e===`number`||e===`integer`||e===`boolean`)}function Ye(e,t){let n=(t?.input??{}).properties?.data?.properties??{},r={...e};for(let[e,t]of Object.entries(n)){let n=r[e];if(typeof n!=`string`)continue;let i=Je(t?.type);if(i===`number`||i===`integer`){let t=Number(n);!Number.isNaN(t)&&n.trim()!==``&&(r[e]=t)}else i===`boolean`&&(n===`true`?r[e]=!0:n===`false`&&(r[e]=!1))}return r}var Xe=new Set([`default`,`module.exports`,`__esModule`]);function Ze(e){let t={},n=(e,r)=>{for(let[i,a]of Object.entries(e))if(typeof a==`function`){!Xe.has(i)&&!(i in t)&&(t[i]=a);let e=a.name;e&&!(e in t)&&(t[e]=a)}else a&&typeof a==`object`&&r<2&&Xe.has(i)&&n(a,r+1)};return n(e,0),t}var Qe=[`invalid_argument`,`unauthenticated`,`permission_denied`,`not_found`,`internal`],U=class extends Error{constructor(e,t,n){super(t),this.name=`ApiError`,this.code=e,this.details=n,Object.setPrototypeOf(this,new.target.prototype)}toJSON(){let e={code:this.code,message:this.message};return this.details!==void 0&&(e.details=this.details),e}};function $e(e){return typeof e==`object`&&!!e&&e.name===`ApiError`&&Qe.includes(e.code)&&typeof e.toJSON==`function`}function et(e,t,n=0){return e===`before-first-chunk`?{phase:e,error:t}:{phase:e,error:t,chunksDelivered:n}}var W=new u.default({allErrors:!0,verbose:!0});(0,d.default)(W);for(let e of[ee,h,te,ne,`discriminator`])W.addKeyword({keyword:e,valid:!0});W.addFormat(`decimal`,/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/);function tt(e){return e?e.replace(/^\//,``).split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`)).join(`.`):`(root)`}function nt(e){let t=e?.properties;return t?Object.keys(t):[]}function rt(e,t){let n=e.length,r=t.length;if(n===0)return r;if(r===0)return n;let i=Array.from({length:r+1},(e,t)=>t);for(let a=1;a<=n;a++){let n=[a];for(let o=1;o<=r;o++){let r=e[a-1]===t[o-1]?0:1;n[o]=Math.min(i[o]+1,n[o-1]+1,i[o-1]+r)}i=n}return i[r]}function it(e,t){let n,r=1/0;for(let i of t){let t=rt(e.toLowerCase(),i.toLowerCase());t<r&&(r=t,n=i)}let i=Math.max(2,Math.floor(e.length/3));return n!==void 0&&r<=i?n:void 0}function at(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function ot(e){let t=tt(e.instancePath),n=e.params??{};switch(e.keyword){case`additionalProperties`:{let r=String(n.additionalProperty??`?`),i=nt(e.parentSchema),a=it(r,i);return`unknown key '${r}' at ${t}${i.length?`; allowed keys: ${i.join(`, `)}`:``}${a?` (did you mean '${a}'?)`:``}`}case`required`:{let r=String(n.missingProperty??`?`),i=nt(e.parentSchema);return`missing required key '${r}' at ${t}${i.length?`; allowed keys: ${i.join(`, `)}`:``}`}case`enum`:{let r=Array.isArray(n.allowedValues)?n.allowedValues:[],i=e.data;return`value ${JSON.stringify(i)} at ${t} is not one of: ${r.map(e=>JSON.stringify(e)).join(`, `)}`}case`type`:{let r=e.data;return`${t} must be ${String(n.type)} (got ${at(r)})`}default:return`${t} ${e.message??`failed schema check`}`}}var G=12;function st(e){let t=e.slice(0,G).map(ot);return e.length>G&&t.push(`…and ${e.length-G} more`),t.join(`; `)}function K(e){return e===null?!1:Array.isArray(e)?e.some(K):typeof e!=`object`||Object.values(e).some(K)}function ct(e,t){let n=[`Validation failed: ${st(e)}`],r=M(t);return K(r)&&n.push(`Example: ${JSON.stringify(r)}`),n.join(` β€” `)}var lt=async(e,t)=>{let n=e.ctx.get(ut);if(n===void 0)return t();let r=n[e.operation.id];if(r===void 0)return t();let i={data:e.domainArgs,...e.envelope},a=W.compile(r.input);if(!a(i)){let e=a.errors??[];throw new U(`invalid_argument`,ct(e,r.input),e)}return t()},ut=Symbol(`ValidateSchemasToken`);function dt(e){return async function(t,n){let r=e[t.operation.id];if(r===void 0)return n();let i={data:t.domainArgs,...t.envelope},a=W.compile(r.input);if(!a(i)){let e=a.errors??[];throw new U(`invalid_argument`,ct(e,r.input),e)}return n()}}function ft(){return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}var pt=class{constructor(e={}){this._store=new Map,this._sweeper=null,this._defaultTtlMs=e.defaultTtlMs;let t=null;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?.())}create(e,t=[],n){let r=new e(...t),i=ft(),a=n??this._defaultTtlMs,o=a===void 0?null:Date.now()+a;return this._store.set(i,{instance:r,expiresAt:o}),{instanceId:i}}get(e){let t=this._store.get(e);if(!t)throw Error(`[instance-registry] Unknown instanceId: "${e}"`);if(t.expiresAt!==null&&Date.now()>t.expiresAt)throw this._evict(e,t),Error(`[instance-registry] Instance "${e}" has expired`);return t.instance}async dispatch(e,t,n=[]){let r=this.get(e),i=r[t];if(typeof i!=`function`)throw Error(`[instance-registry] Method "${t}" not found on instance "${e}"`);return i.call(r,...n)}async dispose(e){let t=this._store.get(e);t&&(this._store.delete(e),await q(t.instance))}async disposeAll(){this._sweeper!==null&&(clearInterval(this._sweeper),this._sweeper=null);let e=[...this._store.entries()];this._store.clear(),await Promise.all(e.map(([,e])=>q(e.instance)))}get size(){return this._store.size}_sweep(){let e=Date.now();for(let[t,n]of this._store)n.expiresAt!==null&&e>n.expiresAt&&this._evict(t,n)}_evict(e,t){this._store.delete(e),q(t.instance)}};async function q(e){if(typeof e==`object`&&e&&`dispose`in e){let t=e.dispose;typeof t==`function`&&await t.call(e)}}function mt(e){let{produce:t,signal:n}=e,r=n??new AbortController().signal;return{[Symbol.asyncIterator](){let e=t(r);return{async next(){return r.aborted?(await e.return(void 0),{done:!0,value:void 0}):e.next()},async return(t){return await e.return(t),{done:!0,value:void 0}},async throw(t){return await e.throw(t),{done:!0,value:void 0}}}}}}async function ht(e){let t=[];for await(let n of e)t.push(n);return t}async function gt(e){let t=[];try{for await(let n of e)t.push(n);return{ok:!0,chunks:t}}catch(e){let n=$e(e)?e:new U(`internal`,e instanceof Error?e.message:String(e));return t.length===0?{ok:!1,carrier:et(`before-first-chunk`,n)}:{ok:!1,carrier:et(`after-first-chunk`,n,t.length)}}}function _t(e){return typeof e==`object`&&!!e&&Symbol.asyncIterator in e}var J=class extends Error{constructor(e,t){super(t),this.name=`UnionCodecError`,this.code=e}};function Y(e){let t=e.discriminator;if(typeof t!=`object`||!t||Array.isArray(t))return;let n=t;if(typeof n.propertyName!=`string`)return;let r=n.mapping;if(typeof r==`object`&&r&&!Array.isArray(r))return{propertyName:n.propertyName,mapping:r}}function vt(e,t){let n=e[h];if(typeof n==`string`){let e=t.registry.get(n);if(e)return e}return t.registry.resolve(e)}function yt(e,t,n){let r=vt(t,n);return r?r.encode(e,t,n):e}function bt(e,t,n){let r=vt(t,n);return r?r.decode(e,t,n):e}function xt(e){let{id:t,schema:n}=e;return{id:t,kind:`union`,schema:n,matches(e){if(e[`x-apigen-logical`]===`union`)return!0;let t=e.oneOf;return!Array.isArray(t)||t.length===0?!1:Y(e)!==void 0},encode(e,n,r){let i=Y(n);if(!i)throw new J(`E_UNION_NO_DISCRIMINATOR`,`[${t}] schema node at "${r.path}" has no discriminator.propertyName; cannot dispatch union branch.`);let{propertyName:a,mapping:o}=i,s=e[a];if(s==null)throw new J(`E_UNION_NO_DISCRIMINATOR`,`[${t}] value at "${r.path}" is missing the discriminator property "${a}".`);let c=String(s),l=o[c];if(!l)throw new J(`E_UNION_UNKNOWN_TAG`,`[${t}] discriminator tag "${c}" at "${r.path}" is not in the mapping (known: ${Object.keys(o).join(`, `)}).`);return yt(e,r.resolve(l),{...r,path:`${r.path}[${c}]`})},decode(e,n,r){if(typeof e!=`object`||!e||Array.isArray(e)){let n;throw n=e===null?`null`:Array.isArray(e)?`array`:typeof e,new J(`E_UNION_INVALID_WIRE`,`[${t}] expected a JSON object on the wire at "${r.path}", got ${n}.`)}let i=e,a=Y(n);if(!a)throw new J(`E_UNION_NO_DISCRIMINATOR`,`[${t}] schema node at "${r.path}" has no discriminator.propertyName; cannot dispatch union branch.`);let{propertyName:o,mapping:s}=a,c=i[o];if(c==null)throw new J(`E_UNION_NO_DISCRIMINATOR`,`[${t}] wire object at "${r.path}" is missing the discriminator property "${o}".`);let l=String(c),u=s[l];if(!u)throw new J(`E_UNION_UNKNOWN_TAG`,`[${t}] discriminator tag "${l}" on the wire at "${r.path}" is not in the mapping (known: ${Object.keys(s).join(`, `)}).`);return bt(e,r.resolve(u),{...r,path:`${r.path}[${l}]`})}}}var X=class extends Error{constructor(e,t){super(t),this.name=`NominalCodecError`,this.code=e}};function St(e){let t=e.properties;return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}function Ct(e){let t=e.required;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}function wt(e,t,n){if(t){let r=n.registry.resolve(t);if(r)return r.encode(e,t,n)}return e}function Tt(e,t,n){if(t){let r=n.registry.resolve(t);if(r)return r.decode(e,t,n)}return e}function Et(e){let{id:t,schema:n,ctor:r}=e;return{id:t,kind:`nominal`,schema:n,matches(e){return e[`x-apigen-logical`]===`nominal`||e[h]===t},encode(e,n,r){if(typeof e!=`object`||!e)return e;if(r.seen.has(e)){if(r.mode===`strict`)throw new X(`E_NOMINAL_CYCLE`,`[${t}] cycle detected at "${r.path}": a nominal instance references itself. Strict mode rejects cycles (DESIGN Β§8.3); break the cycle or use 'lossy' mode.`);return null}r.seen.add(e);try{let t=St(n),i=e[typeof n[`x-apigen-tojson`]==`string`?n[ne]:`toJSON`];if(typeof i==`function`){let n=i.call(e);if(typeof n==`object`&&n&&!Array.isArray(n)){let e={};for(let[i,a]of Object.entries(n))e[i]=wt(a,t[i],{...r,path:`${r.path}/${i}`});return e}return n}let a={},o=Object.keys(t),s=e,c=o.length>0?o:Object.keys(s);for(let e of c){let n=s[e];n!==void 0&&(a[e]=wt(n,t[e],{...r,path:`${r.path}/${e}`}))}return a}finally{r.seen.delete(e)}},decode(e,n,i){if(typeof e!=`object`||!e||Array.isArray(e)){let n;throw n=e===null?`null`:Array.isArray(e)?`array`:typeof e,new X(`E_NOMINAL_INVALID_WIRE`,`[${t}] expected a JSON object on the wire at "${i.path}", got ${n}.`)}let a=e;for(let e of Ct(n))if(!(e in a))throw new X(`E_NOMINAL_INVALID_WIRE`,`[${t}] required field "${e}" missing on the wire at "${i.path}".`);if(n[`x-apigen-instances`]===!1)throw new X(`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.`);let o=St(n),s={};for(let[e,t]of Object.entries(a))s[e]=Tt(t,o[e],{...i,path:`${i.path}/${e}`});if(r){let e=typeof n[`x-apigen-ctor`]==`string`?n[te]:`fromJSON`,t=r[e];return typeof t==`function`?t.call(r,s):new r(s)}return s}}}var Dt=[C,w,T,E,D,j],Ot=Et({id:`ts.NominalSentinel`,schema:{type:`object`,"x-apigen-logical":`nominal`,"x-apigen-codec":`ts.NominalSentinel`}}),kt=xt({id:`ts.UnionSentinel`,schema:{oneOf:[],discriminator:{propertyName:`kind`,mapping:{}},"x-apigen-logical":`union`,"x-apigen-codec":`ts.UnionSentinel`}});function At(){let e=[...Dt.map(e=>[e.id,e]),[Ot.id,Ot],[kt.id,kt]];return Object.freeze(new Map(e))}var jt=Object.freeze({host:`ts`,logicalTypeVersion:re,codecs:At()});function Mt(e,t,n){let r=[n,typeof t?.input?.description==`string`?t.input.description:void 0,we(t?.input)].filter(e=>typeof e==`string`&&e.length>0);return r.length>0?r.join(` β€” `):e}function Nt(e){if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).length===0)return{outputSchema:void 0,wrapped:!1};let t=e;return t.type===`object`?{outputSchema:t,wrapped:!0}:{outputSchema:void 0,wrapped:!1}}function Pt(e,t){if(e)return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}var Ft=4,It=32;function Z(e){return $e(e)?e:e instanceof Error?new U(`internal`,e.message):e}function Lt(e,t){if(e===`serial`||e===`chained`)return 1;let n=t??4;return!Number.isFinite(n)||n<1?1:Math.min(Math.floor(n),32)}function Rt(){}function zt(e,t){if(!e&&!t)return{signal:void 0,dispose:Rt};let n=new AbortController,r=()=>{n.abort(e?.reason)};e&&(e.aborted?n.abort(e.reason):e.addEventListener(`abort`,r,{once:!0}));let i;return t!==void 0&&!n.signal.aborted&&(i=setTimeout(()=>{n.abort(new DOMException(`apigen/invokeBatch: item timed out after ${t}ms`,`TimeoutError`))},t),i.unref?.()),{signal:n.signal,dispose(){e&&e.removeEventListener(`abort`,r),i&&clearTimeout(i)}}}async function Q(e,t,n,r,i,a){let o=zt(r.signal,a);try{let a=await e(t,o.signal?{...r,signal:o.signal}:r,i);if(_t(a)){let e=await gt(a);if(!e.ok){let t=e.carrier;return{index:n,status:`rejected`,reason:Z(t.error),...t.phase===`after-first-chunk`?{chunksDelivered:t.chunksDelivered}:{}}}return{index:n,status:`fulfilled`,chunks:e.chunks}}return{index:n,status:`fulfilled`,value:a}}catch(e){return{index:n,status:`rejected`,reason:Z(e)}}finally{o.dispose()}}async function Bt(e,t,n,r,i={}){let a=i.mode??`parallel`,o=i.onItemError??`continue`,s=Lt(a,i.concurrency),c=Array(n.length),l=e=>({index:e,status:`rejected`,reason:Z(Error(`apigen/invokeBatch: not attempted β€” an earlier item failed and `+(a===`chained`?`mode is "chained"`:`onItemError is "abort"`)))});if(a===`serial`||a===`chained`){let s=!1;for(let u=0;u<n.length;u++){if(s){c[u]=l(u);continue}let d=await Q(e,t,u,n[u],r,i.itemTimeoutMs);c[u]=d,d.status===`rejected`&&(a===`chained`||o===`abort`)&&(s=!0)}return c}let u=0,d=!1,f=Math.max(1,Math.min(s,n.length)),p=Array.from({length:f},async()=>{for(;;){let a=u++;if(a>=n.length)return;if(d){c[a]=l(a);continue}let s=await Q(e,t,a,n[a],r,i.itemTimeoutMs);c[a]=s,s.status===`rejected`&&o===`abort`&&(d=!0)}});return await Promise.all(p),c}function Vt(e){return e.words.join(`-`)}function Ht(e){return e.words.map(Jt).join(``)}function Ut(e){return e.words.join(`_`)}function Wt(e,t={}){let n=[e.namespace,...e.path],r=e.safe||B(e.input)?`GET`:`POST`,i=t.http?.verb?.[e.id]??r,a=`/`+n.map(e=>Vt(e)).join(`/`),o=n.map(e=>Ut(e)).join(`_`),s=n.map(e=>Ut(e)).slice(0,-1).join(`.`),c=Ht(n[n.length-2]??n[0]),l=Ht(n[n.length-1]),u=n.map(e=>Vt(e));return{http:{verb:i,route:a},mcp:{name:o},grpc:{package:s,service:c,method:l},cli:{path:u}}}function Gt(e,t){return`x-${e}-${t}`}function Kt(e,t){return`--${e}-${t}`}function qt(e,t){let n=e=>e.toUpperCase().replace(/-/g,`_`);return e===`adhd`?`APIGEN_${n(t)}`:`APIGEN_${n(e)}_${n(t)}`}function Jt(e){return e.length===0?e:e[0].toUpperCase()+e.slice(1)}function $(e){return e.anyOf??e.oneOf}function Yt(e){if(!e)return!1;if(e.type===`array`||e.type===`object`)return!0;let t=$(e);if(t){let e=t.filter(e=>e.type!==`null`);return e.length>0&&e.every(e=>e.type===`array`||e.type===`object`)}return!1}function Xt(e){if(!e)return!1;if(e.type===`boolean`)return!0;let t=$(e);if(t){let e=t.filter(e=>e.type!==`null`);return e.length>0&&e.every(e=>e.type===`boolean`)}return!1}function Zt(e){if(!e)return!1;if(e.type===`number`||e.type===`integer`)return!0;let t=$(e);if(t){let e=t.filter(e=>e.type!==`null`);return e.length>0&&e.every(e=>e.type===`number`||e.type===`integer`)}return!1}function Qt(e){return e.replace(/[A-Z]/g,e=>`-`+e.toLowerCase())}function $t(e){let t=e.input?.properties?.data;return{props:t?.properties??{},required:t?.required??[]}}function en(e){return typeof e.handler==`function`}function tn(e){let t=e.input?.properties??{},n=e[`x-apigen-envelope`],r=[];for(let e of Object.keys(t)){if(e===`data`)continue;let t=n?.[e]??`adhd`,i=Gt(t,e);r.push({field:e,pluginId:t,httpHeader:i,mcpMetaKey:i,cliFlag:Kt(t,e),envVar:qt(t,e)})}return r}function nn(e,t,n,r){t===n||e.has(t)||e.set(t,{...r,aliasOf:n})}function rn(e,t){let n=new Map,{props:r}=$t(e);for(let[e,t]of Object.entries(r)){let r=`string`;Xt(t)?r=`boolean`:(Yt(t)||Zt(t))&&(r=`json`);let i=Qt(e),a={camelKey:e,kind:`domain`,valueKind:r};n.set(i,a),nn(n,e,i,a)}for(let e of t){let t=e.cliFlag.replace(/^--/,``),r={camelKey:e.field,kind:`envelope`,valueKind:`string`,envVar:e.envVar};n.set(t,r)}return n}function an(e){let{op:t,schema:n,transport:r,projection:i}=e,a=Wt(t,i),o=n?tn(n):[],s=n?rn(n,o):new Map,c=n?qe(n).params:void 0,l={op:t,transport:r,http:a.http,mcp:a.mcp,cli:a.cli,grpc:a.grpc,params:c,envelope:o,cliFlags:s,streaming:t.streaming,isMount:en(t)};if(en(t)){let e=t.handler;l.mountHandler=async t=>e(t)}return l}function on(e){let t=e.usePlugins;return Array.isArray(t)?t:[]}function sn(e){let t=e.exitCode;return typeof t==`function`?t:void 0}function cn(e){let t=e.useOptions;return t&&typeof t==`object`?t:{}}function ln(e){return async function(t,n){let r=Object.assign(t,{data:t.domainArgs});return await e.layer(r,n)}}function un(e,t){let n=[];for(let e of t){let t=e.capabilities?.layer;t&&n.push(ln(t))}return n.push(dt(e)),F(n)}function dn(){let e=new Map;return{get:t=>e.get(t),set:(t,n)=>{e.set(t,n)}}}var fn={input:{type:`object`,properties:{data:{type:`object`,properties:{}}}},output:{}};async function pn(e,t,n,r){let i={...n,operation:{id:e.op.id},ctx:new P,transport:e.transport};if(e.isMount){let a=e.mountHandler;if(!a)throw Error(`apigen-engine-runtime/dispatchForPlan: OpPlan for mount op "${e.op.id}" has isMount=true but no mountHandler`);let o={operation:e.op,data:n.domainArgs,envelope:n.envelope,ctx:dn(),transport:e.transport,signal:n.signal??new AbortController().signal},s={...r,fns:{[e.op.id]:()=>a(o)},schemas:{[e.op.id]:fn}};return t(e.op.id,i,s)}return t(e.op.id,i,r)}exports.BATCH_DEFAULT_CONCURRENCY=Ft,exports.BATCH_MAX_CONCURRENCY=It,exports.EventBus=I,exports.InstanceRegistry=pt,exports.LayerContext=P,exports.UnionCodecError=J,exports.ValidateSchemasToken=ut,exports.WELL_KNOWN_TS_CODECS=Dt,exports.adaptCoreLayer=ln,exports.assertNoSelfSubscription=Be,exports.buildContext=R,exports.buildFnTable=Ze,exports.buildMcpOutputSchema=Nt,exports.buildOpPlan=an,exports.buildToolDescription=Mt,exports.coerceQueryParams=Ye,exports.collectWithPhase=gt,exports.createApiPackage=Ve,exports.createInvoker=F,exports.createLogger=He,exports.createPackageInvoker=un,exports.createStream=mt,exports.createUnionCodec=xt,exports.dataParamNames=Oe,exports.defineMiddleware=Me,exports.describeParams=qe,exports.dispatch=je,exports.dispatchForPlan=pn,exports.drainStream=ht,exports.invokeBatch=Bt,exports.isApiStream=_t,exports.makeValidateLayer=dt,exports.needsEnvelopeField=De,exports.readExitCodeHook=sn,exports.readUseOptions=cn,exports.readUsePlugins=on,exports.tsHostBinding=jt,exports.validateLayer=lt,exports.wireObservers=L,exports.wrapMcpStructuredContent=Pt;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,s)=>(s=n==null?{}:e(i(n)),o(r||!n||!n.__esModule||!a.call(n,`default`)?t(s,`default`,{value:n,enumerable:!0}):s,n));require("node:fs");let c=require("node:module");require("node:path");let l=require("pino");l=s(l);let u=require("ajv");u=s(u);let d=require("ajv-formats");d=s(d);var f=`$apigen`,p=class extends Error{constructor(e){super(e),this.code=`E_DUP_CODEC`,this.name=`CodecRegistryError`}};function m(e){e?.wellKnown;let t=new Map;return{register(e,n){if(t.has(e.id)&&!n?.override)throw new p(`E_DUP_CODEC: a codec is already registered for id "${e.id}"`);t.set(e.id,e)},resolve(e){for(let n of t.values())if(n.matches(e))return n},get(e){return t.get(e)},ids(){return[...t.keys()]},freeze(){let e=new Map(t),n={register(){throw new p(`E_DUP_CODEC: registry is frozen and cannot accept new codecs`)},resolve(t){for(let n of e.values())if(n.matches(t))return n},get(t){return e.get(t)},ids(){return[...e.keys()]},freeze(){return n}};return n}}}var ee=`x-apigen-logical`,h=`x-apigen-codec`,te=`x-apigen-ctor`,ne=`x-apigen-tojson`,re=`0.1.0`;function ie(e,t){return{registry:e,resolve:e=>{throw Error(`[apigen-logical] $ref "${e}" cannot be resolved in run-mode without a descriptor root. Supply a resolve() in the ctx override to handle $ref.`)},seen:new WeakSet,path:``,mode:`strict`,...t}}function g(e,t,n){let r=n.registry.resolve(t);if(r)return r.encode(e,t,n);let i=t.$ref;if(typeof i==`string`)return g(e,n.resolve(i),n);let a=t.oneOf;if(Array.isArray(a))return g(e,ae(e,a,t,n),n);let o=t.type;if(o===`array`){if(!Array.isArray(e))return b(e,t,n);let r=t.items;if(!r)return e.map(e=>C(e));let i=n.path;return Array.isArray(r)?e.map((e,t)=>{let a=r[t];return a===void 0?C(e):g(e,a,{...n,path:`${i}/${t}`})}):e.map((e,t)=>g(e,r,{...n,path:`${i}/${t}`}))}if(o===`object`){if(typeof e!=`object`||!e||Array.isArray(e))return b(e,t,n);let r=t.properties;if(!r)return C(e);let i=n.path,a={};for(let[t,o]of Object.entries(r)){let r=e[t];r!==void 0&&(a[t]=g(r,o,{...n,path:`${i}/${t}`}))}return a}return o==null?b(e,t,n):C(e)}function _(e,t,n){let r=n.registry.resolve(t);if(r)return r.decode(e,t,n);let i=t.$ref;if(typeof i==`string`)return _(e,n.resolve(i),n);let a=t.oneOf;if(Array.isArray(a))return _(e,ae(e,a,t,n),n);let o=t.type;if(o===`array`){if(!Array.isArray(e))return e;let r=t.items;if(!r)return e;let i=n.path;return Array.isArray(r)?e.map((e,t)=>{let a=r[t];return a===void 0?e:_(e,a,{...n,path:`${i}/${t}`})}):e.map((e,t)=>_(e,r,{...n,path:`${i}/${t}`}))}if(o===`object`){if(typeof e!=`object`||!e||Array.isArray(e))return e;let r=t.properties;if(!r)return e;let i=n.path,a={};for(let[t,o]of Object.entries(r)){let r=e[t];r!==void 0&&(a[t]=_(r,o,{...n,path:`${i}/${t}`}))}for(let[t,n]of Object.entries(e))!(t in r)&&n!==void 0&&(a[t]=n);return a}return o==null?S(e,n):e}function ae(e,t,n,r){let i=n.discriminator;if(i?.propertyName){let n=i.propertyName,a=typeof e==`object`&&e?e[n]:void 0;if(typeof a==`string`){if(i.mapping){let e=i.mapping[a];if(e){let n=t.find(t=>t.$ref===e);if(n)return n}}for(let e of t){let t=v(e,r).properties?.[n];if(!t)continue;let i=t.enum;if(t.const===a||Array.isArray(i)&&i.includes(a))return e}}}let a=se(e,t,r);if(a)return a;let o,s=-1;for(let n of t){let t=y(e,v(n,r),r);t!==null&&t>s&&(s=t,o=n)}return o===void 0?t[0]??{}:o}function v(e,t){let n=e.$ref;return typeof n==`string`?t.resolve(n):e}function oe(e){if(`const`in e)return e.const;let t=e.enum;if(Array.isArray(t)&&t.length===1)return t[0]}function se(e,t,n){if(typeof e!=`object`||!e||Array.isArray(e))return;let r=e,i=t.map(e=>v(e,n)),a=new Set;for(let e of i){let t=e.properties;if(t)for(let[e,n]of Object.entries(t))oe(n)!==void 0&&a.add(e)}for(let o of a){let a=i.map(e=>{let t=e.properties?.[o];return t?oe(t):void 0}),s=a.filter(e=>e!==void 0),c=new Set(s);if(s.length<2||c.size!==s.length)continue;let l=r[o];if(l===void 0)continue;let u=a.findIndex(e=>e===l);if(u!==-1&&y(e,i[u],n)!==null)return t[u]}}function ce(e){if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=typeof e;return t===`number`?Number.isInteger(e)?`integer`:`number`:t}function y(e,t,n){let r=t.oneOf;if(Array.isArray(r)){let t=null;for(let i of r){let r=y(e,v(i,n),n);r!==null&&(t===null||r>t)&&(t=r)}return t}let i=t.type,a=ce(e);if(typeof i==`string`){if(!(i===a||i===`number`&&a===`integer`))return null}else if(Array.isArray(i)&&!i.some(e=>e===a||e===`number`&&a===`integer`))return null;if(typeof e!=`object`||!e||Array.isArray(e))return+(typeof i==`string`);let o=e,s=t.required,c=0;if(Array.isArray(s)){for(let e of s)if(typeof e==`string`){if(o[e]===void 0)return null;c+=2}}let l=t.properties;if(l){for(let e of Object.keys(l))o[e]!==void 0&&(c+=1);for(let e of Object.keys(o))l[e]===void 0&&--c}return c}function b(e,t,n){for(let t of n.registry.ids()){let r=n.registry.get(t);if(r?.ownsValue?.(e))return{[f]:t,v:r.encode(e,r.schema,n)}}if(Array.isArray(e))return e.map(e=>b(e,{},n));if(x(e)){let t={};for(let[r,i]of Object.entries(e))i!==void 0&&(t[r]=b(i,{},n));return t}return C(e)}function x(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function S(e,t){if(typeof e==`object`&&e&&!Array.isArray(e)&&`$apigen`in e){let n=e,r=n[f],i=t.registry.get(r);if(i)return i.decode(n.v,i.schema,t)}if(Array.isArray(e))return e.map(e=>S(e,t));if(x(e)){let n={};for(let[r,i]of Object.entries(e))n[r]=S(i,t);return n}return e}function C(e){if(e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(Array.isArray(e))return e.map(C);if(typeof e==`object`){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&(t[n]=C(r));return t}return null}function le(e,t){let n=new Set,r=[e];for(;r.length>0;){let e=r.pop();if(!e||n.has(e))continue;n.add(e);let i=e.$ref;if(typeof i==`string`){if(t){let e=t[i];if(!e){let e=Object.keys(t).join(`, `)||`(none)`;throw Error(`[apigen-logical] $ref "${i}" cannot be resolved. Available $defs: ${e}`)}r.push(e)}continue}let a=e.oneOf;if(Array.isArray(a))for(let e of a)typeof e==`object`&&e&&r.push(e);let o=e.properties;if(o)for(let e of Object.values(o))r.push(e);let s=e.items;if(Array.isArray(s))for(let e of s)typeof e==`object`&&e&&r.push(e);else typeof s==`object`&&s&&r.push(s);let c=e.additionalProperties;typeof c==`object`&&c&&r.push(c);let l=e.propertyNames;typeof l==`object`&&l&&r.push(l)}}function ue(e){return{encode(t,n,r){return g(t,n,ie(e,r))},decode(t,n,r){return _(t,n,ie(e,r))}}}var w={id:`date-time`,kind:`scalar`,schema:{type:`string`,format:`date-time`},matches(e){return e.type===`string`&&e.format===`date-time`},ownsValue(e){return e instanceof Date},encode(e,t,n){return e.toISOString()},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[date-time] expected a string on the wire at "${n.path}", got ${typeof e}`);return new Date(String(e))}if(n.mode===`strict`&&Number.isNaN(new Date(e).getTime()))throw TypeError(`[date-time] invalid date-time string at "${n.path}": ${JSON.stringify(e)}`);return new Date(e)}},T={id:`int64`,kind:`scalar`,schema:{type:`string`,format:`int64`},matches(e){return e.type===`string`&&e.format===`int64`},ownsValue(e){return typeof e==`bigint`},encode(e,t,n){return String(e)},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[int64] expected a string on the wire at "${n.path}", got ${typeof e}`);try{return BigInt(Math.trunc(Number(e)))}catch{return BigInt(0)}}if(n.mode===`strict`)return BigInt(e);if(/^-?\d+$/.test(e))try{return BigInt(e)}catch{return BigInt(0)}return BigInt(0)}};function de(e){return e}var E={id:`decimal`,kind:`scalar`,schema:{type:`string`,format:`decimal`},matches(e){return e.type===`string`&&e.format===`decimal`},encode(e,t,n){return e},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[decimal] expected a string on the wire at "${n.path}", got ${typeof e}`);return de(String(e))}if(n.mode===`strict`&&!/^-?\d+(\.\d+)?$/.test(e))throw TypeError(`[decimal] wire value "${e}" at "${n.path}" is not a valid decimal string`);return de(e)}},D={id:`byte`,kind:`scalar`,schema:{type:`string`,format:`byte`},matches(e){return e.type===`string`&&e.format===`byte`},ownsValue(e){return e instanceof Uint8Array},encode(e,t,n){return Buffer.from(e).toString(`base64`)},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[byte] expected a base64 string on the wire at "${n.path}", got ${typeof e}`);return new Uint8Array}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}"`);return new Uint8Array(Buffer.from(e,`base64`))}},fe=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,O={id:`uuid`,kind:`scalar`,schema:{type:`string`,format:`uuid`},matches(e){return e.type===`string`&&e.format===`uuid`},encode(e,t,n){return e.toLowerCase()},decode(e,t,n){if(typeof e!=`string`){if(n.mode===`strict`)throw TypeError(`[uuid] expected a string on the wire at "${n.path}", got ${typeof e}`);return String(e).toLowerCase()}if(n.mode===`strict`&&!fe.test(e))throw TypeError(`[uuid] wire value "${e}" at "${n.path}" is not a lowercase-hyphenated RFC 4122 UUID`);return e}},k=`NaN`,A=`Infinity`,j=`-Infinity`,pe=new Set([k,A,j]),M={id:`number-special`,kind:`scalar`,schema:{type:`number`},matches(e){return e.type===`number`&&e.format===void 0},ownsValue(e){return typeof e==`number`&&!Number.isFinite(e)},encode(e,t,n){return Number.isNaN(e)?k:e===1/0?A:e===-1/0?j:e},decode(e,t,n){if(typeof e==`number`)return e;if(typeof e==`string`){if(e===k)return NaN;if(e===A)return 1/0;if(e===j)return-1/0;let t=Number(e);if(!Number.isNaN(t))return t}if(n.mode===`strict`)throw TypeError(`[number-special] unrecognized wire value at "${n.path}": ${JSON.stringify(e)}. Expected a number or one of ${[...pe].join(`, `)}.`);return NaN}},me=[w,T,E,D,O,M];function he(e,t={}){for(let n of me)e.register(n,{override:t.override??!1})}var ge=12;function _e(e,t){let n=/^#\/(definitions|\$defs)\/(.+)$/.exec(e);if(!n)return;let[,r,i]=n;return(r===`$defs`?t.$defs:t.definitions)?.[decodeURIComponent(i)]}function ve(e){return Array.isArray(e)&&e.length>0?e[0]:void 0}function ye(e){if(Array.isArray(e.type))return e.type.find(e=>e!==`null`)??e.type[0];if(typeof e.type==`string`)return e.type;if(e.properties)return`object`}function be(e){switch(e.format){case`date-time`:return`1970-01-01T00:00:00.000Z`;case`date`:return`1970-01-01`;case`time`:return`00:00:00Z`;case`uuid`:return`00000000-0000-0000-0000-000000000000`;case`email`:return`user@example.com`;case`uri`:case`url`:case`uri-reference`:return`https://example.com`;case`hostname`:return`example.com`;case`ipv4`:return`127.0.0.1`;case`ipv6`:return`::1`;case`decimal`:return`0`;case`int64`:return`0`;case`byte`:return``;default:return`<string>`}}function xe(e,t,n){let r=e.properties??{},i=e.required??[],a={};for(let e of i){let i=r[e];a[e]=i===void 0?`<${e}>`:N(i,t,n+1)}return a}function Se(e,t,n){let r=Array.isArray(e.items)?e.items[0]:e.items;return r?[N(r,t,n+1)]:[]}function N(e,t=e??{},n=0){if(!e||n>ge)return null;if(typeof e.$ref==`string`){let r=_e(e.$ref,t);return r===void 0?null:N(r,t,n+1)}if(e.const!==void 0)return e.const;if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0];if(Array.isArray(e.allOf)&&e.allOf.length>0){let r={},i=[];for(let t of e.allOf){Object.assign(r,t.properties??{});for(let e of t.required??[])i.includes(e)||i.push(e)}return xe({...e,properties:r,required:i},t,n)}let r=ve(e.oneOf)??ve(e.anyOf);if(r)return N(r,t,n+1);switch(ye(e)){case`object`:return xe(e,t,n);case`array`:return Se(e,t,n);case`string`:return be(e);case`integer`:case`number`:return 0;case`boolean`:return!1;case`null`:return null;default:return null}}function Ce(e){if(!e)return;let t=N(e);return`Example: ${JSON.stringify(t)}`}w.id,T.id,E.id,D.id,O.id,M.id,Object.freeze({typescript:{"date-time":{encode:`$.toISOString()`,decode:`new Date($)`,mode:`native`},int64:{encode:`String($)`,decode:`BigInt($)`,mode:`native`},decimal:{encode:`$.toString()`,decode:`new Decimal($)`,imports:[],dep:{name:`decimal.js`,version:`^10`},mode:`branded`},byte:{encode:`Buffer.from($).toString('base64')`,decode:`new Uint8Array(Buffer.from($, 'base64'))`,mode:`native`},uuid:{encode:`$.toLowerCase()`,decode:`$`,mode:`native`},"number-special":{encode:`numToWire($)`,decode:`wireToNum($)`,mode:`native`}},python:{"date-time":{encode:`$.isoformat()`,decode:`datetime.fromisoformat($)`,imports:[`from datetime import datetime`],mode:`native`},int64:{encode:`str($)`,decode:`int($)`,mode:`native`},decimal:{encode:`str($)`,decode:`Decimal($)`,imports:[`from decimal import Decimal`],mode:`native`},byte:{encode:`b64encode($).decode()`,decode:`b64decode($)`,imports:[`from base64 import b64encode, b64decode`],mode:`native`},uuid:{encode:`str($)`,decode:`UUID($)`,imports:[`from uuid import UUID`],mode:`native`},"number-special":{encode:`num_to_wire($)`,decode:`wire_to_num($)`,mode:`native`}},rust:{"date-time":{encode:`__SCAFFOLD_RUST_DATETIME_ENCODE__`,decode:`__SCAFFOLD_RUST_DATETIME_DECODE__`,imports:[`use chrono::{DateTime, Utc};`],dep:{name:`chrono`,version:`^0.4`},mode:`lib`},int64:{encode:`__SCAFFOLD_RUST_INT64_ENCODE__`,decode:`__SCAFFOLD_RUST_INT64_DECODE__`,imports:[`use serde_with::DisplayFromStr;`],dep:{name:`serde_with`,version:`^3`},mode:`lib`},decimal:{encode:`__SCAFFOLD_RUST_DECIMAL_ENCODE__`,decode:`__SCAFFOLD_RUST_DECIMAL_DECODE__`,imports:[`use rust_decimal::Decimal;`],dep:{name:`rust_decimal`,version:`^1`},mode:`lib`},byte:{encode:`__SCAFFOLD_RUST_BYTE_ENCODE__`,decode:`__SCAFFOLD_RUST_BYTE_DECODE__`,imports:[`use serde_with::base64::Base64;`],dep:{name:`serde_with`,version:`^3`},mode:`lib`},uuid:{encode:`__SCAFFOLD_RUST_UUID_ENCODE__`,decode:`__SCAFFOLD_RUST_UUID_DECODE__`,imports:[`use uuid::Uuid;`],dep:{name:`uuid`,version:`^1`},mode:`lib`},"number-special":{encode:`__SCAFFOLD_RUST_NUMSPECIAL_ENCODE__`,decode:`__SCAFFOLD_RUST_NUMSPECIAL_DECODE__`,mode:`native`}},go:{"date-time":{encode:`__SCAFFOLD_GO_DATETIME_ENCODE__`,decode:`__SCAFFOLD_GO_DATETIME_DECODE__`,imports:[`"time"`],mode:`native`},int64:{encode:`__SCAFFOLD_GO_INT64_ENCODE__`,decode:`__SCAFFOLD_GO_INT64_DECODE__`,imports:[`"strconv"`],mode:`native`},decimal:{encode:`__SCAFFOLD_GO_DECIMAL_ENCODE__`,decode:`__SCAFFOLD_GO_DECIMAL_DECODE__`,imports:[`"github.com/shopspring/decimal"`],dep:{name:`github.com/shopspring/decimal`,version:`v1`},mode:`lib`},byte:{encode:`__SCAFFOLD_GO_BYTE_ENCODE__`,decode:`__SCAFFOLD_GO_BYTE_DECODE__`,imports:[`"encoding/base64"`],mode:`native`},uuid:{encode:`__SCAFFOLD_GO_UUID_ENCODE__`,decode:`__SCAFFOLD_GO_UUID_DECODE__`,imports:[`"github.com/google/uuid"`],dep:{name:`github.com/google/uuid`,version:`v1`},mode:`lib`},"number-special":{encode:`__SCAFFOLD_GO_NUMSPECIAL_ENCODE__`,decode:`__SCAFFOLD_GO_NUMSPECIAL_DECODE__`,mode:`native`}},java:{"date-time":{encode:`$.toString()`,decode:`Instant.parse($)`,imports:[`import java.time.Instant;`],dep:{name:`jackson-datatype-jsr310`,version:`2.x`},mode:`lib`},int64:{encode:`@JsonFormat(shape = JsonFormat.Shape.STRING)`,decode:`@JsonFormat(shape = JsonFormat.Shape.STRING)`,imports:[`import com.fasterxml.jackson.annotation.JsonFormat;`],mode:`native`},decimal:{encode:`@JsonSerialize(using = ToStringSerializer.class)`,decode:`new BigDecimal($)`,imports:[`import java.math.BigDecimal;`,`import com.fasterxml.jackson.databind.annotation.JsonSerialize;`,`import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;`],mode:`native`},byte:{encode:`$`,decode:`$`,mode:`native`},uuid:{encode:`$.toString()`,decode:`UUID.fromString($)`,imports:[`import java.util.UUID;`],mode:`native`},"number-special":{encode:`@JsonSerialize(using = NumberSpecialSerializer.class)`,decode:`@JsonDeserialize(using = NumberSpecialDeserializer.class)`,imports:[`import com.fasterxml.jackson.databind.annotation.JsonSerialize;`,`import com.fasterxml.jackson.databind.annotation.JsonDeserialize;`],mode:`native`}}});var we=m();he(we);var Te=ue(we.freeze());function Ee(e,t){return t in(e.input?.properties??{})}function De(e){let t=e.input?.properties?.data;return Object.keys(t?.properties??{})}function Oe(e,t){let n=e.input?.properties?.data?.properties?.[t];return n===void 0?void 0:n}function ke(e,t){return t===void 0||e===void 0?e:Te.decode(e,t)}function P(e,t){let n=t.output;return!n||Object.keys(n).length===0?e:Te.encode(e,n)}async function Ae(e,t,n,r,i,a){let o=De(n).map(e=>ke(a[e],Oe(n,e)));if(Ee(n,`session`)&&t){let a=await t({session:i.session});return P(await e[r](a,...o),n)}if(n.hasCtx){let a=t?await t(i):void 0;return P(await e[r](a,...o),n)}return P(await e[r](...o),n)}var je=class{constructor(){this._map=new Map}set(e,t){this._map.set(e,t)}get(e){return this._map.get(e)}has(e){return this._map.has(e)}};function Me(e=[]){return async function(t,n,r){let i=r.schemas[t];if(!i)throw Error(`apigen/invoke: no schema found for operation "${t}"`);return e.reduceRight((e,t)=>()=>t(n,e),()=>Ae(r.fns,r.createClient,i,t,n.envelope,n.domainArgs))()}}function Ne(e){return e}var F=class{constructor(){this.handlers=new Map}on(e,t){let n=this.handlers.get(e)??[];return this.handlers.set(e,[...n,t]),()=>this.off(e,t)}off(e,t){let n=this.handlers.get(e);if(!n)return;let r=n.filter(e=>e!==t);r.length===0?this.handlers.delete(e):this.handlers.set(e,r)}clear(){this.handlers.clear()}async emit(e){for(let[t,n]of this.handlers)if(Pe(t,e))for(let t of n)await t(e)}};function Pe(e,t){let[n,r,i]=e.split(`:`);return!(n!==`*`&&n!==t.module||r&&r!==`*`&&r!==t.method||i&&i!==`*`&&i!==t.lifecycle)}function I(e,t){for(let n of e)if(n.eventMapping)for(let[e,r]of Object.entries(n.eventMapping))t.on(e,r)}async function L(e,t,n){let r={...t};for(let t of e)if(t.createContext){await n.emit({module:t.id,method:`createContext`,lifecycle:`start`,ctx:r});try{let e=await t.createContext(r);r={...r,...e},await n.emit({module:t.id,method:`createContext`,lifecycle:`complete`,ctx:r})}catch(e){throw await n.emit({module:t.id,method:`createContext`,lifecycle:`error`,ctx:r,error:e}),e}}return r}(0,c.createRequire)(require("node:url").pathToFileURL(__filename).href);var R=new Set([`string`,`number`,`boolean`,`integer`]);function Fe(e){if(!Array.isArray(e)||e.length<2)return!1;let t=0;for(let n of e){if(typeof n!=`object`||!n)return!1;let{type:e,$ref:r,oneOf:i,anyOf:a,allOf:o}=n;if(r!==void 0||i||a||o)return!1;if(e!==`null`){if(typeof e==`string`&&R.has(e)){t++;continue}return!1}}return t===1}function Ie(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.$ref!==void 0||t.allOf)return!1;if(t.oneOf||t.anyOf)return Fe(t.oneOf??t.anyOf);let{type:n}=t;return typeof n==`string`?R.has(n):Array.isArray(n)?n.every(e=>R.has(e)||e===`null`):Array.isArray(t.enum)&&t.enum.length>0?t.enum.every(e=>[`string`,`number`,`boolean`].includes(typeof e)):!1}function z(e){if(!e||typeof e!=`object`)return!1;let t=e.properties;return t===void 0||typeof t!=`object`||!t?!1:Object.values(t).every(Ie)}function Le(e){let t={},n=e=>{for(let n of[`definitions`,`$defs`]){let r=e[n];if(r)for(let[e,i]of Object.entries(r)){let r=e.startsWith(`#/`)?e:`#/${n}/${e}`;t[r]=i}}};for(let t of Object.values(e.schemas))n(t.input),n(t.output);if(Object.keys(t).length!==0)for(let[n,r]of Object.entries(e.schemas))try{le(r.input,t),le(r.output,t)}catch(e){throw Error(`[apigen-core-client] Schema validation failed for function "${n}": ${e.message}`)}}function Re(e,t){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).`)];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(` `)}function ze(e,t,n){Le(e);let r={};for(let[i,a]of Object.entries(e.schemas)){let e=n?.[i]??{},o=a.input.properties??{},s=a.input.required??[],c={},l=[],u={};for(let n of t)if(n.envelope&&e[n.id]!==!1)for(let[e,t]of Object.entries(n.envelope))c[e]=t,u[e]=n.id,l.includes(e)||l.push(e);let d={type:`object`,properties:o,additionalProperties:!1,...s.length>0?{required:s}:{}},f=a.safe===!0||z(a.input),p=a.input.definitions,m=a.input.$defs;r[i]={input:{type:`object`,properties:{...c,data:d},required:[...l,...s.length>0?[`data`]:[]],additionalProperties:!1,description:Re(Object.keys(c),Object.keys(o).length>0),...p?{definitions:p}:{},...m?{$defs:m}:{}},output:a.output,...a.hasCtx?{hasCtx:!0}:{},"x-apigen-safe":f,...Object.keys(u).length>0?{"x-apigen-envelope":u}:{}}}return r}var Be={"decimal.js":`Decimal`};function Ve(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}Object.entries(Be).map(([e,t])=>({pattern:RegExp(`import\\(["'][^"']*${Ve(e)}[^"']*["']\\)\\.\\w+`,`g`),key:t}));var B=class extends Error{constructor(e){super(e),this.name=`ConfigurationError`}};function He(e){for(let t of e)for(let e of Object.keys(t.eventMapping??{})){let[n]=e.split(`:`);if(n!==`*`&&n===t.id)throw new B(`Middleware "${t.id}" subscribes to its own events via "${e}". This would cause infinite recursion.`)}}function Ue(e){let{domainSchemas:t,middlewares:n,overrides:r={},strict:i=!1}=e;He(n);for(let e of Object.keys(r))if(!(e in t.schemas)){let t=`Override key "${e}" not found in domain schemas.`;if(i)throw new B(t);console.warn(`[apigen-runtime]`,t)}let a=new Set(n.map(e=>e.id));for(let[e,t]of Object.entries(r))for(let n of Object.keys(t??{}))if(!a.has(n)){let t=`Override key "${e}.${n}" does not match any declared middleware id.`;if(i)throw new B(t);console.warn(`[apigen-runtime]`,t)}let o=ze(t,n,r),s=new F;return I(n,s),{schemas:o,createClient:async e=>L(n,e,s),dispose:()=>s.clear()}}function We(e={}){let t=e.level??`info`,n=typeof e.destination==`string`&&e.destination.length>0,r=!n&&!!process.stderr.isTTY,i=e.format??(r?`pretty`:`json`),a={level:t};if(i===`pretty`)return a.transport={target:`pino-pretty`,options:{colorize:!n,translateTime:`SYS:HH:MM:ss.l`,ignore:`pid,hostname`,...n?{destination:e.destination,mkdir:!0}:{destination:2}}},(0,l.default)(a);let o=n?l.default.destination({dest:e.destination,mkdir:!0,sync:!0}):l.default.destination(2);return(0,l.default)(a,o)}function Ge(e){if(e?.type!==`object`||!e.properties)return;let t=Object.entries(e.properties);if(t.length===0)return;let n=new Set(e.required??[]);return`{ ${t.map(([e,t])=>`${e}${n.has(e)?``:`?`}: ${V(t)}`).join(`, `)} }`}function Ke(e){return typeof e==`string`?`'${e}'`:JSON.stringify(e)}function qe(e){let t=e.enum??[];return t.length===0?`unknown`:t.map(Ke).join(`|`)}function Je(e,t){return e.map(e=>V(e,t)).join(` | `)}function V(e,t=0){if(!e)return`unknown`;if(e.type===`array`)return`${V(e.items,0)}[]`;if(e.enum)return qe(e);if(e.$ref)return String(e.$ref).split(`/`).pop()||`object`;let n=e.anyOf??e.oneOf;return n?n.length===0?`unknown`:t>=2?Je(n,t-1):`union`:t>=1&&e.type===`object`?Ge(e)??`object`:e.type??`object`}function Ye(e){let t=(e?.input??{}).properties?.data,n=t?.properties??{},r=new Set(t?.required??[]),i=Object.entries(n).map(([e,t])=>({name:e,type:V(t,2),required:r.has(e)}));return{params:i,text:i.map(e=>`${e.name}${e.required?``:`?`}: ${e.type}`).join(`, `)}}function Xe(e){let t;return t=Array.isArray(e)?e:e?[e]:[],t.find(e=>e===`number`||e===`integer`||e===`boolean`)}function Ze(e,t){let n=(t?.input??{}).properties?.data?.properties??{},r={...e};for(let[e,t]of Object.entries(n)){let n=r[e];if(typeof n!=`string`)continue;let i=Xe(t?.type);if(i===`number`||i===`integer`){let t=Number(n);!Number.isNaN(t)&&n.trim()!==``&&(r[e]=t)}else i===`boolean`&&(n===`true`?r[e]=!0:n===`false`&&(r[e]=!1))}return r}var Qe=new Set([`default`,`module.exports`,`__esModule`]);function $e(e){let t={},n=(e,r)=>{for(let[i,a]of Object.entries(e))if(typeof a==`function`){!Qe.has(i)&&!(i in t)&&(t[i]=a);let e=a.name;e&&!(e in t)&&(t[e]=a)}else a&&typeof a==`object`&&r<2&&Qe.has(i)&&n(a,r+1)};return n(e,0),t}var et=[`invalid_argument`,`unauthenticated`,`permission_denied`,`not_found`,`internal`],H=class extends Error{constructor(e,t,n){super(t),this.name=`ApiError`,this.code=e,this.details=n,Object.setPrototypeOf(this,new.target.prototype)}toJSON(){let e={code:this.code,message:this.message};return this.details!==void 0&&(e.details=this.details),e}};function tt(e){return typeof e==`object`&&!!e&&e.name===`ApiError`&&et.includes(e.code)&&typeof e.toJSON==`function`}function nt(e,t,n=0){return e===`before-first-chunk`?{phase:e,error:t}:{phase:e,error:t,chunksDelivered:n}}var U=new u.default({allErrors:!0,verbose:!0});(0,d.default)(U);for(let e of[ee,h,te,ne,`discriminator`])U.addKeyword({keyword:e,valid:!0});U.addFormat(`decimal`,/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/);function rt(e){return e?e.replace(/^\//,``).split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`)).join(`.`):`(root)`}function it(e){let t=e?.properties;return t?Object.keys(t):[]}function at(e,t){let n=e.length,r=t.length;if(n===0)return r;if(r===0)return n;let i=Array.from({length:r+1},(e,t)=>t);for(let a=1;a<=n;a++){let n=[a];for(let o=1;o<=r;o++){let r=e[a-1]===t[o-1]?0:1;n[o]=Math.min(i[o]+1,n[o-1]+1,i[o-1]+r)}i=n}return i[r]}function ot(e,t){let n,r=1/0;for(let i of t){let t=at(e.toLowerCase(),i.toLowerCase());t<r&&(r=t,n=i)}let i=Math.max(2,Math.floor(e.length/3));return n!==void 0&&r<=i?n:void 0}function st(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function ct(e){let t=rt(e.instancePath),n=e.params??{};switch(e.keyword){case`additionalProperties`:{let r=String(n.additionalProperty??`?`),i=it(e.parentSchema),a=ot(r,i);return`unknown key '${r}' at ${t}${i.length?`; allowed keys: ${i.join(`, `)}`:``}${a?` (did you mean '${a}'?)`:``}`}case`required`:{let r=String(n.missingProperty??`?`),i=it(e.parentSchema);return`missing required key '${r}' at ${t}${i.length?`; allowed keys: ${i.join(`, `)}`:``}`}case`enum`:{let r=Array.isArray(n.allowedValues)?n.allowedValues:[],i=e.data;return`value ${JSON.stringify(i)} at ${t} is not one of: ${r.map(e=>JSON.stringify(e)).join(`, `)}`}case`type`:{let r=e.data;return`${t} must be ${String(n.type)} (got ${st(r)})`}default:return`${t} ${e.message??`failed schema check`}`}}var W=12;function lt(e){let t=e.slice(0,W).map(ct);return e.length>W&&t.push(`…and ${e.length-W} more`),t.join(`; `)}function G(e){return e===null?!1:Array.isArray(e)?e.some(G):typeof e!=`object`||Object.values(e).some(G)}function ut(e,t){let n=[`Validation failed: ${lt(e)}`],r=N(t);return G(r)&&n.push(`Example: ${JSON.stringify(r)}`),n.join(` β€” `)}var dt=async(e,t)=>{let n=e.ctx.get(ft);if(n===void 0)return t();let r=n[e.operation.id];if(r===void 0)return t();let i={data:e.domainArgs,...e.envelope},a=U.compile(r.input);if(!a(i)){let e=a.errors??[];throw new H(`invalid_argument`,ut(e,r.input),e)}return t()},ft=Symbol(`ValidateSchemasToken`);function pt(e){return async function(t,n){let r=e[t.operation.id];if(r===void 0)return n();let i={data:t.domainArgs,...t.envelope},a=U.compile(r.input);if(!a(i)){let e=a.errors??[];throw new H(`invalid_argument`,ut(e,r.input),e)}return n()}}function mt(){return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e===`x`?t:t&3|8).toString(16)})}var ht=class{constructor(e={}){this._store=new Map,this._sweeper=null,this._defaultTtlMs=e.defaultTtlMs;let t=null;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?.())}create(e,t=[],n){let r=new e(...t),i=mt(),a=n??this._defaultTtlMs,o=a===void 0?null:Date.now()+a;return this._store.set(i,{instance:r,expiresAt:o}),{instanceId:i}}get(e){let t=this._store.get(e);if(!t)throw Error(`[instance-registry] Unknown instanceId: "${e}"`);if(t.expiresAt!==null&&Date.now()>t.expiresAt)throw this._evict(e,t),Error(`[instance-registry] Instance "${e}" has expired`);return t.instance}async dispatch(e,t,n=[]){let r=this.get(e),i=r[t];if(typeof i!=`function`)throw Error(`[instance-registry] Method "${t}" not found on instance "${e}"`);return i.call(r,...n)}async dispose(e){let t=this._store.get(e);t&&(this._store.delete(e),await K(t.instance))}async disposeAll(){this._sweeper!==null&&(clearInterval(this._sweeper),this._sweeper=null);let e=[...this._store.entries()];this._store.clear(),await Promise.all(e.map(([,e])=>K(e.instance)))}get size(){return this._store.size}_sweep(){let e=Date.now();for(let[t,n]of this._store)n.expiresAt!==null&&e>n.expiresAt&&this._evict(t,n)}_evict(e,t){this._store.delete(e),K(t.instance)}};async function K(e){if(typeof e==`object`&&e&&`dispose`in e){let t=e.dispose;typeof t==`function`&&await t.call(e)}}function gt(e){let{produce:t,signal:n}=e,r=n??new AbortController().signal;return{[Symbol.asyncIterator](){let e=t(r);return{async next(){return r.aborted?(await e.return(void 0),{done:!0,value:void 0}):e.next()},async return(t){return await e.return(t),{done:!0,value:void 0}},async throw(t){return await e.throw(t),{done:!0,value:void 0}}}}}}async function _t(e){let t=[];for await(let n of e)t.push(n);return t}async function vt(e){let t=[];try{for await(let n of e)t.push(n);return{ok:!0,chunks:t}}catch(e){let n=tt(e)?e:new H(`internal`,e instanceof Error?e.message:String(e));return t.length===0?{ok:!1,carrier:nt(`before-first-chunk`,n)}:{ok:!1,carrier:nt(`after-first-chunk`,n,t.length)}}}function yt(e){return typeof e==`object`&&!!e&&Symbol.asyncIterator in e}var q=class extends Error{constructor(e,t){super(t),this.name=`UnionCodecError`,this.code=e}};function J(e){let t=e.discriminator;if(typeof t!=`object`||!t||Array.isArray(t))return;let n=t;if(typeof n.propertyName!=`string`)return;let r=n.mapping;if(typeof r==`object`&&r&&!Array.isArray(r))return{propertyName:n.propertyName,mapping:r}}function bt(e,t){let n=e[h];if(typeof n==`string`){let e=t.registry.get(n);if(e)return e}return t.registry.resolve(e)}function xt(e,t,n){let r=bt(t,n);return r?r.encode(e,t,n):e}function St(e,t,n){let r=bt(t,n);return r?r.decode(e,t,n):e}function Ct(e){let{id:t,schema:n}=e;return{id:t,kind:`union`,schema:n,matches(e){if(e[`x-apigen-logical`]===`union`)return!0;let t=e.oneOf;return!Array.isArray(t)||t.length===0?!1:J(e)!==void 0},encode(e,n,r){let i=J(n);if(!i)throw new q(`E_UNION_NO_DISCRIMINATOR`,`[${t}] schema node at "${r.path}" has no discriminator.propertyName; cannot dispatch union branch.`);let{propertyName:a,mapping:o}=i,s=e[a];if(s==null)throw new q(`E_UNION_NO_DISCRIMINATOR`,`[${t}] value at "${r.path}" is missing the discriminator property "${a}".`);let c=String(s),l=o[c];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(`, `)}).`);return xt(e,r.resolve(l),{...r,path:`${r.path}[${c}]`})},decode(e,n,r){if(typeof e!=`object`||!e||Array.isArray(e)){let n;throw n=e===null?`null`:Array.isArray(e)?`array`:typeof e,new q(`E_UNION_INVALID_WIRE`,`[${t}] expected a JSON object on the wire at "${r.path}", got ${n}.`)}let i=e,a=J(n);if(!a)throw new q(`E_UNION_NO_DISCRIMINATOR`,`[${t}] schema node at "${r.path}" has no discriminator.propertyName; cannot dispatch union branch.`);let{propertyName:o,mapping:s}=a,c=i[o];if(c==null)throw new q(`E_UNION_NO_DISCRIMINATOR`,`[${t}] wire object at "${r.path}" is missing the discriminator property "${o}".`);let l=String(c),u=s[l];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(`, `)}).`);return St(e,r.resolve(u),{...r,path:`${r.path}[${l}]`})}}}var Y=class extends Error{constructor(e,t){super(t),this.name=`NominalCodecError`,this.code=e}};function wt(e){let t=e.properties;return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}function Tt(e){let t=e.required;return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}function Et(e,t,n){if(t){let r=n.registry.resolve(t);if(r)return r.encode(e,t,n)}return e}function Dt(e,t,n){if(t){let r=n.registry.resolve(t);if(r)return r.decode(e,t,n)}return e}function Ot(e){let{id:t,schema:n,ctor:r}=e;return{id:t,kind:`nominal`,schema:n,matches(e){return e[`x-apigen-logical`]===`nominal`||e[h]===t},encode(e,n,r){if(typeof e!=`object`||!e)return e;if(r.seen.has(e)){if(r.mode===`strict`)throw new Y(`E_NOMINAL_CYCLE`,`[${t}] cycle detected at "${r.path}": a nominal instance references itself. Strict mode rejects cycles (DESIGN Β§8.3); break the cycle or use 'lossy' mode.`);return null}r.seen.add(e);try{let t=wt(n),i=e[typeof n[`x-apigen-tojson`]==`string`?n[ne]:`toJSON`];if(typeof i==`function`){let n=i.call(e);if(typeof n==`object`&&n&&!Array.isArray(n)){let e={};for(let[i,a]of Object.entries(n))e[i]=Et(a,t[i],{...r,path:`${r.path}/${i}`});return e}return n}let a={},o=Object.keys(t),s=e,c=o.length>0?o:Object.keys(s);for(let e of c){let n=s[e];n!==void 0&&(a[e]=Et(n,t[e],{...r,path:`${r.path}/${e}`}))}return a}finally{r.seen.delete(e)}},decode(e,n,i){if(typeof e!=`object`||!e||Array.isArray(e)){let n;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}.`)}let a=e;for(let e of Tt(n))if(!(e in a))throw new Y(`E_NOMINAL_INVALID_WIRE`,`[${t}] required field "${e}" missing on the wire at "${i.path}".`);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.`);let o=wt(n),s={};for(let[e,t]of Object.entries(a))s[e]=Dt(t,o[e],{...i,path:`${i.path}/${e}`});if(r){let e=typeof n[`x-apigen-ctor`]==`string`?n[te]:`fromJSON`,t=r[e];return typeof t==`function`?t.call(r,s):new r(s)}return s}}}var kt=[w,T,E,D,O,M],At=Ot({id:`ts.NominalSentinel`,schema:{type:`object`,"x-apigen-logical":`nominal`,"x-apigen-codec":`ts.NominalSentinel`}}),jt=Ct({id:`ts.UnionSentinel`,schema:{oneOf:[],discriminator:{propertyName:`kind`,mapping:{}},"x-apigen-logical":`union`,"x-apigen-codec":`ts.UnionSentinel`}});function Mt(){let e=[...kt.map(e=>[e.id,e]),[At.id,At],[jt.id,jt]];return Object.freeze(new Map(e))}var Nt=Object.freeze({host:`ts`,logicalTypeVersion:re,codecs:Mt()});function Pt(e,t,n){let r=[n,typeof t?.input?.description==`string`?t.input.description:void 0,Ce(t?.input)].filter(e=>typeof e==`string`&&e.length>0);return r.length>0?r.join(` β€” `):e}function Ft(e){if(!e||typeof e!=`object`||Array.isArray(e)||Object.keys(e).length===0)return{outputSchema:void 0,wrapped:!1};let t=e;return t.type===`object`?{outputSchema:t,wrapped:!0}:{outputSchema:void 0,wrapped:!1}}function It(e,t){if(e)return t&&typeof t==`object`&&!Array.isArray(t)?t:void 0}var Lt=4,Rt=32;function X(e){return tt(e)?e:e instanceof Error?new H(`internal`,e.message):e}function zt(e,t){if(e===`serial`||e===`chained`)return 1;let n=t??4;return!Number.isFinite(n)||n<1?1:Math.min(Math.floor(n),32)}function Bt(){}function Vt(e,t){if(!e&&!t)return{signal:void 0,dispose:Bt};let n=new AbortController,r=()=>{n.abort(e?.reason)};e&&(e.aborted?n.abort(e.reason):e.addEventListener(`abort`,r,{once:!0}));let i;return t!==void 0&&!n.signal.aborted&&(i=setTimeout(()=>{n.abort(new DOMException(`apigen/invokeBatch: item timed out after ${t}ms`,`TimeoutError`))},t),i.unref?.()),{signal:n.signal,dispose(){e&&e.removeEventListener(`abort`,r),i&&clearTimeout(i)}}}async function Z(e,t,n,r,i,a){let o=Vt(r.signal,a);try{let a=await e(t,o.signal?{...r,signal:o.signal}:r,i);if(yt(a)){let e=await vt(a);if(!e.ok){let t=e.carrier;return{index:n,status:`rejected`,reason:X(t.error),...t.phase===`after-first-chunk`?{chunksDelivered:t.chunksDelivered}:{}}}return{index:n,status:`fulfilled`,chunks:e.chunks}}return{index:n,status:`fulfilled`,value:a}}catch(e){return{index:n,status:`rejected`,reason:X(e)}}finally{o.dispose()}}async function Ht(e,t,n,r,i={}){let a=i.mode??`parallel`,o=i.onItemError??`continue`,s=zt(a,i.concurrency),c=Array(n.length),l=e=>({index:e,status:`rejected`,reason:X(Error(`apigen/invokeBatch: not attempted β€” an earlier item failed and `+(a===`chained`?`mode is "chained"`:`onItemError is "abort"`)))});if(a===`serial`||a===`chained`){let s=!1;for(let u=0;u<n.length;u++){if(s){c[u]=l(u);continue}let d=await Z(e,t,u,n[u],r,i.itemTimeoutMs);c[u]=d,d.status===`rejected`&&(a===`chained`||o===`abort`)&&(s=!0)}return c}let u=0,d=!1,f=Math.max(1,Math.min(s,n.length)),p=Array.from({length:f},async()=>{for(;;){let a=u++;if(a>=n.length)return;if(d){c[a]=l(a);continue}let s=await Z(e,t,a,n[a],r,i.itemTimeoutMs);c[a]=s,s.status===`rejected`&&o===`abort`&&(d=!0)}});return await Promise.all(p),c}function Ut(e){return e.words.join(`-`)}function Wt(e){return e.words.map(Xt).join(``)}function Gt(e){return e.words.join(`_`)}function Kt(e,t={}){let n=[e.namespace,...e.path],r=e.safe||z(e.input)?`GET`:`POST`,i=t.http?.verb?.[e.id]??r,a=`/`+n.map(e=>Ut(e)).join(`/`),o=n.map(e=>Gt(e)).join(`_`),s=n.map(e=>Gt(e)).slice(0,-1).join(`.`),c=Wt(n[n.length-2]??n[0]),l=Wt(n[n.length-1]),u=n.map(e=>Ut(e));return{http:{verb:i,route:a},mcp:{name:o},grpc:{package:s,service:c,method:l},cli:{path:u}}}function qt(e,t){return`x-${e}-${t}`}function Jt(e,t){return`--${e}-${t}`}function Yt(e,t){let n=e=>e.toUpperCase().replace(/-/g,`_`);return e===`adhd`?`APIGEN_${n(t)}`:`APIGEN_${n(e)}_${n(t)}`}function Xt(e){return e.length===0?e:e[0].toUpperCase()+e.slice(1)}function Q(e){return e.anyOf??e.oneOf}function Zt(e){if(!e)return!1;if(e.type===`array`||e.type===`object`)return!0;let t=Q(e);if(t){let e=t.filter(e=>e.type!==`null`);return e.length>0&&e.every(e=>e.type===`array`||e.type===`object`)}return!1}function Qt(e){if(!e)return!1;if(e.type===`boolean`)return!0;let t=Q(e);if(t){let e=t.filter(e=>e.type!==`null`);return e.length>0&&e.every(e=>e.type===`boolean`)}return!1}function $t(e){if(!e)return!1;if(e.type===`number`||e.type===`integer`)return!0;let t=Q(e);if(t){let e=t.filter(e=>e.type!==`null`);return e.length>0&&e.every(e=>e.type===`number`||e.type===`integer`)}return!1}function en(e){return e.replace(/[A-Z]/g,e=>`-`+e.toLowerCase())}function tn(e){let t=e.input?.properties?.data;return{props:t?.properties??{},required:t?.required??[]}}function nn(e){return typeof e.handler==`function`}function rn(e){let t=e.input?.properties??{},n=e[`x-apigen-envelope`],r=[];for(let e of Object.keys(t)){if(e===`data`)continue;let t=n?.[e]??`adhd`,i=qt(t,e);r.push({field:e,pluginId:t,httpHeader:i,mcpMetaKey:i,cliFlag:Jt(t,e),envVar:Yt(t,e)})}return r}function an(e,t,n,r){t===n||e.has(t)||e.set(t,{...r,aliasOf:n})}function on(e,t){let n=new Map,{props:r}=tn(e);for(let[e,t]of Object.entries(r)){let r=`string`;Qt(t)?r=`boolean`:(Zt(t)||$t(t))&&(r=`json`);let i=en(e),a={camelKey:e,kind:`domain`,valueKind:r};n.set(i,a),an(n,e,i,a)}for(let e of t){let t=e.cliFlag.replace(/^--/,``),r={camelKey:e.field,kind:`envelope`,valueKind:`string`,envVar:e.envVar};n.set(t,r)}return n}function sn(e){let{op:t,schema:n,transport:r,projection:i}=e,a=Kt(t,i),o=n?rn(n):[],s=n?on(n,o):new Map,c=n?Ye(n).params:void 0,l={op:t,transport:r,http:a.http,mcp:a.mcp,cli:a.cli,grpc:a.grpc,params:c,envelope:o,cliFlags:s,streaming:t.streaming,isMount:nn(t)};if(nn(t)){let e=t.handler;l.mountHandler=async t=>e(t)}return l}function cn(e){let t=e.usePlugins;return Array.isArray(t)?t:[]}function ln(e){let t=e.exitCode;return typeof t==`function`?t:void 0}function un(e){let t=e.useOptions;return t&&typeof t==`object`?t:{}}function dn(e){return async function(t,n){let r=Object.assign(t,{data:t.domainArgs});return await e.layer(r,n)}}function fn(e,t){let n=[];for(let e of t){let t=e.capabilities?.layer;t&&n.push(dn(t))}return n.push(pt(e)),Me(n)}function pn(){let e=new Map;return{get:t=>e.get(t),set:(t,n)=>{e.set(t,n)}}}var mn={input:{type:`object`,properties:{data:{type:`object`,properties:{}}}},output:{}};async function hn(e,t,n,r){let i={...n,operation:{id:e.op.id},ctx:new je,transport:e.transport};if(e.isMount){let a=e.mountHandler;if(!a)throw Error(`apigen-engine-runtime/dispatchForPlan: OpPlan for mount op "${e.op.id}" has isMount=true but no mountHandler`);let o={operation:e.op,data:n.domainArgs,envelope:n.envelope,ctx:pn(),transport:e.transport,signal:n.signal??new AbortController().signal},s={...r,fns:{[e.op.id]:()=>a(o)},schemas:{[e.op.id]:mn}};return t(e.op.id,i,s)}return t(e.op.id,i,r)}var $=`127.0.0.1`;function gn(e){let t=e.trim().toLowerCase().replace(/^\[|\]$/g,``);if(t===`localhost`||t===`::1`)return!0;let n=t.startsWith(`::ffff:`)?t.slice(7):t;return/^127(\.\d{1,3}){3}$/.test(n)}function _n(e){if(typeof e!=`string`)return $;let t=e.trim();return t===``?$:t}function vn(e,t,n){return!gn(e)&&(n?.warn({host:e,host_kind:t},`${t} binding non-loopback host "${e}": the server will be reachable from the network. Omit the host option to bind ${$}.`),!0)}exports.BATCH_DEFAULT_CONCURRENCY=Lt,exports.BATCH_MAX_CONCURRENCY=Rt,exports.DEFAULT_LISTEN_HOST=$,exports.EventBus=F,exports.InstanceRegistry=ht,exports.LayerContext=je,exports.UnionCodecError=q,exports.ValidateSchemasToken=ft,exports.WELL_KNOWN_TS_CODECS=kt,exports.adaptCoreLayer=dn,exports.assertNoSelfSubscription=He,exports.buildContext=L,exports.buildFnTable=$e,exports.buildMcpOutputSchema=Ft,exports.buildOpPlan=sn,exports.buildToolDescription=Pt,exports.coerceQueryParams=Ze,exports.collectWithPhase=vt,exports.createApiPackage=Ue,exports.createInvoker=Me,exports.createLogger=We,exports.createPackageInvoker=fn,exports.createStream=gt,exports.createUnionCodec=Ct,exports.dataParamNames=De,exports.defineMiddleware=Ne,exports.describeParams=Ye,exports.dispatch=Ae,exports.dispatchForPlan=hn,exports.drainStream=_t,exports.invokeBatch=Ht,exports.isApiStream=yt,exports.isLoopbackListenHost=gn,exports.makeValidateLayer=pt,exports.needsEnvelopeField=Ee,exports.readExitCodeHook=ln,exports.readUseOptions=un,exports.readUsePlugins=cn,exports.resolveListenHost=_n,exports.tsHostBinding=Nt,exports.validateLayer=dt,exports.warnIfNonLoopbackListen=vn,exports.wireObservers=I,exports.wrapMcpStructuredContent=It;