tjs-lang 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,49 +1,49 @@
1
- var R8=Object.defineProperty;var B8=(Z,$)=>()=>($||Z(($={exports:{}}).exports,$),$.exports);var M8=(Z)=>Z;function w8(Z,$){this[Z]=M8.bind(null,$)}var F8=(Z,$)=>{for(var X in $)R8(Z,X,{get:$[X],enumerable:!0,configurable:!0,set:w8.bind($,X)})};var j8=(Z,$)=>()=>(Z&&($=Z(Z=0)),$);var j4=((Z)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(Z,{get:($,X)=>(typeof require<"u"?require:$)[X]}):Z)(function(Z){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+Z+'" is not supported')});var z7=B8(($K,aZ)=>{aZ.exports={name:"tjs-lang",version:"0.6.6",description:"Type-safe JavaScript dialect with runtime validation, sandboxed VM execution, and AI agent orchestration. Transpiles TypeScript to validated JS with fuel-metered execution for untrusted code.",keywords:["typescript","transpiler","runtime-validation","type-safety","sandbox","virtual-machine","wasm-alternative","ai-agents","llm","orchestration","security","fuel-metering","capability-based","json-ast","untrusted-code"],license:"Apache-2.0",main:"./dist/index.js",exports:{".":{bun:"./src/index.ts",default:"./dist/index.js"},"./eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang":{bun:"./src/lang/index.ts",default:"./dist/lang/index.js"},"./lang/eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang/from-ts":{bun:"./src/lang/emitters/from-ts.ts",default:"./dist/lang/emitters/from-ts.js"},"./src":"./src/index.ts","./editors/monaco":"./editors/monaco/ajs-monarch.js","./editors/codemirror":"./editors/codemirror/ajs-language.js","./editors/ace":"./editors/ace/ajs-mode.js"},bin:{tjs:"./src/cli/tjs.ts",tjsx:"./src/cli/tjsx.ts","tjs-playground":"./src/cli/playground.ts","create-tjs-app":"./src/cli/create-app.ts","ajs-install-vscode":"./bin/install-vscode.sh","ajs-install-cursor":"./bin/install-cursor.sh"},type:"module",files:["dist","src","docs","editors","bin","demo","tjs-lang.svg","CONTEXT.md","CLAUDE.md"],sideEffects:!1,repository:{type:"git",url:"https://github.com/tonioloewald/tjs-lang.git"},devDependencies:{"@codemirror/lang-javascript":"^6.2.4","@codemirror/state":"^6.5.3","@codemirror/view":"^6.39.9","@happy-dom/global-registrator":"^20.1.0","@types/bun":"latest","@types/jsdom":"^21.1.7","@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","acorn-walk":"^8.3.4",chokidar:"^4.0.3",codemirror:"^6.0.2",eslint:"^8.57.1","firebase-admin":"^13.6.0","firebase-functions":"^7.0.5",marked:"^9.1.6",prettier:"^2.8.8",tosijs:"^1.2.0","tosijs-ui":"^1.2.0",typescript:"^5.6.2",valibot:"^0.36.0",vitest:"^2.0.5"},scripts:{format:"bun eslint src --fix && bun prettier --write .",lint:"eslint src","build:grammars":"bun editors/build-grammars.ts","test:fast":"SKIP_LLM_TESTS=1 SKIP_BENCHMARKS=1 bun test","test:llm":"bun test src/batteries/models.integration.test.ts",bench:"bun bin/benchmarks.ts",make:"rm -rf dist && bun format && bun run build:grammars && tsc -p tsconfig.build.json && bun scripts/build.ts","build:bundles":"bun scripts/build.ts",typecheck:"tsc --noEmit",latest:"rm -rf node_modules && bun install",docs:"node bin/docs.js",dev:"bun run bin/dev.ts","build:demo":"bun scripts/build-demo.ts","build:cli":"bun build src/cli/tjs.ts --compile --outfile=dist/tjs && bun build src/cli/tjsx.ts --compile --outfile=dist/tjsx","functions:build":"cd functions && npm run build","functions:deploy":"cd functions && npm run deploy","functions:serve":"cd functions && npm run serve","deploy:hosting":"firebase deploy --only hosting",deploy:"npm run build:demo && npm run functions:deploy && firebase deploy --only hosting",start:"bun run build:demo && bun run dev"},dependencies:{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-markdown":"^6.5.0","@codemirror/theme-one-dark":"^6.1.3",acorn:"^8.15.0",firebase:"^10.12.0","tosijs-schema":"^1.2.0"}}});var Y6={};F8(Y6,{sep:()=>Z8,resolve:()=>I4,relative:()=>c7,posix:()=>X8,parse:()=>e7,normalize:()=>H6,join:()=>n7,isAbsolute:()=>p7,format:()=>t7,extname:()=>r7,dirname:()=>s7,delimiter:()=>$8,default:()=>t$,basename:()=>a7,_makeLong:()=>o7});function B1(Z){if(typeof Z!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(Z))}function i7(Z,$){var X="",Q=0,K=-1,H=0,Y;for(var z=0;z<=Z.length;++z){if(z<Z.length)Y=Z.charCodeAt(z);else if(Y===47)break;else Y=47;if(Y===47){if(K===z-1||H===1);else if(K!==z-1&&H===2){if(X.length<2||Q!==2||X.charCodeAt(X.length-1)!==46||X.charCodeAt(X.length-2)!==46){if(X.length>2){var W=X.lastIndexOf("/");if(W!==X.length-1){if(W===-1)X="",Q=0;else X=X.slice(0,W),Q=X.length-1-X.lastIndexOf("/");K=z,H=0;continue}}else if(X.length===2||X.length===1){X="",Q=0,K=z,H=0;continue}}if($){if(X.length>0)X+="/..";else X="..";Q=2}}else{if(X.length>0)X+="/"+Z.slice(K+1,z);else X=Z.slice(K+1,z);Q=z-K-1}K=z,H=0}else if(Y===46&&H!==-1)++H;else H=-1}return X}function r$(Z,$){var X=$.dir||$.root,Q=$.base||($.name||"")+($.ext||"");if(!X)return Q;if(X===$.root)return X+Q;return X+Z+Q}function I4(){var Z="",$=!1,X;for(var Q=arguments.length-1;Q>=-1&&!$;Q--){var K;if(Q>=0)K=arguments[Q];else{if(X===void 0)X=process.cwd();K=X}if(B1(K),K.length===0)continue;Z=K+"/"+Z,$=K.charCodeAt(0)===47}if(Z=i7(Z,!$),$)if(Z.length>0)return"/"+Z;else return"/";else if(Z.length>0)return Z;else return"."}function H6(Z){if(B1(Z),Z.length===0)return".";var $=Z.charCodeAt(0)===47,X=Z.charCodeAt(Z.length-1)===47;if(Z=i7(Z,!$),Z.length===0&&!$)Z=".";if(Z.length>0&&X)Z+="/";if($)return"/"+Z;return Z}function p7(Z){return B1(Z),Z.length>0&&Z.charCodeAt(0)===47}function n7(){if(arguments.length===0)return".";var Z;for(var $=0;$<arguments.length;++$){var X=arguments[$];if(B1(X),X.length>0)if(Z===void 0)Z=X;else Z+="/"+X}if(Z===void 0)return".";return H6(Z)}function c7(Z,$){if(B1(Z),B1($),Z===$)return"";if(Z=I4(Z),$=I4($),Z===$)return"";var X=1;for(;X<Z.length;++X)if(Z.charCodeAt(X)!==47)break;var Q=Z.length,K=Q-X,H=1;for(;H<$.length;++H)if($.charCodeAt(H)!==47)break;var Y=$.length,z=Y-H,W=K<z?K:z,G=-1,J=0;for(;J<=W;++J){if(J===W){if(z>W){if($.charCodeAt(H+J)===47)return $.slice(H+J+1);else if(J===0)return $.slice(H+J)}else if(K>W){if(Z.charCodeAt(X+J)===47)G=J;else if(J===0)G=0}break}var L=Z.charCodeAt(X+J),_=$.charCodeAt(H+J);if(L!==_)break;else if(L===47)G=J}var U="";for(J=X+G+1;J<=Q;++J)if(J===Q||Z.charCodeAt(J)===47)if(U.length===0)U+="..";else U+="/..";if(U.length>0)return U+$.slice(H+G);else{if(H+=G,$.charCodeAt(H)===47)++H;return $.slice(H)}}function o7(Z){return Z}function s7(Z){if(B1(Z),Z.length===0)return".";var $=Z.charCodeAt(0),X=$===47,Q=-1,K=!0;for(var H=Z.length-1;H>=1;--H)if($=Z.charCodeAt(H),$===47){if(!K){Q=H;break}}else K=!1;if(Q===-1)return X?"/":".";if(X&&Q===1)return"//";return Z.slice(0,Q)}function a7(Z,$){if($!==void 0&&typeof $!=="string")throw TypeError('"ext" argument must be a string');B1(Z);var X=0,Q=-1,K=!0,H;if($!==void 0&&$.length>0&&$.length<=Z.length){if($.length===Z.length&&$===Z)return"";var Y=$.length-1,z=-1;for(H=Z.length-1;H>=0;--H){var W=Z.charCodeAt(H);if(W===47){if(!K){X=H+1;break}}else{if(z===-1)K=!1,z=H+1;if(Y>=0)if(W===$.charCodeAt(Y)){if(--Y===-1)Q=H}else Y=-1,Q=z}}if(X===Q)Q=z;else if(Q===-1)Q=Z.length;return Z.slice(X,Q)}else{for(H=Z.length-1;H>=0;--H)if(Z.charCodeAt(H)===47){if(!K){X=H+1;break}}else if(Q===-1)K=!1,Q=H+1;if(Q===-1)return"";return Z.slice(X,Q)}}function r7(Z){B1(Z);var $=-1,X=0,Q=-1,K=!0,H=0;for(var Y=Z.length-1;Y>=0;--Y){var z=Z.charCodeAt(Y);if(z===47){if(!K){X=Y+1;break}continue}if(Q===-1)K=!1,Q=Y+1;if(z===46){if($===-1)$=Y;else if(H!==1)H=1}else if($!==-1)H=-1}if($===-1||Q===-1||H===0||H===1&&$===Q-1&&$===X+1)return"";return Z.slice($,Q)}function t7(Z){if(Z===null||typeof Z!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof Z);return r$("/",Z)}function e7(Z){B1(Z);var $={root:"",dir:"",base:"",ext:"",name:""};if(Z.length===0)return $;var X=Z.charCodeAt(0),Q=X===47,K;if(Q)$.root="/",K=1;else K=0;var H=-1,Y=0,z=-1,W=!0,G=Z.length-1,J=0;for(;G>=K;--G){if(X=Z.charCodeAt(G),X===47){if(!W){Y=G+1;break}continue}if(z===-1)W=!1,z=G+1;if(X===46){if(H===-1)H=G;else if(J!==1)J=1}else if(H!==-1)J=-1}if(H===-1||z===-1||J===0||J===1&&H===z-1&&H===Y+1){if(z!==-1)if(Y===0&&Q)$.base=$.name=Z.slice(1,z);else $.base=$.name=Z.slice(Y,z)}else{if(Y===0&&Q)$.name=Z.slice(1,H),$.base=Z.slice(1,z);else $.name=Z.slice(Y,H),$.base=Z.slice(Y,z);$.ext=Z.slice(H,z)}if(Y>0)$.dir=Z.slice(0,Y-1);else if(Q)$.dir="/";return $}var Z8="/",$8=":",X8,t$;var z6=j8(()=>{X8=((Z)=>(Z.posix=Z,Z))({resolve:I4,normalize:H6,isAbsolute:p7,join:n7,relative:c7,_makeLong:o7,dirname:s7,basename:a7,extname:r7,format:t7,parse:e7,sep:Z8,delimiter:$8,win32:null,posix:null}),t$=X8});import*as m6 from"acorn";class d extends Error{line;column;source;filename;constructor(Z,$,X,Q){let K=`${Q||"<source>"}:${$.line}:${$.column}`;super(`${Z} at ${K}`);this.name="TranspileError",this.line=$.line,this.column=$.column,this.source=X,this.filename=Q}}class Q1 extends d{constructor(Z,$,X,Q){super(Z,$,X,Q);this.name="SyntaxError"}formatWithContext(Z=2){if(!this.source)return this.message;let $=this.source.split(`
1
+ var R8=Object.defineProperty;var B8=(Z,$)=>()=>($||Z(($={exports:{}}).exports,$),$.exports);var M8=(Z)=>Z;function w8(Z,$){this[Z]=M8.bind(null,$)}var F8=(Z,$)=>{for(var X in $)R8(Z,X,{get:$[X],enumerable:!0,configurable:!0,set:w8.bind($,X)})};var j8=(Z,$)=>()=>(Z&&($=Z(Z=0)),$);var j4=((Z)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(Z,{get:($,X)=>(typeof require<"u"?require:$)[X]}):Z)(function(Z){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+Z+'" is not supported')});var z7=B8(($K,aZ)=>{aZ.exports={name:"tjs-lang",version:"0.6.7",description:"Type-safe JavaScript dialect with runtime validation, sandboxed VM execution, and AI agent orchestration. Transpiles TypeScript to validated JS with fuel-metered execution for untrusted code.",keywords:["typescript","transpiler","runtime-validation","type-safety","sandbox","virtual-machine","wasm-alternative","ai-agents","llm","orchestration","security","fuel-metering","capability-based","json-ast","untrusted-code"],license:"Apache-2.0",main:"./dist/index.js",exports:{".":{bun:"./src/index.ts",default:"./dist/index.js"},"./eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang":{bun:"./src/lang/index.ts",default:"./dist/lang/index.js"},"./lang/eval":{bun:"./src/lang/eval.ts",default:"./dist/lang/eval.js"},"./lang/from-ts":{bun:"./src/lang/emitters/from-ts.ts",default:"./dist/lang/emitters/from-ts.js"},"./src":"./src/index.ts","./editors/monaco":"./editors/monaco/ajs-monarch.js","./editors/codemirror":"./editors/codemirror/ajs-language.js","./editors/ace":"./editors/ace/ajs-mode.js"},bin:{tjs:"./src/cli/tjs.ts",tjsx:"./src/cli/tjsx.ts","tjs-playground":"./src/cli/playground.ts","create-tjs-app":"./src/cli/create-app.ts","ajs-install-vscode":"./bin/install-vscode.sh","ajs-install-cursor":"./bin/install-cursor.sh"},type:"module",files:["dist","src","docs","editors","bin","demo","tjs-lang.svg","CONTEXT.md","CLAUDE.md"],sideEffects:!1,repository:{type:"git",url:"https://github.com/tonioloewald/tjs-lang.git"},devDependencies:{"@codemirror/lang-javascript":"^6.2.4","@codemirror/state":"^6.5.3","@codemirror/view":"^6.39.9","@happy-dom/global-registrator":"^20.1.0","@types/bun":"latest","@types/jsdom":"^21.1.7","@typescript-eslint/eslint-plugin":"^5.62.0","@typescript-eslint/parser":"^5.62.0","acorn-walk":"^8.3.4",chokidar:"^4.0.3",codemirror:"^6.0.2",eslint:"^8.57.1","firebase-admin":"^13.6.0","firebase-functions":"^7.0.5",marked:"^9.1.6",prettier:"^2.8.8",tosijs:"^1.2.0","tosijs-ui":"^1.2.0",typescript:"^5.6.2",valibot:"^0.36.0",vitest:"^2.0.5"},scripts:{format:"bun eslint src --fix && bun prettier --write .",lint:"eslint src","build:grammars":"bun editors/build-grammars.ts","test:fast":"SKIP_LLM_TESTS=1 SKIP_BENCHMARKS=1 bun test","test:llm":"bun test src/batteries/models.integration.test.ts",bench:"bun bin/benchmarks.ts",make:"rm -rf dist && bun format && bun run build:grammars && tsc -p tsconfig.build.json && bun scripts/build.ts","build:bundles":"bun scripts/build.ts",typecheck:"tsc --noEmit",latest:"rm -rf node_modules && bun install",docs:"node bin/docs.js",dev:"bun run bin/dev.ts","build:demo":"bun scripts/build-demo.ts","build:cli":"bun build src/cli/tjs.ts --compile --outfile=dist/tjs && bun build src/cli/tjsx.ts --compile --outfile=dist/tjsx","functions:build":"cd functions && npm run build","functions:deploy":"cd functions && npm run deploy","functions:serve":"cd functions && npm run serve","deploy:hosting":"firebase deploy --only hosting",deploy:"npm run build:demo && npm run functions:deploy && firebase deploy --only hosting",start:"bun run build:demo && bun run dev"},dependencies:{"@codemirror/lang-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-markdown":"^6.5.0","@codemirror/theme-one-dark":"^6.1.3",acorn:"^8.15.0",firebase:"^10.12.0","tosijs-schema":"^1.2.0"}}});var Y6={};F8(Y6,{sep:()=>Z8,resolve:()=>I4,relative:()=>c7,posix:()=>X8,parse:()=>e7,normalize:()=>H6,join:()=>n7,isAbsolute:()=>p7,format:()=>t7,extname:()=>r7,dirname:()=>s7,delimiter:()=>$8,default:()=>t$,basename:()=>a7,_makeLong:()=>o7});function B1(Z){if(typeof Z!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(Z))}function i7(Z,$){var X="",Q=0,K=-1,H=0,Y;for(var z=0;z<=Z.length;++z){if(z<Z.length)Y=Z.charCodeAt(z);else if(Y===47)break;else Y=47;if(Y===47){if(K===z-1||H===1);else if(K!==z-1&&H===2){if(X.length<2||Q!==2||X.charCodeAt(X.length-1)!==46||X.charCodeAt(X.length-2)!==46){if(X.length>2){var W=X.lastIndexOf("/");if(W!==X.length-1){if(W===-1)X="",Q=0;else X=X.slice(0,W),Q=X.length-1-X.lastIndexOf("/");K=z,H=0;continue}}else if(X.length===2||X.length===1){X="",Q=0,K=z,H=0;continue}}if($){if(X.length>0)X+="/..";else X="..";Q=2}}else{if(X.length>0)X+="/"+Z.slice(K+1,z);else X=Z.slice(K+1,z);Q=z-K-1}K=z,H=0}else if(Y===46&&H!==-1)++H;else H=-1}return X}function r$(Z,$){var X=$.dir||$.root,Q=$.base||($.name||"")+($.ext||"");if(!X)return Q;if(X===$.root)return X+Q;return X+Z+Q}function I4(){var Z="",$=!1,X;for(var Q=arguments.length-1;Q>=-1&&!$;Q--){var K;if(Q>=0)K=arguments[Q];else{if(X===void 0)X=process.cwd();K=X}if(B1(K),K.length===0)continue;Z=K+"/"+Z,$=K.charCodeAt(0)===47}if(Z=i7(Z,!$),$)if(Z.length>0)return"/"+Z;else return"/";else if(Z.length>0)return Z;else return"."}function H6(Z){if(B1(Z),Z.length===0)return".";var $=Z.charCodeAt(0)===47,X=Z.charCodeAt(Z.length-1)===47;if(Z=i7(Z,!$),Z.length===0&&!$)Z=".";if(Z.length>0&&X)Z+="/";if($)return"/"+Z;return Z}function p7(Z){return B1(Z),Z.length>0&&Z.charCodeAt(0)===47}function n7(){if(arguments.length===0)return".";var Z;for(var $=0;$<arguments.length;++$){var X=arguments[$];if(B1(X),X.length>0)if(Z===void 0)Z=X;else Z+="/"+X}if(Z===void 0)return".";return H6(Z)}function c7(Z,$){if(B1(Z),B1($),Z===$)return"";if(Z=I4(Z),$=I4($),Z===$)return"";var X=1;for(;X<Z.length;++X)if(Z.charCodeAt(X)!==47)break;var Q=Z.length,K=Q-X,H=1;for(;H<$.length;++H)if($.charCodeAt(H)!==47)break;var Y=$.length,z=Y-H,W=K<z?K:z,G=-1,J=0;for(;J<=W;++J){if(J===W){if(z>W){if($.charCodeAt(H+J)===47)return $.slice(H+J+1);else if(J===0)return $.slice(H+J)}else if(K>W){if(Z.charCodeAt(X+J)===47)G=J;else if(J===0)G=0}break}var U=Z.charCodeAt(X+J),_=$.charCodeAt(H+J);if(U!==_)break;else if(U===47)G=J}var L="";for(J=X+G+1;J<=Q;++J)if(J===Q||Z.charCodeAt(J)===47)if(L.length===0)L+="..";else L+="/..";if(L.length>0)return L+$.slice(H+G);else{if(H+=G,$.charCodeAt(H)===47)++H;return $.slice(H)}}function o7(Z){return Z}function s7(Z){if(B1(Z),Z.length===0)return".";var $=Z.charCodeAt(0),X=$===47,Q=-1,K=!0;for(var H=Z.length-1;H>=1;--H)if($=Z.charCodeAt(H),$===47){if(!K){Q=H;break}}else K=!1;if(Q===-1)return X?"/":".";if(X&&Q===1)return"//";return Z.slice(0,Q)}function a7(Z,$){if($!==void 0&&typeof $!=="string")throw TypeError('"ext" argument must be a string');B1(Z);var X=0,Q=-1,K=!0,H;if($!==void 0&&$.length>0&&$.length<=Z.length){if($.length===Z.length&&$===Z)return"";var Y=$.length-1,z=-1;for(H=Z.length-1;H>=0;--H){var W=Z.charCodeAt(H);if(W===47){if(!K){X=H+1;break}}else{if(z===-1)K=!1,z=H+1;if(Y>=0)if(W===$.charCodeAt(Y)){if(--Y===-1)Q=H}else Y=-1,Q=z}}if(X===Q)Q=z;else if(Q===-1)Q=Z.length;return Z.slice(X,Q)}else{for(H=Z.length-1;H>=0;--H)if(Z.charCodeAt(H)===47){if(!K){X=H+1;break}}else if(Q===-1)K=!1,Q=H+1;if(Q===-1)return"";return Z.slice(X,Q)}}function r7(Z){B1(Z);var $=-1,X=0,Q=-1,K=!0,H=0;for(var Y=Z.length-1;Y>=0;--Y){var z=Z.charCodeAt(Y);if(z===47){if(!K){X=Y+1;break}continue}if(Q===-1)K=!1,Q=Y+1;if(z===46){if($===-1)$=Y;else if(H!==1)H=1}else if($!==-1)H=-1}if($===-1||Q===-1||H===0||H===1&&$===Q-1&&$===X+1)return"";return Z.slice($,Q)}function t7(Z){if(Z===null||typeof Z!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof Z);return r$("/",Z)}function e7(Z){B1(Z);var $={root:"",dir:"",base:"",ext:"",name:""};if(Z.length===0)return $;var X=Z.charCodeAt(0),Q=X===47,K;if(Q)$.root="/",K=1;else K=0;var H=-1,Y=0,z=-1,W=!0,G=Z.length-1,J=0;for(;G>=K;--G){if(X=Z.charCodeAt(G),X===47){if(!W){Y=G+1;break}continue}if(z===-1)W=!1,z=G+1;if(X===46){if(H===-1)H=G;else if(J!==1)J=1}else if(H!==-1)J=-1}if(H===-1||z===-1||J===0||J===1&&H===z-1&&H===Y+1){if(z!==-1)if(Y===0&&Q)$.base=$.name=Z.slice(1,z);else $.base=$.name=Z.slice(Y,z)}else{if(Y===0&&Q)$.name=Z.slice(1,H),$.base=Z.slice(1,z);else $.name=Z.slice(Y,H),$.base=Z.slice(Y,z);$.ext=Z.slice(H,z)}if(Y>0)$.dir=Z.slice(0,Y-1);else if(Q)$.dir="/";return $}var Z8="/",$8=":",X8,t$;var z6=j8(()=>{X8=((Z)=>(Z.posix=Z,Z))({resolve:I4,normalize:H6,isAbsolute:p7,join:n7,relative:c7,_makeLong:o7,dirname:s7,basename:a7,extname:r7,format:t7,parse:e7,sep:Z8,delimiter:$8,win32:null,posix:null}),t$=X8});import*as m6 from"acorn";class d extends Error{line;column;source;filename;constructor(Z,$,X,Q){let K=`${Q||"<source>"}:${$.line}:${$.column}`;super(`${Z} at ${K}`);this.name="TranspileError",this.line=$.line,this.column=$.column,this.source=X,this.filename=Q}}class Q1 extends d{constructor(Z,$,X,Q){super(Z,$,X,Q);this.name="SyntaxError"}formatWithContext(Z=2){if(!this.source)return this.message;let $=this.source.split(`
2
2
  `),X=this.line-1,Q=Math.max(0,X-Z),K=Math.min($.length-1,X+Z),H=[],Y=String(K+1).length;for(let z=Q;z<=K;z++){let W=String(z+1).padStart(Y),G=z===X?">":" ";if(H.push(`${G} ${W} | ${$[z]}`),z===X){let J=" ".repeat(Y+4+this.column);H.push(`${J}^ ${this.message.split(" at ")[0]}`)}}return H.join(`
3
- `)}}class P8 extends d{expected;received;suggestion;constructor(Z,$,X){super(Z,$,X?.source,X?.filename);this.name="TypeError",this.expected=X?.expected,this.received=X?.received,this.suggestion=X?.suggestion}}function W1(Z){return{depth:Z.depth+1,locals:new Map,parent:Z,parameters:Z.parameters,atoms:Z.atoms,warnings:Z.warnings,source:Z.source,filename:Z.filename,options:Z.options}}function V8(Z,$){if($.locals.has(Z))return $.locals.get(Z);if($.parameters.has(Z))return $.parameters.get(Z)?.type;if($.parent)return V8(Z,$.parent);return}function l(Z){if(Z.loc)return{line:Z.loc.start.line,column:Z.loc.start.column};return{line:1,column:0}}function C0(Z,$){let X="",Q=0,K,H,Y="normal",z=[],W=[{type:"top-level",braceDepth:0}],G=0,J=()=>W[W.length-1]?.type||"top-level",L=()=>{let _=W[W.length-1];return _?.type==="class-body"&&G===_.braceDepth+1};while(Q<Z.length){let _=Z[Q],U=Z[Q+1];switch(Y){case"single-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="'")Y="normal";Q++;continue;case"double-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==='"')Y="normal";Q++;continue;case"template-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="$"&&U==="{"){X+=U,Q+=2,z.push(1),Y="normal";continue}if(_==="`")Y="normal";Q++;continue;case"line-comment":if(X+=_,_===`
4
- `)Y="normal";Q++;continue;case"block-comment":if(X+=_,_==="*"&&U==="/"){X+=U,Q+=2,Y="normal";continue}Q++;continue;case"regex":if(X+=_,_==="\\"&&Q+1<Z.length){X+=U,Q+=2;continue}if(_==="["){Q++;while(Q<Z.length&&Z[Q]!=="]")if(X+=Z[Q],Z[Q]==="\\"&&Q+1<Z.length)X+=Z[Q+1],Q+=2;else Q++;if(Q<Z.length)X+=Z[Q],Q++;continue}if(_==="/"){Q++;while(Q<Z.length&&/[gimsuy]/.test(Z[Q]))X+=Z[Q],Q++;Y="normal";continue}Q++;continue;case"normal":if(z.length>0){if(_==="{")z[z.length-1]++;else if(_==="}"){if(z[z.length-1]--,z[z.length-1]===0){z.pop(),X+=_,Q++,Y="template-string";continue}}}if(_==="'"){X+=_,Q++,Y="single-string";continue}if(_==='"'){X+=_,Q++,Y="double-string";continue}if(_==="`"){X+=_,Q++,Y="template-string";continue}if(_==="/"&&U==="/"){X+=_+U,Q+=2,Y="line-comment";continue}if(_==="/"&&U==="*"){X+=_+U,Q+=2,Y="block-comment";continue}if(_==="/"){let B=X.trimEnd();if(!B[B.length-1]||/[=(!,;:{[&|?+\-*%<>~^]$/.test(B)||/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)\s*$/.test(B)){X+=_,Q++,Y="regex";continue}}break}if(_==="{"){G++,X+=_,Q++;continue}if(_==="}"){G--;let B=W[W.length-1];if(B&&G===B.braceDepth)W.pop();X+=_,Q++;continue}let D=Z.slice(Q).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(D){let B=D[0].slice(0,-1);X+=B,Q+=B.length,W.push({type:"class-body",braceDepth:G});continue}let R=Z.slice(Q).match(/^function\s+(\w+)\s*\(/);if(R){let B=R[1],V=R[0].length,M=Z[Q+V],j=null,I=Q+V;if(M==="?"||M==="!")if(j=M,I++,j==="!")$.unsafeFunctions.add(B);else $.safeFunctions.add(B);X+=`function ${B}(`,Q=I;let P=j0(Z,Q,"(",")");if(!P){X+=Z[Q],Q++;continue}let{content:C,endPos:O}=P;Q=O;let T=P4(C,$,!0);X+=T+")";let k=Q;while(k<Z.length&&/\s/.test(Z[k]))k++;let g=Z.slice(k,k+2);if(g==="->"||g==="-?"||g==="-!"){k+=2;while(k<Z.length&&/\s/.test(Z[k]))k++;let m=F0(Z,k);if(m){let{type:a,endPos:v}=m;if(K===void 0){if(K=a,g==="-?")H="safe";else if(g==="-!")H="unsafe"}Q=v}}continue}let w=Z.slice(Q).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(w&&L()){let B=w[1],V=w[0].length,M=Q+V;X+=B+"(",Q=M;let j=j0(Z,Q,"(",")");if(!j){X+=Z[Q],Q++;continue}let{content:I,endPos:P}=j;Q=P;let C=P4(I,$,!0);X+=C+")";let O=Q;while(O<Z.length&&/\s/.test(Z[O]))O++;if(Z.slice(O,O+2)==="->"){O+=2;while(O<Z.length&&/\s/.test(Z[O]))O++;let k=F0(Z,O);if(k)Q=k.endPos}else if(Z[O]===":"){O++;while(O<Z.length&&/\s/.test(Z[O]))O++;let k=F0(Z,O);if(k)Q=k.endPos}continue}if(Z[Q]==="("){let B=j0(Z,Q+1,"(",")");if(!B){X+=Z[Q],Q++;continue}let{content:V,endPos:M}=B,j=M;while(j<Z.length&&/\s/.test(Z[j]))j++;let I,P=Z.slice(j,j+2);if(P==="->"||P==="-?"||P==="-!"){j+=2;while(j<Z.length&&/\s/.test(Z[j]))j++;let C=F0(Z,j);if(C){I=C.type,j=C.endPos;while(j<Z.length&&/\s/.test(Z[j]))j++}}if(Z.slice(j,j+2)==="=>"){let C=null,O=V,T=V.trimStart();if(T.startsWith("?")&&(T.length===1||/\s/.test(T[1])))C="?",O=T.slice(1);else if(T.startsWith("!")&&(T.length===1||/\s/.test(T[1])))C="!",O=T.slice(1);let k=P4(O,$,!1);X+=`(${C==="?"?"/* safe */ ":C==="!"?"/* unsafe */ ":""}${k})`,Q=M;while(Q<j&&/\s/.test(Z[Q]))X+=Z[Q],Q++;if(I)Q=j}else{let C=C0(V,$);X+=`(${C.source})`,Q=M}continue}X+=Z[Q],Q++}return{source:X,returnType:K,returnSafety:H}}function j0(Z,$,X,Q){let K=1,H=$,Y=!1,z="";while(H<Z.length&&K>0){let W=Z[H];if(!Y&&(W==="'"||W==='"'||W==="`"))Y=!0,z=W;else if(Y&&W===z&&Z[H-1]!=="\\")Y=!1;else if(!Y){if(W===X)K++;else if(W===Q)K--}H++}if(K!==0)return null;return{content:Z.slice($,H-1),endPos:H}}function M6(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return null;let Q=X,K=Z[X];if(K==="{"||K==="["){let Y=K==="{"?"}":"]",z=j0(Z,X+1,K,Y);if(!z)return null;return{value:Z.slice(Q,z.endPos),endPos:z.endPos}}if(K==="'"||K==='"'||K==="`"){X++;while(X<Z.length){if(Z[X]===K&&Z[X-1]!=="\\")return X++,{value:Z.slice(Q,X),endPos:X};X++}return null}if(/[-+\d]/.test(K)){while(X<Z.length&&/[\d.eE+-]/.test(Z[X]))X++;return{value:Z.slice(Q,X),endPos:X}}let H=Z.slice(X).match(/^(true|false|null|undefined)\b/);if(H)return{value:H[1],endPos:X+H[1].length};return null}function t1(Z){return Z.replace(/(?<!\|)\|(?!\|)/g," || ")}function F0(Z,$){let X=$,Q=0,K=!1,H="",Y=!1,z=(W)=>({type:t1(Z.slice($,W).trim()),endPos:W});while(X<Z.length){let W=Z[X];if(!K&&(W==="'"||W==='"'||W==="`")){K=!0,H=W,Y=!0,X++;continue}if(K){if(W===H&&Z[X-1]!=="\\"){if(K=!1,X++,Q===0){let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="{"){if(!Z.slice(G+1).match(/^\s*(\w+)\s*:/))return z(X)}if(Z[G]!=="|"&&Z[G]!=="&")return z(X)}continue}X++;continue}if(W==="{"||W==="["||W==="("){Q++,Y=!0,X++;continue}if(W==="}"||W==="]"||W===")"){if(Q--,Q===0){X++;let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="|"||Z[G]==="&")continue;return z(X)}X++;continue}if(Q===0&&W==="{"){if(Y)return z(X);if(Z.slice(X+1).match(/^\s*(\w+)\s*:/)){Q++,Y=!0,X++;continue}return z(X)}if(Q===0&&(W==="|"||W==="&")){if(X++,X<Z.length&&Z[X]==="|")X++;while(X<Z.length&&/\s/.test(Z[X]))X++;continue}if(Q===0&&(/\d/.test(W)||W==="-"&&/\d/.test(Z[X+1]))){let G=X;if(Z[G]==="-")G++;while(G<Z.length&&/\d/.test(Z[G]))G++;if(G<Z.length&&Z[G]==="."&&/\d/.test(Z[G+1])){G++;while(G<Z.length&&/\d/.test(Z[G]))G++}if(G<Z.length&&(Z[G]==="e"||Z[G]==="E")){if(G++,G<Z.length&&(Z[G]==="+"||Z[G]==="-"))G++;while(G<Z.length&&/\d/.test(Z[G]))G++}Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{")return{type:t1(Z.slice($,G).trim()),endPos:G};if(Z[X]!=="|"&&Z[X]!=="&")return{type:t1(Z.slice($,G).trim()),endPos:G};continue}if(Q===0&&/[a-zA-Z_]/.test(W)){let G=X;while(G<Z.length&&/\w/.test(Z[G]))G++;Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{"){if(!Z.slice(X+1).match(/^\s*(\w+)\s*:/)){let L=G;while(L>$&&/\s/.test(Z[L-1]))L--;return{type:t1(Z.slice($,L).trim()),endPos:G}}}if(Z[X]!=="|"&&Z[X]!=="&")return{type:t1(Z.slice($,G).trim()),endPos:G};continue}X++}if(Y)return z(X);return null}function O0(Z){let $=[],X="",Q=0,K=!1,H=!1,Y=0;while(Y<Z.length){let z=Z[Y],W=Z[Y+1];if(!H&&z==="/"&&W==="/"){K=!0,X+="//",Y+=2;continue}if(!K&&z==="/"&&W==="*"){H=!0,X+="/*",Y+=2;continue}if(K&&z===`
5
- `){K=!1,X+=z,Y++;continue}if(H&&z==="*"&&W==="/"){H=!1,X+="*/",Y+=2;continue}if(K||H){X+=z,Y++;continue}if(z==="("||z==="{"||z==="[")Q++,X+=z;else if(z===")"||z==="}"||z==="]")Q--,X+=z;else if(z===","&&Q===0)$.push(X),X="";else X+=z;Y++}if(X.trim())$.push(X);return $}function P4(Z,$,X){let Q=C0(Z,{originalSource:Z,requiredParams:$.requiredParams,unsafeFunctions:$.unsafeFunctions,safeFunctions:$.safeFunctions}).source,K=O0(Q),H=!1,Y=new Set,z=(G)=>{if(X&&/^\w+$/.test(G)){if(Y.has(G))throw Error(`Duplicate parameter name '${G}'`);Y.add(G)}};return K.map((G)=>{let J=G.trim();if(!J)return G;if(X&&J.startsWith("{")&&J.endsWith("}")){let U=J.slice(1,-1);return`{ ${B6(U,$)} }`}if(X&&J.startsWith("[")&&J.endsWith("]")){let U=J.slice(1,-1);return`[ ${B6(U,$)} ]`}let L=J.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(L){let[,U,D]=L;return z(U),H=!0,`${U} = ${D}`}if(!C8(J)){let U=J.match(/^(\w+)\s*=/);if(U)z(U[1]);return H=!0,G}let _=O8(J);if(_!==-1){let U=J.slice(0,_).trim(),D=J.slice(_+1).trim();if(z(U),H&&X&&/^\w+$/.test(U));if(X&&/^\w+$/.test(U))$.requiredParams.add(U);return`${U} = ${D}`}return G}).join(",")}function B6(Z,$){return O0(Z).map((K)=>{let H=K.trim();if(!H)return K;let Y=H.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,G,J]=Y;$.requiredParams.add(G);let L=P0(J);return`${G} = ${L}`}let z=H.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(z){let[,G,J]=z;$.requiredParams.add(G);let L=V0(J);return`${G} = ${L}`}let W=H.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(W){let[,G,J]=W;return $.requiredParams.add(G),`${G} = ${J}`}return K}).join(", ")}function P0(Z){let $=Z.slice(1,-1).trim();return`{ ${O0($).map((K)=>{let H=K.trim();if(!H)return K;let Y=H.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,L,_]=Y;return`${L}: ${P0(_)}`}let z=H.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(z){let[,L,_]=z;return`${L}: ${P0(_)}`}let W=H.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(W){let[,L,_]=W;return`${L}: ${V0(_)}`}let G=H.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(G){let[,L,_]=G;return`${L}: ${V0(_)}`}let J=H.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(J){let[,L,_]=J;return`${L}: ${_}`}return K}).join(", ")} }`}function V0(Z){let $=Z.slice(1,-1).trim();return`[ ${O0($).map((K)=>{let H=K.trim();if(!H)return K;if(H.startsWith("{")&&H.endsWith("}"))return P0(H);if(H.startsWith("[")&&H.endsWith("]"))return V0(H);return K}).join(", ")} ]`}function C8(Z){let $=0,X=!1,Q=!1,K=!1,H="";for(let Y=0;Y<Z.length;Y++){let z=Z[Y];if(!K&&(z==="'"||z==='"'||z==="`")){K=!0,H=z;continue}if(K){if(z===H&&Z[Y-1]!=="\\")K=!1;continue}if(z==="("||z==="{"||z==="[")$++;else if(z===")"||z==="}"||z==="]")$--;else if($===0){if(z===":")X=!0;if(z==="="&&Z[Y+1]!==">")Q=!0}}return X&&!Q}function O8(Z){let $=0,X=!1,Q="";for(let K=0;K<Z.length;K++){let H=Z[K];if(!X&&(H==="'"||H==='"'||H==="`")){X=!0,Q=H;continue}if(X){if(H===Q&&Z[K-1]!=="\\")X=!1;continue}if(H==="("||H==="{"||H==="[")$++;else if(H===")"||H==="}"||H==="]")$--;else if($===0&&H===":")return K}return-1}function P6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\btry\s*\{/);if(Q){let H=X+Q[0].length-1+1,Y=1,z=H;while(z<Z.length&&Y>0){let G=Z[z];if(G==="{")Y++;else if(G==="}")Y--;z++}if(Y!==0){$+=Z[X],X++;continue}if(Z.slice(z).match(/^\s*(catch|finally)\b/))$+=Z.slice(X,z),X=z;else{let G=Z.slice(H,z-1);$+=`try {${G}} catch (__try_err) { return new (__tjs?.MonadicError ?? Error)(__try_err?.message || String(__try_err), 'try', undefined, undefined, __tjs?.getStack?.()) }`,X=z}}else $+=Z[X],X++}return $}function V6(Z){let $=[],X="",Q=0,K=0;while(Q<Z.length){let H=Z.slice(Q).match(/^\bwasm\s*\{/);if(H){let Y=Q,z=Q+H[0].length,W=1,G=z;while(G<Z.length&&W>0){let P=Z[G];if(P==="{")W++;else if(P==="}")W--;G++}if(W!==0){X+=Z[Q],Q++;continue}let J=Z.slice(z,G-1),L,_=G,U=Z.slice(G).match(/^\s*fallback\s*\{/);if(U){let P=G+U[0].length;W=1;let C=P;while(C<Z.length&&W>0){let O=Z[C];if(O==="{")W++;else if(O==="}")W--;C++}if(W===0)L=Z.slice(P,C-1),_=C}let R=E8(J).map((P)=>{let C=T8(Z,Y,P);return C?`${P}: ${C}`:P}),w={id:`__tjs_wasm_${K}`,body:J,fallback:L,captures:R,start:Y,end:_};$.push(w);let B=L??J,V=R.map((P)=>P.split(":")[0].trim()),M=V.length>0?V.join(", "):"",j=V.length>0?`globalThis.${w.id}(${M})`:`globalThis.${w.id}()`,I=`(globalThis.${w.id} ? ${j} : (() => {${B}})())`;X+=I,Q=_,K++}else X+=Z[Q],Q++}return{source:X,blocks:$}}function N8(Z){return Z.startsWith("f32x4_")||Z.startsWith("v128_")}function E8(Z){let $=Z.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),X=new Set,Q=/\.([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,K;while((K=Q.exec($))!==null)X.add(K[1]);let H=/(?<!\.)(\b[a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,Y=new Set;while((K=H.exec($))!==null)Y.add(K[1]);for(let _ of X){if(!Y.has(_))continue;let U=new RegExp(`(?<!\\.)\\b${_}\\b`,"g"),D=new RegExp(`\\.${_}\\b`,"g"),R=$.match(U)?.length||0,w=$.match(D)?.length||0;if(R<=w)Y.delete(_)}let z=new Set,W=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((K=W.exec($))!==null)z.add(K[1]);let G=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((K=G.exec($))!==null)z.add(K[1]);let J=new Set(["if","else","for","while","do","switch","case","break","continue","return","function","let","const","var","new","this","true","false","null","undefined","typeof","instanceof","in","of","try","catch","finally","throw","async","await","class","extends","super","import","export","default","from","as","static","get","set","yield","console","Math","Array","Object","String","Number","Boolean","Date","JSON","Promise","Map","Set","WeakMap","WeakSet","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","ArrayBuffer","DataView","Error","TypeError","RangeError","length","push","pop","shift","unshift","slice","splice","map","filter","reduce","forEach","find","findIndex","indexOf","includes","globalThis","window","document","Infinity","NaN","isNaN","isFinite","parseInt","parseFloat","encodeURI","decodeURI","eval","wasmBuffer"]),L=[];for(let _ of Y)if(!z.has(_)&&!J.has(_)&&!N8(_))L.push(_);return L.sort()}function T8(Z,$,X){let Q=Z.slice(0,$),K=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,H=Q.match(K);if(!H){let Y=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,z=Q.match(Y);if(!z)return;return w6(z[1],X)}return w6(H[1],X)}function w6(Z,$){let X=Z.split(",").map((Q)=>Q.trim());for(let Q of X){let K=Q.match(new RegExp(`^${$}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(K)return K[1];let H=Q.match(new RegExp(`^${$}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(H)return H[1]}return}function C6(Z){let X=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+IsNot\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");Z=Z.replace(X,"IsNot($1, $2)");let Q=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+Is\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");return Z=Z.replace(Q,"Is($1, $2)"),Z}function O6(Z){let $=/^[\s]*[([/+\-`]/,X=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,Q=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,K=Z.split(`
6
- `),H=[];for(let Y=0;Y<K.length;Y++){let z=K[Y],W=Y>0?K[Y-1]:"";if(Y>0&&$.test(z)){let G=W.replace(/\/\/.*$/,"").replace(/\/\*.*\*\/\s*$/,"");if(!X.test(G)&&!Q.test(G)){let J=z.match(/^(\s*)/),L=J?J[1]:"",_=z.slice(L.length);H.push(L+";"+_);continue}}H.push(z)}return H.join(`
3
+ `)}}class P8 extends d{expected;received;suggestion;constructor(Z,$,X){super(Z,$,X?.source,X?.filename);this.name="TypeError",this.expected=X?.expected,this.received=X?.received,this.suggestion=X?.suggestion}}function W1(Z){return{depth:Z.depth+1,locals:new Map,parent:Z,parameters:Z.parameters,atoms:Z.atoms,warnings:Z.warnings,source:Z.source,filename:Z.filename,options:Z.options}}function V8(Z,$){if($.locals.has(Z))return $.locals.get(Z);if($.parameters.has(Z))return $.parameters.get(Z)?.type;if($.parent)return V8(Z,$.parent);return}function l(Z){if(Z.loc)return{line:Z.loc.start.line,column:Z.loc.start.column};return{line:1,column:0}}function C0(Z,$){let X="",Q=0,K,H,Y="normal",z=[],W=[{type:"top-level",braceDepth:0}],G=0,J=()=>W[W.length-1]?.type||"top-level",U=()=>{let _=W[W.length-1];return _?.type==="class-body"&&G===_.braceDepth+1};while(Q<Z.length){let _=Z[Q],L=Z[Q+1];switch(Y){case"single-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=L,Q+=2;continue}if(_==="'")Y="normal";Q++;continue;case"double-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=L,Q+=2;continue}if(_==='"')Y="normal";Q++;continue;case"template-string":if(X+=_,_==="\\"&&Q+1<Z.length){X+=L,Q+=2;continue}if(_==="$"&&L==="{"){X+=L,Q+=2,z.push(1),Y="normal";continue}if(_==="`")Y="normal";Q++;continue;case"line-comment":if(X+=_,_===`
4
+ `)Y="normal";Q++;continue;case"block-comment":if(X+=_,_==="*"&&L==="/"){X+=L,Q+=2,Y="normal";continue}Q++;continue;case"regex":if(X+=_,_==="\\"&&Q+1<Z.length){X+=L,Q+=2;continue}if(_==="["){Q++;while(Q<Z.length&&Z[Q]!=="]")if(X+=Z[Q],Z[Q]==="\\"&&Q+1<Z.length)X+=Z[Q+1],Q+=2;else Q++;if(Q<Z.length)X+=Z[Q],Q++;continue}if(_==="/"){Q++;while(Q<Z.length&&/[gimsuy]/.test(Z[Q]))X+=Z[Q],Q++;Y="normal";continue}Q++;continue;case"normal":if(z.length>0){if(_==="{")z[z.length-1]++;else if(_==="}"){if(z[z.length-1]--,z[z.length-1]===0){z.pop(),X+=_,Q++,Y="template-string";continue}}}if(_==="'"){X+=_,Q++,Y="single-string";continue}if(_==='"'){X+=_,Q++,Y="double-string";continue}if(_==="`"){X+=_,Q++,Y="template-string";continue}if(_==="/"&&L==="/"){X+=_+L,Q+=2,Y="line-comment";continue}if(_==="/"&&L==="*"){X+=_+L,Q+=2,Y="block-comment";continue}if(_==="/"){let R=X.trimEnd();if(!R[R.length-1]||/[=(!,;:{[&|?+\-*%<>~^]$/.test(R)||/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)\s*$/.test(R)){X+=_,Q++,Y="regex";continue}}break}if(_==="{"){G++,X+=_,Q++;continue}if(_==="}"){G--;let R=W[W.length-1];if(R&&G===R.braceDepth)W.pop();X+=_,Q++;continue}let D=Z.slice(Q).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(D){let R=D[0].slice(0,-1);X+=R,Q+=R.length,W.push({type:"class-body",braceDepth:G});continue}let I=Z.slice(Q).match(/^function\s+(\w+)\s*\(/);if(I){let R=I[1],V=I[0].length,w=Z[Q+V],F=null,B=Q+V;if(w==="?"||w==="!")if(F=w,B++,F==="!")$.unsafeFunctions.add(R);else $.safeFunctions.add(R);X+=`function ${R}(`,Q=B;let P=j0(Z,Q,"(",")");if(!P){X+=Z[Q],Q++;continue}let{content:C,endPos:O}=P;Q=O;let T=P4(C,$,!0);X+=T+")";let S=Q;while(S<Z.length&&/\s/.test(Z[S]))S++;let g=Z.slice(S,S+2);if(g==="->"||g==="-?"||g==="-!"){S+=2;while(S<Z.length&&/\s/.test(Z[S]))S++;let m=F0(Z,S);if(m){let{type:a,endPos:v}=m;if(K===void 0){if(K=a,g==="-?")H="safe";else if(g==="-!")H="unsafe"}Q=v}}continue}let M=Z.slice(Q).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(M&&U()){let R=M[1],V=M[0].length,w=Q+V;X+=R+"(",Q=w;let F=j0(Z,Q,"(",")");if(!F){X+=Z[Q],Q++;continue}let{content:B,endPos:P}=F;Q=P;let C=P4(B,$,!0);X+=C+")";let O=Q;while(O<Z.length&&/\s/.test(Z[O]))O++;let T=Z.slice(O,O+2);if(T==="->"||T==="-!"||T==="-?"){O+=2;while(O<Z.length&&/\s/.test(Z[O]))O++;let S=F0(Z,O);if(S)Q=S.endPos}else if(Z[O]===":"){O++;while(O<Z.length&&/\s/.test(Z[O]))O++;let S=F0(Z,O);if(S)Q=S.endPos}continue}if(Z[Q]==="("){let R=j0(Z,Q+1,"(",")");if(!R){X+=Z[Q],Q++;continue}let{content:V,endPos:w}=R,F=w;while(F<Z.length&&/\s/.test(Z[F]))F++;let B,P=Z.slice(F,F+2);if(P==="->"||P==="-?"||P==="-!"){F+=2;while(F<Z.length&&/\s/.test(Z[F]))F++;let C=F0(Z,F);if(C){B=C.type,F=C.endPos;while(F<Z.length&&/\s/.test(Z[F]))F++}}if(Z.slice(F,F+2)==="=>"){let C=null,O=V,T=V.trimStart();if(T.startsWith("?")&&(T.length===1||/\s/.test(T[1])))C="?",O=T.slice(1);else if(T.startsWith("!")&&(T.length===1||/\s/.test(T[1])))C="!",O=T.slice(1);let S=P4(O,$,!1);X+=`(${C==="?"?"/* safe */ ":C==="!"?"/* unsafe */ ":""}${S})`,Q=w;while(Q<F&&/\s/.test(Z[Q]))X+=Z[Q],Q++;if(B)Q=F}else{let C=C0(V,$);X+=`(${C.source})`,Q=w}continue}X+=Z[Q],Q++}return{source:X,returnType:K,returnSafety:H}}function j0(Z,$,X,Q){let K=1,H=$,Y=!1,z="";while(H<Z.length&&K>0){let W=Z[H];if(!Y&&(W==="'"||W==='"'||W==="`"))Y=!0,z=W;else if(Y&&W===z&&Z[H-1]!=="\\")Y=!1;else if(!Y){if(W===X)K++;else if(W===Q)K--}H++}if(K!==0)return null;return{content:Z.slice($,H-1),endPos:H}}function M6(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return null;let Q=X,K=Z[X];if(K==="{"||K==="["){let Y=K==="{"?"}":"]",z=j0(Z,X+1,K,Y);if(!z)return null;return{value:Z.slice(Q,z.endPos),endPos:z.endPos}}if(K==="'"||K==='"'||K==="`"){X++;while(X<Z.length){if(Z[X]===K&&Z[X-1]!=="\\")return X++,{value:Z.slice(Q,X),endPos:X};X++}return null}if(/[-+\d]/.test(K)){while(X<Z.length&&/[\d.eE+-]/.test(Z[X]))X++;return{value:Z.slice(Q,X),endPos:X}}let H=Z.slice(X).match(/^(true|false|null|undefined)\b/);if(H)return{value:H[1],endPos:X+H[1].length};return null}function t1(Z){return Z.replace(/(?<!\|)\|(?!\|)/g," || ")}function F0(Z,$){let X=$,Q=0,K=!1,H="",Y=!1,z=(W)=>({type:t1(Z.slice($,W).trim()),endPos:W});while(X<Z.length){let W=Z[X];if(!K&&(W==="'"||W==='"'||W==="`")){K=!0,H=W,Y=!0,X++;continue}if(K){if(W===H&&Z[X-1]!=="\\"){if(K=!1,X++,Q===0){let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="{"){if(!Z.slice(G+1).match(/^\s*(\w+)\s*:/))return z(X)}if(Z[G]!=="|"&&Z[G]!=="&")return z(X)}continue}X++;continue}if(W==="{"||W==="["||W==="("){Q++,Y=!0,X++;continue}if(W==="}"||W==="]"||W===")"){if(Q--,Q===0){X++;let G=X;while(G<Z.length&&/\s/.test(Z[G]))G++;if(Z[G]==="|"||Z[G]==="&")continue;return z(X)}X++;continue}if(Q===0&&W==="{"){if(Y)return z(X);if(Z.slice(X+1).match(/^\s*(\w+)\s*:/)){Q++,Y=!0,X++;continue}return z(X)}if(Q===0&&(W==="|"||W==="&")){if(X++,X<Z.length&&Z[X]==="|")X++;while(X<Z.length&&/\s/.test(Z[X]))X++;continue}if(Q===0&&(/\d/.test(W)||W==="-"&&/\d/.test(Z[X+1]))){let G=X;if(Z[G]==="-")G++;while(G<Z.length&&/\d/.test(Z[G]))G++;if(G<Z.length&&Z[G]==="."&&/\d/.test(Z[G+1])){G++;while(G<Z.length&&/\d/.test(Z[G]))G++}if(G<Z.length&&(Z[G]==="e"||Z[G]==="E")){if(G++,G<Z.length&&(Z[G]==="+"||Z[G]==="-"))G++;while(G<Z.length&&/\d/.test(Z[G]))G++}Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{")return{type:t1(Z.slice($,G).trim()),endPos:G};if(Z[X]!=="|"&&Z[X]!=="&")return{type:t1(Z.slice($,G).trim()),endPos:G};continue}if(Q===0&&/[a-zA-Z_]/.test(W)){let G=X;while(G<Z.length&&/\w/.test(Z[G]))G++;Y=!0,X=G;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{"){if(!Z.slice(X+1).match(/^\s*(\w+)\s*:/)){let U=G;while(U>$&&/\s/.test(Z[U-1]))U--;return{type:t1(Z.slice($,U).trim()),endPos:G}}}if(Z[X]!=="|"&&Z[X]!=="&")return{type:t1(Z.slice($,G).trim()),endPos:G};continue}X++}if(Y)return z(X);return null}function O0(Z){let $=[],X="",Q=0,K=!1,H=!1,Y=0;while(Y<Z.length){let z=Z[Y],W=Z[Y+1];if(!H&&z==="/"&&W==="/"){K=!0,X+="//",Y+=2;continue}if(!K&&z==="/"&&W==="*"){H=!0,X+="/*",Y+=2;continue}if(K&&z===`
5
+ `){K=!1,X+=z,Y++;continue}if(H&&z==="*"&&W==="/"){H=!1,X+="*/",Y+=2;continue}if(K||H){X+=z,Y++;continue}if(z==="("||z==="{"||z==="[")Q++,X+=z;else if(z===")"||z==="}"||z==="]")Q--,X+=z;else if(z===","&&Q===0)$.push(X),X="";else X+=z;Y++}if(X.trim())$.push(X);return $}function P4(Z,$,X){let Q=C0(Z,{originalSource:Z,requiredParams:$.requiredParams,unsafeFunctions:$.unsafeFunctions,safeFunctions:$.safeFunctions}).source,K=O0(Q),H=!1,Y=new Set,z=(G)=>{if(X&&/^\w+$/.test(G)){if(Y.has(G))throw Error(`Duplicate parameter name '${G}'`);Y.add(G)}};return K.map((G)=>{let J=G.trim();if(!J)return G;if(X&&J.startsWith("{")&&J.endsWith("}")){let L=J.slice(1,-1);return`{ ${B6(L,$)} }`}if(X&&J.startsWith("[")&&J.endsWith("]")){let L=J.slice(1,-1);return`[ ${B6(L,$)} ]`}let U=J.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(U){let[,L,D]=U;return z(L),H=!0,`${L} = ${D}`}if(!C8(J)){let L=J.match(/^(\w+)\s*=/);if(L)z(L[1]);return H=!0,G}let _=O8(J);if(_!==-1){let L=J.slice(0,_).trim(),D=J.slice(_+1).trim();if(z(L),H&&X&&/^\w+$/.test(L));if(X&&/^\w+$/.test(L))$.requiredParams.add(L);return`${L} = ${D}`}return G}).join(",")}function B6(Z,$){return O0(Z).map((K)=>{let H=K.trim();if(!H)return K;let Y=H.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,G,J]=Y;$.requiredParams.add(G);let U=P0(J);return`${G} = ${U}`}let z=H.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(z){let[,G,J]=z;$.requiredParams.add(G);let U=V0(J);return`${G} = ${U}`}let W=H.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(W){let[,G,J]=W;return $.requiredParams.add(G),`${G} = ${J}`}return K}).join(", ")}function P0(Z){let $=Z.slice(1,-1).trim();return`{ ${O0($).map((K)=>{let H=K.trim();if(!H)return K;let Y=H.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,U,_]=Y;return`${U}: ${P0(_)}`}let z=H.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(z){let[,U,_]=z;return`${U}: ${P0(_)}`}let W=H.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(W){let[,U,_]=W;return`${U}: ${V0(_)}`}let G=H.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(G){let[,U,_]=G;return`${U}: ${V0(_)}`}let J=H.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(J){let[,U,_]=J;return`${U}: ${_}`}return K}).join(", ")} }`}function V0(Z){let $=Z.slice(1,-1).trim();return`[ ${O0($).map((K)=>{let H=K.trim();if(!H)return K;if(H.startsWith("{")&&H.endsWith("}"))return P0(H);if(H.startsWith("[")&&H.endsWith("]"))return V0(H);return K}).join(", ")} ]`}function C8(Z){let $=0,X=!1,Q=!1,K=!1,H="";for(let Y=0;Y<Z.length;Y++){let z=Z[Y];if(!K&&(z==="'"||z==='"'||z==="`")){K=!0,H=z;continue}if(K){if(z===H&&Z[Y-1]!=="\\")K=!1;continue}if(z==="("||z==="{"||z==="[")$++;else if(z===")"||z==="}"||z==="]")$--;else if($===0){if(z===":")X=!0;if(z==="="&&Z[Y+1]!==">")Q=!0}}return X&&!Q}function O8(Z){let $=0,X=!1,Q="";for(let K=0;K<Z.length;K++){let H=Z[K];if(!X&&(H==="'"||H==='"'||H==="`")){X=!0,Q=H;continue}if(X){if(H===Q&&Z[K-1]!=="\\")X=!1;continue}if(H==="("||H==="{"||H==="[")$++;else if(H===")"||H==="}"||H==="]")$--;else if($===0&&H===":")return K}return-1}function P6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\btry\s*\{/);if(Q){let H=X+Q[0].length-1+1,Y=1,z=H;while(z<Z.length&&Y>0){let G=Z[z];if(G==="{")Y++;else if(G==="}")Y--;z++}if(Y!==0){$+=Z[X],X++;continue}if(Z.slice(z).match(/^\s*(catch|finally)\b/))$+=Z.slice(X,z),X=z;else{let G=Z.slice(H,z-1);$+=`try {${G}} catch (__try_err) { return new (__tjs?.MonadicError ?? Error)(__try_err?.message || String(__try_err), 'try', undefined, undefined, __tjs?.getStack?.()) }`,X=z}}else $+=Z[X],X++}return $}function V6(Z){let $=[],X="",Q=0,K=0;while(Q<Z.length){let H=Z.slice(Q).match(/^\bwasm\s*\{/);if(H){let Y=Q,z=Q+H[0].length,W=1,G=z;while(G<Z.length&&W>0){let P=Z[G];if(P==="{")W++;else if(P==="}")W--;G++}if(W!==0){X+=Z[Q],Q++;continue}let J=Z.slice(z,G-1),U,_=G,L=Z.slice(G).match(/^\s*fallback\s*\{/);if(L){let P=G+L[0].length;W=1;let C=P;while(C<Z.length&&W>0){let O=Z[C];if(O==="{")W++;else if(O==="}")W--;C++}if(W===0)U=Z.slice(P,C-1),_=C}let I=E8(J).map((P)=>{let C=T8(Z,Y,P);return C?`${P}: ${C}`:P}),M={id:`__tjs_wasm_${K}`,body:J,fallback:U,captures:I,start:Y,end:_};$.push(M);let R=U??J,V=I.map((P)=>P.split(":")[0].trim()),w=V.length>0?V.join(", "):"",F=V.length>0?`globalThis.${M.id}(${w})`:`globalThis.${M.id}()`,B=`(globalThis.${M.id} ? ${F} : (() => {${R}})())`;X+=B,Q=_,K++}else X+=Z[Q],Q++}return{source:X,blocks:$}}function N8(Z){return Z.startsWith("f32x4_")||Z.startsWith("v128_")}function E8(Z){let $=Z.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),X=new Set,Q=/\.([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,K;while((K=Q.exec($))!==null)X.add(K[1]);let H=/(?<!\.)(\b[a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,Y=new Set;while((K=H.exec($))!==null)Y.add(K[1]);for(let _ of X){if(!Y.has(_))continue;let L=new RegExp(`(?<!\\.)\\b${_}\\b`,"g"),D=new RegExp(`\\.${_}\\b`,"g"),I=$.match(L)?.length||0,M=$.match(D)?.length||0;if(I<=M)Y.delete(_)}let z=new Set,W=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((K=W.exec($))!==null)z.add(K[1]);let G=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((K=G.exec($))!==null)z.add(K[1]);let J=new Set(["if","else","for","while","do","switch","case","break","continue","return","function","let","const","var","new","this","true","false","null","undefined","typeof","instanceof","in","of","try","catch","finally","throw","async","await","class","extends","super","import","export","default","from","as","static","get","set","yield","console","Math","Array","Object","String","Number","Boolean","Date","JSON","Promise","Map","Set","WeakMap","WeakSet","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","ArrayBuffer","DataView","Error","TypeError","RangeError","length","push","pop","shift","unshift","slice","splice","map","filter","reduce","forEach","find","findIndex","indexOf","includes","globalThis","window","document","Infinity","NaN","isNaN","isFinite","parseInt","parseFloat","encodeURI","decodeURI","eval","wasmBuffer"]),U=[];for(let _ of Y)if(!z.has(_)&&!J.has(_)&&!N8(_))U.push(_);return U.sort()}function T8(Z,$,X){let Q=Z.slice(0,$),K=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,H=Q.match(K);if(!H){let Y=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,z=Q.match(Y);if(!z)return;return w6(z[1],X)}return w6(H[1],X)}function w6(Z,$){let X=Z.split(",").map((Q)=>Q.trim());for(let Q of X){let K=Q.match(new RegExp(`^${$}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(K)return K[1];let H=Q.match(new RegExp(`^${$}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(H)return H[1]}return}function C6(Z){let X=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+IsNot\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");Z=Z.replace(X,"IsNot($1, $2)");let Q=new RegExp(`([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")\\s+Is\\s+([\\w][\\w.\\[\\]()]*|null|undefined|true|false|\\d+(?:\\.\\d+)?|'[^']*'|"[^"]*")`,"g");return Z=Z.replace(Q,"Is($1, $2)"),Z}function O6(Z){let $=/^[\s]*[([/+\-`]/,X=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,Q=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,K=Z.split(`
6
+ `),H=[];for(let Y=0;Y<K.length;Y++){let z=K[Y],W=Y>0?K[Y-1]:"";if(Y>0&&$.test(z)){let G=W.replace(/\/\/.*$/,"").replace(/\/\*.*\*\/\s*$/,"");if(!X.test(G)&&!Q.test(G)){let J=z.match(/^(\s*)/),U=J?J[1]:"",_=z.slice(U.length);H.push(U+";"+_);continue}}H.push(z)}return H.join(`
7
7
  `)}function N6(Z){let $=[],X=0,Q="normal",K=[];while(X<Z.length){let Y=Z[X],z=Z[X+1];switch(Q){case"single-string":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="'")Q="normal";X++;continue;case"double-string":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==='"')Q="normal";X++;continue;case"template-string":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="$"&&z==="{"){X+=2,K.push(1),Q="normal";continue}if(Y==="`")Q="normal";X++;continue;case"line-comment":if(Y===`
8
- `)Q="normal";X++;continue;case"block-comment":if(Y==="*"&&z==="/"){X+=2,Q="normal";continue}X++;continue;case"regex":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="["){X++;while(X<Z.length&&Z[X]!=="]")if(Z[X]==="\\"&&X+1<Z.length)X+=2;else X++;if(X<Z.length)X++;continue}if(Y==="/"){X++;while(X<Z.length&&/[gimsuy]/.test(Z[X]))X++;Q="normal";continue}X++;continue;case"normal":if(K.length>0){if(Y==="{")K[K.length-1]++;else if(Y==="}"){if(K[K.length-1]--,K[K.length-1]===0){K.pop(),X++,Q="template-string";continue}}}if(Y==="'"){X++,Q="single-string";continue}if(Y==='"'){X++,Q="double-string";continue}if(Y==="`"){X++,Q="template-string";continue}if(Y==="/"&&z==="/"){X+=2,Q="line-comment";continue}if(Y==="/"&&z==="*"){X+=2,Q="block-comment";continue}if(Y==="/"){let W=X-1;while(W>=0&&/\s/.test(Z[W]))W--;let G=W>=0?Z[W]:"";if(!G||/[=(!,;:{[&|?+\-*%<>~^]/.test(G)||W>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(Z.slice(Math.max(0,W-10),W+1))){X++,Q="regex";continue}}if(Y==="="&&z==="="&&Z[X+2]!=="="&&Z[X-1]!=="!"){$.push({pos:X,op:"=="}),X+=2;continue}if(Y==="!"&&z==="="&&Z[X+2]!=="="){$.push({pos:X,op:"!="}),X+=2;continue}break}X++}if($.length===0)return Z;let H=Z;for(let Y=$.length-1;Y>=0;Y--){let{pos:z,op:W}=$[Y],G=W==="=="?"Is":"IsNot",J=S8(H,z),L=k8(H,z+2),_=H.slice(J,z).trim(),U=H.slice(z+2,L).trim();if(_&&U){let D=H.slice(0,J),R=H.slice(L),B=/[a-zA-Z0-9_$]$/.test(D)?" ":"";H=`${D}${B}${G}(${_}, ${U})${R}`}}return H}function S8(Z,$){let X=$-1;while(X>=0&&/\s/.test(Z[X]))X--;if(X<0)return 0;let Q=0,K=!1,H="";while(X>=0){let Y=Z[X],z=X>0?Z[X-1]:"";if(K){if(Y===H&&z!=="\\")K=!1;X--;continue}if((Y==='"'||Y==="'"||Y==="`")&&z!=="\\"){K=!0,H=Y,X--;continue}if(Y===")"||Y==="]"){Q++,X--;continue}if(Y==="("||Y==="["){if(Q>0){Q--,X--;continue}return X+1}if(Q>0){X--;continue}if(Y===";"||Y==="{"||Y==="}")return X+1;if(/[a-z]/.test(Y)){let W=X+1,G=X;while(G>0&&/[a-z]/i.test(Z[G-1]))G--;let J=Z.slice(G,W),L=G>0?Z[G-1]:"";if(!/[a-zA-Z0-9_$]/.test(L)){if(["return","throw","case","typeof","void","delete","await","yield","new"].includes(J))return W}}if(Y===">"&&z==="=")return X+1;if(Y==="="&&z!=="="&&z!=="!"&&z!=="<"&&z!==">")return X+1;if(Y==="&"&&z==="&")return X+1;if(Y==="|"&&z==="|")return X+1;if(Y==="?"||Y===":")return X+1;if(Y===",")return X+1;X--}return 0}function k8(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return Z.length;let Q=0,K=!1,H="";while(X<Z.length){let Y=Z[X],z=X+1<Z.length?Z[X+1]:"";if(K){if(Y===H&&Z[X-1]!=="\\")K=!1;X++;continue}if((Y==='"'||Y==="'"||Y==="`")&&Z[X-1]!=="\\"){K=!0,H=Y,X++;continue}if(Y==="("||Y==="["||Y==="{"){Q++,X++;continue}if(Y===")"||Y==="]"||Y==="}"){if(Q>0){Q--,X++;continue}return X}if(Q>0){X++;continue}if(Y===";")return X;if(Y==="&"&&z==="&")return X;if(Y==="|"&&z==="|")return X;if(Y==="?")return X;if(Y===":")return X;if(Y===",")return X;if((Y==="="||Y==="!")&&z==="="&&Z[X+2]!=="=")return X;X++}return Z.length}function E6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bType\s+([A-Z][a-zA-Z0-9_]*)\s*/);if(Q){let K=Q[1],H=X+Q[0].length,Y=K,z=!1,W=Z.slice(H).match(/^(['"`])([^]*?)\1\s*/);if(W){let _=H+W[0].length,U=Z[_],D=U===void 0||_>=Z.length||U!=="="&&U!=="{";if(U==="="||U==="{")Y=W[2],z=!0,H=_;else if(D){let R=W[0].trim(),w=W[0].slice(R.length);$+=`const ${K} = Type('${K}', ${R})${w}`,X=_;continue}}let G,J=H,L=Z.slice(H).match(/^=\s*/);if(L){H+=L[0].length;let _=Z.slice(H).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){G=_[0],H+=_[0].length,J=H;let U=Z.slice(H).match(/^\s*/);if(U)H+=U[0].length}}if(Z[H]==="{"){let _=H+1,U=1,D=_;while(D<Z.length&&U>0){let I=Z[D];if(I==="{")U++;else if(I==="}")U--;D++}if(U!==0){$+=Z[X],X++;continue}let R=Z.slice(_,D-1).trim(),w=D,B=R.match(/description\s*:\s*(['"`])([^]*?)\1/);if(B&&!z)Y=B[2];let V,M=R.match(/example\s*:\s*/);if(M){let I=M.index+M[0].length,P=M6(R,I);if(P)V=P.value.trim()}let j=R.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(j&&V){let I=j[1].trim(),P=j[2].trim(),C=G?`, ${G}`:"";$+=`const ${K} = Type('${Y}', (${I}) => { if (!globalThis.__tjs?.validate(${I}, globalThis.__tjs?.infer(${V}))) return false; ${P} }, ${V}${C})`}else if(j){let I=j[1].trim(),P=j[2].trim(),C=G?`, undefined, ${G}`:"";$+=`const ${K} = Type('${Y}', (${I}) => { ${P} }${C})`}else if(V){let I=G?`, ${G}`:"";$+=`const ${K} = Type('${Y}', undefined, ${V}${I})`}else if(G)$+=`const ${K} = Type('${Y}', ${G})`;else $+=`const ${K} = Type('${Y}')`;X=w;continue}else if(G){$+=`const ${K} = Type('${Y}', ${G})`,X=J;continue}else if(!W){let _=Z.slice(H).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let U=_[0];$+=`const ${K} = Type('${K}', ${U})`,X=H+_[0].length;continue}}}$+=Z[X],X++}return $}function T6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bGeneric\s+([A-Z][a-zA-Z0-9_]*)\s*<([^>]+)>\s*\{/);if(Q){let K=Q[1],H=Q[2],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let V=Z[G];if(V==="{")W++;else if(V==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,_=H.split(",").map((V)=>{let M=V.trim().split("=").map((j)=>j.trim());if(M.length===2)return`['${M[0]}', ${M[1]}]`;return`'${M[0]}'`}),U=J,D=U.search(/\bdeclaration\s*\{/);if(D!==-1){let V=U.indexOf("{",D),M=1,j=V+1;while(j<U.length&&M>0){if(U[j]==="{")M++;else if(U[j]==="}")M--;j++}U=U.slice(0,D)+U.slice(j)}let R=U.match(/description\s*:\s*(['"`])([^]*?)\1/),w=U.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),B=R?R[2]:K;if(w){let V=w[1].trim().split(",").map((C)=>C.trim()),M=w[2].trim(),j=V[0]||"x",I=V.slice(1),P=I.map((C)=>`check${C}`);I.forEach((C,O)=>{M=M.replace(new RegExp(`\\b${C}\\s*\\(`,"g"),`${P[O]}(`)}),$+=`const ${K} = Generic([${_.join(", ")}], (${j}, ${P.join(", ")}) => { ${M} }, '${B}')`}else $+=`const ${K} = Generic([${_.join(", ")}], () => true, '${B}')`;X=L;continue}$+=Z[X],X++}return $}function S6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bUnion\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*/);if(Q){let K=Q[1],H=Q[3],Y=X+Q[0].length;if(Z[Y]==="{"){let z=Y+1,W=1,G=z;while(G<Z.length&&W>0){let U=Z[G];if(U==="{")W++;else if(U==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,_=F6(J);$+=`const ${K} = Union('${H}', [${_.join(", ")}])`,X=L;continue}else{let z=Z.indexOf(`
9
- `,Y);if(z===-1)z=Z.length;let W=Z.slice(Y,z).trim();if(W){let G=F6(W);$+=`const ${K} = Union('${H}', [${G.join(", ")}])`,X=z;continue}}}$+=Z[X],X++}return $}function F6(Z){let $=[],X=Z.split("|").map((Q)=>Q.trim());for(let Q of X){if(!Q)continue;$.push(Q)}return $}function k6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bEnum\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*\{/);if(Q){let K=Q[1],H=Q[3],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let D=Z[G];if(D==="{")W++;else if(D==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),L=G,U=g8(J).map(([D,R])=>`${D}: ${R}`).join(", ");$+=`const ${K} = Enum('${H}', { ${U} })`,X=L;continue}$+=Z[X],X++}return $}function g8(Z){let $=[],X=0,Q=Z.split(/[\n,]/).map((K)=>K.trim()).filter((K)=>K&&!K.startsWith("//"));for(let K of Q){let H=K.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(H){let Y=H[1],z=H[2]?.trim();if(z!==void 0){$.push([Y,z]);let W=Number(z);if(!isNaN(W))X=W+1}else $.push([Y,String(X)]),X++}}return $}function g6(Z){let $=new Map,X="",Q=0;while(Q<Z.length){let K=Z.slice(Q),H=K.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/);if(!H){if(Q===0||Z[Q-1]===`
10
- `||Z[Q-1]===";"||Z[Q-1]==="}"){let M=K.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/)}X+=Z[Q],Q++;continue}let Y=H[1],z=H[2],W=Q+H[0].length-1,G=Z0(Z,W),J=Z.slice(W+1,G-1).trim(),L=[],_=0,U=Z.slice(W+1,G-1);while(_<U.length){let M=U.slice(_).match(/^(\s*)(async\s+)?(\w+)\s*\(/);if(!M){_++;continue}let j=M[1],I=!!M[2],P=M[3],C=_+M[0].length-1,O=1,T=C+1;while(T<U.length&&O>0){if(U[T]==="(")O++;if(U[T]===")")O--;T++}let k=U.slice(C+1,T-1),g=T;while(g<U.length&&/\s/.test(U[g]))g++;if(U[g]==="="&&U[g+1]===">"){let o=e1(Z,W+1+_);throw new Q1(`Arrow functions are not allowed in extend blocks (method '${P}' in extend ${z}). Use regular function syntax instead, as extension methods need 'this' binding.`,o)}if(U[g]!=="{"){_++;continue}let m=Z0(U,g),a=U.slice(_,m).trim(),v=k.split(",").map((o)=>o.trim()).filter((o)=>o.length>0).map((o)=>{let D1=o.match(/^(\w+)\s*:\s*(.+)$/);if(D1)return`${D1[1]} = ${D1[2]}`;return o}).join(", "),y=I?"async ":"",Z1=U.slice(g+1,m-1);L.push({name:P,isAsync:I,fullText:`${P}: ${y}function(${v}) {${Z1}}`}),_=m}let D=!$.has(z);if(D)$.set(z,new Set);let R=$.get(z);for(let V of L)R.add(V.name);let w=L.map((V)=>` ${V.fullText}`).join(`,
11
- `),B;if(D)B=`${Y}const __ext_${z} = {
12
- ${w}
8
+ `)Q="normal";X++;continue;case"block-comment":if(Y==="*"&&z==="/"){X+=2,Q="normal";continue}X++;continue;case"regex":if(Y==="\\"&&X+1<Z.length){X+=2;continue}if(Y==="["){X++;while(X<Z.length&&Z[X]!=="]")if(Z[X]==="\\"&&X+1<Z.length)X+=2;else X++;if(X<Z.length)X++;continue}if(Y==="/"){X++;while(X<Z.length&&/[gimsuy]/.test(Z[X]))X++;Q="normal";continue}X++;continue;case"normal":if(K.length>0){if(Y==="{")K[K.length-1]++;else if(Y==="}"){if(K[K.length-1]--,K[K.length-1]===0){K.pop(),X++,Q="template-string";continue}}}if(Y==="'"){X++,Q="single-string";continue}if(Y==='"'){X++,Q="double-string";continue}if(Y==="`"){X++,Q="template-string";continue}if(Y==="/"&&z==="/"){X+=2,Q="line-comment";continue}if(Y==="/"&&z==="*"){X+=2,Q="block-comment";continue}if(Y==="/"){let W=X-1;while(W>=0&&/\s/.test(Z[W]))W--;let G=W>=0?Z[W]:"";if(!G||/[=(!,;:{[&|?+\-*%<>~^]/.test(G)||W>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(Z.slice(Math.max(0,W-10),W+1))){X++,Q="regex";continue}}if(Y==="="&&z==="="&&Z[X+2]!=="="&&Z[X-1]!=="!"){$.push({pos:X,op:"=="}),X+=2;continue}if(Y==="!"&&z==="="&&Z[X+2]!=="="){$.push({pos:X,op:"!="}),X+=2;continue}break}X++}if($.length===0)return Z;let H=Z;for(let Y=$.length-1;Y>=0;Y--){let{pos:z,op:W}=$[Y],G=W==="=="?"Is":"IsNot",J=S8(H,z),U=k8(H,z+2),_=H.slice(J,z).trim(),L=H.slice(z+2,U).trim();if(_&&L){let D=H.slice(0,J),I=H.slice(U),R=/[a-zA-Z0-9_$]$/.test(D)?" ":"";H=`${D}${R}${G}(${_}, ${L})${I}`}}return H}function S8(Z,$){let X=$-1;while(X>=0&&/\s/.test(Z[X]))X--;if(X<0)return 0;let Q=0,K=!1,H="";while(X>=0){let Y=Z[X],z=X>0?Z[X-1]:"";if(K){if(Y===H&&z!=="\\")K=!1;X--;continue}if((Y==='"'||Y==="'"||Y==="`")&&z!=="\\"){K=!0,H=Y,X--;continue}if(Y===")"||Y==="]"){Q++,X--;continue}if(Y==="("||Y==="["){if(Q>0){Q--,X--;continue}return X+1}if(Q>0){X--;continue}if(Y===";"||Y==="{"||Y==="}")return X+1;if(/[a-z]/.test(Y)){let W=X+1,G=X;while(G>0&&/[a-z]/i.test(Z[G-1]))G--;let J=Z.slice(G,W),U=G>0?Z[G-1]:"";if(!/[a-zA-Z0-9_$]/.test(U)){if(["return","throw","case","typeof","void","delete","await","yield","new"].includes(J))return W}}if(Y===">"&&z==="=")return X+1;if(Y==="="&&z!=="="&&z!=="!"&&z!=="<"&&z!==">")return X+1;if(Y==="&"&&z==="&")return X+1;if(Y==="|"&&z==="|")return X+1;if(Y==="?"||Y===":")return X+1;if(Y===",")return X+1;X--}return 0}function k8(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return Z.length;let Q=0,K=!1,H="";while(X<Z.length){let Y=Z[X],z=X+1<Z.length?Z[X+1]:"";if(K){if(Y===H&&Z[X-1]!=="\\")K=!1;X++;continue}if((Y==='"'||Y==="'"||Y==="`")&&Z[X-1]!=="\\"){K=!0,H=Y,X++;continue}if(Y==="("||Y==="["||Y==="{"){Q++,X++;continue}if(Y===")"||Y==="]"||Y==="}"){if(Q>0){Q--,X++;continue}return X}if(Q>0){X++;continue}if(Y===";")return X;if(Y==="&"&&z==="&")return X;if(Y==="|"&&z==="|")return X;if(Y==="?")return X;if(Y===":")return X;if(Y===",")return X;if((Y==="="||Y==="!")&&z==="="&&Z[X+2]!=="=")return X;X++}return Z.length}function E6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bType\s+([A-Z][a-zA-Z0-9_]*)\s*/);if(Q){let K=Q[1],H=X+Q[0].length,Y=K,z=!1,W=Z.slice(H).match(/^(['"`])([^]*?)\1\s*/);if(W){let _=H+W[0].length,L=Z[_],D=L===void 0||_>=Z.length||L!=="="&&L!=="{";if(L==="="||L==="{")Y=W[2],z=!0,H=_;else if(D){let I=W[0].trim(),M=W[0].slice(I.length);$+=`const ${K} = Type('${K}', ${I})${M}`,X=_;continue}}let G,J=H,U=Z.slice(H).match(/^=\s*/);if(U){H+=U[0].length;let _=Z.slice(H).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){G=_[0],H+=_[0].length,J=H;let L=Z.slice(H).match(/^\s*/);if(L)H+=L[0].length}}if(Z[H]==="{"){let _=H+1,L=1,D=_;while(D<Z.length&&L>0){let B=Z[D];if(B==="{")L++;else if(B==="}")L--;D++}if(L!==0){$+=Z[X],X++;continue}let I=Z.slice(_,D-1).trim(),M=D,R=I.match(/description\s*:\s*(['"`])([^]*?)\1/);if(R&&!z)Y=R[2];let V,w=I.match(/example\s*:\s*/);if(w){let B=w.index+w[0].length,P=M6(I,B);if(P)V=P.value.trim()}let F=I.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(F&&V){let B=F[1].trim(),P=F[2].trim(),C=G?`, ${G}`:"";$+=`const ${K} = Type('${Y}', (${B}) => { if (!globalThis.__tjs?.validate(${B}, globalThis.__tjs?.infer(${V}))) return false; ${P} }, ${V}${C})`}else if(F){let B=F[1].trim(),P=F[2].trim(),C=G?`, undefined, ${G}`:"";$+=`const ${K} = Type('${Y}', (${B}) => { ${P} }${C})`}else if(V){let B=G?`, ${G}`:"";$+=`const ${K} = Type('${Y}', undefined, ${V}${B})`}else if(G)$+=`const ${K} = Type('${Y}', ${G})`;else $+=`const ${K} = Type('${Y}')`;X=M;continue}else if(G){$+=`const ${K} = Type('${Y}', ${G})`,X=J;continue}else if(!W){let _=Z.slice(H).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let L=_[0];$+=`const ${K} = Type('${K}', ${L})`,X=H+_[0].length;continue}}}$+=Z[X],X++}return $}function T6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bGeneric\s+([A-Z][a-zA-Z0-9_]*)\s*<([^>]+)>\s*\{/);if(Q){let K=Q[1],H=Q[2],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let V=Z[G];if(V==="{")W++;else if(V==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),U=G,_=H.split(",").map((V)=>{let w=V.trim().split("=").map((F)=>F.trim());if(w.length===2)return`['${w[0]}', ${w[1]}]`;return`'${w[0]}'`}),L=J,D=L.search(/\bdeclaration\s*\{/);if(D!==-1){let V=L.indexOf("{",D),w=1,F=V+1;while(F<L.length&&w>0){if(L[F]==="{")w++;else if(L[F]==="}")w--;F++}L=L.slice(0,D)+L.slice(F)}let I=L.match(/description\s*:\s*(['"`])([^]*?)\1/),M=L.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),R=I?I[2]:K;if(M){let V=M[1].trim().split(",").map((C)=>C.trim()),w=M[2].trim(),F=V[0]||"x",B=V.slice(1),P=B.map((C)=>`check${C}`);B.forEach((C,O)=>{w=w.replace(new RegExp(`\\b${C}\\s*\\(`,"g"),`${P[O]}(`)}),$+=`const ${K} = Generic([${_.join(", ")}], (${F}, ${P.join(", ")}) => { ${w} }, '${R}')`}else $+=`const ${K} = Generic([${_.join(", ")}], () => true, '${R}')`;X=U;continue}$+=Z[X],X++}return $}function S6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bUnion\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*/);if(Q){let K=Q[1],H=Q[3],Y=X+Q[0].length;if(Z[Y]==="{"){let z=Y+1,W=1,G=z;while(G<Z.length&&W>0){let L=Z[G];if(L==="{")W++;else if(L==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),U=G,_=F6(J);$+=`const ${K} = Union('${H}', [${_.join(", ")}])`,X=U;continue}else{let z=Z.indexOf(`
9
+ `,Y);if(z===-1)z=Z.length;let W=Z.slice(Y,z).trim();if(W){let G=F6(W);$+=`const ${K} = Union('${H}', [${G.join(", ")}])`,X=z;continue}}}$+=Z[X],X++}return $}function F6(Z){let $=[],X=Z.split("|").map((Q)=>Q.trim());for(let Q of X){if(!Q)continue;$.push(Q)}return $}function k6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bEnum\s+([A-Z][a-zA-Z0-9_]*)\s+(['"`])([^]*?)\2\s*\{/);if(Q){let K=Q[1],H=Q[3],z=X+Q[0].length-1+1,W=1,G=z;while(G<Z.length&&W>0){let D=Z[G];if(D==="{")W++;else if(D==="}")W--;G++}if(W!==0){$+=Z[X],X++;continue}let J=Z.slice(z,G-1).trim(),U=G,L=g8(J).map(([D,I])=>`${D}: ${I}`).join(", ");$+=`const ${K} = Enum('${H}', { ${L} })`,X=U;continue}$+=Z[X],X++}return $}function g8(Z){let $=[],X=0,Q=Z.split(/[\n,]/).map((K)=>K.trim()).filter((K)=>K&&!K.startsWith("//"));for(let K of Q){let H=K.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(H){let Y=H[1],z=H[2]?.trim();if(z!==void 0){$.push([Y,z]);let W=Number(z);if(!isNaN(W))X=W+1}else $.push([Y,String(X)]),X++}}return $}function g6(Z){let $=new Map,X="",Q=0;while(Q<Z.length){let K=Z.slice(Q),H=K.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/);if(!H){if(Q===0||Z[Q-1]===`
10
+ `||Z[Q-1]===";"||Z[Q-1]==="}"){let w=K.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/)}X+=Z[Q],Q++;continue}let Y=H[1],z=H[2],W=Q+H[0].length-1,G=Z0(Z,W),J=Z.slice(W+1,G-1).trim(),U=[],_=0,L=Z.slice(W+1,G-1);while(_<L.length){let w=L.slice(_).match(/^(\s*)(async\s+)?(\w+)\s*\(/);if(!w){_++;continue}let F=w[1],B=!!w[2],P=w[3],C=_+w[0].length-1,O=1,T=C+1;while(T<L.length&&O>0){if(L[T]==="(")O++;if(L[T]===")")O--;T++}let S=L.slice(C+1,T-1),g=T;while(g<L.length&&/\s/.test(L[g]))g++;if(L[g]==="="&&L[g+1]===">"){let o=e1(Z,W+1+_);throw new Q1(`Arrow functions are not allowed in extend blocks (method '${P}' in extend ${z}). Use regular function syntax instead, as extension methods need 'this' binding.`,o)}if(L[g]!=="{"){_++;continue}let m=Z0(L,g),a=L.slice(_,m).trim(),v=S.split(",").map((o)=>o.trim()).filter((o)=>o.length>0).map((o)=>{let D1=o.match(/^(\w+)\s*:\s*(.+)$/);if(D1)return`${D1[1]} = ${D1[2]}`;return o}).join(", "),y=B?"async ":"",Z1=L.slice(g+1,m-1);U.push({name:P,isAsync:B,fullText:`${P}: ${y}function(${v}) {${Z1}}`}),_=m}let D=!$.has(z);if(D)$.set(z,new Set);let I=$.get(z);for(let V of U)I.add(V.name);let M=U.map((V)=>` ${V.fullText}`).join(`,
11
+ `),R;if(D)R=`${Y}const __ext_${z} = {
12
+ ${M}
13
13
  ${Y}}
14
- `;else B=`${Y}Object.assign(__ext_${z}, {
15
- ${w}
14
+ `;else R=`${Y}Object.assign(__ext_${z}, {
15
+ ${M}
16
16
  ${Y}})
17
- `;for(let V of L)B+=`${Y}if (__tjs?.registerExtension) { __tjs.registerExtension('${z}', '${V.name}', __ext_${z}.${V.name}) }
18
- `;X+=B,Q=G}if(Q<=Z.length&&X.length<Z.length);return{source:X,extensions:$}}function $0(Z,$){if($.size===0)return Z;let X=new Map;for(let[K,H]of $)for(let Y of H){if(!X.has(Y))X.set(Y,[]);X.get(Y).push(K)}let Q=Z;for(let[K,H]of X){if(!H.includes("String"))continue;let Y=new RegExp(`('(?:[^'\\\\]|\\\\.)*')\\.(${K})\\((\\))?`,"g");Q=Q.replace(Y,(G,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let z=new RegExp(`("(?:[^"\\\\]|\\\\.)*")\\.(${K})\\((\\))?`,"g");Q=Q.replace(z,(G,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let W=new RegExp("(`(?:[^`\\\\]|\\\\.)*`)\\."+K+"\\((\\))?","g");Q=Q.replace(W,(G,J,L)=>{return L?`__ext_String.${K}.call(${J})`:`__ext_String.${K}.call(${J}, `})}for(let[K,H]of X){if(!H.includes("Array"))continue;let Y=`].${K}(`,z=0,W;while((W=Q.indexOf(Y,z))!==-1){let G=1,J=W-1,L=!1;while(J>=0&&G>0){let _=Q[J];if(L){if(_===L&&(J===0||Q[J-1]!=="\\"))L=!1}else{if(_==="]")G++;if(_==="[")G--;if(_==="'"||_==='"'||_==="`")L=_}J--}if(G===0){let _=Q.slice(J+1,W+1),U=Q.slice(0,J+1),D=Q.slice(W+Y.length);if(D[0]===")")Q=`${U}__ext_Array.${K}.call(${_})${D.slice(1)}`;else Q=`${U}__ext_Array.${K}.call(${_}, ${D}`}z=W+1}}for(let[K,H]of X){if(!H.includes("Number"))continue;let Y=new RegExp(`(\\d+(?:\\.\\d+)?)\\.(${K})\\((\\))?`,"g");Q=Q.replace(Y,(z,W,G,J)=>{return J?`__ext_Number.${G}.call(${W})`:`__ext_Number.${G}.call(${W}, `})}return Q}function e1(Z,$){let X=1,Q=0;for(let K=0;K<$&&K<Z.length;K++)if(Z[K]===`
17
+ `;for(let V of U)R+=`${Y}if (__tjs?.registerExtension) { __tjs.registerExtension('${z}', '${V.name}', __ext_${z}.${V.name}) }
18
+ `;X+=R,Q=G}if(Q<=Z.length&&X.length<Z.length);return{source:X,extensions:$}}function $0(Z,$){if($.size===0)return Z;let X=new Map;for(let[K,H]of $)for(let Y of H){if(!X.has(Y))X.set(Y,[]);X.get(Y).push(K)}let Q=Z;for(let[K,H]of X){if(!H.includes("String"))continue;let Y=new RegExp(`('(?:[^'\\\\]|\\\\.)*')\\.(${K})\\((\\))?`,"g");Q=Q.replace(Y,(G,J,U,_)=>{return _?`__ext_String.${U}.call(${J})`:`__ext_String.${U}.call(${J}, `});let z=new RegExp(`("(?:[^"\\\\]|\\\\.)*")\\.(${K})\\((\\))?`,"g");Q=Q.replace(z,(G,J,U,_)=>{return _?`__ext_String.${U}.call(${J})`:`__ext_String.${U}.call(${J}, `});let W=new RegExp("(`(?:[^`\\\\]|\\\\.)*`)\\."+K+"\\((\\))?","g");Q=Q.replace(W,(G,J,U)=>{return U?`__ext_String.${K}.call(${J})`:`__ext_String.${K}.call(${J}, `})}for(let[K,H]of X){if(!H.includes("Array"))continue;let Y=`].${K}(`,z=0,W;while((W=Q.indexOf(Y,z))!==-1){let G=1,J=W-1,U=!1;while(J>=0&&G>0){let _=Q[J];if(U){if(_===U&&(J===0||Q[J-1]!=="\\"))U=!1}else{if(_==="]")G++;if(_==="[")G--;if(_==="'"||_==='"'||_==="`")U=_}J--}if(G===0){let _=Q.slice(J+1,W+1),L=Q.slice(0,J+1),D=Q.slice(W+Y.length);if(D[0]===")")Q=`${L}__ext_Array.${K}.call(${_})${D.slice(1)}`;else Q=`${L}__ext_Array.${K}.call(${_}, ${D}`}z=W+1}}for(let[K,H]of X){if(!H.includes("Number"))continue;let Y=new RegExp(`(\\d+(?:\\.\\d+)?)\\.(${K})\\((\\))?`,"g");Q=Q.replace(Y,(z,W,G,J)=>{return J?`__ext_Number.${G}.call(${W})`:`__ext_Number.${G}.call(${W}, `})}return Q}function e1(Z,$){let X=1,Q=0;for(let K=0;K<$&&K<Z.length;K++)if(Z[K]===`
19
19
  `)X++,Q=0;else Q++;return{line:X,column:Q}}function b6(Z,$){let X=$.trim();if(/^['"`]/.test(X))return`typeof ${Z} === 'string'`;if(X==="true"||X==="false")return`typeof ${Z} === 'boolean'`;if(X==="null")return`${Z} === null`;if(X==="undefined")return`${Z} === undefined`;if(X.startsWith("["))return`Array.isArray(${Z})`;if(X.startsWith("{"))return`(typeof ${Z} === 'object' && ${Z} !== null && !Array.isArray(${Z}))`;if(/^\+\d+/.test(X))return`(typeof ${Z} === 'number' && Number.isInteger(${Z}) && ${Z} >= 0)`;if(/^-?\d+\.\d+/.test(X))return`typeof ${Z} === 'number'`;if(/^-?\d+$/.test(X))return`(typeof ${Z} === 'number' && Number.isInteger(${Z}))`;return"true"}function N0(Z){let $=Z.trim();if(/^['"`]/.test($))return"string";if($==="true"||$==="false")return"boolean";if($==="null")return"null";if($==="undefined")return"undefined";if($.startsWith("["))return"array";if($.startsWith("{"))return"object";if(/^\+\d+/.test($))return"non-negative-integer";if(/^-?\d+\.\d+/.test($))return"number";if(/^-?\d+$/.test($))return"integer";return"any"}function V4(Z,$){let X=[],Q=0,K="",H=!1;for(let z=0;z<Z.length;z++){let W=Z[z];if(!H&&(W==="'"||W==='"'||W==="`")){H=W,K+=W;continue}if(H){if(K+=W,W==="\\"){if(z++,z<Z.length)K+=Z[z];continue}if(W===H)H=!1;continue}if(W==="("||W==="["||W==="{"){Q++,K+=W;continue}if(W===")"||W==="]"||W==="}"){Q--,K+=W;continue}if(W===","&&Q===0){let G=j6(K.trim(),$);if(G)X.push(G);K="";continue}K+=W}let Y=K.trim();if(Y){let z=j6(Y,$);if(z)X.push(z)}return X}function j6(Z,$){let X=Z.replace(/^\/\*\s*unsafe\s*\*\/\s*/,"");if(X.startsWith("..."))return null;let Q=X.indexOf("=");if(Q===-1)return{name:X.trim(),defaultValue:"",required:!0};let K=X.slice(0,Q).trim(),H=X.slice(Q+1).trim();return{name:K,defaultValue:H,required:$.has(K)}}function Z0(Z,$){let X=1,Q=$+1,K=!1,H=!1,Y=!1;while(Q<Z.length&&X>0){let z=Z[Q],W=Q+1<Z.length?Z[Q+1]:"";if(H){if(z===`
20
- `)H=!1;Q++;continue}if(Y){if(z==="*"&&W==="/"){Y=!1,Q+=2;continue}Q++;continue}if(K){if(z==="\\"){Q+=2;continue}if(z===K)K=!1;Q++;continue}if(z==="/"&&W==="/"){H=!0,Q+=2;continue}if(z==="/"&&W==="*"){Y=!0,Q+=2;continue}if(z==="'"||z==='"'||z==="`"){K=z,Q++;continue}if(z==="{")X++;if(z==="}")X--;Q++}return Q}function v6(Z,$){let X=new Set,Q=/(?:^|(?<=[\n;{}]))\s*(export\s+)?(async\s+)?function\s+(\w+)\s*\(/gm,K=new Map,H,Y=[];while((H=Q.exec(Z))!==null){let L=!!H[1],_=!!H[2],U=H[3],D=H.index,R=D,B=H[0].indexOf("function");if(B>=0)R=D+B;Y.push({name:U,fullMatchStart:D,funcKeywordStart:R,exported:L,isAsync:_})}for(let L of Y)if(!K.has(L.name))K.set(L.name,[]);let z=new Map;for(let L of Y)z.set(L.name,(z.get(L.name)||0)+1);let W=new Set;for(let[L,_]of z)if(_>1)W.add(L);if(W.size===0)return{source:Z,polymorphicNames:X};for(let L of Y){if(!W.has(L.name))continue;let _=Z.indexOf("(",L.funcKeywordStart);if(_===-1)continue;let U=1,D=_+1;while(D<Z.length&&U>0){if(Z[D]==="(")U++;if(Z[D]===")")U--;D++}let R=D-1,w=Z.slice(_+1,R),B=D;while(B<Z.length&&Z[B]!=="{")B++;if(B>=Z.length)continue;let V=Z0(Z,B),M=L.fullMatchStart;while(M>0&&Z[M-1]===" ")M--;let j=K.get(L.name),I=V4(w,$);if(w.includes("...")){let C=e1(Z,L.funcKeywordStart);throw new Q1(`Rest parameters are not supported in polymorphic function '${L.name}'. Use separate function names instead.`,C)}j.push({index:j.length+1,start:M,end:V,text:Z.slice(M,V),exported:L.exported,isAsync:L.isAsync,params:I})}for(let[L,_]of K){if(_.length<2)continue;let U=_.filter((D)=>D.isAsync).length;if(U>0&&U<_.length){let D=e1(Z,_[0].start);throw new Q1(`Polymorphic function '${L}': all variants must be either sync or async, not mixed.`,D)}for(let D=0;D<_.length;D++)for(let R=D+1;R<_.length;R++){let w=_[D],B=_[R];if(w.params.length!==B.params.length)continue;let V=!0;for(let M=0;M<w.params.length;M++){let j=w.params[M].defaultValue?N0(w.params[M].defaultValue):"any",I=B.params[M].defaultValue?N0(B.params[M].defaultValue):"any";if(j!==I){V=!1;break}}if(V){let M=e1(Z,B.start);throw new Q1(`Polymorphic function '${L}': variants ${D+1} and ${R+1} have ambiguous signatures (same parameter types at every position). Overloads must differ by arity or parameter types.`,M)}}}let G=[];for(let[L,_]of K){if(_.length<2)continue;for(let U of _)G.push({name:L,variant:U})}G.sort((L,_)=>_.variant.start-L.variant.start);let J=Z;for(let{name:L,variant:_}of G){let U=_.isAsync?"async ":"",D=_.text.replace(new RegExp(`(?:export\\s+)?${U?U.replace(/\s+$/,"\\s+"):""}function\\s+${L}\\s*\\(`),`${U}function ${L}$$${_.index}(`);J=J.slice(0,_.start)+D+J.slice(_.end)}for(let[L,_]of K){if(_.length<2)continue;X.add(L);let U=_[0].isAsync,D=_.some((j)=>j.exported),R=U?"async ":"",w=D?"export ":"",B=[..._].sort((j,I)=>{if(j.params.length!==I.params.length)return 0;let P=0,C=0;for(let O of j.params){let T=O.defaultValue?N0(O.defaultValue):"any";if(T==="non-negative-integer")P+=3;else if(T==="integer")P+=2;else if(T!=="any")P+=1}for(let O of I.params){let T=O.defaultValue?N0(O.defaultValue):"any";if(T==="non-negative-integer")C+=3;else if(T==="integer")C+=2;else if(T!=="any")C+=1}return C-P}),V=[];for(let j of B){let I=[`__args.length === ${j.params.length}`],P=[];for(let C=0;C<j.params.length;C++){let O=j.params[C];if(P.push(`__args[${C}]`),O.defaultValue){let T=b6(`__args[${C}]`,O.defaultValue);if(T!=="true")I.push(T)}}V.push(` if (${I.join(" && ")}) return ${L}$${j.index}(${P.join(", ")})`)}let M=`
21
- ${w}${R}function ${L}(...__args) {
20
+ `)H=!1;Q++;continue}if(Y){if(z==="*"&&W==="/"){Y=!1,Q+=2;continue}Q++;continue}if(K){if(z==="\\"){Q+=2;continue}if(z===K)K=!1;Q++;continue}if(z==="/"&&W==="/"){H=!0,Q+=2;continue}if(z==="/"&&W==="*"){Y=!0,Q+=2;continue}if(z==="'"||z==='"'||z==="`"){K=z,Q++;continue}if(z==="{")X++;if(z==="}")X--;Q++}return Q}function v6(Z,$){let X=new Set,Q=/(?:^|(?<=[\n;{}]))\s*(export\s+)?(async\s+)?function\s+(\w+)\s*\(/gm,K=new Map,H,Y=[];while((H=Q.exec(Z))!==null){let U=!!H[1],_=!!H[2],L=H[3],D=H.index,I=D,R=H[0].indexOf("function");if(R>=0)I=D+R;Y.push({name:L,fullMatchStart:D,funcKeywordStart:I,exported:U,isAsync:_})}for(let U of Y)if(!K.has(U.name))K.set(U.name,[]);let z=new Map;for(let U of Y)z.set(U.name,(z.get(U.name)||0)+1);let W=new Set;for(let[U,_]of z)if(_>1)W.add(U);if(W.size===0)return{source:Z,polymorphicNames:X};for(let U of Y){if(!W.has(U.name))continue;let _=Z.indexOf("(",U.funcKeywordStart);if(_===-1)continue;let L=1,D=_+1;while(D<Z.length&&L>0){if(Z[D]==="(")L++;if(Z[D]===")")L--;D++}let I=D-1,M=Z.slice(_+1,I),R=D;while(R<Z.length&&Z[R]!=="{")R++;if(R>=Z.length)continue;let V=Z0(Z,R),w=U.fullMatchStart;while(w>0&&Z[w-1]===" ")w--;let F=K.get(U.name),B=V4(M,$);if(M.includes("...")){let C=e1(Z,U.funcKeywordStart);throw new Q1(`Rest parameters are not supported in polymorphic function '${U.name}'. Use separate function names instead.`,C)}F.push({index:F.length+1,start:w,end:V,text:Z.slice(w,V),exported:U.exported,isAsync:U.isAsync,params:B})}for(let[U,_]of K){if(_.length<2)continue;let L=_.filter((D)=>D.isAsync).length;if(L>0&&L<_.length){let D=e1(Z,_[0].start);throw new Q1(`Polymorphic function '${U}': all variants must be either sync or async, not mixed.`,D)}for(let D=0;D<_.length;D++)for(let I=D+1;I<_.length;I++){let M=_[D],R=_[I];if(M.params.length!==R.params.length)continue;let V=!0;for(let w=0;w<M.params.length;w++){let F=M.params[w].defaultValue?N0(M.params[w].defaultValue):"any",B=R.params[w].defaultValue?N0(R.params[w].defaultValue):"any";if(F!==B){V=!1;break}}if(V){let w=e1(Z,R.start);throw new Q1(`Polymorphic function '${U}': variants ${D+1} and ${I+1} have ambiguous signatures (same parameter types at every position). Overloads must differ by arity or parameter types.`,w)}}}let G=[];for(let[U,_]of K){if(_.length<2)continue;for(let L of _)G.push({name:U,variant:L})}G.sort((U,_)=>_.variant.start-U.variant.start);let J=Z;for(let{name:U,variant:_}of G){let L=_.isAsync?"async ":"",D=_.text.replace(new RegExp(`(?:export\\s+)?${L?L.replace(/\s+$/,"\\s+"):""}function\\s+${U}\\s*\\(`),`${L}function ${U}$$${_.index}(`);J=J.slice(0,_.start)+D+J.slice(_.end)}for(let[U,_]of K){if(_.length<2)continue;X.add(U);let L=_[0].isAsync,D=_.some((F)=>F.exported),I=L?"async ":"",M=D?"export ":"",R=[..._].sort((F,B)=>{if(F.params.length!==B.params.length)return 0;let P=0,C=0;for(let O of F.params){let T=O.defaultValue?N0(O.defaultValue):"any";if(T==="non-negative-integer")P+=3;else if(T==="integer")P+=2;else if(T!=="any")P+=1}for(let O of B.params){let T=O.defaultValue?N0(O.defaultValue):"any";if(T==="non-negative-integer")C+=3;else if(T==="integer")C+=2;else if(T!=="any")C+=1}return C-P}),V=[];for(let F of R){let B=[`__args.length === ${F.params.length}`],P=[];for(let C=0;C<F.params.length;C++){let O=F.params[C];if(P.push(`__args[${C}]`),O.defaultValue){let T=b6(`__args[${C}]`,O.defaultValue);if(T!=="true")B.push(T)}}V.push(` if (${B.join(" && ")}) return ${U}$${F.index}(${P.join(", ")})`)}let w=`
21
+ ${M}${I}function ${U}(...__args) {
22
22
  ${V.join(`
23
23
  `)}
24
- return __tjs.typeError('${L}', 'no matching overload', __args)
24
+ return __tjs.typeError('${U}', 'no matching overload', __args)
25
25
  }
26
- `;J+=M}return{source:J,polymorphicNames:X}}function f6(Z){return Z.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,($,X)=>{return $.replace(X,`const ${X}`)})}function y6(Z,$=!1){let X=[],Q=[],K="",H=0;while(H<Z.length){let Y=Z.slice(H).match(/^\btest\s+/);if(Y){let z=H,W=H+Y[0].length,G,J=Z.slice(W).match(/^(['"`])([^]*?)\1\s*/);if(J)G=J[2],W+=J[0].length;if(Z[W]==="{"){let L=W+1,_=1,U=L;while(U<Z.length&&_>0){let D=Z[U];if(D==="{")_++;else if(D==="}")_--;U++}if(_===0){let D=Z.slice(L,U-1).trim(),R=U,w=(Z.slice(0,z).match(/\n/g)||[]).length+1;if(X.push({description:G,body:D,start:z,end:R,line:w}),!$)try{Function(D)()}catch(M){let j=G||`test at line ${w}`;Q.push(`Test failed: ${j} (line ${w})
27
- ${M.message||M}`)}let V=(Z.slice(z,R).match(/\n/g)||[]).length;K+=`
28
- `.repeat(V),H=R;continue}}}K+=Z[H],H++}return{source:K,tests:X,errors:Q}}function h6(Z,$){let X=new Set,Q=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,K,H=[];while((K=Q.exec(Z))!==null){let z=K[1],W=K[2]?.trim()||"",G=K.index+K[0].length-1,J=Z0(Z,G),L=Z.slice(G,J);H.push({className:z,extendsClause:W,bodyStart:G,bodyEnd:J,body:L})}let Y=Z;for(let z=H.length-1;z>=0;z--){let{className:W,extendsClause:G,bodyStart:J,bodyEnd:L,body:_}=H[z],U=/\bconstructor\s*\(/g,D,R=[];while((D=U.exec(_))!==null)R.push(D.index);if(R.length<2)continue;X.add(W);let w=[];for(let C=0;C<R.length;C++){let O=R[C],T=_.indexOf("(",O),k=1,g=T+1;while(g<_.length&&k>0){if(_[g]==="(")k++;if(_[g]===")")k--;g++}let m=_.slice(T+1,g-1),a=g;while(a<_.length&&_[a]!=="{")a++;let v=Z0(_,a),y=_.slice(a+1,v-1);w.push({index:C+1,paramStr:m,bodyText:y,fullStart:O,fullEnd:v})}let B=_.slice(0,w[0].fullEnd),V=w[w.length-1].fullEnd;B+=_.slice(V);let M=_;for(let C=w.length-1;C>=1;C--){let O=w[C],T=O.fullStart;while(T>0&&M[T-1]===" ")T--;if(T>0&&M[T-1]===`
29
- `)T--;M=M.slice(0,T)+M.slice(O.fullEnd)}let j="";for(let C=1;C<w.length;C++){let O=w[C],T=V4(O.paramStr,$);if(O.paramStr.includes("...")){let g=e1(Z,J+O.fullStart);throw new Q1(`Rest parameters are not supported in polymorphic constructors for '${W}'.`,g)}j+=`
30
- function ${W}$ctor$${O.index}(${O.paramStr}) {`,j+=`
31
- const __obj = Object.create(${W}.prototype)`,j+=`
32
- ;(function() {${O.bodyText}}).call(__obj)`,j+=`
33
- return __obj`,j+=`
26
+ `;J+=w}return{source:J,polymorphicNames:X}}function f6(Z){return Z.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,($,X)=>{return $.replace(X,`const ${X}`)})}function y6(Z,$=!1){let X=[],Q=[],K="",H=0;while(H<Z.length){let Y=Z.slice(H).match(/^\btest\s+/);if(Y){let z=H,W=H+Y[0].length,G,J=Z.slice(W).match(/^(['"`])([^]*?)\1\s*/);if(J)G=J[2],W+=J[0].length;if(Z[W]==="{"){let U=W+1,_=1,L=U;while(L<Z.length&&_>0){let D=Z[L];if(D==="{")_++;else if(D==="}")_--;L++}if(_===0){let D=Z.slice(U,L-1).trim(),I=L,M=(Z.slice(0,z).match(/\n/g)||[]).length+1;if(X.push({description:G,body:D,start:z,end:I,line:M}),!$)try{Function(D)()}catch(w){let F=G||`test at line ${M}`;Q.push(`Test failed: ${F} (line ${M})
27
+ ${w.message||w}`)}let V=(Z.slice(z,I).match(/\n/g)||[]).length;K+=`
28
+ `.repeat(V),H=I;continue}}}K+=Z[H],H++}return{source:K,tests:X,errors:Q}}function h6(Z,$){let X=new Set,Q=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,K,H=[];while((K=Q.exec(Z))!==null){let z=K[1],W=K[2]?.trim()||"",G=K.index+K[0].length-1,J=Z0(Z,G),U=Z.slice(G,J);H.push({className:z,extendsClause:W,bodyStart:G,bodyEnd:J,body:U})}let Y=Z;for(let z=H.length-1;z>=0;z--){let{className:W,extendsClause:G,bodyStart:J,bodyEnd:U,body:_}=H[z],L=/\bconstructor\s*\(/g,D,I=[];while((D=L.exec(_))!==null)I.push(D.index);if(I.length<2)continue;X.add(W);let M=[];for(let C=0;C<I.length;C++){let O=I[C],T=_.indexOf("(",O),S=1,g=T+1;while(g<_.length&&S>0){if(_[g]==="(")S++;if(_[g]===")")S--;g++}let m=_.slice(T+1,g-1),a=g;while(a<_.length&&_[a]!=="{")a++;let v=Z0(_,a),y=_.slice(a+1,v-1);M.push({index:C+1,paramStr:m,bodyText:y,fullStart:O,fullEnd:v})}let R=_.slice(0,M[0].fullEnd),V=M[M.length-1].fullEnd;R+=_.slice(V);let w=_;for(let C=M.length-1;C>=1;C--){let O=M[C],T=O.fullStart;while(T>0&&w[T-1]===" ")T--;if(T>0&&w[T-1]===`
29
+ `)T--;w=w.slice(0,T)+w.slice(O.fullEnd)}let F="";for(let C=1;C<M.length;C++){let O=M[C],T=V4(O.paramStr,$);if(O.paramStr.includes("...")){let g=e1(Z,J+O.fullStart);throw new Q1(`Rest parameters are not supported in polymorphic constructors for '${W}'.`,g)}F+=`
30
+ function ${W}$ctor$${O.index}(${O.paramStr}) {`,F+=`
31
+ const __obj = Object.create(${W}.prototype)`,F+=`
32
+ ;(function() {${O.bodyText}}).call(__obj)`,F+=`
33
+ return __obj`,F+=`
34
34
  }
35
- `}let I=[];for(let C=0;C<w.length;C++){let O=w[C],T=V4(O.paramStr,$),k=[`a.length === ${T.length}`];for(let g=0;g<T.length;g++){let m=T[g];if(m.defaultValue){let a=b6(`a[${g}]`,m.defaultValue);if(a!=="true")k.push(a)}}if(C===0)I.push(` if (${k.join(" && ")}) return Reflect.construct(t, a)`);else{let g=T.map((m,a)=>`a[${a}]`).join(", ");I.push(` if (${k.join(" && ")}) return ${W}$ctor$${O.index}(${g})`)}}j+=`
35
+ `}let B=[];for(let C=0;C<M.length;C++){let O=M[C],T=V4(O.paramStr,$),S=[`a.length === ${T.length}`];for(let g=0;g<T.length;g++){let m=T[g];if(m.defaultValue){let a=b6(`a[${g}]`,m.defaultValue);if(a!=="true")S.push(a)}}if(C===0)B.push(` if (${S.join(" && ")}) return Reflect.construct(t, a)`);else{let g=T.map((m,a)=>`a[${a}]`).join(", ");B.push(` if (${S.join(" && ")}) return ${W}$ctor$${O.index}(${g})`)}}F+=`
36
36
  function ${W}$dispatch(t, a) {
37
- `,j+=I.join(`
37
+ `,F+=B.join(`
38
38
  `)+`
39
- `,j+=` return __tjs.typeError('${W}', 'no matching constructor', a)
40
- `,j+=`}
41
- `,Y=Y.slice(0,J)+M+Y.slice(L);let P=J+M.length;Y=Y.slice(0,P)+j+Y.slice(P)}return{source:Y,polyCtorClasses:X}}function x6(Z,$=new Set){let X=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Q="",K=0,H;while((H=X.exec(Z))!==null){let Y=H[1],z=H[2]||"",W=H.index,G=W+H[0].length-1,J=1,L=G+1;while(L<Z.length&&J>0){let _=Z[L];if(_==="{")J++;else if(_==="}")J--;L++}if(J===0){let _=L,U=Z.slice(G,_);if(Q+=Z.slice(K,W),Q+=`let ${Y} = class ${Y}${z} ${U}; `,$.has(Y))Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return ${Y}$dispatch(t, a) }, construct(t, a) { return ${Y}$dispatch(t, a) } });`;else Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return Reflect.construct(t, a) } });`;K=_}}return Q+=Z.slice(K),Q}function u6(Z){let $=[{pattern:/\bnew\s+Date\b/,message:"new Date() is not allowed in TjsDate mode. Use Timestamp.now() or Timestamp.from()"},{pattern:/\bDate\.now\b/,message:"Date.now() is not allowed in TjsDate mode. Use Timestamp.now()"},{pattern:/\bDate\.parse\b/,message:"Date.parse() is not allowed in TjsDate mode. Use Timestamp.parse()"},{pattern:/\bDate\.UTC\b/,message:"Date.UTC() is not allowed in TjsDate mode. Use Timestamp.from()"}];for(let{pattern:X,message:Q}of $)if(X.test(Z))throw Error(Q);return Z}function d6(Z){if(/(?<![A-Za-z_$])\beval\s*\(/.test(Z))throw Error("eval() is not allowed in TjsNoeval mode. Use Eval() from TJS runtime for safe evaluation.");if(/\bnew\s+Function\s*\(/.test(Z))throw Error("new Function() is not allowed in TjsNoeval mode. Use SafeFunction() from TJS runtime.");return Z}function E0(Z,$={}){let X=Z,Q,K=new Set,H=new Set,Y=new Set,z={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1},W=Z.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(W)Q=W[2],Z=Z.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let G=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsStandard|TjsSafeEval)\b/,J;while(J=Z.match(G)){let M=J[2];if(M==="TjsStrict")z.tjsEquals=!0,z.tjsClass=!0,z.tjsDate=!0,z.tjsNoeval=!0,z.tjsStandard=!0;else if(M==="TjsEquals")z.tjsEquals=!0;else if(M==="TjsClass")z.tjsClass=!0;else if(M==="TjsDate")z.tjsDate=!0;else if(M==="TjsNoeval")z.tjsNoeval=!0;else if(M==="TjsStandard")z.tjsStandard=!0;else if(M==="TjsSafeEval")z.tjsSafeEval=!0;Z=Z.replace(new RegExp(`^(\\s*(?:\\/\\/[^\\n]*\\n|\\/\\*[\\s\\S]*?\\*\\/\\s*)*)\\s*${M}\\s*`),"$1")}if(z.tjsStandard)Z=O6(Z);if(Z=C6(Z),z.tjsEquals&&!$.vmTarget)Z=N6(Z);Z=E6(Z),Z=T6(Z),Z=S6(Z),Z=k6(Z),Z=f6(Z);let{source:L,returnType:_,returnSafety:U}=C0(Z,{originalSource:X,requiredParams:K,unsafeFunctions:H,safeFunctions:Y});Z=L;let D=g6(Z);Z=D.source,Z=P6(Z);let R=v6(Z,K);Z=R.source;let w=V6(Z);Z=w.source;let B=y6(Z,$.dangerouslySkipTests);Z=B.source;let V=h6(Z,K);Z=V.source;for(let M of V.polyCtorClasses)H.add(`${M}$dispatch`);if(z.tjsClass)Z=x6(Z,V.polyCtorClasses);if(z.tjsDate)Z=u6(Z);if(z.tjsNoeval)Z=d6(Z);return Z=$0(Z,D.extensions),{source:Z,returnType:_,returnSafety:U,moduleSafety:Q,tjsModes:z,originalSource:X,requiredParams:K,unsafeFunctions:H,safeFunctions:Y,wasmBlocks:w.blocks,tests:B.tests,testErrors:B.errors,polymorphicNames:R.polymorphicNames,extensions:D.extensions}}function M1(Z,$={}){let{filename:X="<source>",colonShorthand:Q=!0,vmTarget:K=!1}=$,{source:H,returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:D,testErrors:R}=Q?E0(Z,{vmTarget:K}):{source:Z,returnType:void 0,returnSafety:void 0,moduleSafety:void 0,originalSource:Z,requiredParams:new Set,unsafeFunctions:new Set,safeFunctions:new Set,wasmBlocks:[],tests:[],testErrors:[]};try{return{ast:m6.parse(H,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:D,testErrors:R}}catch(w){let B=w.loc||{line:1,column:0};throw new Q1(w.message.replace(/\s*\(\d+:\d+\)$/,""),B,G,X)}}function T0(Z,$){for(let Q of Z.body){if(Q.type==="ImportDeclaration")throw new Q1("Imports are not supported. All atoms must be registered with the VM.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ExportNamedDeclaration"||Q.type==="ExportDefaultDeclaration")throw new Q1("Exports are not supported. The function is automatically exported.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ClassDeclaration")throw new Q1("Classes are not supported. Agent99 uses functional composition.",Q.loc?.start||{line:1,column:0},void 0,$)}let X=Z.body.filter((Q)=>Q.type==="FunctionDeclaration");if(X.length===0)throw new Q1("Source must contain a function declaration",{line:1,column:0},void 0,$);if(X.length>1){let Q=X[1];throw new Q1("Only a single function per agent is allowed",Q.loc?.start||{line:1,column:0},void 0,$)}return X[0]}function X0(Z,$){let X={params:{}};if(!$.loc)return X;let Q=Z.substring(0,$.start),K=[...Q.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(K.length>0){let J=K[K.length-1],L=Q.substring(J.index+J[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(L)){let _=J[1],U=_.split(`
42
- `),D=U.filter((R)=>R.trim().length>0).reduce((R,w)=>{let B=w.match(/^(\s*)/)?.[1].length||0;return Math.min(R,B)},1/0);if(D>0&&D<1/0)_=U.map((R)=>R.slice(D)).join(`
43
- `);return X.description=_.trim(),X}}let H=Q.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!H)return X;let Y=H[0],z=Y.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(z)X.description=z[1].trim();let W=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,G;while((G=W.exec(Y))!==null)X.params[G[1]]=G[2].trim();return X}import{parseExpressionAt as b8}from"acorn";function z1(Z){switch(Z.type){case"Literal":{let $=Z.value;if($===null)return{kind:"null"};if(typeof $==="string")return{kind:"string"};if(typeof $==="number"){let X=Z.raw;if(X&&X.includes("."))return{kind:"number"};return{kind:"integer"}}if(typeof $==="boolean")return{kind:"boolean"};return{kind:"any"}}case"ArrayExpression":{let $=Z.elements;if($.length===0)return{kind:"array",items:{kind:"any"}};return{kind:"array",items:z1($[0])}}case"ObjectExpression":{let $=Z.properties,X={};for(let Q of $)if(Q.type==="Property"&&Q.key.type==="Identifier"){let K=Q.key.name;X[K]=z1(Q.value)}return{kind:"object",shape:X}}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="||")return z1(X);if($==="&&")return z1(Q);if($==="??")return z1(Q);return{kind:"any"}}case"BinaryExpression":{let{operator:$,left:X,right:Q}=Z;if($==="|"){let K=z1(X),H=z1(Q);if(H.kind==="null")return{...K,nullable:!0};if(K.kind==="null")return{...H,nullable:!0};return{kind:"union",members:[K,H]}}return{kind:"any"}}case"Identifier":{if(Z.name==="undefined")return{kind:"undefined"};return{kind:"any"}}case"UnaryExpression":{let{operator:$,argument:X}=Z;if($==="+"&&X.type==="Literal"){if(typeof X.value==="number")return{kind:"non-negative-integer"}}if($==="-"&&X.type==="Literal"){if(typeof X.value==="number"){let K=X.raw;if(K&&K.includes("."))return{kind:"number"};return{kind:"integer"}}}return{kind:"any"}}default:return{kind:"any"}}}function P1(Z,$){if(Z.type==="Identifier")return{name:Z.name,type:{kind:"any"},required:!0};if(Z.type==="AssignmentPattern"){let{left:X,right:Q}=Z;if(X.type!=="Identifier")throw new d("Only simple parameter names are supported",l(Z));let K=X.name,H=$?.has(K)??!1,Y=z1(Q),z=A1(Q);return{name:K,type:Y,required:H,default:H?null:z,example:z,loc:{start:Z.start,end:Z.end}}}if(Z.type==="ObjectPattern"){let X=Z.properties,Q={},K={};for(let H of X)if(H.type==="Property"){let Y=H.key.type==="Identifier"?H.key.name:String(H.key.value);if(H.value.type==="Identifier")Q[Y]={kind:"any"},K[Y]={name:Y,type:{kind:"any"},required:!0};else if(H.value.type==="AssignmentPattern"){let z=P1(H.value,$),W=$?.has(Y)??!1;Q[Y]=z.type,K[Y]={name:Y,type:z.type,required:W,default:W?null:z.example,example:z.example}}}return{name:"__destructured__",type:{kind:"object",shape:Q,destructuredParams:K},required:!0}}throw new d(`Unsupported parameter pattern: ${Z.type}`,l(Z))}function A1(Z){switch(Z.type){case"Literal":return Z.value;case"ArrayExpression":return Z.elements.map(($)=>$?A1($):null);case"ObjectExpression":{let $={};for(let X of Z.properties)if(X.type==="Property"&&X.key.type==="Identifier")$[X.key.name]=A1(X.value);return $}case"UnaryExpression":if(Z.operator==="-"){let $=A1(Z.argument);return typeof $==="number"?-$:void 0}if(Z.operator==="+"){let $=A1(Z.argument);return typeof $==="number"?+$:void 0}return;case"BinaryExpression":{let{operator:$,left:X}=Z;if($==="|")return A1(X);return}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="&&"){if(X.type==="Literal"&&X.value===null)return null}if($==="||")return A1(X)??A1(Q);if($==="??")return A1(X)??A1(Q);return}default:return}}function l6(Z){try{let $=b8(Z,0,{ecmaVersion:2022});return z1($)}catch{return{kind:"any"}}}function C4(Z){switch(Z.kind){case"string":return Z.nullable?"string | null":"string";case"number":return Z.nullable?"number | null":"number";case"integer":return Z.nullable?"integer | null":"integer";case"non-negative-integer":return Z.nullable?"non-negative integer | null":"non-negative integer";case"boolean":return Z.nullable?"boolean | null":"boolean";case"null":return"null";case"any":return"any";case"array":{let $=Z.items?C4(Z.items):"any";return Z.nullable?`${$}[] | null`:`${$}[]`}case"object":{if(!Z.shape||Object.keys(Z.shape).length===0)return Z.nullable?"object | null":"object";let $=Object.entries(Z.shape).map(([X,Q])=>`${X}: ${C4(Q)}`).join(", ");return Z.nullable?`{ ${$} } | null`:`{ ${$} }`}case"union":return Z.members?.map(C4).join(" | ")||"any";default:return"any"}}function S0(Z){switch(Z.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{};case"undefined":return{};case"any":return{};case"array":return{type:"array",items:Z.items?S0(Z.items):{}};case"object":if(Z.shape){let $={};for(let[X,Q]of Object.entries(Z.shape))$[X]=S0(Q);return{type:"object",properties:$,additionalProperties:!1}}return{type:"object"};case"union":if(Z.members)return{oneOf:Z.members.map(S0)};return{};default:return{}}}function v8(Z){let $={},X=[];for(let[Q,K]of Object.entries(Z))if($[Q]=S0(K.type),K.required)X.push(Q);return{type:"object",properties:$,required:X.length>0?X:void 0,additionalProperties:!1}}function H0(Z,$,X,Q={},K){let H=X0($,Z),Y=new Map;for(let w of Z.params){let B=P1(w,K);if(B.name==="__destructured__"&&B.type.kind==="object"&&B.type.destructuredParams)for(let[V,M]of Object.entries(B.type.destructuredParams))Y.set(V,{...M,description:H.params[V]});else B.description=H.params[B.name],Y.set(B.name,B)}let z;if(X)z=l6(X);let W={depth:0,locals:new Map,parameters:Y,atoms:new Set(Object.keys(Q.atoms||{})),warnings:[],source:$,filename:Q.filename||"<source>",options:Q},G=I1(Z.body,W),J=[],L=[],_=[];for(let[w,B]of Y.entries())if(B.required)L.push(w);else if(B.default!==void 0)_.push({name:w,defaultValue:B.default});else L.push(w);if(L.length>0)J.push({op:"varsImport",keys:L});for(let{name:w,defaultValue:B}of _)J.push({op:"varsImport",keys:[w]}),J.push({op:"if",condition:{$expr:"binary",op:"==",left:{$expr:"ident",name:w},right:{$expr:"literal",value:null}},then:[{op:"varSet",key:w,value:B}]});J.push(...G);let U=Object.fromEntries(Y),D={name:Z.id?.name||"anonymous",description:H.description,parameters:U,returns:z},R=v8(U);return{ast:{op:"seq",steps:J,inputSchema:R},signature:D,warnings:W.warnings}}function I1(Z,$){let X=[];for(let Q of Z.body){let K=Q0(Q,$);if(K)if(Array.isArray(K))X.push(...K);else X.push(K)}return X}function Q0(Z,$){switch(Z.type){case"VariableDeclaration":return f8(Z,$);case"ExpressionStatement":return y8(Z,$);case"IfStatement":return x8(Z,$);case"WhileStatement":return u8(Z,$);case"ForOfStatement":return d8(Z,$);case"TryStatement":return m8(Z,$);case"ReturnStatement":return l8(Z,$);case"ThrowStatement":throw new d("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",l(Z),$.source,$.filename);case"BlockStatement":return{op:"scope",steps:I1(Z,W1($))};case"EmptyStatement":return null;default:throw new d(`Unsupported statement type: ${Z.type}`,l(Z),$.source,$.filename)}}function f8(Z,$){let X=[],Q=Z.kind==="const",K=Q?"constSet":"varSet";for(let H of Z.declarations){if(H.id.type!=="Identifier")throw new d("Only simple variable names are supported",l(H),$.source,$.filename);let Y=H.id.name;if(H.init){let{step:z,resultVar:W}=S1(H.init,$,Y,Q);if(z)X.push(z);else if(W!==Y)X.push({op:K,key:Y,value:W});let G=z1(H.init);$.locals.set(Y,G)}else{if(Q)throw new d("const declarations must be initialized",l(H),$.source,$.filename);X.push({op:"varSet",key:Y,value:null}),$.locals.set(Y,{kind:"any",nullable:!0})}}return X}function y8(Z,$){let X=Z.expression;if(X.type==="AssignmentExpression")return h8(X,$);if(X.type==="CallExpression"){let{step:Q,resultVar:K}=S1(X,$);if(Q)return Q;if(K)return{op:"varSet",key:"_",value:K};return null}return $.warnings.push({message:"Expression statement has no effect",line:l(Z).line,column:l(Z).column}),null}function h8(Z,$){if(Z.left.type!=="Identifier")throw new d("Only simple variable assignment is supported",l(Z),$.source,$.filename);let X=Z.left.name,{step:Q,resultVar:K}=S1(Z.right,$,X);if(Q)return Q;return{op:"varSet",key:X,value:K}}function x8(Z,$){let X=u(Z.test,$),Q=Z.consequent.type==="BlockStatement"?I1(Z.consequent,W1($)):[Q0(Z.consequent,$)].filter(Boolean),K;if(Z.alternate)K=Z.alternate.type==="BlockStatement"?I1(Z.alternate,W1($)):[Q0(Z.alternate,$)].filter(Boolean);return{op:"if",condition:X,then:Q,...K&&{else:K}}}function u8(Z,$){let X=u(Z.test,$),Q=Z.body.type==="BlockStatement"?I1(Z.body,W1($)):[Q0(Z.body,$)].filter(Boolean);return{op:"while",condition:X,body:Q}}function d8(Z,$){let X;if(Z.left.type==="VariableDeclaration"){let Y=Z.left.declarations[0];if(Y.id.type!=="Identifier")throw new d("Only simple variable names are supported in for...of",l(Z.left),$.source,$.filename);X=Y.id.name}else if(Z.left.type==="Identifier")X=Z.left.name;else throw new d("Unsupported for...of left-hand side",l(Z.left),$.source,$.filename);let Q=r(Z.right,$),K=W1($);K.locals.set(X,{kind:"any"});let H=Z.body.type==="BlockStatement"?I1(Z.body,K):[Q0(Z.body,K)].filter(Boolean);return{op:"map",items:Q,as:X,steps:H}}function m8(Z,$){let X=I1(Z.block,W1($)),Q,K;if(Z.handler){let H=W1($);if(Z.handler.param?.type==="Identifier")K=Z.handler.param.name,H.locals.set(K,{kind:"any"});Q=I1(Z.handler.body,H)}return{op:"try",try:X,...Q&&{catch:Q},...K&&{catchParam:K}}}function l8(Z,$){if(!Z.argument)return{op:"return",value:{}};let{step:X,resultVar:Q}=S1(Z.argument,$,"__returnVal__");if(X)return[X,{op:"return",value:Q}];return{op:"return",value:r(Z.argument,$)}}var p6=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),i8=new Set(["parseInt","parseFloat","isNaN","isFinite","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent","Set","Date","filter"]),K0=new Set(["RegExp","Promise","Map","WeakSet","WeakMap","Symbol","Proxy","Reflect","Function","eval","setTimeout","setInterval","fetch","require","import","process","window","document","global","globalThis"]),p8=new Set(["toUpperCase","toLowerCase","trim","trimStart","trimEnd","charAt","charCodeAt","codePointAt","concat","includes","indexOf","lastIndexOf","startsWith","endsWith","slice","substring","substr","replace","replaceAll","match","search","padStart","padEnd","repeat","normalize","localeCompare","toString","valueOf","at","reverse","sort","fill","copyWithin","flat","flatMap","every","some","forEach","add","remove","has","clear","toArray","union","intersection","diff","format","isBefore","isAfter"]);function n8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;return i8.has($)||K0.has($)}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(p6.has(X)||K0.has(X))return!0}if($.property.type==="Identifier"){let X=$.property.name;if(p8.has(X))return!0}}return!1}function c8(Z){if(Z.object.type==="Identifier"){let $=Z.object.name;return p6.has($)||K0.has($)}return!1}var i6={RegExp:"RegExp is not available. Use string methods or the regexMatch atom.",Promise:"Promise is not needed. All operations are implicitly async.",Map:"Map is not available. Use plain objects instead.",WeakSet:"WeakSet is not available.",WeakMap:"WeakMap is not available.",Symbol:"Symbol is not available.",Proxy:"Proxy is not available.",Reflect:"Reflect is not available.",Function:"Function constructor is not available. Define functions normally.",eval:"eval is not available. Code is compiled, not evaluated.",setTimeout:"setTimeout is not available. Use the delay atom.",setInterval:"setInterval is not available. Use while loops with delay.",fetch:"fetch is not available. Use the httpFetch atom.",require:"require is not available. Atoms must be registered with the VM.",import:"import is not available. Atoms must be registered with the VM.",process:"process is not available. AsyncJS runs in a sandboxed environment.",window:"window is not available. AsyncJS runs in a sandboxed environment.",document:"document is not available. AsyncJS runs in a sandboxed environment.",global:"global is not available. AsyncJS runs in a sandboxed environment.",globalThis:"globalThis is not available. Use builtins directly."};function o8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;if(K0.has($))return i6[$]||`${$} is not available in AsyncJS.`}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(K0.has(X))return i6[X]||`${X} is not available in AsyncJS.`}}return null}function n6(Z){return{Date:" Use Date() or Date('2024-01-15') instead - no 'new' needed.",Set:" Use Set([items]) instead - no 'new' needed.",Map:" Use plain objects instead of Map.",Array:" Use array literals like [1, 2, 3] instead.",Object:" Use object literals like { key: value } instead.",Error:" Return an error object like { error: 'message' } instead.",RegExp:" Use string methods or the regexMatch atom.",Promise:" Not needed - all operations are implicitly async.",WeakSet:" WeakSet is not available.",WeakMap:" WeakMap is not available."}[Z]||" Use factory functions or object literals instead."}function S1(Z,$,X,Q){let K=Q?"constSet":"varSet";if(Z.type==="ChainExpression")return S1(Z.expression,$,X,Q);if(Z.type==="NewExpression"){let Y=Z,z="constructor";if(Y.callee.type==="Identifier")z=Y.callee.name;let W=n6(z);throw new d(`The 'new' keyword is not supported in AsyncJS.${W}`,l(Z),$.source,$.filename)}if(Z.type==="CallExpression"){let Y=o8(Z);if(Y)throw new d(Y,l(Z),$.source,$.filename)}if(Z.type==="CallExpression"&&n8(Z)){let Y=u(Z,$);if(X)return{step:{op:K,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="MemberExpression"&&c8(Z)){let Y=u(Z,$);if(X)return{step:{op:K,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="CallExpression")return s8(Z,$,X,Q);if(Z.type==="TemplateLiteral")return r8(Z,$,X,Q);if(Z.type==="BinaryExpression"||Z.type==="LogicalExpression"||Z.type==="UnaryExpression"){let Y=u(Z,$);if(X)return{step:{op:K,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}return{step:null,resultVar:r(Z,$)}}function s8(Z,$,X,Q){let K,H=!1,Y;if(Z.callee.type==="Identifier")K=Z.callee.name;else if(Z.callee.type==="MemberExpression"){let W=Z.callee;if(W.property.type==="Identifier")K=W.property.name,H=!0,Y=r(W.object,$);else throw new d("Computed method names are not supported",l(Z),$.source,$.filename)}else throw new d("Only named function calls are supported",l(Z),$.source,$.filename);if(H)return a8(K,Y,Z.arguments,$,X,Q);if(K==="console"&&Z.callee.type==="MemberExpression");let z=t8(Z,$);return{step:{op:K,...z,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function a8(Z,$,X,Q,K,H){switch(Z){case"map":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=W1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")J=I1(Y.body,G);else{let{step:L,resultVar:_}=S1(Y.body,G,"result");J=L?[L]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:$,as:W,steps:J,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"filter":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=W1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new d("filter callback must be an expression, not a block",l(X[0]),Q.source,Q.filename);else J=u(Y.body,G);return{step:{op:"filter",items:$,as:W,condition:J,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"find":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=W1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new d("find callback must be an expression, not a block",l(X[0]),Q.source,Q.filename);else J=u(Y.body,G);return{step:{op:"find",items:$,as:W,condition:J,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"reduce":if(X.length>=2&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=Y.params[1],G=z?.type==="Identifier"?z.name:"acc",J=W?.type==="Identifier"?W.name:"item",L=W1(Q);L.locals.set(G,{kind:"any"}),L.locals.set(J,{kind:"any"});let _;if(Y.body.type==="BlockStatement")_=I1(Y.body,L);else{let{step:D,resultVar:R}=S1(Y.body,L,"result");_=D?[D]:[{op:"varSet",key:"result",value:R}]}let U=r(X[1],Q);return{step:{op:"reduce",items:$,as:J,accumulator:G,initial:U,steps:_,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"slice":break;case"push":return{step:{op:"push",list:$,item:r(X[0],Q),...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K};case"join":return{step:{op:"join",list:$,sep:X.length>0?r(X[0],Q):"",...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K};case"split":return{step:{op:"split",str:$,sep:X.length>0?r(X[0],Q):"",...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}return Q.warnings.push({message:`Unknown method '${Z}' - treating as atom call`,line:0,column:0}),{step:{op:Z,receiver:$,args:X.map((Y)=>r(Y,Q)),...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}function r8(Z,$,X,Q){let K="",H={};for(let Y=0;Y<Z.quasis.length;Y++)if(K+=Z.quasis[Y].value.cooked||Z.quasis[Y].value.raw,Y<Z.expressions.length){let z=Z.expressions[Y],W=`_${Y}`;H[W]=r(z,$),K+=`{{${W}}}`}return{step:{op:"template",tmpl:K,vars:H,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function u(Z,$){switch(Z.type){case"Literal":return{$expr:"literal",value:Z.value};case"Identifier":return{$expr:"ident",name:Z.name};case"MemberExpression":{let X=Z,Q=u(X.object,$),K=X.optional===!0;if(X.computed){let Y=X.property;if(Y.type==="Literal")return{$expr:"member",object:Q,property:String(Y.value),computed:!0,...K&&{optional:!0}};throw new d("Computed member access with variables not yet supported",l(Z),$.source,$.filename)}let H=X.property.name;return{$expr:"member",object:Q,property:H,...K&&{optional:!0}}}case"ChainExpression":return u(Z.expression,$);case"BinaryExpression":{let X=Z;return{$expr:"binary",op:X.operator,left:u(X.left,$),right:u(X.right,$)}}case"LogicalExpression":{let X=Z;return{$expr:"logical",op:X.operator,left:u(X.left,$),right:u(X.right,$)}}case"UnaryExpression":{let X=Z;return{$expr:"unary",op:X.operator,argument:u(X.argument,$)}}case"ConditionalExpression":{let X=Z;return{$expr:"conditional",test:u(X.test,$),consequent:u(X.consequent,$),alternate:u(X.alternate,$)}}case"ArrayExpression":return{$expr:"array",elements:Z.elements.filter((Q)=>Q!==null).map((Q)=>u(Q,$))};case"ObjectExpression":{let X=Z,Q=[];for(let K of X.properties)if(K.type==="Property"){let H=K.key.type==="Identifier"?K.key.name:String(K.key.value);Q.push({key:H,value:u(K.value,$)})}return{$expr:"object",properties:Q}}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee,K=Q.property.type==="Identifier"?Q.property.name:String(Q.property.value),H=Q.optional===!0||X.optional===!0;return{$expr:"methodCall",object:u(Q.object,$),method:K,arguments:X.arguments.map((Y)=>u(Y,$)),...H&&{optional:!0}}}if(X.callee.type==="Identifier")return{$expr:"call",callee:X.callee.name,arguments:X.arguments.map((K)=>u(K,$))};throw new d("Complex function calls in expressions should be lifted to statements",l(Z),$.source,$.filename)}case"NewExpression":{let X=Z,Q="constructor";if(X.callee.type==="Identifier")Q=X.callee.name;let K=n6(Q);throw new d(`The 'new' keyword is not supported in AsyncJS.${K}`,l(Z),$.source,$.filename)}case"TemplateLiteral":throw new d("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",l(Z),$.source,$.filename);default:throw new d(`Unsupported expression type in condition: ${Z.type}`,l(Z),$.source,$.filename)}}function r(Z,$){switch(Z.type){case"Literal":return Z.value;case"Identifier":return Z.name;case"MemberExpression":{let X=Z;if(X.optional===!0)return u(Z,$);let K=r(X.object,$);if(K&&typeof K==="object"&&K.$expr){let Y=X.computed?String(X.property.value):X.property.name;return{$expr:"member",object:K,property:Y,...X.computed&&{computed:!0}}}if(X.computed)return`${K}[${r(X.property,$)}]`;let H=X.property.name;if(typeof K==="string")return`${K}.${H}`;if(K&&K.$kind==="arg")return{$kind:"arg",path:`${K.path}.${H}`};return`${K}.${H}`}case"ChainExpression":return r(Z.expression,$);case"ArrayExpression":return Z.elements.map((X)=>X?r(X,$):null);case"ObjectExpression":{let X={};for(let Q of Z.properties)if(Q.type==="Property"){let K=Q.key.type==="Identifier"?Q.key.name:String(Q.key.value);X[K]=r(Q.value,$)}return X}case"TemplateLiteral":return u(Z,$);case"CallExpression":return u(Z,$);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return u(Z,$);default:return null}}function t8(Z,$){if(Z.arguments.length===1&&Z.arguments[0].type==="ObjectExpression"){let X=Z.arguments[0],Q={};for(let K of X.properties)if(K.type==="Property"){let H=K.key.type==="Identifier"?K.key.name:String(K.key.value);Q[H]=r(K.value,$)}return Q}return{args:Z.arguments.map((X)=>r(X,$))}}import{parseExpressionAt as NZ}from"acorn";function e8(Z,$){let X=$;while(X>0&&Z[X-1]!==`
44
- `)X--;if(Z.slice(X,$).includes("//"))return!0;let K=0,H=!1;while(K<$)if(!H&&Z.slice(K,K+2)==="/*")H=!0,K+=2;else if(H&&Z.slice(K,K+2)==="*/")H=!1,K+=2;else K++;return H}function ZZ(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{([\s\S]*?)\}\s*\*\/|\/\*test\s*\{([\s\S]*?)\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null){let K=Q[2]||`embedded test ${$.length+1}`,H=(Q[3]||Q[4]||"").trim();$.push({description:K,body:H,line:O4(Z,Q.index)})}return $}function N4(Z){let $=[],X=[],Q=ZZ(Z);$.push(...Q);let K=/test\s+(['"`])([^'"`]*)\1\s*\{|test\s*\(\s*(['"`])([^'"`]*)\3\s*\)\s*\{|test\s*\{/g,H=/mock\s*\{/g,Y=Z,z,W=[];while((z=K.exec(Z))!==null){let _=z.index;if(e8(Z,_))continue;let U=z[2]||z[4]||`test ${$.length+1}`,D=z.index+z[0].length,R=c6(Z,D-1);if(R===-1)continue;let w=Z.slice(D,R).trim();$.push({description:U,body:w,line:O4(Z,_)}),W.push({start:_,end:R+1,desc:U})}let G=[];while((z=H.exec(Z))!==null){let _=z.index,U=z.index+z[0].length,D=c6(Z,U-1);if(D===-1)continue;let R=Z.slice(U,D).trim();X.push({body:R,line:O4(Z,_)}),G.push({start:_,end:D+1})}let J=[...W,...G].sort((_,U)=>U.start-_.start);for(let _ of J)Y=Y.slice(0,_.start)+Y.slice(_.end);Y=Y.replace(/\n\s*\n\s*\n/g,`
39
+ `,F+=` return __tjs.typeError('${W}', 'no matching constructor', a)
40
+ `,F+=`}
41
+ `,Y=Y.slice(0,J)+w+Y.slice(U);let P=J+w.length;Y=Y.slice(0,P)+F+Y.slice(P)}return{source:Y,polyCtorClasses:X}}function x6(Z,$=new Set){let X=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Q="",K=0,H;while((H=X.exec(Z))!==null){let Y=H[1],z=H[2]||"",W=H.index,G=W+H[0].length-1,J=1,U=G+1;while(U<Z.length&&J>0){let _=Z[U];if(_==="{")J++;else if(_==="}")J--;U++}if(J===0){let _=U,L=Z.slice(G,_);if(Q+=Z.slice(K,W),Q+=`let ${Y} = class ${Y}${z} ${L}; `,$.has(Y))Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return ${Y}$dispatch(t, a) }, construct(t, a) { return ${Y}$dispatch(t, a) } });`;else Q+=`${Y} = new Proxy(${Y}, { apply(t, _, a) { return Reflect.construct(t, a) } });`;K=_}}return Q+=Z.slice(K),Q}function u6(Z){let $=[{pattern:/\bnew\s+Date\b/,message:"new Date() is not allowed in TjsDate mode. Use Timestamp.now() or Timestamp.from()"},{pattern:/\bDate\.now\b/,message:"Date.now() is not allowed in TjsDate mode. Use Timestamp.now()"},{pattern:/\bDate\.parse\b/,message:"Date.parse() is not allowed in TjsDate mode. Use Timestamp.parse()"},{pattern:/\bDate\.UTC\b/,message:"Date.UTC() is not allowed in TjsDate mode. Use Timestamp.from()"}];for(let{pattern:X,message:Q}of $)if(X.test(Z))throw Error(Q);return Z}function d6(Z){if(/(?<![A-Za-z_$])\beval\s*\(/.test(Z))throw Error("eval() is not allowed in TjsNoeval mode. Use Eval() from TJS runtime for safe evaluation.");if(/\bnew\s+Function\s*\(/.test(Z))throw Error("new Function() is not allowed in TjsNoeval mode. Use SafeFunction() from TJS runtime.");return Z}function E0(Z,$={}){let X=Z,Q,K=new Set,H=new Set,Y=new Set,z={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1},W=Z.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(W)Q=W[2],Z=Z.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let G=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsStandard|TjsSafeEval)\b/,J;while(J=Z.match(G)){let w=J[2];if(w==="TjsStrict")z.tjsEquals=!0,z.tjsClass=!0,z.tjsDate=!0,z.tjsNoeval=!0,z.tjsStandard=!0;else if(w==="TjsEquals")z.tjsEquals=!0;else if(w==="TjsClass")z.tjsClass=!0;else if(w==="TjsDate")z.tjsDate=!0;else if(w==="TjsNoeval")z.tjsNoeval=!0;else if(w==="TjsStandard")z.tjsStandard=!0;else if(w==="TjsSafeEval")z.tjsSafeEval=!0;Z=Z.replace(new RegExp(`^(\\s*(?:\\/\\/[^\\n]*\\n|\\/\\*[\\s\\S]*?\\*\\/\\s*)*)\\s*${w}\\s*`),"$1")}if(z.tjsStandard)Z=O6(Z);if(Z=C6(Z),z.tjsEquals&&!$.vmTarget)Z=N6(Z);Z=E6(Z),Z=T6(Z),Z=S6(Z),Z=k6(Z),Z=f6(Z);let{source:U,returnType:_,returnSafety:L}=C0(Z,{originalSource:X,requiredParams:K,unsafeFunctions:H,safeFunctions:Y});Z=U;let D=g6(Z);Z=D.source,Z=P6(Z);let I=v6(Z,K);Z=I.source;let M=V6(Z);Z=M.source;let R=y6(Z,$.dangerouslySkipTests);Z=R.source;let V=h6(Z,K);Z=V.source;for(let w of V.polyCtorClasses)H.add(`${w}$dispatch`);if(z.tjsClass)Z=x6(Z,V.polyCtorClasses);if(z.tjsDate)Z=u6(Z);if(z.tjsNoeval)Z=d6(Z);return Z=$0(Z,D.extensions),{source:Z,returnType:_,returnSafety:L,moduleSafety:Q,tjsModes:z,originalSource:X,requiredParams:K,unsafeFunctions:H,safeFunctions:Y,wasmBlocks:M.blocks,tests:R.tests,testErrors:R.errors,polymorphicNames:I.polymorphicNames,extensions:D.extensions}}function M1(Z,$={}){let{filename:X="<source>",colonShorthand:Q=!0,vmTarget:K=!1}=$,{source:H,returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:U,safeFunctions:_,wasmBlocks:L,tests:D,testErrors:I}=Q?E0(Z,{vmTarget:K}):{source:Z,returnType:void 0,returnSafety:void 0,moduleSafety:void 0,originalSource:Z,requiredParams:new Set,unsafeFunctions:new Set,safeFunctions:new Set,wasmBlocks:[],tests:[],testErrors:[]};try{return{ast:m6.parse(H,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:Y,returnSafety:z,moduleSafety:W,originalSource:G,requiredParams:J,unsafeFunctions:U,safeFunctions:_,wasmBlocks:L,tests:D,testErrors:I}}catch(M){let R=M.loc||{line:1,column:0};throw new Q1(M.message.replace(/\s*\(\d+:\d+\)$/,""),R,G,X)}}function T0(Z,$){for(let Q of Z.body){if(Q.type==="ImportDeclaration")throw new Q1("Imports are not supported. All atoms must be registered with the VM.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ExportNamedDeclaration"||Q.type==="ExportDefaultDeclaration")throw new Q1("Exports are not supported. The function is automatically exported.",Q.loc?.start||{line:1,column:0},void 0,$);if(Q.type==="ClassDeclaration")throw new Q1("Classes are not supported. Agent99 uses functional composition.",Q.loc?.start||{line:1,column:0},void 0,$)}let X=Z.body.filter((Q)=>Q.type==="FunctionDeclaration");if(X.length===0)throw new Q1("Source must contain a function declaration",{line:1,column:0},void 0,$);if(X.length>1){let Q=X[1];throw new Q1("Only a single function per agent is allowed",Q.loc?.start||{line:1,column:0},void 0,$)}return X[0]}function X0(Z,$){let X={params:{}};if(!$.loc)return X;let Q=Z.substring(0,$.start),K=[...Q.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(K.length>0){let J=K[K.length-1],U=Q.substring(J.index+J[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(U)){let _=J[1],L=_.split(`
42
+ `),D=L.filter((I)=>I.trim().length>0).reduce((I,M)=>{let R=M.match(/^(\s*)/)?.[1].length||0;return Math.min(I,R)},1/0);if(D>0&&D<1/0)_=L.map((I)=>I.slice(D)).join(`
43
+ `);return X.description=_.trim(),X}}let H=Q.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!H)return X;let Y=H[0],z=Y.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(z)X.description=z[1].trim();let W=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,G;while((G=W.exec(Y))!==null)X.params[G[1]]=G[2].trim();return X}import{parseExpressionAt as b8}from"acorn";function z1(Z){switch(Z.type){case"Literal":{let $=Z.value;if($===null)return{kind:"null"};if(typeof $==="string")return{kind:"string"};if(typeof $==="number"){let X=Z.raw;if(X&&X.includes("."))return{kind:"number"};return{kind:"integer"}}if(typeof $==="boolean")return{kind:"boolean"};return{kind:"any"}}case"ArrayExpression":{let $=Z.elements;if($.length===0)return{kind:"array",items:{kind:"any"}};return{kind:"array",items:z1($[0])}}case"ObjectExpression":{let $=Z.properties,X={};for(let Q of $)if(Q.type==="Property"&&Q.key.type==="Identifier"){let K=Q.key.name;X[K]=z1(Q.value)}return{kind:"object",shape:X}}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="||")return z1(X);if($==="&&")return z1(Q);if($==="??")return z1(Q);return{kind:"any"}}case"BinaryExpression":{let{operator:$,left:X,right:Q}=Z;if($==="|"){let K=z1(X),H=z1(Q);if(H.kind==="null")return{...K,nullable:!0};if(K.kind==="null")return{...H,nullable:!0};return{kind:"union",members:[K,H]}}return{kind:"any"}}case"Identifier":{if(Z.name==="undefined")return{kind:"undefined"};return{kind:"any"}}case"UnaryExpression":{let{operator:$,argument:X}=Z;if($==="+"&&X.type==="Literal"){if(typeof X.value==="number")return{kind:"non-negative-integer"}}if($==="-"&&X.type==="Literal"){if(typeof X.value==="number"){let K=X.raw;if(K&&K.includes("."))return{kind:"number"};return{kind:"integer"}}}return{kind:"any"}}default:return{kind:"any"}}}function P1(Z,$){if(Z.type==="Identifier")return{name:Z.name,type:{kind:"any"},required:!0};if(Z.type==="AssignmentPattern"){let{left:X,right:Q}=Z;if(X.type!=="Identifier")throw new d("Only simple parameter names are supported",l(Z));let K=X.name,H=$?.has(K)??!1,Y=z1(Q),z=A1(Q);return{name:K,type:Y,required:H,default:H?null:z,example:z,loc:{start:Z.start,end:Z.end}}}if(Z.type==="ObjectPattern"){let X=Z.properties,Q={},K={};for(let H of X)if(H.type==="Property"){let Y=H.key.type==="Identifier"?H.key.name:String(H.key.value);if(H.value.type==="Identifier")Q[Y]={kind:"any"},K[Y]={name:Y,type:{kind:"any"},required:!0};else if(H.value.type==="AssignmentPattern"){let z=P1(H.value,$),W=$?.has(Y)??!1;Q[Y]=z.type,K[Y]={name:Y,type:z.type,required:W,default:W?null:z.example,example:z.example}}}return{name:"__destructured__",type:{kind:"object",shape:Q,destructuredParams:K},required:!0}}throw new d(`Unsupported parameter pattern: ${Z.type}`,l(Z))}function A1(Z){switch(Z.type){case"Literal":return Z.value;case"ArrayExpression":return Z.elements.map(($)=>$?A1($):null);case"ObjectExpression":{let $={};for(let X of Z.properties)if(X.type==="Property"&&X.key.type==="Identifier")$[X.key.name]=A1(X.value);return $}case"UnaryExpression":if(Z.operator==="-"){let $=A1(Z.argument);return typeof $==="number"?-$:void 0}if(Z.operator==="+"){let $=A1(Z.argument);return typeof $==="number"?+$:void 0}return;case"BinaryExpression":{let{operator:$,left:X}=Z;if($==="|")return A1(X);return}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="&&"){if(X.type==="Literal"&&X.value===null)return null}if($==="||")return A1(X)??A1(Q);if($==="??")return A1(X)??A1(Q);return}default:return}}function l6(Z){try{let $=b8(Z,0,{ecmaVersion:2022});return z1($)}catch{return{kind:"any"}}}function C4(Z){switch(Z.kind){case"string":return Z.nullable?"string | null":"string";case"number":return Z.nullable?"number | null":"number";case"integer":return Z.nullable?"integer | null":"integer";case"non-negative-integer":return Z.nullable?"non-negative integer | null":"non-negative integer";case"boolean":return Z.nullable?"boolean | null":"boolean";case"null":return"null";case"any":return"any";case"array":{let $=Z.items?C4(Z.items):"any";return Z.nullable?`${$}[] | null`:`${$}[]`}case"object":{if(!Z.shape||Object.keys(Z.shape).length===0)return Z.nullable?"object | null":"object";let $=Object.entries(Z.shape).map(([X,Q])=>`${X}: ${C4(Q)}`).join(", ");return Z.nullable?`{ ${$} } | null`:`{ ${$} }`}case"union":return Z.members?.map(C4).join(" | ")||"any";default:return"any"}}function S0(Z){switch(Z.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{};case"undefined":return{};case"any":return{};case"array":return{type:"array",items:Z.items?S0(Z.items):{}};case"object":if(Z.shape){let $={};for(let[X,Q]of Object.entries(Z.shape))$[X]=S0(Q);return{type:"object",properties:$,additionalProperties:!1}}return{type:"object"};case"union":if(Z.members)return{oneOf:Z.members.map(S0)};return{};default:return{}}}function v8(Z){let $={},X=[];for(let[Q,K]of Object.entries(Z))if($[Q]=S0(K.type),K.required)X.push(Q);return{type:"object",properties:$,required:X.length>0?X:void 0,additionalProperties:!1}}function H0(Z,$,X,Q={},K){let H=X0($,Z),Y=new Map;for(let M of Z.params){let R=P1(M,K);if(R.name==="__destructured__"&&R.type.kind==="object"&&R.type.destructuredParams)for(let[V,w]of Object.entries(R.type.destructuredParams))Y.set(V,{...w,description:H.params[V]});else R.description=H.params[R.name],Y.set(R.name,R)}let z;if(X)z=l6(X);let W={depth:0,locals:new Map,parameters:Y,atoms:new Set(Object.keys(Q.atoms||{})),warnings:[],source:$,filename:Q.filename||"<source>",options:Q},G=I1(Z.body,W),J=[],U=[],_=[];for(let[M,R]of Y.entries())if(R.required)U.push(M);else if(R.default!==void 0)_.push({name:M,defaultValue:R.default});else U.push(M);if(U.length>0)J.push({op:"varsImport",keys:U});for(let{name:M,defaultValue:R}of _)J.push({op:"varsImport",keys:[M]}),J.push({op:"if",condition:{$expr:"binary",op:"==",left:{$expr:"ident",name:M},right:{$expr:"literal",value:null}},then:[{op:"varSet",key:M,value:R}]});J.push(...G);let L=Object.fromEntries(Y),D={name:Z.id?.name||"anonymous",description:H.description,parameters:L,returns:z},I=v8(L);return{ast:{op:"seq",steps:J,inputSchema:I},signature:D,warnings:W.warnings}}function I1(Z,$){let X=[];for(let Q of Z.body){let K=Q0(Q,$);if(K)if(Array.isArray(K))X.push(...K);else X.push(K)}return X}function Q0(Z,$){switch(Z.type){case"VariableDeclaration":return f8(Z,$);case"ExpressionStatement":return y8(Z,$);case"IfStatement":return x8(Z,$);case"WhileStatement":return u8(Z,$);case"ForOfStatement":return d8(Z,$);case"TryStatement":return m8(Z,$);case"ReturnStatement":return l8(Z,$);case"ThrowStatement":throw new d("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",l(Z),$.source,$.filename);case"BlockStatement":return{op:"scope",steps:I1(Z,W1($))};case"EmptyStatement":return null;default:throw new d(`Unsupported statement type: ${Z.type}`,l(Z),$.source,$.filename)}}function f8(Z,$){let X=[],Q=Z.kind==="const",K=Q?"constSet":"varSet";for(let H of Z.declarations){if(H.id.type!=="Identifier")throw new d("Only simple variable names are supported",l(H),$.source,$.filename);let Y=H.id.name;if(H.init){let{step:z,resultVar:W}=S1(H.init,$,Y,Q);if(z)X.push(z);else if(W!==Y)X.push({op:K,key:Y,value:W});let G=z1(H.init);$.locals.set(Y,G)}else{if(Q)throw new d("const declarations must be initialized",l(H),$.source,$.filename);X.push({op:"varSet",key:Y,value:null}),$.locals.set(Y,{kind:"any",nullable:!0})}}return X}function y8(Z,$){let X=Z.expression;if(X.type==="AssignmentExpression")return h8(X,$);if(X.type==="CallExpression"){let{step:Q,resultVar:K}=S1(X,$);if(Q)return Q;if(K)return{op:"varSet",key:"_",value:K};return null}return $.warnings.push({message:"Expression statement has no effect",line:l(Z).line,column:l(Z).column}),null}function h8(Z,$){if(Z.left.type!=="Identifier")throw new d("Only simple variable assignment is supported",l(Z),$.source,$.filename);let X=Z.left.name,{step:Q,resultVar:K}=S1(Z.right,$,X);if(Q)return Q;return{op:"varSet",key:X,value:K}}function x8(Z,$){let X=u(Z.test,$),Q=Z.consequent.type==="BlockStatement"?I1(Z.consequent,W1($)):[Q0(Z.consequent,$)].filter(Boolean),K;if(Z.alternate)K=Z.alternate.type==="BlockStatement"?I1(Z.alternate,W1($)):[Q0(Z.alternate,$)].filter(Boolean);return{op:"if",condition:X,then:Q,...K&&{else:K}}}function u8(Z,$){let X=u(Z.test,$),Q=Z.body.type==="BlockStatement"?I1(Z.body,W1($)):[Q0(Z.body,$)].filter(Boolean);return{op:"while",condition:X,body:Q}}function d8(Z,$){let X;if(Z.left.type==="VariableDeclaration"){let Y=Z.left.declarations[0];if(Y.id.type!=="Identifier")throw new d("Only simple variable names are supported in for...of",l(Z.left),$.source,$.filename);X=Y.id.name}else if(Z.left.type==="Identifier")X=Z.left.name;else throw new d("Unsupported for...of left-hand side",l(Z.left),$.source,$.filename);let Q=r(Z.right,$),K=W1($);K.locals.set(X,{kind:"any"});let H=Z.body.type==="BlockStatement"?I1(Z.body,K):[Q0(Z.body,K)].filter(Boolean);return{op:"map",items:Q,as:X,steps:H}}function m8(Z,$){let X=I1(Z.block,W1($)),Q,K;if(Z.handler){let H=W1($);if(Z.handler.param?.type==="Identifier")K=Z.handler.param.name,H.locals.set(K,{kind:"any"});Q=I1(Z.handler.body,H)}return{op:"try",try:X,...Q&&{catch:Q},...K&&{catchParam:K}}}function l8(Z,$){if(!Z.argument)return{op:"return",value:{}};let{step:X,resultVar:Q}=S1(Z.argument,$,"__returnVal__");if(X)return[X,{op:"return",value:Q}];return{op:"return",value:r(Z.argument,$)}}var p6=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),i8=new Set(["parseInt","parseFloat","isNaN","isFinite","encodeURI","decodeURI","encodeURIComponent","decodeURIComponent","Set","Date","filter"]),K0=new Set(["RegExp","Promise","Map","WeakSet","WeakMap","Symbol","Proxy","Reflect","Function","eval","setTimeout","setInterval","fetch","require","import","process","window","document","global","globalThis"]),p8=new Set(["toUpperCase","toLowerCase","trim","trimStart","trimEnd","charAt","charCodeAt","codePointAt","concat","includes","indexOf","lastIndexOf","startsWith","endsWith","slice","substring","substr","replace","replaceAll","match","search","padStart","padEnd","repeat","normalize","localeCompare","toString","valueOf","at","reverse","sort","fill","copyWithin","flat","flatMap","every","some","forEach","add","remove","has","clear","toArray","union","intersection","diff","format","isBefore","isAfter"]);function n8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;return i8.has($)||K0.has($)}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(p6.has(X)||K0.has(X))return!0}if($.property.type==="Identifier"){let X=$.property.name;if(p8.has(X))return!0}}return!1}function c8(Z){if(Z.object.type==="Identifier"){let $=Z.object.name;return p6.has($)||K0.has($)}return!1}var i6={RegExp:"RegExp is not available. Use string methods or the regexMatch atom.",Promise:"Promise is not needed. All operations are implicitly async.",Map:"Map is not available. Use plain objects instead.",WeakSet:"WeakSet is not available.",WeakMap:"WeakMap is not available.",Symbol:"Symbol is not available.",Proxy:"Proxy is not available.",Reflect:"Reflect is not available.",Function:"Function constructor is not available. Define functions normally.",eval:"eval is not available. Code is compiled, not evaluated.",setTimeout:"setTimeout is not available. Use the delay atom.",setInterval:"setInterval is not available. Use while loops with delay.",fetch:"fetch is not available. Use the httpFetch atom.",require:"require is not available. Atoms must be registered with the VM.",import:"import is not available. Atoms must be registered with the VM.",process:"process is not available. AsyncJS runs in a sandboxed environment.",window:"window is not available. AsyncJS runs in a sandboxed environment.",document:"document is not available. AsyncJS runs in a sandboxed environment.",global:"global is not available. AsyncJS runs in a sandboxed environment.",globalThis:"globalThis is not available. Use builtins directly."};function o8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;if(K0.has($))return i6[$]||`${$} is not available in AsyncJS.`}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(K0.has(X))return i6[X]||`${X} is not available in AsyncJS.`}}return null}function n6(Z){return{Date:" Use Date() or Date('2024-01-15') instead - no 'new' needed.",Set:" Use Set([items]) instead - no 'new' needed.",Map:" Use plain objects instead of Map.",Array:" Use array literals like [1, 2, 3] instead.",Object:" Use object literals like { key: value } instead.",Error:" Return an error object like { error: 'message' } instead.",RegExp:" Use string methods or the regexMatch atom.",Promise:" Not needed - all operations are implicitly async.",WeakSet:" WeakSet is not available.",WeakMap:" WeakMap is not available."}[Z]||" Use factory functions or object literals instead."}function S1(Z,$,X,Q){let K=Q?"constSet":"varSet";if(Z.type==="ChainExpression")return S1(Z.expression,$,X,Q);if(Z.type==="NewExpression"){let Y=Z,z="constructor";if(Y.callee.type==="Identifier")z=Y.callee.name;let W=n6(z);throw new d(`The 'new' keyword is not supported in AsyncJS.${W}`,l(Z),$.source,$.filename)}if(Z.type==="CallExpression"){let Y=o8(Z);if(Y)throw new d(Y,l(Z),$.source,$.filename)}if(Z.type==="CallExpression"&&n8(Z)){let Y=u(Z,$);if(X)return{step:{op:K,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="MemberExpression"&&c8(Z)){let Y=u(Z,$);if(X)return{step:{op:K,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="CallExpression")return s8(Z,$,X,Q);if(Z.type==="TemplateLiteral")return r8(Z,$,X,Q);if(Z.type==="BinaryExpression"||Z.type==="LogicalExpression"||Z.type==="UnaryExpression"){let Y=u(Z,$);if(X)return{step:{op:K,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}return{step:null,resultVar:r(Z,$)}}function s8(Z,$,X,Q){let K,H=!1,Y;if(Z.callee.type==="Identifier")K=Z.callee.name;else if(Z.callee.type==="MemberExpression"){let W=Z.callee;if(W.property.type==="Identifier")K=W.property.name,H=!0,Y=r(W.object,$);else throw new d("Computed method names are not supported",l(Z),$.source,$.filename)}else throw new d("Only named function calls are supported",l(Z),$.source,$.filename);if(H)return a8(K,Y,Z.arguments,$,X,Q);if(K==="console"&&Z.callee.type==="MemberExpression");let z=t8(Z,$);return{step:{op:K,...z,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function a8(Z,$,X,Q,K,H){switch(Z){case"map":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=W1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")J=I1(Y.body,G);else{let{step:U,resultVar:_}=S1(Y.body,G,"result");J=U?[U]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:$,as:W,steps:J,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"filter":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=W1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new d("filter callback must be an expression, not a block",l(X[0]),Q.source,Q.filename);else J=u(Y.body,G);return{step:{op:"filter",items:$,as:W,condition:J,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"find":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=z?.type==="Identifier"?z.name:"item",G=W1(Q);G.locals.set(W,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new d("find callback must be an expression, not a block",l(X[0]),Q.source,Q.filename);else J=u(Y.body,G);return{step:{op:"find",items:$,as:W,condition:J,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"reduce":if(X.length>=2&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],W=Y.params[1],G=z?.type==="Identifier"?z.name:"acc",J=W?.type==="Identifier"?W.name:"item",U=W1(Q);U.locals.set(G,{kind:"any"}),U.locals.set(J,{kind:"any"});let _;if(Y.body.type==="BlockStatement")_=I1(Y.body,U);else{let{step:D,resultVar:I}=S1(Y.body,U,"result");_=D?[D]:[{op:"varSet",key:"result",value:I}]}let L=r(X[1],Q);return{step:{op:"reduce",items:$,as:J,accumulator:G,initial:L,steps:_,...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}break;case"slice":break;case"push":return{step:{op:"push",list:$,item:r(X[0],Q),...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K};case"join":return{step:{op:"join",list:$,sep:X.length>0?r(X[0],Q):"",...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K};case"split":return{step:{op:"split",str:$,sep:X.length>0?r(X[0],Q):"",...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}return Q.warnings.push({message:`Unknown method '${Z}' - treating as atom call`,line:0,column:0}),{step:{op:Z,receiver:$,args:X.map((Y)=>r(Y,Q)),...K&&{result:K},...K&&H&&{resultConst:!0}},resultVar:K}}function r8(Z,$,X,Q){let K="",H={};for(let Y=0;Y<Z.quasis.length;Y++)if(K+=Z.quasis[Y].value.cooked||Z.quasis[Y].value.raw,Y<Z.expressions.length){let z=Z.expressions[Y],W=`_${Y}`;H[W]=r(z,$),K+=`{{${W}}}`}return{step:{op:"template",tmpl:K,vars:H,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function u(Z,$){switch(Z.type){case"Literal":return{$expr:"literal",value:Z.value};case"Identifier":return{$expr:"ident",name:Z.name};case"MemberExpression":{let X=Z,Q=u(X.object,$),K=X.optional===!0;if(X.computed){let Y=X.property;if(Y.type==="Literal")return{$expr:"member",object:Q,property:String(Y.value),computed:!0,...K&&{optional:!0}};throw new d("Computed member access with variables not yet supported",l(Z),$.source,$.filename)}let H=X.property.name;return{$expr:"member",object:Q,property:H,...K&&{optional:!0}}}case"ChainExpression":return u(Z.expression,$);case"BinaryExpression":{let X=Z;return{$expr:"binary",op:X.operator,left:u(X.left,$),right:u(X.right,$)}}case"LogicalExpression":{let X=Z;return{$expr:"logical",op:X.operator,left:u(X.left,$),right:u(X.right,$)}}case"UnaryExpression":{let X=Z;return{$expr:"unary",op:X.operator,argument:u(X.argument,$)}}case"ConditionalExpression":{let X=Z;return{$expr:"conditional",test:u(X.test,$),consequent:u(X.consequent,$),alternate:u(X.alternate,$)}}case"ArrayExpression":return{$expr:"array",elements:Z.elements.filter((Q)=>Q!==null).map((Q)=>u(Q,$))};case"ObjectExpression":{let X=Z,Q=[];for(let K of X.properties)if(K.type==="Property"){let H=K.key.type==="Identifier"?K.key.name:String(K.key.value);Q.push({key:H,value:u(K.value,$)})}return{$expr:"object",properties:Q}}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee,K=Q.property.type==="Identifier"?Q.property.name:String(Q.property.value),H=Q.optional===!0||X.optional===!0;return{$expr:"methodCall",object:u(Q.object,$),method:K,arguments:X.arguments.map((Y)=>u(Y,$)),...H&&{optional:!0}}}if(X.callee.type==="Identifier")return{$expr:"call",callee:X.callee.name,arguments:X.arguments.map((K)=>u(K,$))};throw new d("Complex function calls in expressions should be lifted to statements",l(Z),$.source,$.filename)}case"NewExpression":{let X=Z,Q="constructor";if(X.callee.type==="Identifier")Q=X.callee.name;let K=n6(Q);throw new d(`The 'new' keyword is not supported in AsyncJS.${K}`,l(Z),$.source,$.filename)}case"TemplateLiteral":throw new d("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",l(Z),$.source,$.filename);default:throw new d(`Unsupported expression type in condition: ${Z.type}`,l(Z),$.source,$.filename)}}function r(Z,$){switch(Z.type){case"Literal":return Z.value;case"Identifier":return Z.name;case"MemberExpression":{let X=Z;if(X.optional===!0)return u(Z,$);let K=r(X.object,$);if(K&&typeof K==="object"&&K.$expr){let Y=X.computed?String(X.property.value):X.property.name;return{$expr:"member",object:K,property:Y,...X.computed&&{computed:!0}}}if(X.computed)return`${K}[${r(X.property,$)}]`;let H=X.property.name;if(typeof K==="string")return`${K}.${H}`;if(K&&K.$kind==="arg")return{$kind:"arg",path:`${K.path}.${H}`};return`${K}.${H}`}case"ChainExpression":return r(Z.expression,$);case"ArrayExpression":return Z.elements.map((X)=>X?r(X,$):null);case"ObjectExpression":{let X={};for(let Q of Z.properties)if(Q.type==="Property"){let K=Q.key.type==="Identifier"?Q.key.name:String(Q.key.value);X[K]=r(Q.value,$)}return X}case"TemplateLiteral":return u(Z,$);case"CallExpression":return u(Z,$);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return u(Z,$);default:return null}}function t8(Z,$){if(Z.arguments.length===1&&Z.arguments[0].type==="ObjectExpression"){let X=Z.arguments[0],Q={};for(let K of X.properties)if(K.type==="Property"){let H=K.key.type==="Identifier"?K.key.name:String(K.key.value);Q[H]=r(K.value,$)}return Q}return{args:Z.arguments.map((X)=>r(X,$))}}import{parseExpressionAt as NZ}from"acorn";function e8(Z,$){let X=$;while(X>0&&Z[X-1]!==`
44
+ `)X--;if(Z.slice(X,$).includes("//"))return!0;let K=0,H=!1;while(K<$)if(!H&&Z.slice(K,K+2)==="/*")H=!0,K+=2;else if(H&&Z.slice(K,K+2)==="*/")H=!1,K+=2;else K++;return H}function ZZ(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{([\s\S]*?)\}\s*\*\/|\/\*test\s*\{([\s\S]*?)\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null){let K=Q[2]||`embedded test ${$.length+1}`,H=(Q[3]||Q[4]||"").trim();$.push({description:K,body:H,line:O4(Z,Q.index)})}return $}function N4(Z){let $=[],X=[],Q=ZZ(Z);$.push(...Q);let K=/test\s+(['"`])([^'"`]*)\1\s*\{|test\s*\(\s*(['"`])([^'"`]*)\3\s*\)\s*\{|test\s*\{/g,H=/mock\s*\{/g,Y=Z,z,W=[];while((z=K.exec(Z))!==null){let _=z.index;if(e8(Z,_))continue;let L=z[2]||z[4]||`test ${$.length+1}`,D=z.index+z[0].length,I=c6(Z,D-1);if(I===-1)continue;let M=Z.slice(D,I).trim();$.push({description:L,body:M,line:O4(Z,_)}),W.push({start:_,end:I+1,desc:L})}let G=[];while((z=H.exec(Z))!==null){let _=z.index,L=z.index+z[0].length,D=c6(Z,L-1);if(D===-1)continue;let I=Z.slice(L,D).trim();X.push({body:I,line:O4(Z,_)}),G.push({start:_,end:D+1})}let J=[...W,...G].sort((_,L)=>L.start-_.start);for(let _ of J)Y=Y.slice(0,_.start)+Y.slice(_.end);Y=Y.replace(/\n\s*\n\s*\n/g,`
45
45
 
46
- `).trim();let L=$Z($,X);return{code:Y,tests:$,mocks:X,testRunner:L}}function c6(Z,$){let X=0,Q=null,K=!1;for(let H=$;H<Z.length;H++){let Y=Z[H];if(K){K=!1;continue}if(Y==="\\"){K=!0;continue}if(!Q&&(Y==='"'||Y==="'"||Y==="`")){Q=Y;continue}if(Q===Y){Q=null;continue}if(Q)continue;if(Y==="{")X++;if(Y==="}"){if(X--,X===0)return H}}return-1}function O4(Z,$){return Z.slice(0,$).split(`
46
+ `).trim();let U=$Z($,X);return{code:Y,tests:$,mocks:X,testRunner:U}}function c6(Z,$){let X=0,Q=null,K=!1;for(let H=$;H<Z.length;H++){let Y=Z[H];if(K){K=!1;continue}if(Y==="\\"){K=!0;continue}if(!Q&&(Y==='"'||Y==="'"||Y==="`")){Q=Y;continue}if(Q===Y){Q=null;continue}if(Q)continue;if(Y==="{")X++;if(Y==="}"){if(X--,X===0)return H}}return-1}function O4(Z,$){return Z.slice(0,$).split(`
47
47
  `).length}function $Z(Z,$){if(Z.length===0)return"// No tests defined";let X=$.map((K)=>K.body).join(`
48
48
  `);return`(async () => {
49
49
  const __results = []
@@ -172,32 +172,32 @@ ${Y}${z}
172
172
  ${H}}`}return String(Z)}function KZ(Z){let $=Z.replace(/\/\*[\s\S]*?\*\//g,(X)=>{let Q=X.split(`
173
173
  `).length-1;return`
174
174
  `.repeat(Q)});return $=$.replace(/\/\/[^\n]*/g,""),$}function k0(Z){let $=Z.replace(/^import\s+.*?from\s+['"][^'"]+['"];?\s*$/gm,"");return $=$.replace(/^import\s+['"][^'"]+['"];?\s*$/gm,""),$=$.replace(/^export\s+default\s+/gm,""),$=$.replace(/^export\s+/gm,""),$=$.replace(/^(\s*)((?:const|let|var)\s+\w+\s*=\s*)?await\s+.+$/gm,"$1/* top-level await removed for test execution */"),$}function g0(Z){let $=Z.replace(/^const __tjs = globalThis\.__tjs\?\.createRuntime\?\.\(\) \?\? globalThis\.__tjs;\n?/m,"");return $=$.replace(/^const \{ (?:Is|IsNot|Is, IsNot) \} = __tjs \?\? \{\};\n?/m,""),$}function HZ(Z){if(Object.keys(Z).length===0)return"";let $=[];for(let[X,Q]of Object.entries(Z)){let K=k0(Q);K=g0(K),$.push(`// Resolved import: ${X}`),$.push(K)}return $.join(`
175
- `)}function YZ(Z){let $={},X=Z.trim();if(!X.startsWith("{")||!X.includes("="))try{return{pattern:Function(`return ${Z}`)(),defaults:$}}catch{return null}let Q="",K=0,H=0;while(H<X.length){let Y=X[H];if(Y==="{"||Y==="["||Y==="(")K++,Q+=Y,H++;else if(Y==="}"||Y==="]"||Y===")")K--,Q+=Y,H++;else if(Y==="'"||Y==='"'||Y==="`"){let z=Y;Q+=Y,H++;while(H<X.length&&X[H]!==z){if(X[H]==="\\")Q+=X[H++];Q+=X[H++]}if(H<X.length)Q+=X[H++]}else if(K===1&&Y==="="){let G=(Q.slice(Q.lastIndexOf("{")+1).split(",").pop()||"").match(/\s*(\w+)\s*$/);if(G){let J=H+1;while(J<X.length&&/\s/.test(X[J]))J++;let L="",_=0;while(J<X.length){let U=X[J];if(U==="{"||U==="["||U==="(")_++;else if(U==="}"||U==="]"||U===")"){if(_===0)break;_--}else if(U===","&&_===0)break;L+=U,J++}try{$[G[1]]=Function(`return ${L.trim()}`)()}catch{}Q+=":",H++;continue}Q+=Y,H++}else Q+=Y,H++}try{return{pattern:Function(`return ${Q}`)(),defaults:$}}catch{return null}}function a6(Z){let $=[],X=KZ(Z),Q=/(async\s+)?function\s+(\w+)\s*\(([^)]*)\)\s*(-[>?])\s*/g,K;while((K=Q.exec(X))!==null){let H=!!K[1],Y=K[2],z=K[3],W=K[4],G=X.slice(0,K.index).split(`
176
- `).length;if(W==="-!")continue;let J=X.slice(K.index+K[0].length),L=S4(J);if(!L)continue;let _=zZ(z);if(z.trim()&&_.length===0)continue;try{let U=YZ(L);if(!U)continue;let D=_.map((R)=>Function(`return ${R}`)());$.push({funcName:Y,args:D,expected:U.pattern,defaults:Object.keys(U.defaults).length>0?U.defaults:void 0,line:G,isAsync:H})}catch{}}return $}function r6(Z,$,X,Q,K={},H=new Map){let Y=[];if(Z.length===0&&X.length===0)return Y;let z=Q.match(/^import\s+.*?from\s+['"]([^'"]+)['"];?\s*$/gm)||[],W=z.length>0&&z.some((M)=>{let j=M.match(/from\s+['"]([^'"]+)['"]/);return j&&!(j[1]in K)}),G=k0(Q);G=g0(G);let J=HZ(K),L=$.map((M)=>M.body).join(`
177
- `),_=Z.map((M,j)=>{let I=H.size>0?$0(M.body,H):M.body;return`
178
- // Test ${j}: ${M.description}
175
+ `)}function YZ(Z){let $={},X=Z.trim();if(!X.startsWith("{")||!X.includes("="))try{return{pattern:Function(`return ${Z}`)(),defaults:$}}catch{return null}let Q="",K=0,H=0;while(H<X.length){let Y=X[H];if(Y==="{"||Y==="["||Y==="(")K++,Q+=Y,H++;else if(Y==="}"||Y==="]"||Y===")")K--,Q+=Y,H++;else if(Y==="'"||Y==='"'||Y==="`"){let z=Y;Q+=Y,H++;while(H<X.length&&X[H]!==z){if(X[H]==="\\")Q+=X[H++];Q+=X[H++]}if(H<X.length)Q+=X[H++]}else if(K===1&&Y==="="){let G=(Q.slice(Q.lastIndexOf("{")+1).split(",").pop()||"").match(/\s*(\w+)\s*$/);if(G){let J=H+1;while(J<X.length&&/\s/.test(X[J]))J++;let U="",_=0;while(J<X.length){let L=X[J];if(L==="{"||L==="["||L==="(")_++;else if(L==="}"||L==="]"||L===")"){if(_===0)break;_--}else if(L===","&&_===0)break;U+=L,J++}try{$[G[1]]=Function(`return ${U.trim()}`)()}catch{}Q+=":",H++;continue}Q+=Y,H++}else Q+=Y,H++}try{return{pattern:Function(`return ${Q}`)(),defaults:$}}catch{return null}}function a6(Z){let $=[],X=KZ(Z),Q=/(async\s+)?function\s+(\w+)\s*\(([^)]*)\)\s*(-[>?])\s*/g,K;while((K=Q.exec(X))!==null){let H=!!K[1],Y=K[2],z=K[3],W=K[4],G=X.slice(0,K.index).split(`
176
+ `).length;if(W==="-!")continue;let J=X.slice(K.index+K[0].length),U=S4(J);if(!U)continue;let _=zZ(z);if(z.trim()&&_.length===0)continue;try{let L=YZ(U);if(!L)continue;let D=_.map((I)=>Function(`return ${I}`)());$.push({funcName:Y,args:D,expected:L.pattern,defaults:Object.keys(L.defaults).length>0?L.defaults:void 0,line:G,isAsync:H})}catch{}}return $}function r6(Z,$,X,Q,K={},H=new Map){let Y=[];if(Z.length===0&&X.length===0)return Y;let z=Q.match(/^import\s+.*?from\s+['"]([^'"]+)['"];?\s*$/gm)||[],W=z.length>0&&z.some((w)=>{let F=w.match(/from\s+['"]([^'"]+)['"]/);return F&&!(F[1]in K)}),G=k0(Q);G=g0(G);let J=HZ(K),U=$.map((w)=>w.body).join(`
177
+ `),_=Z.map((w,F)=>{let B=H.size>0?$0(w.body,H):w.body;return`
178
+ // Test ${F}: ${w.description}
179
179
  try {
180
- ${I}
181
- __testResults.push({ idx: ${j}, passed: true });
180
+ ${B}
181
+ __testResults.push({ idx: ${F}, passed: true });
182
182
  } catch (e) {
183
- __testResults.push({ idx: ${j}, passed: false, error: e.message || String(e) });
183
+ __testResults.push({ idx: ${F}, passed: false, error: e.message || String(e) });
184
184
  }
185
185
  `}).join(`
186
- `),U=X.filter((M)=>!M.isAsync),D=X.filter((M)=>M.isAsync),R=U.map((M,j)=>`
187
- // Signature test ${j}: ${M.funcName}
186
+ `),L=X.filter((w)=>!w.isAsync),D=X.filter((w)=>w.isAsync),I=L.map((w,F)=>`
187
+ // Signature test ${F}: ${w.funcName}
188
188
  try {
189
- let __actual = ${M.funcName}(${M.args.map((I)=>JSON.stringify(I)).join(", ")});
190
- const __expected = ${JSON.stringify(M.expected)};${M.defaults?`
191
- const __defaults = ${JSON.stringify(M.defaults)};
189
+ let __actual = ${w.funcName}(${w.args.map((B)=>JSON.stringify(B)).join(", ")});
190
+ const __expected = ${JSON.stringify(w.expected)};${w.defaults?`
191
+ const __defaults = ${JSON.stringify(w.defaults)};
192
192
  if (typeof __actual === 'object' && __actual !== null) __actual = Object.assign({}, __defaults, __actual);`:""}
193
- const __typeResult = __typeMatches(__actual, __expected, '${M.funcName}');
193
+ const __typeResult = __typeMatches(__actual, __expected, '${w.funcName}');
194
194
  if (__typeResult.matches) {
195
- __sigTestResults.push({ idx: ${j}, passed: true });
195
+ __sigTestResults.push({ idx: ${F}, passed: true });
196
196
  } else {
197
- __sigTestResults.push({ idx: ${j}, passed: false, error: __typeResult.error || 'Type mismatch: got ' + __format(__actual) });
197
+ __sigTestResults.push({ idx: ${F}, passed: false, error: __typeResult.error || 'Type mismatch: got ' + __format(__actual) });
198
198
  }
199
199
  } catch (e) {
200
- __sigTestResults.push({ idx: ${j}, passed: false, error: e.message || String(e) });
200
+ __sigTestResults.push({ idx: ${F}, passed: false, error: e.message || String(e) });
201
201
  }
202
202
  `).join(`
203
203
  `),V=`
@@ -275,20 +275,20 @@ ${H}}`}return String(Z)}function KZ(Z){let $=Z.replace(/\/\*[\s\S]*?\*\//g,(X)=>
275
275
 
276
276
  // Execute the module code ONCE
277
277
  ${G}
278
- ${L}
278
+ ${U}
279
279
 
280
280
  // Run explicit test blocks
281
281
  ${_}
282
282
 
283
283
  // Run signature tests
284
- ${R}
284
+ ${I}
285
285
 
286
286
  } finally {
287
287
  ${"globalThis.__tjs = __saved_tjs;"}
288
288
  }
289
289
  return { testResults: __testResults, sigTestResults: __sigTestResults };
290
- `;try{let M=Function("__deepEqual","__format","__typeMatches",V),{testResults:j,sigTestResults:I}=M(E4,Y0,T4);for(let P of j){let C=Z[P.idx],O=W&&!P.passed&&P.error&&/is not defined$/.test(P.error);Y.push({description:C.description,passed:O?!0:P.passed,error:O?void 0:P.error,line:C.line})}for(let P of I){let C=U[P.idx],O=W&&!P.passed&&P.error&&/is not defined$/.test(P.error);Y.push({description:`${C.funcName} signature example`,passed:O?!0:P.passed,error:O?void 0:P.error,isSignatureTest:!0,line:C.line})}}catch(M){let j=W&&M instanceof ReferenceError;for(let I of Z)Y.push({description:I.description,passed:j,error:j?void 0:`Module execution failed: ${M.message}`,line:I.line});for(let I of U)Y.push({description:`${I.funcName} signature example`,passed:j,error:j?void 0:`Module execution failed: ${M.message}`,isSignatureTest:!0,line:I.line})}for(let M of D)Y.push({description:`${M.funcName} signature example`,passed:!0,isSignatureTest:!0,line:M.line});return Y}function S4(Z){let $="",X=0,Q=!1;for(let H=0;H<Z.length;H++){let Y=Z[H];if(Y==="{"||Y==="["||Y==="("){if(Y==="{"&&X===0&&Q)break;X++,$+=Y,Q=!0}else if(Y==="}"||Y==="]"||Y===")")X--,$+=Y;else if(!/\s/.test(Y))$+=Y,Q=!0;else $+=Y}return $.trim()||null}function zZ(Z){if(!Z.trim())return[];let $=[],X=WZ(Z);for(let Q of X){let K=Q.match(/(?:\(\s*[?!]\s*)?(\w+)\s*[:=]\s*(.+?)(?:\))?$/);if(K)$.push(K[2].trim());else return[]}return $}function WZ(Z){let $=[],X="",Q=0;for(let K of Z){if(K==="("||K==="["||K==="{")Q++;else if(K===")"||K==="]"||K==="}")Q--;else if(K===","&&Q===0){$.push(X.trim()),X="";continue}X+=K}if(X.trim())$.push(X.trim());return $}import*as e6 from"acorn";var q1={i32:127,i64:126,f32:125,f64:124,v128:123,funcref:112,externref:111,void:64},z0={custom:0,type:1,import:2,function:3,table:4,memory:5,global:6,export:7,start:8,element:9,code:10,data:11},q={unreachable:0,nop:1,block:2,loop:3,if:4,else:5,end:11,br:12,br_if:13,br_table:14,return:15,call:16,call_indirect:17,drop:26,select:27,local_get:32,local_set:33,local_tee:34,global_get:35,global_set:36,i32_load:40,i64_load:41,f32_load:42,f64_load:43,i32_load8_s:44,i32_load8_u:45,i32_load16_s:46,i32_load16_u:47,i32_store:54,i64_store:55,f32_store:56,f64_store:57,i32_store8:58,i32_store16:59,memory_size:63,memory_grow:64,i32_const:65,i64_const:66,f32_const:67,f64_const:68,i32_eqz:69,i32_eq:70,i32_ne:71,i32_lt_s:72,i32_lt_u:73,i32_gt_s:74,i32_gt_u:75,i32_le_s:76,i32_le_u:77,i32_ge_s:78,i32_ge_u:79,i64_eqz:80,i64_eq:81,i64_ne:82,i64_lt_s:83,i64_lt_u:84,i64_gt_s:85,i64_gt_u:86,i64_le_s:87,i64_le_u:88,i64_ge_s:89,i64_ge_u:90,f32_eq:91,f32_ne:92,f32_lt:93,f32_gt:94,f32_le:95,f32_ge:96,f64_eq:97,f64_ne:98,f64_lt:99,f64_gt:100,f64_le:101,f64_ge:102,i32_clz:103,i32_ctz:104,i32_popcnt:105,i32_add:106,i32_sub:107,i32_mul:108,i32_div_s:109,i32_div_u:110,i32_rem_s:111,i32_rem_u:112,i32_and:113,i32_or:114,i32_xor:115,i32_shl:116,i32_shr_s:117,i32_shr_u:118,i32_rotl:119,i32_rotr:120,i64_add:124,i64_sub:125,i64_mul:126,i64_div_s:127,f32_abs:139,f32_neg:140,f32_ceil:141,f32_floor:142,f32_trunc:143,f32_nearest:144,f32_sqrt:145,f32_add:146,f32_sub:147,f32_mul:148,f32_div:149,f32_min:150,f32_max:151,f32_copysign:152,f64_abs:153,f64_neg:154,f64_ceil:155,f64_floor:156,f64_trunc:157,f64_nearest:158,f64_sqrt:159,f64_add:160,f64_sub:161,f64_mul:162,f64_div:163,f64_min:164,f64_max:165,f64_copysign:166,i32_wrap_i64:167,i32_trunc_f32_s:168,i32_trunc_f32_u:169,i32_trunc_f64_s:170,i32_trunc_f64_u:171,i64_extend_i32_s:172,i64_extend_i32_u:173,f32_convert_i32_s:178,f32_convert_i32_u:179,f32_convert_i64_s:180,f32_demote_f64:182,f64_convert_i32_s:183,f64_convert_i32_u:184,f64_convert_i64_s:185,f64_promote_f32:187,i32_reinterpret_f32:188,f32_reinterpret_i32:190,f64_reinterpret_i64:191,i32_extend8_s:192,i32_extend16_s:193},GZ=Object.fromEntries(Object.entries(q).map(([Z,$])=>[$,Z.replace(/_/g,".")])),G0=253,t={v128_load:0,v128_store:11,v128_const:12,f32x4_splat:19,f32x4_extract_lane:31,f32x4_replace_lane:32,f32x4_neg:225,f32x4_sqrt:227,f32x4_add:228,f32x4_sub:229,f32x4_mul:230,f32x4_div:231},JZ=Object.fromEntries(Object.entries(t).map(([Z,$])=>[$,Z.replace(/_/g,".")]));function k4(Z){return[G0,...f(Z)]}function t6(Z,$,X){return[G0,...f(Z),...f($),...f(X)]}function f(Z){let $=[];do{let X=Z&127;if(Z>>>=7,Z!==0)X|=128;$.push(X)}while(Z!==0);return $}function J0(Z){let $=[],X=!0;while(X){let Q=Z&127;if(Z>>=7,Z===0&&(Q&64)===0||Z===-1&&(Q&64)!==0)X=!1;else Q|=128;$.push(Q)}return $}function b4(Z){let $=new ArrayBuffer(4);return new Float32Array($)[0]=Z,[...new Uint8Array($)]}function G1(Z){let $=new ArrayBuffer(8);return new Float64Array($)[0]=Z,[...new Uint8Array($)]}function g4(Z){let $=new TextEncoder().encode(Z);return[...f($.length),...$]}function W0(Z,$){return[Z,...f($.length),...$]}function V1(Z,$){let X=0,Q=0,K=$;while(K<Z.length){let H=Z[K];if(X|=(H&127)<<Q,K++,(H&128)===0)break;Q+=7}return[X,K-$]}function _Z(Z,$){let X=new ArrayBuffer(8),Q=new Uint8Array(X);for(let K=0;K<8;K++)Q[K]=Z[$+K];return new Float64Array(X)[0]}function LZ(Z,$,X){let Q=[],K=1,H=()=>" ".repeat(K),Y=$.map((G,J)=>`(param $${G.name} ${G.type})`).join(" "),z=X.map((G,J)=>`(local $L${$.length+J} ${G})`).join(" ");if(Q.push(`(func (export "compute") ${Y} (result f64)`),z)Q.push(` ${z}`);let W=0;while(W<Z.length){let G=Z[W],J=GZ[G]||`unknown(0x${G.toString(16)})`;if(W++,G===q.local_get||G===q.local_set||G===q.local_tee){let[L,_]=V1(Z,W);W+=_;let U=L<$.length?`$${$[L].name}`:`$L${L}`;Q.push(`${H()}${J} ${U}`)}else if(G===q.br||G===q.br_if){let[L,_]=V1(Z,W);W+=_,Q.push(`${H()}${J} ${L}`)}else if(G===q.i32_const){let[L,_]=V1(Z,W);W+=_,Q.push(`${H()}i32.const ${L}`)}else if(G===q.f32_const){let L=new ArrayBuffer(4),_=new Uint8Array(L);for(let D=0;D<4;D++)_[D]=Z[W+D];let U=new Float32Array(L)[0];W+=4,Q.push(`${H()}f32.const ${U}`)}else if(G===q.f64_const){let L=_Z(Z,W);W+=8,Q.push(`${H()}f64.const ${L}`)}else if(G===q.block||G===q.loop){let L=Z[W];W++,Q.push(`${H()}${J}${L===q1.void?"":` (result ${L===q1.f64?"f64":"i32"})`}`),K++}else if(G===q.if){let L=Z[W];W++,Q.push(`${H()}if${L===q1.void?"":` (result ${L===q1.f64?"f64":"i32"})`}`),K++}else if(G===q.else)K--,Q.push(`${H()}else`),K++;else if(G===q.end)K=Math.max(1,K-1),Q.push(`${H()}end`);else if(G===q.f64_load||G===q.f64_store||G===q.f32_load||G===q.f32_store||G===q.i32_load||G===q.i32_store){let[L,_]=V1(Z,W);W+=_;let[U,D]=V1(Z,W);W+=D,Q.push(`${H()}${J}${U?` offset=${U}`:""}`)}else if(G===G0){let[L,_]=V1(Z,W);W+=_;let U=JZ[L]||`simd.unknown(0x${L.toString(16)})`;if(L===t.v128_load||L===t.v128_store){let[D,R]=V1(Z,W);W+=R;let[w,B]=V1(Z,W);W+=B,Q.push(`${H()}${U}${w?` offset=${w}`:""}`)}else if(L===t.v128_const){let D=Z.slice(W,W+16);W+=16,Q.push(`${H()}v128.const ${D.map((R)=>"0x"+R.toString(16).padStart(2,"0")).join(" ")}`)}else if(L===t.f32x4_extract_lane||L===t.f32x4_replace_lane){let D=Z[W];W++,Q.push(`${H()}${U} ${D}`)}else Q.push(`${H()}${U}`)}else Q.push(`${H()}${J}`)}return Q.push(")"),Q.join(`
291
- `)}var v0={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:q.i32_load8_s,storeOp:q.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:q.i32_load8_u,storeOp:q.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:q.i32_load8_u,storeOp:q.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:q.i32_load16_s,storeOp:q.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:q.i32_load16_u,storeOp:q.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:q.i32_load,storeOp:q.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:q.i32_load,storeOp:q.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:q.f32_load,storeOp:q.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:q.f64_load,storeOp:q.f64_store}};function UZ(Z){let $={params:Z,locals:new Map,nextLocalIndex:Z.length,localTypes:[],warnings:[],errors:[],loopDepth:0,needsMathImports:new Set,needsMemory:!1,hasReturn:!1,wat:[],watIndent:1};return Z.forEach((X,Q)=>{$.locals.set(X.name,{index:Q,type:X.type})}),$}function b0(Z,$,X){if(Z.locals.has($))return Z.errors.push(`Duplicate local declaration: ${$}`),Z.locals.get($).index;let Q=Z.nextLocalIndex++;return Z.locals.set($,{index:Q,type:X}),Z.localTypes.push(X),Q}function g1(Z,$){return Z.locals.get($)}function d1(Z,$){switch(Z.type){case"ExpressionStatement":{let X=Z.expression;return[...h(X,$),q.drop]}case"ReturnStatement":{let X=Z;if($.hasReturn=!0,!X.argument)return[q.return];let Q=h(X.argument,$),K=i(X.argument,$);if(K==="i32")Q.push(q.f64_convert_i32_s);else if(K==="f32")Q.push(q.f64_promote_f32);return Q.push(q.return),Q}case"VariableDeclaration":{let X=Z,Q=[];for(let K of X.declarations){if(K.id.type!=="Identifier"){$.errors.push("Destructuring not supported in WASM blocks");continue}let H=K.id.name,Y="f64";if(K.init)Y=i(K.init,$);let z=b0($,H,Y);if(K.init)Q.push(...h(K.init,$)),Q.push(q.local_set,...f(z))}return Q}case"ForStatement":return qZ(Z,$);case"IfStatement":return DZ(Z,$);case"BlockStatement":{let X=Z,Q=[];for(let K of X.body)Q.push(...d1(K,$));return Q}default:return $.errors.push(`Unsupported statement type: ${Z.type}`),[]}}function qZ(Z,$){let X=[];if(Z.init)if(Z.init.type==="VariableDeclaration")X.push(...d1(Z.init,$));else X.push(...h(Z.init,$));if(X.push(q.block,q1.void),X.push(q.loop,q1.void),Z.test)X.push(...h(Z.test,$)),X.push(q.i32_eqz),X.push(q.br_if,1);if($.loopDepth++,Z.body)X.push(...d1(Z.body,$));if($.loopDepth--,Z.update)X.push(...h(Z.update,$)),X.push(q.drop);return X.push(q.br,0),X.push(q.end),X.push(q.end),X}function DZ(Z,$){let X=[];if(X.push(...h(Z.test,$)),X.push(q.if,q1.void),X.push(...d1(Z.consequent,$)),Z.alternate)X.push(q.else),X.push(...d1(Z.alternate,$));return X.push(q.end),X}function i(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){if(X.raw&&(X.raw.includes(".")||X.raw.includes("e")))return"f64";if(Number.isInteger(X.value)&&X.value>=-2147483648&&X.value<=2147483647)return"i32";return"f64"}return"f64"}case"Identifier":return g1($,Z.name)?.type??"f64";case"BinaryExpression":case"AssignmentExpression":{let X=Z;if(["<",">","<=",">=","==","!=","===","!=="].includes(X.operator))return"i32";if(["|","&","^","<<",">>",">>>"].includes(X.operator))return"i32";let Q=i(X.left,$),K=i(X.right,$);if(Q==="v128"||K==="v128")return"v128";if(Q==="f64"||K==="f64")return"f64";if(Q==="f32"||K==="f32")return"f32";return"i32"}case"UnaryExpression":{let X=Z;if(X.operator==="!")return"i32";return i(X.argument,$)}case"MemberExpression":{let X=Z;if(X.object.type==="Identifier"){if(g1($,X.object.name)){let K=$.params.find((H)=>H.name===X.object.name);if(K?.arrayType){let H=v0[K.arrayType];if(H)return H.elementType}}}return"f64"}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee;if(Q.object.type==="Identifier"&&Q.object.name==="Math")return"f64"}if(X.callee.type==="Identifier"){let Q=X.callee.name;if(Q==="f32x4_extract_lane")return"f32";if(Q.startsWith("f32x4_")||Q==="v128_load")return"v128"}return"f64"}default:return"f64"}}function h(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){let Q=i(Z,$);if(Q==="i32")return[q.i32_const,...J0(X.value|0)];else if(Q==="f32")return[q.f32_const,...b4(X.value)];else return[q.f64_const,...G1(X.value)]}return $.errors.push(`Unsupported literal type: ${typeof X.value}`),[q.f64_const,...G1(0)]}case"Identifier":{let X=Z.name,Q=g1($,X);if(Q)return[q.local_get,...f(Q.index)];return $.errors.push(`Unknown identifier: ${X}`),[q.f64_const,...G1(0)]}case"BinaryExpression":return AZ(Z,$);case"UnaryExpression":return IZ(Z,$);case"AssignmentExpression":return RZ(Z,$);case"UpdateExpression":return BZ(Z,$);case"MemberExpression":return MZ(Z,$);case"CallExpression":return FZ(Z,$);case"SequenceExpression":{let X=Z,Q=[];for(let K=0;K<X.expressions.length;K++)if(Q.push(...h(X.expressions[K],$)),K<X.expressions.length-1)Q.push(q.drop);return Q}default:return $.errors.push(`Unsupported expression type: ${Z.type}`),[q.f64_const,...G1(0)]}}function AZ(Z,$){let X=h(Z.left,$),Q=h(Z.right,$),K=i(Z,$),H=i(Z.left,$),Y=i(Z.right,$),z=["<",">","<=",">=","==","===","!=","!=="].includes(Z.operator),W;if(H==="f64"||Y==="f64")W="f64";else if(H==="f32"||Y==="f32")W="f32";else W="i32";if(!z&&K==="f64")W="f64";let G=X,J=Q;if(W==="f64"){if(H==="i32")G=[...X,q.f64_convert_i32_s];else if(H==="f32")G=[...X,q.f64_promote_f32];if(Y==="i32")J=[...Q,q.f64_convert_i32_s];else if(Y==="f32")J=[...Q,q.f64_promote_f32]}else if(W==="f32"){if(H==="i32")G=[...X,q.f32_convert_i32_s];if(Y==="i32")J=[...Q,q.f32_convert_i32_s]}let _={"+":{i32:q.i32_add,f32:q.f32_add,f64:q.f64_add},"-":{i32:q.i32_sub,f32:q.f32_sub,f64:q.f64_sub},"*":{i32:q.i32_mul,f32:q.f32_mul,f64:q.f64_mul},"/":{i32:q.i32_div_s,f32:q.f32_div,f64:q.f64_div},"%":{i32:q.i32_rem_s},"<":{i32:q.i32_lt_s,f32:q.f32_lt,f64:q.f64_lt},">":{i32:q.i32_gt_s,f32:q.f32_gt,f64:q.f64_gt},"<=":{i32:q.i32_le_s,f32:q.f32_le,f64:q.f64_le},">=":{i32:q.i32_ge_s,f32:q.f32_ge,f64:q.f64_ge},"==":{i32:q.i32_eq,f32:q.f32_eq,f64:q.f64_eq},"===":{i32:q.i32_eq,f32:q.f32_eq,f64:q.f64_eq},"!=":{i32:q.i32_ne,f32:q.f32_ne,f64:q.f64_ne},"!==":{i32:q.i32_ne,f32:q.f32_ne,f64:q.f64_ne},"|":{i32:q.i32_or},"&":{i32:q.i32_and},"^":{i32:q.i32_xor},"<<":{i32:q.i32_shl},">>":{i32:q.i32_shr_s},">>>":{i32:q.i32_shr_u}}[Z.operator];if(!_)return $.errors.push(`Unsupported operator: ${Z.operator}`),[q.f64_const,...G1(0)];let U=_[W]??_.f64??_.i32;if(U===void 0)return $.errors.push(`Operator ${Z.operator} not supported for type ${W}`),[q.f64_const,...G1(0)];return[...G,...J,U]}function IZ(Z,$){let X=h(Z.argument,$),Q=i(Z.argument,$);switch(Z.operator){case"-":if(Q==="i32")return[q.i32_const,0,...X,q.i32_sub];else if(Q==="f32")return[...X,q.f32_neg];else return[...X,q.f64_neg];case"!":return[...X,q.i32_eqz];case"~":return[...X,q.i32_const,...J0(-1),q.i32_xor];default:return $.errors.push(`Unsupported unary operator: ${Z.operator}`),X}}function RZ(Z,$){if(Z.left.type==="MemberExpression")return wZ(Z.left,Z.right,Z.operator,$);if(Z.left.type!=="Identifier")return $.errors.push("Assignment target must be identifier or array element"),[];let X=Z.left.name,Q=g1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let K=[];if(Z.operator==="="){K.push(...h(Z.right,$));let H=i(Z.right,$);if(Q.type==="f64"&&H==="i32")K.push(q.f64_convert_i32_s);else if(Q.type==="f64"&&H==="f32")K.push(q.f64_promote_f32);else if(Q.type==="i32"&&H==="f64")K.push(q.i32_trunc_f64_s);else if(Q.type==="i32"&&H==="f32")K.push(q.i32_trunc_f32_s);else if(Q.type==="f32"&&H==="i32")K.push(q.f32_convert_i32_s);else if(Q.type==="f32"&&H==="f64")K.push(q.f32_demote_f64)}else{let H=i(Z.right,$),Y=Q.type;if(H==="f64"||Q.type==="f64")Y="f64";else if(H==="f32"||Q.type==="f32")Y="f32";if(K.push(q.local_get,...f(Q.index)),Y==="f64"&&Q.type==="i32")K.push(q.f64_convert_i32_s);else if(Y==="f64"&&Q.type==="f32")K.push(q.f64_promote_f32);else if(Y==="f32"&&Q.type==="i32")K.push(q.f32_convert_i32_s);if(K.push(...h(Z.right,$)),Y==="f64"&&H==="i32")K.push(q.f64_convert_i32_s);else if(Y==="f64"&&H==="f32")K.push(q.f64_promote_f32);else if(Y==="f32"&&H==="i32")K.push(q.f32_convert_i32_s);let z=Z.operator.slice(0,-1),G={"+":{i32:q.i32_add,f32:q.f32_add,f64:q.f64_add},"-":{i32:q.i32_sub,f32:q.f32_sub,f64:q.f64_sub},"*":{i32:q.i32_mul,f32:q.f32_mul,f64:q.f64_mul},"/":{i32:q.i32_div_s,f32:q.f32_div,f64:q.f64_div}}[z]?.[Y];if(!G)return $.errors.push(`Unsupported compound assignment: ${Z.operator}`),[];if(K.push(G),Q.type==="i32"&&Y==="f64")K.push(q.i32_trunc_f64_s);else if(Q.type==="i32"&&Y==="f32")K.push(q.i32_trunc_f32_s);else if(Q.type==="f32"&&Y==="f64")K.push(q.f32_demote_f64)}return K.push(q.local_tee,...f(Q.index)),K}function BZ(Z,$){if(Z.argument.type!=="Identifier")return $.errors.push("Update expression argument must be identifier"),[];let X=Z.argument.name,Q=g1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let K=[],H=Q.type==="i32";if(Z.prefix){if(K.push(q.local_get,...f(Q.index)),H)K.push(q.i32_const,1),K.push(Z.operator==="++"?q.i32_add:q.i32_sub);else K.push(q.f64_const,...G1(1)),K.push(Z.operator==="++"?q.f64_add:q.f64_sub);K.push(q.local_tee,...f(Q.index))}else{if(K.push(q.local_get,...f(Q.index)),K.push(q.local_get,...f(Q.index)),H)K.push(q.i32_const,1),K.push(Z.operator==="++"?q.i32_add:q.i32_sub);else K.push(q.f64_const,...G1(1)),K.push(Z.operator==="++"?q.f64_add:q.f64_sub);K.push(q.local_set,...f(Q.index))}return K}function MZ(Z,$){if(Z.object.type!=="Identifier")return $.errors.push("Array access requires identifier"),[];let X=Z.object.name,Q=$.params.find((G)=>G.name===X);if(!Q?.isArray||!Q.arrayType)return $.errors.push(`${X} is not a typed array parameter`),[];let K=v0[Q.arrayType];if(!K)return $.errors.push(`Unknown array type: ${Q.arrayType}`),[];$.needsMemory=!0;let H=[],Y=g1($,X);if(!Y)return $.errors.push(`Unknown array: ${X}`),[];if(H.push(q.local_get,...f(Y.index)),!Z.computed||!Z.property)return $.errors.push("Array access requires computed index"),[];let z=h(Z.property,$),W=i(Z.property,$);if(H.push(...z),W==="f64")H.push(q.i32_trunc_f64_s);if(K.bytesPerElement>1)H.push(q.i32_const,...J0(K.bytesPerElement)),H.push(q.i32_mul);return H.push(q.i32_add),H.push(K.loadOp,0,0),H}function wZ(Z,$,X,Q){if(Z.object.type!=="Identifier")return Q.errors.push("Array store requires identifier"),[];let K=Z.object.name,H=Q.params.find((D)=>D.name===K);if(!H?.isArray||!H.arrayType)return Q.errors.push(`${K} is not a typed array parameter`),[];let Y=v0[H.arrayType];if(!Y)return Q.errors.push(`Unknown array type: ${H.arrayType}`),[];Q.needsMemory=!0;let z=[],W=g1(Q,K);if(!W)return[];if(!Z.computed||!Z.property)return Q.errors.push("Array store requires computed index"),[];let G=h(Z.property,Q),J=i(Z.property,Q),L=()=>{let D=[];if(D.push(q.local_get,...f(W.index)),D.push(...G),J==="f64")D.push(q.i32_trunc_f64_s);if(Y.bytesPerElement>1)D.push(q.i32_const,...J0(Y.bytesPerElement)),D.push(q.i32_mul);return D.push(q.i32_add),D};if(X==="=")z.push(...h($,Q));else{let D=b0(Q,`__addr_${Q.nextLocalIndex}`,"i32");z.push(...L()),z.push(q.local_tee,...f(D)),z.push(Y.loadOp,0,0),z.push(...h($,Q));let R=i($,Q);if(Y.elementType==="f32"&&R==="f64")z.push(q.f32_demote_f64);else if(Y.elementType==="f64"&&R==="f32")z.push(q.f64_promote_f32);else if(Y.elementType==="f32"&&R==="i32")z.push(q.f32_convert_i32_s);else if(Y.elementType==="f64"&&R==="i32")z.push(q.f64_convert_i32_s);else if(Y.elementType==="i32"&&R==="f64")z.push(q.i32_trunc_f64_s);else if(Y.elementType==="i32"&&R==="f32")z.push(q.i32_trunc_f32_s);let w=X.slice(0,-1),B={"+":Y.elementType==="i32"?q.i32_add:Y.elementType==="f32"?q.f32_add:q.f64_add,"-":Y.elementType==="i32"?q.i32_sub:Y.elementType==="f32"?q.f32_sub:q.f64_sub,"*":Y.elementType==="i32"?q.i32_mul:Y.elementType==="f32"?q.f32_mul:q.f64_mul};z.push(B[w]??q.f64_add);let V=b0(Q,`__val_${Q.nextLocalIndex}`,Y.elementType);return z.push(q.local_set,...f(V)),z.push(q.local_get,...f(D)),z.push(q.local_get,...f(V)),z.push(Y.storeOp,0,0),z.push(q.local_get,...f(V)),z}let _=i($,Q);if(Y.elementType==="f32"&&_==="f64")z.push(q.f32_demote_f64);else if(Y.elementType==="f64"&&_==="f32")z.push(q.f64_promote_f32);else if(Y.elementType==="i32"&&_==="f64")z.push(q.i32_trunc_f64_s);let U=b0(Q,`__tmp_${Q.nextLocalIndex}`,Y.elementType);if(z.push(q.local_set,...f(U)),z.push(q.local_get,...f(W.index)),z.push(...G),J==="f64")z.push(q.i32_trunc_f64_s);if(Y.bytesPerElement>1)z.push(q.i32_const,...J0(Y.bytesPerElement)),z.push(q.i32_mul);return z.push(q.i32_add),z.push(q.local_get,...f(U)),z.push(Y.storeOp,0,0),z.push(q.local_get,...f(U)),z}function FZ(Z,$){if(Z.callee.type==="MemberExpression"){let X=Z.callee;if(X.object.type==="Identifier"&&X.object.name==="Math"&&X.property.type==="Identifier"){let Q=X.property.name;return PZ(Q,Z.arguments,$)}}if(Z.callee.type==="Identifier"){let X=Z.callee.name;if(X.startsWith("f32x4_")||X.startsWith("v128_"))return jZ(X,Z.arguments,$)}return $.errors.push(`Unsupported function call: ${Z.callee.type}`),[q.f64_const,...G1(0)]}function jZ(Z,$,X){X.needsMemory=!0;let Q=[];switch(Z){case"v128_load":case"f32x4_load":{if(Q.push(...h($[0],X)),i($[0],X)==="f64")Q.push(q.i32_trunc_f64_s);Q.push(...h($[1],X));let H=i($[1],X);if(H==="f64")Q.push(q.i32_trunc_f64_s);else if(H==="f32")Q.push(q.i32_trunc_f32_s);return Q.push(q.i32_add),Q.push(...t6(t.v128_load,2,0)),Q}case"v128_store":case"f32x4_store":{if(Q.push(...h($[0],X)),i($[0],X)==="f64")Q.push(q.i32_trunc_f64_s);Q.push(...h($[1],X));let H=i($[1],X);if(H==="f64")Q.push(q.i32_trunc_f64_s);else if(H==="f32")Q.push(q.i32_trunc_f32_s);return Q.push(q.i32_add),Q.push(...h($[2],X)),Q.push(...t6(t.v128_store,2,0)),Q.push(q.i32_const,0),Q}case"f32x4_splat":{Q.push(...h($[0],X));let K=i($[0],X);if(K==="i32")Q.push(q.f32_convert_i32_s);else if(K==="f64")Q.push(q.f32_demote_f64);return Q.push(...k4(t.f32x4_splat)),Q}case"f32x4_extract_lane":{Q.push(...h($[0],X));let K=$[1].value;if(!Number.isInteger(K)||K<0||K>3)return X.errors.push(`f32x4_extract_lane: lane must be 0-3, got ${K}`),[q.f32_const,...b4(0)];return Q.push(G0,...f(t.f32x4_extract_lane),K),Q}case"f32x4_replace_lane":{Q.push(...h($[0],X));let K=$[1].value;if(!Number.isInteger(K)||K<0||K>3)return X.errors.push(`f32x4_replace_lane: lane must be 0-3, got ${K}`),[q.f32_const,...b4(0)];Q.push(...h($[2],X));let H=i($[2],X);if(H==="i32")Q.push(q.f32_convert_i32_s);else if(H==="f64")Q.push(q.f32_demote_f64);return Q.push(G0,...f(t.f32x4_replace_lane),K),Q}case"f32x4_add":case"f32x4_sub":case"f32x4_mul":case"f32x4_div":{Q.push(...h($[0],X)),Q.push(...h($[1],X));let K={f32x4_add:t.f32x4_add,f32x4_sub:t.f32x4_sub,f32x4_mul:t.f32x4_mul,f32x4_div:t.f32x4_div};return Q.push(...k4(K[Z])),Q}case"f32x4_neg":case"f32x4_sqrt":{Q.push(...h($[0],X));let K={f32x4_neg:t.f32x4_neg,f32x4_sqrt:t.f32x4_sqrt};return Q.push(...k4(K[Z])),Q}default:return X.errors.push(`Unknown SIMD intrinsic: ${Z}`),[q.f64_const,...G1(0)]}}function PZ(Z,$,X){let Q=[];for(let z of $){Q.push(...h(z,X));let W=i(z,X);if(W==="i32")Q.push(q.f64_convert_i32_s);else if(W==="f32")Q.push(q.f64_promote_f32)}let H={abs:q.f64_abs,ceil:q.f64_ceil,floor:q.f64_floor,trunc:q.f64_trunc,sqrt:q.f64_sqrt,min:q.f64_min,max:q.f64_max}[Z];if(H!==void 0)return Q.push(H),Q;if(["sin","cos","tan","asin","acos","atan","atan2","exp","log","pow"].includes(Z))return X.needsMathImports.add(Z),X.errors.push(`Math.${Z} requires JS import (not yet implemented)`),[q.f64_const,...G1(0)];return X.errors.push(`Unknown Math method: ${Z}`),[q.f64_const,...G1(0)]}function Z7(Z){let $=Z.split(":").map((H)=>H.trim()),X=$[0];if($.length===1)return{name:X,type:"f64"};let Q=$[1];if(v0[Q])return{name:X,type:"i32",isArray:!0,arrayType:Q};return{name:X,type:{i32:"i32",i64:"i64",f32:"f32",f64:"f64",number:"f64",int:"i32"}[Q]??"f64"}}function VZ(Z,$,X,Q,K){let H=[0,97,115,109,1,0,0,0],Y=Z.map((V)=>q1[V.type]),z=K?[1,q1.f64]:[0],W=W0(z0.type,[1,96,...f(Z.length),...Y,...z]),G=[],J=[];if(Q)J=W0(z0.import,[1,...g4("env"),...g4("memory"),2,0,1]);let L=W0(z0.function,[1,0]),_=W0(z0.export,[1,...g4("compute"),0,0]),U=[];if(X.length>0){let V=X[0],M=1;for(let j=1;j<X.length;j++)if(X[j]===V)M++;else U.push([...f(M),q1[V]]),V=X[j],M=1;U.push([...f(M),q1[V]])}let R=[...[...f(U.length),...U.flat()],...$,q.end],w=W0(z0.code,[1,...f(R.length),...R]),B=[...H,...W];if(J.length>0)B.push(...J);return B.push(...L,..._,...w),B}function f0(Z){try{let $=Z.captures.map(Z7),X;try{let G=`function __wasm__(${$.map((J)=>J.name).join(", ")}) { ${Z.body} }`;X=e6.parse(G,{ecmaVersion:2022})}catch(G){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${G.message}`}}let K=X.body[0].body.body,H=UZ($),Y=[];for(let G of K)Y.push(...d1(G,H));if(H.errors.length>0)return{bytes:new Uint8Array,warnings:H.warnings,success:!1,error:H.errors.join("; ")};let z=VZ($,Y,H.localTypes,H.needsMemory,H.hasReturn),W=LZ(Y,$,H.localTypes);return{bytes:new Uint8Array(z),warnings:H.warnings,success:!0,needsMemory:H.needsMemory,wat:W}}catch($){return{bytes:new Uint8Array,warnings:[],success:!1,error:$.message}}}async function $7(Z,$){let X={};if($)X.env={memory:$};let Q=await WebAssembly.compile(Z);return WebAssembly.instantiate(Q,X)}async function CZ(Z){let $=f0(Z);if(!$.success)return{fn:()=>0,success:!1,error:$.error};try{let X;if($.needsMemory)X=new WebAssembly.Memory({initial:256});let K=(await $7($.bytes,X)).exports.compute,H=Z.captures.map(Z7);if(!H.some((W)=>W.isArray))return{fn:K,memory:X,success:!0};return{fn:(...W)=>{if(!X)throw Error("Memory not initialized");let G=new Uint8Array(X.buffer),J=0,L=[];for(let U=0;U<H.length;U++){let D=H[U],R=W[U];if(D.isArray&&R instanceof Object&&"buffer"in R){let w=R,B=new Uint8Array(w.buffer,w.byteOffset,w.byteLength);G.set(B,J),L.push(J),J+=B.length,J=J+15&-16}else L.push(R)}let _=K(...L);J=0;for(let U=0;U<H.length;U++){let D=H[U],R=W[U];if(D.isArray&&R instanceof Object&&"buffer"in R){let w=R,B=new Uint8Array(w.buffer,w.byteOffset,w.byteLength);B.set(G.slice(J,J+B.length)),J+=B.length,J=J+15&-16}}return _},memory:X,success:!0}}catch(X){return{fn:()=>0,success:!1,error:X.message}}}async function X7(Z){let $=await CZ(Z);if(!$.success)return console.warn(`WASM compilation failed for ${Z.id}:`,$.error),!1;return globalThis[Z.id]=$.fn,!0}async function OZ(Z){let $=0,X=0,Q=[];for(let K of Z)if(await X7(K))$++;else X++,Q.push(`Failed to compile ${K.id}`);return{compiled:$,failed:X,errors:Q}}function Q7(Z){let $=[],X=[];for(let z of Z){let W=f0(z);if(W.success){let G=btoa(String.fromCharCode(...W.bytes));X.push({id:z.id,base64:G,captures:z.captures,needsMemory:W.needsMemory??!1,wat:W.wat??""}),$.push({id:z.id,success:!0,byteLength:W.bytes.length})}else $.push({id:z.id,success:!1,error:W.error})}if(X.length===0)return{code:"",results:$};let Q=X.map((z)=>{let W=z.wat.split(`
290
+ `;try{let w=Function("__deepEqual","__format","__typeMatches",V),{testResults:F,sigTestResults:B}=w(E4,Y0,T4);for(let P of F){let C=Z[P.idx],O=W&&!P.passed&&P.error&&/is not defined$/.test(P.error);Y.push({description:C.description,passed:O?!0:P.passed,error:O?void 0:P.error,line:C.line})}for(let P of B){let C=L[P.idx],O=W&&!P.passed&&P.error&&/is not defined$/.test(P.error);Y.push({description:`${C.funcName} signature example`,passed:O?!0:P.passed,error:O?void 0:P.error,isSignatureTest:!0,line:C.line})}}catch(w){let F=W&&w instanceof ReferenceError;for(let B of Z)Y.push({description:B.description,passed:F,error:F?void 0:`Module execution failed: ${w.message}`,line:B.line});for(let B of L)Y.push({description:`${B.funcName} signature example`,passed:F,error:F?void 0:`Module execution failed: ${w.message}`,isSignatureTest:!0,line:B.line})}for(let w of D)Y.push({description:`${w.funcName} signature example`,passed:!0,isSignatureTest:!0,line:w.line});return Y}function S4(Z){let $="",X=0,Q=!1;for(let H=0;H<Z.length;H++){let Y=Z[H];if(Y==="{"||Y==="["||Y==="("){if(Y==="{"&&X===0&&Q)break;X++,$+=Y,Q=!0}else if(Y==="}"||Y==="]"||Y===")")X--,$+=Y;else if(!/\s/.test(Y))$+=Y,Q=!0;else $+=Y}return $.trim()||null}function zZ(Z){if(!Z.trim())return[];let $=[],X=WZ(Z);for(let Q of X){let K=Q.match(/(?:\(\s*[?!]\s*)?(\w+)\s*[:=]\s*(.+?)(?:\))?$/);if(K)$.push(K[2].trim());else return[]}return $}function WZ(Z){let $=[],X="",Q=0;for(let K of Z){if(K==="("||K==="["||K==="{")Q++;else if(K===")"||K==="]"||K==="}")Q--;else if(K===","&&Q===0){$.push(X.trim()),X="";continue}X+=K}if(X.trim())$.push(X.trim());return $}import*as e6 from"acorn";var q1={i32:127,i64:126,f32:125,f64:124,v128:123,funcref:112,externref:111,void:64},z0={custom:0,type:1,import:2,function:3,table:4,memory:5,global:6,export:7,start:8,element:9,code:10,data:11},q={unreachable:0,nop:1,block:2,loop:3,if:4,else:5,end:11,br:12,br_if:13,br_table:14,return:15,call:16,call_indirect:17,drop:26,select:27,local_get:32,local_set:33,local_tee:34,global_get:35,global_set:36,i32_load:40,i64_load:41,f32_load:42,f64_load:43,i32_load8_s:44,i32_load8_u:45,i32_load16_s:46,i32_load16_u:47,i32_store:54,i64_store:55,f32_store:56,f64_store:57,i32_store8:58,i32_store16:59,memory_size:63,memory_grow:64,i32_const:65,i64_const:66,f32_const:67,f64_const:68,i32_eqz:69,i32_eq:70,i32_ne:71,i32_lt_s:72,i32_lt_u:73,i32_gt_s:74,i32_gt_u:75,i32_le_s:76,i32_le_u:77,i32_ge_s:78,i32_ge_u:79,i64_eqz:80,i64_eq:81,i64_ne:82,i64_lt_s:83,i64_lt_u:84,i64_gt_s:85,i64_gt_u:86,i64_le_s:87,i64_le_u:88,i64_ge_s:89,i64_ge_u:90,f32_eq:91,f32_ne:92,f32_lt:93,f32_gt:94,f32_le:95,f32_ge:96,f64_eq:97,f64_ne:98,f64_lt:99,f64_gt:100,f64_le:101,f64_ge:102,i32_clz:103,i32_ctz:104,i32_popcnt:105,i32_add:106,i32_sub:107,i32_mul:108,i32_div_s:109,i32_div_u:110,i32_rem_s:111,i32_rem_u:112,i32_and:113,i32_or:114,i32_xor:115,i32_shl:116,i32_shr_s:117,i32_shr_u:118,i32_rotl:119,i32_rotr:120,i64_add:124,i64_sub:125,i64_mul:126,i64_div_s:127,f32_abs:139,f32_neg:140,f32_ceil:141,f32_floor:142,f32_trunc:143,f32_nearest:144,f32_sqrt:145,f32_add:146,f32_sub:147,f32_mul:148,f32_div:149,f32_min:150,f32_max:151,f32_copysign:152,f64_abs:153,f64_neg:154,f64_ceil:155,f64_floor:156,f64_trunc:157,f64_nearest:158,f64_sqrt:159,f64_add:160,f64_sub:161,f64_mul:162,f64_div:163,f64_min:164,f64_max:165,f64_copysign:166,i32_wrap_i64:167,i32_trunc_f32_s:168,i32_trunc_f32_u:169,i32_trunc_f64_s:170,i32_trunc_f64_u:171,i64_extend_i32_s:172,i64_extend_i32_u:173,f32_convert_i32_s:178,f32_convert_i32_u:179,f32_convert_i64_s:180,f32_demote_f64:182,f64_convert_i32_s:183,f64_convert_i32_u:184,f64_convert_i64_s:185,f64_promote_f32:187,i32_reinterpret_f32:188,f32_reinterpret_i32:190,f64_reinterpret_i64:191,i32_extend8_s:192,i32_extend16_s:193},GZ=Object.fromEntries(Object.entries(q).map(([Z,$])=>[$,Z.replace(/_/g,".")])),G0=253,t={v128_load:0,v128_store:11,v128_const:12,f32x4_splat:19,f32x4_extract_lane:31,f32x4_replace_lane:32,f32x4_neg:225,f32x4_sqrt:227,f32x4_add:228,f32x4_sub:229,f32x4_mul:230,f32x4_div:231},JZ=Object.fromEntries(Object.entries(t).map(([Z,$])=>[$,Z.replace(/_/g,".")]));function k4(Z){return[G0,...f(Z)]}function t6(Z,$,X){return[G0,...f(Z),...f($),...f(X)]}function f(Z){let $=[];do{let X=Z&127;if(Z>>>=7,Z!==0)X|=128;$.push(X)}while(Z!==0);return $}function J0(Z){let $=[],X=!0;while(X){let Q=Z&127;if(Z>>=7,Z===0&&(Q&64)===0||Z===-1&&(Q&64)!==0)X=!1;else Q|=128;$.push(Q)}return $}function b4(Z){let $=new ArrayBuffer(4);return new Float32Array($)[0]=Z,[...new Uint8Array($)]}function G1(Z){let $=new ArrayBuffer(8);return new Float64Array($)[0]=Z,[...new Uint8Array($)]}function g4(Z){let $=new TextEncoder().encode(Z);return[...f($.length),...$]}function W0(Z,$){return[Z,...f($.length),...$]}function V1(Z,$){let X=0,Q=0,K=$;while(K<Z.length){let H=Z[K];if(X|=(H&127)<<Q,K++,(H&128)===0)break;Q+=7}return[X,K-$]}function _Z(Z,$){let X=new ArrayBuffer(8),Q=new Uint8Array(X);for(let K=0;K<8;K++)Q[K]=Z[$+K];return new Float64Array(X)[0]}function LZ(Z,$,X){let Q=[],K=1,H=()=>" ".repeat(K),Y=$.map((G,J)=>`(param $${G.name} ${G.type})`).join(" "),z=X.map((G,J)=>`(local $L${$.length+J} ${G})`).join(" ");if(Q.push(`(func (export "compute") ${Y} (result f64)`),z)Q.push(` ${z}`);let W=0;while(W<Z.length){let G=Z[W],J=GZ[G]||`unknown(0x${G.toString(16)})`;if(W++,G===q.local_get||G===q.local_set||G===q.local_tee){let[U,_]=V1(Z,W);W+=_;let L=U<$.length?`$${$[U].name}`:`$L${U}`;Q.push(`${H()}${J} ${L}`)}else if(G===q.br||G===q.br_if){let[U,_]=V1(Z,W);W+=_,Q.push(`${H()}${J} ${U}`)}else if(G===q.i32_const){let[U,_]=V1(Z,W);W+=_,Q.push(`${H()}i32.const ${U}`)}else if(G===q.f32_const){let U=new ArrayBuffer(4),_=new Uint8Array(U);for(let D=0;D<4;D++)_[D]=Z[W+D];let L=new Float32Array(U)[0];W+=4,Q.push(`${H()}f32.const ${L}`)}else if(G===q.f64_const){let U=_Z(Z,W);W+=8,Q.push(`${H()}f64.const ${U}`)}else if(G===q.block||G===q.loop){let U=Z[W];W++,Q.push(`${H()}${J}${U===q1.void?"":` (result ${U===q1.f64?"f64":"i32"})`}`),K++}else if(G===q.if){let U=Z[W];W++,Q.push(`${H()}if${U===q1.void?"":` (result ${U===q1.f64?"f64":"i32"})`}`),K++}else if(G===q.else)K--,Q.push(`${H()}else`),K++;else if(G===q.end)K=Math.max(1,K-1),Q.push(`${H()}end`);else if(G===q.f64_load||G===q.f64_store||G===q.f32_load||G===q.f32_store||G===q.i32_load||G===q.i32_store){let[U,_]=V1(Z,W);W+=_;let[L,D]=V1(Z,W);W+=D,Q.push(`${H()}${J}${L?` offset=${L}`:""}`)}else if(G===G0){let[U,_]=V1(Z,W);W+=_;let L=JZ[U]||`simd.unknown(0x${U.toString(16)})`;if(U===t.v128_load||U===t.v128_store){let[D,I]=V1(Z,W);W+=I;let[M,R]=V1(Z,W);W+=R,Q.push(`${H()}${L}${M?` offset=${M}`:""}`)}else if(U===t.v128_const){let D=Z.slice(W,W+16);W+=16,Q.push(`${H()}v128.const ${D.map((I)=>"0x"+I.toString(16).padStart(2,"0")).join(" ")}`)}else if(U===t.f32x4_extract_lane||U===t.f32x4_replace_lane){let D=Z[W];W++,Q.push(`${H()}${L} ${D}`)}else Q.push(`${H()}${L}`)}else Q.push(`${H()}${J}`)}return Q.push(")"),Q.join(`
291
+ `)}var v0={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:q.i32_load8_s,storeOp:q.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:q.i32_load8_u,storeOp:q.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:q.i32_load8_u,storeOp:q.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:q.i32_load16_s,storeOp:q.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:q.i32_load16_u,storeOp:q.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:q.i32_load,storeOp:q.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:q.i32_load,storeOp:q.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:q.f32_load,storeOp:q.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:q.f64_load,storeOp:q.f64_store}};function UZ(Z){let $={params:Z,locals:new Map,nextLocalIndex:Z.length,localTypes:[],warnings:[],errors:[],loopDepth:0,needsMathImports:new Set,needsMemory:!1,hasReturn:!1,wat:[],watIndent:1};return Z.forEach((X,Q)=>{$.locals.set(X.name,{index:Q,type:X.type})}),$}function b0(Z,$,X){if(Z.locals.has($))return Z.errors.push(`Duplicate local declaration: ${$}`),Z.locals.get($).index;let Q=Z.nextLocalIndex++;return Z.locals.set($,{index:Q,type:X}),Z.localTypes.push(X),Q}function g1(Z,$){return Z.locals.get($)}function d1(Z,$){switch(Z.type){case"ExpressionStatement":{let X=Z.expression;return[...h(X,$),q.drop]}case"ReturnStatement":{let X=Z;if($.hasReturn=!0,!X.argument)return[q.return];let Q=h(X.argument,$),K=i(X.argument,$);if(K==="i32")Q.push(q.f64_convert_i32_s);else if(K==="f32")Q.push(q.f64_promote_f32);return Q.push(q.return),Q}case"VariableDeclaration":{let X=Z,Q=[];for(let K of X.declarations){if(K.id.type!=="Identifier"){$.errors.push("Destructuring not supported in WASM blocks");continue}let H=K.id.name,Y="f64";if(K.init)Y=i(K.init,$);let z=b0($,H,Y);if(K.init)Q.push(...h(K.init,$)),Q.push(q.local_set,...f(z))}return Q}case"ForStatement":return qZ(Z,$);case"IfStatement":return DZ(Z,$);case"BlockStatement":{let X=Z,Q=[];for(let K of X.body)Q.push(...d1(K,$));return Q}default:return $.errors.push(`Unsupported statement type: ${Z.type}`),[]}}function qZ(Z,$){let X=[];if(Z.init)if(Z.init.type==="VariableDeclaration")X.push(...d1(Z.init,$));else X.push(...h(Z.init,$));if(X.push(q.block,q1.void),X.push(q.loop,q1.void),Z.test)X.push(...h(Z.test,$)),X.push(q.i32_eqz),X.push(q.br_if,1);if($.loopDepth++,Z.body)X.push(...d1(Z.body,$));if($.loopDepth--,Z.update)X.push(...h(Z.update,$)),X.push(q.drop);return X.push(q.br,0),X.push(q.end),X.push(q.end),X}function DZ(Z,$){let X=[];if(X.push(...h(Z.test,$)),X.push(q.if,q1.void),X.push(...d1(Z.consequent,$)),Z.alternate)X.push(q.else),X.push(...d1(Z.alternate,$));return X.push(q.end),X}function i(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){if(X.raw&&(X.raw.includes(".")||X.raw.includes("e")))return"f64";if(Number.isInteger(X.value)&&X.value>=-2147483648&&X.value<=2147483647)return"i32";return"f64"}return"f64"}case"Identifier":return g1($,Z.name)?.type??"f64";case"BinaryExpression":case"AssignmentExpression":{let X=Z;if(["<",">","<=",">=","==","!=","===","!=="].includes(X.operator))return"i32";if(["|","&","^","<<",">>",">>>"].includes(X.operator))return"i32";let Q=i(X.left,$),K=i(X.right,$);if(Q==="v128"||K==="v128")return"v128";if(Q==="f64"||K==="f64")return"f64";if(Q==="f32"||K==="f32")return"f32";return"i32"}case"UnaryExpression":{let X=Z;if(X.operator==="!")return"i32";return i(X.argument,$)}case"MemberExpression":{let X=Z;if(X.object.type==="Identifier"){if(g1($,X.object.name)){let K=$.params.find((H)=>H.name===X.object.name);if(K?.arrayType){let H=v0[K.arrayType];if(H)return H.elementType}}}return"f64"}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee;if(Q.object.type==="Identifier"&&Q.object.name==="Math")return"f64"}if(X.callee.type==="Identifier"){let Q=X.callee.name;if(Q==="f32x4_extract_lane")return"f32";if(Q.startsWith("f32x4_")||Q==="v128_load")return"v128"}return"f64"}default:return"f64"}}function h(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){let Q=i(Z,$);if(Q==="i32")return[q.i32_const,...J0(X.value|0)];else if(Q==="f32")return[q.f32_const,...b4(X.value)];else return[q.f64_const,...G1(X.value)]}return $.errors.push(`Unsupported literal type: ${typeof X.value}`),[q.f64_const,...G1(0)]}case"Identifier":{let X=Z.name,Q=g1($,X);if(Q)return[q.local_get,...f(Q.index)];return $.errors.push(`Unknown identifier: ${X}`),[q.f64_const,...G1(0)]}case"BinaryExpression":return AZ(Z,$);case"UnaryExpression":return IZ(Z,$);case"AssignmentExpression":return RZ(Z,$);case"UpdateExpression":return BZ(Z,$);case"MemberExpression":return MZ(Z,$);case"CallExpression":return FZ(Z,$);case"SequenceExpression":{let X=Z,Q=[];for(let K=0;K<X.expressions.length;K++)if(Q.push(...h(X.expressions[K],$)),K<X.expressions.length-1)Q.push(q.drop);return Q}default:return $.errors.push(`Unsupported expression type: ${Z.type}`),[q.f64_const,...G1(0)]}}function AZ(Z,$){let X=h(Z.left,$),Q=h(Z.right,$),K=i(Z,$),H=i(Z.left,$),Y=i(Z.right,$),z=["<",">","<=",">=","==","===","!=","!=="].includes(Z.operator),W;if(H==="f64"||Y==="f64")W="f64";else if(H==="f32"||Y==="f32")W="f32";else W="i32";if(!z&&K==="f64")W="f64";let G=X,J=Q;if(W==="f64"){if(H==="i32")G=[...X,q.f64_convert_i32_s];else if(H==="f32")G=[...X,q.f64_promote_f32];if(Y==="i32")J=[...Q,q.f64_convert_i32_s];else if(Y==="f32")J=[...Q,q.f64_promote_f32]}else if(W==="f32"){if(H==="i32")G=[...X,q.f32_convert_i32_s];if(Y==="i32")J=[...Q,q.f32_convert_i32_s]}let _={"+":{i32:q.i32_add,f32:q.f32_add,f64:q.f64_add},"-":{i32:q.i32_sub,f32:q.f32_sub,f64:q.f64_sub},"*":{i32:q.i32_mul,f32:q.f32_mul,f64:q.f64_mul},"/":{i32:q.i32_div_s,f32:q.f32_div,f64:q.f64_div},"%":{i32:q.i32_rem_s},"<":{i32:q.i32_lt_s,f32:q.f32_lt,f64:q.f64_lt},">":{i32:q.i32_gt_s,f32:q.f32_gt,f64:q.f64_gt},"<=":{i32:q.i32_le_s,f32:q.f32_le,f64:q.f64_le},">=":{i32:q.i32_ge_s,f32:q.f32_ge,f64:q.f64_ge},"==":{i32:q.i32_eq,f32:q.f32_eq,f64:q.f64_eq},"===":{i32:q.i32_eq,f32:q.f32_eq,f64:q.f64_eq},"!=":{i32:q.i32_ne,f32:q.f32_ne,f64:q.f64_ne},"!==":{i32:q.i32_ne,f32:q.f32_ne,f64:q.f64_ne},"|":{i32:q.i32_or},"&":{i32:q.i32_and},"^":{i32:q.i32_xor},"<<":{i32:q.i32_shl},">>":{i32:q.i32_shr_s},">>>":{i32:q.i32_shr_u}}[Z.operator];if(!_)return $.errors.push(`Unsupported operator: ${Z.operator}`),[q.f64_const,...G1(0)];let L=_[W]??_.f64??_.i32;if(L===void 0)return $.errors.push(`Operator ${Z.operator} not supported for type ${W}`),[q.f64_const,...G1(0)];return[...G,...J,L]}function IZ(Z,$){let X=h(Z.argument,$),Q=i(Z.argument,$);switch(Z.operator){case"-":if(Q==="i32")return[q.i32_const,0,...X,q.i32_sub];else if(Q==="f32")return[...X,q.f32_neg];else return[...X,q.f64_neg];case"!":return[...X,q.i32_eqz];case"~":return[...X,q.i32_const,...J0(-1),q.i32_xor];default:return $.errors.push(`Unsupported unary operator: ${Z.operator}`),X}}function RZ(Z,$){if(Z.left.type==="MemberExpression")return wZ(Z.left,Z.right,Z.operator,$);if(Z.left.type!=="Identifier")return $.errors.push("Assignment target must be identifier or array element"),[];let X=Z.left.name,Q=g1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let K=[];if(Z.operator==="="){K.push(...h(Z.right,$));let H=i(Z.right,$);if(Q.type==="f64"&&H==="i32")K.push(q.f64_convert_i32_s);else if(Q.type==="f64"&&H==="f32")K.push(q.f64_promote_f32);else if(Q.type==="i32"&&H==="f64")K.push(q.i32_trunc_f64_s);else if(Q.type==="i32"&&H==="f32")K.push(q.i32_trunc_f32_s);else if(Q.type==="f32"&&H==="i32")K.push(q.f32_convert_i32_s);else if(Q.type==="f32"&&H==="f64")K.push(q.f32_demote_f64)}else{let H=i(Z.right,$),Y=Q.type;if(H==="f64"||Q.type==="f64")Y="f64";else if(H==="f32"||Q.type==="f32")Y="f32";if(K.push(q.local_get,...f(Q.index)),Y==="f64"&&Q.type==="i32")K.push(q.f64_convert_i32_s);else if(Y==="f64"&&Q.type==="f32")K.push(q.f64_promote_f32);else if(Y==="f32"&&Q.type==="i32")K.push(q.f32_convert_i32_s);if(K.push(...h(Z.right,$)),Y==="f64"&&H==="i32")K.push(q.f64_convert_i32_s);else if(Y==="f64"&&H==="f32")K.push(q.f64_promote_f32);else if(Y==="f32"&&H==="i32")K.push(q.f32_convert_i32_s);let z=Z.operator.slice(0,-1),G={"+":{i32:q.i32_add,f32:q.f32_add,f64:q.f64_add},"-":{i32:q.i32_sub,f32:q.f32_sub,f64:q.f64_sub},"*":{i32:q.i32_mul,f32:q.f32_mul,f64:q.f64_mul},"/":{i32:q.i32_div_s,f32:q.f32_div,f64:q.f64_div}}[z]?.[Y];if(!G)return $.errors.push(`Unsupported compound assignment: ${Z.operator}`),[];if(K.push(G),Q.type==="i32"&&Y==="f64")K.push(q.i32_trunc_f64_s);else if(Q.type==="i32"&&Y==="f32")K.push(q.i32_trunc_f32_s);else if(Q.type==="f32"&&Y==="f64")K.push(q.f32_demote_f64)}return K.push(q.local_tee,...f(Q.index)),K}function BZ(Z,$){if(Z.argument.type!=="Identifier")return $.errors.push("Update expression argument must be identifier"),[];let X=Z.argument.name,Q=g1($,X);if(!Q)return $.errors.push(`Unknown variable: ${X}`),[];let K=[],H=Q.type==="i32";if(Z.prefix){if(K.push(q.local_get,...f(Q.index)),H)K.push(q.i32_const,1),K.push(Z.operator==="++"?q.i32_add:q.i32_sub);else K.push(q.f64_const,...G1(1)),K.push(Z.operator==="++"?q.f64_add:q.f64_sub);K.push(q.local_tee,...f(Q.index))}else{if(K.push(q.local_get,...f(Q.index)),K.push(q.local_get,...f(Q.index)),H)K.push(q.i32_const,1),K.push(Z.operator==="++"?q.i32_add:q.i32_sub);else K.push(q.f64_const,...G1(1)),K.push(Z.operator==="++"?q.f64_add:q.f64_sub);K.push(q.local_set,...f(Q.index))}return K}function MZ(Z,$){if(Z.object.type!=="Identifier")return $.errors.push("Array access requires identifier"),[];let X=Z.object.name,Q=$.params.find((G)=>G.name===X);if(!Q?.isArray||!Q.arrayType)return $.errors.push(`${X} is not a typed array parameter`),[];let K=v0[Q.arrayType];if(!K)return $.errors.push(`Unknown array type: ${Q.arrayType}`),[];$.needsMemory=!0;let H=[],Y=g1($,X);if(!Y)return $.errors.push(`Unknown array: ${X}`),[];if(H.push(q.local_get,...f(Y.index)),!Z.computed||!Z.property)return $.errors.push("Array access requires computed index"),[];let z=h(Z.property,$),W=i(Z.property,$);if(H.push(...z),W==="f64")H.push(q.i32_trunc_f64_s);if(K.bytesPerElement>1)H.push(q.i32_const,...J0(K.bytesPerElement)),H.push(q.i32_mul);return H.push(q.i32_add),H.push(K.loadOp,0,0),H}function wZ(Z,$,X,Q){if(Z.object.type!=="Identifier")return Q.errors.push("Array store requires identifier"),[];let K=Z.object.name,H=Q.params.find((D)=>D.name===K);if(!H?.isArray||!H.arrayType)return Q.errors.push(`${K} is not a typed array parameter`),[];let Y=v0[H.arrayType];if(!Y)return Q.errors.push(`Unknown array type: ${H.arrayType}`),[];Q.needsMemory=!0;let z=[],W=g1(Q,K);if(!W)return[];if(!Z.computed||!Z.property)return Q.errors.push("Array store requires computed index"),[];let G=h(Z.property,Q),J=i(Z.property,Q),U=()=>{let D=[];if(D.push(q.local_get,...f(W.index)),D.push(...G),J==="f64")D.push(q.i32_trunc_f64_s);if(Y.bytesPerElement>1)D.push(q.i32_const,...J0(Y.bytesPerElement)),D.push(q.i32_mul);return D.push(q.i32_add),D};if(X==="=")z.push(...h($,Q));else{let D=b0(Q,`__addr_${Q.nextLocalIndex}`,"i32");z.push(...U()),z.push(q.local_tee,...f(D)),z.push(Y.loadOp,0,0),z.push(...h($,Q));let I=i($,Q);if(Y.elementType==="f32"&&I==="f64")z.push(q.f32_demote_f64);else if(Y.elementType==="f64"&&I==="f32")z.push(q.f64_promote_f32);else if(Y.elementType==="f32"&&I==="i32")z.push(q.f32_convert_i32_s);else if(Y.elementType==="f64"&&I==="i32")z.push(q.f64_convert_i32_s);else if(Y.elementType==="i32"&&I==="f64")z.push(q.i32_trunc_f64_s);else if(Y.elementType==="i32"&&I==="f32")z.push(q.i32_trunc_f32_s);let M=X.slice(0,-1),R={"+":Y.elementType==="i32"?q.i32_add:Y.elementType==="f32"?q.f32_add:q.f64_add,"-":Y.elementType==="i32"?q.i32_sub:Y.elementType==="f32"?q.f32_sub:q.f64_sub,"*":Y.elementType==="i32"?q.i32_mul:Y.elementType==="f32"?q.f32_mul:q.f64_mul};z.push(R[M]??q.f64_add);let V=b0(Q,`__val_${Q.nextLocalIndex}`,Y.elementType);return z.push(q.local_set,...f(V)),z.push(q.local_get,...f(D)),z.push(q.local_get,...f(V)),z.push(Y.storeOp,0,0),z.push(q.local_get,...f(V)),z}let _=i($,Q);if(Y.elementType==="f32"&&_==="f64")z.push(q.f32_demote_f64);else if(Y.elementType==="f64"&&_==="f32")z.push(q.f64_promote_f32);else if(Y.elementType==="i32"&&_==="f64")z.push(q.i32_trunc_f64_s);let L=b0(Q,`__tmp_${Q.nextLocalIndex}`,Y.elementType);if(z.push(q.local_set,...f(L)),z.push(q.local_get,...f(W.index)),z.push(...G),J==="f64")z.push(q.i32_trunc_f64_s);if(Y.bytesPerElement>1)z.push(q.i32_const,...J0(Y.bytesPerElement)),z.push(q.i32_mul);return z.push(q.i32_add),z.push(q.local_get,...f(L)),z.push(Y.storeOp,0,0),z.push(q.local_get,...f(L)),z}function FZ(Z,$){if(Z.callee.type==="MemberExpression"){let X=Z.callee;if(X.object.type==="Identifier"&&X.object.name==="Math"&&X.property.type==="Identifier"){let Q=X.property.name;return PZ(Q,Z.arguments,$)}}if(Z.callee.type==="Identifier"){let X=Z.callee.name;if(X.startsWith("f32x4_")||X.startsWith("v128_"))return jZ(X,Z.arguments,$)}return $.errors.push(`Unsupported function call: ${Z.callee.type}`),[q.f64_const,...G1(0)]}function jZ(Z,$,X){X.needsMemory=!0;let Q=[];switch(Z){case"v128_load":case"f32x4_load":{if(Q.push(...h($[0],X)),i($[0],X)==="f64")Q.push(q.i32_trunc_f64_s);Q.push(...h($[1],X));let H=i($[1],X);if(H==="f64")Q.push(q.i32_trunc_f64_s);else if(H==="f32")Q.push(q.i32_trunc_f32_s);return Q.push(q.i32_add),Q.push(...t6(t.v128_load,2,0)),Q}case"v128_store":case"f32x4_store":{if(Q.push(...h($[0],X)),i($[0],X)==="f64")Q.push(q.i32_trunc_f64_s);Q.push(...h($[1],X));let H=i($[1],X);if(H==="f64")Q.push(q.i32_trunc_f64_s);else if(H==="f32")Q.push(q.i32_trunc_f32_s);return Q.push(q.i32_add),Q.push(...h($[2],X)),Q.push(...t6(t.v128_store,2,0)),Q.push(q.i32_const,0),Q}case"f32x4_splat":{Q.push(...h($[0],X));let K=i($[0],X);if(K==="i32")Q.push(q.f32_convert_i32_s);else if(K==="f64")Q.push(q.f32_demote_f64);return Q.push(...k4(t.f32x4_splat)),Q}case"f32x4_extract_lane":{Q.push(...h($[0],X));let K=$[1].value;if(!Number.isInteger(K)||K<0||K>3)return X.errors.push(`f32x4_extract_lane: lane must be 0-3, got ${K}`),[q.f32_const,...b4(0)];return Q.push(G0,...f(t.f32x4_extract_lane),K),Q}case"f32x4_replace_lane":{Q.push(...h($[0],X));let K=$[1].value;if(!Number.isInteger(K)||K<0||K>3)return X.errors.push(`f32x4_replace_lane: lane must be 0-3, got ${K}`),[q.f32_const,...b4(0)];Q.push(...h($[2],X));let H=i($[2],X);if(H==="i32")Q.push(q.f32_convert_i32_s);else if(H==="f64")Q.push(q.f32_demote_f64);return Q.push(G0,...f(t.f32x4_replace_lane),K),Q}case"f32x4_add":case"f32x4_sub":case"f32x4_mul":case"f32x4_div":{Q.push(...h($[0],X)),Q.push(...h($[1],X));let K={f32x4_add:t.f32x4_add,f32x4_sub:t.f32x4_sub,f32x4_mul:t.f32x4_mul,f32x4_div:t.f32x4_div};return Q.push(...k4(K[Z])),Q}case"f32x4_neg":case"f32x4_sqrt":{Q.push(...h($[0],X));let K={f32x4_neg:t.f32x4_neg,f32x4_sqrt:t.f32x4_sqrt};return Q.push(...k4(K[Z])),Q}default:return X.errors.push(`Unknown SIMD intrinsic: ${Z}`),[q.f64_const,...G1(0)]}}function PZ(Z,$,X){let Q=[];for(let z of $){Q.push(...h(z,X));let W=i(z,X);if(W==="i32")Q.push(q.f64_convert_i32_s);else if(W==="f32")Q.push(q.f64_promote_f32)}let H={abs:q.f64_abs,ceil:q.f64_ceil,floor:q.f64_floor,trunc:q.f64_trunc,sqrt:q.f64_sqrt,min:q.f64_min,max:q.f64_max}[Z];if(H!==void 0)return Q.push(H),Q;if(["sin","cos","tan","asin","acos","atan","atan2","exp","log","pow"].includes(Z))return X.needsMathImports.add(Z),X.errors.push(`Math.${Z} requires JS import (not yet implemented)`),[q.f64_const,...G1(0)];return X.errors.push(`Unknown Math method: ${Z}`),[q.f64_const,...G1(0)]}function Z7(Z){let $=Z.split(":").map((H)=>H.trim()),X=$[0];if($.length===1)return{name:X,type:"f64"};let Q=$[1];if(v0[Q])return{name:X,type:"i32",isArray:!0,arrayType:Q};return{name:X,type:{i32:"i32",i64:"i64",f32:"f32",f64:"f64",number:"f64",int:"i32"}[Q]??"f64"}}function VZ(Z,$,X,Q,K){let H=[0,97,115,109,1,0,0,0],Y=Z.map((V)=>q1[V.type]),z=K?[1,q1.f64]:[0],W=W0(z0.type,[1,96,...f(Z.length),...Y,...z]),G=[],J=[];if(Q)J=W0(z0.import,[1,...g4("env"),...g4("memory"),2,0,1]);let U=W0(z0.function,[1,0]),_=W0(z0.export,[1,...g4("compute"),0,0]),L=[];if(X.length>0){let V=X[0],w=1;for(let F=1;F<X.length;F++)if(X[F]===V)w++;else L.push([...f(w),q1[V]]),V=X[F],w=1;L.push([...f(w),q1[V]])}let I=[...[...f(L.length),...L.flat()],...$,q.end],M=W0(z0.code,[1,...f(I.length),...I]),R=[...H,...W];if(J.length>0)R.push(...J);return R.push(...U,..._,...M),R}function f0(Z){try{let $=Z.captures.map(Z7),X;try{let G=`function __wasm__(${$.map((J)=>J.name).join(", ")}) { ${Z.body} }`;X=e6.parse(G,{ecmaVersion:2022})}catch(G){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${G.message}`}}let K=X.body[0].body.body,H=UZ($),Y=[];for(let G of K)Y.push(...d1(G,H));if(H.errors.length>0)return{bytes:new Uint8Array,warnings:H.warnings,success:!1,error:H.errors.join("; ")};let z=VZ($,Y,H.localTypes,H.needsMemory,H.hasReturn),W=LZ(Y,$,H.localTypes);return{bytes:new Uint8Array(z),warnings:H.warnings,success:!0,needsMemory:H.needsMemory,wat:W}}catch($){return{bytes:new Uint8Array,warnings:[],success:!1,error:$.message}}}async function $7(Z,$){let X={};if($)X.env={memory:$};let Q=await WebAssembly.compile(Z);return WebAssembly.instantiate(Q,X)}async function CZ(Z){let $=f0(Z);if(!$.success)return{fn:()=>0,success:!1,error:$.error};try{let X;if($.needsMemory)X=new WebAssembly.Memory({initial:256});let K=(await $7($.bytes,X)).exports.compute,H=Z.captures.map(Z7);if(!H.some((W)=>W.isArray))return{fn:K,memory:X,success:!0};return{fn:(...W)=>{if(!X)throw Error("Memory not initialized");let G=new Uint8Array(X.buffer),J=0,U=[];for(let L=0;L<H.length;L++){let D=H[L],I=W[L];if(D.isArray&&I instanceof Object&&"buffer"in I){let M=I,R=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);G.set(R,J),U.push(J),J+=R.length,J=J+15&-16}else U.push(I)}let _=K(...U);J=0;for(let L=0;L<H.length;L++){let D=H[L],I=W[L];if(D.isArray&&I instanceof Object&&"buffer"in I){let M=I,R=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);R.set(G.slice(J,J+R.length)),J+=R.length,J=J+15&-16}}return _},memory:X,success:!0}}catch(X){return{fn:()=>0,success:!1,error:X.message}}}async function X7(Z){let $=await CZ(Z);if(!$.success)return console.warn(`WASM compilation failed for ${Z.id}:`,$.error),!1;return globalThis[Z.id]=$.fn,!0}async function OZ(Z){let $=0,X=0,Q=[];for(let K of Z)if(await X7(K))$++;else X++,Q.push(`Failed to compile ${K.id}`);return{compiled:$,failed:X,errors:Q}}function Q7(Z){let $=[],X=[];for(let z of Z){let W=f0(z);if(W.success){let G=btoa(String.fromCharCode(...W.bytes));X.push({id:z.id,base64:G,captures:z.captures,needsMemory:W.needsMemory??!1,wat:W.wat??""}),$.push({id:z.id,success:!0,byteLength:W.bytes.length})}else $.push({id:z.id,success:!1,error:W.error})}if(X.length===0)return{code:"",results:$};let Q=X.map((z)=>{let W=z.wat.split(`
292
292
  `).map((G)=>` * ${G}`);return`/**
293
293
  * WASM: ${z.id}
294
294
  ${W.join(`
@@ -325,32 +325,32 @@ for(const{id,b64,c,m}of __wasmBlocks){
325
325
  const ab=new Uint8Array(a.buffer,a.byteOffset,a.byteLength);off=(off+15)&~15;ab.set(mv.slice(off,off+ab.length));off+=ab.length}}
326
326
  return r};
327
327
  }})();
328
- `.trim(),results:$}}function EZ(Z,$,X){if(!Z||!$)return!1;let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*?\\b${X}\\s*([=:])`,"s"),K=Z.match(Q);if(!K)return!1;return K[1]===":"}function TZ(Z,$,X,Q,K){let H=[],Y=X0($,Z),z={},W=!1,G,J;if(Z.params.length===1&&(Z.params[0].type==="ObjectPattern"||Z.params[0].type==="AssignmentPattern"&&Z.params[0].left.type==="ObjectPattern")){W=!0;let U=Z.params[0],D=U.type==="ObjectPattern"?U:U.left,R=P1(D,X);if(R.type.kind==="object"&&R.type.destructuredParams){G={},J=new Set;for(let[w,B]of Object.entries(R.type.destructuredParams))if(z[w]={...B,description:Y.params[w]},G[w]=B.type,B.required)J.add(w)}}else for(let U of Z.params)if(U.type==="Identifier"){let D=P1(U,X);z[U.name]={...D,required:X.has(U.name),description:Y.params[U.name]}}else if(U.type==="AssignmentPattern"&&U.left.type==="Identifier"){let D=P1(U,X),R=EZ(K||"",Z.id?.name||"",U.left.name);z[U.left.name]={...D,required:R,default:R?null:D.example??D.default,description:Y.params[U.left.name]}}else if(U.type==="ObjectPattern"){let D=P1(U,X);if(D.type.kind==="object"&&D.type.destructuredParams)for(let[R,w]of Object.entries(D.type.destructuredParams))z[R]={...w,description:Y.params[R]}}let L;if(Q)try{let U=Q.includes("=")?K7(Q):Q,D=NZ(U,0,{ecmaVersion:2022});L=z1(D)}catch{L={kind:"any"},H.push(`Could not parse return type: ${Q}`)}return{types:{name:Z.id?.name||"anonymous",params:z,returns:L,description:Y.description,isDestructuredParam:W,destructuredShape:G,destructuredRequired:J},warnings:H}}function SZ(Z,$,X){let Q=[],K=X?`${X}:`:"",H=X?`${X}:${Z}`:Z;if($.isDestructuredParam&&$.destructuredShape){let z=$.destructuredShape,W=$.destructuredRequired||new Set,G=Object.keys(z);if(G.length===0)return null;for(let J of G)Q.push(`if (${J} instanceof Error) return ${J};`);for(let[J,L]of Object.entries(z)){let _=W.has(J),U=`${K}${Z}.${J}`,D=v4(J,L);if(D){let R=L.kind;if(_)Q.push(`if (${D}) return __tjs.typeError('${U}', '${R}', ${J});`);else Q.push(`if (${J} !== undefined && ${D}) return __tjs.typeError('${U}', '${R}', ${J});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${H}');`),Q.unshift("try {"),{preamble:Q.join(`
329
- `),suffix:"} finally { __tjs.popStack(); }"}}let Y=Object.entries($.params);if(Y.length===0)return null;for(let[z]of Y)Q.push(`if (${z} instanceof Error) return ${z};`);for(let[z,W]of Y){let G=`${K}${Z}.${z}`,J=v4(z,W.type);if(J){let L=W.type.kind==="union"?W.type.members.map((_)=>_.kind).join(" | "):W.type.kind;if(W.required)Q.push(`if (${J}) return __tjs.typeError('${G}', '${L}', ${z});`);else Q.push(`if (${z} !== undefined && ${J}) return __tjs.typeError('${G}', '${L}', ${z});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${H}');`),Q.unshift("try {"),{preamble:Q.join(`
330
- `),suffix:"} finally { __tjs.popStack(); }"}}function K7(Z){let $="",X=0;for(let Q=0;Q<Z.length;Q++){let K=Z[Q];if(K==="{"||K==="["||K==="(")X++,$+=K;else if(K==="}"||K==="]"||K===")")X--,$+=K;else if(K==="'"||K==='"'||K==="`"){$+=K,Q++;while(Q<Z.length&&Z[Q]!==K){if(Z[Q]==="\\")$+=Z[Q++];$+=Z[Q++]}if(Q<Z.length)$+=Z[Q]}else if(X===1&&K==="="&&Z[Q-1]!=="!"&&Z[Q+1]!=="=")$+=":";else $+=K}return $}function kZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(Z);if(!Q)return null;let K=Z.slice(Q.index+Q[0].length);return S4(K)}function gZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(Z);if(!Q)return;let K=Q[1];if(K==="?")return"safe";if(K==="!")return"unsafe";return}function bZ(Z){let $=Z.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return $?$[1].trim():void 0}function vZ(Z,$){let X=new RegExp(`\\/\\*\\s*line\\s+(\\d+)\\s*\\*\\/\\s*(?:async\\s+)?function\\s+${$}\\s*\\(`,"m"),Q=Z.match(X);return Q?parseInt(Q[1],10):void 0}function L0(Z,$={}){let{filename:X="<source>",runTests:Q=!0,debug:K=!1,resolvedImports:H={}}=$,Y=[],W=bZ(Z)||X,{code:G,tests:J,mocks:L,testRunner:_}=N4(Z),{ast:U,originalSource:D,requiredParams:R,unsafeFunctions:w}=M1(G,{filename:X,colonShorthand:!0}),B=fZ(U),V=E0(G),M={},j=[],I=[];for(let v of B){let y=v.id?.name||"anonymous",Z1=kZ(G,y),o;if(Z1&&Z1.includes("="))try{let Y1=Z1.matchAll(/(\w+)\s*=\s*/g),L1=K7(Z1),T1=Function(`return ${L1}`)(),U1={};for(let I8 of Y1){let F4=I8[1];if(F4 in T1)U1[F4]=T1[F4]}if(Object.keys(U1).length>0)o=U1}catch{}let{types:D1,warnings:L8}=TZ(v,D,R,Z1,G);Y.push(...L8),M[y]=D1;for(let Y1 of v.params)if(Y1.type==="AssignmentPattern"){let L1=Y1.left?.name||Y1.left?.value,T1=L1?D1.params[L1]:null;if(T1?.required&&T1.default===null)I.push({start:Y1.left.end,end:Y1.right.end});else{let U1=Y1.right;if(U1.type==="BinaryExpression"&&U1.operator==="|")I.push({start:U1.left.end,end:U1.end})}}let I6=V.moduleSafety==="none"||w.has(y),U8=V.safeFunctions.has(y),q8=gZ(G,y),D8=vZ(Z,y),u1={file:W,line:D8??v.loc?.start.line??0,column:v.loc?.start.column??0},A8={unsafe:I6,safe:U8,returnSafety:q8},R6=V.polymorphicNames.has(y),w4;if(R6){let Y1=[];for(let T1 of B){let U1=T1.id?.name||"";if(U1.startsWith(y+"$"))Y1.push(U1)}let L1={polymorphic:!0,variants:Y1};if(u1)L1.source=`${u1.file}:${u1.line}`;w4=`${y}.__tjs = ${JSON.stringify(L1,null,2)}`}else w4=yZ(y,D1,A8,{debug:K,source:u1,returnDefaults:o});if(j.push({position:v.end,text:`
331
- ${w4}`}),!I6&&!R6){let Y1=`${u1.file}:${u1.line}`,L1=SZ(y,D1,Y1);if(L1&&v.body&&v.body.start!==void 0)j.push({position:v.body.start+1,text:`
328
+ `.trim(),results:$}}function EZ(Z,$,X){if(!Z||!$)return!1;let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*?\\b${X}\\s*([=:])`,"s"),K=Z.match(Q);if(!K)return!1;return K[1]===":"}function TZ(Z,$,X,Q,K){let H=[],Y=X0($,Z),z={},W=!1,G,J;if(Z.params.length===1&&(Z.params[0].type==="ObjectPattern"||Z.params[0].type==="AssignmentPattern"&&Z.params[0].left.type==="ObjectPattern")){W=!0;let L=Z.params[0],D=L.type==="ObjectPattern"?L:L.left,I=P1(D,X);if(I.type.kind==="object"&&I.type.destructuredParams){G={},J=new Set;for(let[M,R]of Object.entries(I.type.destructuredParams))if(z[M]={...R,description:Y.params[M]},G[M]=R.type,R.required)J.add(M)}}else for(let L of Z.params)if(L.type==="Identifier"){let D=P1(L,X);z[L.name]={...D,required:X.has(L.name),description:Y.params[L.name]}}else if(L.type==="AssignmentPattern"&&L.left.type==="Identifier"){let D=P1(L,X),I=EZ(K||"",Z.id?.name||"",L.left.name);z[L.left.name]={...D,required:I,default:I?null:D.example??D.default,description:Y.params[L.left.name]}}else if(L.type==="ObjectPattern"){let D=P1(L,X);if(D.type.kind==="object"&&D.type.destructuredParams)for(let[I,M]of Object.entries(D.type.destructuredParams))z[I]={...M,description:Y.params[I]}}let U;if(Q)try{let L=Q.includes("=")?K7(Q):Q,D=NZ(L,0,{ecmaVersion:2022});U=z1(D)}catch{U={kind:"any"},H.push(`Could not parse return type: ${Q}`)}return{types:{name:Z.id?.name||"anonymous",params:z,returns:U,description:Y.description,isDestructuredParam:W,destructuredShape:G,destructuredRequired:J},warnings:H}}function SZ(Z,$,X){let Q=[],K=X?`${X}:`:"",H=X?`${X}:${Z}`:Z;if($.isDestructuredParam&&$.destructuredShape){let z=$.destructuredShape,W=$.destructuredRequired||new Set,G=Object.keys(z);if(G.length===0)return null;for(let J of G)Q.push(`if (${J} instanceof Error) return ${J};`);for(let[J,U]of Object.entries(z)){let _=W.has(J),L=`${K}${Z}.${J}`,D=v4(J,U);if(D){let I=U.kind;if(_)Q.push(`if (${D}) return __tjs.typeError('${L}', '${I}', ${J});`);else Q.push(`if (${J} !== undefined && ${D}) return __tjs.typeError('${L}', '${I}', ${J});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${H}');`),Q.unshift("try {"),{preamble:Q.join(`
329
+ `),suffix:"} finally { __tjs.popStack(); }"}}let Y=Object.entries($.params);if(Y.length===0)return null;for(let[z]of Y)Q.push(`if (${z} instanceof Error) return ${z};`);for(let[z,W]of Y){let G=`${K}${Z}.${z}`,J=v4(z,W.type);if(J){let U=W.type.kind==="union"?W.type.members.map((_)=>_.kind).join(" | "):W.type.kind;if(W.required)Q.push(`if (${J}) return __tjs.typeError('${G}', '${U}', ${z});`);else Q.push(`if (${z} !== undefined && ${J}) return __tjs.typeError('${G}', '${U}', ${z});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${H}');`),Q.unshift("try {"),{preamble:Q.join(`
330
+ `),suffix:"} finally { __tjs.popStack(); }"}}function K7(Z){let $="",X=0;for(let Q=0;Q<Z.length;Q++){let K=Z[Q];if(K==="{"||K==="["||K==="(")X++,$+=K;else if(K==="}"||K==="]"||K===")")X--,$+=K;else if(K==="'"||K==='"'||K==="`"){$+=K,Q++;while(Q<Z.length&&Z[Q]!==K){if(Z[Q]==="\\")$+=Z[Q++];$+=Z[Q++]}if(Q<Z.length)$+=Z[Q]}else if(X===1&&K==="="&&Z[Q-1]!=="!"&&Z[Q+1]!=="=")$+=":";else $+=K}return $}function kZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(Z);if(!Q)return null;let K=Z.slice(Q.index+Q[0].length);return S4(K)}function gZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(Z);if(!Q)return;let K=Q[1];if(K==="?")return"safe";if(K==="!")return"unsafe";return}function bZ(Z){let $=Z.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return $?$[1].trim():void 0}function vZ(Z,$){let X=new RegExp(`\\/\\*\\s*line\\s+(\\d+)\\s*\\*\\/\\s*(?:async\\s+)?function\\s+${$}\\s*\\(`,"m"),Q=Z.match(X);return Q?parseInt(Q[1],10):void 0}function L0(Z,$={}){let{filename:X="<source>",runTests:Q=!0,debug:K=!1,resolvedImports:H={}}=$,Y=[],W=bZ(Z)||X,{code:G,tests:J,mocks:U,testRunner:_}=N4(Z),{ast:L,originalSource:D,requiredParams:I,unsafeFunctions:M}=M1(G,{filename:X,colonShorthand:!0}),R=fZ(L),V=E0(G),w={},F=[],B=[];for(let v of R){let y=v.id?.name||"anonymous",Z1=kZ(G,y),o;if(Z1&&Z1.includes("="))try{let Y1=Z1.matchAll(/(\w+)\s*=\s*/g),L1=K7(Z1),T1=Function(`return ${L1}`)(),U1={};for(let I8 of Y1){let F4=I8[1];if(F4 in T1)U1[F4]=T1[F4]}if(Object.keys(U1).length>0)o=U1}catch{}let{types:D1,warnings:L8}=TZ(v,D,I,Z1,G);Y.push(...L8),w[y]=D1;for(let Y1 of v.params)if(Y1.type==="AssignmentPattern"){let L1=Y1.left?.name||Y1.left?.value,T1=L1?D1.params[L1]:null;if(T1?.required&&T1.default===null)B.push({start:Y1.left.end,end:Y1.right.end});else{let U1=Y1.right;if(U1.type==="BinaryExpression"&&U1.operator==="|")B.push({start:U1.left.end,end:U1.end})}}let I6=V.moduleSafety==="none"||M.has(y),U8=V.safeFunctions.has(y),q8=gZ(G,y),D8=vZ(Z,y),u1={file:W,line:D8??v.loc?.start.line??0,column:v.loc?.start.column??0},A8={unsafe:I6,safe:U8,returnSafety:q8},R6=V.polymorphicNames.has(y),w4;if(R6){let Y1=[];for(let T1 of R){let U1=T1.id?.name||"";if(U1.startsWith(y+"$"))Y1.push(U1)}let L1={polymorphic:!0,variants:Y1};if(u1)L1.source=`${u1.file}:${u1.line}`;w4=`${y}.__tjs = ${JSON.stringify(L1,null,2)}`}else w4=yZ(y,D1,A8,{debug:K,source:u1,returnDefaults:o});if(F.push({position:v.end,text:`
331
+ ${w4}`}),!I6&&!R6){let Y1=`${u1.file}:${u1.line}`,L1=SZ(y,D1,Y1);if(L1&&v.body&&v.body.start!==void 0)F.push({position:v.body.start+1,text:`
332
332
  ${L1.preamble}
333
- `}),j.push({position:v.body.end-1,text:`
333
+ `}),F.push({position:v.body.end-1,text:`
334
334
  ${L1.suffix}
335
- `})}}I.sort((v,y)=>y.start-v.start);let P=V.source;for(let{start:v,end:y}of I)P=P.slice(0,v)+P.slice(y);for(let v of j){let y=0;for(let Z1 of I)if(Z1.start<v.position)y+=Z1.end-Z1.start;v.position-=y}j.sort((v,y)=>y.position-v.position);for(let{position:v,text:y}of j)P=P.slice(0,v)+y+P.slice(v);let C=P.includes("__tjs.typeError("),O=P.includes("__tjs.pushStack("),T=P.includes("Is("),k=P.includes("IsNot("),g=V.tjsModes.tjsSafeEval;if(C||O||T||k||g){let v=`const __tjs = globalThis.__tjs?.createRuntime?.() ?? globalThis.__tjs;
336
- `;if(T||k){let y=[T&&"Is",k&&"IsNot"].filter(Boolean).join(", ");v+=`const { ${y} } = __tjs ?? {};
335
+ `})}}B.sort((v,y)=>y.start-v.start);let P=V.source;for(let{start:v,end:y}of B)P=P.slice(0,v)+P.slice(y);for(let v of F){let y=0;for(let Z1 of B)if(Z1.start<v.position)y+=Z1.end-Z1.start;v.position-=y}F.sort((v,y)=>y.position-v.position);for(let{position:v,text:y}of F)P=P.slice(0,v)+y+P.slice(v);let C=P.includes("__tjs.typeError("),O=P.includes("__tjs.pushStack("),T=P.includes("Is("),S=P.includes("IsNot("),g=V.tjsModes.tjsSafeEval;if(C||O||T||S||g){let v=`const __tjs = globalThis.__tjs?.createRuntime?.() ?? globalThis.__tjs;
336
+ `;if(T||S){let y=[T&&"Is",S&&"IsNot"].filter(Boolean).join(", ");v+=`const { ${y} } = __tjs ?? {};
337
337
  `}P=v+P}if(g)P=`import { Eval, SafeFunction } from 'tjs-lang';
338
- `+P;let m;if(Q){let v=a6(Z);m=r6(J,L,v,P,H,V.extensions);let y=m.filter((Z1)=>!Z1.passed);if(y.length>0&&Q===!0){let Z1=y.map((o)=>{if(o.isSignatureTest)return` Function signature example is inconsistent:
338
+ `+P;let m;if(Q){let v=a6(Z);m=r6(J,U,v,P,H,V.extensions);let y=m.filter((Z1)=>!Z1.passed);if(y.length>0&&Q===!0){let Z1=y.map((o)=>{if(o.isSignatureTest)return` Function signature example is inconsistent:
339
339
  ${o.error}`;let D1=o.line?` (line ${o.line})`:"";return` Test '${o.description}'${D1} failed:
340
340
  ${o.error}`});throw Error(`Transpile-time test failures:
341
341
  ${Z1.join(`
342
- `)}`)}}if(Q==="only")return{code:"",types:M,metadata:M,testResults:m,testCount:m?.length};let a;if(V.wasmBlocks.length>0){a=[];let v=Q7(V.wasmBlocks);if(v.code)P=v.code+`
343
- `+P;a=v.results}return{code:P,types:M,metadata:M,warnings:Y.length>0?Y:void 0,testRunner:J.length>0?_:void 0,testCount:J.length>0?J.length:void 0,testResults:m,wasmCompiled:a}}function fZ(Z){let $=[];for(let X of Z.body)if(X.type==="FunctionDeclaration")$.push(X);else if(X.type==="ExportNamedDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);else if(X.type==="ExportDefaultDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);return $}function _0(Z){let $={kind:Z.kind};if(Z.nullable)$.nullable=!0;if(Z.items)$.items=_0(Z.items);if(Z.shape)$.shape=Object.fromEntries(Object.entries(Z.shape).map(([X,Q])=>[X,_0(Q)]));if(Z.members)$.members=Z.members.map(_0);return $}function yZ(Z,$,X={},Q={}){let K={};for(let[Y,z]of Object.entries($.params)){if(K[Y]={type:_0(z.type),required:z.required},z.default!==void 0)K[Y].default=z.default;if(z.description)K[Y].description=z.description}let H={params:K};if($.returns){if(H.returns={type:_0($.returns)},Q.returnDefaults)H.returns.defaults=Q.returnDefaults;if(X.returnSafety==="safe")H.safeReturn=!0;else if(X.returnSafety==="unsafe")H.unsafeReturn=!0}if($.description)H.description=$.description;if(X.unsafe)H.unsafe=!0;if(X.safe)H.safe=!0;if(Q.source){let{file:Y,line:z}=Q.source;H.source=`${Y}:${z}`}return`${Z}.__tjs = ${JSON.stringify(H,null,2)}`}function v4(Z,$){switch($.kind){case"string":return`typeof ${Z} !== 'string'`;case"number":return`typeof ${Z} !== 'number'`;case"integer":return`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}))`;case"non-negative-integer":return`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}) || ${Z} < 0)`;case"boolean":return`typeof ${Z} !== 'boolean'`;case"null":return`${Z} !== null`;case"undefined":return`${Z} !== undefined`;case"array":return`!Array.isArray(${Z})`;case"object":return`(typeof ${Z} !== 'object' || ${Z} === null || Array.isArray(${Z}))`;case"union":{let X=$.members.map((Q)=>v4(Z,Q)).filter((Q)=>Q!==null);if(X.length===0)return null;return`(${X.join(" && ")})`}case"any":return null;default:return null}}function m1(Z){let $;switch(Z.kind){case"string":$="string";break;case"number":case"integer":case"non-negative-integer":$="number";break;case"boolean":$="boolean";break;case"null":return"null";case"undefined":return"undefined";case"any":$="any";break;case"array":if(Z.items){let X=m1(Z.items);$=X.includes("|")?`(${X})[]`:`${X}[]`}else $="any[]";break;case"object":if(Z.shape&&Object.keys(Z.shape).length>0)$=`{ ${Object.entries(Z.shape).map(([Q,K])=>`${Q}: ${m1(K)}`).join("; ")} }`;else $="Record<string, any>";break;case"union":if(Z.members&&Z.members.length>0)return Z.members.map(m1).join(" | ");$="any";break;default:$="any"}if(Z.nullable)return`${$} | null`;return $}function hZ(Z,$,X,Q){let K=Object.entries($.params).map(([z,W])=>{let G=!W.required,J=m1(W.type);return G?`${z}?: ${J}`:`${z}: ${J}`}).join(", "),H=$.returns?m1($.returns):"any";return`${X?Q?"export default function":"export declare function":"declare function"} ${Z}(${K}): ${H};`}function xZ(Z){let $=new Map,X,Q=/^[ \t]*export\s+(default\s+)?function\s+(\w+)/gm;while((X=Q.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let K=/^[ \t]*export\s+(default\s+)?class\s+(\w+)/gm;while((X=K.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let H=/^[ \t]*export\s+(default\s+)?(?:const|let|var)\s+(\w+)/gm;while((X=H.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let Y=/^[ \t]*export\s+Type\s+(\w+)/gm;while((X=Y.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let z=/^[ \t]*export\s+Generic\s+(\w+)/gm;while((X=z.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let W=/^[ \t]*export\s*\{([^}]+)\}/gm;while((X=W.exec(Z))!==null){let G=X[1].split(",").map((J)=>J.trim().split(/\s+as\s+/));for(let J of G){let L=J.length>1?J[1]:J[0];if(L&&/^\w+$/.test(L))$.set(L,{exported:!0,isDefault:!1})}}return $}function uZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+(?:default\s+)?)?class\s+(\w+)(?:\s+extends\s+\w+)?\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let K=Q[1],H=Q.index+Q[0].length-1,Y=1,z=H+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}let W=Z.slice(H+1,z-1),G=W.indexOf("constructor"),J="";if(G!==-1){let D=W.indexOf("(",G);if(D!==-1){let R=1,w=D+1;while(w<W.length&&R>0){if(W[w]==="(")R++;else if(W[w]===")")R--;w++}J=W.slice(D+1,w-1).trim()}}let L=[],_=/^\s+(\w+)\s*\(/gm,U;while((U=_.exec(W))!==null){let D=U[1];if(D==="constructor"||D==="get"||D==="set")continue;let R=U.index+U[0].length-1,w=1,B=R+1;while(B<W.length&&w>0){if(W[B]==="(")w++;else if(W[B]===")")w--;B++}let V=W.slice(R+1,B-1).trim(),M=W.slice(B).match(/^\s*->\s*(.+?)\s*\{/),j=M?M[1].trim():null;L.push({name:D,params:V,returnType:j})}$.set(K,{name:K,constructorParams:J,methods:L})}return $}function dZ(Z){let $=[],X=0,Q="";for(let K of Z){if(K==="{"||K==="["||K==="(")X++;else if(K==="}"||K==="]"||K===")")X--;if(K===","&&X===0)$.push(Q.trim()),Q="";else Q+=K}if(Q.trim())$.push(Q.trim());return $}function H7(Z){if(!Z.trim())return"";return dZ(Z).map(($)=>{let X=$.match(/^(\w+)\s*:\s*(.+)$/);if(X){let K=X[1],H=y0(X[2].trim());return`${K}: ${H}`}let Q=$.match(/^(\w+)\s*=\s*(.+)$/);if(Q){let K=Q[1],H=y0(Q[2].trim());return`${K}?: ${H}`}if($.startsWith("{"))return"options: any";return`${$}: any`}).join(", ")}function mZ(Z){let $=new Map,X,Q=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*=\s*(.+)$/gm;while((X=Q.exec(Z))!==null)$.set(X[1],X[2].trim());let K=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s+([^{=].*)$/gm;while((X=K.exec(Z))!==null)if(!$.has(X[1]))$.set(X[1],X[2].trim());let H=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*\{[^}]*example\s*:\s*(.+?)(?:\n|\s*[,}])/gm;while((X=H.exec(Z))!==null)$.set(X[1],X[2].trim());return $}function lZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?Generic\s+(\w+)\s*<([^>]+)>\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let K=Q[1],H=Q[2].split(",").map((_)=>{return _.trim().split(/\s*=/)[0].trim()}),Y=Q.index+Q[0].length-1,z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}let G=Z.slice(Y+1,W-1),J,L=G.match(/\bdeclaration\s*\{/);if(L&&L.index!==void 0){let _=L.index+L[0].length-1,U=1,D=_+1;while(D<G.length&&U>0){if(G[D]==="{")U++;else if(G[D]==="}")U--;D++}J=G.slice(_+1,D-1).trim()}$.set(K,{typeParams:H,declaration:J})}return $}function iZ(Z,$,X={}){let Q=[],K=xZ($),H=mZ($),Y=uZ($),z=lZ($),W=K.size>0,G=new Set;for(let[J,L]of Object.entries(Z.types)){if(J.includes("$"))continue;let _=K.get(J),U=W?!!_?.exported:!0,D=_?.isDefault??!1;if(!U)continue;if(L.description)Q.push(`/** ${L.description} */`);Q.push(hZ(J,L,!0,D)),G.add(J)}for(let[J,L]of Y){if(G.has(J))continue;let _=K.get(J);if(!(W?!!_?.exported:!0))continue;let D=L.constructorParams?H7(L.constructorParams):"";if(Q.push(`export declare function ${J}(${D}): any;`),D||L.methods.length>0){if(Q.push(`export declare class ${J} {`),L.constructorParams)Q.push(` constructor(${D});`);for(let R of L.methods){let w=R.params?H7(R.params):"";Q.push(` ${R.name}(${w}): any;`)}Q.push("}")}G.add(J)}for(let[J,L]of H){if(G.has(J))continue;let _=K.get(J);if(!(W?!!_?.exported:!0))continue;let D=y0(L);Q.push(`export declare const ${J}: { check(value: any): boolean; default: ${D}; (value: any): boolean; };`),G.add(J)}for(let[J,L]of z){if(G.has(J))continue;let _=K.get(J);if(!(W?!!_?.exported:!0))continue;let D=L.typeParams.length>0?`<${L.typeParams.join(", ")}>`:"";if(L.declaration){let R=L.declaration.split(`
344
- `).map((w)=>w.trim()).filter((w)=>w.length>0).map((w)=>` ${w}`).join(`
342
+ `)}`)}}if(Q==="only")return{code:"",types:w,metadata:w,testResults:m,testCount:m?.length};let a;if(V.wasmBlocks.length>0){a=[];let v=Q7(V.wasmBlocks);if(v.code)P=v.code+`
343
+ `+P;a=v.results}return{code:P,types:w,metadata:w,warnings:Y.length>0?Y:void 0,testRunner:J.length>0?_:void 0,testCount:J.length>0?J.length:void 0,testResults:m,wasmCompiled:a}}function fZ(Z){let $=[];for(let X of Z.body)if(X.type==="FunctionDeclaration")$.push(X);else if(X.type==="ExportNamedDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);else if(X.type==="ExportDefaultDeclaration"&&X.declaration?.type==="FunctionDeclaration")$.push(X.declaration);return $}function _0(Z){let $={kind:Z.kind};if(Z.nullable)$.nullable=!0;if(Z.items)$.items=_0(Z.items);if(Z.shape)$.shape=Object.fromEntries(Object.entries(Z.shape).map(([X,Q])=>[X,_0(Q)]));if(Z.members)$.members=Z.members.map(_0);return $}function yZ(Z,$,X={},Q={}){let K={};for(let[Y,z]of Object.entries($.params)){if(K[Y]={type:_0(z.type),required:z.required},z.default!==void 0)K[Y].default=z.default;if(z.description)K[Y].description=z.description}let H={params:K};if($.returns){if(H.returns={type:_0($.returns)},Q.returnDefaults)H.returns.defaults=Q.returnDefaults;if(X.returnSafety==="safe")H.safeReturn=!0;else if(X.returnSafety==="unsafe")H.unsafeReturn=!0}if($.description)H.description=$.description;if(X.unsafe)H.unsafe=!0;if(X.safe)H.safe=!0;if(Q.source){let{file:Y,line:z}=Q.source;H.source=`${Y}:${z}`}return`${Z}.__tjs = ${JSON.stringify(H,null,2)}`}function v4(Z,$){switch($.kind){case"string":return`typeof ${Z} !== 'string'`;case"number":return`typeof ${Z} !== 'number'`;case"integer":return`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}))`;case"non-negative-integer":return`(typeof ${Z} !== 'number' || !Number.isInteger(${Z}) || ${Z} < 0)`;case"boolean":return`typeof ${Z} !== 'boolean'`;case"null":return`${Z} !== null`;case"undefined":return`${Z} !== undefined`;case"array":return`!Array.isArray(${Z})`;case"object":return`(typeof ${Z} !== 'object' || ${Z} === null || Array.isArray(${Z}))`;case"union":{let X=$.members.map((Q)=>v4(Z,Q)).filter((Q)=>Q!==null);if(X.length===0)return null;return`(${X.join(" && ")})`}case"any":return null;default:return null}}function m1(Z){let $;switch(Z.kind){case"string":$="string";break;case"number":case"integer":case"non-negative-integer":$="number";break;case"boolean":$="boolean";break;case"null":return"null";case"undefined":return"undefined";case"any":$="any";break;case"array":if(Z.items){let X=m1(Z.items);$=X.includes("|")?`(${X})[]`:`${X}[]`}else $="any[]";break;case"object":if(Z.shape&&Object.keys(Z.shape).length>0)$=`{ ${Object.entries(Z.shape).map(([Q,K])=>`${Q}: ${m1(K)}`).join("; ")} }`;else $="Record<string, any>";break;case"union":if(Z.members&&Z.members.length>0)return Z.members.map(m1).join(" | ");$="any";break;default:$="any"}if(Z.nullable)return`${$} | null`;return $}function hZ(Z,$,X,Q){let K=Object.entries($.params).map(([z,W])=>{let G=!W.required,J=m1(W.type);return G?`${z}?: ${J}`:`${z}: ${J}`}).join(", "),H=$.returns?m1($.returns):"any";return`${X?Q?"export default function":"export declare function":"declare function"} ${Z}(${K}): ${H};`}function xZ(Z){let $=new Map,X,Q=/^[ \t]*export\s+(default\s+)?function\s+(\w+)/gm;while((X=Q.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let K=/^[ \t]*export\s+(default\s+)?class\s+(\w+)/gm;while((X=K.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let H=/^[ \t]*export\s+(default\s+)?(?:const|let|var)\s+(\w+)/gm;while((X=H.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let Y=/^[ \t]*export\s+Type\s+(\w+)/gm;while((X=Y.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let z=/^[ \t]*export\s+Generic\s+(\w+)/gm;while((X=z.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let W=/^[ \t]*export\s*\{([^}]+)\}/gm;while((X=W.exec(Z))!==null){let G=X[1].split(",").map((J)=>J.trim().split(/\s+as\s+/));for(let J of G){let U=J.length>1?J[1]:J[0];if(U&&/^\w+$/.test(U))$.set(U,{exported:!0,isDefault:!1})}}return $}function uZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+(?:default\s+)?)?class\s+(\w+)(?:\s+extends\s+\w+)?\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let K=Q[1],H=Q.index+Q[0].length-1,Y=1,z=H+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}let W=Z.slice(H+1,z-1),G=W.indexOf("constructor"),J="";if(G!==-1){let D=W.indexOf("(",G);if(D!==-1){let I=1,M=D+1;while(M<W.length&&I>0){if(W[M]==="(")I++;else if(W[M]===")")I--;M++}J=W.slice(D+1,M-1).trim()}}let U=[],_=/^\s+(\w+)\s*\(/gm,L;while((L=_.exec(W))!==null){let D=L[1];if(D==="constructor"||D==="get"||D==="set")continue;let I=L.index+L[0].length-1,M=1,R=I+1;while(R<W.length&&M>0){if(W[R]==="(")M++;else if(W[R]===")")M--;R++}let V=W.slice(I+1,R-1).trim(),w=W.slice(R).match(/^\s*->\s*(.+?)\s*\{/),F=w?w[1].trim():null;U.push({name:D,params:V,returnType:F})}$.set(K,{name:K,constructorParams:J,methods:U})}return $}function dZ(Z){let $=[],X=0,Q="";for(let K of Z){if(K==="{"||K==="["||K==="(")X++;else if(K==="}"||K==="]"||K===")")X--;if(K===","&&X===0)$.push(Q.trim()),Q="";else Q+=K}if(Q.trim())$.push(Q.trim());return $}function H7(Z){if(!Z.trim())return"";return dZ(Z).map(($)=>{let X=$.match(/^(\w+)\s*:\s*(.+)$/);if(X){let K=X[1],H=y0(X[2].trim());return`${K}: ${H}`}let Q=$.match(/^(\w+)\s*=\s*(.+)$/);if(Q){let K=Q[1],H=y0(Q[2].trim());return`${K}?: ${H}`}if($.startsWith("{"))return"options: any";return`${$}: any`}).join(", ")}function mZ(Z){let $=new Map,X,Q=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*=\s*(.+)$/gm;while((X=Q.exec(Z))!==null)$.set(X[1],X[2].trim());let K=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s+([^{=].*)$/gm;while((X=K.exec(Z))!==null)if(!$.has(X[1]))$.set(X[1],X[2].trim());let H=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*\{[^}]*example\s*:\s*(.+?)(?:\n|\s*[,}])/gm;while((X=H.exec(Z))!==null)$.set(X[1],X[2].trim());return $}function lZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?Generic\s+(\w+)\s*<([^>]+)>\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let K=Q[1],H=Q[2].split(",").map((_)=>{return _.trim().split(/\s*=/)[0].trim()}),Y=Q.index+Q[0].length-1,z=1,W=Y+1;while(W<Z.length&&z>0){if(Z[W]==="{")z++;else if(Z[W]==="}")z--;W++}let G=Z.slice(Y+1,W-1),J,U=G.match(/\bdeclaration\s*\{/);if(U&&U.index!==void 0){let _=U.index+U[0].length-1,L=1,D=_+1;while(D<G.length&&L>0){if(G[D]==="{")L++;else if(G[D]==="}")L--;D++}J=G.slice(_+1,D-1).trim()}$.set(K,{typeParams:H,declaration:J})}return $}function iZ(Z,$,X={}){let Q=[],K=xZ($),H=mZ($),Y=uZ($),z=lZ($),W=K.size>0,G=new Set;for(let[J,U]of Object.entries(Z.types)){if(J.includes("$"))continue;let _=K.get(J),L=W?!!_?.exported:!0,D=_?.isDefault??!1;if(!L)continue;if(U.description)Q.push(`/** ${U.description} */`);Q.push(hZ(J,U,!0,D)),G.add(J)}for(let[J,U]of Y){if(G.has(J))continue;let _=K.get(J);if(!(W?!!_?.exported:!0))continue;let D=U.constructorParams?H7(U.constructorParams):"";if(Q.push(`export declare function ${J}(${D}): any;`),D||U.methods.length>0){if(Q.push(`export declare class ${J} {`),U.constructorParams)Q.push(` constructor(${D});`);for(let I of U.methods){let M=I.params?H7(I.params):"";Q.push(` ${I.name}(${M}): any;`)}Q.push("}")}G.add(J)}for(let[J,U]of H){if(G.has(J))continue;let _=K.get(J);if(!(W?!!_?.exported:!0))continue;let D=y0(U);Q.push(`export declare const ${J}: { check(value: any): boolean; default: ${D}; (value: any): boolean; };`),G.add(J)}for(let[J,U]of z){if(G.has(J))continue;let _=K.get(J);if(!(W?!!_?.exported:!0))continue;let D=U.typeParams.length>0?`<${U.typeParams.join(", ")}>`:"";if(U.declaration){let I=U.declaration.split(`
344
+ `).map((M)=>M.trim()).filter((M)=>M.length>0).map((M)=>` ${M}`).join(`
345
345
  `);Q.push(`export interface ${J}${D} {
346
- ${R}
347
- }`)}else Q.push(`export declare function ${J}(...args: any[]): { check(value: any): boolean; (value: any): boolean; };`);G.add(J)}if(X.moduleName){let J=Q.map((L)=>` ${L}`).join(`
346
+ ${I}
347
+ }`)}else Q.push(`export declare function ${J}(...args: any[]): { check(value: any): boolean; (value: any): boolean; };`);G.add(J)}if(X.moduleName){let J=Q.map((U)=>` ${U}`).join(`
348
348
  `);return`declare module '${X.moduleName}' {
349
349
  ${J}
350
350
  }
351
351
  `}return Q.join(`
352
352
  `)+`
353
- `}function y0(Z){let $=Z.trim();if(pZ($)){let X=nZ($).map((Q)=>y0(Q.trim()));return[...new Set(X)].join(" | ")}if(/^['"]/.test($))return"string";if($==="true"||$==="false")return"boolean";if($==="null")return"null";if($==="undefined")return"undefined";if(/^[+-]?\d+\.\d+$/.test($))return"number";if(/^[+-]?\d+$/.test($))return"number";if($.startsWith("["))return"any[]";if($.startsWith("{"))return"Record<string, any>";return"any"}function pZ(Z){let $=0,X=null;for(let Q of Z){if(X){if(Q===X)X=null;continue}if(Q==="'"||Q==='"'||Q==="`"){X=Q;continue}if(Q==="{"||Q==="["||Q==="(")$++;else if(Q==="}"||Q==="]"||Q===")")$--;else if(Q==="|"&&$===0)return!0}return!1}function nZ(Z){let $=[],X=0,Q=null,K="";for(let H of Z){if(Q){if(K+=H,H===Q)Q=null;continue}if(H==="'"||H==='"'||H==="`"){Q=H,K+=H;continue}if(H==="{"||H==="["||H==="(")X++;else if(H==="}"||H==="]"||H===")")X--;if(H==="|"&&X===0)$.push(K),K="";else K+=H}if(K)$.push(K);return $}import F from"typescript";import{validate as W7,s as X4}from"tosijs-schema";import{validate as f4,s as h0}from"tosijs-schema";function C1(Z){return Z!==null&&typeof Z==="object"&&"__runtimeType"in Z&&Z.__runtimeType===!0}function Y7(Z){return Z!==null&&typeof Z==="object"&&"schema"in Z&&typeof Z.schema==="object"}function cZ(Z){return Z!==null&&typeof Z==="object"&&"type"in Z&&typeof Z.type==="string"}function c(Z,$,X,Q){let K,H,Y,z=X,W=Q;if(typeof Z==="string")if(K=Z,typeof $==="function"){if(H=$,z!==void 0)Y=h0.infer(z)}else if($===void 0&&z!==void 0)Y=h0.infer(z);else if(Y7($))Y=$;else if(cZ($))Y=$;else if($!==void 0)z=$,W=z,Y=h0.infer(z);else throw Error("Type(description) requires a predicate, schema, or example");else{if(Y7(Z))Y=Z;else Y=Z;K=oZ(Y)}let G;if(Y){let L=Y?.schema??Y;if(L&&typeof L==="object"&&Array.isArray(L.examples))G=L.examples}if(z===void 0&&G&&G.length>0)z=G[0];return{description:K,check:(L)=>{if(H)return H(L);if(Y)return f4(L,Y);return!1},schema:Y,predicate:H,example:z,examples:G,default:W,__runtimeType:!0}}function oZ(Z){let $=Z?.schema??Z;if($&&typeof $==="object"&&"type"in $){let X=$;switch(X.type){case"string":if(X.format)return`string (${X.format})`;if(X.pattern)return`string matching ${X.pattern}`;if(X.minLength!==void 0&&X.maxLength!==void 0)return`string (${X.minLength}-${X.maxLength} chars)`;return"string";case"number":case"integer":if(X.minimum!==void 0&&X.maximum!==void 0)return`${X.type} (${X.minimum}-${X.maximum})`;if(X.minimum!==void 0)return`${X.type} >= ${X.minimum}`;if(X.maximum!==void 0)return`${X.type} <= ${X.maximum}`;return X.type;case"boolean":return"boolean";case"array":return"array";case"object":return"object";case"null":return"null"}}return"value"}var x0=c("string",(Z)=>typeof Z==="string"),u0=c("number",(Z)=>typeof Z==="number"),d0=c("boolean",(Z)=>typeof Z==="boolean"),m0=c("integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)),l0=c("positive integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)&&Z>0),i0=c("non-empty string",(Z)=>typeof Z==="string"&&Z.length>0),p0=c("email address",(Z)=>typeof Z==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(Z)),y4=(Z)=>{try{return new URL(Z),!0}catch{return!1}},n0=c("URL",(Z)=>typeof Z==="string"&&y4(Z)),c0=c("UUID",(Z)=>typeof Z==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(Z)),h4=(Z)=>{let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")},x4=(Z)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=new Date(Z+"T00:00:00Z");return!isNaN($.getTime())},u4=c("ISO 8601 timestamp",(Z)=>typeof Z==="string"&&h4(Z)),d4=c("date (YYYY-MM-DD)",(Z)=>typeof Z==="string"&&x4(Z));function o0(Z){return c(`${Z.description} or null`,($)=>$===null||Z.check($))}function s0(Z){return c(`${Z.description} (optional)`,($)=>$===null||$===void 0||Z.check($))}function a0(Z,$,...X){if(typeof Z==="string"&&Array.isArray($)){let H=Z,Y=$,z=new Set(Y);return{description:H,check:(G)=>z.has(G),__runtimeType:!0,values:Y}}let Q=[];if(C1(Z))Q.push(Z);if(C1($))Q.push($);Q.push(...X);let K=Q.map((H)=>H.description).join(" | ");return c(K,(H)=>Q.some((Y)=>Y.check(H)))}function r0(Z){return c(`array of ${Z.description}`,($)=>Array.isArray($)&&$.every((X)=>Z.check(X)))}function sZ(Z){if(C1(Z))return(X)=>Z.check(X);if(Z&&typeof Z==="object"&&"schema"in Z)return(X)=>f4(X,Z);let $=h0.infer(Z);return(X)=>f4(X,$)}function l1(Z,$,X){let Q=[],K=[];for(let Y of Z)if(typeof Y==="string")Q.push(Y),K.push(void 0);else Q.push(Y[0]),K.push(Y[1]);let H=(...Y)=>{let z=Q.map((G,J)=>{let L=J<Y.length?Y[J]:K[J];if(L===void 0)return()=>!0;return sZ(L)}),W=X;return Q.forEach((G,J)=>{let L=J<Y.length?Y[J]:K[J],_="any";if(C1(L))_=L.description;else if(L!==void 0)_=typeof L==="string"?"string":JSON.stringify(L);W=W.replace(new RegExp(`\\b${G}\\b`,"g"),_)}),c(W,(G)=>$(G,...z))};return H.params=Q,H.description=X,H}var t0=l1(["T","U"],(Z,$,X)=>Array.isArray(Z)&&Z.length===2&&$(Z[0])&&X(Z[1]),"Pair<T, U>"),e0=l1(["V"],(Z,$)=>typeof Z==="object"&&Z!==null&&!Array.isArray(Z)&&Object.values(Z).every($),"Record<string, V>");function Z4(Z,$){let X=Object.values($),Q=new Set(X),K=Object.keys($),H={};for(let[z,W]of Object.entries($))H[W]=z;return{description:Z,check:(z)=>Q.has(z),__runtimeType:!0,members:$,names:H,values:X,keys:K}}var rZ=z7(),$1=rZ.version,U0=Symbol.for("tjs.equals");function Q4(Z){let[$=0,X=0,Q=0]=Z.split(".").map(Number);return{major:$,minor:X,patch:Q}}function m4(Z,$){let X=Q4(Z),Q=Q4($);if(X.major!==Q.major)return X.major<Q.major?-1:1;if(X.minor!==Q.minor)return X.minor<Q.minor?-1:1;if(X.patch!==Q.patch)return X.patch<Q.patch?-1:1;return 0}function l4(Z,$){let X=Q4(Z),Q=Q4($);return X.major===Q.major}class f1 extends Error{path;expected;actual;callStack;constructor(Z,$,X,Q,K){super(Z);if(this.name="MonadicError",this.path=$,this.expected=X,this.actual=Q,this.callStack=K,Error.captureStackTrace)Error.captureStackTrace(this,f1)}}function tZ(Z,$,X){let Q=X===null?"null":typeof X,K=K1.debug?_7():void 0;return new f1(`Expected ${$} for '${Z}', got ${Q}`,Z,$,Q,K)}function G7(Z){return Z instanceof f1}var i4={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},K1={...i4},F1=[],p1=0;function eZ(){p1++}function Z5(){if(p1>0)p1--}function $5(){return p1>0}function X5(Z){K1={...K1,...Z}}function Q5(){return{...K1}}function J7(Z){if(K1.debug&&Z){F1.push(Z);let $=K1.maxStackSize??100;while(F1.length>$)F1.shift()}}function $4(){if(K1.debug)F1.pop()}function _7(){return[...F1]}function K5(){K1={...i4},F1.length=0,p1=0}function q0(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[U0]==="function")return Z[U0]($);if($!==null&&typeof $==="object"&&typeof $[U0]==="function")return $[U0](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((K,H)=>q0(K,$[H]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((K)=>q0(Z[K],$[K]))}function L7(Z,$){return!q0(Z,$)}function w1(Z){return Z!==null&&typeof Z==="object"&&Z.$error===!0}function R1(Z,$){let X={$error:!0,message:Z,...$};if(K1.debug&&F1.length>0){let Q=$?.path?[...F1,$.path]:[...F1];X.stack=Q}return X}function p4(Z,$){if(Z.length===0)return R1("Unknown error");if(Z.length===1)return Z[0];let X=Z.map((K)=>{if(K.path){let H=K.path.split(".");return H[H.length-1]}return"unknown"}).join(", "),Q=`Multiple parameter errors in ${$||"function"}: ${X}`;return R1(Q,{path:$,errors:Z})}function i1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";let $=typeof Z;if($!=="object")return $;let X=Z.constructor?.name;if(X&&X!=="Object")return X;return"object"}function U7(Z,$){if(Z===null||Z===void 0)return!1;if(typeof Z!=="object"&&typeof Z!=="function")return!1;let X=Z;while(X!==null){if(X.constructor?.name===$)return!0;X=Object.getPrototypeOf(X)}return!1}function v1(Z,$,X){if(w1(Z))return Z;if(typeof $==="object"&&$!==null&&"check"in $){if($.check(Z))return null;return R1(`Expected ${$.description} but got ${i1(Z)}`,{path:X,expected:$.description,actual:i1(Z)})}let Q=i1(Z);if($==="any")return null;if($===Q)return null;if($==="number"&&Q==="number")return null;if($==="integer"&&Q==="number"&&Number.isInteger(Z))return null;if($==="non-negative-integer"&&Q==="number"&&Number.isInteger(Z)&&Z>=0)return null;if($==="object"&&Q==="object")return null;return R1(`Expected ${$} but got ${Q}`,{path:X,expected:$,actual:Q})}function n4(Z,$,X){for(let[Q,K]of Object.entries($.params)){let H=Z[Q];if(w1(H))return H;if(K.required&&H===void 0){let z=typeof K.type==="string"?K.type:K.type.description;return R1(`Missing required parameter '${Q}'`,{path:X?`${X}.${Q}`:Q,expected:z,actual:"undefined",loc:K.loc})}if(H===void 0)continue;let Y=v1(H,K.type,X?`${X}.${Q}`:Q);if(Y){if(K.loc)Y.loc=K.loc;return Y}}return null}function c4(Z,$){if(Z.__tjs=$,!(!$.polymorphic&&($.safe||$.safeReturn||K1.safety!=="none"&&!$.unsafe||$.returns&&K1.safety==="all"&&!$.unsafeReturn)))return Z;let Q=!!$.returns,K=!!$.unsafe,H=!!$.safe,Y=!!$.unsafeReturn,z=!!$.safeReturn,W=$.returns?.defaults,G=Object.entries($.params),J=G.length,L=Z.name||$.name||"anonymous",_=function(...U){if(p1>0)return Z.apply(this,U);let D=H||!K&&K1.safety!=="none",R=Q&&(z||!Y&&K1.safety==="all");if(!D&&!R)return Z.apply(this,U);if(U.length>0&&w1(U[0]))return U[0];if(D){let w=U.length===1&&typeof U[0]==="object"&&U[0]!==null&&!Array.isArray(U[0]),B=[];if(!w)for(let V=0;V<J;V++){let[M,j]=G[V],I=U[V];if(w1(I)){B.push(I);continue}if(j.required&&I===void 0){B.push(R1(`Missing required parameter '${M}'`,{path:`${L}.${M}`,expected:typeof j.type==="string"?j.type:j.type?.description||"value",actual:"undefined",loc:j.loc}));continue}if(I!==void 0){let P=v1(I,j.type,`${L}.${M}`);if(P){if(j.loc)P.loc=j.loc;B.push(P)}}}else{let V=U[0];for(let M=0;M<J;M++){let[j,I]=G[M],P=V[j];if(w1(P)){B.push(P);continue}if(I.required&&P===void 0){B.push(R1(`Missing required parameter '${j}'`,{path:`${L}.${j}`,expected:typeof I.type==="string"?I.type:I.type?.description||"value",actual:"undefined",loc:I.loc}));continue}if(P!==void 0){let C=v1(P,I.type,`${L}.${j}`);if(C){if(I.loc)C.loc=I.loc;B.push(C)}}}}if(B.length>0)return p4(B,L)}J7(L);try{let w=Z.apply(this,U);if(R&&$.returns&&!w1(w)){let B=W&&typeof w==="object"&&w!==null?Object.assign({},W,w):w,V=v1(B,$.returns.type,`${L}()`);if(V)return $4(),V}return $4(),w}catch(w){return $4(),R1(w.message||String(w),{path:L,cause:w})}};return Object.defineProperty(_,"name",{value:Z.name}),_.__tjs=$,_}function q7(Z){let $=new Proxy(Z,{construct(X,Q,K){return Reflect.construct(X,Q,K)},apply(X,Q,K){return Reflect.construct(X,K)}});Object.defineProperty($,"name",{value:Z.name});for(let X of Object.getOwnPropertyNames(Z))if(X!=="length"&&X!=="name"&&X!=="prototype")Object.defineProperty($,X,Object.getOwnPropertyDescriptor(Z,X));return $}function H5(){let Z={...K1},$=[],X=0;function Q(B){Z={...Z,...B}}function K(){return{...Z}}function H(B){if(Z.debug&&B){$.push(B);let V=Z.maxStackSize??100;while($.length>V)$.shift()}}function Y(){if(Z.debug)$.pop()}function z(){return[...$]}function W(){Z={...i4},$.length=0,X=0}function G(){X++}function J(){if(X>0)X--}function L(){return X>0}let _=new Map;function U(B,V,M){if(!_.has(B))_.set(B,new Map);_.get(B).set(V,M)}function D(B,V){let M=typeof B,j;if(B===null||B===void 0)return;if(M==="string")j="String";else if(M==="number")j="Number";else if(M==="boolean")j="Boolean";else if(Array.isArray(B))j="Array";else if(M==="object")j=B.constructor?.name||"Object";else return;let I=j;while(I){let C=_.get(I);if(C?.has(V))return C.get(V);if(M==="object"&&!Array.isArray(B)){if(I=Object.getPrototypeOf(I===j?B:Object.getPrototypeOf(B))?.constructor?.name,I==="Object"||I===j)break}else break}let P=_.get("Object");if(P?.has(V))return P.get(V);return}function R(B,V,M){let j=M===null?"null":typeof M,I=Z.debug?z():void 0;return new f1(`Expected ${V} for '${B}', got ${j}`,B,V,j,I)}function w(B,V){let M={$error:!0,message:B,...V};if(Z.debug&&$.length>0){let j=V?.path?[...$,V.path]:[...$];M.stack=j}return M}return{version:$1,MonadicError:f1,typeError:R,isMonadicError:G7,isError:w1,error:w,composeErrors:p4,typeOf:i1,isNativeType:U7,checkType:v1,validateArgs:n4,wrap:c4,wrapClass:q7,compareVersions:m4,versionsCompatible:l4,configure:Q,getConfig:K,pushStack:H,popStack:Y,getStack:z,resetRuntime:W,enterUnsafe:G,exitUnsafe:J,isUnsafeMode:L,validate:W7,infer:X4.infer.bind(X4),Type:c,isRuntimeType:C1,Union:a0,Generic:l1,Enum:Z4,Nullable:o0,Optional:s0,TArray:r0,TString:x0,TNumber:u0,TBoolean:d0,TInteger:m0,TPositiveInt:l0,TNonEmptyString:i0,TEmail:p0,TUrl:n0,TUuid:c0,TPair:t0,TRecord:e0,Is:q0,IsNot:L7,tjsEquals:U0,registerExtension:U,resolveExtension:D}}var b1={version:$1,MonadicError:f1,typeError:tZ,isMonadicError:G7,isError:w1,error:R1,composeErrors:p4,typeOf:i1,isNativeType:U7,checkType:v1,validateArgs:n4,wrap:c4,wrapClass:q7,compareVersions:m4,versionsCompatible:l4,configure:X5,getConfig:Q5,pushStack:J7,popStack:$4,getStack:_7,resetRuntime:K5,enterUnsafe:eZ,exitUnsafe:Z5,isUnsafeMode:$5,createRuntime:H5,validate:W7,infer:X4.infer.bind(X4),Type:c,isRuntimeType:C1,Union:a0,Generic:l1,Enum:Z4,Nullable:o0,Optional:s0,TArray:r0,TString:x0,TNumber:u0,TBoolean:d0,TInteger:m0,TPositiveInt:l0,TNonEmptyString:i0,TEmail:p0,TUrl:n0,TUuid:c0,Timestamp:u4,LegalDate:d4,TPair:t0,TRecord:e0,Is:q0,IsNot:L7};function Y5(){let Z=globalThis;if(Z.__tjs){let $=Z.__tjs.version;if(typeof $!=="string")return Z.__tjs=b1,b1;let X=m4($1,$);if(X===0)return Z.__tjs;if(l4($1,$))if(X>0)console.info(`TJS runtime: upgrading ${$} → ${$1}`),Z.__tjs=b1;else console.info(`TJS runtime: keeping ${$} (newer than ${$1})`);else if(console.warn(`TJS runtime version conflict: ${$} vs ${$1} (major version mismatch)`),X>0)console.warn(`Upgrading to ${$1} - check for breaking changes`),Z.__tjs=b1;return Z.__tjs}return Z.__tjs=b1,b1}function z5(Z){return`
353
+ `}function y0(Z){let $=Z.trim();if(pZ($)){let X=nZ($).map((Q)=>y0(Q.trim()));return[...new Set(X)].join(" | ")}if(/^['"]/.test($))return"string";if($==="true"||$==="false")return"boolean";if($==="null")return"null";if($==="undefined")return"undefined";if(/^[+-]?\d+\.\d+$/.test($))return"number";if(/^[+-]?\d+$/.test($))return"number";if($.startsWith("["))return"any[]";if($.startsWith("{"))return"Record<string, any>";return"any"}function pZ(Z){let $=0,X=null;for(let Q of Z){if(X){if(Q===X)X=null;continue}if(Q==="'"||Q==='"'||Q==="`"){X=Q;continue}if(Q==="{"||Q==="["||Q==="(")$++;else if(Q==="}"||Q==="]"||Q===")")$--;else if(Q==="|"&&$===0)return!0}return!1}function nZ(Z){let $=[],X=0,Q=null,K="";for(let H of Z){if(Q){if(K+=H,H===Q)Q=null;continue}if(H==="'"||H==='"'||H==="`"){Q=H,K+=H;continue}if(H==="{"||H==="["||H==="(")X++;else if(H==="}"||H==="]"||H===")")X--;if(H==="|"&&X===0)$.push(K),K="";else K+=H}if(K)$.push(K);return $}import j from"typescript";import{validate as W7,s as X4}from"tosijs-schema";import{validate as f4,s as h0}from"tosijs-schema";function C1(Z){return Z!==null&&typeof Z==="object"&&"__runtimeType"in Z&&Z.__runtimeType===!0}function Y7(Z){return Z!==null&&typeof Z==="object"&&"schema"in Z&&typeof Z.schema==="object"}function cZ(Z){return Z!==null&&typeof Z==="object"&&"type"in Z&&typeof Z.type==="string"}function c(Z,$,X,Q){let K,H,Y,z=X,W=Q;if(typeof Z==="string")if(K=Z,typeof $==="function"){if(H=$,z!==void 0)Y=h0.infer(z)}else if($===void 0&&z!==void 0)Y=h0.infer(z);else if(Y7($))Y=$;else if(cZ($))Y=$;else if($!==void 0)z=$,W=z,Y=h0.infer(z);else throw Error("Type(description) requires a predicate, schema, or example");else{if(Y7(Z))Y=Z;else Y=Z;K=oZ(Y)}let G;if(Y){let U=Y?.schema??Y;if(U&&typeof U==="object"&&Array.isArray(U.examples))G=U.examples}if(z===void 0&&G&&G.length>0)z=G[0];return{description:K,check:(U)=>{if(H)return H(U);if(Y)return f4(U,Y);return!1},schema:Y,predicate:H,example:z,examples:G,default:W,__runtimeType:!0}}function oZ(Z){let $=Z?.schema??Z;if($&&typeof $==="object"&&"type"in $){let X=$;switch(X.type){case"string":if(X.format)return`string (${X.format})`;if(X.pattern)return`string matching ${X.pattern}`;if(X.minLength!==void 0&&X.maxLength!==void 0)return`string (${X.minLength}-${X.maxLength} chars)`;return"string";case"number":case"integer":if(X.minimum!==void 0&&X.maximum!==void 0)return`${X.type} (${X.minimum}-${X.maximum})`;if(X.minimum!==void 0)return`${X.type} >= ${X.minimum}`;if(X.maximum!==void 0)return`${X.type} <= ${X.maximum}`;return X.type;case"boolean":return"boolean";case"array":return"array";case"object":return"object";case"null":return"null"}}return"value"}var x0=c("string",(Z)=>typeof Z==="string"),u0=c("number",(Z)=>typeof Z==="number"),d0=c("boolean",(Z)=>typeof Z==="boolean"),m0=c("integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)),l0=c("positive integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)&&Z>0),i0=c("non-empty string",(Z)=>typeof Z==="string"&&Z.length>0),p0=c("email address",(Z)=>typeof Z==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(Z)),y4=(Z)=>{try{return new URL(Z),!0}catch{return!1}},n0=c("URL",(Z)=>typeof Z==="string"&&y4(Z)),c0=c("UUID",(Z)=>typeof Z==="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(Z)),h4=(Z)=>{let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")},x4=(Z)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=new Date(Z+"T00:00:00Z");return!isNaN($.getTime())},u4=c("ISO 8601 timestamp",(Z)=>typeof Z==="string"&&h4(Z)),d4=c("date (YYYY-MM-DD)",(Z)=>typeof Z==="string"&&x4(Z));function o0(Z){return c(`${Z.description} or null`,($)=>$===null||Z.check($))}function s0(Z){return c(`${Z.description} (optional)`,($)=>$===null||$===void 0||Z.check($))}function a0(Z,$,...X){if(typeof Z==="string"&&Array.isArray($)){let H=Z,Y=$,z=new Set(Y);return{description:H,check:(G)=>z.has(G),__runtimeType:!0,values:Y}}let Q=[];if(C1(Z))Q.push(Z);if(C1($))Q.push($);Q.push(...X);let K=Q.map((H)=>H.description).join(" | ");return c(K,(H)=>Q.some((Y)=>Y.check(H)))}function r0(Z){return c(`array of ${Z.description}`,($)=>Array.isArray($)&&$.every((X)=>Z.check(X)))}function sZ(Z){if(C1(Z))return(X)=>Z.check(X);if(Z&&typeof Z==="object"&&"schema"in Z)return(X)=>f4(X,Z);let $=h0.infer(Z);return(X)=>f4(X,$)}function l1(Z,$,X){let Q=[],K=[];for(let Y of Z)if(typeof Y==="string")Q.push(Y),K.push(void 0);else Q.push(Y[0]),K.push(Y[1]);let H=(...Y)=>{let z=Q.map((G,J)=>{let U=J<Y.length?Y[J]:K[J];if(U===void 0)return()=>!0;return sZ(U)}),W=X;return Q.forEach((G,J)=>{let U=J<Y.length?Y[J]:K[J],_="any";if(C1(U))_=U.description;else if(U!==void 0)_=typeof U==="string"?"string":JSON.stringify(U);W=W.replace(new RegExp(`\\b${G}\\b`,"g"),_)}),c(W,(G)=>$(G,...z))};return H.params=Q,H.description=X,H}var t0=l1(["T","U"],(Z,$,X)=>Array.isArray(Z)&&Z.length===2&&$(Z[0])&&X(Z[1]),"Pair<T, U>"),e0=l1(["V"],(Z,$)=>typeof Z==="object"&&Z!==null&&!Array.isArray(Z)&&Object.values(Z).every($),"Record<string, V>");function Z4(Z,$){let X=Object.values($),Q=new Set(X),K=Object.keys($),H={};for(let[z,W]of Object.entries($))H[W]=z;return{description:Z,check:(z)=>Q.has(z),__runtimeType:!0,members:$,names:H,values:X,keys:K}}var rZ=z7(),$1=rZ.version,U0=Symbol.for("tjs.equals");function Q4(Z){let[$=0,X=0,Q=0]=Z.split(".").map(Number);return{major:$,minor:X,patch:Q}}function m4(Z,$){let X=Q4(Z),Q=Q4($);if(X.major!==Q.major)return X.major<Q.major?-1:1;if(X.minor!==Q.minor)return X.minor<Q.minor?-1:1;if(X.patch!==Q.patch)return X.patch<Q.patch?-1:1;return 0}function l4(Z,$){let X=Q4(Z),Q=Q4($);return X.major===Q.major}class f1 extends Error{path;expected;actual;callStack;constructor(Z,$,X,Q,K){super(Z);if(this.name="MonadicError",this.path=$,this.expected=X,this.actual=Q,this.callStack=K,Error.captureStackTrace)Error.captureStackTrace(this,f1)}}function tZ(Z,$,X){let Q=X===null?"null":typeof X,K=K1.debug?_7():void 0;return new f1(`Expected ${$} for '${Z}', got ${Q}`,Z,$,Q,K)}function G7(Z){return Z instanceof f1}var i4={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},K1={...i4},F1=[],p1=0;function eZ(){p1++}function Z5(){if(p1>0)p1--}function $5(){return p1>0}function X5(Z){K1={...K1,...Z}}function Q5(){return{...K1}}function J7(Z){if(K1.debug&&Z){F1.push(Z);let $=K1.maxStackSize??100;while(F1.length>$)F1.shift()}}function $4(){if(K1.debug)F1.pop()}function _7(){return[...F1]}function K5(){K1={...i4},F1.length=0,p1=0}function q0(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[U0]==="function")return Z[U0]($);if($!==null&&typeof $==="object"&&typeof $[U0]==="function")return $[U0](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((K,H)=>q0(K,$[H]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((K)=>q0(Z[K],$[K]))}function L7(Z,$){return!q0(Z,$)}function w1(Z){return Z!==null&&typeof Z==="object"&&Z.$error===!0}function R1(Z,$){let X={$error:!0,message:Z,...$};if(K1.debug&&F1.length>0){let Q=$?.path?[...F1,$.path]:[...F1];X.stack=Q}return X}function p4(Z,$){if(Z.length===0)return R1("Unknown error");if(Z.length===1)return Z[0];let X=Z.map((K)=>{if(K.path){let H=K.path.split(".");return H[H.length-1]}return"unknown"}).join(", "),Q=`Multiple parameter errors in ${$||"function"}: ${X}`;return R1(Q,{path:$,errors:Z})}function i1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";let $=typeof Z;if($!=="object")return $;let X=Z.constructor?.name;if(X&&X!=="Object")return X;return"object"}function U7(Z,$){if(Z===null||Z===void 0)return!1;if(typeof Z!=="object"&&typeof Z!=="function")return!1;let X=Z;while(X!==null){if(X.constructor?.name===$)return!0;X=Object.getPrototypeOf(X)}return!1}function v1(Z,$,X){if(w1(Z))return Z;if(typeof $==="object"&&$!==null&&"check"in $){if($.check(Z))return null;return R1(`Expected ${$.description} but got ${i1(Z)}`,{path:X,expected:$.description,actual:i1(Z)})}let Q=i1(Z);if($==="any")return null;if($===Q)return null;if($==="number"&&Q==="number")return null;if($==="integer"&&Q==="number"&&Number.isInteger(Z))return null;if($==="non-negative-integer"&&Q==="number"&&Number.isInteger(Z)&&Z>=0)return null;if($==="object"&&Q==="object")return null;return R1(`Expected ${$} but got ${Q}`,{path:X,expected:$,actual:Q})}function n4(Z,$,X){for(let[Q,K]of Object.entries($.params)){let H=Z[Q];if(w1(H))return H;if(K.required&&H===void 0){let z=typeof K.type==="string"?K.type:K.type.description;return R1(`Missing required parameter '${Q}'`,{path:X?`${X}.${Q}`:Q,expected:z,actual:"undefined",loc:K.loc})}if(H===void 0)continue;let Y=v1(H,K.type,X?`${X}.${Q}`:Q);if(Y){if(K.loc)Y.loc=K.loc;return Y}}return null}function c4(Z,$){if(Z.__tjs=$,!(!$.polymorphic&&($.safe||$.safeReturn||K1.safety!=="none"&&!$.unsafe||$.returns&&K1.safety==="all"&&!$.unsafeReturn)))return Z;let Q=!!$.returns,K=!!$.unsafe,H=!!$.safe,Y=!!$.unsafeReturn,z=!!$.safeReturn,W=$.returns?.defaults,G=Object.entries($.params),J=G.length,U=Z.name||$.name||"anonymous",_=function(...L){if(p1>0)return Z.apply(this,L);let D=H||!K&&K1.safety!=="none",I=Q&&(z||!Y&&K1.safety==="all");if(!D&&!I)return Z.apply(this,L);if(L.length>0&&w1(L[0]))return L[0];if(D){let M=L.length===1&&typeof L[0]==="object"&&L[0]!==null&&!Array.isArray(L[0]),R=[];if(!M)for(let V=0;V<J;V++){let[w,F]=G[V],B=L[V];if(w1(B)){R.push(B);continue}if(F.required&&B===void 0){R.push(R1(`Missing required parameter '${w}'`,{path:`${U}.${w}`,expected:typeof F.type==="string"?F.type:F.type?.description||"value",actual:"undefined",loc:F.loc}));continue}if(B!==void 0){let P=v1(B,F.type,`${U}.${w}`);if(P){if(F.loc)P.loc=F.loc;R.push(P)}}}else{let V=L[0];for(let w=0;w<J;w++){let[F,B]=G[w],P=V[F];if(w1(P)){R.push(P);continue}if(B.required&&P===void 0){R.push(R1(`Missing required parameter '${F}'`,{path:`${U}.${F}`,expected:typeof B.type==="string"?B.type:B.type?.description||"value",actual:"undefined",loc:B.loc}));continue}if(P!==void 0){let C=v1(P,B.type,`${U}.${F}`);if(C){if(B.loc)C.loc=B.loc;R.push(C)}}}}if(R.length>0)return p4(R,U)}J7(U);try{let M=Z.apply(this,L);if(I&&$.returns&&!w1(M)){let R=W&&typeof M==="object"&&M!==null?Object.assign({},W,M):M,V=v1(R,$.returns.type,`${U}()`);if(V)return $4(),V}return $4(),M}catch(M){return $4(),R1(M.message||String(M),{path:U,cause:M})}};return Object.defineProperty(_,"name",{value:Z.name}),_.__tjs=$,_}function q7(Z){let $=new Proxy(Z,{construct(X,Q,K){return Reflect.construct(X,Q,K)},apply(X,Q,K){return Reflect.construct(X,K)}});Object.defineProperty($,"name",{value:Z.name});for(let X of Object.getOwnPropertyNames(Z))if(X!=="length"&&X!=="name"&&X!=="prototype")Object.defineProperty($,X,Object.getOwnPropertyDescriptor(Z,X));return $}function H5(){let Z={...K1},$=[],X=0;function Q(R){Z={...Z,...R}}function K(){return{...Z}}function H(R){if(Z.debug&&R){$.push(R);let V=Z.maxStackSize??100;while($.length>V)$.shift()}}function Y(){if(Z.debug)$.pop()}function z(){return[...$]}function W(){Z={...i4},$.length=0,X=0}function G(){X++}function J(){if(X>0)X--}function U(){return X>0}let _=new Map;function L(R,V,w){if(!_.has(R))_.set(R,new Map);_.get(R).set(V,w)}function D(R,V){let w=typeof R,F;if(R===null||R===void 0)return;if(w==="string")F="String";else if(w==="number")F="Number";else if(w==="boolean")F="Boolean";else if(Array.isArray(R))F="Array";else if(w==="object")F=R.constructor?.name||"Object";else return;let B=F;while(B){let C=_.get(B);if(C?.has(V))return C.get(V);if(w==="object"&&!Array.isArray(R)){if(B=Object.getPrototypeOf(B===F?R:Object.getPrototypeOf(R))?.constructor?.name,B==="Object"||B===F)break}else break}let P=_.get("Object");if(P?.has(V))return P.get(V);return}function I(R,V,w){let F=w===null?"null":typeof w,B=Z.debug?z():void 0;return new f1(`Expected ${V} for '${R}', got ${F}`,R,V,F,B)}function M(R,V){let w={$error:!0,message:R,...V};if(Z.debug&&$.length>0){let F=V?.path?[...$,V.path]:[...$];w.stack=F}return w}return{version:$1,MonadicError:f1,typeError:I,isMonadicError:G7,isError:w1,error:M,composeErrors:p4,typeOf:i1,isNativeType:U7,checkType:v1,validateArgs:n4,wrap:c4,wrapClass:q7,compareVersions:m4,versionsCompatible:l4,configure:Q,getConfig:K,pushStack:H,popStack:Y,getStack:z,resetRuntime:W,enterUnsafe:G,exitUnsafe:J,isUnsafeMode:U,validate:W7,infer:X4.infer.bind(X4),Type:c,isRuntimeType:C1,Union:a0,Generic:l1,Enum:Z4,Nullable:o0,Optional:s0,TArray:r0,TString:x0,TNumber:u0,TBoolean:d0,TInteger:m0,TPositiveInt:l0,TNonEmptyString:i0,TEmail:p0,TUrl:n0,TUuid:c0,TPair:t0,TRecord:e0,Is:q0,IsNot:L7,tjsEquals:U0,registerExtension:L,resolveExtension:D}}var b1={version:$1,MonadicError:f1,typeError:tZ,isMonadicError:G7,isError:w1,error:R1,composeErrors:p4,typeOf:i1,isNativeType:U7,checkType:v1,validateArgs:n4,wrap:c4,wrapClass:q7,compareVersions:m4,versionsCompatible:l4,configure:X5,getConfig:Q5,pushStack:J7,popStack:$4,getStack:_7,resetRuntime:K5,enterUnsafe:eZ,exitUnsafe:Z5,isUnsafeMode:$5,createRuntime:H5,validate:W7,infer:X4.infer.bind(X4),Type:c,isRuntimeType:C1,Union:a0,Generic:l1,Enum:Z4,Nullable:o0,Optional:s0,TArray:r0,TString:x0,TNumber:u0,TBoolean:d0,TInteger:m0,TPositiveInt:l0,TNonEmptyString:i0,TEmail:p0,TUrl:n0,TUuid:c0,Timestamp:u4,LegalDate:d4,TPair:t0,TRecord:e0,Is:q0,IsNot:L7};function Y5(){let Z=globalThis;if(Z.__tjs){let $=Z.__tjs.version;if(typeof $!=="string")return Z.__tjs=b1,b1;let X=m4($1,$);if(X===0)return Z.__tjs;if(l4($1,$))if(X>0)console.info(`TJS runtime: upgrading ${$} → ${$1}`),Z.__tjs=b1;else console.info(`TJS runtime: keeping ${$} (newer than ${$1})`);else if(console.warn(`TJS runtime version conflict: ${$} vs ${$1} (major version mismatch)`),X>0)console.warn(`Upgrading to ${$1} - check for breaking changes`),Z.__tjs=b1;return Z.__tjs}return Z.__tjs=b1,b1}function z5(Z){return`
354
354
  // TJS runtime wrapper (skips unsafe functions)
355
355
  if (typeof ${Z}.__tjs === 'object' && !${Z}.__tjs.unsafe && typeof globalThis.__tjs?.wrap === 'function') {
356
356
  ${Z} = globalThis.__tjs.wrap(${Z}, ${Z}.__tjs)
@@ -358,12 +358,12 @@ if (typeof ${Z}.__tjs === 'object' && !${Z}.__tjs.unsafe && typeof globalThis.__
358
358
  `.trim()}function D7(Z){return`
359
359
  // TJS: callable without new
360
360
  ${Z} = new Proxy(${Z}, { apply(t, _, a) { return Reflect.construct(t, a) } });
361
- `.trim()}function x(Z,$,X,Q){if(!Z)return"undefined";switch(Z.kind){case F.SyntaxKind.StringKeyword:return"''";case F.SyntaxKind.NumberKeyword:return"0.0";case F.SyntaxKind.BooleanKeyword:return"false";case F.SyntaxKind.NullKeyword:return"null";case F.SyntaxKind.UndefinedKeyword:return"undefined";case F.SyntaxKind.VoidKeyword:return"undefined";case F.SyntaxKind.AnyKeyword:return"any";case F.SyntaxKind.UnknownKeyword:return"any";case F.SyntaxKind.NeverKeyword:return"null";case F.SyntaxKind.ArrayType:{let H=x(Z.elementType,$);if(H==="any")H="null";return`[${H}]`}case F.SyntaxKind.TypeReference:{let K=Z,H=K.typeName.getText();if(H==="Array"&&K.typeArguments?.length)return`[${x(K.typeArguments[0],$,X,Q)}]`;if(H==="Promise"){if(K.typeArguments?.length)return x(K.typeArguments[0],$,X,Q);return"undefined"}if(H==="Generator"||H==="AsyncGenerator"||H==="IterableIterator"||H==="AsyncIterableIterator"){if(K.typeArguments?.length)return x(K.typeArguments[0],$,X,Q);return"undefined"}if(H==="Record")return"{}";if(H==="Map")return"new Map()";if(H==="Set")return"new Set()";if(Q?.typeAliases?.has(H)){let Y=Q.visited??new Set;if(Y.has(H))return X?.push(`Circular type reference '${H}' - using 'any'`),"any";Y.add(H);let z=Q.typeAliases.get(H);return x(z,$,X,{...Q,visited:Y})}if(Q?.interfaces?.has(H)){let Y=Q.visited??new Set;if(Y.has(H))return X?.push(`Circular type reference '${H}' - using 'any'`),"any";Y.add(H);let z=Q.interfaces.get(H),W=[];for(let G of z.members)if(F.isPropertySignature(G)&&G.name){let J=G.name.getText(Q.sourceFile),L=x(G.type,$,X,{...Q,visited:Y});W.push(`${J}: ${L}`)}return`{ ${W.join(", ")} }`}if(Q?.typeParams?.has(H)){let Y=Q.typeParams.get(H);if(Y.constraint)return x(Y.constraint,$,X,Q);if(Y.default)return x(Y.default,$,X,Q)}if(/^[A-Z]$/.test(H)||["T","K","V","U","TKey","TValue","TItem","TResult"].includes(H))return X?.push(`Generic type parameter '${H}' converted to 'any' - consider specializing`),"any";return X?.push(`Unknown type '${H}' converted to 'any' - may need manual review`),"any"}case F.SyntaxKind.TypeLiteral:{let K=Z,H=[];for(let Y of K.members)if(F.isPropertySignature(Y)&&Y.name){let z=Y.name.getText(),W=x(Y.type,$);if(W==="any")W="null";H.push(`${z}: ${W}`)}return`{ ${H.join(", ")} }`}case F.SyntaxKind.UnionType:{let K=Z,H=(J)=>J.kind===F.SyntaxKind.NullKeyword||F.isLiteralTypeNode(J)&&J.literal.kind===F.SyntaxKind.NullKeyword,Y=(J)=>J.kind===F.SyntaxKind.UndefinedKeyword||F.isLiteralTypeNode(J)&&J.literal.kind===F.SyntaxKind.UndefinedKeyword,z=K.types.filter((J)=>!H(J)&&!Y(J)),W=K.types.some(H),G=K.types.some(Y);if(z.length===1&&(W||G)){let J=x(z[0],$);if(W)return`${J} | null`;if(G)return`${J} | undefined`}if(K.types.length>0)return x(K.types[0],$);return"undefined"}case F.SyntaxKind.LiteralType:{let K=Z;if(F.isStringLiteral(K.literal))return`'${K.literal.text}'`;if(F.isNumericLiteral(K.literal))return K.literal.text;if(K.literal.kind===F.SyntaxKind.TrueKeyword)return"true";if(K.literal.kind===F.SyntaxKind.FalseKeyword)return"false";if(K.literal.kind===F.SyntaxKind.NullKeyword)return"null";return"undefined"}case F.SyntaxKind.ParenthesizedType:return x(Z.type,$);case F.SyntaxKind.FunctionType:return"undefined";case F.SyntaxKind.TupleType:return`[${Z.elements.map((Y)=>{if(F.isNamedTupleMember(Y))return x(Y.type,$);return x(Y,$)}).join(", ")}]`;default:return"undefined"}}function p(Z,$){if(!Z)return{kind:"any"};switch(Z.kind){case F.SyntaxKind.StringKeyword:return{kind:"string"};case F.SyntaxKind.NumberKeyword:return{kind:"number"};case F.SyntaxKind.BooleanKeyword:return{kind:"boolean"};case F.SyntaxKind.NullKeyword:return{kind:"null"};case F.SyntaxKind.UndefinedKeyword:case F.SyntaxKind.VoidKeyword:return{kind:"undefined"};case F.SyntaxKind.ArrayType:return{kind:"array",items:p(Z.elementType,$)};case F.SyntaxKind.TypeLiteral:{let X=Z,Q={};for(let K of X.members)if(F.isPropertySignature(K)&&K.name){let H=K.name.getText();Q[H]=p(K.type,$)}return{kind:"object",shape:Q}}case F.SyntaxKind.UnionType:{let X=Z,Q=X.types.filter((H)=>H.kind!==F.SyntaxKind.NullKeyword&&H.kind!==F.SyntaxKind.UndefinedKeyword),K=X.types.some((H)=>H.kind===F.SyntaxKind.NullKeyword);if(Q.length===1&&K)return{...p(Q[0],$),nullable:!0};return{kind:"union",members:X.types.map((H)=>p(H,$))}}case F.SyntaxKind.IntersectionType:{let X=Z,Q={};for(let K of X.types){let H=p(K,$);if(H.kind==="object"&&H.shape)Object.assign(Q,H.shape)}if(Object.keys(Q).length>0)return{kind:"object",shape:Q};return{kind:"any"}}case F.SyntaxKind.TupleType:{let X=Z,Q=[];for(let K of X.elements)if(F.isNamedTupleMember(K))Q.push(p(K.type,$));else Q.push(p(K,$));return{kind:"tuple",elements:Q}}case F.SyntaxKind.TypeReference:{let X=Z,Q=X.typeName.getText();if(Q==="Array"&&X.typeArguments?.length)return{kind:"array",items:p(X.typeArguments[0],$)};if(Q==="Promise"&&X.typeArguments?.length)return p(X.typeArguments[0],$);if((Q==="Generator"||Q==="AsyncGenerator"||Q==="IterableIterator"||Q==="AsyncIterableIterator")&&X.typeArguments?.length)return p(X.typeArguments[0],$);if(X.typeArguments?.length){let K=p(X.typeArguments[0],$);if(Q==="Partial")return K;if(Q==="Required")return K;if(Q==="Readonly")return K;if(Q==="Record"&&X.typeArguments.length>=2)return{kind:"object",shape:{"[key]":p(X.typeArguments[1],$)}};if(Q==="Pick"||Q==="Omit")return K;if(Q==="NonNullable"){if(K.nullable)return{...K,nullable:!1};return K}if(["ReturnType","Parameters","ConstructorParameters"].includes(Q))return{kind:"any"}}if($?.typeAliases?.has(Q)){let K=$.visited??new Set;if(K.has(Q))return{kind:"any"};K.add(Q);let H=$.typeAliases.get(Q);return p(H,{...$,visited:K})}if($?.interfaces?.has(Q)){let K=$.visited??new Set;if(K.has(Q))return{kind:"any"};K.add(Q);let H=$.interfaces.get(Q),Y={};if(H.heritageClauses){for(let z of H.heritageClauses)if(z.token===F.SyntaxKind.ExtendsKeyword)for(let W of z.types){let G=W.expression.getText($.sourceFile);if($.interfaces?.has(G)&&!K.has(G)){let J={kind:F.SyntaxKind.TypeReference,typeName:{getText:()=>G}},L=p(J,{...$,visited:K});if(L.kind==="object"&&L.shape)Object.assign(Y,L.shape)}}}for(let z of H.members)if(F.isPropertySignature(z)&&z.name){let W=z.name.getText($.sourceFile);Y[W]=p(z.type,{...$,visited:K})}return{kind:"object",shape:Y}}if($?.typeParams?.has(Q)){let K=$.typeParams.get(Q);if(K.constraint)return p(K.constraint,$);if(K.default)return p(K.default,$)}return{kind:"any"}}default:return{kind:"any"}}}function W5(Z,$){if(!Z.typeParameters||Z.typeParameters.length===0)return;let X={};for(let Q of Z.typeParameters){let K=Q.name.getText(),H={};if(Q.constraint){let Y=x(Q.constraint,void 0,$);if(Y.startsWith("{"))try{H.constraint=Y}catch{H.constraint=Y}else H.constraint=Y}if(Q.default){let Y=x(Q.default,void 0,$);H.default=Y}X[K]=H}return Object.keys(X).length>0?X:void 0}function G5(Z,$,X){let Q=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return J5(Z,$,X);let K=[];for(let H of Z.members)if(F.isPropertySignature(H)&&H.name){let Y=H.name.getText($),z=x(H.type,void 0,X);if(z==="any")z="null";K.push(`${Y}: ${z}`)}if(K.length===0)return`Type ${Q} {}`;return`Type ${Q} {
361
+ `.trim()}function x(Z,$,X,Q){if(!Z)return"undefined";switch(Z.kind){case j.SyntaxKind.StringKeyword:return"''";case j.SyntaxKind.NumberKeyword:return"0.0";case j.SyntaxKind.BooleanKeyword:return"false";case j.SyntaxKind.NullKeyword:return"null";case j.SyntaxKind.UndefinedKeyword:return"undefined";case j.SyntaxKind.VoidKeyword:return"undefined";case j.SyntaxKind.AnyKeyword:return"any";case j.SyntaxKind.UnknownKeyword:return"any";case j.SyntaxKind.NeverKeyword:return"null";case j.SyntaxKind.ArrayType:{let H=x(Z.elementType,$);if(H==="any")H="null";return`[${H}]`}case j.SyntaxKind.TypeReference:{let K=Z,H=K.typeName.getText();if(H==="Array"&&K.typeArguments?.length)return`[${x(K.typeArguments[0],$,X,Q)}]`;if(H==="Promise"){if(K.typeArguments?.length)return x(K.typeArguments[0],$,X,Q);return"undefined"}if(H==="Generator"||H==="AsyncGenerator"||H==="IterableIterator"||H==="AsyncIterableIterator"){if(K.typeArguments?.length)return x(K.typeArguments[0],$,X,Q);return"undefined"}if(H==="Record")return"{}";if(H==="Map")return"new Map()";if(H==="Set")return"new Set()";if(Q?.typeAliases?.has(H)){let Y=Q.visited??new Set;if(Y.has(H))return X?.push(`Circular type reference '${H}' - using 'any'`),"any";Y.add(H);let z=Q.typeAliases.get(H);return x(z,$,X,{...Q,visited:Y})}if(Q?.interfaces?.has(H)){let Y=Q.visited??new Set;if(Y.has(H))return X?.push(`Circular type reference '${H}' - using 'any'`),"any";Y.add(H);let z=Q.interfaces.get(H),W=[];for(let G of z.members)if(j.isPropertySignature(G)&&G.name){let J=G.name.getText(Q.sourceFile),U=x(G.type,$,X,{...Q,visited:Y});W.push(`${J}: ${U}`)}return`{ ${W.join(", ")} }`}if(Q?.typeParams?.has(H)){let Y=Q.typeParams.get(H);if(Y.constraint)return x(Y.constraint,$,X,Q);if(Y.default)return x(Y.default,$,X,Q)}if(/^[A-Z]$/.test(H)||["T","K","V","U","TKey","TValue","TItem","TResult"].includes(H))return X?.push(`Generic type parameter '${H}' converted to 'any' - consider specializing`),"any";return X?.push(`Unknown type '${H}' converted to 'any' - may need manual review`),"any"}case j.SyntaxKind.TypeLiteral:{let K=Z,H=[];for(let Y of K.members)if(j.isPropertySignature(Y)&&Y.name){let z=Y.name.getText(),W=x(Y.type,$);if(W==="any")W="null";H.push(`${z}: ${W}`)}return`{ ${H.join(", ")} }`}case j.SyntaxKind.UnionType:{let K=Z,H=(J)=>J.kind===j.SyntaxKind.NullKeyword||j.isLiteralTypeNode(J)&&J.literal.kind===j.SyntaxKind.NullKeyword,Y=(J)=>J.kind===j.SyntaxKind.UndefinedKeyword||j.isLiteralTypeNode(J)&&J.literal.kind===j.SyntaxKind.UndefinedKeyword,z=K.types.filter((J)=>!H(J)&&!Y(J)),W=K.types.some(H),G=K.types.some(Y);if(z.length===1&&(W||G)){let J=x(z[0],$);if(W)return`${J} | null`;if(G)return`${J} | undefined`}if(K.types.length>0)return x(K.types[0],$);return"undefined"}case j.SyntaxKind.LiteralType:{let K=Z;if(j.isStringLiteral(K.literal))return`'${K.literal.text}'`;if(j.isNumericLiteral(K.literal))return K.literal.text;if(K.literal.kind===j.SyntaxKind.TrueKeyword)return"true";if(K.literal.kind===j.SyntaxKind.FalseKeyword)return"false";if(K.literal.kind===j.SyntaxKind.NullKeyword)return"null";return"undefined"}case j.SyntaxKind.ParenthesizedType:return x(Z.type,$);case j.SyntaxKind.FunctionType:return"undefined";case j.SyntaxKind.TupleType:return`[${Z.elements.map((Y)=>{if(j.isNamedTupleMember(Y))return x(Y.type,$);return x(Y,$)}).join(", ")}]`;default:return"undefined"}}function p(Z,$){if(!Z)return{kind:"any"};switch(Z.kind){case j.SyntaxKind.StringKeyword:return{kind:"string"};case j.SyntaxKind.NumberKeyword:return{kind:"number"};case j.SyntaxKind.BooleanKeyword:return{kind:"boolean"};case j.SyntaxKind.NullKeyword:return{kind:"null"};case j.SyntaxKind.UndefinedKeyword:case j.SyntaxKind.VoidKeyword:return{kind:"undefined"};case j.SyntaxKind.ArrayType:return{kind:"array",items:p(Z.elementType,$)};case j.SyntaxKind.TypeLiteral:{let X=Z,Q={};for(let K of X.members)if(j.isPropertySignature(K)&&K.name){let H=K.name.getText();Q[H]=p(K.type,$)}return{kind:"object",shape:Q}}case j.SyntaxKind.UnionType:{let X=Z,Q=X.types.filter((H)=>H.kind!==j.SyntaxKind.NullKeyword&&H.kind!==j.SyntaxKind.UndefinedKeyword),K=X.types.some((H)=>H.kind===j.SyntaxKind.NullKeyword);if(Q.length===1&&K)return{...p(Q[0],$),nullable:!0};return{kind:"union",members:X.types.map((H)=>p(H,$))}}case j.SyntaxKind.IntersectionType:{let X=Z,Q={};for(let K of X.types){let H=p(K,$);if(H.kind==="object"&&H.shape)Object.assign(Q,H.shape)}if(Object.keys(Q).length>0)return{kind:"object",shape:Q};return{kind:"any"}}case j.SyntaxKind.TupleType:{let X=Z,Q=[];for(let K of X.elements)if(j.isNamedTupleMember(K))Q.push(p(K.type,$));else Q.push(p(K,$));return{kind:"tuple",elements:Q}}case j.SyntaxKind.TypeReference:{let X=Z,Q=X.typeName.getText();if(Q==="Array"&&X.typeArguments?.length)return{kind:"array",items:p(X.typeArguments[0],$)};if(Q==="Promise"&&X.typeArguments?.length)return p(X.typeArguments[0],$);if((Q==="Generator"||Q==="AsyncGenerator"||Q==="IterableIterator"||Q==="AsyncIterableIterator")&&X.typeArguments?.length)return p(X.typeArguments[0],$);if(X.typeArguments?.length){let K=p(X.typeArguments[0],$);if(Q==="Partial")return K;if(Q==="Required")return K;if(Q==="Readonly")return K;if(Q==="Record"&&X.typeArguments.length>=2)return{kind:"object",shape:{"[key]":p(X.typeArguments[1],$)}};if(Q==="Pick"||Q==="Omit")return K;if(Q==="NonNullable"){if(K.nullable)return{...K,nullable:!1};return K}if(["ReturnType","Parameters","ConstructorParameters"].includes(Q))return{kind:"any"}}if($?.typeAliases?.has(Q)){let K=$.visited??new Set;if(K.has(Q))return{kind:"any"};K.add(Q);let H=$.typeAliases.get(Q);return p(H,{...$,visited:K})}if($?.interfaces?.has(Q)){let K=$.visited??new Set;if(K.has(Q))return{kind:"any"};K.add(Q);let H=$.interfaces.get(Q),Y={};if(H.heritageClauses){for(let z of H.heritageClauses)if(z.token===j.SyntaxKind.ExtendsKeyword)for(let W of z.types){let G=W.expression.getText($.sourceFile);if($.interfaces?.has(G)&&!K.has(G)){let J={kind:j.SyntaxKind.TypeReference,typeName:{getText:()=>G}},U=p(J,{...$,visited:K});if(U.kind==="object"&&U.shape)Object.assign(Y,U.shape)}}}for(let z of H.members)if(j.isPropertySignature(z)&&z.name){let W=z.name.getText($.sourceFile);Y[W]=p(z.type,{...$,visited:K})}return{kind:"object",shape:Y}}if($?.typeParams?.has(Q)){let K=$.typeParams.get(Q);if(K.constraint)return p(K.constraint,$);if(K.default)return p(K.default,$)}return{kind:"any"}}default:return{kind:"any"}}}function W5(Z,$){if(!Z.typeParameters||Z.typeParameters.length===0)return;let X={};for(let Q of Z.typeParameters){let K=Q.name.getText(),H={};if(Q.constraint){let Y=x(Q.constraint,void 0,$);if(Y.startsWith("{"))try{H.constraint=Y}catch{H.constraint=Y}else H.constraint=Y}if(Q.default){let Y=x(Q.default,void 0,$);H.default=Y}X[K]=H}return Object.keys(X).length>0?X:void 0}function G5(Z,$,X){let Q=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return J5(Z,$,X);let K=[];for(let H of Z.members)if(j.isPropertySignature(H)&&H.name){let Y=H.name.getText($),z=x(H.type,void 0,X);if(z==="any")z="null";K.push(`${Y}: ${z}`)}if(K.length===0)return`Type ${Q} {}`;return`Type ${Q} {
362
362
  example: { ${K.join(", ")} }
363
- }`}function J5(Z,$,X){let Q=Z.name.getText($),K=[];for(let W of Z.typeParameters||[]){let G=W.name.getText($);if(W.default){let J=x(W.default,void 0,X);K.push(`${G} = ${J}`)}else K.push(G)}let H=(Z.typeParameters||[]).map((W)=>W.name.getText($)),Y=["typeof x === 'object'","x !== null"];for(let W of Z.members)if(F.isPropertySignature(W)&&W.name){let G=W.name.getText($);if(Y.push(`'${G}' in x`),W.type&&F.isTypeReferenceNode(W.type)){let J=W.type.typeName.getText($);if(H.includes(J))Y.push(`${J}(x.${G})`)}}let z=["x",...H].join(", ");return`Generic ${Q}<${K.join(", ")}> {
363
+ }`}function J5(Z,$,X){let Q=Z.name.getText($),K=[];for(let W of Z.typeParameters||[]){let G=W.name.getText($);if(W.default){let J=x(W.default,void 0,X);K.push(`${G} = ${J}`)}else K.push(G)}let H=(Z.typeParameters||[]).map((W)=>W.name.getText($)),Y=["typeof x === 'object'","x !== null"];for(let W of Z.members)if(j.isPropertySignature(W)&&W.name){let G=W.name.getText($);if(Y.push(`'${G}' in x`),W.type&&j.isTypeReferenceNode(W.type)){let J=W.type.typeName.getText($);if(H.includes(J))Y.push(`${J}(x.${G})`)}}let z=["x",...H].join(", ");return`Generic ${Q}<${K.join(", ")}> {
364
364
  description: '${Q}'
365
365
  predicate(${z}) { return ${Y.join(" && ")} }
366
- }`}function _5(Z,$){if(!F.isUnionTypeNode(Z))return null;let X=[];for(let Q of Z.types)if(F.isLiteralTypeNode(Q))if(F.isStringLiteral(Q.literal))X.push(`'${Q.literal.text}'`);else if(F.isNumericLiteral(Q.literal))X.push(Q.literal.text);else if(Q.literal.kind===F.SyntaxKind.TrueKeyword)X.push("true");else if(Q.literal.kind===F.SyntaxKind.FalseKeyword)X.push("false");else if(Q.literal.kind===F.SyntaxKind.NullKeyword)X.push("null");else return null;else if(Q.kind===F.SyntaxKind.NullKeyword)X.push("null");else if(Q.kind===F.SyntaxKind.UndefinedKeyword)X.push("undefined");else return null;return X.length>0?X:null}function L5(Z,$,X){let Q=Z.name.getText($),K=[],H=0;for(let Y of Z.members){let z=Y.name.getText($);if(Y.initializer)if(F.isStringLiteral(Y.initializer))K.push(` ${z} = '${Y.initializer.text}'`);else if(F.isNumericLiteral(Y.initializer)){let W=parseInt(Y.initializer.text,10);K.push(` ${z} = ${W}`),H=W+1}else if(F.isPrefixUnaryExpression(Y.initializer)&&Y.initializer.operator===F.SyntaxKind.MinusToken){let W=Y.initializer.operand;if(F.isNumericLiteral(W)){let G=-parseInt(W.text,10);K.push(` ${z} = ${G}`),H=G+1}}else K.push(` ${z} = ${Y.initializer.getText($)}`);else K.push(` ${z} = ${H}`),H++}return`Enum ${Q} '${Q}' {
366
+ }`}function _5(Z,$){if(!j.isUnionTypeNode(Z))return null;let X=[];for(let Q of Z.types)if(j.isLiteralTypeNode(Q))if(j.isStringLiteral(Q.literal))X.push(`'${Q.literal.text}'`);else if(j.isNumericLiteral(Q.literal))X.push(Q.literal.text);else if(Q.literal.kind===j.SyntaxKind.TrueKeyword)X.push("true");else if(Q.literal.kind===j.SyntaxKind.FalseKeyword)X.push("false");else if(Q.literal.kind===j.SyntaxKind.NullKeyword)X.push("null");else return null;else if(Q.kind===j.SyntaxKind.NullKeyword)X.push("null");else if(Q.kind===j.SyntaxKind.UndefinedKeyword)X.push("undefined");else return null;return X.length>0?X:null}function L5(Z,$,X){let Q=Z.name.getText($),K=[],H=0;for(let Y of Z.members){let z=Y.name.getText($);if(Y.initializer)if(j.isStringLiteral(Y.initializer))K.push(` ${z} = '${Y.initializer.text}'`);else if(j.isNumericLiteral(Y.initializer)){let W=parseInt(Y.initializer.text,10);K.push(` ${z} = ${W}`),H=W+1}else if(j.isPrefixUnaryExpression(Y.initializer)&&Y.initializer.operator===j.SyntaxKind.MinusToken){let W=Y.initializer.operand;if(j.isNumericLiteral(W)){let G=-parseInt(W.text,10);K.push(` ${z} = ${G}`),H=G+1}}else K.push(` ${z} = ${Y.initializer.getText($)}`);else K.push(` ${z} = ${H}`),H++}return`Enum ${Q} '${Q}' {
367
367
  ${K.join(`
368
368
  `)}
369
369
  }`}function U5(Z,$,X){let Q=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return q5(Z,$,X);let K=_5(Z.type,$);if(K)return`Union ${Q} '${Q}' ${K.join(" | ")}`;let H=x(Z.type,void 0,X);if(H==="''"||H==="0"||H==="true"||H==="null")return`Type ${Q} ${H}`;return`Type ${Q} {
@@ -371,13 +371,13 @@ ${K.join(`
371
371
  }`}function q5(Z,$,X){let Q=Z.name.getText($),K=[];for(let z of Z.typeParameters||[]){let W=z.name.getText($);if(z.default){let G=x(z.default,void 0,X);K.push(`${W} = ${G}`)}else K.push(W)}let Y=["x",...(Z.typeParameters||[]).map((z)=>z.name.getText($))].join(", ");return`Generic ${Q}<${K.join(", ")}> {
372
372
  description: '${Q}'
373
373
  predicate(${Y}) { return true }
374
- }`}function A7(Z,$,X,Q,K,H){let Y;if(Z.typeParameters&&Z.typeParameters.length>0){Y=new Map;for(let I of Z.typeParameters)Y.set(I.name.getText($),{constraint:I.constraint,default:I.default})}let z=Y||H?{...H,typeParams:Y??H?.typeParams}:H,W=[],G=n1(Z.parameters,$,Q,W,z),{line:J}=$.getLineAndCharacterOfPosition(Z.getStart($)),L=K?`/* line ${J+1} */
375
- `:"",_=X||(F.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):""),U=Z.type?x(Z.type,void 0,Q,z):"",D=U&&U!=="undefined"&&U!=="any"?` -! ${U}`:"";if(Z.type&&(U==="any"||U==="undefined")){let I=Z.type.getText($);if(I!=="any"&&I!=="unknown"&&I!=="void")W.push(`return: ${I}`)}let R="";if(Z.body){let I=F.isBlock(Z.body)?Z.body.getText($):`{ return ${Z.body.getText($)} }`;R=F.transpileModule(I,{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}else R="{ }";let w=Z.modifiers?.some((I)=>I.kind===F.SyntaxKind.AsyncKeyword),B=!!Z.asteriskToken,V=w?"async ":"",M=B?"function* ":"function ",j=W.length>0?`/* TODO: TS types degraded — ${W.join(", ")} */
376
- `:"";return`${L}${j}${V}${M}${_}(${G.join(", ")})${D} ${R}`}function D5(Z,$,X,Q){let K=$.name?.getText(X)||"",H=`_${K}_impl`,Y=[],z=n1($.parameters,X,Q),W="{ }";if($.body){let U=$.body.getText(X);W=F.transpileModule(U,{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}let G=$.modifiers?.some((U)=>U.kind===F.SyntaxKind.AsyncKeyword),J=!!$.asteriskToken,L=G?"async ":"",_=J?"function* ":"function ";Y.push(`${L}${_}${H}(${z.join(", ")}) ${W}`);for(let U of Z){let D=n1(U.parameters,X,Q),R=U.parameters.map((I)=>I.name.getText(X)),w=U.type?x(U.type,void 0,Q):"",B=w&&w!=="undefined"&&w!=="any"?` -! ${w}`:"",{line:V}=X.getLineAndCharacterOfPosition(U.getStart(X)),M=`/* line ${V+1} */
377
- `,j=J?"yield* ":"return ";Y.push(`${M}${L}${_}${K}(${D.join(", ")})${B} { ${j}${H}(${R.join(", ")}) }`)}return Y}function A5(Z,$,X){let Q=Z.name?.getText($)||"Anonymous",K=Z.heritageClauses?.find((G)=>G.token===F.SyntaxKind.ExtendsKeyword)?.types[0]?.getText($),H=new Map;for(let G of Z.members)if(F.isPropertyDeclaration(G)&&G.name){let J=G.name.getText($);if(G.modifiers?.some((_)=>_.kind===F.SyntaxKind.PrivateKeyword)&&!J.startsWith("#"))H.set(J,`#${J}`)}let Y=(G)=>{let J=G;for(let[L,_]of H)J=J.replace(new RegExp(`this\\.${L}\\b`,"g"),`this.${_}`);return J},z=[];for(let G of Z.members){if(F.isConstructorDeclaration(G)){let J=n1(G.parameters,$,X),L="{ }";if(G.body){let _=F.transpileModule(G.body.getText($),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}});L=Y(_.outputText.trim())}z.push(` constructor(${J.join(", ")}) ${L}`)}if(F.isMethodDeclaration(G)&&G.name){let J=G.name.getText($),L=G.modifiers?.some((I)=>I.kind===F.SyntaxKind.StaticKeyword),_=G.modifiers?.some((I)=>I.kind===F.SyntaxKind.AsyncKeyword),U=n1(G.parameters,$,X),D=G.type?x(G.type,void 0,X):"",R=D&&D!=="undefined"&&D!=="any"?` -! ${D}`:"",w="{ }";if(G.body){let I=F.transpileModule(G.body.getText($),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}});w=Y(I.outputText.trim())}let B=!!G.asteriskToken,V=L?"static ":"",M=_?"async ":"",j=B?"*":"";z.push(` ${V}${M}${j}${J}(${U.join(", ")})${R} ${w}`)}if(F.isGetAccessorDeclaration(G)&&G.name){let J=G.name.getText($),L=G.type?x(G.type,void 0,X):"",_=L&&L!=="undefined"&&L!=="any"?` -! ${L}`:"",U="{ }";if(G.body){let D=F.transpileModule(G.body.getText($),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}});U=Y(D.outputText.trim())}z.push(` get ${J}()${_} ${U}`)}if(F.isSetAccessorDeclaration(G)&&G.name){let J=G.name.getText($),L=n1(G.parameters,$,X),_="{ }";if(G.body){let U=F.transpileModule(G.body.getText($),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}});_=Y(U.outputText.trim())}z.push(` set ${J}(${L.join(", ")}) ${_}`)}if(F.isPropertyDeclaration(G)&&G.name){let J=G.name.getText($),_=G.modifiers?.some((D)=>D.kind===F.SyntaxKind.StaticKeyword)?"static ":"",U=H.get(J)||J;if(G.initializer){let D=F.transpileModule(G.initializer.getText($),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}});z.push(` ${_}${U} = ${D.outputText.trim()}`)}else z.push(` ${_}${U}`)}}let W=K?` extends ${K}`:"";return`class ${Q}${W} {
378
- ${z.join(`
374
+ }`}function A7(Z,$,X,Q,K,H){let Y;if(Z.typeParameters&&Z.typeParameters.length>0){Y=new Map;for(let B of Z.typeParameters)Y.set(B.name.getText($),{constraint:B.constraint,default:B.default})}let z=Y||H?{...H,typeParams:Y??H?.typeParams}:H,W=[],G=n1(Z.parameters,$,Q,W,z),{line:J}=$.getLineAndCharacterOfPosition(Z.getStart($)),U=K?`/* line ${J+1} */
375
+ `:"",_=X||(j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):""),L=Z.type?x(Z.type,void 0,Q,z):"",D=L&&L!=="undefined"&&L!=="any"&&!L.startsWith("new ")?` -! ${L}`:"";if(Z.type&&(L==="any"||L==="undefined")){let B=Z.type.getText($);if(B!=="any"&&B!=="unknown"&&B!=="void")W.push(`return: ${B}`)}let I="";if(Z.body){let B=j.isBlock(Z.body)?Z.body.getText($):`{ return ${Z.body.getText($)} }`;I=j.transpileModule(B,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}else I="{ }";let M=Z.modifiers?.some((B)=>B.kind===j.SyntaxKind.AsyncKeyword),R=!!Z.asteriskToken,V=M?"async ":"",w=R?"function* ":"function ",F=W.length>0?`/* TODO: TS types degraded — ${W.join(", ")} */
376
+ `:"";return`${U}${F}${V}${w}${_}(${G.join(", ")})${D} ${I}`}function D5(Z,$,X,Q){let K=$.name?.getText(X)||"",H=`_${K}_impl`,Y=[],z=n1($.parameters,X,Q),W="{ }";if($.body){let L=$.body.getText(X);W=j.transpileModule(L,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}let G=$.modifiers?.some((L)=>L.kind===j.SyntaxKind.AsyncKeyword),J=!!$.asteriskToken,U=G?"async ":"",_=J?"function* ":"function ";Y.push(`${U}${_}${H}(${z.join(", ")}) ${W}`);for(let L of Z){let D=n1(L.parameters,X,Q),I=L.parameters.map((B)=>B.name.getText(X)),M=L.type?x(L.type,void 0,Q):"",R=M&&M!=="undefined"&&M!=="any"?` -! ${M}`:"",{line:V}=X.getLineAndCharacterOfPosition(L.getStart(X)),w=`/* line ${V+1} */
377
+ `,F=J?"yield* ":"return ";Y.push(`${w}${U}${_}${K}(${D.join(", ")})${R} { ${F}${H}(${I.join(", ")}) }`)}return Y}function A5(Z,$,X,Q){let K=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let _=new Map;for(let L of Z.typeParameters)_.set(L.name.getText($),{constraint:L.constraint,default:L.default});K={...Q,typeParams:_}}let H=Z.name?.getText($)||"Anonymous",z=Z.heritageClauses?.find((_)=>_.token===j.SyntaxKind.ExtendsKeyword)?.types[0]?.expression?.getText($),W=new Map;for(let _ of Z.members)if(j.isPropertyDeclaration(_)&&_.name){let L=_.name.getText($);if(_.modifiers?.some((I)=>I.kind===j.SyntaxKind.PrivateKeyword)&&!L.startsWith("#"))W.set(L,`#${L}`)}let G=(_)=>{let L=_;for(let[D,I]of W)L=L.replace(new RegExp(`this\\.${D}\\b`,"g"),`this.${I}`);return L},J=[];for(let _ of Z.members){if(j.isConstructorDeclaration(_)){let L=n1(_.parameters,$,X),D="{ }";if(_.body){let I=j.transpileModule(_.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});D=G(I.outputText.trim())}J.push(` constructor(${L.join(", ")}) ${D}`)}if(j.isMethodDeclaration(_)&&_.name){let L=_.name.getText($),D=_.modifiers?.some((O)=>O.kind===j.SyntaxKind.StaticKeyword),I=_.modifiers?.some((O)=>O.kind===j.SyntaxKind.AsyncKeyword),M=n1(_.parameters,$,X,void 0,K),R=_.type?x(_.type,void 0,X,K):"",V=R&&R!=="undefined"&&R!=="any"?` -! ${R}`:"",w="{ }";if(_.body){let O=j.transpileModule(_.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});w=G(O.outputText.trim())}let F=!!_.asteriskToken,B=D?"static ":"",P=I?"async ":"",C=F?"*":"";J.push(` ${B}${P}${C}${L}(${M.join(", ")})${V} ${w}`)}if(j.isGetAccessorDeclaration(_)&&_.name){let L=_.name.getText($),D=_.type?x(_.type,void 0,X,K):"",I=D&&D!=="undefined"&&D!=="any"&&!D.startsWith("new ")?` -> ${D}`:"",M="{ }";if(_.body){let R=j.transpileModule(_.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});M=G(R.outputText.trim())}J.push(` get ${L}()${I} ${M}`)}if(j.isSetAccessorDeclaration(_)&&_.name){let L=_.name.getText($),D=n1(_.parameters,$,X),I="{ }";if(_.body){let M=j.transpileModule(_.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});I=G(M.outputText.trim())}J.push(` set ${L}(${D.join(", ")}) ${I}`)}if(j.isPropertyDeclaration(_)&&_.name){let L=_.name.getText($),I=_.modifiers?.some((R)=>R.kind===j.SyntaxKind.StaticKeyword)?"static ":"",M=W.get(L)||L;if(_.initializer){let R=_.initializer.getText($),V=R.trimStart().startsWith("{")?`(${R})`:R,F=j.transpileModule(V,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(V!==R)F=F.replace(/^\(/,"").replace(/\);?\s*$/,"");J.push(` ${I}${M} = ${F}`)}else J.push(` ${I}${M}`)}}let U=z?` extends ${z}`:"";return`class ${H}${U} {
378
+ ${J.join(`
379
379
  `)}
380
- }`}function n1(Z,$,X,Q,K){let H=[];for(let Y of Z){let z=Y.name.getText($),W=!!Y.questionToken||!!Y.initializer,G=x(Y.type,void 0,X,K);if(Y.initializer){let J=Y.initializer.getText($);H.push(`${z} = ${J}`)}else if(G==="any"||G==="undefined"){if(H.push(z),Q&&Y.type){let J=Y.type.getText($);if(J!=="any"&&J!=="unknown")Q.push(`${z}: ${J}`)}}else if(W)H.push(`${z}: ${G} | undefined`);else H.push(`${z}: ${G}`)}return H}function K4(Z,$,X,Q){let K=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let G=new Map;for(let J of Z.typeParameters)G.set(J.name.getText($),{constraint:J.constraint,default:J.default});K={...Q,typeParams:G}}let H=F.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):"anonymous",Y={};for(let G of Z.parameters){let J=G.name.getText($),L=!!G.questionToken||!!G.initializer,_=void 0;if(G.initializer){let U=G.initializer.getText($);try{_=JSON.parse(U)}catch{_=U}}Y[J]={type:p(G.type,K),required:!L,default:_}}let z={name:H,params:Y,returns:Z.type?p(Z.type,K):void 0},W=W5(Z,X);if(W)z.typeParams=W;return z}function I5(Z,$,X,Q){let K=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let J=new Map;for(let L of Z.typeParameters)J.set(L.name.getText($),{constraint:L.constraint,default:L.default});K={...Q,typeParams:J}}let H=Z.name?.getText($)||"anonymous",Y={},z={},W;for(let J of Z.members){if(F.isConstructorDeclaration(J)){let L={};for(let _ of J.parameters){let U=_.name.getText($),D=!!_.questionToken||!!_.initializer,R=void 0;if(_.initializer){let w=_.initializer.getText($);try{R=JSON.parse(w)}catch{R=w}}L[U]={type:p(_.type,K),required:!D,default:R}}W={params:L}}if(F.isMethodDeclaration(J)&&J.name){let L=J.name.getText($),_=J.modifiers?.some((R)=>R.kind===F.SyntaxKind.StaticKeyword),U={};for(let R of J.parameters){let w=R.name.getText($),B=!!R.questionToken||!!R.initializer,V=void 0;if(R.initializer){let M=R.initializer.getText($);try{V=JSON.parse(M)}catch{V=M}}U[w]={type:p(R.type,K),required:!B,default:V}}let D={name:L,params:U,returns:J.type?p(J.type,K):void 0};if(_)z[L]=D;else Y[L]=D}}let G={name:H,methods:Y,staticMethods:z,constructor:W};if(Z.typeParameters&&Z.typeParameters.length>0){let J={};for(let L of Z.typeParameters){let _=L.name.getText($),U={};if(L.constraint)U.constraint=x(L.constraint,void 0,X,Q);if(L.default)U.default=x(L.default,void 0,X,Q);J[_]=U}G.typeParams=J}return G}function R5(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{[\s\S]*?\}\s*\*\/|\/\*test\s*\{[\s\S]*?\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null)$.push(Q[0]);return $}function B5(Z){let $=[],X=/\/\*#[\s\S]*?\*\//g,Q=0,K=null,H=[];for(let z=0;z<Z.length;z++){let W=Z[z],G=z>0?Z[z-1]:"";if(!K&&(W==='"'||W==="'"||W==="`"))K=W;else if(K&&W===K&&G!=="\\")K=null;if(!K){if(W==="{")Q++;if(W==="}")Q--}H[z]=Q}let Y;while((Y=X.exec(Z))!==null)if(H[Y.index]===0)$.push({content:Y[0],index:Y.index});return $}function M5(Z,$={}){let{emitTJS:X=!1,filename:Q="input.ts"}=$,K=[],H=R5(Z),Y=X?B5(Z):[],z=F.createSourceFile(Q,Z,F.ScriptTarget.Latest,!0),W=[],G=new Set,J={},L={},_=new Set,U=(I)=>{for(let P=0;P<Y.length;P++){let C=Y[P];if(!_.has(P)&&C.index<I)W.push(C.content),_.add(P)}},D=new Map,R=new Map;function w(I){if(F.isTypeAliasDeclaration(I))D.set(I.name.getText(z),I.type);if(F.isInterfaceDeclaration(I)){let P=I.name.getText(z),C=R.get(P);if(C){let O=F.factory.updateInterfaceDeclaration(C,C.modifiers,C.name,C.typeParameters,C.heritageClauses,[...C.members,...I.members]);R.set(P,O)}else R.set(P,I)}F.forEachChild(I,w)}w(z);let B={typeAliases:D,interfaces:R,sourceFile:z,warnings:K},V=new Map;for(let I of z.statements)if(F.isFunctionDeclaration(I)&&I.name){let P=I.name.getText(z);if(!V.has(P))V.set(P,{signatures:[],implementation:null});let C=V.get(P);if(I.body)C.implementation=I;else C.signatures.push(I)}for(let[I,P]of V)if(P.signatures.length===0||!P.implementation)V.delete(I);for(let I of z.statements){let P=!1;if(X)U(I.getStart(z));if(F.isFunctionDeclaration(I)&&I.name){let C=I.name.getText(z);P=!0;let O=V.get(C);if(O)if(!I.body);else if(X)W.push(...D5(O.signatures,I,z,K));else{let T=[];for(let g of O.signatures)T.push(K4(g,z,K,B));let k=K4(I,z,K,B);k.overloads=T,J[C]=k}else if(X)W.push(A7(I,z,void 0,K,!0,B));else J[C]=K4(I,z,K,B)}if(F.isVariableStatement(I)){let C=!1;for(let O of I.declarationList.declarations)if(F.isIdentifier(O.name)&&O.initializer&&(F.isArrowFunction(O.initializer)||F.isFunctionExpression(O.initializer))){C=!0;let T=O.name.getText(z),k=O.initializer;if(X)W.push(A7(k,z,T,K,!0,B));else{let g=K4(k,z,K,B);g.name=T,J[T]=g}}if(!C&&X){let O=F.transpileModule(I.getText(z),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}});W.push(O.outputText.trim())}P=!0}if(F.isInterfaceDeclaration(I)){if(P=!0,X){let C=I.name.getText(z);if(!G.has(C)){G.add(C);let O=R.get(C)||I,T=G5(O,z,K);if(T)W.push(T)}}}if(F.isTypeAliasDeclaration(I)){if(P=!0,X){let C=I.name.getText(z);if(!G.has(C)){G.add(C);let O=U5(I,z,K);if(O)W.push(O)}}}if(F.isEnumDeclaration(I)){if(P=!0,X){let C=I.name.getText(z);if(!G.has(C)){G.add(C);let O=L5(I,z,K);if(O)W.push(O)}}}if(F.isClassDeclaration(I)&&I.name){let C=I.name.getText(z);if(P=!0,X){let O=A5(I,z,K);W.push(O)}else L[C]=I5(I,z,K,B)}if(F.isImportDeclaration(I)){if(P=!0,X){if(!(I.importClause?.isTypeOnly||I.importClause?.namedBindings&&F.isNamedImports(I.importClause.namedBindings)&&I.importClause.namedBindings.elements.every((O)=>O.isTypeOnly))){let T=F.transpileModule(I.getText(z),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(T)W.push(T)}}}if(F.isExportDeclaration(I)||F.isExportAssignment(I)){if(P=!0,X){let O=F.transpileModule(I.getText(z),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)W.push(O)}}if(!P&&X){let O=F.transpileModule(I.getText(z),{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)W.push(O)}}if(X){U(1/0);let P=`/* tjs <- ${Q||"unknown"} */
380
+ }`}function n1(Z,$,X,Q,K){let H=[];for(let Y of Z){let z=Y.name.getText($);if(z==="this")continue;let W=!!Y.questionToken||!!Y.initializer,G=x(Y.type,void 0,X,K);if(Y.initializer){let J=Y.initializer.getText($);H.push(`${z} = ${J}`)}else if(G==="any"||G==="undefined"){if(H.push(z),Q&&Y.type){let J=Y.type.getText($);if(J!=="any"&&J!=="unknown")Q.push(`${z}: ${J}`)}}else if(W)H.push(`${z}: ${G} | undefined`);else H.push(`${z}: ${G}`)}return H}function K4(Z,$,X,Q){let K=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let G=new Map;for(let J of Z.typeParameters)G.set(J.name.getText($),{constraint:J.constraint,default:J.default});K={...Q,typeParams:G}}let H=j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):"anonymous",Y={};for(let G of Z.parameters){let J=G.name.getText($),U=!!G.questionToken||!!G.initializer,_=void 0;if(G.initializer){let L=G.initializer.getText($);try{_=JSON.parse(L)}catch{_=L}}Y[J]={type:p(G.type,K),required:!U,default:_}}let z={name:H,params:Y,returns:Z.type?p(Z.type,K):void 0},W=W5(Z,X);if(W)z.typeParams=W;return z}function I5(Z,$,X,Q){let K=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let J=new Map;for(let U of Z.typeParameters)J.set(U.name.getText($),{constraint:U.constraint,default:U.default});K={...Q,typeParams:J}}let H=Z.name?.getText($)||"anonymous",Y={},z={},W;for(let J of Z.members){if(j.isConstructorDeclaration(J)){let U={};for(let _ of J.parameters){let L=_.name.getText($),D=!!_.questionToken||!!_.initializer,I=void 0;if(_.initializer){let M=_.initializer.getText($);try{I=JSON.parse(M)}catch{I=M}}U[L]={type:p(_.type,K),required:!D,default:I}}W={params:U}}if(j.isMethodDeclaration(J)&&J.name){let U=J.name.getText($),_=J.modifiers?.some((I)=>I.kind===j.SyntaxKind.StaticKeyword),L={};for(let I of J.parameters){let M=I.name.getText($),R=!!I.questionToken||!!I.initializer,V=void 0;if(I.initializer){let w=I.initializer.getText($);try{V=JSON.parse(w)}catch{V=w}}L[M]={type:p(I.type,K),required:!R,default:V}}let D={name:U,params:L,returns:J.type?p(J.type,K):void 0};if(_)z[U]=D;else Y[U]=D}}let G={name:H,methods:Y,staticMethods:z,constructor:W};if(Z.typeParameters&&Z.typeParameters.length>0){let J={};for(let U of Z.typeParameters){let _=U.name.getText($),L={};if(U.constraint)L.constraint=x(U.constraint,void 0,X,Q);if(U.default)L.default=x(U.default,void 0,X,Q);J[_]=L}G.typeParams=J}return G}function R5(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{[\s\S]*?\}\s*\*\/|\/\*test\s*\{[\s\S]*?\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null)$.push(Q[0]);return $}function B5(Z){let $=[],X=/\/\*#[\s\S]*?\*\//g,Q=0,K=null,H=[];for(let z=0;z<Z.length;z++){let W=Z[z],G=z>0?Z[z-1]:"";if(!K&&(W==='"'||W==="'"||W==="`"))K=W;else if(K&&W===K&&G!=="\\")K=null;if(!K){if(W==="{")Q++;if(W==="}")Q--}H[z]=Q}let Y;while((Y=X.exec(Z))!==null)if(H[Y.index]===0)$.push({content:Y[0],index:Y.index});return $}function M5(Z,$={}){let{emitTJS:X=!1,filename:Q="input.ts"}=$,K=[],H=R5(Z),Y=X?B5(Z):[],z=j.createSourceFile(Q,Z,j.ScriptTarget.Latest,!0),W=[],G=new Set,J={},U={},_=new Set,L=(B)=>{for(let P=0;P<Y.length;P++){let C=Y[P];if(!_.has(P)&&C.index<B)W.push(C.content),_.add(P)}},D=new Map,I=new Map;function M(B){if(j.isTypeAliasDeclaration(B))D.set(B.name.getText(z),B.type);if(j.isInterfaceDeclaration(B)){let P=B.name.getText(z),C=I.get(P);if(C){let O=j.factory.updateInterfaceDeclaration(C,C.modifiers,C.name,C.typeParameters,C.heritageClauses,[...C.members,...B.members]);I.set(P,O)}else I.set(P,B)}j.forEachChild(B,M)}M(z);let R={typeAliases:D,interfaces:I,sourceFile:z,warnings:K},V=new Map;for(let B of z.statements)if(j.isFunctionDeclaration(B)&&B.name){let P=B.name.getText(z);if(!V.has(P))V.set(P,{signatures:[],implementation:null});let C=V.get(P);if(B.body)C.implementation=B;else C.signatures.push(B)}for(let[B,P]of V)if(P.signatures.length===0||!P.implementation)V.delete(B);for(let B of z.statements){let P=!1;if(X)L(B.getStart(z));if(j.isFunctionDeclaration(B)&&B.name){let C=B.name.getText(z);P=!0;let O=V.get(C);if(O)if(!B.body);else if(X)W.push(...D5(O.signatures,B,z,K));else{let T=[];for(let g of O.signatures)T.push(K4(g,z,K,R));let S=K4(B,z,K,R);S.overloads=T,J[C]=S}else if(X)W.push(A7(B,z,void 0,K,!0,R));else J[C]=K4(B,z,K,R)}if(j.isVariableStatement(B)){let C=!1;for(let O of B.declarationList.declarations)if(j.isIdentifier(O.name)&&O.initializer&&(j.isArrowFunction(O.initializer)||j.isFunctionExpression(O.initializer))){C=!0;let T=O.name.getText(z),S=O.initializer;if(X)W.push(A7(S,z,T,K,!0,R));else{let g=K4(S,z,K,R);g.name=T,J[T]=g}}if(!C&&X){let O=j.transpileModule(B.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});W.push(O.outputText.trim())}P=!0}if(j.isInterfaceDeclaration(B)){if(P=!0,X){let C=B.name.getText(z);if(!G.has(C)){G.add(C);let O=I.get(C)||B,T=G5(O,z,K);if(T)W.push(T)}}}if(j.isTypeAliasDeclaration(B)){if(P=!0,X){let C=B.name.getText(z);if(!G.has(C)){G.add(C);let O=U5(B,z,K);if(O)W.push(O)}}}if(j.isEnumDeclaration(B)){if(P=!0,X){let C=B.name.getText(z);if(!G.has(C)){G.add(C);let O=L5(B,z,K);if(O)W.push(O)}}}if(j.isClassDeclaration(B)&&B.name){let C=B.name.getText(z);if(P=!0,X){let O=A5(B,z,K);W.push(O)}else U[C]=I5(B,z,K,R)}if(j.isImportDeclaration(B)){if(P=!0,X){if(!(B.importClause?.isTypeOnly||B.importClause?.namedBindings&&j.isNamedImports(B.importClause.namedBindings)&&B.importClause.namedBindings.elements.every((O)=>O.isTypeOnly)))if(B.importClause?.namedBindings&&j.isNamedImports(B.importClause.namedBindings)){let O=B.importClause.namedBindings.elements.filter((T)=>!T.isTypeOnly).map((T)=>{let S=T.name.getText(z),g=T.propertyName?.getText(z);return g?`${g} as ${S}`:S});if(O.length>0){let T=B.moduleSpecifier.text;W.push(`import { ${O.join(", ")} } from '${T}'`)}}else{let T=B.getText(z).replace(/\btype\s+/g,"").replace(/\s*:\s*\w+/g,"");W.push(T)}}}if(j.isExportDeclaration(B)||j.isExportAssignment(B)){if(P=!0,X){let O=j.transpileModule(B.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)W.push(O)}}if(!P&&X){let O=j.transpileModule(B.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)W.push(O)}}if(X){L(1/0);let P=`/* tjs <- ${Q||"unknown"} */
381
381
 
382
382
  `,C=H.length>0?`
383
383
 
@@ -385,15 +385,15 @@ ${z.join(`
385
385
 
386
386
  `):"";return{code:P+W.join(`
387
387
 
388
- `)+C,warnings:K.length>0?K:void 0}}let j=F.transpileModule(Z,{compilerOptions:{target:F.ScriptTarget.ESNext,module:F.ModuleKind.ESNext,removeComments:!1}}).outputText;for(let[I,P]of Object.entries(J)){let C={params:Object.fromEntries(Object.entries(P.params).map(([T,k])=>[T,{type:k.type.kind,required:k.required,default:k.default}])),returns:P.returns?{type:P.returns.kind}:void 0};if(P.typeParams)C.typeParams=P.typeParams;let O=JSON.stringify(C,null,2);j+=`
389
- ${I}.__tjs = ${O};
390
- `}for(let[I,P]of Object.entries(L)){let C={constructor:P.constructor?{params:Object.fromEntries(Object.entries(P.constructor.params??{}).map(([T,k])=>[T,{type:k.type.kind,required:k.required,default:k.default}]))}:void 0,methods:Object.fromEntries(Object.entries(P.methods??{}).map(([T,k])=>[T,{params:Object.fromEntries(Object.entries(k.params??{}).map(([g,m])=>[g,{type:m.type.kind,required:m.required}])),returns:k.returns?{type:k.returns.kind}:void 0}])),staticMethods:Object.fromEntries(Object.entries(P.staticMethods??{}).map(([T,k])=>[T,{params:Object.fromEntries(Object.entries(k.params??{}).map(([g,m])=>[g,{type:m.type.kind,required:m.required}])),returns:k.returns?{type:k.returns.kind}:void 0}]))};if(P.typeParams)C.typeParams=P.typeParams;let O=JSON.stringify(C,null,2);j+=`
391
- ${I}.__tjs = ${O};
392
- `,j+=`
393
- ${D7(I)}
394
- `}return{code:j,types:J,classes:Object.keys(L).length>0?L:void 0,warnings:K.length>0?K:void 0}}import{s as I7}from"tosijs-schema";function R7(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function H4(Z){return I7.infer(Z)}function o4(Z){return H4(Z)}o4.type=R7;o4.infer=H4;var w5=new Proxy(o4,{get(Z,$){if($==="type")return R7;if($==="infer")return H4;return I7[$]},apply(Z,$,X){return H4(X[0])}});async function Y4(Z){let $=`${$1}:${Z}`;if(typeof crypto<"u"&&crypto.subtle){let K=new TextEncoder().encode($),H=await crypto.subtle.digest("SHA-256",K);return Array.from(new Uint8Array(H)).map((z)=>z.toString(16).padStart(2,"0")).join("")}let X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}function F5(Z){let $=`${$1}:${Z}`,X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}var j5="tjs-metadata-cache",P5=1,s="modules";class s4{db=null;stats={hits:0,misses:0};pendingOpen=null;async open(){if(this.db)return;if(this.pendingOpen)return this.pendingOpen;this.pendingOpen=this._open(),await this.pendingOpen,this.pendingOpen=null}async _open(){return new Promise((Z,$)=>{if(typeof indexedDB>"u"){Z();return}let X=indexedDB.open(j5,P5);X.onerror=()=>{console.warn("MetadataCache: Failed to open IndexedDB",X.error),Z()},X.onsuccess=()=>{this.db=X.result,Z()},X.onupgradeneeded=(Q)=>{let K=Q.target.result;if(!K.objectStoreNames.contains(s)){let H=K.createObjectStore(s,{keyPath:"hash"});H.createIndex("timestamp","timestamp"),H.createIndex("version","version")}}})}async get(Z){if(!this.db){this.stats.misses++;return}let $=await Y4(Z);return new Promise((X)=>{let H=this.db.transaction(s,"readonly").objectStore(s).get($);H.onerror=()=>{this.stats.misses++,X(void 0)},H.onsuccess=()=>{let Y=H.result;if(Y&&Y.version!==$1){this.stats.misses++,X(void 0);return}if(Y)this.stats.hits++;else this.stats.misses++;X(Y)}})}async getTranspile(Z){return(await this.get(Z))?.transpile}async getTJS(Z){return(await this.get(Z))?.tjs}async setTranspile(Z,$){await this._set(Z,{transpile:$})}async setTJS(Z,$){await this._set(Z,{tjs:$})}async _set(Z,$){if(!this.db)return;let X=await Y4(Z);return new Promise((Q,K)=>{let Y=this.db.transaction(s,"readwrite").objectStore(s),z=Y.get(X);z.onsuccess=()=>{let W=z.result,G={hash:X,version:$1,timestamp:Date.now(),transpile:$.transpile??W?.transpile,tjs:$.tjs??W?.tjs},J=Y.put(G);J.onerror=()=>K(J.error),J.onsuccess=()=>Q()},z.onerror=()=>K(z.error)})}async delete(Z){if(!this.db)return;let $=await Y4(Z);return new Promise((X,Q)=>{let Y=this.db.transaction(s,"readwrite").objectStore(s).delete($);Y.onerror=()=>Q(Y.error),Y.onsuccess=()=>X()})}async clear(){if(!this.db)return;return new Promise((Z,$)=>{let K=this.db.transaction(s,"readwrite").objectStore(s).clear();K.onerror=()=>$(K.error),K.onsuccess=()=>{this.stats={hits:0,misses:0},Z()}})}async prune(Z){if(!this.db)return 0;let $=Date.now()-Z;return new Promise((X,Q)=>{let Y=this.db.transaction(s,"readwrite").objectStore(s).index("timestamp"),z=IDBKeyRange.upperBound($),W=0,G=Y.openCursor(z);G.onsuccess=(J)=>{let L=J.target.result;if(L)L.delete(),W++,L.continue();else X(W)},G.onerror=()=>Q(G.error)})}async pruneOldVersions(){if(!this.db)return 0;return new Promise((Z,$)=>{let Q=this.db.transaction(s,"readwrite").objectStore(s),K=0,H=Q.openCursor();H.onsuccess=(Y)=>{let z=Y.target.result;if(z){if(z.value.version!==$1)z.delete(),K++;z.continue()}else Z(K)},H.onerror=()=>$(H.error)})}async getStats(){let Z=await this.count(),$=await this.estimateSize(),X=this.stats.hits+this.stats.misses,Q=X>0?this.stats.hits/X:0;return{entries:Z,bytes:$,hits:this.stats.hits,misses:this.stats.misses,hitRate:Q}}async count(){if(!this.db)return 0;return new Promise((Z,$)=>{let K=this.db.transaction(s,"readonly").objectStore(s).count();K.onerror=()=>$(K.error),K.onsuccess=()=>Z(K.result)})}async estimateSize(){if(!this.db)return 0;if(typeof navigator<"u"&&navigator.storage?.estimate)try{return(await navigator.storage.estimate()).usage??0}catch{}return new Promise((Z,$)=>{let Q=this.db.transaction(s,"readonly").objectStore(s),K=0,H=Q.openCursor();H.onsuccess=(Y)=>{let z=Y.target.result;if(z)K+=JSON.stringify(z.value).length*2,z.continue();else Z(K)},H.onerror=()=>$(H.error)})}close(){if(this.db)this.db.close(),this.db=null}isAvailable(){return this.db!==null}resetStats(){this.stats={hits:0,misses:0}}}var D0=null;async function z4(){if(!D0)D0=new s4,await D0.open();return D0}function V5(Z){D0=Z}function W4(Z,$,X,Q,K){if(!X)X=E;(function H(Y,z,W){var G=W||Y.type;if(X[G](Y,z,H),$[G])$[G](Y,z)})(Z,Q,K)}function B7(Z,$,X,Q,K){var H=[];if(!X)X=E;(function Y(z,W,G){var J=G||z.type,L=z!==H[H.length-1];if(L)H.push(z);if(X[J](z,W,Y),$[J])$[J](z,W||H,H);if(L)H.pop()})(Z,Q,K)}function a4(Z,$,X){X(Z,$)}function y1(Z,$,X){}var E={};E.Program=E.BlockStatement=E.StaticBlock=function(Z,$,X){for(var Q=0,K=Z.body;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Statement")}};E.Statement=a4;E.EmptyStatement=y1;E.ExpressionStatement=E.ParenthesizedExpression=E.ChainExpression=function(Z,$,X){return X(Z.expression,$,"Expression")};E.IfStatement=function(Z,$,X){if(X(Z.test,$,"Expression"),X(Z.consequent,$,"Statement"),Z.alternate)X(Z.alternate,$,"Statement")};E.LabeledStatement=function(Z,$,X){return X(Z.body,$,"Statement")};E.BreakStatement=E.ContinueStatement=y1;E.WithStatement=function(Z,$,X){X(Z.object,$,"Expression"),X(Z.body,$,"Statement")};E.SwitchStatement=function(Z,$,X){X(Z.discriminant,$,"Expression");for(var Q=0,K=Z.cases;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.SwitchCase=function(Z,$,X){if(Z.test)X(Z.test,$,"Expression");for(var Q=0,K=Z.consequent;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Statement")}};E.ReturnStatement=E.YieldExpression=E.AwaitExpression=function(Z,$,X){if(Z.argument)X(Z.argument,$,"Expression")};E.ThrowStatement=E.SpreadElement=function(Z,$,X){return X(Z.argument,$,"Expression")};E.TryStatement=function(Z,$,X){if(X(Z.block,$,"Statement"),Z.handler)X(Z.handler,$);if(Z.finalizer)X(Z.finalizer,$,"Statement")};E.CatchClause=function(Z,$,X){if(Z.param)X(Z.param,$,"Pattern");X(Z.body,$,"Statement")};E.WhileStatement=E.DoWhileStatement=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.body,$,"Statement")};E.ForStatement=function(Z,$,X){if(Z.init)X(Z.init,$,"ForInit");if(Z.test)X(Z.test,$,"Expression");if(Z.update)X(Z.update,$,"Expression");X(Z.body,$,"Statement")};E.ForInStatement=E.ForOfStatement=function(Z,$,X){X(Z.left,$,"ForInit"),X(Z.right,$,"Expression"),X(Z.body,$,"Statement")};E.ForInit=function(Z,$,X){if(Z.type==="VariableDeclaration")X(Z,$);else X(Z,$,"Expression")};E.DebuggerStatement=y1;E.FunctionDeclaration=function(Z,$,X){return X(Z,$,"Function")};E.VariableDeclaration=function(Z,$,X){for(var Q=0,K=Z.declarations;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.VariableDeclarator=function(Z,$,X){if(X(Z.id,$,"Pattern"),Z.init)X(Z.init,$,"Expression")};E.Function=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");for(var Q=0,K=Z.params;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Pattern")}X(Z.body,$,Z.expression?"Expression":"Statement")};E.Pattern=function(Z,$,X){if(Z.type==="Identifier")X(Z,$,"VariablePattern");else if(Z.type==="MemberExpression")X(Z,$,"MemberPattern");else X(Z,$)};E.VariablePattern=y1;E.MemberPattern=a4;E.RestElement=function(Z,$,X){return X(Z.argument,$,"Pattern")};E.ArrayPattern=function(Z,$,X){for(var Q=0,K=Z.elements;Q<K.length;Q+=1){var H=K[Q];if(H)X(H,$,"Pattern")}};E.ObjectPattern=function(Z,$,X){for(var Q=0,K=Z.properties;Q<K.length;Q+=1){var H=K[Q];if(H.type==="Property"){if(H.computed)X(H.key,$,"Expression");X(H.value,$,"Pattern")}else if(H.type==="RestElement")X(H.argument,$,"Pattern")}};E.Expression=a4;E.ThisExpression=E.Super=E.MetaProperty=y1;E.ArrayExpression=function(Z,$,X){for(var Q=0,K=Z.elements;Q<K.length;Q+=1){var H=K[Q];if(H)X(H,$,"Expression")}};E.ObjectExpression=function(Z,$,X){for(var Q=0,K=Z.properties;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.FunctionExpression=E.ArrowFunctionExpression=E.FunctionDeclaration;E.SequenceExpression=function(Z,$,X){for(var Q=0,K=Z.expressions;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Expression")}};E.TemplateLiteral=function(Z,$,X){for(var Q=0,K=Z.quasis;Q<K.length;Q+=1){var H=K[Q];X(H,$)}for(var Y=0,z=Z.expressions;Y<z.length;Y+=1){var W=z[Y];X(W,$,"Expression")}};E.TemplateElement=y1;E.UnaryExpression=E.UpdateExpression=function(Z,$,X){X(Z.argument,$,"Expression")};E.BinaryExpression=E.LogicalExpression=function(Z,$,X){X(Z.left,$,"Expression"),X(Z.right,$,"Expression")};E.AssignmentExpression=E.AssignmentPattern=function(Z,$,X){X(Z.left,$,"Pattern"),X(Z.right,$,"Expression")};E.ConditionalExpression=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.consequent,$,"Expression"),X(Z.alternate,$,"Expression")};E.NewExpression=E.CallExpression=function(Z,$,X){if(X(Z.callee,$,"Expression"),Z.arguments)for(var Q=0,K=Z.arguments;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Expression")}};E.MemberExpression=function(Z,$,X){if(X(Z.object,$,"Expression"),Z.computed)X(Z.property,$,"Expression")};E.ExportNamedDeclaration=E.ExportDefaultDeclaration=function(Z,$,X){if(Z.declaration)X(Z.declaration,$,Z.type==="ExportNamedDeclaration"||Z.declaration.id?"Statement":"Expression");if(Z.source)X(Z.source,$,"Expression")};E.ExportAllDeclaration=function(Z,$,X){if(Z.exported)X(Z.exported,$);X(Z.source,$,"Expression")};E.ImportDeclaration=function(Z,$,X){for(var Q=0,K=Z.specifiers;Q<K.length;Q+=1){var H=K[Q];X(H,$)}X(Z.source,$,"Expression")};E.ImportExpression=function(Z,$,X){X(Z.source,$,"Expression")};E.ImportSpecifier=E.ImportDefaultSpecifier=E.ImportNamespaceSpecifier=E.Identifier=E.PrivateIdentifier=E.Literal=y1;E.TaggedTemplateExpression=function(Z,$,X){X(Z.tag,$,"Expression"),X(Z.quasi,$,"Expression")};E.ClassDeclaration=E.ClassExpression=function(Z,$,X){return X(Z,$,"Class")};E.Class=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");if(Z.superClass)X(Z.superClass,$,"Expression");X(Z.body,$)};E.ClassBody=function(Z,$,X){for(var Q=0,K=Z.body;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.MethodDefinition=E.PropertyDefinition=E.Property=function(Z,$,X){if(Z.computed)X(Z.key,$,"Expression");if(Z.value)X(Z.value,$,"Expression")};var O5={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function N5(Z,$={}){let X={...O5,...$},Q=[],K;try{K=M1(Z,{filename:X.filename,colonShorthand:!0}).ast}catch(Y){return{diagnostics:[{severity:"error",message:Y.message,line:Y.loc?.line,column:Y.loc?.column,rule:"parse-error"}],valid:!1}}let H=[M7()];if(B7(K,{FunctionDeclaration(Y,z,W){let G=M7();H.push(G);for(let J of Y.params)E5(G,J,"parameter");if(Y.id)(H[H.length-2]||H[0]).declarations.set(Y.id.name,{node:Y.id,kind:"function",used:!1})},VariableDeclaration(Y){let z=H[H.length-1];for(let W of Y.declarations)if(W.id.type==="Identifier")z.declarations.set(W.id.name,{node:W.id,kind:Y.kind,used:!1})}}),W4(K,{Identifier(Y){for(let z=H.length-1;z>=0;z--){let W=H[z].declarations.get(Y.name);if(W){W.used=!0;break}}}}),X.unusedVariables)for(let Y of H)for(let[z,W]of Y.declarations){if(z.startsWith("_"))continue;if(!W.used&&W.kind!=="function")Q.push({severity:"warning",message:`'${z}' is declared but never used`,line:W.node.loc?.start?.line,column:W.node.loc?.start?.column,rule:"no-unused-vars"})}if(X.unreachableCode)W4(K,{BlockStatement(Y){let z=!1;for(let W of Y.body){if(z){Q.push({severity:"warning",message:"Unreachable code after return statement",line:W.loc?.start?.line,column:W.loc?.start?.column,rule:"no-unreachable"});break}if(W.type==="ReturnStatement")z=!0}}});if(X.noExplicitNew)W4(K,{NewExpression(Y){let z="class";if(Y.callee.type==="Identifier")z=Y.callee.name;else if(Y.callee.type==="MemberExpression"){if(Y.callee.property.type==="Identifier")z=Y.callee.property.name}Q.push({severity:"warning",message:`Unnecessary 'new' keyword. In TJS, classes are callable without 'new': ${z}(...) instead of new ${z}(...)`,line:Y.loc?.start?.line,column:Y.loc?.start?.column,rule:"no-explicit-new"})}});return{diagnostics:Q,valid:Q.filter((Y)=>Y.severity==="error").length===0}}function M7(){return{declarations:new Map}}function E5(Z,$,X){if($.type==="Identifier")Z.declarations.set($.name,{node:$,kind:X,used:!1});else if($.type==="AssignmentPattern"&&$.left.type==="Identifier")Z.declarations.set($.left.name,{node:$.left,kind:X,used:!1})}function T5(Z){let $=[],X=0,Q=null;for(let K=0;K<Z.length;K++){let H=Z[K],Y=K>0?Z[K-1]:"";if(!Q&&(H==='"'||H==="'"||H==="`"))Q=H;else if(Q&&H===Q&&Y!=="\\")Q=null;if(!Q){if(H==="{")X++;if(H==="}")X--}$[K]=X}return $}function w7(Z){let $=[],X=T5(Z),Q=/\/\*#([\s\S]*?)\*\//g,K=/function\s+(\w+)\s*\(([^)]*)\)\s*(?:(-[>?!])\s*('[^']*'|"[^"]*"|[^\s{]+)|:\s*(\w+))?\s*\{/g,H=[],Y;while((Y=Q.exec(Z))!==null){if(X[Y.index]!==0)continue;let W=Y[1],G=W.split(`
395
- `),J=G.filter((L)=>L.trim().length>0).reduce((L,_)=>{let U=_.match(/^(\s*)/)?.[1].length||0;return Math.min(L,U)},1/0);if(J>0&&J<1/0)W=G.map((L)=>L.slice(J)).join(`
396
- `);H.push({type:"doc",index:Y.index,data:W.trim()})}while((Y=K.exec(Z))!==null){let W=Y[1],G=Y[2],J=Y[3]||"",L=Y[4]||"",_=Y[5]||"",U=`function ${W}(${G})`;if(J)U+=` ${J} ${L}`;else if(_)U+=`: ${_}`;H.push({type:"function",index:Y.index,data:{name:W,signature:U}})}H.sort((W,G)=>W.index-G.index);for(let W of H)if(W.type==="doc")$.push({type:"doc",content:W.data});else $.push({type:"function",name:W.data.name,signature:W.data.signature});let z=$.map((W)=>{if(W.type==="doc")return W.content;else return`\`\`\`tjs
388
+ `)+C,warnings:K.length>0?K:void 0}}let F=j.transpileModule(Z,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText;for(let[B,P]of Object.entries(J)){let C={params:Object.fromEntries(Object.entries(P.params).map(([T,S])=>[T,{type:S.type.kind,required:S.required,default:S.default}])),returns:P.returns?{type:P.returns.kind}:void 0};if(P.typeParams)C.typeParams=P.typeParams;let O=JSON.stringify(C,null,2);F+=`
389
+ ${B}.__tjs = ${O};
390
+ `}for(let[B,P]of Object.entries(U)){let C={constructor:P.constructor?{params:Object.fromEntries(Object.entries(P.constructor.params??{}).map(([T,S])=>[T,{type:S.type.kind,required:S.required,default:S.default}]))}:void 0,methods:Object.fromEntries(Object.entries(P.methods??{}).map(([T,S])=>[T,{params:Object.fromEntries(Object.entries(S.params??{}).map(([g,m])=>[g,{type:m.type.kind,required:m.required}])),returns:S.returns?{type:S.returns.kind}:void 0}])),staticMethods:Object.fromEntries(Object.entries(P.staticMethods??{}).map(([T,S])=>[T,{params:Object.fromEntries(Object.entries(S.params??{}).map(([g,m])=>[g,{type:m.type.kind,required:m.required}])),returns:S.returns?{type:S.returns.kind}:void 0}]))};if(P.typeParams)C.typeParams=P.typeParams;let O=JSON.stringify(C,null,2);F+=`
391
+ ${B}.__tjs = ${O};
392
+ `,F+=`
393
+ ${D7(B)}
394
+ `}return{code:F,types:J,classes:Object.keys(U).length>0?U:void 0,warnings:K.length>0?K:void 0}}import{s as I7}from"tosijs-schema";function R7(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function H4(Z){return I7.infer(Z)}function o4(Z){return H4(Z)}o4.type=R7;o4.infer=H4;var w5=new Proxy(o4,{get(Z,$){if($==="type")return R7;if($==="infer")return H4;return I7[$]},apply(Z,$,X){return H4(X[0])}});async function Y4(Z){let $=`${$1}:${Z}`;if(typeof crypto<"u"&&crypto.subtle){let K=new TextEncoder().encode($),H=await crypto.subtle.digest("SHA-256",K);return Array.from(new Uint8Array(H)).map((z)=>z.toString(16).padStart(2,"0")).join("")}let X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}function F5(Z){let $=`${$1}:${Z}`,X=5381;for(let Q=0;Q<$.length;Q++)X=(X<<5)+X+$.charCodeAt(Q)>>>0;return X.toString(16)}var j5="tjs-metadata-cache",P5=1,s="modules";class s4{db=null;stats={hits:0,misses:0};pendingOpen=null;async open(){if(this.db)return;if(this.pendingOpen)return this.pendingOpen;this.pendingOpen=this._open(),await this.pendingOpen,this.pendingOpen=null}async _open(){return new Promise((Z,$)=>{if(typeof indexedDB>"u"){Z();return}let X=indexedDB.open(j5,P5);X.onerror=()=>{console.warn("MetadataCache: Failed to open IndexedDB",X.error),Z()},X.onsuccess=()=>{this.db=X.result,Z()},X.onupgradeneeded=(Q)=>{let K=Q.target.result;if(!K.objectStoreNames.contains(s)){let H=K.createObjectStore(s,{keyPath:"hash"});H.createIndex("timestamp","timestamp"),H.createIndex("version","version")}}})}async get(Z){if(!this.db){this.stats.misses++;return}let $=await Y4(Z);return new Promise((X)=>{let H=this.db.transaction(s,"readonly").objectStore(s).get($);H.onerror=()=>{this.stats.misses++,X(void 0)},H.onsuccess=()=>{let Y=H.result;if(Y&&Y.version!==$1){this.stats.misses++,X(void 0);return}if(Y)this.stats.hits++;else this.stats.misses++;X(Y)}})}async getTranspile(Z){return(await this.get(Z))?.transpile}async getTJS(Z){return(await this.get(Z))?.tjs}async setTranspile(Z,$){await this._set(Z,{transpile:$})}async setTJS(Z,$){await this._set(Z,{tjs:$})}async _set(Z,$){if(!this.db)return;let X=await Y4(Z);return new Promise((Q,K)=>{let Y=this.db.transaction(s,"readwrite").objectStore(s),z=Y.get(X);z.onsuccess=()=>{let W=z.result,G={hash:X,version:$1,timestamp:Date.now(),transpile:$.transpile??W?.transpile,tjs:$.tjs??W?.tjs},J=Y.put(G);J.onerror=()=>K(J.error),J.onsuccess=()=>Q()},z.onerror=()=>K(z.error)})}async delete(Z){if(!this.db)return;let $=await Y4(Z);return new Promise((X,Q)=>{let Y=this.db.transaction(s,"readwrite").objectStore(s).delete($);Y.onerror=()=>Q(Y.error),Y.onsuccess=()=>X()})}async clear(){if(!this.db)return;return new Promise((Z,$)=>{let K=this.db.transaction(s,"readwrite").objectStore(s).clear();K.onerror=()=>$(K.error),K.onsuccess=()=>{this.stats={hits:0,misses:0},Z()}})}async prune(Z){if(!this.db)return 0;let $=Date.now()-Z;return new Promise((X,Q)=>{let Y=this.db.transaction(s,"readwrite").objectStore(s).index("timestamp"),z=IDBKeyRange.upperBound($),W=0,G=Y.openCursor(z);G.onsuccess=(J)=>{let U=J.target.result;if(U)U.delete(),W++,U.continue();else X(W)},G.onerror=()=>Q(G.error)})}async pruneOldVersions(){if(!this.db)return 0;return new Promise((Z,$)=>{let Q=this.db.transaction(s,"readwrite").objectStore(s),K=0,H=Q.openCursor();H.onsuccess=(Y)=>{let z=Y.target.result;if(z){if(z.value.version!==$1)z.delete(),K++;z.continue()}else Z(K)},H.onerror=()=>$(H.error)})}async getStats(){let Z=await this.count(),$=await this.estimateSize(),X=this.stats.hits+this.stats.misses,Q=X>0?this.stats.hits/X:0;return{entries:Z,bytes:$,hits:this.stats.hits,misses:this.stats.misses,hitRate:Q}}async count(){if(!this.db)return 0;return new Promise((Z,$)=>{let K=this.db.transaction(s,"readonly").objectStore(s).count();K.onerror=()=>$(K.error),K.onsuccess=()=>Z(K.result)})}async estimateSize(){if(!this.db)return 0;if(typeof navigator<"u"&&navigator.storage?.estimate)try{return(await navigator.storage.estimate()).usage??0}catch{}return new Promise((Z,$)=>{let Q=this.db.transaction(s,"readonly").objectStore(s),K=0,H=Q.openCursor();H.onsuccess=(Y)=>{let z=Y.target.result;if(z)K+=JSON.stringify(z.value).length*2,z.continue();else Z(K)},H.onerror=()=>$(H.error)})}close(){if(this.db)this.db.close(),this.db=null}isAvailable(){return this.db!==null}resetStats(){this.stats={hits:0,misses:0}}}var D0=null;async function z4(){if(!D0)D0=new s4,await D0.open();return D0}function V5(Z){D0=Z}function W4(Z,$,X,Q,K){if(!X)X=E;(function H(Y,z,W){var G=W||Y.type;if(X[G](Y,z,H),$[G])$[G](Y,z)})(Z,Q,K)}function B7(Z,$,X,Q,K){var H=[];if(!X)X=E;(function Y(z,W,G){var J=G||z.type,U=z!==H[H.length-1];if(U)H.push(z);if(X[J](z,W,Y),$[J])$[J](z,W||H,H);if(U)H.pop()})(Z,Q,K)}function a4(Z,$,X){X(Z,$)}function y1(Z,$,X){}var E={};E.Program=E.BlockStatement=E.StaticBlock=function(Z,$,X){for(var Q=0,K=Z.body;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Statement")}};E.Statement=a4;E.EmptyStatement=y1;E.ExpressionStatement=E.ParenthesizedExpression=E.ChainExpression=function(Z,$,X){return X(Z.expression,$,"Expression")};E.IfStatement=function(Z,$,X){if(X(Z.test,$,"Expression"),X(Z.consequent,$,"Statement"),Z.alternate)X(Z.alternate,$,"Statement")};E.LabeledStatement=function(Z,$,X){return X(Z.body,$,"Statement")};E.BreakStatement=E.ContinueStatement=y1;E.WithStatement=function(Z,$,X){X(Z.object,$,"Expression"),X(Z.body,$,"Statement")};E.SwitchStatement=function(Z,$,X){X(Z.discriminant,$,"Expression");for(var Q=0,K=Z.cases;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.SwitchCase=function(Z,$,X){if(Z.test)X(Z.test,$,"Expression");for(var Q=0,K=Z.consequent;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Statement")}};E.ReturnStatement=E.YieldExpression=E.AwaitExpression=function(Z,$,X){if(Z.argument)X(Z.argument,$,"Expression")};E.ThrowStatement=E.SpreadElement=function(Z,$,X){return X(Z.argument,$,"Expression")};E.TryStatement=function(Z,$,X){if(X(Z.block,$,"Statement"),Z.handler)X(Z.handler,$);if(Z.finalizer)X(Z.finalizer,$,"Statement")};E.CatchClause=function(Z,$,X){if(Z.param)X(Z.param,$,"Pattern");X(Z.body,$,"Statement")};E.WhileStatement=E.DoWhileStatement=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.body,$,"Statement")};E.ForStatement=function(Z,$,X){if(Z.init)X(Z.init,$,"ForInit");if(Z.test)X(Z.test,$,"Expression");if(Z.update)X(Z.update,$,"Expression");X(Z.body,$,"Statement")};E.ForInStatement=E.ForOfStatement=function(Z,$,X){X(Z.left,$,"ForInit"),X(Z.right,$,"Expression"),X(Z.body,$,"Statement")};E.ForInit=function(Z,$,X){if(Z.type==="VariableDeclaration")X(Z,$);else X(Z,$,"Expression")};E.DebuggerStatement=y1;E.FunctionDeclaration=function(Z,$,X){return X(Z,$,"Function")};E.VariableDeclaration=function(Z,$,X){for(var Q=0,K=Z.declarations;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.VariableDeclarator=function(Z,$,X){if(X(Z.id,$,"Pattern"),Z.init)X(Z.init,$,"Expression")};E.Function=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");for(var Q=0,K=Z.params;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Pattern")}X(Z.body,$,Z.expression?"Expression":"Statement")};E.Pattern=function(Z,$,X){if(Z.type==="Identifier")X(Z,$,"VariablePattern");else if(Z.type==="MemberExpression")X(Z,$,"MemberPattern");else X(Z,$)};E.VariablePattern=y1;E.MemberPattern=a4;E.RestElement=function(Z,$,X){return X(Z.argument,$,"Pattern")};E.ArrayPattern=function(Z,$,X){for(var Q=0,K=Z.elements;Q<K.length;Q+=1){var H=K[Q];if(H)X(H,$,"Pattern")}};E.ObjectPattern=function(Z,$,X){for(var Q=0,K=Z.properties;Q<K.length;Q+=1){var H=K[Q];if(H.type==="Property"){if(H.computed)X(H.key,$,"Expression");X(H.value,$,"Pattern")}else if(H.type==="RestElement")X(H.argument,$,"Pattern")}};E.Expression=a4;E.ThisExpression=E.Super=E.MetaProperty=y1;E.ArrayExpression=function(Z,$,X){for(var Q=0,K=Z.elements;Q<K.length;Q+=1){var H=K[Q];if(H)X(H,$,"Expression")}};E.ObjectExpression=function(Z,$,X){for(var Q=0,K=Z.properties;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.FunctionExpression=E.ArrowFunctionExpression=E.FunctionDeclaration;E.SequenceExpression=function(Z,$,X){for(var Q=0,K=Z.expressions;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Expression")}};E.TemplateLiteral=function(Z,$,X){for(var Q=0,K=Z.quasis;Q<K.length;Q+=1){var H=K[Q];X(H,$)}for(var Y=0,z=Z.expressions;Y<z.length;Y+=1){var W=z[Y];X(W,$,"Expression")}};E.TemplateElement=y1;E.UnaryExpression=E.UpdateExpression=function(Z,$,X){X(Z.argument,$,"Expression")};E.BinaryExpression=E.LogicalExpression=function(Z,$,X){X(Z.left,$,"Expression"),X(Z.right,$,"Expression")};E.AssignmentExpression=E.AssignmentPattern=function(Z,$,X){X(Z.left,$,"Pattern"),X(Z.right,$,"Expression")};E.ConditionalExpression=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.consequent,$,"Expression"),X(Z.alternate,$,"Expression")};E.NewExpression=E.CallExpression=function(Z,$,X){if(X(Z.callee,$,"Expression"),Z.arguments)for(var Q=0,K=Z.arguments;Q<K.length;Q+=1){var H=K[Q];X(H,$,"Expression")}};E.MemberExpression=function(Z,$,X){if(X(Z.object,$,"Expression"),Z.computed)X(Z.property,$,"Expression")};E.ExportNamedDeclaration=E.ExportDefaultDeclaration=function(Z,$,X){if(Z.declaration)X(Z.declaration,$,Z.type==="ExportNamedDeclaration"||Z.declaration.id?"Statement":"Expression");if(Z.source)X(Z.source,$,"Expression")};E.ExportAllDeclaration=function(Z,$,X){if(Z.exported)X(Z.exported,$);X(Z.source,$,"Expression")};E.ImportDeclaration=function(Z,$,X){for(var Q=0,K=Z.specifiers;Q<K.length;Q+=1){var H=K[Q];X(H,$)}X(Z.source,$,"Expression")};E.ImportExpression=function(Z,$,X){X(Z.source,$,"Expression")};E.ImportSpecifier=E.ImportDefaultSpecifier=E.ImportNamespaceSpecifier=E.Identifier=E.PrivateIdentifier=E.Literal=y1;E.TaggedTemplateExpression=function(Z,$,X){X(Z.tag,$,"Expression"),X(Z.quasi,$,"Expression")};E.ClassDeclaration=E.ClassExpression=function(Z,$,X){return X(Z,$,"Class")};E.Class=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");if(Z.superClass)X(Z.superClass,$,"Expression");X(Z.body,$)};E.ClassBody=function(Z,$,X){for(var Q=0,K=Z.body;Q<K.length;Q+=1){var H=K[Q];X(H,$)}};E.MethodDefinition=E.PropertyDefinition=E.Property=function(Z,$,X){if(Z.computed)X(Z.key,$,"Expression");if(Z.value)X(Z.value,$,"Expression")};var O5={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function N5(Z,$={}){let X={...O5,...$},Q=[],K;try{K=M1(Z,{filename:X.filename,colonShorthand:!0}).ast}catch(Y){return{diagnostics:[{severity:"error",message:Y.message,line:Y.loc?.line,column:Y.loc?.column,rule:"parse-error"}],valid:!1}}let H=[M7()];if(B7(K,{FunctionDeclaration(Y,z,W){let G=M7();H.push(G);for(let J of Y.params)E5(G,J,"parameter");if(Y.id)(H[H.length-2]||H[0]).declarations.set(Y.id.name,{node:Y.id,kind:"function",used:!1})},VariableDeclaration(Y){let z=H[H.length-1];for(let W of Y.declarations)if(W.id.type==="Identifier")z.declarations.set(W.id.name,{node:W.id,kind:Y.kind,used:!1})}}),W4(K,{Identifier(Y){for(let z=H.length-1;z>=0;z--){let W=H[z].declarations.get(Y.name);if(W){W.used=!0;break}}}}),X.unusedVariables)for(let Y of H)for(let[z,W]of Y.declarations){if(z.startsWith("_"))continue;if(!W.used&&W.kind!=="function")Q.push({severity:"warning",message:`'${z}' is declared but never used`,line:W.node.loc?.start?.line,column:W.node.loc?.start?.column,rule:"no-unused-vars"})}if(X.unreachableCode)W4(K,{BlockStatement(Y){let z=!1;for(let W of Y.body){if(z){Q.push({severity:"warning",message:"Unreachable code after return statement",line:W.loc?.start?.line,column:W.loc?.start?.column,rule:"no-unreachable"});break}if(W.type==="ReturnStatement")z=!0}}});if(X.noExplicitNew)W4(K,{NewExpression(Y){let z="class";if(Y.callee.type==="Identifier")z=Y.callee.name;else if(Y.callee.type==="MemberExpression"){if(Y.callee.property.type==="Identifier")z=Y.callee.property.name}Q.push({severity:"warning",message:`Unnecessary 'new' keyword. In TJS, classes are callable without 'new': ${z}(...) instead of new ${z}(...)`,line:Y.loc?.start?.line,column:Y.loc?.start?.column,rule:"no-explicit-new"})}});return{diagnostics:Q,valid:Q.filter((Y)=>Y.severity==="error").length===0}}function M7(){return{declarations:new Map}}function E5(Z,$,X){if($.type==="Identifier")Z.declarations.set($.name,{node:$,kind:X,used:!1});else if($.type==="AssignmentPattern"&&$.left.type==="Identifier")Z.declarations.set($.left.name,{node:$.left,kind:X,used:!1})}function T5(Z){let $=[],X=0,Q=null;for(let K=0;K<Z.length;K++){let H=Z[K],Y=K>0?Z[K-1]:"";if(!Q&&(H==='"'||H==="'"||H==="`"))Q=H;else if(Q&&H===Q&&Y!=="\\")Q=null;if(!Q){if(H==="{")X++;if(H==="}")X--}$[K]=X}return $}function w7(Z){let $=[],X=T5(Z),Q=/\/\*#([\s\S]*?)\*\//g,K=/function\s+(\w+)\s*\(([^)]*)\)\s*(?:(-[>?!])\s*('[^']*'|"[^"]*"|[^\s{]+)|:\s*(\w+))?\s*\{/g,H=[],Y;while((Y=Q.exec(Z))!==null){if(X[Y.index]!==0)continue;let W=Y[1],G=W.split(`
395
+ `),J=G.filter((U)=>U.trim().length>0).reduce((U,_)=>{let L=_.match(/^(\s*)/)?.[1].length||0;return Math.min(U,L)},1/0);if(J>0&&J<1/0)W=G.map((U)=>U.slice(J)).join(`
396
+ `);H.push({type:"doc",index:Y.index,data:W.trim()})}while((Y=K.exec(Z))!==null){let W=Y[1],G=Y[2],J=Y[3]||"",U=Y[4]||"",_=Y[5]||"",L=`function ${W}(${G})`;if(J)L+=` ${J} ${U}`;else if(_)L+=`: ${_}`;H.push({type:"function",index:Y.index,data:{name:W,signature:L}})}H.sort((W,G)=>W.index-G.index);for(let W of H)if(W.type==="doc")$.push({type:"doc",content:W.data});else $.push({type:"function",name:W.data.name,signature:W.data.signature});let z=$.map((W)=>{if(W.type==="doc")return W.content;else return`\`\`\`tjs
397
397
  ${W.signature}
398
398
  \`\`\``}).join(`
399
399
 
@@ -410,8 +410,8 @@ ${K.signature}
410
410
  `}Q+=`
411
411
  `}if(H?.returns)Q+=`**Returns:** ${H.returns.kind||"void"}
412
412
 
413
- `}return Q.trim()||"*No documentation available*"}import{s as A,validate as r4,filter as N7}from"tosijs-schema";var G4=Symbol.for("tjs.equals");function _4(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[G4]==="function")return Z[G4]($);if($!==null&&typeof $==="object"&&typeof $[G4]==="function")return $[G4](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((K,H)=>_4(K,$[H]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((K)=>_4(Z[K],$[K]))}class H1{$error=!0;message;op;cause;constructor(Z,$,X){this.message=Z,this.op=$,this.cause=X}toString(){return`AgentError[${this.op}]: ${this.message}`}toJSON(){return{$error:!0,message:this.message,op:this.op}}}function k5(Z){return Z instanceof H1||Z&&Z.$error===!0}var o1=new Map,g5=3600000,b5=102400,t4="proc_";function e4(Z){return typeof Z==="string"&&Z.startsWith(t4)}function Z6(Z){let $=o1.get(Z);if(!$)throw Error(`Procedure not found: ${Z}`);if(Date.now()>$.expiresAt)throw o1.delete(Z),Error(`Procedure expired: ${Z}`);return $.ast}function v5(){if(typeof crypto<"u"&&crypto.randomUUID)return t4+crypto.randomUUID();return t4+Math.random().toString(36).slice(2)+Date.now().toString(36)}var E7=new Set(["__proto__","constructor","prototype"]);function F7(Z){if(E7.has(Z))throw Error(`Security Error: Access to '${Z}' is forbidden`)}var f5=new Set(["localhost","127.0.0.1","0.0.0.0","[::1]","metadata.google.internal"]);function y5(Z){try{let $=new URL(Z);if($.protocol!=="http:"&&$.protocol!=="https:")return!0;let X=$.hostname.toLowerCase();if(f5.has(X))return!0;if(X.endsWith(".internal")||X.endsWith(".local"))return!0;if(X==="169.254.169.254")return!0;if(/^10\./.test(X)||/^192\.168\./.test(X)||/^172\.(1[6-9]|2\d|3[01])\./.test(X))return!0;return!1}catch{return!0}}function h5(Z){if(/\([^)]*[+*][^)]*\)[+*]/.test(Z))return!0;if(/\(([^|)]+)\|\1\)[+*]/.test(Z))return!0;if(/\(\.\*\)\+/.test(Z))return!0;if(/\(\.\+\)\+/.test(Z))return!0;if(/\(\[.*\]\+\)\+/.test(Z))return!0;return!1}function O1(Z){return{...Z,state:Object.create(Z.state)}}function x5(Z,$){let X={},Q=new Set([...Object.keys(Z),...Object.keys($)]);for(let K of Q){let H=Z[K],Y=$[K];if(Y!==H)X[K]=Y}return X}function N(Z,$){if(Z&&typeof Z==="object"&&Z.$kind==="arg")return $.args[Z.path];if(Z&&typeof Z==="object"&&Z.$expr)return n(Z,$);if(typeof Z==="string"){if(Z.startsWith("args.")&&!("args"in $.state))return $.args[Z.replace("args.","")];if(Z.includes(".")){let X=Z.split(".");for(let K of X)if(E7.has(K))throw Error(`Security Error: Access to '${K}' is forbidden`);let Q=$.state[X[0]];if(Q!==void 0){for(let K=1;K<X.length;K++)Q=Q?.[X[K]];return Q}}if(Z in $.state)return $.state[Z];return Z}if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Z.constructor===Object){let X={};for(let Q of Object.keys(Z))X[Q]=N(Z[Q],$);return X}if(Array.isArray(Z))return Z.map((X)=>N(X,$));return Z}function h1(Z,$,X){return new Proxy($,{get(Q,K){if(K in Q)return Q[K];let H=X?.[K];if(H)throw Error(`${Z}.${K} is not available. ${H}`);throw Error(`${Z}.${K} is not supported in AsyncJS. Check docs for available ${Z} methods.`)}})}function c1(Z){if(Z===null)return{type:"null"};if(Z===void 0)return{};if(typeof Z==="object"&&Z!==null&&"type"in Z&&typeof Z.type==="string")return Z;if(typeof Z==="object"&&Z!==null&&"schema"in Z&&typeof Z.schema==="object")return Z.schema;let $=typeof Z;if($==="string")return{type:"string"};if($==="number")return Number.isInteger(Z)?{type:"integer"}:{type:"number"};if($==="boolean")return{type:"boolean"};if(Array.isArray(Z)){if(Z.length===0)return{type:"array"};return{type:"array",items:c1(Z[0])}}if($==="object"){let X={},Q=[];for(let[K,H]of Object.entries(Z))X[K]=c1(H),Q.push(K);return{type:"object",properties:X,required:Q}}return{}}var j1={Math:h1("Math",{PI:Math.PI,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,SQRT2:Math.SQRT2,SQRT1_2:Math.SQRT1_2,abs:Math.abs,ceil:Math.ceil,floor:Math.floor,round:Math.round,trunc:Math.trunc,sign:Math.sign,sqrt:Math.sqrt,cbrt:Math.cbrt,pow:Math.pow,exp:Math.exp,expm1:Math.expm1,log:Math.log,log2:Math.log2,log10:Math.log10,log1p:Math.log1p,sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,atan2:Math.atan2,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,asinh:Math.asinh,acosh:Math.acosh,atanh:Math.atanh,hypot:Math.hypot,min:Math.min,max:Math.max,clz32:Math.clz32,imul:Math.imul,fround:Math.fround,random:()=>{if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint32Array(1);return crypto.getRandomValues(Z),Z[0]/4294967296}return Math.random()}}),JSON:h1("JSON",{parse:(Z)=>JSON.parse(Z),stringify:(Z,$,X)=>JSON.stringify(Z,$,X)}),console:h1("console",{log:(...Z)=>{return},warn:(...Z)=>{return},error:(...Z)=>{return},info:(...Z)=>{return}},{table:"Use console.log with JSON.stringify for structured data.",dir:"Use console.log instead.",trace:"Stack traces are not available in AsyncJS."}),Array:h1("Array",{isArray:(Z)=>Array.isArray(Z),from:(Z,$,X)=>Array.from(Z,$,X),of:(...Z)=>Array.of(...Z)},{prototype:"Prototype access is not allowed."}),Object:h1("Object",{keys:(Z)=>Object.keys(Z),values:(Z)=>Object.values(Z),entries:(Z)=>Object.entries(Z),fromEntries:(Z)=>Object.fromEntries(Z),assign:(Z,...$)=>Object.assign({},Z,...$),hasOwn:(Z,$)=>Object.hasOwn(Z,$)},{prototype:"Prototype access is not allowed.",create:"Use object literals instead.",defineProperty:"Property descriptors are not supported.",getPrototypeOf:"Prototype access is not allowed.",setPrototypeOf:"Prototype modification is not allowed."}),String:h1("String",{fromCharCode:(...Z)=>String.fromCharCode(...Z),fromCodePoint:(...Z)=>String.fromCodePoint(...Z)}),Number:h1("Number",{isNaN:Number.isNaN,isFinite:Number.isFinite,isInteger:Number.isInteger,isSafeInteger:Number.isSafeInteger,parseFloat,parseInt,MAX_VALUE:Number.MAX_VALUE,MIN_VALUE:Number.MIN_VALUE,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,POSITIVE_INFINITY:Number.POSITIVE_INFINITY,NEGATIVE_INFINITY:Number.NEGATIVE_INFINITY,NaN:Number.NaN,EPSILON:Number.EPSILON}),parseInt,parseFloat,isNaN,isFinite,encodeURI,decodeURI,encodeURIComponent,decodeURIComponent,undefined:void 0,null:null,NaN:NaN,Infinity:1/0,filter:(Z,$)=>{let X=c1($),Q=N7(Z,X);if(Q instanceof Error)throw Q;return Q},Schema:{...A,response:(Z,$)=>{let X=$?.schema!=null?$.schema:c1($);return{type:"json_schema",json_schema:{name:Z,strict:!0,schema:X}}},fromExample:(Z)=>c1(Z),isValid:(Z,$)=>{if($?.schema!=null)return r4(Z,$);return r4(Z,c1($))}},Set:(Z=[])=>{let $=[...new globalThis.Set(Z)];return{add(X){if(!$.includes(X))$.push(X);return this},remove(X){let Q=$.indexOf(X);if(Q!==-1)$.splice(Q,1);return this},clear(){return $.length=0,this},has(X){return $.includes(X)},get size(){return $.length},toArray(){return[...$]},union(X){let Q=X?.toArray?.()??X??[];return j1.Set([...$,...Q])},intersection(X){let Q=X?.toArray?.()??X??[];return j1.Set($.filter((K)=>Q.includes(K)))},diff(X){let Q=X?.toArray?.()??X??[];return j1.Set($.filter((K)=>!Q.includes(K)))},forEach(X){$.forEach(X)},map(X){return j1.Set($.map(X))},filter(X){return j1.Set($.filter(X))},toJSON(){return[...$]}}},Date:(()=>{let Z=(X)=>({get value(){return X.toISOString()},get timestamp(){return X.getTime()},get year(){return X.getFullYear()},get month(){return X.getMonth()+1},get day(){return X.getDate()},get hours(){return X.getHours()},get minutes(){return X.getMinutes()},get seconds(){return X.getSeconds()},get dayOfWeek(){return X.getDay()},add({years:Q=0,months:K=0,days:H=0,hours:Y=0,minutes:z=0,seconds:W=0,ms:G=0}={}){let J=new globalThis.Date(X.getTime());if(Q)J.setFullYear(J.getFullYear()+Q);if(K)J.setMonth(J.getMonth()+K);if(H)J.setDate(J.getDate()+H);if(Y)J.setHours(J.getHours()+Y);if(z)J.setMinutes(J.getMinutes()+z);if(W)J.setSeconds(J.getSeconds()+W);if(G)J.setMilliseconds(J.getMilliseconds()+G);return Z(J)},diff(Q,K="ms"){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime(),Y=X.getTime()-H;switch(K){case"seconds":return Y/1000;case"minutes":return Y/60000;case"hours":return Y/3600000;case"days":return Y/86400000;default:return Y}},format(Q="ISO"){if(Q==="ISO")return X.toISOString();if(Q==="date")return X.toISOString().split("T")[0];if(Q==="time")return X.toISOString().split("T")[1].split(".")[0];return Q.replace("YYYY",String(X.getFullYear())).replace("MM",String(X.getMonth()+1).padStart(2,"0")).replace("DD",String(X.getDate()).padStart(2,"0")).replace("HH",String(X.getHours()).padStart(2,"0")).replace("mm",String(X.getMinutes()).padStart(2,"0")).replace("ss",String(X.getSeconds()).padStart(2,"0"))},isBefore(Q){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()<K},isAfter(Q){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()>K},toString(){return X.toISOString()},toJSON(){return X.toISOString()}}),$=(X)=>{let Q=X!==void 0?new globalThis.Date(X):new globalThis.Date;if(isNaN(Q.getTime()))throw Error(`Invalid date: ${X}`);return Z(Q)};return $.now=()=>globalThis.Date.now(),$.parse=(X)=>Z(new globalThis.Date(X)),$})()},J4={RegExp:"RegExp is not available. Use string methods or the regexMatch atom.",Promise:"Promise is not needed. All operations are implicitly async.",Map:"Map is not available. Use plain objects instead.",WeakSet:"WeakSet is not available.",WeakMap:"WeakMap is not available.",Symbol:"Symbol is not available.",Proxy:"Proxy is not available.",Reflect:"Reflect is not available.",Function:"Function constructor is not available. Define functions normally.",eval:"eval is not available. Code is compiled, not evaluated.",setTimeout:"setTimeout is not available. Use the delay atom.",setInterval:"setInterval is not available. Use while loops with delay.",fetch:"fetch is not available. Use the httpFetch atom.",require:"require is not available. Atoms must be registered with the VM.",import:"import is not available. Atoms must be registered with the VM.",process:"process is not available. AsyncJS runs in a sandboxed environment.",window:"window is not available. AsyncJS runs in a sandboxed environment.",document:"document is not available. AsyncJS runs in a sandboxed environment.",global:"global is not available. AsyncJS runs in a sandboxed environment.",globalThis:"globalThis is not available. Use builtins directly."},u5=0.01,j7=0.0001,P7=0.001,d5=new Set(["concat","slice","map","filter","flatMap","flat","toReversed","toSorted","toSpliced","repeat","padStart","padEnd","split","join","replace","replaceAll","substring","substr","trim","trimStart","trimEnd","toLowerCase","toUpperCase","match","matchAll","parse","stringify"]);function n(Z,$){if(Z===null||Z===void 0)return Z;if(typeof Z!=="object"||!("$expr"in Z))return Z;if($.fuel){if($.fuel.current-=u5,$.fuel.current<=0)throw Error("Out of Fuel")}switch(Z.$expr){case"literal":return Z.value;case"ident":{if(Z.name in $.state)return $.state[Z.name];if(Z.name in $.args)return $.args[Z.name];if(Z.name in j1)return j1[Z.name];if(Z.name in J4)throw Error(J4[Z.name]);return}case"member":{let X=n(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.property;return F7(Q),X?.[Q]}case"binary":{let X=n(Z.left,$),Q=n(Z.right,$);switch(Z.op){case"+":{let K=X+Q;if(typeof K==="string"&&$.fuel){if($.fuel.current-=K.length*j7,$.fuel.current<=0){$.error=new H1("Out of Fuel","expr.concat");return}}return K}case"-":return X-Q;case"*":return X*Q;case"/":return X/Q;case"%":return X%Q;case"**":return X**Q;case">":return X>Q;case"<":return X<Q;case">=":return X>=Q;case"<=":return X<=Q;case"==":return _4(X,Q);case"!=":return!_4(X,Q);case"===":return X===Q;case"!==":return X!==Q;default:throw Error(`Unknown binary operator: ${Z.op}`)}}case"unary":{let X=n(Z.argument,$);switch(Z.op){case"!":return!X;case"-":return-X;case"+":return+X;case"typeof":return typeof X;default:throw Error(`Unknown unary operator: ${Z.op}`)}}case"logical":{let X=n(Z.left,$);if(Z.op==="&&")return X?n(Z.right,$):X;else if(Z.op==="??")return X??n(Z.right,$);else return X?X:n(Z.right,$)}case"conditional":return n(Z.test,$)?n(Z.consequent,$):n(Z.alternate,$);case"array":return Z.elements.map((X)=>n(X,$));case"object":{let X={};for(let Q of Z.properties)X[Q.key]=n(Q.value,$);return X}case"call":{if(Z.callee==="Error"){let Q=Z.arguments.map((H)=>n(H,$)),K=typeof Q[0]==="string"?Q[0]:"Error";$.error=new H1(K,"Error");return}if(Z.callee in j1){let Q=j1[Z.callee];if(typeof Q==="function"){let K=Z.arguments.map((H)=>n(H,$));return Q(...K)}}if(!$.resolver(Z.callee)){if(Z.callee in J4)throw Error(J4[Z.callee]);throw Error(`Unknown function: ${Z.callee}`)}throw Error(`Atom calls in expressions not yet supported: ${Z.callee}`)}case"methodCall":{let X=n(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.method;if(F7(Q),X===null||X===void 0)throw Error(`Cannot call method '${Q}' on ${X}`);let K=X[Q];if(typeof K!=="function")throw Error(`'${Q}' is not a function`);let H=Z.arguments.map((z)=>n(z,$)),Y=K.apply(X,H);if($.fuel&&d5.has(Q)){let z=0;if(typeof Y==="string")z=Y.length*j7;else if(Array.isArray(Y))z=Y.length*P7;else if(typeof Y==="object"&&Y!==null)z=Object.keys(Y).length*P7;if($.fuel.current-=z,$.fuel.current<=0){$.error=new H1("Out of Fuel",`expr.${Q}`);return}}return Y}default:throw Error(`Unknown expression type: ${Z.$expr}`)}}function S(Z,$,X,Q,K={}){let{docs:H="",timeoutMs:Y=1000,cost:z=1}=typeof K==="string"?{docs:K}:K;return{op:Z,inputSchema:$,outputSchema:X,exec:async(G,J)=>{let{op:L,result:_,...U}=G;if(J.error)return;let D=J.trace?{...J.state}:null,R=J.fuel.current,w,B;try{let V=J.costOverrides?.[Z],M=V!==void 0?V:z,j=typeof M==="function"?M(U,J):M;if((J.fuel.current-=j)<=0){J.error=new H1("Out of Fuel",Z);return}let I,P=async()=>Q(G,J);if(w=Y>0?await Promise.race([P(),new Promise((C,O)=>{I=setTimeout(()=>O(Error(`Atom '${Z}' timed out`)),Y)})]).finally(()=>clearTimeout(I)):await P(),G.result){if(J.consts.has(G.result))throw Error(`Cannot reassign const variable '${G.result}'`);if(w!==void 0&&X&&!r4(w,X)){J.error=new H1(`Output validation failed for '${Z}'`,Z);return}if(J.state[G.result]=w,G.resultConst)J.consts.add(G.result)}}catch(V){B=V.message||String(V),J.error=new H1(B,Z,V)}finally{if(J.trace&&D){let V=x5(D,J.state);J.trace.push({op:Z,input:U,stateDiff:V,result:w,error:B,fuelBefore:R,fuelAfter:J.fuel.current,timestamp:new Date().toISOString()})}}},docs:H,timeoutMs:Y,cost:z,create:(G)=>({op:Z,...G})}}var J1=S("seq",A.object({steps:A.array(A.any)}),void 0,async({steps:Z},$)=>{for(let X of Z){if($.output!==void 0)return;if($.error)return;let Q=$.resolver(X.op);if(!Q)throw Error(`Unknown Atom: ${X.op}`);await Q.exec(X,$)}},{docs:"Sequence",timeoutMs:0,cost:0.1}),m5=S("if",A.object({condition:A.any,then:A.array(A.any),else:A.array(A.any).optional}),void 0,async(Z,$)=>{if(n(Z.condition,$))await J1.exec({op:"seq",steps:Z.then},$);else if(Z.else)await J1.exec({op:"seq",steps:Z.else},$)},{docs:"If/Else",timeoutMs:0,cost:0.1}),l5=S("while",A.object({condition:A.any,body:A.array(A.any)}),void 0,async(Z,$)=>{while(n(Z.condition,$)){if($.signal?.aborted)throw Error("Execution aborted");if(($.fuel.current-=0.1)<=0)throw Error("Out of Fuel");if(await J1.exec({op:"seq",steps:Z.body},$),$.output!==void 0)return}},{docs:"While Loop",timeoutMs:0,cost:0.1}),i5=S("return",void 0,A.any,async(Z,$)=>{if($.error)return $.output=$.error,$.error;if("value"in Z){let Q=N(Z.value,$);if(Q!==void 0&&Q!==null&&!k5(Q)&&(typeof Q!=="object"||Array.isArray(Q))){let K=new H1(`Agent must return an object, got ${Array.isArray(Q)?"array":typeof Q}`,"return");return $.error=K,$.output=K,K}return $.output=Q,Q}let X={};if(Z.schema?.properties){for(let Q of Object.keys(Z.schema.properties))X[Q]=$.state[Q];if(Z.filter!==!1){let Q=N7(X,Z.schema);if(!(Q instanceof Error))X=Q}}return $.output=X,X},{docs:"Return",cost:0.1}),p5=S("try",A.object({try:A.array(A.any),catch:A.array(A.any).optional,catchParam:A.string.optional}),void 0,async(Z,$)=>{if(await J1.exec({op:"seq",steps:Z.try},$),$.error&&Z.catch){let X=Z.catchParam||"error";$.state[X]=$.error.message,$.state.errorOp=$.error.op,$.error=void 0,await J1.exec({op:"seq",steps:Z.catch},$)}},{docs:"Try/Catch",timeoutMs:0,cost:0.1}),n5=S("Error",A.object({args:A.array(A.any).optional}),void 0,async(Z,$)=>{let X=Z.args?.[0]??"Error";$.error=new H1(String(X),"Error")},{docs:"Trigger error flow",cost:0.1}),c5=S("varSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);X.state[Z]=N($,X)},{docs:"Set Variable",cost:0.1}),o5=S("constSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);if(Z in X.state)throw Error(`Cannot redeclare variable '${Z}' as const`);X.state[Z]=N($,X),X.consts.add(Z)},{docs:"Set Const Variable (immutable)",cost:0.1}),s5=S("varGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{return N(Z,$)},{docs:"Get Variable",cost:0.1}),a5=S("varsImport",A.object({keys:A.union([A.array(A.string),A.record(A.string)])}),void 0,async({keys:Z},$)=>{if(Array.isArray(Z))for(let X of Z)$.state[X]=N({$kind:"arg",path:X},$);else for(let[X,Q]of Object.entries(Z))$.state[X]=N({$kind:"arg",path:Q},$)},{docs:"Import variables from args into the current scope, with optional renaming.",cost:0.2}),r5=S("varsLet",A.record(A.any),void 0,async(Z,$)=>{for(let X of Object.keys(Z)){if(X==="op"||X==="result")continue;$.state[X]=N(Z[X],$)}},{docs:"Initialize a set of variables in the current scope from the step object properties.",cost:0.1}),t5=S("varsExport",A.object({keys:A.union([A.array(A.string),A.record(A.string)])}),A.record(A.any),async({keys:Z},$)=>{let X={};if(Array.isArray(Z))for(let Q of Z)X[Q]=N(Q,$);else for(let[Q,K]of Object.entries(Z))X[Q]=N(K,$);return X},{docs:"Export variables from the current scope, with optional renaming.",cost:0.2}),e5=S("scope",A.object({steps:A.array(A.any)}),void 0,async({steps:Z},$)=>{let X=O1($);if(await J1.exec({op:"seq",steps:Z},X),X.output!==void 0)$.output=X.output},{docs:"Create new scope",timeoutMs:0,cost:0.1}),Z$=S("map",A.object({items:A.array(A.any),as:A.string,steps:A.array(A.any)}),A.array(A.any),async({items:Z,as:$,steps:X},Q)=>{let K=[],H=N(Z,Q);if(!Array.isArray(H))throw Error("map: items is not an array");for(let Y of H){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);z.state[$]=Y,await J1.exec({op:"seq",steps:X},z),K.push(z.state.result??null)}return K},{docs:"Map Array",timeoutMs:0,cost:1}),$$=S("filter",A.object({items:A.array(A.any),as:A.string,condition:A.any}),A.array(A.any),async({items:Z,as:$,condition:X},Q)=>{let K=[],H=N(Z,Q);if(!Array.isArray(H))throw Error("filter: items is not an array");for(let Y of H){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);if(z.state[$]=Y,n(X,z))K.push(Y)}return K},{docs:"Filter Array",timeoutMs:0,cost:1}),X$=S("reduce",A.object({items:A.array(A.any),as:A.string,accumulator:A.string,initial:A.any,steps:A.array(A.any)}),A.any,async({items:Z,as:$,accumulator:X,initial:Q,steps:K},H)=>{let Y=N(Z,H),z=N(Q,H);if(!Array.isArray(Y))throw Error("reduce: items is not an array");let W=z;for(let G of Y){if(H.signal?.aborted)throw Error("Execution aborted");let J=O1(H);J.state[$]=G,J.state[X]=W,await J1.exec({op:"seq",steps:K},J),W=J.state.result??W}return W},{docs:"Reduce Array",timeoutMs:0,cost:1}),Q$=S("find",A.object({items:A.array(A.any),as:A.string,condition:A.any}),A.any,async({items:Z,as:$,condition:X},Q)=>{let K=N(Z,Q);if(!Array.isArray(K))throw Error("find: items is not an array");for(let H of K){if(Q.signal?.aborted)throw Error("Execution aborted");let Y=O1(Q);if(Y.state[$]=H,n(X,Y))return H}return null},{docs:"Find in Array",timeoutMs:0,cost:1}),K$=S("push",A.object({list:A.array(A.any),item:A.any}),A.array(A.any),async({list:Z,item:$},X)=>{let Q=N(Z,X),K=N($,X);if(Array.isArray(Q))Q.push(K);return Q},{docs:"Push to Array",cost:1}),H$=S("len",A.object({list:A.any}),A.number,async({list:Z},$)=>{let X=N(Z,$);return Array.isArray(X)||typeof X==="string"?X.length:0},{docs:"Length",cost:1}),Y$=S("split",A.object({str:A.string,sep:A.string}),A.array(A.string),async({str:Z,sep:$},X)=>N(Z,X).split(N($,X)),{docs:"Split String",cost:1}),z$=S("join",A.object({list:A.array(A.string),sep:A.string}),A.string,async({list:Z,sep:$},X)=>N(Z,X).join(N($,X)),{docs:"Join String",cost:1}),W$=S("template",A.object({tmpl:A.string,vars:A.record(A.any)}),A.string,async({tmpl:Z,vars:$},X)=>{return N(Z,X).replace(/\{\{(\w+)\}\}/g,(K,H)=>String(N($[H],X)??""))},{docs:"String Template",cost:1}),G$=S("regexMatch",A.object({pattern:A.string,value:A.any}),A.boolean,async({pattern:Z,value:$},X)=>{if(h5(Z))throw Error(`Suspicious regex pattern rejected (potential ReDoS): ${Z}`);let Q=N($,X);return new RegExp(Z).test(Q)},{docs:"Returns true if the value matches the regex pattern.",cost:2}),J$=S("pick",A.object({obj:A.record(A.any),keys:A.array(A.string)}),A.record(A.any),async({obj:Z,keys:$},X)=>{let Q=N(Z,X),K=N($,X),H={};if(Q&&Array.isArray(K))K.forEach((Y)=>H[Y]=Q[Y]);return H},{docs:"Pick Keys",cost:1}),_$=S("omit",A.object({obj:A.record(A.any),keys:A.array(A.string)}),A.record(A.any),async({obj:Z,keys:$},X)=>{let Q=N(Z,X),K=new Set(N($,X)),H={};if(Q)Object.keys(Q).forEach((Y)=>{if(!K.has(Y))H[Y]=Q[Y]});return H},{docs:"Omit Keys",cost:1}),L$=S("merge",A.object({a:A.record(A.any),b:A.record(A.any)}),A.record(A.any),async({a:Z,b:$},X)=>({...N(Z,X),...N($,X)}),{docs:"Merge Objects",cost:1}),U$=S("keys",A.object({obj:A.record(A.any)}),A.array(A.string),async({obj:Z},$)=>Object.keys(N(Z,$)??{}),{docs:"Object Keys",cost:1}),V7=10,C7="X-Agent-Depth";function q$(Z,$){try{let Q=new URL(Z).hostname.toLowerCase();for(let K of $){let H=K.toLowerCase();if(H.startsWith("*.")){let Y=H.slice(1);if(Q.endsWith(Y)||Q===H.slice(2))return!0}else if(Q===H)return!0}return!1}catch{return!1}}var D$=S("httpFetch",A.object({url:A.string,method:A.string.optional,headers:A.record(A.string).optional,body:A.any.optional,responseType:A.string.optional}),A.any,async(Z,$)=>{let X=N(Z.url,$),Q=N(Z.method,$),K=N(Z.headers,$)||{},H=N(Z.body,$),Y=N(Z.responseType,$),z=$.context?.requestDepth??0;if(z>=V7)throw Error(`Agent request depth exceeded (max ${V7}). This prevents recursive agent loops.`);if($.capabilities.fetch)return $.capabilities.fetch(X,{method:Q,headers:{...K,[C7]:String(z+1)},body:H,signal:$.signal,responseType:Y});let W=$.context?.allowedFetchDomains;if(W){if(!q$(X,W))throw Error(`Fetch blocked: domain not in allowlist. Allowed: ${W.join(", ")}`)}else{if(y5(X))throw Error("Blocked URL: private/internal addresses not allowed in default fetch");try{let J=new URL(X).hostname.toLowerCase();if(J!=="localhost"&&J!=="127.0.0.1"&&J!=="[::1]")throw Error("Fetch blocked: no allowedFetchDomains configured. Set ctx.context.allowedFetchDomains or provide a custom fetch capability.")}catch(G){if(G.message.includes("allowedFetchDomains"))throw G;throw Error(`Invalid URL: ${X}`)}}if(typeof globalThis.fetch==="function"){let G=await globalThis.fetch(X,{method:Q,headers:{...K,[C7]:String(z+1)},body:H?JSON.stringify(H):void 0,signal:$.signal});if(Y==="dataUrl"){let L=await G.arrayBuffer(),_=new Uint8Array(L),U="";for(let w=0;w<_.length;w++)U+=String.fromCharCode(_[w]);let D=btoa(U);return`data:${G.headers.get("content-type")||"application/octet-stream"};base64,${D}`}let J=G.headers.get("content-type");if(Y==="json"||J&&J.includes("application/json"))return G.json();return G.text()}throw Error("Capability 'fetch' missing and no global fetch available")},{docs:"HTTP Fetch",timeoutMs:30000,cost:5}),A$=S("storeGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{let X=N(Z,$);return $.capabilities.store?.get(X)},{docs:"Store Get",cost:5}),I$=S("storeSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{let Q=N(Z,X),K=N($,X);return X.capabilities.store?.set(Q,K)},{docs:"Store Set",cost:5}),R$=S("storeQuery",A.object({query:A.any}),A.array(A.any),async({query:Z},$)=>$.capabilities.store?.query?.(N(Z,$))??[],{docs:"Store Query",cost:5}),B$=S("storeVectorSearch",A.object({collection:A.string.optional,vector:A.array(A.number),k:A.number.optional}),A.array(A.any),async({collection:Z,vector:$,k:X},Q)=>Q.capabilities.store?.vectorSearch?.(N(Z,Q),N($,Q),N(X,Q))??[],{docs:"Vector Search",cost:(Z,$)=>5+(N(Z.k,$)??5)}),M$=S("llmPredict",A.object({prompt:A.string,options:A.any.optional}),A.string,async({prompt:Z,options:$},X)=>{if(!X.capabilities.llm?.predict)throw Error("Capability 'llm.predict' missing");return X.capabilities.llm.predict(N(Z,X),N($,X))},{docs:"LLM Predict",timeoutMs:120000,cost:100}),w$=S("agentRun",A.object({agentId:A.any,input:A.any}),A.any,async({agentId:Z,input:$},X)=>{let Q=N(Z,X),K=N($,X),H=K;if(K&&typeof K==="object"&&!Array.isArray(K)){H={};for(let z in K)H[z]=N(K[z],X)}if(e4(Q)){let z=Z6(Q),W={...X,args:H,state:{},consts:new Set,output:void 0,error:void 0},G=X.resolver("seq");if(!G)throw Error("seq atom not found");if(await G.exec(z,W),W.error)throw Error(W.error.message||"Sub-agent failed");return W.output}if(Q&&typeof Q==="object"&&"op"in Q){let z={...X,args:H,state:{},consts:new Set,output:void 0,error:void 0},W=X.resolver("seq");if(!W)throw Error("seq atom not found");if(await W.exec(Q,z),z.error)throw Error(z.error.message||"Sub-agent failed");return z.output}if(!X.capabilities.agent?.run)throw Error("Capability 'agent.run' missing");let Y=await X.capabilities.agent.run(Q,H);if(Y&&typeof Y==="object"&&"fuelUsed"in Y&&typeof Y.fuelUsed==="number"){if(Y.error)throw Error(Y.error.message||"Sub-agent failed");return Y.result}return Y},{docs:"Run Sub-Agent (accepts procedure token, AST, or agent ID)",cost:1}),F$=S("transpileCode",A.object({code:A.string}),A.any,async({code:Z},$)=>{if(!$.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable code transpilation by providing the code capability.");let X=N(Z,$);try{return $.capabilities.code.transpile(X)}catch(Q){throw Error(`Code transpilation failed: ${Q.message}`)}},{docs:"Transpile AsyncJS code to AST",cost:1}),O7=10,j$=S("runCode",A.object({code:A.string,args:A.record(A.any).optional}),A.any,async({code:Z,args:$},X)=>{let Q=X.runCodeDepth??0;if(Q>=O7)throw Error(`runCode recursion limit exceeded (max ${O7}). This prevents infinite loops from dynamically generated code calling runCode.`);if(!X.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable dynamic code execution by providing the code capability.");let K=N(Z,X),H=$?N($,X):{},Y;try{Y=X.capabilities.code.transpile(K)}catch(W){throw Error(`Code transpilation failed: ${W.message}`)}if(Y.op!=="seq")throw Error("Transpiled code must be a seq node");let z=O1(X);if(z.args=H,z.output=void 0,z.runCodeDepth=Q+1,await J1.exec(Y,z),z.error){X.error=z.error;return}return z.output},{docs:"Run dynamically generated AsyncJS code",cost:1}),P$=S("jsonParse",A.object({str:A.string}),A.any,async({str:Z},$)=>JSON.parse(N(Z,$)),{docs:"Parse JSON",cost:1}),V$=S("jsonStringify",A.object({value:A.any}),A.string,async({value:Z},$)=>JSON.stringify(N(Z,$)),{docs:"Stringify JSON",cost:1}),C$=S("xmlParse",A.object({str:A.string}),A.any,async({str:Z},$)=>{if(!$.capabilities.xml?.parse)throw Error("Capability 'xml.parse' missing");return $.capabilities.xml.parse(N(Z,$))},{docs:"Parse XML",cost:1}),O$=S("memoize",A.object({key:A.string.optional,steps:A.array(A.any)}),A.any,async({key:Z,steps:$},X)=>{if(!X.memo)X.memo=new Map;let Q=N(Z,X)??await $6.exec({value:$,algorithm:"SHA-256"},X);if(X.memo.has(Q))return X.memo.get(Q);let K=O1(X);await J1.exec({op:"seq",steps:$},K);let H=K.output??K.state.result;return X.memo.set(Q,H),H},{docs:"Memoize steps result in memory",cost:1}),N$=S("cache",A.object({key:A.string.optional,steps:A.array(A.any),ttlMs:A.number.optional}),A.any,async({key:Z,steps:$,ttlMs:X},Q)=>{if(!Q.capabilities.store)throw Error("Capability 'store' missing for caching");let H=`cache:${N(Z,Q)??await $6.exec({value:$,algorithm:"SHA-256"},Q)}`,Y=await Q.capabilities.store.get(H);if(Y)if(typeof Y==="object"&&Y._exp){if(Date.now()<Y._exp)return Y.val}else return Y;let z=O1(Q);await J1.exec({op:"seq",steps:$},z);let W=z.output??z.state.result,G=Date.now()+(X??86400000);if((Q.fuel.current-=5)<=0)throw Error("Out of Fuel");return await Q.capabilities.store.set(H,{val:W,_exp:G}),W},{docs:"Cache steps result in store with TTL",cost:5}),E$=S("random",A.object({min:A.number.optional,max:A.number.optional,format:A.string.optional,length:A.number.optional}),A.any,async({min:Z,max:$,format:X,length:Q},K)=>{let H=N(X,K)??"float",Y=N(Q,K)??10,z=N(Z,K)??0,W=N($,K)??1;if(H==="base36"){let U="";if(typeof crypto<"u"&&crypto.getRandomValues){let D=new Uint8Array(Y);crypto.getRandomValues(D);for(let R=0;R<Y;R++)U+="0123456789abcdefghijklmnopqrstuvwxyz"[D[R]%36]}else for(let D=0;D<Y;D++)U+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*36));return U}let G;if(typeof crypto<"u"&&crypto.getRandomValues){let _=new Uint32Array(1);crypto.getRandomValues(_),G=_[0]/4294967296}else G=Math.random();let J=W-z,L=G*J+z;if(H==="integer")return Math.floor(L);return L},{docs:"Generate Random",cost:1}),T$=S("uuid",void 0,A.string,async()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint8Array(16);crypto.getRandomValues(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128;let $=Array.from(Z,(X)=>X.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(Z)=>{let $=Math.random()*16|0;return(Z==="x"?$:$&3|8).toString(16)})},{docs:"Generate UUID",cost:1}),$6=S("hash",A.object({value:A.any,algorithm:A.string.optional}),A.string,async({value:Z,algorithm:$},X)=>{let Q=typeof Z==="string"?Z:JSON.stringify(N(Z,X)),K=N($,X)||"SHA-256";if(typeof crypto<"u"&&crypto.subtle){let z=new TextEncoder().encode(Q),W=await crypto.subtle.digest(K,z);return Array.from(new Uint8Array(W)).map((J)=>J.toString(16).padStart(2,"0")).join("")}let H=0;for(let Y=0;Y<Q.length;Y++){let z=Q.charCodeAt(Y);H=(H<<5)-H+z,H|=0}return String(H)},{docs:"Hash a value",cost:1}),S$=S("consoleLog",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=N(Z,$);if($.trace)$.trace.push({op:"console.log",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Log to trace",cost:0.1}),k$=S("consoleWarn",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=N(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);if(!$.warnings)$.warnings=[];if($.warnings.push(Q),$.trace)$.trace.push({op:"console.warn",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Add warning",cost:0.1}),g$=S("consoleError",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=N(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);$.error=new H1(Q,"console.error")},{docs:"Emit error and stop",cost:0.1}),b$=S("storeProcedure",A.object({ast:A.any,ttl:A.number.optional,maxSize:A.number.optional}),A.string,async({ast:Z,ttl:$,maxSize:X},Q)=>{let K=N(Z,Q),H=$?N($,Q):g5,Y=X?N(X,Q):b5;if(!K||typeof K!=="object"||!K.op)throw Error('Invalid AST: must be an object with an "op" property');let z=JSON.stringify(K);if(z.length>Y)throw Error(`AST too large: ${z.length} bytes exceeds limit of ${Y} bytes. Consider reducing AST size or using a shorter TTL.`);let W=v5(),G=Date.now();return o1.set(W,{ast:K,createdAt:G,expiresAt:G+H}),W},{docs:"Store an AST and return a token for later execution",cost:1}),v$=S("releaseProcedure",A.object({token:A.string}),A.boolean,async({token:Z},$)=>{let X=N(Z,$);return o1.delete(X)},{docs:"Release a stored procedure by token",cost:0.1}),f$=S("clearExpiredProcedures",void 0,A.number,async()=>{let Z=Date.now(),$=0;for(let[X,Q]of o1)if(Z>Q.expiresAt)o1.delete(X),$++;return $},{docs:"Clear all expired procedures and return count",cost:0.5}),L4={seq:J1,if:m5,while:l5,return:i5,try:p5,Error:n5,varSet:c5,constSet:o5,varGet:s5,varsImport:a5,varsLet:r5,varsExport:t5,scope:e5,map:Z$,filter:$$,reduce:X$,find:Q$,push:K$,len:H$,split:Y$,join:z$,template:W$,regexMatch:G$,pick:J$,omit:_$,merge:L$,keys:U$,httpFetch:D$,storeGet:A$,storeSet:I$,storeQuery:R$,storeVectorSearch:B$,llmPredict:M$,agentRun:w$,transpileCode:F$,runCode:j$,jsonParse:P$,jsonStringify:V$,xmlParse:C$,memoize:O$,cache:N$,random:E$,uuid:T$,hash:$6,consoleLog:S$,consoleWarn:k$,consoleError:g$,storeProcedure:b$,releaseProcedure:v$,clearExpiredProcedures:f$};var y$=new Set(["true","false","null","undefined","and","or","not"]);function h$(Z,$){let X=Z.replace(/"[^"]*"/g,'""').replace(/'[^']*'/g,"''"),Q=[],K=/(?<![.])\b([a-zA-Z_][a-zA-Z0-9_]*)\b/g,H;while((H=K.exec(X))!==null)Q.push(H[1]);let z=[...new Set(Q)].filter((W)=>!y$.has(W)&&!(W in $)&&!new RegExp(`\\b${W}\\s*\\(`).test(X));if(z.length>0)console.warn(`[Agent99 Builder] Condition "${Z}" references variables not in vars mapping: ${z.join(", ")}. Add them to vars or use AsyncJS syntax (ajs\`...\`) which handles this automatically.`)}function U4(Z,$){h$(Z,$);let X=x$(Z),Q=b7(X,0,$);if(Q.pos<X.length){let K=X.slice(Q.pos).join(" ");throw Error(`Unsupported condition syntax near '${K}' in: ${Z}
414
- Supported: comparisons, &&, ||, !, arithmetic, member access (a.b), literals`)}return Q.node}function x$(Z){let $=[],X=0;while(X<Z.length){while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)break;if(Z[X]==='"'||Z[X]==="'"){let Q=Z[X++],K="";while(X<Z.length&&Z[X]!==Q)if(Z[X]==="\\"&&X+1<Z.length)X++,K+=Z[X++];else K+=Z[X++];X++,$.push(JSON.stringify(K));continue}if(Z.slice(X,X+2).match(/^(&&|\|\||==|!=|>=|<=)$/)){$.push(Z.slice(X,X+2)),X+=2;continue}if("+-*/%><!().?:[]".includes(Z[X])){$.push(Z[X]),X++;continue}if(/\d/.test(Z[X])){let Q="";while(X<Z.length&&/[\d.]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}if(/[a-zA-Z_]/.test(Z[X])){let Q="";while(X<Z.length&&/[a-zA-Z0-9_]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}X++}return $}function b7(Z,$,X){return u$(Z,$,X)}function u$(Z,$,X){let{node:Q,pos:K}=T7(Z,$,X);while(Z[K]==="||"){K++;let{node:H,pos:Y}=T7(Z,K,X);Q={$expr:"logical",op:"||",left:Q,right:H},K=Y}return{node:Q,pos:K}}function T7(Z,$,X){let{node:Q,pos:K}=S7(Z,$,X);while(Z[K]==="&&"){K++;let{node:H,pos:Y}=S7(Z,K,X);Q={$expr:"logical",op:"&&",left:Q,right:H},K=Y}return{node:Q,pos:K}}function S7(Z,$,X){let{node:Q,pos:K}=k7(Z,$,X),H=["==","!=",">","<",">=","<="];while(H.includes(Z[K])){let Y=Z[K++],{node:z,pos:W}=k7(Z,K,X);Q={$expr:"binary",op:Y,left:Q,right:z},K=W}return{node:Q,pos:K}}function k7(Z,$,X){let{node:Q,pos:K}=g7(Z,$,X);while(Z[K]==="+"||Z[K]==="-"){let H=Z[K++],{node:Y,pos:z}=g7(Z,K,X);Q={$expr:"binary",op:H,left:Q,right:Y},K=z}return{node:Q,pos:K}}function g7(Z,$,X){let{node:Q,pos:K}=X6(Z,$,X);while(Z[K]==="*"||Z[K]==="/"||Z[K]==="%"){let H=Z[K++],{node:Y,pos:z}=X6(Z,K,X);Q={$expr:"binary",op:H,left:Q,right:Y},K=z}return{node:Q,pos:K}}function X6(Z,$,X){if(Z[$]==="!"||Z[$]==="-"){let Q=Z[$++],{node:K,pos:H}=X6(Z,$,X);return{node:{$expr:"unary",op:Q,argument:K},pos:H}}return d$(Z,$,X)}function d$(Z,$,X){let Q=Z[$];if(Q==="("){let{node:K,pos:H}=b7(Z,$+1,X);return{node:K,pos:H+1}}if(Q&&Q.startsWith('"'))return{node:{$expr:"literal",value:JSON.parse(Q)},pos:$+1};if(Q&&/^\d/.test(Q))return{node:{$expr:"literal",value:parseFloat(Q)},pos:$+1};if(Q==="true")return{node:{$expr:"literal",value:!0},pos:$+1};if(Q==="false")return{node:{$expr:"literal",value:!1},pos:$+1};if(Q==="null")return{node:{$expr:"literal",value:null},pos:$+1};if(Q&&/^[a-zA-Z_]/.test(Q)){let K={$expr:"ident",name:Q},H=$+1;while(Z[H]==="."){H++;let Y=Z[H++];K={$expr:"member",object:K,property:Y}}return{node:K,pos:H}}return{node:{$expr:"literal",value:null},pos:$+1}}class e{steps=[];atoms;proxy;constructor(Z){return this.atoms=Z,this.proxy=new Proxy(this,{get:($,X,Q)=>{if(X in $)return $[X];if(typeof X==="string"&&X in $.atoms)return(K)=>{let H=$.atoms[X];return $.add(H.create(K)),Q};return}}),this.proxy}add(Z){return this.steps.push(Z),this.proxy}as(Z){if(this.steps.length===0)throw Error("No step to capture");let $=this.steps[this.steps.length-1];return $.result=Z,this.proxy}step(Z){return this.add(Z)}return(Z){let $=this.atoms.return;if(!$)throw Error("Atom 'return' not found");let X=Z.schema??Z;return this.add($.create({schema:X}))}toJSON(){return{op:"seq",steps:[...this.steps]}}varsImport(Z){return this.add(this.atoms.varsImport.create({keys:Z}))}varsExport(Z){return this.add(this.atoms.varsExport.create({keys:Z}))}if(Z,$,X,Q){let K=new e(this.atoms);X(K);let H;if(Q){let W=new e(this.atoms);Q(W),H=W.steps}let Y=U4(Z,$),z=this.atoms.if;return this.add(z.create({condition:Y,then:K.steps,else:H}))}while(Z,$,X){let Q=new e(this.atoms);X(Q);let K=U4(Z,$),H=this.atoms.while;return this.add(H.create({condition:K,body:Q.steps}))}scope(Z){let $=new e(this.atoms);Z($);let X=this.atoms.scope;return this.add(X.create({steps:$.steps}))}map(Z,$,X){let Q=new e(this.atoms);X(Q);let K=this.atoms.map;return this.add(K.create({items:Z,as:$,steps:Q.steps}))}filter(Z,$,X,Q={}){let K=U4(X,Q),H=this.atoms.filter;return this.add(H.create({items:Z,as:$,condition:K}))}find(Z,$,X,Q={}){let K=U4(X,Q),H=this.atoms.find;return this.add(H.create({items:Z,as:$,condition:K}))}reduce(Z,$,X,Q,K){let H=new e(this.atoms);K(H);let Y=this.atoms.reduce;return this.add(Y.create({items:Z,as:$,accumulator:X,initial:Q,steps:H.steps}))}memoize(Z,$){let X=new e(this.atoms);Z(X);let Q=this.atoms.memoize;return this.add(Q.create({key:$,steps:X.steps}))}cache(Z,$,X){let Q=new e(this.atoms);Z(Q);let K=this.atoms.cache;return this.add(K.create({key:$,steps:Q.steps,ttlMs:X}))}try(Z){let $=new e(this.atoms);Z.try($);let X;if(Z.catch){let K=new e(this.atoms);Z.catch(K),X=K.steps}let Q=this.atoms.try;return this.add(Q.create({try:$.steps,catch:X}))}}var m$={take(Z){return new e(L4)},custom(Z){return new e(Z)},args(Z){return{$kind:"arg",path:Z}},val(Z){return Z}},RK=m$;import{validate as l$}from"tosijs-schema";function A0(Z,$={}){let{ast:X,returnType:Q,originalSource:K,requiredParams:H}=M1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=T0(X,$.filename),{ast:z,signature:W,warnings:G}=H0(Y,K,Q,$,H);return{ast:z,signature:W,warnings:G}}var i$=10;class Q6{atoms;constructor(Z={}){this.atoms={...L4,...Z}}get builder(){return new e(this.atoms)}get Agent(){return new e(this.atoms)}get A99(){return this.Agent}resolve(Z){return this.atoms[Z]}getTools(Z="all"){let $=Object.values(this.atoms);if(Array.isArray(Z))$=$.filter((X)=>Z.includes(X.op));else if(Z==="flow"){let X=["seq","if","while","return","try","varSet","varGet","scope"];$=$.filter((Q)=>X.includes(Q.op))}return $.map((X)=>({type:"function",function:{name:X.op,description:X.docs,parameters:X.inputSchema?.schema??{}}}))}async run(Z,$={},X={}){let Q;if(typeof Z==="string")if(e4(Z))Q=Z6(Z);else try{Q=A0(Z).ast}catch(U){throw Error(`AJS transpilation failed: ${U.message}`)}else Q=Z;let K=X.fuel??1000,H=X.timeoutMs??K*i$,Y=X.capabilities??{},z=[];if(!Y.store){let U=new Map,D=!1;Y.store={get:async(R)=>{if(!D)D=!0,z.push("Using default in-memory store (not suitable for production)");return U.get(R)},set:async(R,w)=>{if(!D)D=!0,z.push("Using default in-memory store (not suitable for production)");U.set(R,w)}}}let W=new AbortController,G=setTimeout(()=>W.abort(),H);if(X.signal)X.signal.addEventListener("abort",()=>W.abort());let J={fuel:{current:K},args:$,state:{},consts:new Set,capabilities:Y,resolver:(U)=>this.resolve(U),output:void 0,signal:W.signal,costOverrides:X.costOverrides,context:X.context,warnings:z};if(X.trace)J.trace=[];if(Q.op!=="seq")throw Error("Root AST must be 'seq'. Ensure you're passing a transpiled agent (use ajs`...` or transpile()).");let L=Q.inputSchema;if(L&&!l$($,L)){let U=new H1("Input validation failed: args do not match expected schema","vm.run");return{result:U,error:U,fuelUsed:0,trace:J.trace,warnings:z.length>0?z:void 0}}try{await Promise.race([this.resolve("seq")?.exec(Q,J),new Promise((U,D)=>{if(W.signal.addEventListener("abort",()=>{D(Error(`Execution timeout after ${H}ms (fuel: ${K}). Consider increasing fuel or optimizing your agent.`))}),W.signal.aborted)D(Error(`Execution timeout after ${H}ms (fuel: ${K}). Consider increasing fuel or optimizing your agent.`))})])}catch(U){if(U.message?.includes("timeout")||U.message?.includes("aborted")||W.signal.aborted)J.error=new H1(`Execution timeout after ${H}ms (fuel: ${K}). Consider increasing fuel or optimizing your agent.`,"vm.run");else throw U}finally{clearTimeout(G)}if(J.error&&J.output===void 0)J.output=J.error;let _=[...z,...J.warnings??[]];return{result:J.output,error:J.error,fuelUsed:K-J.fuel.current,trace:J.trace,warnings:_.length>0?_:void 0}}}var p$=null,v7=()=>p$??=new Q6;function x1(Z){if(!Z||typeof Z!=="object")return;if(Array.isArray(Z)){for(let $ of Z)x1($);return}if(Z.op==="return"&&"value"in Z)Z.value={__result:Z.value};if(Z.steps)x1(Z.steps);if(Z.then)x1(Z.then);if(Z.else)x1(Z.else);if(Z.body)x1(Z.body)}async function n$(Z){let{code:$,context:X={},fuel:Q=1000,timeoutMs:K,capabilities:H={}}=Z,Y=v7(),W=/\breturn\b/.test($)?`function __eval() { ${$} }`:`function __eval() { return (${$}) }`;try{let{ast:G}=A0(W);x1(G);let J=await Y.run(G,X,{fuel:Q,timeoutMs:K,capabilities:H}),L=J.result;return{result:L&&typeof L==="object"&&"__result"in L?L.__result:L,fuelUsed:J.fuelUsed,error:J.error?{message:J.error.message||String(J.error)}:void 0}}catch(G){return{result:void 0,fuelUsed:Q,error:{message:G.message||String(G)}}}}async function c$(Z){let{body:$,params:X=[],fuel:Q=1000,timeoutMs:K,capabilities:H={}}=Z,Y=v7(),W=`function __safeFn(${X.join(", ")}) { ${$} }`,{ast:G}=A0(W);return x1(G),async(...J)=>{let L={};for(let _=0;_<X.length;_++)L[X[_]]=J[_];try{let _=await Y.run(G,L,{fuel:Q,timeoutMs:K,capabilities:H}),U=_.result;return{result:U&&typeof U==="object"&&"__result"in U?U.__result:U,fuelUsed:_.fuelUsed,error:_.error?{message:_.error.message||String(_.error)}:void 0}}catch(_){return{result:void 0,fuelUsed:Q,error:{message:_.message||String(_)}}}}}function D4(Z,$={}){let{ast:X,returnType:Q,originalSource:K,requiredParams:H}=M1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=T0(X,$.filename),{ast:z,signature:W,warnings:G}=H0(Y,K,Q,$,H);return{ast:z,signature:W,warnings:G}}function fK(Z,...$){if(typeof Z==="string")return D4(Z).ast;let X=Z.reduce((Q,K,H)=>Q+K+($[H]!==void 0?String($[H]):""),"");return D4(X).ast}function hK(Z,$,...X){if(typeof Z==="string")return L0(Z,$);let Q=$!==void 0?[$,...X]:X,K=Z.reduce((H,Y,z)=>H+Y+(Q[z]!==void 0?String(Q[z]):""),"");return L0(K)}async function xK(Z,$={},X){let Q=X??await z4(),K=await Q.getTranspile(Z);if(K)return{ast:K.ast,signature:K.signature,warnings:K.warnings};let H=D4(Z,$);return Q.setTranspile(Z,{ast:H.ast,signature:H.signature,warnings:H.warnings}),H}async function uK(Z,$={},X){let Q=X??await z4(),K=await Q.getTJS(Z);if(K)return{code:K.code,types:K.types,metadata:K.types,testRunner:K.testRunner,testCount:K.testCount,warnings:K.warnings};let H=L0(Z,$);return Q.setTJS(Z,{code:H.code,types:H.types,testRunner:H.testRunner,testCount:H.testCount,warnings:H.warnings}),H}function dK(Z,$,X){let{ast:Q,signature:K}=D4(Z),H=async(Y)=>{return(await $.run(Q,Y,X)).result};return H.signature=K,H.ast=Q,H}function mK(Z){return Object.entries(Z).map(([$,X])=>{let Q=X.signature,K={},H=[];for(let[Y,z]of Object.entries(Q.parameters)){if(K[Y]=q4(z.type),z.description)K[Y].description=z.description;if(z.required)H.push(Y)}return{type:"function",function:{name:Q.name||$,description:Q.description,parameters:{type:"object",properties:K,required:H}}}})}function q4(Z){switch(Z.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{type:"null"};case"array":return{type:"array",items:Z.items?q4(Z.items):{}};case"object":if(!Z.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(Z.shape).map(([$,X])=>[$,q4(X)]))};case"union":if(!Z.members)return{};return{anyOf:Z.members.map(q4)};case"any":default:return{}}}import{s as b}from"tosijs-schema";var f7=S("storeVectorize",b.object({text:b.string,model:b.string.optional}),b.array(b.number),async({text:Z},$)=>{let X=$.capabilities.vector;if(!X)throw Error("Capability 'vector' missing. Ensure vector battery is loaded.");let Q=N(Z,$);return X.embed(Q)},{docs:"Generate embeddings using vector battery",cost:20}),y7=S("storeCreateCollection",b.object({collection:b.string,dimension:b.number.optional}),void 0,async({collection:Z,dimension:$},X)=>{let Q=X.capabilities.store;if(!Q?.createCollection)throw Error("Capability 'store' missing or does not support createCollection.");let K=N(Z,X),H=N($,X);return Q.createCollection(K,void 0,H)},{docs:"Create a vector store collection",cost:5}),h7=S("storeVectorAdd",b.object({collection:b.string,doc:b.any}),void 0,async({collection:Z,doc:$},X)=>{let Q=X.capabilities.store;if(!Q?.vectorAdd)throw Error("Capability 'store' missing or does not support vectorAdd.");let K=N(Z,X),H=N($,X);return Q.vectorAdd(K,H)},{docs:"Add a document to a vector store collection",cost:5}),x7=S("storeSearch",b.object({collection:b.string,queryVector:b.array(b.number),k:b.number.optional,filter:b.record(b.any).optional}),b.array(b.any),async({collection:Z,queryVector:$,k:X,filter:Q},K)=>{let H=K.capabilities.store;if(!H?.vectorSearch)throw Error("Capability 'store' missing or does not support vectorSearch.");let Y=N(Z,K),z=N($,K),W=N(X,K)??5,G=N(Q,K);return H.vectorSearch(Y,z,W,G)},{docs:"Search vector store",cost:(Z,$)=>5+(N(Z.k,$)??5)}),u7=S("llmPredictBattery",b.object({system:b.string.optional,user:b.string,tools:b.array(b.any).optional,responseFormat:b.any.optional}),b.object({role:b.string.optional,content:b.string.optional,tool_calls:b.array(b.any).optional}),async({system:Z,user:$,tools:X,responseFormat:Q},K)=>{let H=K.capabilities.llmBattery;if(!H?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=N(Z,K)??"You are a helpful agent.",z=N($,K),W=N(X,K),G=N(Q,K);return H.predict(Y,z,W,G)},{docs:"Generate completion using LLM battery",cost:100}),d7=S("llmVision",b.object({system:b.string.optional,prompt:b.string,images:b.array(b.string),responseFormat:b.any.optional}),b.object({role:b.string.optional,content:b.string.optional,tool_calls:b.array(b.any).optional}),async({system:Z,prompt:$,images:X,responseFormat:Q},K)=>{let H=K.capabilities.llmBattery;if(!H?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=N(Z,K)??"You analyze images accurately and concisely.",z=N($,K),W=N(X,K)??[],G=N(Q,K);return H.predict(Y,{text:z,images:W},void 0,G)},{docs:"Analyze images using a vision model",timeoutMs:120000,cost:150});var JH={storeCreateCollection:y7,storeSearch:x7,storeVectorAdd:h7,storeVectorize:f7,llmPredictBattery:u7,llmVision:d7};var m7=new Map,A4=new Map;function o$(Z,$){if(Z.length!==$.length)throw Error("Vectors must have the same length for cosine similarity.");let X=0,Q=0,K=0;for(let H=0;H<Z.length;H++)X+=Z[H]*$[H],Q+=Z[H]*Z[H],K+=$[H]*$[H];if(Q=Math.sqrt(Q),K=Math.sqrt(K),Q===0||K===0)return 0;return X/(Q*K)}function K6(){return{async get(Z){return m7.get(Z)},async set(Z,$){m7.set(Z,$)},async createCollection(Z,$,X){if(A4.has(Z))console.warn(`Collection '${Z}' already exists. Overwriting.`);A4.set(Z,[])},async vectorAdd(Z,$){let X=A4.get(Z);if(!X)throw Error(`Collection '${Z}' not found. Create it first.`);if(!$.embedding||!Array.isArray($.embedding))throw Error("Document must have an 'embedding' property that is an array of numbers.");X.push($)},async vectorSearch(Z,$,X=5){let Q=A4.get(Z);if(!Q)throw Error(`Collection '${Z}' not found. Create it first.`);let K=Q.map((H)=>({doc:H,score:o$($,H.embedding)}));return K.sort((H,Y)=>Y.score-H.score),K.slice(0,X).map((H)=>H.doc)}}}function s$(Z){if(typeof Z==="string")return{role:"user",content:Z};let $=[{type:"text",text:Z.text}];for(let X of Z.images||[])$.push({type:"image_url",image_url:{url:X}});return{role:"user",content:$}}var a$="http://localhost:1234/v1";function l7(Z,$=a$){return{async predict(X,Q,K,H){try{let Y=H?Z.getStructuredLLM():Z.getLLM(),z=[{role:"system",content:X},s$(Q)],W=await fetch(`${$}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Y.id,messages:z,temperature:0.7,tools:K,response_format:H})});if(!W.ok)throw Error(`LLM Error: ${W.status} ${W.statusText}`);return(await W.json()).choices[0]?.message??{content:""}}catch(Y){if(Y.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Y}},async embed(X){try{let Q=Z.getEmbedding(),K=await fetch(`${$}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Q.id,input:X})});if(!K.ok)throw Error(`Embedding Error: ${K.status}`);return(await K.json()).data[0]?.embedding??[]}catch(Q){if(Q.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Q}}}}var I0=typeof window<"u"&&typeof window.localStorage<"u";async function e$(Z){try{if(I0){let $=window.localStorage.getItem(".models.cache.json");if(!$)return null;let X=JSON.parse($);if(X.baseUrl!==Z)return null;if(Date.now()-X.timestamp>86400000)return null;return X.models}else{let $=await import("node:fs/promises"),Q=(await Promise.resolve().then(() => (z6(),Y6))).join(process.cwd(),".models.cache.json");try{let K=await $.readFile(Q,"utf-8"),H=JSON.parse(K);if(H.baseUrl!==Z)return null;if(Date.now()-H.timestamp>86400000)return null;return H.models}catch{return null}}}catch($){return console.warn("⚠️ Error reading model cache:",$),null}}async function ZX(Z,$){let X={timestamp:Date.now(),baseUrl:Z,models:$};try{if(I0)window.localStorage.setItem(".models.cache.json",JSON.stringify(X));else{let Q=await import("node:fs/promises"),H=(await Promise.resolve().then(() => (z6(),Y6))).join(process.cwd(),".models.cache.json");await Q.writeFile(H,JSON.stringify(X,null,2))}}catch(Q){console.error("❌ Error writing model cache:",Q)}}var R0=async(Z,$)=>{let X=new AbortController,Q=setTimeout(()=>X.abort(),60000);try{let K=await fetch(Z,{...$,signal:X.signal});return clearTimeout(Q),K}catch(K){throw clearTimeout(Q),K}};async function $X(Z,$){try{let X={type:"json_schema",json_schema:{name:"test",strict:!1,schema:{type:"object",properties:{status:{type:"string"}}}}},Q=await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"system",content:"You respond in JSON."},{role:"user",content:'Return JSON: {"status": "ok"}'}],response_format:X,max_tokens:20})});if(!Q.ok){if(Q.status===400)return XX(Z,$);return{ok:!1,msg:`HTTP ${Q.status}`}}let K=await Q.json();return JSON.parse(K.choices[0].message.content),{ok:!0,msg:"OK (Schema)"}}catch(X){return{ok:!1,msg:X.message||"Error"}}}async function XX(Z,$){try{if((await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:'JSON: {"a":1}'}],response_format:{type:"json_object"},max_tokens:10})})).ok)return{ok:!0,msg:"OK (Legacy Mode)"};return{ok:!1,msg:"Not Supported"}}catch{return{ok:!1,msg:"Legacy Fail"}}}async function QX(Z,$){try{return(await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:"hi"}],max_tokens:1})})).ok}catch{return!1}}async function KX(Z,$){try{let X=await R0(`${Z}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,input:"test"})});if(!X.ok)return null;return(await X.json()).data[0]?.embedding?.length??null}catch{return null}}var HX="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==";async function YX(Z,$){try{return(await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:[{type:"text",text:"What color is this?"},{type:"image_url",image_url:{url:HX}}]}],max_tokens:10})})).ok}catch{return!1}}async function Q8(Z){let $=await e$(Z),X=[];try{let Y=await fetch(`${Z}/models`);if(!Y.ok)throw Error("Could not connect");X=(await Y.json()).data.map((W)=>W.id).sort()}catch(Y){if($)return console.log("⚠️ LM Studio unavailable, using cached model audit."),$;return console.error("❌ Failed to connect to LM Studio."),[]}if($){let Y=$.map((z)=>z.id).sort();if(JSON.stringify(X)===JSON.stringify(Y))return console.log("✅ Using cached model audit."),$;console.log("\uD83D\uDD0D Model list changed. Re-running audit...")}console.log("\uD83D\uDD0D Scanning models (this may take a moment)...");let Q=[],K=X.map((Y)=>({id:Y})),H;if(!I0)H=await import("node:readline");for(let Y of K){if(!I0&&H)H.cursorTo(process.stdout,0),process.stdout.write(`\uD83D\uDC49 Testing: ${Y.id}...`),H.clearLine(process.stdout,1);let z="Unknown",W=!1,G=!1,J="",L=void 0,_=await QX(Z,Y.id),U=await KX(Z,Y.id);if(U)L=U;if(_){z="LLM";let D=await $X(Z,Y.id);if(W=D.ok,G=await YX(Z,Y.id),J=W?D.msg:`Fail: ${D.msg}`,G)J+=" +Vision"}else if(U)z="Embedding",J=`OK (Dim: ${U})`;else J="LLM Fail";Q.push({id:Y.id,type:z,structuredOutput:W,vision:G,dimension:L,status:J})}if(!I0&&H)H.cursorTo(process.stdout,0),H.clearLine(process.stdout,0);return console.log(`
415
- `),console.table(Q),await ZX(Z,Q),console.log("\uD83D\uDCDD Audit results saved to cache."),Q}var zX="http://localhost:1234/v1";class W6{baseUrl;models=[];defaultLLM=null;defaultEmbedding=null;defaultStructuredLLM=null;constructor(Z=zX){this.baseUrl=Z}async audit(){this.models=await Q8(this.baseUrl),this.selectDefaults()}selectDefaults(){if(this.defaultEmbedding=this.models.find((Z)=>Z.type==="Embedding")||null,this.defaultLLM=this.models.find((Z)=>Z.type==="LLM")||null,this.defaultStructuredLLM=this.models.find((Z)=>Z.type==="LLM"&&Z.structuredOutput)||null,!this.defaultEmbedding)console.warn("⚠️ No embedding model found.");if(!this.defaultLLM)console.warn("⚠️ No LLM found.");if(!this.defaultStructuredLLM)console.warn("⚠️ No LLM with structured output support found.")}getModels(){return this.models}_setDefaultModel(Z,$,X,Q){let K=this.models.find((H)=>H.id===Z&&X(H));if(!K)throw Error(`Model '${Z}' not found or is not ${Q}.`);this[$]=K}setDefaultLLM(Z){this._setDefaultModel(Z,"defaultLLM",($)=>$.type==="LLM","an LLM")}setDefaultEmbedding(Z){this._setDefaultModel(Z,"defaultEmbedding",($)=>$.dimension!==void 0,"an embedding model")}setDefaultStructuredLLM(Z){this._setDefaultModel(Z,"defaultStructuredLLM",($)=>$.type==="LLM"&&$.structuredOutput,"a structured-output LLM")}getLLM(){if(!this.defaultLLM)throw Error("No LLM available.");return this.defaultLLM}getEmbedding(){if(!this.defaultEmbedding)throw Error("No embedding model available.");return this.defaultEmbedding}getStructuredLLM(){if(!this.defaultStructuredLLM)throw Error("No structured-output LLM available.");return this.defaultStructuredLLM}}var WX=typeof window<"u",GX=WX&&window.location.protocol==="https:",B0=null,G6=null,K8=!1;async function JX(){if(K8)return{localModels:B0,llm:G6};if(K8=!0,GX)return console.log("\uD83D\uDCE1 HTTPS detected - local LLM endpoints disabled. Use HTTP for local LLM support."),{localModels:null,llm:null};try{B0=new W6,await B0.audit(),G6=l7(B0)}catch(Z){console.warn("⚠️ Could not connect to local LLM:",Z)}return{localModels:B0,llm:G6}}async function _X(){let{localModels:Z,llm:$}=await JX();return{vector:$?{embed:$.embed}:void 0,store:K6(),llmBattery:$,models:Z}}async function MH(){return _X()}var wH={store:K6(),llmBattery:null,vector:void 0,models:null};function LX(Z){if(typeof Z!=="string")return!1;let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")}function UX(){return new Date().toISOString()}function s1(Z,$,X,Q=0,K=0,H=0,Y=0){return new Date(Date.UTC(Z,$-1,X,Q,K,H,Y)).toISOString()}function H8(Z){let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);return $.toISOString()}function qX(Z){try{return H8(Z)}catch{return null}}function M0(Z,$){let X=new Date(Z);return X.setTime(X.getTime()+$),X.toISOString()}function DX(Z,$){return M0(Z,$*1000)}function AX(Z,$){return M0(Z,$*60*1000)}function IX(Z,$){return M0(Z,$*60*60*1000)}function Y8(Z,$){return M0(Z,$*24*60*60*1000)}function RX(Z,$){return Y8(Z,$*7)}function BX(Z,$){let X=new Date(Z),Q=X.getUTCMonth()+$;if(X.setUTCMonth(Q),X.getUTCMonth()!==(Q%12+12)%12)X.setUTCDate(0);return X.toISOString()}function MX(Z,$){let X=new Date(Z),Q=X.getUTCDate();if(X.setUTCFullYear(X.getUTCFullYear()+$),X.getUTCDate()!==Q)X.setUTCDate(0);return X.toISOString()}function N1(Z,$){return new Date(Z).getTime()-new Date($).getTime()}function wX(Z,$){return Math.floor(N1(Z,$)/1000)}function FX(Z,$){return Math.floor(N1(Z,$)/60000)}function jX(Z,$){return Math.floor(N1(Z,$)/3600000)}function PX(Z,$){return Math.floor(N1(Z,$)/86400000)}function a1(Z){return new Date(Z).getUTCFullYear()}function R4(Z){return new Date(Z).getUTCMonth()+1}function J6(Z){return new Date(Z).getUTCDate()}function VX(Z){return new Date(Z).getUTCHours()}function CX(Z){return new Date(Z).getUTCMinutes()}function OX(Z){return new Date(Z).getUTCSeconds()}function NX(Z){return new Date(Z).getUTCMilliseconds()}function EX(Z){let $=new Date(Z).getUTCDay();return $===0?7:$}function B4(Z,$,X){let Q=new Date(Z),K={timeZone:$,...X};return new Intl.DateTimeFormat(void 0,K).format(Q)}function TX(Z,$){return B4(Z,$,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function SX(Z,$){return B4(Z,$,{year:"numeric",month:"short",day:"numeric"})}function kX(Z,$){return B4(Z,$,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function gX(Z){return Z.slice(0,10)}function z8(Z,$){return N1(Z,$)<0}function W8(Z,$){return N1(Z,$)>0}function bX(Z,$){return N1(Z,$)===0}function vX(Z,$){return z8(Z,$)?Z:$}function fX(Z,$){return W8(Z,$)?Z:$}function yX(Z){return s1(a1(Z),R4(Z),J6(Z))}function hX(Z){return s1(a1(Z),R4(Z),J6(Z),23,59,59,999)}function xX(Z){return s1(a1(Z),R4(Z),1)}function uX(Z){let $=new Date(Z);return $.setUTCMonth($.getUTCMonth()+1,0),$.setUTCHours(23,59,59,999),$.toISOString()}function dX(Z){return s1(a1(Z),1,1)}function mX(Z){return s1(a1(Z),12,31,23,59,59,999)}var r1={isValid:LX,now:UX,from:s1,parse:H8,tryParse:qX,addMilliseconds:M0,addSeconds:DX,addMinutes:AX,addHours:IX,addDays:Y8,addWeeks:RX,addMonths:BX,addYears:MX,diff:N1,diffSeconds:wX,diffMinutes:FX,diffHours:jX,diffDays:PX,year:a1,month:R4,day:J6,hour:VX,minute:CX,second:OX,millisecond:NX,dayOfWeek:EX,toLocal:B4,format:TX,formatDate:SX,formatTime:kX,toDate:gX,isBefore:z8,isAfter:W8,isEqual:bX,min:vX,max:fX,startOfDay:yX,endOfDay:hX,startOfMonth:xX,endOfMonth:uX,startOfYear:dX,endOfYear:mX};function _6(Z){if(typeof Z!=="string")return!1;if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=parseInt(Z.slice(0,4),10),X=parseInt(Z.slice(5,7),10),Q=parseInt(Z.slice(8,10),10);if(X<1||X>12)return!1;if(Q<1)return!1;let K=[31,28,31,30,31,30,31,31,30,31,30,31],H=X===2&&($%4===0&&$%100!==0||$%400===0)?29:K[X-1];return Q<=H}function lX(){return r1.toDate(r1.now())}function iX(Z){let $=new Date;return new Intl.DateTimeFormat("en-CA",{timeZone:Z,year:"numeric",month:"2-digit",day:"2-digit"}).format($)}function _1(Z,$,X){let Q=String(Z).padStart(4,"0"),K=String($).padStart(2,"0"),H=String(X).padStart(2,"0"),Y=`${Q}-${K}-${H}`;if(!_6(Y))throw Error(`Invalid date: ${Z}-${$}-${X}`);return Y}function G8(Z){if(/^\d{4}-\d{2}-\d{2}$/.test(Z)){if(!_6(Z))throw Error(`Invalid date: ${Z}`);return Z}let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);let X=$.getUTCFullYear(),Q=$.getUTCMonth()+1,K=$.getUTCDate();return _1(X,Q,K)}function pX(Z){try{return G8(Z)}catch{return null}}function M4(Z,$){let X=_8(Z);return r1.toDate(r1.addDays(X,$))}function nX(Z,$){return M4(Z,$*7)}function cX(Z,$){let X=X1(Z),Q=E1(Z),K=L6(Z),H=X*12+(Q-1)+$,Y=Math.floor(H/12),z=H%12+1,W=w0(Y,z),G=Math.min(K,W);return _1(Y,z,G)}function oX(Z,$){let X=X1(Z),Q=E1(Z),K=L6(Z),H=X+$,Y=w0(H,Q),z=Math.min(K,Y);return _1(H,Q,z)}function J8(Z,$){let Q=new Date(Z+"T00:00:00Z").getTime(),K=new Date($+"T00:00:00Z").getTime();return Math.round((Q-K)/86400000)}function sX(Z,$){let X=X1(Z),Q=E1(Z),K=X1($),H=E1($);return(X-K)*12+(Q-H)}function aX(Z,$){return X1(Z)-X1($)}function X1(Z){return parseInt(Z.slice(0,4),10)}function E1(Z){return parseInt(Z.slice(5,7),10)}function L6(Z){return parseInt(Z.slice(8,10),10)}function U6(Z){let $=new Date(Z+"T00:00:00Z").getUTCDay();return $===0?7:$}function rX(Z){let $=new Date(Z+"T00:00:00Z"),X=$.getUTCDay()||7;$.setUTCDate($.getUTCDate()+4-X);let Q=new Date(Date.UTC($.getUTCFullYear(),0,1));return Math.ceil((($.getTime()-Q.getTime())/86400000+1)/7)}function tX(Z){let $=_1(X1(Z),1,1);return J8(Z,$)+1}function q6(Z){return Math.ceil(E1(Z)/3)}function D6(Z){return Z%4===0&&Z%100!==0||Z%400===0}function w0(Z,$){let X=[31,28,31,30,31,30,31,31,30,31,30,31];if($===2&&D6(Z))return 29;return X[$-1]}function eX(Z){return D6(Z)?366:365}function _8(Z){return Z+"T00:00:00.000Z"}function ZQ(Z){return Math.floor(new Date(Z+"T00:00:00Z").getTime()/1000)}function $Q(Z){let $=new Date(Z*1000);return _1($.getUTCFullYear(),$.getUTCMonth()+1,$.getUTCDate())}function A6(Z,$){let X=new Date(Z+"T00:00:00Z"),Q={timeZone:"UTC",...$};return new Intl.DateTimeFormat(void 0,Q).format(X)}function XQ(Z){return A6(Z,{year:"numeric",month:"long",day:"numeric"})}function QQ(Z){return A6(Z,{year:"numeric",month:"short",day:"numeric"})}function KQ(Z,$){return Z<$}function HQ(Z,$){return Z>$}function YQ(Z,$){return Z===$}function zQ(Z,$){return Z<$?Z:$}function WQ(Z,$){return Z>$?Z:$}function GQ(Z,$,X){return Z>=$&&Z<=X}function JQ(Z){return _1(X1(Z),E1(Z),1)}function _Q(Z){let $=X1(Z),X=E1(Z);return _1($,X,w0($,X))}function LQ(Z){let X=(q6(Z)-1)*3+1;return _1(X1(Z),X,1)}function UQ(Z){let X=q6(Z)*3;return _1(X1(Z),X,w0(X1(Z),X))}function qQ(Z){return _1(X1(Z),1,1)}function DQ(Z){return _1(X1(Z),12,31)}function AQ(Z){let $=U6(Z);return M4(Z,-($-1))}function IQ(Z){let $=U6(Z);return M4(Z,7-$)}var RQ={isValid:_6,today:lX,todayIn:iX,from:_1,parse:G8,tryParse:pX,addDays:M4,addWeeks:nX,addMonths:cX,addYears:oX,diff:J8,diffMonths:sX,diffYears:aX,year:X1,month:E1,day:L6,dayOfWeek:U6,weekOfYear:rX,dayOfYear:tX,quarter:q6,isLeapYear:D6,daysInMonth:w0,daysInYear:eX,toTimestamp:_8,toUnix:ZQ,fromUnix:$Q,format:A6,formatLong:XQ,formatShort:QQ,isBefore:KQ,isAfter:HQ,isEqual:YQ,min:zQ,max:WQ,isBetween:GQ,startOfMonth:JQ,endOfMonth:_Q,startOfQuarter:LQ,endOfQuarter:UQ,startOfYear:qQ,endOfYear:DQ,startOfWeek:AQ,endOfWeek:IQ};export{C$ as xmlParse,c4 as wrap,l5 as whileLoop,B$ as vectorSearch,r5 as varsLet,a5 as varsImport,t5 as varsExport,c5 as varSet,s5 as varGet,n4 as validateArgs,T$ as uuid,C4 as typeToString,i1 as typeOf,m1 as typeDescriptorToTS,p5 as tryCatch,xK as transpileWithCache,L0 as transpileToJS,F$ as transpileCode,D4 as transpile,H0 as transformFunction,uK as tjsWithCache,hK as tjs,XZ as testUtils,W$ as template,g0 as stripTjsPreamble,k0 as stripModuleSyntax,I$ as storeSet,R$ as storeQuery,b$ as storeProcedure,A$ as storeGet,Y$ as split,V5 as setGlobalCache,J1 as seq,e5 as scope,b1 as runtime,j$ as runCode,i5 as ret,N as resolveValue,Z6 as resolveProcedureToken,v$ as releaseProcedure,X7 as registerWasmBlock,G$ as regexMatch,X$ as reduce,E$ as random,K$ as push,o1 as procedureStore,E0 as preprocess,J$ as pick,l6 as parseReturnType,P1 as parseParameter,M1 as parse,_$ as omit,L$ as merge,O$ as memoize,Z$ as map,V8 as lookupVariable,M$ as llmPredict,N5 as lint,H$ as len,U$ as keys,V$ as jsonStringify,P$ as jsonParse,z$ as join,y4 as isValidUrl,h4 as isValidTimestamp,x4 as isValidLegalDate,C1 as isRuntimeType,e4 as isProcedureToken,w1 as isError,k5 as isAgentError,$7 as instantiateWasm,Y5 as installRuntime,z1 as inferTypeFromValue,m5 as iff,F5 as hashSourceSync,Y4 as hashSource,$6 as hash,mK as getToolDefinitions,K6 as getStoreCapabilityDefault,MH as getStandardCapabilities,l as getLocation,l7 as getLLMCapability,z4 as getGlobalCache,_X as getBatteries,S5 as generateDocsMarkdown,w7 as generateDocs,iZ as generateDTS,M5 as fromTS,Q$ as find,$$ as filter,D$ as fetch,N4 as extractTests,X0 as extractTDoc,A1 as extractLiteralValue,s6 as expectFunction,n as evaluateExpr,n5 as errorAtom,R1 as error,z5 as emitRuntimeWrapper,S as defineAtom,O1 as createChildScope,W1 as createChildContext,dK as createAgent,L4 as coreAtoms,o5 as constSet,k$ as consoleWarn,S$ as consoleLog,g$ as consoleError,OZ as compileWasmBlocks,f0 as compileToWasm,f$ as clearExpiredProcedures,v1 as checkType,N$ as cache,j1 as builtins,JH as batteryAtoms,wH as batteries,o6 as assertFunction,fK as ajs,w$ as agentRun,a0 as Union,e as TypedBuilder,P8 as TypeError,c as Type,d as TranspileError,u4 as TimestampType,r1 as Timestamp,c0 as TUuid,n0 as TUrl,x0 as TString,e0 as TRecord,l0 as TPositiveInt,t0 as TPair,u0 as TNumber,i0 as TNonEmptyString,$1 as TJS_VERSION,m0 as TInteger,p0 as TEmail,d0 as TBoolean,r0 as TArray,Q1 as SyntaxError,w5 as Schema,c$ as SafeFunction,t4 as PROCEDURE_TOKEN_PREFIX,s0 as Optional,o0 as Nullable,s4 as MetadataCache,W6 as LocalModels,d4 as LegalDateType,RQ as LegalDate,l1 as Generic,n$ as Eval,Z4 as Enum,g5 as DEFAULT_PROCEDURE_TTL,b5 as DEFAULT_MAX_AST_SIZE,Q6 as AgentVM,H1 as AgentError,m$ as Agent,RK as A99};
413
+ `}return Q.trim()||"*No documentation available*"}import{s as A,validate as r4,filter as N7}from"tosijs-schema";var G4=Symbol.for("tjs.equals");function _4(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[G4]==="function")return Z[G4]($);if($!==null&&typeof $==="object"&&typeof $[G4]==="function")return $[G4](Z);if(Z!==null&&typeof Z==="object"&&typeof Z.Equals==="function")return Z.Equals($);if($!==null&&typeof $==="object"&&typeof $.Equals==="function")return $.Equals(Z);if(Z===$)return!0;if((Z===null||Z===void 0)&&($===null||$===void 0))return!0;if(Z===null||Z===void 0||$===null||$===void 0)return!1;if(typeof Z!==typeof $)return!1;if(typeof Z!=="object")return!1;if(Array.isArray(Z)&&Array.isArray($)){if(Z.length!==$.length)return!1;return Z.every((K,H)=>_4(K,$[H]))}if(Array.isArray(Z)!==Array.isArray($))return!1;let X=Object.keys(Z),Q=Object.keys($);if(X.length!==Q.length)return!1;return X.every((K)=>_4(Z[K],$[K]))}class H1{$error=!0;message;op;cause;constructor(Z,$,X){this.message=Z,this.op=$,this.cause=X}toString(){return`AgentError[${this.op}]: ${this.message}`}toJSON(){return{$error:!0,message:this.message,op:this.op}}}function k5(Z){return Z instanceof H1||Z&&Z.$error===!0}var o1=new Map,g5=3600000,b5=102400,t4="proc_";function e4(Z){return typeof Z==="string"&&Z.startsWith(t4)}function Z6(Z){let $=o1.get(Z);if(!$)throw Error(`Procedure not found: ${Z}`);if(Date.now()>$.expiresAt)throw o1.delete(Z),Error(`Procedure expired: ${Z}`);return $.ast}function v5(){if(typeof crypto<"u"&&crypto.randomUUID)return t4+crypto.randomUUID();return t4+Math.random().toString(36).slice(2)+Date.now().toString(36)}var E7=new Set(["__proto__","constructor","prototype"]);function F7(Z){if(E7.has(Z))throw Error(`Security Error: Access to '${Z}' is forbidden`)}var f5=new Set(["localhost","127.0.0.1","0.0.0.0","[::1]","metadata.google.internal"]);function y5(Z){try{let $=new URL(Z);if($.protocol!=="http:"&&$.protocol!=="https:")return!0;let X=$.hostname.toLowerCase();if(f5.has(X))return!0;if(X.endsWith(".internal")||X.endsWith(".local"))return!0;if(X==="169.254.169.254")return!0;if(/^10\./.test(X)||/^192\.168\./.test(X)||/^172\.(1[6-9]|2\d|3[01])\./.test(X))return!0;return!1}catch{return!0}}function h5(Z){if(/\([^)]*[+*][^)]*\)[+*]/.test(Z))return!0;if(/\(([^|)]+)\|\1\)[+*]/.test(Z))return!0;if(/\(\.\*\)\+/.test(Z))return!0;if(/\(\.\+\)\+/.test(Z))return!0;if(/\(\[.*\]\+\)\+/.test(Z))return!0;return!1}function O1(Z){return{...Z,state:Object.create(Z.state)}}function x5(Z,$){let X={},Q=new Set([...Object.keys(Z),...Object.keys($)]);for(let K of Q){let H=Z[K],Y=$[K];if(Y!==H)X[K]=Y}return X}function N(Z,$){if(Z&&typeof Z==="object"&&Z.$kind==="arg")return $.args[Z.path];if(Z&&typeof Z==="object"&&Z.$expr)return n(Z,$);if(typeof Z==="string"){if(Z.startsWith("args.")&&!("args"in $.state))return $.args[Z.replace("args.","")];if(Z.includes(".")){let X=Z.split(".");for(let K of X)if(E7.has(K))throw Error(`Security Error: Access to '${K}' is forbidden`);let Q=$.state[X[0]];if(Q!==void 0){for(let K=1;K<X.length;K++)Q=Q?.[X[K]];return Q}}if(Z in $.state)return $.state[Z];return Z}if(Z&&typeof Z==="object"&&!Array.isArray(Z)&&Z.constructor===Object){let X={};for(let Q of Object.keys(Z))X[Q]=N(Z[Q],$);return X}if(Array.isArray(Z))return Z.map((X)=>N(X,$));return Z}function h1(Z,$,X){return new Proxy($,{get(Q,K){if(K in Q)return Q[K];let H=X?.[K];if(H)throw Error(`${Z}.${K} is not available. ${H}`);throw Error(`${Z}.${K} is not supported in AsyncJS. Check docs for available ${Z} methods.`)}})}function c1(Z){if(Z===null)return{type:"null"};if(Z===void 0)return{};if(typeof Z==="object"&&Z!==null&&"type"in Z&&typeof Z.type==="string")return Z;if(typeof Z==="object"&&Z!==null&&"schema"in Z&&typeof Z.schema==="object")return Z.schema;let $=typeof Z;if($==="string")return{type:"string"};if($==="number")return Number.isInteger(Z)?{type:"integer"}:{type:"number"};if($==="boolean")return{type:"boolean"};if(Array.isArray(Z)){if(Z.length===0)return{type:"array"};return{type:"array",items:c1(Z[0])}}if($==="object"){let X={},Q=[];for(let[K,H]of Object.entries(Z))X[K]=c1(H),Q.push(K);return{type:"object",properties:X,required:Q}}return{}}var j1={Math:h1("Math",{PI:Math.PI,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,SQRT2:Math.SQRT2,SQRT1_2:Math.SQRT1_2,abs:Math.abs,ceil:Math.ceil,floor:Math.floor,round:Math.round,trunc:Math.trunc,sign:Math.sign,sqrt:Math.sqrt,cbrt:Math.cbrt,pow:Math.pow,exp:Math.exp,expm1:Math.expm1,log:Math.log,log2:Math.log2,log10:Math.log10,log1p:Math.log1p,sin:Math.sin,cos:Math.cos,tan:Math.tan,asin:Math.asin,acos:Math.acos,atan:Math.atan,atan2:Math.atan2,sinh:Math.sinh,cosh:Math.cosh,tanh:Math.tanh,asinh:Math.asinh,acosh:Math.acosh,atanh:Math.atanh,hypot:Math.hypot,min:Math.min,max:Math.max,clz32:Math.clz32,imul:Math.imul,fround:Math.fround,random:()=>{if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint32Array(1);return crypto.getRandomValues(Z),Z[0]/4294967296}return Math.random()}}),JSON:h1("JSON",{parse:(Z)=>JSON.parse(Z),stringify:(Z,$,X)=>JSON.stringify(Z,$,X)}),console:h1("console",{log:(...Z)=>{return},warn:(...Z)=>{return},error:(...Z)=>{return},info:(...Z)=>{return}},{table:"Use console.log with JSON.stringify for structured data.",dir:"Use console.log instead.",trace:"Stack traces are not available in AsyncJS."}),Array:h1("Array",{isArray:(Z)=>Array.isArray(Z),from:(Z,$,X)=>Array.from(Z,$,X),of:(...Z)=>Array.of(...Z)},{prototype:"Prototype access is not allowed."}),Object:h1("Object",{keys:(Z)=>Object.keys(Z),values:(Z)=>Object.values(Z),entries:(Z)=>Object.entries(Z),fromEntries:(Z)=>Object.fromEntries(Z),assign:(Z,...$)=>Object.assign({},Z,...$),hasOwn:(Z,$)=>Object.hasOwn(Z,$)},{prototype:"Prototype access is not allowed.",create:"Use object literals instead.",defineProperty:"Property descriptors are not supported.",getPrototypeOf:"Prototype access is not allowed.",setPrototypeOf:"Prototype modification is not allowed."}),String:h1("String",{fromCharCode:(...Z)=>String.fromCharCode(...Z),fromCodePoint:(...Z)=>String.fromCodePoint(...Z)}),Number:h1("Number",{isNaN:Number.isNaN,isFinite:Number.isFinite,isInteger:Number.isInteger,isSafeInteger:Number.isSafeInteger,parseFloat,parseInt,MAX_VALUE:Number.MAX_VALUE,MIN_VALUE:Number.MIN_VALUE,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,POSITIVE_INFINITY:Number.POSITIVE_INFINITY,NEGATIVE_INFINITY:Number.NEGATIVE_INFINITY,NaN:Number.NaN,EPSILON:Number.EPSILON}),parseInt,parseFloat,isNaN,isFinite,encodeURI,decodeURI,encodeURIComponent,decodeURIComponent,undefined:void 0,null:null,NaN:NaN,Infinity:1/0,filter:(Z,$)=>{let X=c1($),Q=N7(Z,X);if(Q instanceof Error)throw Q;return Q},Schema:{...A,response:(Z,$)=>{let X=$?.schema!=null?$.schema:c1($);return{type:"json_schema",json_schema:{name:Z,strict:!0,schema:X}}},fromExample:(Z)=>c1(Z),isValid:(Z,$)=>{if($?.schema!=null)return r4(Z,$);return r4(Z,c1($))}},Set:(Z=[])=>{let $=[...new globalThis.Set(Z)];return{add(X){if(!$.includes(X))$.push(X);return this},remove(X){let Q=$.indexOf(X);if(Q!==-1)$.splice(Q,1);return this},clear(){return $.length=0,this},has(X){return $.includes(X)},get size(){return $.length},toArray(){return[...$]},union(X){let Q=X?.toArray?.()??X??[];return j1.Set([...$,...Q])},intersection(X){let Q=X?.toArray?.()??X??[];return j1.Set($.filter((K)=>Q.includes(K)))},diff(X){let Q=X?.toArray?.()??X??[];return j1.Set($.filter((K)=>!Q.includes(K)))},forEach(X){$.forEach(X)},map(X){return j1.Set($.map(X))},filter(X){return j1.Set($.filter(X))},toJSON(){return[...$]}}},Date:(()=>{let Z=(X)=>({get value(){return X.toISOString()},get timestamp(){return X.getTime()},get year(){return X.getFullYear()},get month(){return X.getMonth()+1},get day(){return X.getDate()},get hours(){return X.getHours()},get minutes(){return X.getMinutes()},get seconds(){return X.getSeconds()},get dayOfWeek(){return X.getDay()},add({years:Q=0,months:K=0,days:H=0,hours:Y=0,minutes:z=0,seconds:W=0,ms:G=0}={}){let J=new globalThis.Date(X.getTime());if(Q)J.setFullYear(J.getFullYear()+Q);if(K)J.setMonth(J.getMonth()+K);if(H)J.setDate(J.getDate()+H);if(Y)J.setHours(J.getHours()+Y);if(z)J.setMinutes(J.getMinutes()+z);if(W)J.setSeconds(J.getSeconds()+W);if(G)J.setMilliseconds(J.getMilliseconds()+G);return Z(J)},diff(Q,K="ms"){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime(),Y=X.getTime()-H;switch(K){case"seconds":return Y/1000;case"minutes":return Y/60000;case"hours":return Y/3600000;case"days":return Y/86400000;default:return Y}},format(Q="ISO"){if(Q==="ISO")return X.toISOString();if(Q==="date")return X.toISOString().split("T")[0];if(Q==="time")return X.toISOString().split("T")[1].split(".")[0];return Q.replace("YYYY",String(X.getFullYear())).replace("MM",String(X.getMonth()+1).padStart(2,"0")).replace("DD",String(X.getDate()).padStart(2,"0")).replace("HH",String(X.getHours()).padStart(2,"0")).replace("mm",String(X.getMinutes()).padStart(2,"0")).replace("ss",String(X.getSeconds()).padStart(2,"0"))},isBefore(Q){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()<K},isAfter(Q){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()>K},toString(){return X.toISOString()},toJSON(){return X.toISOString()}}),$=(X)=>{let Q=X!==void 0?new globalThis.Date(X):new globalThis.Date;if(isNaN(Q.getTime()))throw Error(`Invalid date: ${X}`);return Z(Q)};return $.now=()=>globalThis.Date.now(),$.parse=(X)=>Z(new globalThis.Date(X)),$})()},J4={RegExp:"RegExp is not available. Use string methods or the regexMatch atom.",Promise:"Promise is not needed. All operations are implicitly async.",Map:"Map is not available. Use plain objects instead.",WeakSet:"WeakSet is not available.",WeakMap:"WeakMap is not available.",Symbol:"Symbol is not available.",Proxy:"Proxy is not available.",Reflect:"Reflect is not available.",Function:"Function constructor is not available. Define functions normally.",eval:"eval is not available. Code is compiled, not evaluated.",setTimeout:"setTimeout is not available. Use the delay atom.",setInterval:"setInterval is not available. Use while loops with delay.",fetch:"fetch is not available. Use the httpFetch atom.",require:"require is not available. Atoms must be registered with the VM.",import:"import is not available. Atoms must be registered with the VM.",process:"process is not available. AsyncJS runs in a sandboxed environment.",window:"window is not available. AsyncJS runs in a sandboxed environment.",document:"document is not available. AsyncJS runs in a sandboxed environment.",global:"global is not available. AsyncJS runs in a sandboxed environment.",globalThis:"globalThis is not available. Use builtins directly."},u5=0.01,j7=0.0001,P7=0.001,d5=new Set(["concat","slice","map","filter","flatMap","flat","toReversed","toSorted","toSpliced","repeat","padStart","padEnd","split","join","replace","replaceAll","substring","substr","trim","trimStart","trimEnd","toLowerCase","toUpperCase","match","matchAll","parse","stringify"]);function n(Z,$){if(Z===null||Z===void 0)return Z;if(typeof Z!=="object"||!("$expr"in Z))return Z;if($.fuel){if($.fuel.current-=u5,$.fuel.current<=0)throw Error("Out of Fuel")}switch(Z.$expr){case"literal":return Z.value;case"ident":{if(Z.name in $.state)return $.state[Z.name];if(Z.name in $.args)return $.args[Z.name];if(Z.name in j1)return j1[Z.name];if(Z.name in J4)throw Error(J4[Z.name]);return}case"member":{let X=n(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.property;return F7(Q),X?.[Q]}case"binary":{let X=n(Z.left,$),Q=n(Z.right,$);switch(Z.op){case"+":{let K=X+Q;if(typeof K==="string"&&$.fuel){if($.fuel.current-=K.length*j7,$.fuel.current<=0){$.error=new H1("Out of Fuel","expr.concat");return}}return K}case"-":return X-Q;case"*":return X*Q;case"/":return X/Q;case"%":return X%Q;case"**":return X**Q;case">":return X>Q;case"<":return X<Q;case">=":return X>=Q;case"<=":return X<=Q;case"==":return _4(X,Q);case"!=":return!_4(X,Q);case"===":return X===Q;case"!==":return X!==Q;default:throw Error(`Unknown binary operator: ${Z.op}`)}}case"unary":{let X=n(Z.argument,$);switch(Z.op){case"!":return!X;case"-":return-X;case"+":return+X;case"typeof":return typeof X;default:throw Error(`Unknown unary operator: ${Z.op}`)}}case"logical":{let X=n(Z.left,$);if(Z.op==="&&")return X?n(Z.right,$):X;else if(Z.op==="??")return X??n(Z.right,$);else return X?X:n(Z.right,$)}case"conditional":return n(Z.test,$)?n(Z.consequent,$):n(Z.alternate,$);case"array":return Z.elements.map((X)=>n(X,$));case"object":{let X={};for(let Q of Z.properties)X[Q.key]=n(Q.value,$);return X}case"call":{if(Z.callee==="Error"){let Q=Z.arguments.map((H)=>n(H,$)),K=typeof Q[0]==="string"?Q[0]:"Error";$.error=new H1(K,"Error");return}if(Z.callee in j1){let Q=j1[Z.callee];if(typeof Q==="function"){let K=Z.arguments.map((H)=>n(H,$));return Q(...K)}}if(!$.resolver(Z.callee)){if(Z.callee in J4)throw Error(J4[Z.callee]);throw Error(`Unknown function: ${Z.callee}`)}throw Error(`Atom calls in expressions not yet supported: ${Z.callee}`)}case"methodCall":{let X=n(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.method;if(F7(Q),X===null||X===void 0)throw Error(`Cannot call method '${Q}' on ${X}`);let K=X[Q];if(typeof K!=="function")throw Error(`'${Q}' is not a function`);let H=Z.arguments.map((z)=>n(z,$)),Y=K.apply(X,H);if($.fuel&&d5.has(Q)){let z=0;if(typeof Y==="string")z=Y.length*j7;else if(Array.isArray(Y))z=Y.length*P7;else if(typeof Y==="object"&&Y!==null)z=Object.keys(Y).length*P7;if($.fuel.current-=z,$.fuel.current<=0){$.error=new H1("Out of Fuel",`expr.${Q}`);return}}return Y}default:throw Error(`Unknown expression type: ${Z.$expr}`)}}function k(Z,$,X,Q,K={}){let{docs:H="",timeoutMs:Y=1000,cost:z=1}=typeof K==="string"?{docs:K}:K;return{op:Z,inputSchema:$,outputSchema:X,exec:async(G,J)=>{let{op:U,result:_,...L}=G;if(J.error)return;let D=J.trace?{...J.state}:null,I=J.fuel.current,M,R;try{let V=J.costOverrides?.[Z],w=V!==void 0?V:z,F=typeof w==="function"?w(L,J):w;if((J.fuel.current-=F)<=0){J.error=new H1("Out of Fuel",Z);return}let B,P=async()=>Q(G,J);if(M=Y>0?await Promise.race([P(),new Promise((C,O)=>{B=setTimeout(()=>O(Error(`Atom '${Z}' timed out`)),Y)})]).finally(()=>clearTimeout(B)):await P(),G.result){if(J.consts.has(G.result))throw Error(`Cannot reassign const variable '${G.result}'`);if(M!==void 0&&X&&!r4(M,X)){J.error=new H1(`Output validation failed for '${Z}'`,Z);return}if(J.state[G.result]=M,G.resultConst)J.consts.add(G.result)}}catch(V){R=V.message||String(V),J.error=new H1(R,Z,V)}finally{if(J.trace&&D){let V=x5(D,J.state);J.trace.push({op:Z,input:L,stateDiff:V,result:M,error:R,fuelBefore:I,fuelAfter:J.fuel.current,timestamp:new Date().toISOString()})}}},docs:H,timeoutMs:Y,cost:z,create:(G)=>({op:Z,...G})}}var J1=k("seq",A.object({steps:A.array(A.any)}),void 0,async({steps:Z},$)=>{for(let X of Z){if($.output!==void 0)return;if($.error)return;let Q=$.resolver(X.op);if(!Q)throw Error(`Unknown Atom: ${X.op}`);await Q.exec(X,$)}},{docs:"Sequence",timeoutMs:0,cost:0.1}),m5=k("if",A.object({condition:A.any,then:A.array(A.any),else:A.array(A.any).optional}),void 0,async(Z,$)=>{if(n(Z.condition,$))await J1.exec({op:"seq",steps:Z.then},$);else if(Z.else)await J1.exec({op:"seq",steps:Z.else},$)},{docs:"If/Else",timeoutMs:0,cost:0.1}),l5=k("while",A.object({condition:A.any,body:A.array(A.any)}),void 0,async(Z,$)=>{while(n(Z.condition,$)){if($.signal?.aborted)throw Error("Execution aborted");if(($.fuel.current-=0.1)<=0)throw Error("Out of Fuel");if(await J1.exec({op:"seq",steps:Z.body},$),$.output!==void 0)return}},{docs:"While Loop",timeoutMs:0,cost:0.1}),i5=k("return",void 0,A.any,async(Z,$)=>{if($.error)return $.output=$.error,$.error;if("value"in Z){let Q=N(Z.value,$);if(Q!==void 0&&Q!==null&&!k5(Q)&&(typeof Q!=="object"||Array.isArray(Q))){let K=new H1(`Agent must return an object, got ${Array.isArray(Q)?"array":typeof Q}`,"return");return $.error=K,$.output=K,K}return $.output=Q,Q}let X={};if(Z.schema?.properties){for(let Q of Object.keys(Z.schema.properties))X[Q]=$.state[Q];if(Z.filter!==!1){let Q=N7(X,Z.schema);if(!(Q instanceof Error))X=Q}}return $.output=X,X},{docs:"Return",cost:0.1}),p5=k("try",A.object({try:A.array(A.any),catch:A.array(A.any).optional,catchParam:A.string.optional}),void 0,async(Z,$)=>{if(await J1.exec({op:"seq",steps:Z.try},$),$.error&&Z.catch){let X=Z.catchParam||"error";$.state[X]=$.error.message,$.state.errorOp=$.error.op,$.error=void 0,await J1.exec({op:"seq",steps:Z.catch},$)}},{docs:"Try/Catch",timeoutMs:0,cost:0.1}),n5=k("Error",A.object({args:A.array(A.any).optional}),void 0,async(Z,$)=>{let X=Z.args?.[0]??"Error";$.error=new H1(String(X),"Error")},{docs:"Trigger error flow",cost:0.1}),c5=k("varSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);X.state[Z]=N($,X)},{docs:"Set Variable",cost:0.1}),o5=k("constSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{if(X.consts.has(Z))throw Error(`Cannot reassign const variable '${Z}'`);if(Z in X.state)throw Error(`Cannot redeclare variable '${Z}' as const`);X.state[Z]=N($,X),X.consts.add(Z)},{docs:"Set Const Variable (immutable)",cost:0.1}),s5=k("varGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{return N(Z,$)},{docs:"Get Variable",cost:0.1}),a5=k("varsImport",A.object({keys:A.union([A.array(A.string),A.record(A.string)])}),void 0,async({keys:Z},$)=>{if(Array.isArray(Z))for(let X of Z)$.state[X]=N({$kind:"arg",path:X},$);else for(let[X,Q]of Object.entries(Z))$.state[X]=N({$kind:"arg",path:Q},$)},{docs:"Import variables from args into the current scope, with optional renaming.",cost:0.2}),r5=k("varsLet",A.record(A.any),void 0,async(Z,$)=>{for(let X of Object.keys(Z)){if(X==="op"||X==="result")continue;$.state[X]=N(Z[X],$)}},{docs:"Initialize a set of variables in the current scope from the step object properties.",cost:0.1}),t5=k("varsExport",A.object({keys:A.union([A.array(A.string),A.record(A.string)])}),A.record(A.any),async({keys:Z},$)=>{let X={};if(Array.isArray(Z))for(let Q of Z)X[Q]=N(Q,$);else for(let[Q,K]of Object.entries(Z))X[Q]=N(K,$);return X},{docs:"Export variables from the current scope, with optional renaming.",cost:0.2}),e5=k("scope",A.object({steps:A.array(A.any)}),void 0,async({steps:Z},$)=>{let X=O1($);if(await J1.exec({op:"seq",steps:Z},X),X.output!==void 0)$.output=X.output},{docs:"Create new scope",timeoutMs:0,cost:0.1}),Z$=k("map",A.object({items:A.array(A.any),as:A.string,steps:A.array(A.any)}),A.array(A.any),async({items:Z,as:$,steps:X},Q)=>{let K=[],H=N(Z,Q);if(!Array.isArray(H))throw Error("map: items is not an array");for(let Y of H){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);z.state[$]=Y,await J1.exec({op:"seq",steps:X},z),K.push(z.state.result??null)}return K},{docs:"Map Array",timeoutMs:0,cost:1}),$$=k("filter",A.object({items:A.array(A.any),as:A.string,condition:A.any}),A.array(A.any),async({items:Z,as:$,condition:X},Q)=>{let K=[],H=N(Z,Q);if(!Array.isArray(H))throw Error("filter: items is not an array");for(let Y of H){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);if(z.state[$]=Y,n(X,z))K.push(Y)}return K},{docs:"Filter Array",timeoutMs:0,cost:1}),X$=k("reduce",A.object({items:A.array(A.any),as:A.string,accumulator:A.string,initial:A.any,steps:A.array(A.any)}),A.any,async({items:Z,as:$,accumulator:X,initial:Q,steps:K},H)=>{let Y=N(Z,H),z=N(Q,H);if(!Array.isArray(Y))throw Error("reduce: items is not an array");let W=z;for(let G of Y){if(H.signal?.aborted)throw Error("Execution aborted");let J=O1(H);J.state[$]=G,J.state[X]=W,await J1.exec({op:"seq",steps:K},J),W=J.state.result??W}return W},{docs:"Reduce Array",timeoutMs:0,cost:1}),Q$=k("find",A.object({items:A.array(A.any),as:A.string,condition:A.any}),A.any,async({items:Z,as:$,condition:X},Q)=>{let K=N(Z,Q);if(!Array.isArray(K))throw Error("find: items is not an array");for(let H of K){if(Q.signal?.aborted)throw Error("Execution aborted");let Y=O1(Q);if(Y.state[$]=H,n(X,Y))return H}return null},{docs:"Find in Array",timeoutMs:0,cost:1}),K$=k("push",A.object({list:A.array(A.any),item:A.any}),A.array(A.any),async({list:Z,item:$},X)=>{let Q=N(Z,X),K=N($,X);if(Array.isArray(Q))Q.push(K);return Q},{docs:"Push to Array",cost:1}),H$=k("len",A.object({list:A.any}),A.number,async({list:Z},$)=>{let X=N(Z,$);return Array.isArray(X)||typeof X==="string"?X.length:0},{docs:"Length",cost:1}),Y$=k("split",A.object({str:A.string,sep:A.string}),A.array(A.string),async({str:Z,sep:$},X)=>N(Z,X).split(N($,X)),{docs:"Split String",cost:1}),z$=k("join",A.object({list:A.array(A.string),sep:A.string}),A.string,async({list:Z,sep:$},X)=>N(Z,X).join(N($,X)),{docs:"Join String",cost:1}),W$=k("template",A.object({tmpl:A.string,vars:A.record(A.any)}),A.string,async({tmpl:Z,vars:$},X)=>{return N(Z,X).replace(/\{\{(\w+)\}\}/g,(K,H)=>String(N($[H],X)??""))},{docs:"String Template",cost:1}),G$=k("regexMatch",A.object({pattern:A.string,value:A.any}),A.boolean,async({pattern:Z,value:$},X)=>{if(h5(Z))throw Error(`Suspicious regex pattern rejected (potential ReDoS): ${Z}`);let Q=N($,X);return new RegExp(Z).test(Q)},{docs:"Returns true if the value matches the regex pattern.",cost:2}),J$=k("pick",A.object({obj:A.record(A.any),keys:A.array(A.string)}),A.record(A.any),async({obj:Z,keys:$},X)=>{let Q=N(Z,X),K=N($,X),H={};if(Q&&Array.isArray(K))K.forEach((Y)=>H[Y]=Q[Y]);return H},{docs:"Pick Keys",cost:1}),_$=k("omit",A.object({obj:A.record(A.any),keys:A.array(A.string)}),A.record(A.any),async({obj:Z,keys:$},X)=>{let Q=N(Z,X),K=new Set(N($,X)),H={};if(Q)Object.keys(Q).forEach((Y)=>{if(!K.has(Y))H[Y]=Q[Y]});return H},{docs:"Omit Keys",cost:1}),L$=k("merge",A.object({a:A.record(A.any),b:A.record(A.any)}),A.record(A.any),async({a:Z,b:$},X)=>({...N(Z,X),...N($,X)}),{docs:"Merge Objects",cost:1}),U$=k("keys",A.object({obj:A.record(A.any)}),A.array(A.string),async({obj:Z},$)=>Object.keys(N(Z,$)??{}),{docs:"Object Keys",cost:1}),V7=10,C7="X-Agent-Depth";function q$(Z,$){try{let Q=new URL(Z).hostname.toLowerCase();for(let K of $){let H=K.toLowerCase();if(H.startsWith("*.")){let Y=H.slice(1);if(Q.endsWith(Y)||Q===H.slice(2))return!0}else if(Q===H)return!0}return!1}catch{return!1}}var D$=k("httpFetch",A.object({url:A.string,method:A.string.optional,headers:A.record(A.string).optional,body:A.any.optional,responseType:A.string.optional}),A.any,async(Z,$)=>{let X=N(Z.url,$),Q=N(Z.method,$),K=N(Z.headers,$)||{},H=N(Z.body,$),Y=N(Z.responseType,$),z=$.context?.requestDepth??0;if(z>=V7)throw Error(`Agent request depth exceeded (max ${V7}). This prevents recursive agent loops.`);if($.capabilities.fetch)return $.capabilities.fetch(X,{method:Q,headers:{...K,[C7]:String(z+1)},body:H,signal:$.signal,responseType:Y});let W=$.context?.allowedFetchDomains;if(W){if(!q$(X,W))throw Error(`Fetch blocked: domain not in allowlist. Allowed: ${W.join(", ")}`)}else{if(y5(X))throw Error("Blocked URL: private/internal addresses not allowed in default fetch");try{let J=new URL(X).hostname.toLowerCase();if(J!=="localhost"&&J!=="127.0.0.1"&&J!=="[::1]")throw Error("Fetch blocked: no allowedFetchDomains configured. Set ctx.context.allowedFetchDomains or provide a custom fetch capability.")}catch(G){if(G.message.includes("allowedFetchDomains"))throw G;throw Error(`Invalid URL: ${X}`)}}if(typeof globalThis.fetch==="function"){let G=await globalThis.fetch(X,{method:Q,headers:{...K,[C7]:String(z+1)},body:H?JSON.stringify(H):void 0,signal:$.signal});if(Y==="dataUrl"){let U=await G.arrayBuffer(),_=new Uint8Array(U),L="";for(let M=0;M<_.length;M++)L+=String.fromCharCode(_[M]);let D=btoa(L);return`data:${G.headers.get("content-type")||"application/octet-stream"};base64,${D}`}let J=G.headers.get("content-type");if(Y==="json"||J&&J.includes("application/json"))return G.json();return G.text()}throw Error("Capability 'fetch' missing and no global fetch available")},{docs:"HTTP Fetch",timeoutMs:30000,cost:5}),A$=k("storeGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{let X=N(Z,$);return $.capabilities.store?.get(X)},{docs:"Store Get",cost:5}),I$=k("storeSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{let Q=N(Z,X),K=N($,X);return X.capabilities.store?.set(Q,K)},{docs:"Store Set",cost:5}),R$=k("storeQuery",A.object({query:A.any}),A.array(A.any),async({query:Z},$)=>$.capabilities.store?.query?.(N(Z,$))??[],{docs:"Store Query",cost:5}),B$=k("storeVectorSearch",A.object({collection:A.string.optional,vector:A.array(A.number),k:A.number.optional}),A.array(A.any),async({collection:Z,vector:$,k:X},Q)=>Q.capabilities.store?.vectorSearch?.(N(Z,Q),N($,Q),N(X,Q))??[],{docs:"Vector Search",cost:(Z,$)=>5+(N(Z.k,$)??5)}),M$=k("llmPredict",A.object({prompt:A.string,options:A.any.optional}),A.string,async({prompt:Z,options:$},X)=>{if(!X.capabilities.llm?.predict)throw Error("Capability 'llm.predict' missing");return X.capabilities.llm.predict(N(Z,X),N($,X))},{docs:"LLM Predict",timeoutMs:120000,cost:100}),w$=k("agentRun",A.object({agentId:A.any,input:A.any}),A.any,async({agentId:Z,input:$},X)=>{let Q=N(Z,X),K=N($,X),H=K;if(K&&typeof K==="object"&&!Array.isArray(K)){H={};for(let z in K)H[z]=N(K[z],X)}if(e4(Q)){let z=Z6(Q),W={...X,args:H,state:{},consts:new Set,output:void 0,error:void 0},G=X.resolver("seq");if(!G)throw Error("seq atom not found");if(await G.exec(z,W),W.error)throw Error(W.error.message||"Sub-agent failed");return W.output}if(Q&&typeof Q==="object"&&"op"in Q){let z={...X,args:H,state:{},consts:new Set,output:void 0,error:void 0},W=X.resolver("seq");if(!W)throw Error("seq atom not found");if(await W.exec(Q,z),z.error)throw Error(z.error.message||"Sub-agent failed");return z.output}if(!X.capabilities.agent?.run)throw Error("Capability 'agent.run' missing");let Y=await X.capabilities.agent.run(Q,H);if(Y&&typeof Y==="object"&&"fuelUsed"in Y&&typeof Y.fuelUsed==="number"){if(Y.error)throw Error(Y.error.message||"Sub-agent failed");return Y.result}return Y},{docs:"Run Sub-Agent (accepts procedure token, AST, or agent ID)",cost:1}),F$=k("transpileCode",A.object({code:A.string}),A.any,async({code:Z},$)=>{if(!$.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable code transpilation by providing the code capability.");let X=N(Z,$);try{return $.capabilities.code.transpile(X)}catch(Q){throw Error(`Code transpilation failed: ${Q.message}`)}},{docs:"Transpile AsyncJS code to AST",cost:1}),O7=10,j$=k("runCode",A.object({code:A.string,args:A.record(A.any).optional}),A.any,async({code:Z,args:$},X)=>{let Q=X.runCodeDepth??0;if(Q>=O7)throw Error(`runCode recursion limit exceeded (max ${O7}). This prevents infinite loops from dynamically generated code calling runCode.`);if(!X.capabilities.code?.transpile)throw Error("Capability 'code.transpile' missing. Enable dynamic code execution by providing the code capability.");let K=N(Z,X),H=$?N($,X):{},Y;try{Y=X.capabilities.code.transpile(K)}catch(W){throw Error(`Code transpilation failed: ${W.message}`)}if(Y.op!=="seq")throw Error("Transpiled code must be a seq node");let z=O1(X);if(z.args=H,z.output=void 0,z.runCodeDepth=Q+1,await J1.exec(Y,z),z.error){X.error=z.error;return}return z.output},{docs:"Run dynamically generated AsyncJS code",cost:1}),P$=k("jsonParse",A.object({str:A.string}),A.any,async({str:Z},$)=>JSON.parse(N(Z,$)),{docs:"Parse JSON",cost:1}),V$=k("jsonStringify",A.object({value:A.any}),A.string,async({value:Z},$)=>JSON.stringify(N(Z,$)),{docs:"Stringify JSON",cost:1}),C$=k("xmlParse",A.object({str:A.string}),A.any,async({str:Z},$)=>{if(!$.capabilities.xml?.parse)throw Error("Capability 'xml.parse' missing");return $.capabilities.xml.parse(N(Z,$))},{docs:"Parse XML",cost:1}),O$=k("memoize",A.object({key:A.string.optional,steps:A.array(A.any)}),A.any,async({key:Z,steps:$},X)=>{if(!X.memo)X.memo=new Map;let Q=N(Z,X)??await $6.exec({value:$,algorithm:"SHA-256"},X);if(X.memo.has(Q))return X.memo.get(Q);let K=O1(X);await J1.exec({op:"seq",steps:$},K);let H=K.output??K.state.result;return X.memo.set(Q,H),H},{docs:"Memoize steps result in memory",cost:1}),N$=k("cache",A.object({key:A.string.optional,steps:A.array(A.any),ttlMs:A.number.optional}),A.any,async({key:Z,steps:$,ttlMs:X},Q)=>{if(!Q.capabilities.store)throw Error("Capability 'store' missing for caching");let H=`cache:${N(Z,Q)??await $6.exec({value:$,algorithm:"SHA-256"},Q)}`,Y=await Q.capabilities.store.get(H);if(Y)if(typeof Y==="object"&&Y._exp){if(Date.now()<Y._exp)return Y.val}else return Y;let z=O1(Q);await J1.exec({op:"seq",steps:$},z);let W=z.output??z.state.result,G=Date.now()+(X??86400000);if((Q.fuel.current-=5)<=0)throw Error("Out of Fuel");return await Q.capabilities.store.set(H,{val:W,_exp:G}),W},{docs:"Cache steps result in store with TTL",cost:5}),E$=k("random",A.object({min:A.number.optional,max:A.number.optional,format:A.string.optional,length:A.number.optional}),A.any,async({min:Z,max:$,format:X,length:Q},K)=>{let H=N(X,K)??"float",Y=N(Q,K)??10,z=N(Z,K)??0,W=N($,K)??1;if(H==="base36"){let L="";if(typeof crypto<"u"&&crypto.getRandomValues){let D=new Uint8Array(Y);crypto.getRandomValues(D);for(let I=0;I<Y;I++)L+="0123456789abcdefghijklmnopqrstuvwxyz"[D[I]%36]}else for(let D=0;D<Y;D++)L+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*36));return L}let G;if(typeof crypto<"u"&&crypto.getRandomValues){let _=new Uint32Array(1);crypto.getRandomValues(_),G=_[0]/4294967296}else G=Math.random();let J=W-z,U=G*J+z;if(H==="integer")return Math.floor(U);return U},{docs:"Generate Random",cost:1}),T$=k("uuid",void 0,A.string,async()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();if(typeof crypto<"u"&&crypto.getRandomValues){let Z=new Uint8Array(16);crypto.getRandomValues(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128;let $=Array.from(Z,(X)=>X.toString(16).padStart(2,"0")).join("");return`${$.slice(0,8)}-${$.slice(8,12)}-${$.slice(12,16)}-${$.slice(16,20)}-${$.slice(20)}`}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(Z)=>{let $=Math.random()*16|0;return(Z==="x"?$:$&3|8).toString(16)})},{docs:"Generate UUID",cost:1}),$6=k("hash",A.object({value:A.any,algorithm:A.string.optional}),A.string,async({value:Z,algorithm:$},X)=>{let Q=typeof Z==="string"?Z:JSON.stringify(N(Z,X)),K=N($,X)||"SHA-256";if(typeof crypto<"u"&&crypto.subtle){let z=new TextEncoder().encode(Q),W=await crypto.subtle.digest(K,z);return Array.from(new Uint8Array(W)).map((J)=>J.toString(16).padStart(2,"0")).join("")}let H=0;for(let Y=0;Y<Q.length;Y++){let z=Q.charCodeAt(Y);H=(H<<5)-H+z,H|=0}return String(H)},{docs:"Hash a value",cost:1}),S$=k("consoleLog",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=N(Z,$);if($.trace)$.trace.push({op:"console.log",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Log to trace",cost:0.1}),k$=k("consoleWarn",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=N(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);if(!$.warnings)$.warnings=[];if($.warnings.push(Q),$.trace)$.trace.push({op:"console.warn",input:{message:X},stateDiff:{},result:X,fuelBefore:$.fuel.current,fuelAfter:$.fuel.current,timestamp:new Date().toISOString()})},{docs:"Add warning",cost:0.1}),g$=k("consoleError",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=N(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);$.error=new H1(Q,"console.error")},{docs:"Emit error and stop",cost:0.1}),b$=k("storeProcedure",A.object({ast:A.any,ttl:A.number.optional,maxSize:A.number.optional}),A.string,async({ast:Z,ttl:$,maxSize:X},Q)=>{let K=N(Z,Q),H=$?N($,Q):g5,Y=X?N(X,Q):b5;if(!K||typeof K!=="object"||!K.op)throw Error('Invalid AST: must be an object with an "op" property');let z=JSON.stringify(K);if(z.length>Y)throw Error(`AST too large: ${z.length} bytes exceeds limit of ${Y} bytes. Consider reducing AST size or using a shorter TTL.`);let W=v5(),G=Date.now();return o1.set(W,{ast:K,createdAt:G,expiresAt:G+H}),W},{docs:"Store an AST and return a token for later execution",cost:1}),v$=k("releaseProcedure",A.object({token:A.string}),A.boolean,async({token:Z},$)=>{let X=N(Z,$);return o1.delete(X)},{docs:"Release a stored procedure by token",cost:0.1}),f$=k("clearExpiredProcedures",void 0,A.number,async()=>{let Z=Date.now(),$=0;for(let[X,Q]of o1)if(Z>Q.expiresAt)o1.delete(X),$++;return $},{docs:"Clear all expired procedures and return count",cost:0.5}),L4={seq:J1,if:m5,while:l5,return:i5,try:p5,Error:n5,varSet:c5,constSet:o5,varGet:s5,varsImport:a5,varsLet:r5,varsExport:t5,scope:e5,map:Z$,filter:$$,reduce:X$,find:Q$,push:K$,len:H$,split:Y$,join:z$,template:W$,regexMatch:G$,pick:J$,omit:_$,merge:L$,keys:U$,httpFetch:D$,storeGet:A$,storeSet:I$,storeQuery:R$,storeVectorSearch:B$,llmPredict:M$,agentRun:w$,transpileCode:F$,runCode:j$,jsonParse:P$,jsonStringify:V$,xmlParse:C$,memoize:O$,cache:N$,random:E$,uuid:T$,hash:$6,consoleLog:S$,consoleWarn:k$,consoleError:g$,storeProcedure:b$,releaseProcedure:v$,clearExpiredProcedures:f$};var y$=new Set(["true","false","null","undefined","and","or","not"]);function h$(Z,$){let X=Z.replace(/"[^"]*"/g,'""').replace(/'[^']*'/g,"''"),Q=[],K=/(?<![.])\b([a-zA-Z_][a-zA-Z0-9_]*)\b/g,H;while((H=K.exec(X))!==null)Q.push(H[1]);let z=[...new Set(Q)].filter((W)=>!y$.has(W)&&!(W in $)&&!new RegExp(`\\b${W}\\s*\\(`).test(X));if(z.length>0)console.warn(`[Agent99 Builder] Condition "${Z}" references variables not in vars mapping: ${z.join(", ")}. Add them to vars or use AsyncJS syntax (ajs\`...\`) which handles this automatically.`)}function U4(Z,$){h$(Z,$);let X=x$(Z),Q=b7(X,0,$);if(Q.pos<X.length){let K=X.slice(Q.pos).join(" ");throw Error(`Unsupported condition syntax near '${K}' in: ${Z}
414
+ Supported: comparisons, &&, ||, !, arithmetic, member access (a.b), literals`)}return Q.node}function x$(Z){let $=[],X=0;while(X<Z.length){while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)break;if(Z[X]==='"'||Z[X]==="'"){let Q=Z[X++],K="";while(X<Z.length&&Z[X]!==Q)if(Z[X]==="\\"&&X+1<Z.length)X++,K+=Z[X++];else K+=Z[X++];X++,$.push(JSON.stringify(K));continue}if(Z.slice(X,X+2).match(/^(&&|\|\||==|!=|>=|<=)$/)){$.push(Z.slice(X,X+2)),X+=2;continue}if("+-*/%><!().?:[]".includes(Z[X])){$.push(Z[X]),X++;continue}if(/\d/.test(Z[X])){let Q="";while(X<Z.length&&/[\d.]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}if(/[a-zA-Z_]/.test(Z[X])){let Q="";while(X<Z.length&&/[a-zA-Z0-9_]/.test(Z[X]))Q+=Z[X++];$.push(Q);continue}X++}return $}function b7(Z,$,X){return u$(Z,$,X)}function u$(Z,$,X){let{node:Q,pos:K}=T7(Z,$,X);while(Z[K]==="||"){K++;let{node:H,pos:Y}=T7(Z,K,X);Q={$expr:"logical",op:"||",left:Q,right:H},K=Y}return{node:Q,pos:K}}function T7(Z,$,X){let{node:Q,pos:K}=S7(Z,$,X);while(Z[K]==="&&"){K++;let{node:H,pos:Y}=S7(Z,K,X);Q={$expr:"logical",op:"&&",left:Q,right:H},K=Y}return{node:Q,pos:K}}function S7(Z,$,X){let{node:Q,pos:K}=k7(Z,$,X),H=["==","!=",">","<",">=","<="];while(H.includes(Z[K])){let Y=Z[K++],{node:z,pos:W}=k7(Z,K,X);Q={$expr:"binary",op:Y,left:Q,right:z},K=W}return{node:Q,pos:K}}function k7(Z,$,X){let{node:Q,pos:K}=g7(Z,$,X);while(Z[K]==="+"||Z[K]==="-"){let H=Z[K++],{node:Y,pos:z}=g7(Z,K,X);Q={$expr:"binary",op:H,left:Q,right:Y},K=z}return{node:Q,pos:K}}function g7(Z,$,X){let{node:Q,pos:K}=X6(Z,$,X);while(Z[K]==="*"||Z[K]==="/"||Z[K]==="%"){let H=Z[K++],{node:Y,pos:z}=X6(Z,K,X);Q={$expr:"binary",op:H,left:Q,right:Y},K=z}return{node:Q,pos:K}}function X6(Z,$,X){if(Z[$]==="!"||Z[$]==="-"){let Q=Z[$++],{node:K,pos:H}=X6(Z,$,X);return{node:{$expr:"unary",op:Q,argument:K},pos:H}}return d$(Z,$,X)}function d$(Z,$,X){let Q=Z[$];if(Q==="("){let{node:K,pos:H}=b7(Z,$+1,X);return{node:K,pos:H+1}}if(Q&&Q.startsWith('"'))return{node:{$expr:"literal",value:JSON.parse(Q)},pos:$+1};if(Q&&/^\d/.test(Q))return{node:{$expr:"literal",value:parseFloat(Q)},pos:$+1};if(Q==="true")return{node:{$expr:"literal",value:!0},pos:$+1};if(Q==="false")return{node:{$expr:"literal",value:!1},pos:$+1};if(Q==="null")return{node:{$expr:"literal",value:null},pos:$+1};if(Q&&/^[a-zA-Z_]/.test(Q)){let K={$expr:"ident",name:Q},H=$+1;while(Z[H]==="."){H++;let Y=Z[H++];K={$expr:"member",object:K,property:Y}}return{node:K,pos:H}}return{node:{$expr:"literal",value:null},pos:$+1}}class e{steps=[];atoms;proxy;constructor(Z){return this.atoms=Z,this.proxy=new Proxy(this,{get:($,X,Q)=>{if(X in $)return $[X];if(typeof X==="string"&&X in $.atoms)return(K)=>{let H=$.atoms[X];return $.add(H.create(K)),Q};return}}),this.proxy}add(Z){return this.steps.push(Z),this.proxy}as(Z){if(this.steps.length===0)throw Error("No step to capture");let $=this.steps[this.steps.length-1];return $.result=Z,this.proxy}step(Z){return this.add(Z)}return(Z){let $=this.atoms.return;if(!$)throw Error("Atom 'return' not found");let X=Z.schema??Z;return this.add($.create({schema:X}))}toJSON(){return{op:"seq",steps:[...this.steps]}}varsImport(Z){return this.add(this.atoms.varsImport.create({keys:Z}))}varsExport(Z){return this.add(this.atoms.varsExport.create({keys:Z}))}if(Z,$,X,Q){let K=new e(this.atoms);X(K);let H;if(Q){let W=new e(this.atoms);Q(W),H=W.steps}let Y=U4(Z,$),z=this.atoms.if;return this.add(z.create({condition:Y,then:K.steps,else:H}))}while(Z,$,X){let Q=new e(this.atoms);X(Q);let K=U4(Z,$),H=this.atoms.while;return this.add(H.create({condition:K,body:Q.steps}))}scope(Z){let $=new e(this.atoms);Z($);let X=this.atoms.scope;return this.add(X.create({steps:$.steps}))}map(Z,$,X){let Q=new e(this.atoms);X(Q);let K=this.atoms.map;return this.add(K.create({items:Z,as:$,steps:Q.steps}))}filter(Z,$,X,Q={}){let K=U4(X,Q),H=this.atoms.filter;return this.add(H.create({items:Z,as:$,condition:K}))}find(Z,$,X,Q={}){let K=U4(X,Q),H=this.atoms.find;return this.add(H.create({items:Z,as:$,condition:K}))}reduce(Z,$,X,Q,K){let H=new e(this.atoms);K(H);let Y=this.atoms.reduce;return this.add(Y.create({items:Z,as:$,accumulator:X,initial:Q,steps:H.steps}))}memoize(Z,$){let X=new e(this.atoms);Z(X);let Q=this.atoms.memoize;return this.add(Q.create({key:$,steps:X.steps}))}cache(Z,$,X){let Q=new e(this.atoms);Z(Q);let K=this.atoms.cache;return this.add(K.create({key:$,steps:Q.steps,ttlMs:X}))}try(Z){let $=new e(this.atoms);Z.try($);let X;if(Z.catch){let K=new e(this.atoms);Z.catch(K),X=K.steps}let Q=this.atoms.try;return this.add(Q.create({try:$.steps,catch:X}))}}var m$={take(Z){return new e(L4)},custom(Z){return new e(Z)},args(Z){return{$kind:"arg",path:Z}},val(Z){return Z}},RK=m$;import{validate as l$}from"tosijs-schema";function A0(Z,$={}){let{ast:X,returnType:Q,originalSource:K,requiredParams:H}=M1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=T0(X,$.filename),{ast:z,signature:W,warnings:G}=H0(Y,K,Q,$,H);return{ast:z,signature:W,warnings:G}}var i$=10;class Q6{atoms;constructor(Z={}){this.atoms={...L4,...Z}}get builder(){return new e(this.atoms)}get Agent(){return new e(this.atoms)}get A99(){return this.Agent}resolve(Z){return this.atoms[Z]}getTools(Z="all"){let $=Object.values(this.atoms);if(Array.isArray(Z))$=$.filter((X)=>Z.includes(X.op));else if(Z==="flow"){let X=["seq","if","while","return","try","varSet","varGet","scope"];$=$.filter((Q)=>X.includes(Q.op))}return $.map((X)=>({type:"function",function:{name:X.op,description:X.docs,parameters:X.inputSchema?.schema??{}}}))}async run(Z,$={},X={}){let Q;if(typeof Z==="string")if(e4(Z))Q=Z6(Z);else try{Q=A0(Z).ast}catch(L){throw Error(`AJS transpilation failed: ${L.message}`)}else Q=Z;let K=X.fuel??1000,H=X.timeoutMs??K*i$,Y=X.capabilities??{},z=[];if(!Y.store){let L=new Map,D=!1;Y.store={get:async(I)=>{if(!D)D=!0,z.push("Using default in-memory store (not suitable for production)");return L.get(I)},set:async(I,M)=>{if(!D)D=!0,z.push("Using default in-memory store (not suitable for production)");L.set(I,M)}}}let W=new AbortController,G=setTimeout(()=>W.abort(),H);if(X.signal)X.signal.addEventListener("abort",()=>W.abort());let J={fuel:{current:K},args:$,state:{},consts:new Set,capabilities:Y,resolver:(L)=>this.resolve(L),output:void 0,signal:W.signal,costOverrides:X.costOverrides,context:X.context,warnings:z};if(X.trace)J.trace=[];if(Q.op!=="seq")throw Error("Root AST must be 'seq'. Ensure you're passing a transpiled agent (use ajs`...` or transpile()).");let U=Q.inputSchema;if(U&&!l$($,U)){let L=new H1("Input validation failed: args do not match expected schema","vm.run");return{result:L,error:L,fuelUsed:0,trace:J.trace,warnings:z.length>0?z:void 0}}try{await Promise.race([this.resolve("seq")?.exec(Q,J),new Promise((L,D)=>{if(W.signal.addEventListener("abort",()=>{D(Error(`Execution timeout after ${H}ms (fuel: ${K}). Consider increasing fuel or optimizing your agent.`))}),W.signal.aborted)D(Error(`Execution timeout after ${H}ms (fuel: ${K}). Consider increasing fuel or optimizing your agent.`))})])}catch(L){if(L.message?.includes("timeout")||L.message?.includes("aborted")||W.signal.aborted)J.error=new H1(`Execution timeout after ${H}ms (fuel: ${K}). Consider increasing fuel or optimizing your agent.`,"vm.run");else throw L}finally{clearTimeout(G)}if(J.error&&J.output===void 0)J.output=J.error;let _=[...z,...J.warnings??[]];return{result:J.output,error:J.error,fuelUsed:K-J.fuel.current,trace:J.trace,warnings:_.length>0?_:void 0}}}var p$=null,v7=()=>p$??=new Q6;function x1(Z){if(!Z||typeof Z!=="object")return;if(Array.isArray(Z)){for(let $ of Z)x1($);return}if(Z.op==="return"&&"value"in Z)Z.value={__result:Z.value};if(Z.steps)x1(Z.steps);if(Z.then)x1(Z.then);if(Z.else)x1(Z.else);if(Z.body)x1(Z.body)}async function n$(Z){let{code:$,context:X={},fuel:Q=1000,timeoutMs:K,capabilities:H={}}=Z,Y=v7(),W=/\breturn\b/.test($)?`function __eval() { ${$} }`:`function __eval() { return (${$}) }`;try{let{ast:G}=A0(W);x1(G);let J=await Y.run(G,X,{fuel:Q,timeoutMs:K,capabilities:H}),U=J.result;return{result:U&&typeof U==="object"&&"__result"in U?U.__result:U,fuelUsed:J.fuelUsed,error:J.error?{message:J.error.message||String(J.error)}:void 0}}catch(G){return{result:void 0,fuelUsed:Q,error:{message:G.message||String(G)}}}}async function c$(Z){let{body:$,params:X=[],fuel:Q=1000,timeoutMs:K,capabilities:H={}}=Z,Y=v7(),W=`function __safeFn(${X.join(", ")}) { ${$} }`,{ast:G}=A0(W);return x1(G),async(...J)=>{let U={};for(let _=0;_<X.length;_++)U[X[_]]=J[_];try{let _=await Y.run(G,U,{fuel:Q,timeoutMs:K,capabilities:H}),L=_.result;return{result:L&&typeof L==="object"&&"__result"in L?L.__result:L,fuelUsed:_.fuelUsed,error:_.error?{message:_.error.message||String(_.error)}:void 0}}catch(_){return{result:void 0,fuelUsed:Q,error:{message:_.message||String(_)}}}}}function D4(Z,$={}){let{ast:X,returnType:Q,originalSource:K,requiredParams:H}=M1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=T0(X,$.filename),{ast:z,signature:W,warnings:G}=H0(Y,K,Q,$,H);return{ast:z,signature:W,warnings:G}}function fK(Z,...$){if(typeof Z==="string")return D4(Z).ast;let X=Z.reduce((Q,K,H)=>Q+K+($[H]!==void 0?String($[H]):""),"");return D4(X).ast}function hK(Z,$,...X){if(typeof Z==="string")return L0(Z,$);let Q=$!==void 0?[$,...X]:X,K=Z.reduce((H,Y,z)=>H+Y+(Q[z]!==void 0?String(Q[z]):""),"");return L0(K)}async function xK(Z,$={},X){let Q=X??await z4(),K=await Q.getTranspile(Z);if(K)return{ast:K.ast,signature:K.signature,warnings:K.warnings};let H=D4(Z,$);return Q.setTranspile(Z,{ast:H.ast,signature:H.signature,warnings:H.warnings}),H}async function uK(Z,$={},X){let Q=X??await z4(),K=await Q.getTJS(Z);if(K)return{code:K.code,types:K.types,metadata:K.types,testRunner:K.testRunner,testCount:K.testCount,warnings:K.warnings};let H=L0(Z,$);return Q.setTJS(Z,{code:H.code,types:H.types,testRunner:H.testRunner,testCount:H.testCount,warnings:H.warnings}),H}function dK(Z,$,X){let{ast:Q,signature:K}=D4(Z),H=async(Y)=>{return(await $.run(Q,Y,X)).result};return H.signature=K,H.ast=Q,H}function mK(Z){return Object.entries(Z).map(([$,X])=>{let Q=X.signature,K={},H=[];for(let[Y,z]of Object.entries(Q.parameters)){if(K[Y]=q4(z.type),z.description)K[Y].description=z.description;if(z.required)H.push(Y)}return{type:"function",function:{name:Q.name||$,description:Q.description,parameters:{type:"object",properties:K,required:H}}}})}function q4(Z){switch(Z.kind){case"string":return{type:"string"};case"number":return{type:"number"};case"boolean":return{type:"boolean"};case"null":return{type:"null"};case"array":return{type:"array",items:Z.items?q4(Z.items):{}};case"object":if(!Z.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(Z.shape).map(([$,X])=>[$,q4(X)]))};case"union":if(!Z.members)return{};return{anyOf:Z.members.map(q4)};case"any":default:return{}}}import{s as b}from"tosijs-schema";var f7=k("storeVectorize",b.object({text:b.string,model:b.string.optional}),b.array(b.number),async({text:Z},$)=>{let X=$.capabilities.vector;if(!X)throw Error("Capability 'vector' missing. Ensure vector battery is loaded.");let Q=N(Z,$);return X.embed(Q)},{docs:"Generate embeddings using vector battery",cost:20}),y7=k("storeCreateCollection",b.object({collection:b.string,dimension:b.number.optional}),void 0,async({collection:Z,dimension:$},X)=>{let Q=X.capabilities.store;if(!Q?.createCollection)throw Error("Capability 'store' missing or does not support createCollection.");let K=N(Z,X),H=N($,X);return Q.createCollection(K,void 0,H)},{docs:"Create a vector store collection",cost:5}),h7=k("storeVectorAdd",b.object({collection:b.string,doc:b.any}),void 0,async({collection:Z,doc:$},X)=>{let Q=X.capabilities.store;if(!Q?.vectorAdd)throw Error("Capability 'store' missing or does not support vectorAdd.");let K=N(Z,X),H=N($,X);return Q.vectorAdd(K,H)},{docs:"Add a document to a vector store collection",cost:5}),x7=k("storeSearch",b.object({collection:b.string,queryVector:b.array(b.number),k:b.number.optional,filter:b.record(b.any).optional}),b.array(b.any),async({collection:Z,queryVector:$,k:X,filter:Q},K)=>{let H=K.capabilities.store;if(!H?.vectorSearch)throw Error("Capability 'store' missing or does not support vectorSearch.");let Y=N(Z,K),z=N($,K),W=N(X,K)??5,G=N(Q,K);return H.vectorSearch(Y,z,W,G)},{docs:"Search vector store",cost:(Z,$)=>5+(N(Z.k,$)??5)}),u7=k("llmPredictBattery",b.object({system:b.string.optional,user:b.string,tools:b.array(b.any).optional,responseFormat:b.any.optional}),b.object({role:b.string.optional,content:b.string.optional,tool_calls:b.array(b.any).optional}),async({system:Z,user:$,tools:X,responseFormat:Q},K)=>{let H=K.capabilities.llmBattery;if(!H?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=N(Z,K)??"You are a helpful agent.",z=N($,K),W=N(X,K),G=N(Q,K);return H.predict(Y,z,W,G)},{docs:"Generate completion using LLM battery",cost:100}),d7=k("llmVision",b.object({system:b.string.optional,prompt:b.string,images:b.array(b.string),responseFormat:b.any.optional}),b.object({role:b.string.optional,content:b.string.optional,tool_calls:b.array(b.any).optional}),async({system:Z,prompt:$,images:X,responseFormat:Q},K)=>{let H=K.capabilities.llmBattery;if(!H?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=N(Z,K)??"You analyze images accurately and concisely.",z=N($,K),W=N(X,K)??[],G=N(Q,K);return H.predict(Y,{text:z,images:W},void 0,G)},{docs:"Analyze images using a vision model",timeoutMs:120000,cost:150});var JH={storeCreateCollection:y7,storeSearch:x7,storeVectorAdd:h7,storeVectorize:f7,llmPredictBattery:u7,llmVision:d7};var m7=new Map,A4=new Map;function o$(Z,$){if(Z.length!==$.length)throw Error("Vectors must have the same length for cosine similarity.");let X=0,Q=0,K=0;for(let H=0;H<Z.length;H++)X+=Z[H]*$[H],Q+=Z[H]*Z[H],K+=$[H]*$[H];if(Q=Math.sqrt(Q),K=Math.sqrt(K),Q===0||K===0)return 0;return X/(Q*K)}function K6(){return{async get(Z){return m7.get(Z)},async set(Z,$){m7.set(Z,$)},async createCollection(Z,$,X){if(A4.has(Z))console.warn(`Collection '${Z}' already exists. Overwriting.`);A4.set(Z,[])},async vectorAdd(Z,$){let X=A4.get(Z);if(!X)throw Error(`Collection '${Z}' not found. Create it first.`);if(!$.embedding||!Array.isArray($.embedding))throw Error("Document must have an 'embedding' property that is an array of numbers.");X.push($)},async vectorSearch(Z,$,X=5){let Q=A4.get(Z);if(!Q)throw Error(`Collection '${Z}' not found. Create it first.`);let K=Q.map((H)=>({doc:H,score:o$($,H.embedding)}));return K.sort((H,Y)=>Y.score-H.score),K.slice(0,X).map((H)=>H.doc)}}}function s$(Z){if(typeof Z==="string")return{role:"user",content:Z};let $=[{type:"text",text:Z.text}];for(let X of Z.images||[])$.push({type:"image_url",image_url:{url:X}});return{role:"user",content:$}}var a$="http://localhost:1234/v1";function l7(Z,$=a$){return{async predict(X,Q,K,H){try{let Y=H?Z.getStructuredLLM():Z.getLLM(),z=[{role:"system",content:X},s$(Q)],W=await fetch(`${$}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Y.id,messages:z,temperature:0.7,tools:K,response_format:H})});if(!W.ok)throw Error(`LLM Error: ${W.status} ${W.statusText}`);return(await W.json()).choices[0]?.message??{content:""}}catch(Y){if(Y.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Y}},async embed(X){try{let Q=Z.getEmbedding(),K=await fetch(`${$}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Q.id,input:X})});if(!K.ok)throw Error(`Embedding Error: ${K.status}`);return(await K.json()).data[0]?.embedding??[]}catch(Q){if(Q.cause?.code==="ECONNREFUSED")throw Error("No LLM provider configured. Please start LM Studio or provide an API key.");throw Q}}}}var I0=typeof window<"u"&&typeof window.localStorage<"u";async function e$(Z){try{if(I0){let $=window.localStorage.getItem(".models.cache.json");if(!$)return null;let X=JSON.parse($);if(X.baseUrl!==Z)return null;if(Date.now()-X.timestamp>86400000)return null;return X.models}else{let $=await import("node:fs/promises"),Q=(await Promise.resolve().then(() => (z6(),Y6))).join(process.cwd(),".models.cache.json");try{let K=await $.readFile(Q,"utf-8"),H=JSON.parse(K);if(H.baseUrl!==Z)return null;if(Date.now()-H.timestamp>86400000)return null;return H.models}catch{return null}}}catch($){return console.warn("⚠️ Error reading model cache:",$),null}}async function ZX(Z,$){let X={timestamp:Date.now(),baseUrl:Z,models:$};try{if(I0)window.localStorage.setItem(".models.cache.json",JSON.stringify(X));else{let Q=await import("node:fs/promises"),H=(await Promise.resolve().then(() => (z6(),Y6))).join(process.cwd(),".models.cache.json");await Q.writeFile(H,JSON.stringify(X,null,2))}}catch(Q){console.error("❌ Error writing model cache:",Q)}}var R0=async(Z,$)=>{let X=new AbortController,Q=setTimeout(()=>X.abort(),60000);try{let K=await fetch(Z,{...$,signal:X.signal});return clearTimeout(Q),K}catch(K){throw clearTimeout(Q),K}};async function $X(Z,$){try{let X={type:"json_schema",json_schema:{name:"test",strict:!1,schema:{type:"object",properties:{status:{type:"string"}}}}},Q=await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"system",content:"You respond in JSON."},{role:"user",content:'Return JSON: {"status": "ok"}'}],response_format:X,max_tokens:20})});if(!Q.ok){if(Q.status===400)return XX(Z,$);return{ok:!1,msg:`HTTP ${Q.status}`}}let K=await Q.json();return JSON.parse(K.choices[0].message.content),{ok:!0,msg:"OK (Schema)"}}catch(X){return{ok:!1,msg:X.message||"Error"}}}async function XX(Z,$){try{if((await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:'JSON: {"a":1}'}],response_format:{type:"json_object"},max_tokens:10})})).ok)return{ok:!0,msg:"OK (Legacy Mode)"};return{ok:!1,msg:"Not Supported"}}catch{return{ok:!1,msg:"Legacy Fail"}}}async function QX(Z,$){try{return(await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:"hi"}],max_tokens:1})})).ok}catch{return!1}}async function KX(Z,$){try{let X=await R0(`${Z}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,input:"test"})});if(!X.ok)return null;return(await X.json()).data[0]?.embedding?.length??null}catch{return null}}var HX="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==";async function YX(Z,$){try{return(await R0(`${Z}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:$,messages:[{role:"user",content:[{type:"text",text:"What color is this?"},{type:"image_url",image_url:{url:HX}}]}],max_tokens:10})})).ok}catch{return!1}}async function Q8(Z){let $=await e$(Z),X=[];try{let Y=await fetch(`${Z}/models`);if(!Y.ok)throw Error("Could not connect");X=(await Y.json()).data.map((W)=>W.id).sort()}catch(Y){if($)return console.log("⚠️ LM Studio unavailable, using cached model audit."),$;return console.error("❌ Failed to connect to LM Studio."),[]}if($){let Y=$.map((z)=>z.id).sort();if(JSON.stringify(X)===JSON.stringify(Y))return console.log("✅ Using cached model audit."),$;console.log("\uD83D\uDD0D Model list changed. Re-running audit...")}console.log("\uD83D\uDD0D Scanning models (this may take a moment)...");let Q=[],K=X.map((Y)=>({id:Y})),H;if(!I0)H=await import("node:readline");for(let Y of K){if(!I0&&H)H.cursorTo(process.stdout,0),process.stdout.write(`\uD83D\uDC49 Testing: ${Y.id}...`),H.clearLine(process.stdout,1);let z="Unknown",W=!1,G=!1,J="",U=void 0,_=await QX(Z,Y.id),L=await KX(Z,Y.id);if(L)U=L;if(_){z="LLM";let D=await $X(Z,Y.id);if(W=D.ok,G=await YX(Z,Y.id),J=W?D.msg:`Fail: ${D.msg}`,G)J+=" +Vision"}else if(L)z="Embedding",J=`OK (Dim: ${L})`;else J="LLM Fail";Q.push({id:Y.id,type:z,structuredOutput:W,vision:G,dimension:U,status:J})}if(!I0&&H)H.cursorTo(process.stdout,0),H.clearLine(process.stdout,0);return console.log(`
415
+ `),console.table(Q),await ZX(Z,Q),console.log("\uD83D\uDCDD Audit results saved to cache."),Q}var zX="http://localhost:1234/v1";class W6{baseUrl;models=[];defaultLLM=null;defaultEmbedding=null;defaultStructuredLLM=null;constructor(Z=zX){this.baseUrl=Z}async audit(){this.models=await Q8(this.baseUrl),this.selectDefaults()}selectDefaults(){if(this.defaultEmbedding=this.models.find((Z)=>Z.type==="Embedding")||null,this.defaultLLM=this.models.find((Z)=>Z.type==="LLM")||null,this.defaultStructuredLLM=this.models.find((Z)=>Z.type==="LLM"&&Z.structuredOutput)||null,!this.defaultEmbedding)console.warn("⚠️ No embedding model found.");if(!this.defaultLLM)console.warn("⚠️ No LLM found.");if(!this.defaultStructuredLLM)console.warn("⚠️ No LLM with structured output support found.")}getModels(){return this.models}_setDefaultModel(Z,$,X,Q){let K=this.models.find((H)=>H.id===Z&&X(H));if(!K)throw Error(`Model '${Z}' not found or is not ${Q}.`);this[$]=K}setDefaultLLM(Z){this._setDefaultModel(Z,"defaultLLM",($)=>$.type==="LLM","an LLM")}setDefaultEmbedding(Z){this._setDefaultModel(Z,"defaultEmbedding",($)=>$.dimension!==void 0,"an embedding model")}setDefaultStructuredLLM(Z){this._setDefaultModel(Z,"defaultStructuredLLM",($)=>$.type==="LLM"&&$.structuredOutput,"a structured-output LLM")}getLLM(){if(!this.defaultLLM)throw Error("No LLM available.");return this.defaultLLM}getEmbedding(){if(!this.defaultEmbedding)throw Error("No embedding model available.");return this.defaultEmbedding}getStructuredLLM(){if(!this.defaultStructuredLLM)throw Error("No structured-output LLM available.");return this.defaultStructuredLLM}}var WX=typeof window<"u",GX=WX&&window.location.protocol==="https:",B0=null,G6=null,K8=!1;async function JX(){if(K8)return{localModels:B0,llm:G6};if(K8=!0,GX)return console.log("\uD83D\uDCE1 HTTPS detected - local LLM endpoints disabled. Use HTTP for local LLM support."),{localModels:null,llm:null};try{B0=new W6,await B0.audit(),G6=l7(B0)}catch(Z){console.warn("⚠️ Could not connect to local LLM:",Z)}return{localModels:B0,llm:G6}}async function _X(){let{localModels:Z,llm:$}=await JX();return{vector:$?{embed:$.embed}:void 0,store:K6(),llmBattery:$,models:Z}}async function MH(){return _X()}var wH={store:K6(),llmBattery:null,vector:void 0,models:null};function LX(Z){if(typeof Z!=="string")return!1;let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")}function UX(){return new Date().toISOString()}function s1(Z,$,X,Q=0,K=0,H=0,Y=0){return new Date(Date.UTC(Z,$-1,X,Q,K,H,Y)).toISOString()}function H8(Z){let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);return $.toISOString()}function qX(Z){try{return H8(Z)}catch{return null}}function M0(Z,$){let X=new Date(Z);return X.setTime(X.getTime()+$),X.toISOString()}function DX(Z,$){return M0(Z,$*1000)}function AX(Z,$){return M0(Z,$*60*1000)}function IX(Z,$){return M0(Z,$*60*60*1000)}function Y8(Z,$){return M0(Z,$*24*60*60*1000)}function RX(Z,$){return Y8(Z,$*7)}function BX(Z,$){let X=new Date(Z),Q=X.getUTCMonth()+$;if(X.setUTCMonth(Q),X.getUTCMonth()!==(Q%12+12)%12)X.setUTCDate(0);return X.toISOString()}function MX(Z,$){let X=new Date(Z),Q=X.getUTCDate();if(X.setUTCFullYear(X.getUTCFullYear()+$),X.getUTCDate()!==Q)X.setUTCDate(0);return X.toISOString()}function N1(Z,$){return new Date(Z).getTime()-new Date($).getTime()}function wX(Z,$){return Math.floor(N1(Z,$)/1000)}function FX(Z,$){return Math.floor(N1(Z,$)/60000)}function jX(Z,$){return Math.floor(N1(Z,$)/3600000)}function PX(Z,$){return Math.floor(N1(Z,$)/86400000)}function a1(Z){return new Date(Z).getUTCFullYear()}function R4(Z){return new Date(Z).getUTCMonth()+1}function J6(Z){return new Date(Z).getUTCDate()}function VX(Z){return new Date(Z).getUTCHours()}function CX(Z){return new Date(Z).getUTCMinutes()}function OX(Z){return new Date(Z).getUTCSeconds()}function NX(Z){return new Date(Z).getUTCMilliseconds()}function EX(Z){let $=new Date(Z).getUTCDay();return $===0?7:$}function B4(Z,$,X){let Q=new Date(Z),K={timeZone:$,...X};return new Intl.DateTimeFormat(void 0,K).format(Q)}function TX(Z,$){return B4(Z,$,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function SX(Z,$){return B4(Z,$,{year:"numeric",month:"short",day:"numeric"})}function kX(Z,$){return B4(Z,$,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function gX(Z){return Z.slice(0,10)}function z8(Z,$){return N1(Z,$)<0}function W8(Z,$){return N1(Z,$)>0}function bX(Z,$){return N1(Z,$)===0}function vX(Z,$){return z8(Z,$)?Z:$}function fX(Z,$){return W8(Z,$)?Z:$}function yX(Z){return s1(a1(Z),R4(Z),J6(Z))}function hX(Z){return s1(a1(Z),R4(Z),J6(Z),23,59,59,999)}function xX(Z){return s1(a1(Z),R4(Z),1)}function uX(Z){let $=new Date(Z);return $.setUTCMonth($.getUTCMonth()+1,0),$.setUTCHours(23,59,59,999),$.toISOString()}function dX(Z){return s1(a1(Z),1,1)}function mX(Z){return s1(a1(Z),12,31,23,59,59,999)}var r1={isValid:LX,now:UX,from:s1,parse:H8,tryParse:qX,addMilliseconds:M0,addSeconds:DX,addMinutes:AX,addHours:IX,addDays:Y8,addWeeks:RX,addMonths:BX,addYears:MX,diff:N1,diffSeconds:wX,diffMinutes:FX,diffHours:jX,diffDays:PX,year:a1,month:R4,day:J6,hour:VX,minute:CX,second:OX,millisecond:NX,dayOfWeek:EX,toLocal:B4,format:TX,formatDate:SX,formatTime:kX,toDate:gX,isBefore:z8,isAfter:W8,isEqual:bX,min:vX,max:fX,startOfDay:yX,endOfDay:hX,startOfMonth:xX,endOfMonth:uX,startOfYear:dX,endOfYear:mX};function _6(Z){if(typeof Z!=="string")return!1;if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=parseInt(Z.slice(0,4),10),X=parseInt(Z.slice(5,7),10),Q=parseInt(Z.slice(8,10),10);if(X<1||X>12)return!1;if(Q<1)return!1;let K=[31,28,31,30,31,30,31,31,30,31,30,31],H=X===2&&($%4===0&&$%100!==0||$%400===0)?29:K[X-1];return Q<=H}function lX(){return r1.toDate(r1.now())}function iX(Z){let $=new Date;return new Intl.DateTimeFormat("en-CA",{timeZone:Z,year:"numeric",month:"2-digit",day:"2-digit"}).format($)}function _1(Z,$,X){let Q=String(Z).padStart(4,"0"),K=String($).padStart(2,"0"),H=String(X).padStart(2,"0"),Y=`${Q}-${K}-${H}`;if(!_6(Y))throw Error(`Invalid date: ${Z}-${$}-${X}`);return Y}function G8(Z){if(/^\d{4}-\d{2}-\d{2}$/.test(Z)){if(!_6(Z))throw Error(`Invalid date: ${Z}`);return Z}let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);let X=$.getUTCFullYear(),Q=$.getUTCMonth()+1,K=$.getUTCDate();return _1(X,Q,K)}function pX(Z){try{return G8(Z)}catch{return null}}function M4(Z,$){let X=_8(Z);return r1.toDate(r1.addDays(X,$))}function nX(Z,$){return M4(Z,$*7)}function cX(Z,$){let X=X1(Z),Q=E1(Z),K=L6(Z),H=X*12+(Q-1)+$,Y=Math.floor(H/12),z=H%12+1,W=w0(Y,z),G=Math.min(K,W);return _1(Y,z,G)}function oX(Z,$){let X=X1(Z),Q=E1(Z),K=L6(Z),H=X+$,Y=w0(H,Q),z=Math.min(K,Y);return _1(H,Q,z)}function J8(Z,$){let Q=new Date(Z+"T00:00:00Z").getTime(),K=new Date($+"T00:00:00Z").getTime();return Math.round((Q-K)/86400000)}function sX(Z,$){let X=X1(Z),Q=E1(Z),K=X1($),H=E1($);return(X-K)*12+(Q-H)}function aX(Z,$){return X1(Z)-X1($)}function X1(Z){return parseInt(Z.slice(0,4),10)}function E1(Z){return parseInt(Z.slice(5,7),10)}function L6(Z){return parseInt(Z.slice(8,10),10)}function U6(Z){let $=new Date(Z+"T00:00:00Z").getUTCDay();return $===0?7:$}function rX(Z){let $=new Date(Z+"T00:00:00Z"),X=$.getUTCDay()||7;$.setUTCDate($.getUTCDate()+4-X);let Q=new Date(Date.UTC($.getUTCFullYear(),0,1));return Math.ceil((($.getTime()-Q.getTime())/86400000+1)/7)}function tX(Z){let $=_1(X1(Z),1,1);return J8(Z,$)+1}function q6(Z){return Math.ceil(E1(Z)/3)}function D6(Z){return Z%4===0&&Z%100!==0||Z%400===0}function w0(Z,$){let X=[31,28,31,30,31,30,31,31,30,31,30,31];if($===2&&D6(Z))return 29;return X[$-1]}function eX(Z){return D6(Z)?366:365}function _8(Z){return Z+"T00:00:00.000Z"}function ZQ(Z){return Math.floor(new Date(Z+"T00:00:00Z").getTime()/1000)}function $Q(Z){let $=new Date(Z*1000);return _1($.getUTCFullYear(),$.getUTCMonth()+1,$.getUTCDate())}function A6(Z,$){let X=new Date(Z+"T00:00:00Z"),Q={timeZone:"UTC",...$};return new Intl.DateTimeFormat(void 0,Q).format(X)}function XQ(Z){return A6(Z,{year:"numeric",month:"long",day:"numeric"})}function QQ(Z){return A6(Z,{year:"numeric",month:"short",day:"numeric"})}function KQ(Z,$){return Z<$}function HQ(Z,$){return Z>$}function YQ(Z,$){return Z===$}function zQ(Z,$){return Z<$?Z:$}function WQ(Z,$){return Z>$?Z:$}function GQ(Z,$,X){return Z>=$&&Z<=X}function JQ(Z){return _1(X1(Z),E1(Z),1)}function _Q(Z){let $=X1(Z),X=E1(Z);return _1($,X,w0($,X))}function LQ(Z){let X=(q6(Z)-1)*3+1;return _1(X1(Z),X,1)}function UQ(Z){let X=q6(Z)*3;return _1(X1(Z),X,w0(X1(Z),X))}function qQ(Z){return _1(X1(Z),1,1)}function DQ(Z){return _1(X1(Z),12,31)}function AQ(Z){let $=U6(Z);return M4(Z,-($-1))}function IQ(Z){let $=U6(Z);return M4(Z,7-$)}var RQ={isValid:_6,today:lX,todayIn:iX,from:_1,parse:G8,tryParse:pX,addDays:M4,addWeeks:nX,addMonths:cX,addYears:oX,diff:J8,diffMonths:sX,diffYears:aX,year:X1,month:E1,day:L6,dayOfWeek:U6,weekOfYear:rX,dayOfYear:tX,quarter:q6,isLeapYear:D6,daysInMonth:w0,daysInYear:eX,toTimestamp:_8,toUnix:ZQ,fromUnix:$Q,format:A6,formatLong:XQ,formatShort:QQ,isBefore:KQ,isAfter:HQ,isEqual:YQ,min:zQ,max:WQ,isBetween:GQ,startOfMonth:JQ,endOfMonth:_Q,startOfQuarter:LQ,endOfQuarter:UQ,startOfYear:qQ,endOfYear:DQ,startOfWeek:AQ,endOfWeek:IQ};export{C$ as xmlParse,c4 as wrap,l5 as whileLoop,B$ as vectorSearch,r5 as varsLet,a5 as varsImport,t5 as varsExport,c5 as varSet,s5 as varGet,n4 as validateArgs,T$ as uuid,C4 as typeToString,i1 as typeOf,m1 as typeDescriptorToTS,p5 as tryCatch,xK as transpileWithCache,L0 as transpileToJS,F$ as transpileCode,D4 as transpile,H0 as transformFunction,uK as tjsWithCache,hK as tjs,XZ as testUtils,W$ as template,g0 as stripTjsPreamble,k0 as stripModuleSyntax,I$ as storeSet,R$ as storeQuery,b$ as storeProcedure,A$ as storeGet,Y$ as split,V5 as setGlobalCache,J1 as seq,e5 as scope,b1 as runtime,j$ as runCode,i5 as ret,N as resolveValue,Z6 as resolveProcedureToken,v$ as releaseProcedure,X7 as registerWasmBlock,G$ as regexMatch,X$ as reduce,E$ as random,K$ as push,o1 as procedureStore,E0 as preprocess,J$ as pick,l6 as parseReturnType,P1 as parseParameter,M1 as parse,_$ as omit,L$ as merge,O$ as memoize,Z$ as map,V8 as lookupVariable,M$ as llmPredict,N5 as lint,H$ as len,U$ as keys,V$ as jsonStringify,P$ as jsonParse,z$ as join,y4 as isValidUrl,h4 as isValidTimestamp,x4 as isValidLegalDate,C1 as isRuntimeType,e4 as isProcedureToken,w1 as isError,k5 as isAgentError,$7 as instantiateWasm,Y5 as installRuntime,z1 as inferTypeFromValue,m5 as iff,F5 as hashSourceSync,Y4 as hashSource,$6 as hash,mK as getToolDefinitions,K6 as getStoreCapabilityDefault,MH as getStandardCapabilities,l as getLocation,l7 as getLLMCapability,z4 as getGlobalCache,_X as getBatteries,S5 as generateDocsMarkdown,w7 as generateDocs,iZ as generateDTS,M5 as fromTS,Q$ as find,$$ as filter,D$ as fetch,N4 as extractTests,X0 as extractTDoc,A1 as extractLiteralValue,s6 as expectFunction,n as evaluateExpr,n5 as errorAtom,R1 as error,z5 as emitRuntimeWrapper,k as defineAtom,O1 as createChildScope,W1 as createChildContext,dK as createAgent,L4 as coreAtoms,o5 as constSet,k$ as consoleWarn,S$ as consoleLog,g$ as consoleError,OZ as compileWasmBlocks,f0 as compileToWasm,f$ as clearExpiredProcedures,v1 as checkType,N$ as cache,j1 as builtins,JH as batteryAtoms,wH as batteries,o6 as assertFunction,fK as ajs,w$ as agentRun,a0 as Union,e as TypedBuilder,P8 as TypeError,c as Type,d as TranspileError,u4 as TimestampType,r1 as Timestamp,c0 as TUuid,n0 as TUrl,x0 as TString,e0 as TRecord,l0 as TPositiveInt,t0 as TPair,u0 as TNumber,i0 as TNonEmptyString,$1 as TJS_VERSION,m0 as TInteger,p0 as TEmail,d0 as TBoolean,r0 as TArray,Q1 as SyntaxError,w5 as Schema,c$ as SafeFunction,t4 as PROCEDURE_TOKEN_PREFIX,s0 as Optional,o0 as Nullable,s4 as MetadataCache,W6 as LocalModels,d4 as LegalDateType,RQ as LegalDate,l1 as Generic,n$ as Eval,Z4 as Enum,g5 as DEFAULT_PROCEDURE_TTL,b5 as DEFAULT_MAX_AST_SIZE,Q6 as AgentVM,H1 as AgentError,m$ as Agent,RK as A99};
416
416
 
417
- //# debugId=D72B544E295A409C64756E2164756E21
417
+ //# debugId=4C771B8DE726289464756E2164756E21