@adhd/apigen-core-client 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/index.js +1 -1
  3. package/index.mjs +2005 -2008
  4. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## 0.3.2 (2026-09-26)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **vite-plugins:** absorb perf/test-resolve-fix — test-time @adhd/* source resolution ([3e344506](https://github.com/PseudoSky/adhd/commit/3e344506))
6
+
7
+ ### 🩹 Fixes
8
+
9
+ - **apigen-core-client:** canonicalise union dedupe; cover standalone boolean literals ([0999daa7](https://github.com/PseudoSky/adhd/commit/0999daa7))
10
+ - **apigen-core-client:** keep co-resident catch-alls and lone boolean literals satisfiable in oneOf unions ([1fc9df24](https://github.com/PseudoSky/adhd/commit/1fc9df24))
11
+ - **apigen-core-client:** collapse duplicated boolean oneOf branch in union schemas (3a3e5884) ([1ee5b0b0](https://github.com/PseudoSky/adhd/commit/1ee5b0b0))
12
+ - **apigen-core-client:** sanitize vacuous catch-all branches in union schemas (BUG-APIGEN-059) ([e5887bb8](https://github.com/PseudoSky/adhd/commit/e5887bb8))
13
+ - **vite:** restore import.meta.url in CJS output under vite 8 ([7916e639](https://github.com/PseudoSky/adhd/commit/7916e639))
14
+ - **nx:** finish the ESLint v9 flat-config migration and unblock the gate ([53f4ff3e](https://github.com/PseudoSky/adhd/commit/53f4ff3e))
15
+
16
+ ### ❤️ Thank You
17
+
18
+ - pseudosky
19
+
1
20
  ## 0.3.1 (2026-09-24)
2
21
 
3
22
 
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ye=require("node:fs"),et=require("node:module"),Q=require("node:path");var ee=typeof document<"u"?document.currentScript:null;function tt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const nt=tt(Q);function Te(e){return{raw:e,words:e.split(/(?=[A-Z])|[-_]/).map(t=>t.toLowerCase()).filter(Boolean)}}function Ie(e,t,r={}){const o=e.split("/");if(o.length<2||o.some(u=>u.length===0))throw new Error(`syntheticOp: id "${e}" must be "<namespace>/<path...>" with non-empty segments`);const[n,...i]=o,s=n.replace(/^_+/,""),a=r.kind??"action",c={id:e,host:t.host,namespace:Te(s),path:i.map(Te),kind:a,async:r.async??!1,streaming:r.streaming??!1,safe:r.safe??a==="query",input:r.input??{},output:r.output??{},envelope:r.envelope??{},typeText:r.typeText??null};return r.hasCtx!==void 0&&(c.hasCtx=r.hasCtx),r.transports!==void 0&&(c.transports=r.transports),c}const O=et.createRequire(typeof document>"u"?require("url").pathToFileURL(__filename).href:ee&&ee.tagName.toUpperCase()==="SCRIPT"&&ee.src||new URL("index.js",document.baseURI).href);let z;function Ee(){return z||(z=O("ts-morph").Project,z)}const Ce=Symbol.for("adhd.apigen.extraction-session");function le(e,t){const r=[...e.getImportDeclarations().map(o=>o.getModuleSpecifierSourceFile()),...e.getExportDeclarations().map(o=>o.getModuleSpecifierSourceFile())];for(const o of r){if(!o)continue;const n=o.getFilePath();if(!n.includes("/node_modules/")&&!t.has(n)){t.add(n);try{o.refreshFromFileSystemSync()}catch{}le(o,t)}}}function Fe(e){try{const t=Ye.statSync(e);return`${t.mtimeMs}:${t.size}`}catch{return"nostat"}}const M=new Map,oe=new Map;function rt(e,t,r){const o=t??"",n=M.get(o);let i=r;if(n&&n.fileVersions.size>0){const c=[r],u=[...n.fileVersions.entries()].sort(([l],[f])=>l.localeCompare(f));for(const[l,f]of u)l!==e&&c.push(`${l}:${f}`);i=c.join("|")}const s=`${e}\0${t??""}`;let a=oe.get(s);return(!a||a.version!==i)&&(a={version:i,schemas:new Map},oe.set(s,a)),a.schemas}function ot(){M.clear(),oe.clear(),G=void 0}let G;function it(){if(!G){const e=Ee();G=new e({skipAddingFilesFromTsConfig:!0,compilerOptions:{noLib:!0}})}return G}function st(e){const t=it(),r=t.getSourceFile(e),o=r??t.addSourceFileAtPath(e);if(r)try{r.refreshFromFileSystemSync()}catch{}const n=new Set([e]);return le(o,n),[...n].sort()}function fe(){const e={projectsBuilt:0,generatorsBuilt:0,schemaCacheHits:0,schemaCacheMisses:0},t=new Map;let r=!1;return{[Ce]:!0,stats:e,schemaCache:new Map,aliasCache:new WeakMap,zodImportCache:new WeakMap,generatorCache:new Map,projectFor(n){if(r)throw new Error("apigen-core: ExtractionSession used after dispose()");const i=n??"",s=n?this.statVersion(n):"";let a=M.get(i);if(a&&a.tsconfigVersion!==s&&(a=void 0),!a){const c=Ee();a={project:n?new c({tsConfigFilePath:n,skipAddingFilesFromTsConfig:!0}):new c({skipAddingFilesFromTsConfig:!0}),tsconfigVersion:s,fileVersions:new Map},M.set(i,a),e.projectsBuilt++}return a.project},sourceFileFor(n,i){const s=this.projectFor(i),a=M.get(i??""),c=this.statVersion(n);let u=s.getSourceFile(n);if(u===void 0?u=s.addSourceFileAtPath(n):a&&a.fileVersions.get(n)!==c&&u.refreshFromFileSystemSync(),a==null||a.fileVersions.set(n,c),a){const l=new Set([n]);le(u,l);for(const f of l)f!==n&&a.fileVersions.set(f,this.statVersion(f))}return u},statVersion(n){let i=t.get(n);return i===void 0&&(i=Fe(n),t.set(n,i)),i},dispose(){r=!0,this.schemaCache.clear(),this.generatorCache.clear(),t.clear()}}}function Re(e){const t=e;if(t[Ce]!==!0)throw new Error("apigen-core: unknown ExtractionSession implementation — create sessions with createExtractionSession()");return t}const Z="x-apigen-logical";function Se(e,t){const r=new Set,o=[e];for(;o.length>0;){const n=o.pop();if(!n||r.has(n))continue;r.add(n);const i=n.$ref;if(typeof i=="string"){if(t){const f=t[i];if(!f){const m=Object.keys(t).join(", ")||"(none)";throw new Error(`[apigen-logical] $ref "${i}" cannot be resolved. Available $defs: ${m}`)}o.push(f)}continue}const s=n.oneOf;if(Array.isArray(s))for(const f of s)typeof f=="object"&&f!==null&&o.push(f);const a=n.properties;if(a)for(const f of Object.values(a))o.push(f);const c=n.items;if(Array.isArray(c))for(const f of c)typeof f=="object"&&f!==null&&o.push(f);else typeof c=="object"&&c!==null&&o.push(c);const u=n.additionalProperties;typeof u=="object"&&u!==null&&o.push(u);const l=n.propertyNames;typeof l=="object"&&l!==null&&o.push(l)}}const be=new Set(["string","number","boolean","integer"]);function at(e){if(typeof e!="object"||e===null)return!1;const t=e;if(t.$ref!==void 0||t.oneOf||t.anyOf||t.allOf)return!1;const{type:r}=t;return typeof r=="string"?be.has(r):Array.isArray(r)?r.every(o=>be.has(o)||o==="null"):Array.isArray(t.enum)&&t.enum.length>0?t.enum.every(o=>["string","number","boolean"].includes(typeof o)):!1}function _e(e){if(!e||typeof e!="object")return!1;const t=e.properties;return t===void 0||typeof t!="object"||t===null?!1:Object.values(t).every(at)}function ct(e){var r,o;const t=[];for(const n of e){const i={...(r=n.capabilities.layer)==null?void 0:r.envelopeFields,...(o=n.capabilities.envelope)==null?void 0:o.request};Object.keys(i).length>0&&t.push({id:n.id,envelope:i})}return t}function ut(e){const t={},r=o=>{for(const n of["definitions","$defs"]){const i=o[n];if(i)for(const[s,a]of Object.entries(i)){const c=s.startsWith("#/")?s:`#/${n}/${s}`;t[c]=a}}};for(const o of Object.values(e.schemas))r(o.input),r(o.output);if(Object.keys(t).length!==0)for(const[o,n]of Object.entries(e.schemas))try{Se(n.input,t),Se(n.output,t)}catch(i){throw new Error(`[apigen-core-client] Schema validation failed for function "${o}": ${i.message}`)}}function lt(e,t){const r=['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&&r.push(`Field(s) ${e.map(o=>`"${o}"`).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.`),r.join(" ")}function ft(e,t,r){ut(e);const o={};for(const[n,i]of Object.entries(e.schemas)){const s=(r==null?void 0:r[n])??{},a=i.input.properties??{},c=i.input.required??[],u={},l=[],f={};for(const g of t)if(g.envelope&&s[g.id]!==!1)for(const[x,p]of Object.entries(g.envelope))u[x]=p,f[x]=g.id,l.includes(x)||l.push(x);const m={type:"object",properties:a,additionalProperties:!1,...c.length>0?{required:c}:{}},h=i.safe===!0||_e(i.input),y=i.input.definitions,d=i.input.$defs;o[n]={input:{type:"object",properties:{...u,data:m},required:[...l,...c.length>0?["data"]:[]],additionalProperties:!1,description:lt(Object.keys(u),Object.keys(a).length>0),...y?{definitions:y}:{},...d?{$defs:d}:{}},output:i.output,...i.hasCtx?{hasCtx:!0}:{},"x-apigen-safe":h,...Object.keys(f).length>0?{"x-apigen-envelope":f}:{}}}return o}const pt=8;function mt(e,t){try{return t?e.getText(t):e.getText()}catch{try{return e.getText()}catch{return}}}let dt=0;async function gt(e,t,r,o){const n=`__ApigenProbe_${process.pid}_${dt++}`;let i;try{i=t.addTypeAlias({name:n,type:r});const s=i.getType();return await o(s)}catch{return}finally{try{i==null||i.remove()}catch{}}}async function Le(e,t,r){if(r>pt)return{};if(e.isString()||e.isStringLiteral())return e.isStringLiteral()?{type:"string",enum:[e.getLiteralValue()]}:{type:"string"};if(e.isNumber()||e.isNumberLiteral())return e.isNumberLiteral()?{type:"number",enum:[e.getLiteralValue()]}:{type:"number"};if(e.isBoolean())return{type:"boolean"};if(e.isBooleanLiteral())return{type:"boolean"};if(e.isNull()||e.isUndefined()||e.isVoid())return{type:"null"};if(e.isUnion()){const o=e.getUnionTypes();if(o.every(c=>c.isStringLiteral())&&o.length>0)return{type:"string",enum:o.map(c=>c.getLiteralValue())};if(o.every(c=>c.isNumberLiteral())&&o.length>0)return{type:"number",enum:o.map(c=>c.getLiteralValue())};const s=await Promise.all(o.map(c=>Le(c,t,r+1))),a=X(s);return{oneOf:s,...a?{discriminator:a}:{},[Z]:"union"}}if(e.isArray()){const o=e.getArrayElementType();return{type:"array",items:o?await t(o.getText()):{}}}if(e.isTuple()){const o=e.getTupleElements(),n=await Promise.all(o.map(i=>t(i.getText())));return{type:"array",items:n,minItems:n.length,maxItems:n.length}}if(e.isObject()){const o=e.getStringIndexType(),n=e.getNumberIndexType(),i=o??n,s=e.getProperties();if(i&&s.length===0)return{type:"object",additionalProperties:await t(i.getText())};const a={},c=[];for(const u of s){const l=u.getName(),m=u.getDeclarations()[0];let h;if(m)try{h=u.getTypeAtLocation(m)}catch{h=void 0}if(h!==void 0&&h.getCallSignatures().length>0)continue;const y=h!==void 0?mt(h,m):void 0;a[l]=y!==void 0?await t(y):{},u.isOptional()||c.push(l)}if(Object.keys(a).length>0){const u=i?await t(i.getText()):!1;return{type:"object",properties:a,...c.length>0?{required:c}:{},additionalProperties:u}}return{}}return{}}function X(e){if(e.length<2)return;const t=[];for(const o of e){if(o.type!=="object")return;const n=o.properties;if(!n||typeof n!="object")return;t.push(n)}const r=Object.keys(t[0]).filter(o=>t.every(n=>Object.prototype.hasOwnProperty.call(n,o)));for(const o of r){const n=[];let i=!0;for(const a of t){const c=a[o],u=c&&(c.type==="string"||c.type==="number"),l=c==null?void 0:c.enum;if(!u||!Array.isArray(l)||l.length!==1){i=!1;break}n.push(String(l[0]))}if(!i||new Set(n).size!==n.length)continue;const s={};return n.forEach((a,c)=>{s[a]=`#/oneOf/${c}`}),{propertyName:o,mapping:s}}}function H(e,t,r){if(t>6)return{};const o=e.trim();if(o==="string")return{type:"string"};if(o==="number")return{type:"number"};if(o==="boolean")return{type:"boolean"};if(o==="null")return{type:"null"};if(o==="undefined")return{type:"null"};const n=ie[o];if(n!==void 0)return n;if(r!=null&&r.size){const i=r.get(o);if(i!==void 0){const s=ie[i];if(s!==void 0)return s}}if(o.endsWith("[]"))return{type:"array",items:H(o.slice(0,-2),t+1,r)};if(o.includes("|")){const i=o.split("|").map(c=>c.trim());if(i.every(c=>c.startsWith("'")))return{type:"string",enum:i.map(c=>c.replace(/'/g,""))};const s=i.map(c=>H(c,t+1,r)),a=X(s);return{oneOf:s,...a?{discriminator:a}:{},[Z]:"union"}}if(o.startsWith("{")&&o.endsWith("}")){const i=o.slice(1,-1).trim(),s={};for(const a of i.split(";").filter(Boolean)){const[c,u]=a.split(":").map(l=>l.trim());c&&u&&(s[c.replace("?","")]=H(u,t+1,r))}return{type:"object",properties:s}}return{}}function Me(e){const t=[];let r=0,o=0;for(let i=0;i<e.length;i++){const s=e[i];s==="<"||s==="["||s==="{"||s==="("?r++:s===">"||s==="]"||s==="}"||s===")"?r--:s===","&&r===0&&(t.push(e.slice(o,i).trim()),o=i+1)}const n=e.slice(o).trim();return n.length>0&&t.push(n),t}function yt(e){const t=/^(?:Readonly)?Map<(.+)>$/.exec(e);return t?t[1]:void 0}function ht(e){const t=/^(?:Readonly)?Set<(.+)>$/.exec(e);return t?t[1]:void 0}function Tt(e){let t=e.trim();if(t.startsWith("readonly ")&&(t=t.slice(9).trim()),!t.startsWith("[")||!t.endsWith("]"))return;const r=t.slice(1,-1).trim();if(r.length!==0)return Me(r)}async function St(e,t){const r=e.trim(),o=yt(r);if(o!==void 0){const s=Me(o);if(s.length===2){const[a,c]=await Promise.all([t(s[0]),t(s[1])]);return{type:"array",items:{type:"array",items:[a,c],minItems:2,maxItems:2}}}}const n=ht(r);if(n!==void 0)return{type:"array",items:await t(n),uniqueItems:!0};const i=Tt(r);if(i!==void 0){const s=await Promise.all(i.map(a=>t(a)));return{type:"array",items:s,minItems:s.length,maxItems:s.length}}}const Ke={"decimal.js":"Decimal"},ie={Date:{type:"string",format:"date-time"},bigint:{type:"string",format:"int64"},Uint8Array:{type:"string",format:"byte"},Buffer:{type:"string",format:"byte"},URL:{type:"string",format:"uri"},RegExp:{type:"string",format:"regex"},Decimal:{type:"string",format:"decimal"}},ve={Uint8Array:"byte",Buffer:"byte",Decimal:"decimal"};function xe(e){var r;const t=new Map;for(const o of e.getImportDeclarations()){const n=o.getModuleSpecifierValue(),i=Ke[n];if(!i)continue;const s=o.getDefaultImport();if(s){const a=s.getText();a!==i&&t.set(a,i)}for(const a of o.getNamedImports()){const c=((r=a.getAliasNode())==null?void 0:r.getText())??a.getName();c!==i&&t.set(c,i)}}return t}function bt(e,t){return r=>{r.addNodeParser({supportsNode(o){var i,s,a;if(o.kind!==t)return!1;const n=((i=o.typeName)==null?void 0:i.escapedText)??((a=(s=o.typeName)==null?void 0:s.right)==null?void 0:a.escapedText);return n!==void 0&&Object.prototype.hasOwnProperty.call(ve,n)},createType(o){var a,c,u;const n=((a=o.typeName)==null?void 0:a.escapedText)??((u=(c=o.typeName)==null?void 0:c.right)==null?void 0:u.escapedText),{AnnotatedType:i,StringType:s}=se();return new i(new s,{format:ve[n]},!1)}}),r.addNodeParser({supportsNode(o){return o.kind===e},createType(){const{AnnotatedType:o,StringType:n}=se();return new o(new n,{format:"int64"},!1)}})}}let q;function se(){return q||(q=O("ts-json-schema-generator"),q)}let _;function vt(){if(_)return _;try{const e=Q.dirname(O.resolve("ts-json-schema-generator/package.json"));_=O(O.resolve("typescript",{paths:[e]}))}catch{_=O("typescript")}return _}const E=new Map;function xt(){const e=process.env.APIGEN_PROGRAM_CACHE,t=e===void 0?NaN:Number(e);return Number.isFinite(t)&&t>=0?t:8}function wt(e){const t=E.get(e);return t&&(E.delete(e),E.set(e,t)),t}function jt(e,t){const r=xt();if(r!==0)for(E.delete(e),E.set(e,t);E.size>r;){const o=E.keys().next().value;E.delete(o)}}function At(e,t){return`${e}\0${t??""}`}const Pt=new Set(["zod",/^zod\/./]);function $t(e){for(const t of e.getImportDeclarations()){const r=t.getModuleSpecifierValue();for(const o of Pt)if(typeof o=="string"){if(r===o)return!0}else if(o.test(r))return!0}return!1}function Ot(e){for(const t of["$defs","definitions"]){const r=e[t];if(!r||typeof r!="object")continue;const o=Object.keys(r);if(o.length===0)continue;const n=new Set(o.filter(i=>/zod/i.test(i)));for(const[i,s]of Object.entries(r)){if(n.has(i)||typeof s!="object"||s===null)continue;const a=s,c=typeof a.$ref=="string"?a.$ref:"";if(c){for(const u of n)if(c.includes(u)){n.add(i);break}}}for(const i of n)delete r[i]}ae(e)}function ae(e,t){if(!e||typeof e!="object")return;const r=t??new WeakSet;if(!r.has(e)){r.add(e);for(const o of Object.keys(e))if(o==="$ref"&&typeof e[o]=="string"){const n=e[o];/zod/i.test(n)&&delete e[o]}for(const[,o]of Object.entries(e))if(typeof o=="object"&&o!==null)if(Array.isArray(o))for(const n of o)typeof n=="object"&&n!==null&&ae(n,r);else ae(o,r)}}function Nt(e){const t=new Set;for(const o of["$defs","definitions"]){const n=e[o];if(n&&typeof n=="object")for(const i of Object.keys(n))t.add(i)}const r=ce(e,t);if(r.length>0)throw new Error(`[apigen-core-client] Generated schema contains ${r.length} unresolvable $ref(s): ${r.join(", ")}. This usually means zod-internal definitions were stripped but $ref references to them remain. Check the source file's imports or the ts-json-schema-generator output.`)}function ce(e,t){if(!e||typeof e!="object")return[];const r=[];for(const[o,n]of Object.entries(e))if(o==="$ref"&&typeof n=="string"){const i=n.match(/#\/(?:\$defs|definitions)\/(.+)$/);i&&!t.has(i[1])&&r.push(n)}else if(typeof n=="object"&&n!==null)if(Array.isArray(n))for(const i of n)typeof i=="object"&&i!==null&&r.push(...ce(i,t));else r.push(...ce(n,t));return r}function kt(e){const t=e.anyOf;if(!Array.isArray(t)||t.length<2)return e;const r=t,o=X(r),n={...e};return delete n.anyOf,{...n,oneOf:r,...o?{discriminator:o}:{},[Z]:n[Z]??"union"}}function It(e,t,r){const{DEFAULT_CONFIG:o}=O("ts-json-schema-generator/dist/src/Config.js"),n={...o,...e},i=n.path,s=At(i,n.tsconfig);let a;a=r?r.statVersion(i):Fe(i);let c;if(s!==void 0){const l=(r==null?void 0:r.generatorCache.get(s))??wt(s);l&&l.version===a&&(c=l.gen)}if(!c){const{createProgram:l}=O("ts-json-schema-generator/dist/factory/program.js"),{createParser:f,createFormatter:m,SchemaGenerator:h}=se(),y=vt(),d=bt(y.SyntaxKind.BigIntKeyword,y.SyntaxKind.TypeReference),g=l(n),x=f(g,n,d),p=m(n);if(c=new h(g,x,p,n),r&&r.stats.generatorsBuilt++,s!==void 0&&a!==void 0){const T={version:a,gen:c};jt(s,T),r==null||r.generatorCache.set(s,T)}}const u=c.createSchema(n.type);return Ot(u),Nt(u),u}function Et(e,t){let r=e.trim();if(r=ze(r),t!=null&&t.size){const n=t.get(r);if(n!==void 0)return n}const o=r.match(/^ReadonlyArray<(.+)>$/);for(o&&(r=`${o[1].trim()}[]`);r.startsWith("readonly ");)r=r.slice(9).trim();return r}function Ve(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}const Ct=Object.entries(Ke).map(([e,t])=>({pattern:new RegExp(`import\\(["'][^"']*${Ve(e)}[^"']*["']\\)\\.\\w+`,"g"),key:t}));function ze(e){let t=e;for(const{pattern:r,key:o}of Ct)t=t.replace(r,o);return t}function Ft(e,t){let r=ze(e);for(const[o,n]of t)r=r.replace(new RegExp(`\\b${Ve(o)}\\b`,"g"),n);return r}async function N(e,t,r,o,n,i){const s=t.getFilePath(),a=`${s}\0${o??""}\0${r}`,c=i??new Set;if(c.has(a))return{};if(!n){const y=new Set(c);return y.add(a),we(e,t,r,o,void 0,y)}const u=n.schemaCache.get(a);if(u!==void 0)return n.stats.schemaCacheHits++,u;const l=rt(s,o,n.statVersion(s)),f=l.get(r);if(f!==void 0)return n.stats.schemaCacheHits++,n.schemaCache.set(a,Promise.resolve(f)),f;n.stats.schemaCacheMisses++;const m=new Set(c);m.add(a);const h=we(e,t,r,o,n,m).then(y=>(l.set(r,y),y)).catch(y=>{throw n.schemaCache.delete(a),y});return n.schemaCache.set(a,h),h}async function we(e,t,r,o,n,i){if(["void","undefined","null","Promise<void>"].includes(r))return{type:"null"};let s;if(n){const m=n.aliasCache.get(t);s=m??xe(t),m||n.aliasCache.set(t,s)}else s=xe(t);const a=Et(r,s),c=ie[a];if(c!==void 0)return c;const u=await St(a,m=>N(e,t,m,o,n,i));if(u!==void 0)return u;const l=(n==null?void 0:n.zodImportCache.get(t))??$t(t);if(n&&n.zodImportCache.set(t,l),!l)try{const m={path:t.getFilePath(),type:a,skipTypeCheck:!0,tsconfig:o,topRef:!1},h=It(m,!0,n);return kt(h)}catch{}try{const m=await gt(e,t,a,h=>Le(h,y=>N(e,t,y,o,n,i),0));if(m!==void 0)return m}catch{}const f=Ft(a,s);return H(f,0,s)}function pe(e,t,r){if(e!=null&&e.hasInitializer()){const o=e.getInitializer();if(o)return o.getText()}return Rt(r,t)}function Rt(e,t){var s;const r=e,o=((s=r==null?void 0:r.getJsDocs)==null?void 0:s.call(r))??[],n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),i=new RegExp(`\\[\\s*${n}\\s*=\\s*([^\\]]+)\\]`);for(const a of o)for(const c of a.getTags()){if(c.getTagName()!=="param")continue;const u=c.getText().match(i);if(u)return u[1].trim()}}function _t(e){const t=e.trim(),r=t.match(/^(['"`])([\s\S]*)\1$/);if(r)return r[2];if(t==="true")return!0;if(t==="false")return!1;if(t==="null")return null;if(t!=="undefined"){if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);try{return JSON.parse(t)}catch{return t}}}function Lt(e,t){const r=_t(t);if(r===void 0)return;e.default=r;const o=typeof r=="string"?r:JSON.stringify(r),n=typeof e.description=="string"?e.description:void 0;e.description=n?`${n} (default: ${o})`:`(default: ${o})`}let B;function Mt(){return B||(B=O("ts-morph").SyntaxKind,B)}function Y(e){try{if(!e)return;const t=Mt();if(e.getKind()!==t.TypeReference)return;const r=e;if(r.getTypeArguments().length>0)return;const o=r.getTypeName();if(o.getKind()!==t.Identifier)return;const i=o.getSymbol();if(!i)return;const s=i.getDeclarations().find(f=>f.getKindName()==="TypeAliasDeclaration");if(!s)return;const a=s,c=a.getType();if(!(c.isString()||c.isNumber()||c.isBoolean()))return;const l=a.getJsDocs();for(const f of l)for(const m of f.getTags())if(m.getTagName()==="format"){const h=m.getCommentText();if(h!==void 0)return h.trim()}return}catch{return}}const Kt=new Set(["AsyncGenerator","AsyncIterableIterator","AsyncIterable","Generator","IterableIterator","Iterable","ApiStream"]);function Vt(e){const t=[];let r=0,o="";for(const n of e)n==="<"||n==="("||n==="["||n==="{"?r++:(n===">"||n===")"||n==="]"||n==="}")&&r--,n===","&&r===0?(t.push(o.trim()),o=""):o+=n;return o.trim().length>0&&t.push(o.trim()),t}function me(e){const t=e.trim(),r=t.indexOf("<");if(r===-1||!t.endsWith(">"))return null;const o=t.slice(0,r),n=o.includes(".")?o.slice(o.lastIndexOf(".")+1):o;if(!Kt.has(n))return null;let i=0;for(let c=r;c<t.length;c++){const u=t[c];if(u==="<")i++;else if(u===">"&&(i--,i===0&&c!==t.length-1))return null}if(i!==0)return null;const s=t.slice(r+1,-1),a=Vt(s);return a.length>0?a[0]:null}async function zt(e){const t=e.session===void 0,r=Re(e.session??fe());try{return await qt(e,r)}finally{t&&r.dispose()}}async function qt(e,t){const{sourceFile:r,namespace:o="",dropFileSegment:n=!1,tsconfig:i}=e,s=t.projectFor(i),a=t.sourceFileFor(r,i),c=Q.basename(r),u=k(Dt(c)),l=n?null:u,f=k(o),m=[];for(const[d,g]of a.getExportedDeclarations()){if(d==="default"||U(d))continue;const x=Wt(g);if(x){const S=x.getSignature(),j=Pe(S,x),b=S.getReturnType().getText(),A=F(S);m.push(await D(s,a,f,l,d,j,b,x.isAsync(),i,t,A));continue}const p=g.find(S=>S.getKindName()==="VariableDeclaration");if(!p)continue;const T=p.getInitializer(),w=T==null?void 0:T.getKindName();if(T&&["ArrowFunction","FunctionExpression"].includes(w??"")){const j=p.getType().getCallSignatures();if(j.length===0)continue;const b=j[0],A=$e(b,p,p.getVariableStatement()),P=b.getReturnType().getText(),v=F(b),$=T.isAsync();m.push(await D(s,a,f,l,d,A,P,$,i,t,v))}else if(w==="ObjectLiteralExpression"){const S=p.getType();for(const j of S.getProperties()){const b=j.getName();if(U(b))continue;const P=j.getTypeAtLocation(p).getCallSignatures();if(P.length===0)continue;const v=P[0],$=$e(v,p,p.getVariableStatement()),C=v.getReturnType().getText(),K=F(v),V=[...l?[l]:[],k(d),k(b)];m.push(await J(s,a,f,V,b,$,C,!1,i,t,K))}}else{const S=p.getType(),j=S.getText();if(R(S,p)){const b=await N(s,a,j,i,t);m.push(Bt(f,l,d,b))}else console.warn(`[apigen-core] Skipping non-callable, non-serializable export: ${d}`)}}const h=a.getDefaultExportSymbol();if(h){const d=a.getExportAssignment(g=>!g.isExportEquals());if(d){const g=d.getExpression(),x=g.getKindName();if(["ArrowFunction","FunctionExpression"].includes(x)){const T=g.getType().getCallSignatures();if(T.length>0){const w=T[0],S=te(w,d),j=w.getReturnType().getText(),b=F(w),A=g.isAsync();m.push(await D(s,a,f,l,"default",S,j,A,i,t,b))}}else{const p=g.getType();for(const T of p.getProperties()){const w=T.getName();if(U(w))continue;const j=T.getTypeAtLocation(d).getCallSignatures();if(j.length===0)continue;const b=j[0],A=te(b,d),P=b.getReturnType().getText(),v=F(b),$=[...l?[l]:[],k("default"),k(w)];m.push(await J(s,a,f,$,w,A,P,!1,i,t,v))}}}else{const g=h.getDeclarations();for(const x of g){if(x.getKindName()!=="FunctionDeclaration")continue;const p=x,T=p.getName(),w=T&&T.length>0?T:"default",S=p.getSignature(),j=Pe(S,p),b=S.getReturnType().getText(),A=F(S);m.push(await D(s,a,f,l,w,j,b,p.isAsync(),i,t,A))}}}const y=Ut(a);if(y.length>0)for(const{name:d,sig:g}of y){if(U(d))continue;const x=te(g),p=g.getReturnType().getText(),T=F(g),w=[...l?[l]:[],k(d)];m.push(await J(s,a,f,w,d,x,p,!1,i,t,T))}return m}function je(e,t,r,o){const n=new Set,i=s=>{if(Array.isArray(s))return s.map(i);if(!s||typeof s!="object"||n.has(s))return s;n.add(s);try{const a=s,c={};for(const[u,l]of Object.entries(a)){if(u==="definitions"||u==="$defs"){const f=u,m=t[f];for(const[h,y]of Object.entries(l)){const d=i(y),g=m[h];if(g!==void 0&&JSON.stringify(g)!==JSON.stringify(d))throw new Error(`[apigen-core-client] Function "${r}": param "${o}" contributes a "${f}.${h}" definition that conflicts with an identically-named definition already hoisted from another param/output in the same function. Two structurally different types share the same generated definition key, so apigen cannot safely merge them into one function-level schema.`);m[h]=d}continue}c[u]=i(l)}return c}finally{n.delete(s)}};return i(e)}function Ae(e,t){if(!t||e.format!==void 0||"$ref"in e||"properties"in e||"items"in e)return;const r=e.type;(r==="string"||r==="number"||r==="integer"||r==="boolean")&&(e.format=t)}function F(e){var t;try{return Y((t=e.getDeclaration())==null?void 0:t.getReturnTypeNode())}catch{return}}async function D(e,t,r,o,n,i,s,a,c,u,l){const f=k(n);return J(e,t,r,o?[o,f]:[f],n,i,s,a,c,u,l)}async function J(e,t,r,o,n,i,s,a,c,u,l){const f=i.length>0&&i[0].name==="ctx",m=i.filter(v=>v.name!=="ctx"),h=m.filter(v=>!v.optional).map(v=>v.name),y={},d={definitions:{},$defs:{}};for(const v of m){const $=await N(e,t,v.type,c,u),C=je($,d,n,v.name);v.defaultValue!==void 0&&Lt(C,v.defaultValue),Ae(C,v.format),y[v.name]=C}const g=s.replace(/^Promise<(.+)>$/,"$1").trim(),x=me(g),p=x!==null,T=p?x:g,w=await N(e,t,T,c,u),S={definitions:{},$defs:{}},j=je(w,S,n,"<return>"),b=l?{...j}:j;Ae(b,l),Object.keys(S.definitions).length>0&&(b.definitions={...b.definitions,...S.definitions}),Object.keys(S.$defs).length>0&&(b.$defs={...b.$defs,...S.$defs});const A={type:"object",properties:y,required:h,...Object.keys(d.definitions).length>0?{definitions:d.definitions}:{},...Object.keys(d.$defs).length>0?{$defs:d.$defs}:{}};return{id:qe(r,o),host:"ts",namespace:r,path:o,kind:"action",async:a,streaming:p,safe:!1,input:A,output:b,envelope:{},typeText:{lang:"ts",input:Gt(i),output:T},...f?{hasCtx:!0}:{}}}function Bt(e,t,r,o){const n=k(r),i=t?[t,n]:[n];return{id:qe(e,i),host:"ts",namespace:e,path:i,kind:"query",async:!1,streaming:!1,safe:!0,input:{type:"object",properties:{},required:[]},output:o,envelope:{},typeText:null}}function qe(e,t){return(e.raw?[e,...t]:t).map(o=>o.words.join("-")).join("/")}function de(e){return e.split(/[-_.]+/).flatMap(t=>t.replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").split("_").filter(Boolean)).map(t=>t.toLowerCase()).filter(Boolean)}function k(e){return{raw:e,words:de(e)}}function Dt(e){return e.replace(/\.[^.]+$/,"").replace(/[._]+/g,"-")}function Ut(e){const t=[];for(const r of e.getStatements()){if(r.getKindName()!=="ExpressionStatement")continue;const o=r.getExpression();if(o.getKindName()!=="BinaryExpression")continue;const n=o;if(n.getLeft().getText().trim()!=="module.exports"||n.getOperatorToken().getKindName()!=="EqualsToken")continue;const s=n.getRight(),a=s.getType();for(const c of a.getProperties()){const l=c.getTypeAtLocation(s).getCallSignatures();l.length!==0&&t.push({name:c.getName(),sig:l[0]})}}return t}function Wt(e){let t;for(const r of e){if(r.getKindName()!=="FunctionDeclaration")continue;const o=r;if(t||(t=o),o.getBody())return o}return t}function Pe(e,t){return e.getParameters().map(r=>{var s;const o=r.getDeclarations(),n=o.length>0&&o[0].getKindName()==="Parameter"?o[0]:null,i=r.isOptional()||((n==null?void 0:n.hasInitializer())??!1)||(((s=n==null?void 0:n.hasQuestionToken)==null?void 0:s.call(n))??!1);return{name:r.getName(),type:r.getTypeAtLocation(e.getDeclaration()).getText(),optional:i,defaultValue:pe(n,r.getName(),t),format:Y(n==null?void 0:n.getTypeNode())}})}function $e(e,t,r){return e.getParameters().map(o=>{var a;const n=o.getDeclarations(),i=n.length>0&&n[0].getKindName()==="Parameter"?n[0]:null,s=o.isOptional()||((i==null?void 0:i.hasInitializer())??!1)||(((a=i==null?void 0:i.hasQuestionToken)==null?void 0:a.call(i))??!1);return{name:o.getName(),type:o.getTypeAtLocation(t).getText(),optional:s,defaultValue:pe(i,o.getName(),r??t),format:Y(i==null?void 0:i.getTypeNode())}})}function te(e,t){return e.getParameters().map(r=>{var s,a,c;const o=r.getDeclarations(),n=o.length>0&&o[0].getKindName()==="Parameter"?o[0]:null,i=r.isOptional()||((n==null?void 0:n.hasInitializer())??!1)||(((s=n==null?void 0:n.hasQuestionToken)==null?void 0:s.call(n))??!1);return{name:r.getName(),type:n?n.getType().getText():((c=(a=r.getValueDeclaration())==null?void 0:a.getType())==null?void 0:c.getText())??"unknown",optional:i,defaultValue:pe(n,r.getName(),t),format:Y(n==null?void 0:n.getTypeNode())}})}function Gt(e){const t=e.filter(r=>r.name!=="ctx");return t.length===0?"()":"("+t.map(r=>`${r.name}${r.optional?"?":""}: ${r.type}`).join(", ")+")"}function U(e){return!!(e==="__samples__"||e.startsWith("__"))}function R(e,t,r=new Set){if(e.getCallSignatures().length>0||e.getConstructSignatures().length>0)return!1;if(e.isString()||e.isNumber()||e.isBoolean()||e.isNull()||e.isUndefined()||e.isStringLiteral()||e.isNumberLiteral()||e.isBooleanLiteral()||e.isEnumLiteral())return!0;if(e.isArray()||e.isReadonlyArray()){const o=e.getArrayElementType();return o?R(o,t,r):!1}if(e.isTuple())return e.getTupleElements().every(o=>R(o,t,r));if(e.isUnion())return e.getUnionTypes().every(o=>R(o,t,r));if(e.isIntersection())return e.getIntersectionTypes().every(o=>R(o,t,r));if(e.isObject()){const o=e.getText(t);if(r.has(o))return!0;r.add(o);const n=e.getStringIndexType(),i=e.getNumberIndexType();if(n||i)return[n,i].every(a=>!a||R(a,t,r));const s=e.getProperties();return s.length===0?!0:s.every(a=>{const c=a.getTypeAtLocation(t);return R(c,t,r)})}return!1}function Be(e,t){return async r=>{let o=()=>t(r);for(let n=e.length-1;n>=0;n--){const i=e[n],s=o;o=()=>i(r,s)}return o()}}function De(e,t){return Be(e,t)}function Ht(e,t,r={}){const o=e.map(n=>n.capabilities.extractLayer).filter(n=>!!n).map(n=>n.createLayer?n.createLayer(r):n.layer).filter(n=>!!n);return De(o,t)}let W;function Jt(){return W||(W=O("ts-morph").Scope,W)}async function Zt(e){const t=e.session===void 0,r=Re(e.session??fe());try{return await Qt(e,r)}finally{t&&r.dispose()}}async function Qt(e,t){const{sourceFile:r,namespace:o="",tsconfig:n,includeInstances:i=!1}=e,s=t.projectFor(n),a=t.sourceFileFor(r,n),c=Q.basename(r),u=L(Yt(c)),l=L(o),f=[];for(const[m,h]of a.getExportedDeclarations()){const y=h.find(p=>p.getKindName()==="ClassDeclaration");if(!y)continue;const d=m==="default"?y.getName():m;if(!d||re(d))continue;const g=L(d),x=Jt();for(const p of y.getStaticMethods()){const T=p.getName();if(re(T))continue;const w=p.getScope();if(w===x.Private||w===x.Protected)continue;const S=p.getSignature(),j=ne(S,p),b=S.getReturnType().getText(),A=p.isAsync(),P=[u,g,L(T)];f.push(await Xt(s,a,l,P,j,b,A,n,t))}if(i){{const T=y.getConstructors()[0]??null;let w=[];if(T){const v=T.getSignature();w=ne(v,T)}const S=[u,g],j=ue(l,S),b=w.filter(v=>v.name!=="ctx"),A=b.filter(v=>!v.optional).map(v=>v.name),P={};for(const v of b)P[v.name]=await N(s,a,v.type,n,t);f.push({id:j,host:"ts",namespace:l,path:S,kind:"constructor",async:!1,streaming:!1,safe:!1,input:{type:"object",properties:P,required:A},output:{type:"object",properties:{instanceId:{type:"string"}},required:["instanceId"]},envelope:{},typeText:{lang:"ts",input:en(w),output:"{ instanceId: string }"}})}for(const p of y.getInstanceMethods()){const T=p.getName();if(re(T))continue;const w=p.getScope();if(w===x.Private||w===x.Protected)continue;const S=p.getSignature(),j=ne(S,p),b=S.getReturnType().getText(),A=p.isAsync(),P=[u,g,L(T)],v=ue(l,P),$=j.filter(I=>I.name!=="ctx"),C=$.filter(I=>!I.optional).map(I=>I.name),K={};for(const I of $)K[I.name]=await N(s,a,I.type,n,t);const V=b.replace(/^Promise<(.+)>$/,"$1").trim(),ge=me(V),ye=ge!==null,he=ye?ge:V,Xe=await N(s,a,he,n,t);f.push({id:v,host:"ts",namespace:l,path:P,kind:"instance-method",async:A,streaming:ye,safe:!1,input:{type:"object",properties:K,required:C},output:Xe,envelope:{type:"object",properties:{instanceId:{type:"string"}},required:["instanceId"]},typeText:{lang:"ts",input:Ue(j),output:he}})}}}return f}async function Xt(e,t,r,o,n,i,s,a,c){const u=n.filter(p=>p.name!=="ctx"),l=u.filter(p=>!p.optional).map(p=>p.name),f={};for(const p of u)f[p.name]=await N(e,t,p.type,a,c);const m=i.replace(/^Promise<(.+)>$/,"$1").trim(),h=me(m),y=h!==null,d=y?h:m,g=await N(e,t,d,a,c);return{id:ue(r,o),host:"ts",namespace:r,path:o,kind:"action",async:s,streaming:y,safe:!1,input:{type:"object",properties:f,required:l},output:g,envelope:{},typeText:{lang:"ts",input:Ue(n),output:d}}}function ue(e,t){return(e.raw?[e,...t]:t).map(o=>o.words.join("-")).join("/")}function L(e){return{raw:e,words:de(e)}}function Yt(e){return e.replace(/\.[^.]+$/,"").replace(/[._]+/g,"-")}function ne(e,t){return e.getParameters().map(r=>{var s;const o=r.getDeclarations(),n=o.length>0&&o[0].getKindName()==="Parameter"?o[0]:null,i=r.isOptional()||((n==null?void 0:n.hasInitializer())??!1)||(((s=n==null?void 0:n.hasQuestionToken)==null?void 0:s.call(n))??!1);return{name:r.getName(),type:r.getTypeAtLocation(t).getText(),optional:i}})}function Ue(e){const t=e.filter(r=>r.name!=="ctx");return t.length===0?"()":"("+t.map(r=>`${r.name}${r.optional?"?":""}: ${r.type}`).join(", ")+")"}function en(e){return e.length===0?"()":"("+e.map(t=>`${t.name}${t.optional?"?":""}: ${t.type}`).join(", ")+")"}function re(e){return!!(e==="__samples__"||e.startsWith("__")||e.startsWith("_"))}const tn=new Map([[".ts","ts"],[".tsx","ts"],[".mts","ts"],[".cts","ts"],[".py","py"],[".rs","rust"],[".go","go"],[".java","java"]]);function We(e){const t=nt.extname(e).toLowerCase();return tn.get(t)}function Ge(e){return e.language??"ts"}function He(e,t){const r=We(t);return r===void 0?!1:r===Ge(e)}function nn(e,t){return t.filter(r=>He(e,r))}function rn(e){return{oneOf:[{type:"object",required:["index","status","value"],properties:{index:{type:"integer"},status:{type:"string",enum:["fulfilled"]},value:e}},{type:"object",required:["index","status","chunks"],properties:{index:{type:"integer"},status:{type:"string",enum:["fulfilled"]},chunks:{type:"array"}}},{type:"object",required:["index","status","reason"],properties:{index:{type:"integer"},status:{type:"string",enum:["rejected"]},reason:{},chunksDelivered:{type:"integer"}}}]}}function Je(e){return{operationConst:e.id,itemsSchema:e.input,resultSchema:rn(e.output)}}function Ze(e,t={}){const r=new Set(t.exclude??[]),o=new Map;for(const n of e){if(r.has(n.id))continue;const i=o.get(n.kind);i?i.push(n):o.set(n.kind,[n])}return o}function Oe(e){return{type:"string",enum:[e]}}function Ne(e,t){return{type:"object",required:["input"],properties:{input:{type:"object",required:["operation","items"],properties:{operation:t,items:{type:"array",items:e.itemsSchema},concurrency:{type:"number"},mode:{type:"string",enum:["parallel","serial","chained"]},onItemError:{type:"string",enum:["continue","abort"]},itemTimeoutMs:{type:"number"}},additionalProperties:!0}},additionalProperties:!1}}function ke(e,t){const r={},o={},n=[["definitions",r],["$defs",o]];for(const i of e){const s=t(i);for(const[a,c]of n){const u=s[a];if(u)for(const[l,f]of Object.entries(u)){const m=c[l];if(m!==void 0&&JSON.stringify(m)!==JSON.stringify(f))throw new Error(`[apigen-core-client] _batch mount: operation "${i.id}" contributes a "${a}.${l}" definition that conflicts with an identically-named definition already hoisted from another batched operation. Two structurally different types share the same generated definition key, so apigen cannot safely merge them into one _batch/<kind> schema.`);c[l]=f}}}return{...Object.keys(r).length>0?{definitions:r}:{},...Object.keys(o).length>0?{$defs:o}:{}}}function Qe(e){if(e.length===0)throw new Error("buildBatchKindSchema: at least one operation is required");const t=e.map(Je),r=ke(e,s=>s.input),o=ke(e,s=>s.output);if(e.length===1){const[s]=e,[a]=t;return{input:{...Ne(a,Oe(s.id)),...r},output:{type:"array",items:a.resultSchema,...o}}}const n=e.map((s,a)=>Ne(t[a],Oe(s.id))),i=X(n);return{input:{oneOf:n,...i?{discriminator:i}:{},...r},output:{oneOf:t.map(s=>({type:"array",items:s.resultSchema})),...o},...i?{discriminator:i}:{}}}function on(e,t={}){const r=Ze(e.operations,t),o=[];for(const[n,i]of r){const{input:s,output:a}=Qe(i),c=Ie(`_batch/${n}`,e,{kind:n,safe:n==="query",input:s,output:a});o.push({...c,operationIds:i.map(u=>u.id)})}return o}exports.buildBatchKindSchema=Qe;exports.buildBatchMountedOperations=on;exports.clearPersistentProjectCache=ot;exports.collectLocalImportPaths=st;exports.composeOnion=Be;exports.composeSchemas=ft;exports.createExtractInvoker=De;exports.createExtractInvokerFromPlugins=Ht;exports.createExtractionSession=fe;exports.deriveBatchOperationBranch=Je;exports.effectiveLanguage=Ge;exports.extract=zt;exports.extractClasses=Zt;exports.groupBatchableOperationsByKind=Ze;exports.isPrimitiveOnlyInputSchema=_e;exports.languageOfSource=We;exports.pluginConsumesSource=He;exports.pluginsToEnvelopeMiddlewares=ct;exports.sourcesForPlugin=nn;exports.syntheticOp=Ie;exports.tokenize=de;
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));let c=require("node:fs");c=s(c);let l=require("node:module"),u=require("node:path");u=s(u);function d(e){return{raw:e,words:e.split(/(?=[A-Z])|[-_]/).map(e=>e.toLowerCase()).filter(Boolean)}}function f(e,t,n={}){let r=e.split(`/`);if(r.length<2||r.some(e=>e.length===0))throw Error(`syntheticOp: id "${e}" must be "<namespace>/<path...>" with non-empty segments`);let[i,...a]=r,o=i.replace(/^_+/,``),s=n.kind??`action`,c={id:e,host:t.host,namespace:d(o),path:a.map(d),kind:s,async:n.async??!1,streaming:n.streaming??!1,safe:n.safe??s===`query`,input:n.input??{},output:n.output??{},envelope:n.envelope??{},typeText:n.typeText??null};return n.hasCtx!==void 0&&(c.hasCtx=n.hasCtx),n.transports!==void 0&&(c.transports=n.transports),c}var p=(0,l.createRequire)(require("node:url").pathToFileURL(__filename).href),m;function h(){return m||(m=p(`ts-morph`).Project,m)}var g=Symbol.for(`adhd.apigen.extraction-session`);function _(e,t){let n=[...e.getImportDeclarations().map(e=>e.getModuleSpecifierSourceFile()),...e.getExportDeclarations().map(e=>e.getModuleSpecifierSourceFile())];for(let e of n){if(!e)continue;let n=e.getFilePath();if(!n.includes(`/node_modules/`)&&!t.has(n)){t.add(n);try{e.refreshFromFileSystemSync()}catch{}_(e,t)}}}function v(e){try{let t=c.default.statSync(e);return`${t.mtimeMs}:${t.size}`}catch{return`nostat`}}var y=new Map,b=new Map;function x(e,t,n){let r=t??``,i=y.get(r),a=n;if(i&&i.fileVersions.size>0){let t=[n],r=[...i.fileVersions.entries()].sort(([e],[t])=>e.localeCompare(t));for(let[n,i]of r)n!==e&&t.push(`${n}:${i}`);a=t.join(`|`)}let o=`${e}\0${t??``}`,s=b.get(o);return s?.version!==a&&(s={version:a,schemas:new Map},b.set(o,s)),s.schemas}function S(){y.clear(),b.clear(),C=void 0}var C;function w(){return C||=new(h())({skipAddingFilesFromTsConfig:!0,compilerOptions:{noLib:!0}}),C}function ee(e){let t=w(),n=t.getSourceFile(e),r=n??t.addSourceFileAtPath(e);if(n)try{n.refreshFromFileSystemSync()}catch{}let i=new Set([e]);return _(r,i),[...i].sort()}function T(){let e={projectsBuilt:0,generatorsBuilt:0,schemaCacheHits:0,schemaCacheMisses:0},t=new Map,n=!1;return{[g]:!0,stats:e,schemaCache:new Map,aliasCache:new WeakMap,zodImportCache:new WeakMap,generatorCache:new Map,projectFor(t){if(n)throw Error(`apigen-core: ExtractionSession used after dispose()`);let r=t??``,i=t?this.statVersion(t):``,a=y.get(r);if(a&&a.tsconfigVersion!==i&&(a=void 0),!a){let n=h();a={project:t?new n({tsConfigFilePath:t,skipAddingFilesFromTsConfig:!0}):new n({skipAddingFilesFromTsConfig:!0}),tsconfigVersion:i,fileVersions:new Map},y.set(r,a),e.projectsBuilt++}return a.project},sourceFileFor(e,t){let n=this.projectFor(t),r=y.get(t??``),i=this.statVersion(e),a=n.getSourceFile(e);if(a===void 0?a=n.addSourceFileAtPath(e):r&&r.fileVersions.get(e)!==i&&a.refreshFromFileSystemSync(),r?.fileVersions.set(e,i),r){let t=new Set([e]);_(a,t);for(let n of t)n!==e&&r.fileVersions.set(n,this.statVersion(n))}return a},statVersion(e){let n=t.get(e);return n===void 0&&(n=v(e),t.set(e,n)),n},dispose(){n=!0,this.schemaCache.clear(),this.generatorCache.clear(),t.clear()}}}function te(e){let t=e;if(t[g]!==!0)throw Error(`apigen-core: unknown ExtractionSession implementation — create sessions with createExtractionSession()`);return t}var E=`x-apigen-logical`;function ne(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)}}var re={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)}},ie={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 ae(e){return e}var oe={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 ae(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 ae(e)}},se={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`))}},ce=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,le={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`&&!ce.test(e))throw TypeError(`[uuid] wire value "${e}" at "${n.path}" is not a lowercase-hyphenated RFC 4122 UUID`);return e}},D=`NaN`,O=`Infinity`,k=`-Infinity`,ue=new Set([D,O,k]);re.id,ie.id,oe.id,se.id,le.id,{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)?D:e===1/0?O:e===-1/0?k:e},decode(e,t,n){if(typeof e==`number`)return e;if(typeof e==`string`){if(e===D)return NaN;if(e===O)return 1/0;if(e===k)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 ${[...ue].join(`, `)}.`);return NaN}}.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 de=new Set([`string`,`number`,`boolean`,`integer`]);function fe(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`?de.has(n):Array.isArray(n)?n.every(e=>de.has(e)||e===`null`):Array.isArray(t.enum)&&t.enum.length>0?t.enum.every(e=>[`string`,`number`,`boolean`].includes(typeof e)):!1}function pe(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(fe)}function me(e){let t=[];for(let n of e){let e={...n.capabilities.layer?.envelopeFields,...n.capabilities.envelope?.request};Object.keys(e).length>0&&t.push({id:n.id,envelope:e})}return t}function he(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{ne(r.input,t),ne(r.output,t)}catch(e){throw Error(`[apigen-core-client] Schema validation failed for function "${n}": ${e.message}`)}}function ge(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 _e(e,t,n){he(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||pe(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:ge(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 ve=8;function ye(e,t){try{return t?e.getText(t):e.getText()}catch{try{return e.getText()}catch{return}}}var be=0;async function xe(e,t,n,r){let i=`__ApigenProbe_${process.pid}_${be++}`,a;try{return a=t.addTypeAlias({name:i,type:n}),await r(a.getType())}catch{return}finally{try{a?.remove()}catch{}}}async function Se(e,t,n){if(n>ve)return{};if(e.isString()||e.isStringLiteral())return e.isStringLiteral()?{type:`string`,enum:[e.getLiteralValue()]}:{type:`string`};if(e.isNumber()||e.isNumberLiteral())return e.isNumberLiteral()?{type:`number`,enum:[e.getLiteralValue()]}:{type:`number`};if(e.isBoolean())return{type:`boolean`};if(e.isBooleanLiteral())return{type:`boolean`,const:e.getText()===`true`};if(e.isNull()||e.isUndefined()||e.isVoid())return{type:`null`};if(e.isUnion()){let r=e.getUnionTypes(),i=r.filter(e=>e.isBooleanLiteral()),a=i.some(e=>e.getText()===`true`),o=i.some(e=>e.getText()===`false`),s=!1,c=r.filter(e=>!e.isBooleanLiteral()||!s&&(s=!0,!0));if(r.every(e=>e.isStringLiteral())&&r.length>0)return{type:`string`,enum:r.map(e=>e.getLiteralValue())};if(r.every(e=>e.isNumberLiteral())&&r.length>0)return{type:`number`,enum:r.map(e=>e.getLiteralValue())};let l=await Promise.all(c.map(async e=>e.isBooleanLiteral()?a&&o?{type:`boolean`}:{type:`boolean`,const:a}:Se(e,t,n+1))),u=j(l);return{oneOf:Ee(Te(l)),...u?{discriminator:u}:{},[E]:`union`}}if(e.isArray()){let n=e.getArrayElementType();return{type:`array`,items:n?await t(n.getText()):{}}}if(e.isTuple()){let n=e.getTupleElements(),r=await Promise.all(n.map(e=>t(e.getText())));return{type:`array`,items:r,minItems:r.length,maxItems:r.length}}if(e.isObject()){let n=e.getStringIndexType(),r=e.getNumberIndexType(),i=n??r,a=e.getProperties();if(i&&a.length===0)return{type:`object`,additionalProperties:await t(i.getText())};let o={},s=[];for(let e of a){let n=e.getName(),r=e.getDeclarations()[0],i;if(r)try{i=e.getTypeAtLocation(r)}catch{i=void 0}if(i!==void 0&&i.getCallSignatures().length>0)continue;let a=i===void 0?void 0:ye(i,r);o[n]=a===void 0?{}:await t(a),e.isOptional()||s.push(n)}if(Object.keys(o).length>0){let e=i?await t(i.getText()):!1;return{type:`object`,properties:o,...s.length>0?{required:s}:{},additionalProperties:e}}return{}}return{}}function Ce(e){return Object.keys(e).length===0||e.type===`object`&&e.additionalProperties!==void 0&&e.additionalProperties!==!1&&(e.properties===void 0||Object.keys(e.properties).length===0)}var we=new Set([`required`,`enum`,`type`]);function A(e,t){if(typeof e!=`object`||!e)return JSON.stringify(e)??`undefined`;if(Array.isArray(e)){let n=e.map(e=>A(e));return t!==void 0&&we.has(t)&&n.sort(),`[${n.join(`,`)}]`}let n=e;return`{${Object.keys(n).filter(e=>n[e]!==void 0).sort().map(e=>`${JSON.stringify(e)}:${A(n[e],e)}`).join(`,`)}}`}function Te(e){let t=new Set,n=[];for(let r of e){let e=A(r);t.has(e)||(t.add(e),n.push(r))}return n}function Ee(e){if(e.length<2)return e.slice();let t=e.map(Ce),n=e.map((e,n)=>t[n]?n:-1).filter(e=>e>=0);if(n.length===0||n.length===e.length)return e.slice();let r=e.map((e,n)=>t[n]?-1:n).filter(e=>e>=0);return e.map((n,i)=>t[i]?{allOf:[n,{not:{anyOf:e.filter((e,n)=>n!==i&&(r.includes(n)||t[n]&&n<i))}}]}:n)}function j(e){if(e.length<2)return;let t=[];for(let n of e){if(n.type!==`object`)return;let e=n.properties;if(!e||typeof e!=`object`)return;t.push(e)}let n=Object.keys(t[0]).filter(e=>t.every(t=>Object.prototype.hasOwnProperty.call(t,e)));for(let e of n){let n=[],r=!0;for(let i of t){let t=i[e],a=t&&(t.type===`string`||t.type===`number`),o=t?.enum;if(!a||!Array.isArray(o)||o.length!==1){r=!1;break}n.push(String(o[0]))}if(!r||new Set(n).size!==n.length)continue;let i={};return n.forEach((e,t)=>{i[e]=`#/oneOf/${t}`}),{propertyName:e,mapping:i}}}function M(e,t,n){if(t>6)return{};let r=e.trim();if(r===`string`)return{type:`string`};if(r===`number`)return{type:`number`};if(r===`boolean`)return{type:`boolean`};if(r===`null`||r===`undefined`)return{type:`null`};let i=N[r];if(i!==void 0)return i;if(n?.size){let e=n.get(r);if(e!==void 0){let t=N[e];if(t!==void 0)return t}}if(r.endsWith(`[]`))return{type:`array`,items:M(r.slice(0,-2),t+1,n)};if(r.includes(`|`)){let e=r.split(`|`).map(e=>e.trim());if(e.every(e=>e.startsWith(`'`)))return{type:`string`,enum:e.map(e=>e.replace(/'/g,``))};let i=e.map(e=>M(e,t+1,n)),a=j(i);return{oneOf:i,...a?{discriminator:a}:{},[E]:`union`}}if(r.startsWith(`{`)&&r.endsWith(`}`)){let e=r.slice(1,-1).trim(),i={};for(let r of e.split(`;`).filter(Boolean)){let[e,a]=r.split(`:`).map(e=>e.trim());e&&a&&(i[e.replace(`?`,``)]=M(a,t+1,n))}return{type:`object`,properties:i}}return{}}function De(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`<`||a===`[`||a===`{`||a===`(`?n++:a===`>`||a===`]`||a===`}`||a===`)`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i).trim()),r=i+1)}let i=e.slice(r).trim();return i.length>0&&t.push(i),t}function Oe(e){let t=/^(?:Readonly)?Map<(.+)>$/.exec(e);return t?t[1]:void 0}function ke(e){let t=/^(?:Readonly)?Set<(.+)>$/.exec(e);return t?t[1]:void 0}function Ae(e){let t=e.trim();if(t.startsWith(`readonly `)&&(t=t.slice(9).trim()),!t.startsWith(`[`)||!t.endsWith(`]`))return;let n=t.slice(1,-1).trim();if(n.length!==0)return De(n)}async function je(e,t){let n=e.trim(),r=Oe(n);if(r!==void 0){let e=De(r);if(e.length===2){let[n,r]=await Promise.all([t(e[0]),t(e[1])]);return{type:`array`,items:{type:`array`,items:[n,r],minItems:2,maxItems:2}}}}let i=ke(n);if(i!==void 0)return{type:`array`,items:await t(i),uniqueItems:!0};let a=Ae(n);if(a!==void 0){let e=await Promise.all(a.map(e=>t(e)));return{type:`array`,items:e,minItems:e.length,maxItems:e.length}}}var Me={"decimal.js":`Decimal`},N={Date:{type:`string`,format:`date-time`},bigint:{type:`string`,format:`int64`},Uint8Array:{type:`string`,format:`byte`},Buffer:{type:`string`,format:`byte`},URL:{type:`string`,format:`uri`},RegExp:{type:`string`,format:`regex`},Decimal:{type:`string`,format:`decimal`}},Ne={Uint8Array:`byte`,Buffer:`byte`,Decimal:`decimal`};function Pe(e){let t=new Map;for(let n of e.getImportDeclarations()){let e=Me[n.getModuleSpecifierValue()];if(!e)continue;let r=n.getDefaultImport();if(r){let n=r.getText();n!==e&&t.set(n,e)}for(let r of n.getNamedImports()){let n=r.getAliasNode()?.getText()??r.getName();n!==e&&t.set(n,e)}}return t}function Fe(e,t){return n=>{n.addNodeParser({supportsNode(e){if(e.kind!==t)return!1;let n=e.typeName?.escapedText??e.typeName?.right?.escapedText;return n!==void 0&&Object.prototype.hasOwnProperty.call(Ne,n)},createType(e){let t=e.typeName?.escapedText??e.typeName?.right?.escapedText,{AnnotatedType:n,StringType:r}=F();return new n(new r,{format:Ne[t]},!1)}}),n.addNodeParser({supportsNode(t){return t.kind===e},createType(){let{AnnotatedType:e,StringType:t}=F();return new e(new t,{format:`int64`},!1)}})}}var P;function F(){return P||(P=p(`ts-json-schema-generator`),P)}var I;function Ie(){if(I)return I;try{let e=u.default.dirname(p.resolve(`ts-json-schema-generator/package.json`));I=p(p.resolve(`typescript`,{paths:[e]}))}catch{I=p(`typescript`)}return I}var L=new Map;function Le(){let e=process.env.APIGEN_PROGRAM_CACHE,t=e===void 0?NaN:Number(e);return Number.isFinite(t)&&t>=0?t:8}function Re(e){let t=L.get(e);return t&&(L.delete(e),L.set(e,t)),t}function ze(e,t){let n=Le();if(n!==0)for(L.delete(e),L.set(e,t);L.size>n;){let e=L.keys().next().value;L.delete(e)}}function Be(e,t){return`${e}\u0000${t??``}`}var Ve=new Set([`zod`,/^zod\/./]);function He(e){for(let t of e.getImportDeclarations()){let e=t.getModuleSpecifierValue();for(let t of Ve)if(typeof t==`string`){if(e===t)return!0}else if(t.test(e))return!0}return!1}function Ue(e){for(let t of[`$defs`,`definitions`]){let n=e[t];if(!n||typeof n!=`object`)continue;let r=Object.keys(n);if(r.length===0)continue;let i=new Set(r.filter(e=>/zod/i.test(e)));for(let[e,t]of Object.entries(n)){if(i.has(e)||typeof t!=`object`||!t)continue;let n=t,r=typeof n.$ref==`string`?n.$ref:``;if(r){for(let t of i)if(r.includes(t)){i.add(e);break}}}for(let e of i)delete n[e]}We(e)}function We(e,t){if(!e||typeof e!=`object`)return;let n=t??new WeakSet;if(!n.has(e)){n.add(e);for(let t of Object.keys(e))if(t===`$ref`&&typeof e[t]==`string`){let n=e[t];/zod/i.test(n)&&delete e[t]}for(let[,t]of Object.entries(e))if(typeof t==`object`&&t){if(Array.isArray(t))for(let e of t)typeof e==`object`&&e&&We(e,n);else We(t,n)}}}function Ge(e){let t=new Set;for(let n of[`$defs`,`definitions`]){let r=e[n];if(r&&typeof r==`object`)for(let e of Object.keys(r))t.add(e)}let n=Ke(e,t);if(n.length>0)throw Error(`[apigen-core-client] Generated schema contains ${n.length} unresolvable $ref(s): ${n.join(`, `)}. This usually means zod-internal definitions were stripped but $ref references to them remain. Check the source file's imports or the ts-json-schema-generator output.`)}function Ke(e,t){if(!e||typeof e!=`object`)return[];let n=[];for(let[r,i]of Object.entries(e))if(r===`$ref`&&typeof i==`string`){let e=i.match(/#\/(?:\$defs|definitions)\/(.+)$/);e&&!t.has(e[1])&&n.push(i)}else if(typeof i==`object`&&i){if(Array.isArray(i))for(let e of i)typeof e==`object`&&e&&n.push(...Ke(e,t));else n.push(...Ke(i,t))}return n}function qe(e){let t=e.anyOf;if(!Array.isArray(t)||t.length<2)return e;let n=t,r=j(n),i={...e};return delete i.anyOf,{...i,oneOf:n,...r?{discriminator:r}:{},[E]:i[`x-apigen-logical`]??`union`}}function Je(e,t,n){let{DEFAULT_CONFIG:r}=p(`ts-json-schema-generator/dist/src/Config.js`),i={...r,...e},a=i.path,o=t?Be(a,i.tsconfig):void 0,s;t&&(s=n?n.statVersion(a):v(a));let c;if(o!==void 0){let e=n?.generatorCache.get(o)??Re(o);e&&e.version===s&&(c=e.gen)}if(!c){let{createProgram:e}=p(`ts-json-schema-generator/dist/factory/program.js`),{createParser:t,createFormatter:r,SchemaGenerator:a}=F(),l=Ie(),u=Fe(l.SyntaxKind.BigIntKeyword,l.SyntaxKind.TypeReference),d=e(i);if(c=new a(d,t(d,i,u),r(i),i),n&&n.stats.generatorsBuilt++,o!==void 0&&s!==void 0){let e={version:s,gen:c};ze(o,e),n?.generatorCache.set(o,e)}}let l=c.createSchema(i.type);return Ue(l),Ge(l),l}function Ye(e,t){let n=e.trim();if(n=Qe(n),t?.size){let e=t.get(n);if(e!==void 0)return e}let r=n.match(/^ReadonlyArray<(.+)>$/);for(r&&(n=`${r[1].trim()}[]`);n.startsWith(`readonly `);)n=n.slice(9).trim();return n}function Xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var Ze=Object.entries(Me).map(([e,t])=>({pattern:RegExp(`import\\(["'][^"']*${Xe(e)}[^"']*["']\\)\\.\\w+`,`g`),key:t}));function Qe(e){let t=e;for(let{pattern:e,key:n}of Ze)t=t.replace(e,n);return t}function $e(e,t){let n=Qe(e);for(let[e,r]of t)n=n.replace(RegExp(`\\b${Xe(e)}\\b`,`g`),r);return n}async function R(e,t,n,r,i,a){let o=t.getFilePath(),s=`${o}${r??``}${n}`,c=a??new Set;if(c.has(s))return{};if(!i){let i=new Set(c);return i.add(s),et(e,t,n,r,void 0,i)}let l=i.schemaCache.get(s);if(l!==void 0)return i.stats.schemaCacheHits++,l;let u=x(o,r,i.statVersion(o)),d=u.get(n);if(d!==void 0)return i.stats.schemaCacheHits++,i.schemaCache.set(s,Promise.resolve(d)),d;i.stats.schemaCacheMisses++;let f=new Set(c);f.add(s);let p=et(e,t,n,r,i,f).then(e=>(u.set(n,e),e)).catch(e=>{throw i.schemaCache.delete(s),e});return i.schemaCache.set(s,p),p}async function et(e,t,n,r,i,a){if([`void`,`undefined`,`null`,`Promise<void>`].includes(n))return{type:`null`};let o;if(i){let e=i.aliasCache.get(t);o=e??Pe(t),e||i.aliasCache.set(t,o)}else o=Pe(t);let s=Ye(n,o),c=N[s];if(c!==void 0)return c;let l=await je(s,n=>R(e,t,n,r,i,a));if(l!==void 0)return l;let u=i?.zodImportCache.get(t)??He(t);if(i&&i.zodImportCache.set(t,u),!u)try{return qe(Je({path:t.getFilePath(),type:s,skipTypeCheck:!0,tsconfig:r,topRef:!1},!0,i))}catch{}try{let n=await xe(e,t,s,n=>Se(n,n=>R(e,t,n,r,i,a),0));if(n!==void 0)return n}catch{}return M($e(s,o),0,o)}function z(e,t,n){if(e?.hasInitializer()){let t=e.getInitializer();if(t)return t.getText()}return tt(n,t)}function tt(e,t){let n=e?.getJsDocs?.()??[],r=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=RegExp(`\\[\\s*${r}\\s*=\\s*([^\\]]+)\\]`);for(let e of n)for(let t of e.getTags()){if(t.getTagName()!==`param`)continue;let e=t.getText().match(i);if(e)return e[1].trim()}}function nt(e){let t=e.trim(),n=t.match(/^(['"`])([\s\S]*)\1$/);if(n)return n[2];if(t===`true`)return!0;if(t===`false`)return!1;if(t===`null`)return null;if(t!==`undefined`){if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);try{return JSON.parse(t)}catch{return t}}}function rt(e,t){let n=nt(t);if(n===void 0)return;e.default=n;let r=typeof n==`string`?n:JSON.stringify(n),i=typeof e.description==`string`?e.description:void 0;e.description=i?`${i} (default: ${r})`:`(default: ${r})`}var B;function it(){return B||(B=p(`ts-morph`).SyntaxKind,B)}function V(e){try{if(!e)return;let t=it();if(e.getKind()!==t.TypeReference)return;let n=e;if(n.getTypeArguments().length>0)return;let r=n.getTypeName();if(r.getKind()!==t.Identifier)return;let i=r.getSymbol();if(!i)return;let a=i.getDeclarations().find(e=>e.getKindName()===`TypeAliasDeclaration`);if(!a)return;let o=a,s=o.getType();if(!(s.isString()||s.isNumber()||s.isBoolean()))return;let c=o.getJsDocs();for(let e of c)for(let t of e.getTags())if(t.getTagName()===`format`){let e=t.getCommentText();if(e!==void 0)return e.trim()}return}catch{return}}var at=new Set([`AsyncGenerator`,`AsyncIterableIterator`,`AsyncIterable`,`Generator`,`IterableIterator`,`Iterable`,`ApiStream`]);function ot(e){let t=[],n=0,r=``;for(let i of e)i===`<`||i===`(`||i===`[`||i===`{`?n++:(i===`>`||i===`)`||i===`]`||i===`}`)&&n--,i===`,`&&n===0?(t.push(r.trim()),r=``):r+=i;return r.trim().length>0&&t.push(r.trim()),t}function H(e){let t=e.trim(),n=t.indexOf(`<`);if(n===-1||!t.endsWith(`>`))return null;let r=t.slice(0,n),i=r.includes(`.`)?r.slice(r.lastIndexOf(`.`)+1):r;if(!at.has(i))return null;let a=0;for(let e=n;e<t.length;e++){let n=t[e];if(n===`<`)a++;else if(n===`>`&&(a--,a===0&&e!==t.length-1))return null}if(a!==0)return null;let o=ot(t.slice(n+1,-1));return o.length>0?o[0]:null}async function st(e){let t=e.session===void 0,n=te(e.session??T());try{return await ct(e,n)}finally{t&&n.dispose()}}async function ct(e,t){let{sourceFile:n,namespace:r=``,dropFileSegment:i=!1,tsconfig:a}=e,o=t.projectFor(a),s=t.sourceFileFor(n,a),c=q(pt(u.default.basename(n))),l=i?null:c,d=q(r),f=[];for(let[e,n]of s.getExportedDeclarations()){if(e==="default"||Y(e))continue;let r=ht(n);if(r){let n=r.getSignature(),i=gt(n,r),c=n.getReturnType().getText(),u=U(n);f.push(await W(o,s,d,l,e,i,c,r.isAsync(),a,t,u));continue}let i=n.find(e=>e.getKindName()===`VariableDeclaration`);if(!i)continue;let c=i.getInitializer(),u=c?.getKindName();if(c&&[`ArrowFunction`,`FunctionExpression`].includes(u??``)){let n=i.getType().getCallSignatures();if(n.length===0)continue;let r=n[0],u=_t(r,i,i.getVariableStatement()),p=r.getReturnType().getText(),m=U(r),h=c.isAsync();f.push(await W(o,s,d,l,e,u,p,h,a,t,m))}else if(u===`ObjectLiteralExpression`){let n=i.getType();for(let r of n.getProperties()){let n=r.getName();if(Y(n))continue;let c=r.getTypeAtLocation(i).getCallSignatures();if(c.length===0)continue;let u=c[0],p=_t(u,i,i.getVariableStatement()),m=u.getReturnType().getText(),h=U(u),g=[...l?[l]:[],q(e),q(n)];f.push(await G(o,s,d,g,n,p,m,!1,a,t,h))}}else{let n=i.getType(),r=n.getText();if(X(n,i)){let n=await R(o,s,r,a,t);f.push(dt(d,l,e,n))}else console.warn(`[apigen-core] Skipping non-callable, non-serializable export: ${e}`)}}let p=s.getDefaultExportSymbol();if(p){let e=s.getExportAssignment(e=>!e.isExportEquals());if(e){let n=e.getExpression(),r=n.getKindName();if([`ArrowFunction`,`FunctionExpression`].includes(r)){let r=n.getType().getCallSignatures();if(r.length>0){let i=r[0],c=J(i,e),u=i.getReturnType().getText(),p=U(i),m=n.isAsync();f.push(await W(o,s,d,l,`default`,c,u,m,a,t,p))}}else{let r=n.getType();for(let n of r.getProperties()){let r=n.getName();if(Y(r))continue;let i=n.getTypeAtLocation(e).getCallSignatures();if(i.length===0)continue;let c=i[0],u=J(c,e),p=c.getReturnType().getText(),m=U(c),h=[...l?[l]:[],q(`default`),q(r)];f.push(await G(o,s,d,h,r,u,p,!1,a,t,m))}}}else{let e=p.getDeclarations();for(let n of e){if(n.getKindName()!==`FunctionDeclaration`)continue;let e=n,r=e.getName(),i=r&&r.length>0?r:`default`,c=e.getSignature(),u=gt(c,e),p=c.getReturnType().getText(),m=U(c);f.push(await W(o,s,d,l,i,u,p,e.isAsync(),a,t,m))}}}let m=mt(s);if(m.length>0)for(let{name:e,sig:n}of m){if(Y(e))continue;let r=J(n),i=n.getReturnType().getText(),c=U(n),u=[...l?[l]:[],q(e)];f.push(await G(o,s,d,u,e,r,i,!1,a,t,c))}return f}function lt(e,t,n,r){let i=new Set,a=e=>{if(Array.isArray(e))return e.map(a);if(!e||typeof e!=`object`||i.has(e))return e;i.add(e);try{let i=e,o={};for(let[e,s]of Object.entries(i)){if(e===`definitions`||e===`$defs`){let i=e,o=t[i];for(let[e,t]of Object.entries(s)){let s=a(t),c=o[e];if(c!==void 0&&JSON.stringify(c)!==JSON.stringify(s))throw Error(`[apigen-core-client] Function "${n}": param "${r}" contributes a "${i}.${e}" definition that conflicts with an identically-named definition already hoisted from another param/output in the same function. Two structurally different types share the same generated definition key, so apigen cannot safely merge them into one function-level schema.`);o[e]=s}continue}o[e]=a(s)}return o}finally{i.delete(e)}};return a(e)}function ut(e,t){if(!t||e.format!==void 0||`$ref`in e||`properties`in e||`items`in e)return;let n=e.type;(n===`string`||n===`number`||n===`integer`||n===`boolean`)&&(e.format=t)}function U(e){try{return V(e.getDeclaration()?.getReturnTypeNode())}catch{return}}async function W(e,t,n,r,i,a,o,s,c,l,u){let d=q(i);return G(e,t,n,r?[r,d]:[d],i,a,o,s,c,l,u)}async function G(e,t,n,r,i,a,o,s,c,l,u){let d=a.length>0&&a[0].name===`ctx`,f=a.filter(e=>e.name!==`ctx`),p=f.filter(e=>!e.optional).map(e=>e.name),m={},h={definitions:{},$defs:{}};for(let n of f){let r=lt(await R(e,t,n.type,c,l),h,i,n.name);n.defaultValue!==void 0&&rt(r,n.defaultValue),ut(r,n.format),m[n.name]=r}let g=o.replace(/^Promise<(.+)>$/,`$1`).trim(),_=H(g),v=_!==null,y=v?_:g,b=await R(e,t,y,c,l),x={definitions:{},$defs:{}},S=lt(b,x,i,`<return>`),C=u?{...S}:S;ut(C,u),Object.keys(x.definitions).length>0&&(C.definitions={...C.definitions,...x.definitions}),Object.keys(x.$defs).length>0&&(C.$defs={...C.$defs,...x.$defs});let w={type:`object`,properties:m,required:p,...Object.keys(h.definitions).length>0?{definitions:h.definitions}:{},...Object.keys(h.$defs).length>0?{$defs:h.$defs}:{}};return{id:ft(n,r),host:`ts`,namespace:n,path:r,kind:`action`,async:s,streaming:v,safe:!1,input:w,output:C,envelope:{},typeText:{lang:`ts`,input:vt(a),output:y},...d?{hasCtx:!0}:{}}}function dt(e,t,n,r){let i=q(n),a=t?[t,i]:[i];return{id:ft(e,a),host:`ts`,namespace:e,path:a,kind:`query`,async:!1,streaming:!1,safe:!0,input:{type:`object`,properties:{},required:[]},output:r,envelope:{},typeText:null}}function ft(e,t){return(e.raw?[e,...t]:t).map(e=>e.words.join(`-`)).join(`/`)}function K(e){return e.split(/[-_.]+/).flatMap(e=>e.replace(/([A-Z]+)([A-Z][a-z])/g,`$1_$2`).replace(/([a-z\d])([A-Z])/g,`$1_$2`).split(`_`).filter(Boolean)).map(e=>e.toLowerCase()).filter(Boolean)}function q(e){return{raw:e,words:K(e)}}function pt(e){return e.replace(/\.[^.]+$/,``).replace(/[._]+/g,`-`)}function mt(e){let t=[];for(let n of e.getStatements()){if(n.getKindName()!==`ExpressionStatement`)continue;let e=n.getExpression();if(e.getKindName()!==`BinaryExpression`)continue;let r=e;if(r.getLeft().getText().trim()!==`module.exports`||r.getOperatorToken().getKindName()!==`EqualsToken`)continue;let i=r.getRight(),a=i.getType();for(let e of a.getProperties()){let n=e.getTypeAtLocation(i).getCallSignatures();n.length!==0&&t.push({name:e.getName(),sig:n[0]})}}return t}function ht(e){let t;for(let n of e){if(n.getKindName()!==`FunctionDeclaration`)continue;let e=n;if(t||=e,e.getBody())return e}return t}function gt(e,t){return e.getParameters().map(n=>{let r=n.getDeclarations(),i=r.length>0&&r[0].getKindName()===`Parameter`?r[0]:null,a=n.isOptional()||(i?.hasInitializer()??!1)||(i?.hasQuestionToken?.()??!1);return{name:n.getName(),type:n.getTypeAtLocation(e.getDeclaration()).getText(),optional:a,defaultValue:z(i,n.getName(),t),format:V(i?.getTypeNode())}})}function _t(e,t,n){return e.getParameters().map(e=>{let r=e.getDeclarations(),i=r.length>0&&r[0].getKindName()===`Parameter`?r[0]:null,a=e.isOptional()||(i?.hasInitializer()??!1)||(i?.hasQuestionToken?.()??!1);return{name:e.getName(),type:e.getTypeAtLocation(t).getText(),optional:a,defaultValue:z(i,e.getName(),n??t),format:V(i?.getTypeNode())}})}function J(e,t){return e.getParameters().map(e=>{let n=e.getDeclarations(),r=n.length>0&&n[0].getKindName()===`Parameter`?n[0]:null,i=e.isOptional()||(r?.hasInitializer()??!1)||(r?.hasQuestionToken?.()??!1);return{name:e.getName(),type:r?r.getType().getText():e.getValueDeclaration()?.getType()?.getText()??`unknown`,optional:i,defaultValue:z(r,e.getName(),t),format:V(r?.getTypeNode())}})}function vt(e){let t=e.filter(e=>e.name!==`ctx`);return t.length===0?`()`:`(`+t.map(e=>`${e.name}${e.optional?`?`:``}: ${e.type}`).join(`, `)+`)`}function Y(e){return!!(e===`__samples__`||e.startsWith(`__`))}function X(e,t,n=new Set){if(e.getCallSignatures().length>0||e.getConstructSignatures().length>0)return!1;if(e.isString()||e.isNumber()||e.isBoolean()||e.isNull()||e.isUndefined()||e.isStringLiteral()||e.isNumberLiteral()||e.isBooleanLiteral()||e.isEnumLiteral())return!0;if(e.isArray()||e.isReadonlyArray()){let r=e.getArrayElementType();return r?X(r,t,n):!1}if(e.isTuple())return e.getTupleElements().every(e=>X(e,t,n));if(e.isUnion())return e.getUnionTypes().every(e=>X(e,t,n));if(e.isIntersection())return e.getIntersectionTypes().every(e=>X(e,t,n));if(e.isObject()){let r=e.getText(t);if(n.has(r))return!0;n.add(r);let i=e.getStringIndexType(),a=e.getNumberIndexType();if(i||a)return[i,a].every(e=>!e||X(e,t,n));let o=e.getProperties();return o.length===0||o.every(e=>X(e.getTypeAtLocation(t),t,n))}return!1}function yt(e,t){return async n=>{let r=()=>t(n);for(let t=e.length-1;t>=0;t--){let i=e[t],a=r;r=()=>i(n,a)}return r()}}function bt(e,t){return yt(e,t)}function xt(e,t,n={}){return bt(e.map(e=>e.capabilities.extractLayer).filter(e=>!!e).map(e=>e.createLayer?e.createLayer(n):e.layer).filter(e=>!!e),t)}var Z;function St(){return Z||(Z=p(`ts-morph`).Scope,Z)}async function Ct(e){let t=e.session===void 0,n=te(e.session??T());try{return await wt(e,n)}finally{t&&n.dispose()}}async function wt(e,t){let{sourceFile:n,namespace:r=``,tsconfig:i,includeInstances:a=!1}=e,o=t.projectFor(i),s=t.sourceFileFor(n,i),c=$(Et(u.default.basename(n))),l=$(r),d=[];for(let[e,n]of s.getExportedDeclarations()){let r=n.find(e=>e.getKindName()===`ClassDeclaration`);if(!r)continue;let u=e==="default"?r.getName():e;if(!u||At(u))continue;let f=$(u),p=St();for(let e of r.getStaticMethods()){let n=e.getName();if(At(n))continue;let r=e.getScope();if(r===p.Private||r===p.Protected)continue;let a=e.getSignature(),u=Dt(a,e),m=a.getReturnType().getText(),h=e.isAsync(),g=[c,f,$(n)];d.push(await Tt(o,s,l,g,u,m,h,i,t))}if(a){{let e=r.getConstructors()[0]??null,n=[];e&&(n=Dt(e.getSignature(),e));let a=[c,f],u=Q(l,a),p=n.filter(e=>e.name!==`ctx`),m=p.filter(e=>!e.optional).map(e=>e.name),h={};for(let e of p)h[e.name]=await R(o,s,e.type,i,t);d.push({id:u,host:`ts`,namespace:l,path:a,kind:`constructor`,async:!1,streaming:!1,safe:!1,input:{type:`object`,properties:h,required:m},output:{type:`object`,properties:{instanceId:{type:`string`}},required:[`instanceId`]},envelope:{},typeText:{lang:`ts`,input:kt(n),output:`{ instanceId: string }`}})}for(let e of r.getInstanceMethods()){let n=e.getName();if(At(n))continue;let r=e.getScope();if(r===p.Private||r===p.Protected)continue;let a=e.getSignature(),u=Dt(a,e),m=a.getReturnType().getText(),h=e.isAsync(),g=[c,f,$(n)],_=Q(l,g),v=u.filter(e=>e.name!==`ctx`),y=v.filter(e=>!e.optional).map(e=>e.name),b={};for(let e of v)b[e.name]=await R(o,s,e.type,i,t);let x=m.replace(/^Promise<(.+)>$/,`$1`).trim(),S=H(x),C=S!==null,w=C?S:x,ee=await R(o,s,w,i,t);d.push({id:_,host:`ts`,namespace:l,path:g,kind:`instance-method`,async:h,streaming:C,safe:!1,input:{type:`object`,properties:b,required:y},output:ee,envelope:{type:`object`,properties:{instanceId:{type:`string`}},required:[`instanceId`]},typeText:{lang:`ts`,input:Ot(u),output:w}})}}}return d}async function Tt(e,t,n,r,i,a,o,s,c){let l=i.filter(e=>e.name!==`ctx`),u=l.filter(e=>!e.optional).map(e=>e.name),d={};for(let n of l)d[n.name]=await R(e,t,n.type,s,c);let f=a.replace(/^Promise<(.+)>$/,`$1`).trim(),p=H(f),m=p!==null,h=m?p:f,g=await R(e,t,h,s,c);return{id:Q(n,r),host:`ts`,namespace:n,path:r,kind:`action`,async:o,streaming:m,safe:!1,input:{type:`object`,properties:d,required:u},output:g,envelope:{},typeText:{lang:`ts`,input:Ot(i),output:h}}}function Q(e,t){return(e.raw?[e,...t]:t).map(e=>e.words.join(`-`)).join(`/`)}function $(e){return{raw:e,words:K(e)}}function Et(e){return e.replace(/\.[^.]+$/,``).replace(/[._]+/g,`-`)}function Dt(e,t){return e.getParameters().map(e=>{let n=e.getDeclarations(),r=n.length>0&&n[0].getKindName()===`Parameter`?n[0]:null,i=e.isOptional()||(r?.hasInitializer()??!1)||(r?.hasQuestionToken?.()??!1);return{name:e.getName(),type:e.getTypeAtLocation(t).getText(),optional:i}})}function Ot(e){let t=e.filter(e=>e.name!==`ctx`);return t.length===0?`()`:`(`+t.map(e=>`${e.name}${e.optional?`?`:``}: ${e.type}`).join(`, `)+`)`}function kt(e){return e.length===0?`()`:`(`+e.map(e=>`${e.name}${e.optional?`?`:``}: ${e.type}`).join(`, `)+`)`}function At(e){return!!(e===`__samples__`||e.startsWith(`__`)||e.startsWith(`_`))}var jt=new Map([[`.ts`,`ts`],[`.tsx`,`ts`],[`.mts`,`ts`],[`.cts`,`ts`],[`.py`,`py`],[`.rs`,`rust`],[`.go`,`go`],[`.java`,`java`]]);function Mt(e){let t=u.extname(e).toLowerCase();return jt.get(t)}function Nt(e){return e.language??`ts`}function Pt(e,t){let n=Mt(t);return n!==void 0&&n===Nt(e)}function Ft(e,t){return t.filter(t=>Pt(e,t))}function It(e){return{oneOf:[{type:`object`,required:[`index`,`status`,`value`],properties:{index:{type:`integer`},status:{type:`string`,enum:[`fulfilled`]},value:e}},{type:`object`,required:[`index`,`status`,`chunks`],properties:{index:{type:`integer`},status:{type:`string`,enum:[`fulfilled`]},chunks:{type:`array`}}},{type:`object`,required:[`index`,`status`,`reason`],properties:{index:{type:`integer`},status:{type:`string`,enum:[`rejected`]},reason:{},chunksDelivered:{type:`integer`}}}]}}function Lt(e){return{operationConst:e.id,itemsSchema:e.input,resultSchema:It(e.output)}}function Rt(e,t={}){let n=new Set(t.exclude??[]),r=new Map;for(let t of e){if(n.has(t.id))continue;let e=r.get(t.kind);e?e.push(t):r.set(t.kind,[t])}return r}function zt(e){return{type:`string`,enum:[e]}}function Bt(e,t){return{type:`object`,required:[`input`],properties:{input:{type:`object`,required:[`operation`,`items`],properties:{operation:t,items:{type:`array`,items:e.itemsSchema},concurrency:{type:`number`},mode:{type:`string`,enum:[`parallel`,`serial`,`chained`]},onItemError:{type:`string`,enum:[`continue`,`abort`]},itemTimeoutMs:{type:`number`}},additionalProperties:!0}},additionalProperties:!1}}function Vt(e,t){let n={},r={},i=[[`definitions`,n],[`$defs`,r]];for(let n of e){let e=t(n);for(let[t,r]of i){let i=e[t];if(i)for(let[e,a]of Object.entries(i)){let i=r[e];if(i!==void 0&&JSON.stringify(i)!==JSON.stringify(a))throw Error(`[apigen-core-client] _batch mount: operation "${n.id}" contributes a "${t}.${e}" definition that conflicts with an identically-named definition already hoisted from another batched operation. Two structurally different types share the same generated definition key, so apigen cannot safely merge them into one _batch/<kind> schema.`);r[e]=a}}}return{...Object.keys(n).length>0?{definitions:n}:{},...Object.keys(r).length>0?{$defs:r}:{}}}function Ht(e){if(e.length===0)throw Error(`buildBatchKindSchema: at least one operation is required`);let t=e.map(Lt),n=Vt(e,e=>e.input),r=Vt(e,e=>e.output);if(e.length===1){let[i]=e,[a]=t;return{input:{...Bt(a,zt(i.id)),...n},output:{type:`array`,items:a.resultSchema,...r}}}let i=e.map((e,n)=>Bt(t[n],zt(e.id))),a=j(i);return{input:{oneOf:i,...a?{discriminator:a}:{},...n},output:{oneOf:t.map(e=>({type:`array`,items:e.resultSchema})),...r},...a?{discriminator:a}:{}}}function Ut(e,t={}){let n=Rt(e.operations,t),r=[];for(let[t,i]of n){let{input:n,output:a}=Ht(i),o=f(`_batch/${t}`,e,{kind:t,safe:t===`query`,input:n,output:a});r.push({...o,operationIds:i.map(e=>e.id)})}return r}exports.buildBatchKindSchema=Ht,exports.buildBatchMountedOperations=Ut,exports.clearPersistentProjectCache=S,exports.collectLocalImportPaths=ee,exports.composeOnion=yt,exports.composeSchemas=_e,exports.createExtractInvoker=bt,exports.createExtractInvokerFromPlugins=xt,exports.createExtractionSession=T,exports.deriveBatchOperationBranch=Lt,exports.effectiveLanguage=Nt,exports.extract=st,exports.extractClasses=Ct,exports.groupBatchableOperationsByKind=Rt,exports.isPrimitiveOnlyInputSchema=pe,exports.languageOfSource=Mt,exports.pluginConsumesSource=Pt,exports.pluginsToEnvelopeMiddlewares=me,exports.sourcesForPlugin=Ft,exports.syntheticOp=f,exports.tokenize=K;