tjs-lang 0.6.14 → 0.6.16

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,50 +1,50 @@
1
- var F8=Object.defineProperty;var P8=(Z,$)=>()=>($||Z(($={exports:{}}).exports,$),$.exports);var V8=(Z)=>Z;function C8(Z,$){this[Z]=V8.bind(null,$)}var O8=(Z,$)=>{for(var X in $)F8(Z,X,{get:$[X],enumerable:!0,configurable:!0,set:C8.bind($,X)})};var N8=(Z,$)=>()=>(Z&&($=Z(Z=0)),$);var P4=((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 L7=P8((KH,Z5)=>{Z5.exports={name:"tjs-lang",version:"0.6.14",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-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.4","@codemirror/lang-markdown":"^6.5.0","@codemirror/state":"^6.5.3","@codemirror/theme-one-dark":"^6.1.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:"^10.12.0","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:{acorn:"^8.15.0","acorn-walk":"^8.3.4","tosijs-schema":"^1.2.0"}}});var z6={};O8(z6,{sep:()=>K8,resolve:()=>R4,relative:()=>t7,posix:()=>z8,parse:()=>H8,normalize:()=>Y6,join:()=>r7,isAbsolute:()=>a7,format:()=>Q8,extname:()=>X8,dirname:()=>Z8,delimiter:()=>Y8,default:()=>XX,basename:()=>$8,_makeLong:()=>e7});function B1(Z){if(typeof Z!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(Z))}function s7(Z,$){var X="",Q=0,H=-1,K=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(H===z-1||K===1);else if(H!==z-1&&K===2){if(X.length<2||Q!==2||X.charCodeAt(X.length-1)!==46||X.charCodeAt(X.length-2)!==46){if(X.length>2){var G=X.lastIndexOf("/");if(G!==X.length-1){if(G===-1)X="",Q=0;else X=X.slice(0,G),Q=X.length-1-X.lastIndexOf("/");H=z,K=0;continue}}else if(X.length===2||X.length===1){X="",Q=0,H=z,K=0;continue}}if($){if(X.length>0)X+="/..";else X="..";Q=2}}else{if(X.length>0)X+="/"+Z.slice(H+1,z);else X=Z.slice(H+1,z);Q=z-H-1}H=z,K=0}else if(Y===46&&K!==-1)++K;else K=-1}return X}function $X(Z,$){var X=$.dir||$.root,Q=$.base||($.name||"")+($.ext||"");if(!X)return Q;if(X===$.root)return X+Q;return X+Z+Q}function R4(){var Z="",$=!1,X;for(var Q=arguments.length-1;Q>=-1&&!$;Q--){var H;if(Q>=0)H=arguments[Q];else{if(X===void 0)X=process.cwd();H=X}if(B1(H),H.length===0)continue;Z=H+"/"+Z,$=H.charCodeAt(0)===47}if(Z=s7(Z,!$),$)if(Z.length>0)return"/"+Z;else return"/";else if(Z.length>0)return Z;else return"."}function Y6(Z){if(B1(Z),Z.length===0)return".";var $=Z.charCodeAt(0)===47,X=Z.charCodeAt(Z.length-1)===47;if(Z=s7(Z,!$),Z.length===0&&!$)Z=".";if(Z.length>0&&X)Z+="/";if($)return"/"+Z;return Z}function a7(Z){return B1(Z),Z.length>0&&Z.charCodeAt(0)===47}function r7(){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 Y6(Z)}function t7(Z,$){if(B1(Z),B1($),Z===$)return"";if(Z=R4(Z),$=R4($),Z===$)return"";var X=1;for(;X<Z.length;++X)if(Z.charCodeAt(X)!==47)break;var Q=Z.length,H=Q-X,K=1;for(;K<$.length;++K)if($.charCodeAt(K)!==47)break;var Y=$.length,z=Y-K,G=H<z?H:z,W=-1,J=0;for(;J<=G;++J){if(J===G){if(z>G){if($.charCodeAt(K+J)===47)return $.slice(K+J+1);else if(J===0)return $.slice(K+J)}else if(H>G){if(Z.charCodeAt(X+J)===47)W=J;else if(J===0)W=0}break}var L=Z.charCodeAt(X+J),_=$.charCodeAt(K+J);if(L!==_)break;else if(L===47)W=J}var U="";for(J=X+W+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(K+W);else{if(K+=W,$.charCodeAt(K)===47)++K;return $.slice(K)}}function e7(Z){return Z}function Z8(Z){if(B1(Z),Z.length===0)return".";var $=Z.charCodeAt(0),X=$===47,Q=-1,H=!0;for(var K=Z.length-1;K>=1;--K)if($=Z.charCodeAt(K),$===47){if(!H){Q=K;break}}else H=!1;if(Q===-1)return X?"/":".";if(X&&Q===1)return"//";return Z.slice(0,Q)}function $8(Z,$){if($!==void 0&&typeof $!=="string")throw TypeError('"ext" argument must be a string');B1(Z);var X=0,Q=-1,H=!0,K;if($!==void 0&&$.length>0&&$.length<=Z.length){if($.length===Z.length&&$===Z)return"";var Y=$.length-1,z=-1;for(K=Z.length-1;K>=0;--K){var G=Z.charCodeAt(K);if(G===47){if(!H){X=K+1;break}}else{if(z===-1)H=!1,z=K+1;if(Y>=0)if(G===$.charCodeAt(Y)){if(--Y===-1)Q=K}else Y=-1,Q=z}}if(X===Q)Q=z;else if(Q===-1)Q=Z.length;return Z.slice(X,Q)}else{for(K=Z.length-1;K>=0;--K)if(Z.charCodeAt(K)===47){if(!H){X=K+1;break}}else if(Q===-1)H=!1,Q=K+1;if(Q===-1)return"";return Z.slice(X,Q)}}function X8(Z){B1(Z);var $=-1,X=0,Q=-1,H=!0,K=0;for(var Y=Z.length-1;Y>=0;--Y){var z=Z.charCodeAt(Y);if(z===47){if(!H){X=Y+1;break}continue}if(Q===-1)H=!1,Q=Y+1;if(z===46){if($===-1)$=Y;else if(K!==1)K=1}else if($!==-1)K=-1}if($===-1||Q===-1||K===0||K===1&&$===Q-1&&$===X+1)return"";return Z.slice($,Q)}function Q8(Z){if(Z===null||typeof Z!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof Z);return $X("/",Z)}function H8(Z){B1(Z);var $={root:"",dir:"",base:"",ext:"",name:""};if(Z.length===0)return $;var X=Z.charCodeAt(0),Q=X===47,H;if(Q)$.root="/",H=1;else H=0;var K=-1,Y=0,z=-1,G=!0,W=Z.length-1,J=0;for(;W>=H;--W){if(X=Z.charCodeAt(W),X===47){if(!G){Y=W+1;break}continue}if(z===-1)G=!1,z=W+1;if(X===46){if(K===-1)K=W;else if(J!==1)J=1}else if(K!==-1)J=-1}if(K===-1||z===-1||J===0||J===1&&K===z-1&&K===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,K),$.base=Z.slice(1,z);else $.name=Z.slice(Y,K),$.base=Z.slice(Y,z);$.ext=Z.slice(K,z)}if(Y>0)$.dir=Z.slice(0,Y-1);else if(Q)$.dir="/";return $}var K8="/",Y8=":",z8,XX;var G6=N8(()=>{z8=((Z)=>(Z.posix=Z,Z))({resolve:R4,normalize:Y6,isAbsolute:a7,join:r7,relative:t7,_makeLong:e7,dirname:Z8,basename:$8,extname:X8,format:Q8,parse:H8,sep:K8,delimiter:Y8,win32:null,posix:null}),XX=z8});import*as p6 from"acorn";class l extends Error{line;column;source;filename;constructor(Z,$,X,Q){let H=`${Q||"<source>"}:${$.line}:${$.column}`;super(`${Z} at ${H}`);this.name="TranspileError",this.line=$.line,this.column=$.column,this.source=X,this.filename=Q}}class Q1 extends l{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 P8=Object.defineProperty;var V8=(Z,$)=>()=>($||Z(($={exports:{}}).exports,$),$.exports);var C8=(Z)=>Z;function O8(Z,$){this[Z]=C8.bind(null,$)}var N8=(Z,$)=>{for(var X in $)P8(Z,X,{get:$[X],enumerable:!0,configurable:!0,set:O8.bind($,X)})};var E8=(Z,$)=>()=>(Z&&($=Z(Z=0)),$);var P4=((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 L7=V8((GH,X5)=>{X5.exports={name:"tjs-lang",version:"0.6.16",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-css":"^6.3.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-javascript":"^6.2.4","@codemirror/lang-markdown":"^6.5.0","@codemirror/state":"^6.5.3","@codemirror/theme-one-dark":"^6.1.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:"^10.12.0","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:{acorn:"^8.15.0","acorn-walk":"^8.3.4","tosijs-schema":"^1.2.0"}}});var z6={};N8(z6,{sep:()=>Y8,resolve:()=>B4,relative:()=>e7,posix:()=>G8,parse:()=>K8,normalize:()=>Y6,join:()=>t7,isAbsolute:()=>r7,format:()=>H8,extname:()=>Q8,dirname:()=>$8,delimiter:()=>z8,default:()=>KX,basename:()=>X8,_makeLong:()=>Z8});function R1(Z){if(typeof Z!=="string")throw TypeError("Path must be a string. Received "+JSON.stringify(Z))}function a7(Z,$){var X="",Q=0,H=-1,K=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(H===z-1||K===1);else if(H!==z-1&&K===2){if(X.length<2||Q!==2||X.charCodeAt(X.length-1)!==46||X.charCodeAt(X.length-2)!==46){if(X.length>2){var G=X.lastIndexOf("/");if(G!==X.length-1){if(G===-1)X="",Q=0;else X=X.slice(0,G),Q=X.length-1-X.lastIndexOf("/");H=z,K=0;continue}}else if(X.length===2||X.length===1){X="",Q=0,H=z,K=0;continue}}if($){if(X.length>0)X+="/..";else X="..";Q=2}}else{if(X.length>0)X+="/"+Z.slice(H+1,z);else X=Z.slice(H+1,z);Q=z-H-1}H=z,K=0}else if(Y===46&&K!==-1)++K;else K=-1}return X}function HX(Z,$){var X=$.dir||$.root,Q=$.base||($.name||"")+($.ext||"");if(!X)return Q;if(X===$.root)return X+Q;return X+Z+Q}function B4(){var Z="",$=!1,X;for(var Q=arguments.length-1;Q>=-1&&!$;Q--){var H;if(Q>=0)H=arguments[Q];else{if(X===void 0)X=process.cwd();H=X}if(R1(H),H.length===0)continue;Z=H+"/"+Z,$=H.charCodeAt(0)===47}if(Z=a7(Z,!$),$)if(Z.length>0)return"/"+Z;else return"/";else if(Z.length>0)return Z;else return"."}function Y6(Z){if(R1(Z),Z.length===0)return".";var $=Z.charCodeAt(0)===47,X=Z.charCodeAt(Z.length-1)===47;if(Z=a7(Z,!$),Z.length===0&&!$)Z=".";if(Z.length>0&&X)Z+="/";if($)return"/"+Z;return Z}function r7(Z){return R1(Z),Z.length>0&&Z.charCodeAt(0)===47}function t7(){if(arguments.length===0)return".";var Z;for(var $=0;$<arguments.length;++$){var X=arguments[$];if(R1(X),X.length>0)if(Z===void 0)Z=X;else Z+="/"+X}if(Z===void 0)return".";return Y6(Z)}function e7(Z,$){if(R1(Z),R1($),Z===$)return"";if(Z=B4(Z),$=B4($),Z===$)return"";var X=1;for(;X<Z.length;++X)if(Z.charCodeAt(X)!==47)break;var Q=Z.length,H=Q-X,K=1;for(;K<$.length;++K)if($.charCodeAt(K)!==47)break;var Y=$.length,z=Y-K,G=H<z?H:z,W=-1,J=0;for(;J<=G;++J){if(J===G){if(z>G){if($.charCodeAt(K+J)===47)return $.slice(K+J+1);else if(J===0)return $.slice(K+J)}else if(H>G){if(Z.charCodeAt(X+J)===47)W=J;else if(J===0)W=0}break}var L=Z.charCodeAt(X+J),_=$.charCodeAt(K+J);if(L!==_)break;else if(L===47)W=J}var U="";for(J=X+W+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(K+W);else{if(K+=W,$.charCodeAt(K)===47)++K;return $.slice(K)}}function Z8(Z){return Z}function $8(Z){if(R1(Z),Z.length===0)return".";var $=Z.charCodeAt(0),X=$===47,Q=-1,H=!0;for(var K=Z.length-1;K>=1;--K)if($=Z.charCodeAt(K),$===47){if(!H){Q=K;break}}else H=!1;if(Q===-1)return X?"/":".";if(X&&Q===1)return"//";return Z.slice(0,Q)}function X8(Z,$){if($!==void 0&&typeof $!=="string")throw TypeError('"ext" argument must be a string');R1(Z);var X=0,Q=-1,H=!0,K;if($!==void 0&&$.length>0&&$.length<=Z.length){if($.length===Z.length&&$===Z)return"";var Y=$.length-1,z=-1;for(K=Z.length-1;K>=0;--K){var G=Z.charCodeAt(K);if(G===47){if(!H){X=K+1;break}}else{if(z===-1)H=!1,z=K+1;if(Y>=0)if(G===$.charCodeAt(Y)){if(--Y===-1)Q=K}else Y=-1,Q=z}}if(X===Q)Q=z;else if(Q===-1)Q=Z.length;return Z.slice(X,Q)}else{for(K=Z.length-1;K>=0;--K)if(Z.charCodeAt(K)===47){if(!H){X=K+1;break}}else if(Q===-1)H=!1,Q=K+1;if(Q===-1)return"";return Z.slice(X,Q)}}function Q8(Z){R1(Z);var $=-1,X=0,Q=-1,H=!0,K=0;for(var Y=Z.length-1;Y>=0;--Y){var z=Z.charCodeAt(Y);if(z===47){if(!H){X=Y+1;break}continue}if(Q===-1)H=!1,Q=Y+1;if(z===46){if($===-1)$=Y;else if(K!==1)K=1}else if($!==-1)K=-1}if($===-1||Q===-1||K===0||K===1&&$===Q-1&&$===X+1)return"";return Z.slice($,Q)}function H8(Z){if(Z===null||typeof Z!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof Z);return HX("/",Z)}function K8(Z){R1(Z);var $={root:"",dir:"",base:"",ext:"",name:""};if(Z.length===0)return $;var X=Z.charCodeAt(0),Q=X===47,H;if(Q)$.root="/",H=1;else H=0;var K=-1,Y=0,z=-1,G=!0,W=Z.length-1,J=0;for(;W>=H;--W){if(X=Z.charCodeAt(W),X===47){if(!G){Y=W+1;break}continue}if(z===-1)G=!1,z=W+1;if(X===46){if(K===-1)K=W;else if(J!==1)J=1}else if(K!==-1)J=-1}if(K===-1||z===-1||J===0||J===1&&K===z-1&&K===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,K),$.base=Z.slice(1,z);else $.name=Z.slice(Y,K),$.base=Z.slice(Y,z);$.ext=Z.slice(K,z)}if(Y>0)$.dir=Z.slice(0,Y-1);else if(Q)$.dir="/";return $}var Y8="/",z8=":",G8,KX;var G6=E8(()=>{G8=((Z)=>(Z.posix=Z,Z))({resolve:B4,normalize:Y6,isAbsolute:r7,join:t7,relative:e7,_makeLong:Z8,dirname:$8,basename:X8,extname:Q8,format:H8,parse:K8,sep:Y8,delimiter:z8,win32:null,posix:null}),KX=G8});import*as p6 from"acorn";class l extends Error{line;column;source;filename;constructor(Z,$,X,Q){let H=`${Q||"<source>"}:${$.line}:${$.column}`;super(`${Z} at ${H}`);this.name="TranspileError",this.line=$.line,this.column=$.column,this.source=X,this.filename=Q}}class Q1 extends l{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),H=Math.min($.length-1,X+Z),K=[],Y=String(H+1).length;for(let z=Q;z<=H;z++){let G=String(z+1).padStart(Y),W=z===X?">":" ";if(K.push(`${W} ${G} | ${$[z]}`),z===X){let J=" ".repeat(Y+4+this.column);K.push(`${J}^ ${this.message.split(" at ")[0]}`)}}return K.join(`
3
- `)}}class E8 extends l{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 G1(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 T8(Z,$){if($.locals.has(Z))return $.locals.get(Z);if($.parameters.has(Z))return $.parameters.get(Z)?.type;if($.parent)return T8(Z,$.parent);return}function m(Z){if(Z.loc)return{line:Z.loc.start.line,column:Z.loc.start.column};return{line:1,column:0}}function O0(Z,$){let X="",Q=0,H,K,Y="normal",z=[],G=[{type:"top-level",braceDepth:0}],W=0,J=()=>G[G.length-1]?.type||"top-level",L=()=>{let _=G[G.length-1];return _?.type==="class-body"&&W===_.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 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(_==="{"){W++,X+=_,Q++;continue}if(_==="}"){W--;let R=G[G.length-1];if(R&&W===R.braceDepth)G.pop();X+=_,Q++;continue}let q=Z.slice(Q).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(q){let R=q[0].slice(0,-1);X+=R,Q+=R.length,G.push({type:"class-body",braceDepth:W});continue}let I=Z.slice(Q).match(/^function\s+(\w+)\s*\(/);if(I){let R=I[1],C=I[0].length,w=Z[Q+C],F=null,M=Q+C;if(w==="?"||w==="!")if(F=w,M++,F==="!")$.unsafeFunctions.add(R);else $.safeFunctions.add(R);X+=`function ${R}(`,Q=M;let P=P0(Z,Q,"(",")");if(!P){X+=Z[Q],Q++;continue}let{content:V,endPos:O}=P;Q=O;let N=V4(V,$,!0);X+=N+")";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 f=F0(Z,S);if(f){let{type:c,endPos:v}=f;if(H===void 0){if(H=c,g==="-?")K="safe";else if(g==="-!")K="unsafe"}Q=v}}continue}let B=Z.slice(Q).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(B&&L()){let R=B[1],C=B[0].length,w=Q+C;X+=R+"(",Q=w;let F=P0(Z,Q,"(",")");if(!F){X+=Z[Q],Q++;continue}let{content:M,endPos:P}=F;Q=P;let V=V4(M,$,!0);X+=V+")";let O=Q;while(O<Z.length&&/\s/.test(Z[O]))O++;let N=Z.slice(O,O+2);if(N==="->"||N==="-!"||N==="-?"){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=P0(Z,Q+1,"(",")");if(!R){X+=Z[Q],Q++;continue}let{content:C,endPos:w}=R,F=w;while(F<Z.length&&/\s/.test(Z[F]))F++;let M,P=Z.slice(F,F+2);if(P==="->"||P==="-?"||P==="-!"){F+=2;while(F<Z.length&&/\s/.test(Z[F]))F++;let V=F0(Z,F);if(V){M=V.type,F=V.endPos;while(F<Z.length&&/\s/.test(Z[F]))F++}}if(Z.slice(F,F+2)==="=>"){let V=null,O=C,N=C.trimStart();if(N.startsWith("?")&&(N.length===1||/\s/.test(N[1])))V="?",O=N.slice(1);else if(N.startsWith("!")&&(N.length===1||/\s/.test(N[1])))V="!",O=N.slice(1);let S=V4(O,$,!1);X+=`(${V==="?"?"/* safe */ ":V==="!"?"/* unsafe */ ":""}${S})`,Q=w;while(Q<F&&/\s/.test(Z[Q]))X+=Z[Q],Q++;if(M)Q=F}else{let V=O0(C,$);X+=`(${V.source})`,Q=w}continue}X+=Z[Q],Q++}return{source:X,returnType:H,returnSafety:K}}function P0(Z,$,X,Q){let H=1,K=$,Y=!1,z="";while(K<Z.length&&H>0){let G=Z[K];if(!Y&&(G==="'"||G==='"'||G==="`"))Y=!0,z=G;else if(Y&&G===z&&Z[K-1]!=="\\")Y=!1;else if(!Y){if(G===X)H++;else if(G===Q)H--}K++}if(H!==0)return null;return{content:Z.slice($,K-1),endPos:K}}function j6(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return null;let Q=X,H=Z[X];if(H==="{"||H==="["){let Y=H==="{"?"}":"]",z=P0(Z,X+1,H,Y);if(!z)return null;return{value:Z.slice(Q,z.endPos),endPos:z.endPos}}if(H==="'"||H==='"'||H==="`"){X++;while(X<Z.length){if(Z[X]===H&&Z[X-1]!=="\\")return X++,{value:Z.slice(Q,X),endPos:X};X++}return null}if(/[-+\d]/.test(H)){while(X<Z.length&&/[\d.eE+-]/.test(Z[X]))X++;return{value:Z.slice(Q,X),endPos:X}}let K=Z.slice(X).match(/^(true|false|null|undefined)\b/);if(K)return{value:K[1],endPos:X+K[1].length};return null}function e1(Z){return Z.replace(/(?<!\|)\|(?!\|)/g," || ")}function F0(Z,$){let X=$,Q=0,H=!1,K="",Y=!1,z=(G)=>({type:e1(Z.slice($,G).trim()),endPos:G});while(X<Z.length){let G=Z[X];if(!H&&(G==="'"||G==='"'||G==="`")){H=!0,K=G,Y=!0,X++;continue}if(H){if(G===K&&Z[X-1]!=="\\"){if(H=!1,X++,Q===0){let W=X;while(W<Z.length&&/\s/.test(Z[W]))W++;if(Z[W]==="{"){if(!Z.slice(W+1).match(/^\s*(\w+)\s*:/))return z(X)}if(Z[W]!=="|"&&Z[W]!=="&")return z(X)}continue}X++;continue}if(G==="{"||G==="["||G==="("){Q++,Y=!0,X++;continue}if(G==="}"||G==="]"||G===")"){if(Q--,Q===0){X++;let W=X;while(W<Z.length&&/\s/.test(Z[W]))W++;if(Z[W]==="|"||Z[W]==="&")continue;return z(X)}X++;continue}if(Q===0&&G==="{"){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&&(G==="|"||G==="&")){if(X++,X<Z.length&&Z[X]==="|")X++;while(X<Z.length&&/\s/.test(Z[X]))X++;continue}if(Q===0&&(/\d/.test(G)||G==="-"&&/\d/.test(Z[X+1]))){let W=X;if(Z[W]==="-")W++;while(W<Z.length&&/\d/.test(Z[W]))W++;if(W<Z.length&&Z[W]==="."&&/\d/.test(Z[W+1])){W++;while(W<Z.length&&/\d/.test(Z[W]))W++}if(W<Z.length&&(Z[W]==="e"||Z[W]==="E")){if(W++,W<Z.length&&(Z[W]==="+"||Z[W]==="-"))W++;while(W<Z.length&&/\d/.test(Z[W]))W++}Y=!0,X=W;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{")return{type:e1(Z.slice($,W).trim()),endPos:W};if(Z[X]!=="|"&&Z[X]!=="&")return{type:e1(Z.slice($,W).trim()),endPos:W};continue}if(Q===0&&/[a-zA-Z_]/.test(G)){let W=X;while(W<Z.length&&/\w/.test(Z[W]))W++;Y=!0,X=W;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=W;while(L>$&&/\s/.test(Z[L-1]))L--;return{type:e1(Z.slice($,L).trim()),endPos:W}}}if(Z[X]!=="|"&&Z[X]!=="&")return{type:e1(Z.slice($,W).trim()),endPos:W};continue}X++}if(Y)return z(X);return null}function N0(Z){let $=[],X="",Q=0,H=!1,K=!1,Y=0;while(Y<Z.length){let z=Z[Y],G=Z[Y+1];if(!K&&z==="/"&&G==="/"){H=!0,X+="//",Y+=2;continue}if(!H&&z==="/"&&G==="*"){K=!0,X+="/*",Y+=2;continue}if(H&&z===`
5
- `){H=!1,X+=z,Y++;continue}if(K&&z==="*"&&G==="/"){K=!1,X+="*/",Y+=2;continue}if(H||K){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 V4(Z,$,X){let Q=O0(Z,{originalSource:Z,requiredParams:$.requiredParams,unsafeFunctions:$.unsafeFunctions,safeFunctions:$.safeFunctions}).source,H=N0(Q),K=!1,Y=new Set,z=(W)=>{if(X&&/^\w+$/.test(W)){if(Y.has(W))throw Error(`Duplicate parameter name '${W}'`);Y.add(W)}};return H.map((W)=>{let J=W.trim();if(!J)return W;if(X&&J.startsWith("{")&&J.endsWith("}")){let U=J.slice(1,-1);return`{ ${w6(U,$)} }`}if(X&&J.startsWith("[")&&J.endsWith("]")){let U=J.slice(1,-1);return`[ ${w6(U,$)} ]`}if(J.startsWith("...")){let U=M6(J);if(U!==-1)return J.slice(0,U).trim();return W}let L=J.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(L){let[,U,q]=L;return z(U),K=!0,`${U} = ${q}`}if(!S8(J)){let U=J.match(/^(\w+)\s*=/);if(U)z(U[1]);return K=!0,W}let _=M6(J);if(_!==-1){let U=J.slice(0,_).trim(),q=J.slice(_+1).trim();if(z(U),K&&X&&/^\w+$/.test(U));if(X&&/^\w+$/.test(U))$.requiredParams.add(U);return`${U} = ${q}`}return W}).join(",")}function w6(Z,$){return N0(Z).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,W,J]=Y;$.requiredParams.add(W);let L=V0(J);return`${W} = ${L}`}let z=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(z){let[,W,J]=z;$.requiredParams.add(W);let L=C0(J);return`${W} = ${L}`}let G=K.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(G){let[,W,J]=G;return $.requiredParams.add(W),`${W} = ${J}`}return H}).join(", ")}function V0(Z){let $=Z.slice(1,-1).trim();return`{ ${N0($).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,L,_]=Y;return`${L}: ${V0(_)}`}let z=K.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(z){let[,L,_]=z;return`${L}: ${V0(_)}`}let G=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(G){let[,L,_]=G;return`${L}: ${C0(_)}`}let W=K.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(W){let[,L,_]=W;return`${L}: ${C0(_)}`}let J=K.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(J){let[,L,_]=J;return`${L}: ${_}`}return H}).join(", ")} }`}function C0(Z){let $=Z.slice(1,-1).trim();return`[ ${N0($).map((H)=>{let K=H.trim();if(!K)return H;if(K.startsWith("{")&&K.endsWith("}"))return V0(K);if(K.startsWith("[")&&K.endsWith("]"))return C0(K);return H}).join(", ")} ]`}function S8(Z){let $=0,X=!1,Q=!1,H=!1,K="";for(let Y=0;Y<Z.length;Y++){let z=Z[Y];if(!H&&(z==="'"||z==='"'||z==="`")){H=!0,K=z;continue}if(H){if(z===K&&Z[Y-1]!=="\\")H=!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 M6(Z){let $=0,X=!1,Q="";for(let H=0;H<Z.length;H++){let K=Z[H];if(!X&&(K==="'"||K==='"'||K==="`")){X=!0,Q=K;continue}if(X){if(K===Q&&Z[H-1]!=="\\")X=!1;continue}if(K==="("||K==="{"||K==="[")$++;else if(K===")"||K==="}"||K==="]")$--;else if($===0&&K===":")return H}return-1}function C6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\btry\s*\{/);if(Q){let K=X+Q[0].length-1+1,Y=1,z=K;while(z<Z.length&&Y>0){let W=Z[z];if(W==="{")Y++;else if(W==="}")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 W=Z.slice(K,z-1);$+=`try {${W}} 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 O6(Z){let $=[],X="",Q=0,H=0;while(Q<Z.length){let K=Z.slice(Q).match(/^\bwasm\s*\{/);if(K){let Y=Q,z=Q+K[0].length,G=1,W=z;while(W<Z.length&&G>0){let P=Z[W];if(P==="{")G++;else if(P==="}")G--;W++}if(G!==0){X+=Z[Q],Q++;continue}let J=Z.slice(z,W-1),L,_=W,U=Z.slice(W).match(/^\s*fallback\s*\{/);if(U){let P=W+U[0].length;G=1;let V=P;while(V<Z.length&&G>0){let O=Z[V];if(O==="{")G++;else if(O==="}")G--;V++}if(G===0)L=Z.slice(P,V-1),_=V}let I=g8(J).map((P)=>{let V=b8(Z,Y,P);return V?`${P}: ${V}`:P}),B={id:`__tjs_wasm_${H}`,body:J,fallback:L,captures:I,start:Y,end:_};$.push(B);let R=L??J,C=I.map((P)=>P.split(":")[0].trim()),w=C.length>0?C.join(", "):"",F=C.length>0?`globalThis.${B.id}(${w})`:`globalThis.${B.id}()`,M=`(globalThis.${B.id} ? ${F} : (() => {${R}})())`;X+=M,Q=_,H++}else X+=Z[Q],Q++}return{source:X,blocks:$}}function k8(Z){return Z.startsWith("f32x4_")||Z.startsWith("v128_")}function g8(Z){let $=Z.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),X=new Set,Q=/\.([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,H;while((H=Q.exec($))!==null)X.add(H[1]);let K=/(?<!\.)(\b[a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,Y=new Set;while((H=K.exec($))!==null)Y.add(H[1]);for(let _ of X){if(!Y.has(_))continue;let U=new RegExp(`(?<!\\.)\\b${_}\\b`,"g"),q=new RegExp(`\\.${_}\\b`,"g"),I=$.match(U)?.length||0,B=$.match(q)?.length||0;if(I<=B)Y.delete(_)}let z=new Set,G=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=G.exec($))!==null)z.add(H[1]);let W=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=W.exec($))!==null)z.add(H[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(_)&&!k8(_))L.push(_);return L.sort()}function b8(Z,$,X){let Q=Z.slice(0,$),H=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,K=Q.match(H);if(!K){let Y=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,z=Q.match(Y);if(!z)return;return F6(z[1],X)}return F6(K[1],X)}function F6(Z,$){let X=Z.split(",").map((Q)=>Q.trim());for(let Q of X){let H=Q.match(new RegExp(`^${$}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(H)return H[1];let K=Q.match(new RegExp(`^${$}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(K)return K[1]}return}function N6(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 E6(Z){let $=/^[\s]*[([/+\-`]/,X=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,Q=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,H=Z.split(`
3
+ `)}}class T8 extends l{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 G1(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 S8(Z,$){if($.locals.has(Z))return $.locals.get(Z);if($.parameters.has(Z))return $.parameters.get(Z)?.type;if($.parent)return S8(Z,$.parent);return}function m(Z){if(Z.loc)return{line:Z.loc.start.line,column:Z.loc.start.column};return{line:1,column:0}}function N0(Z,$){let X="",Q=0,H,K,Y="normal",z=[],G=[{type:"top-level",braceDepth:0}],W=0,J=()=>G[G.length-1]?.type||"top-level",L=()=>{let _=G[G.length-1];return _?.type==="class-body"&&W===_.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(_==="{"){W++,X+=_,Q++;continue}if(_==="}"){W--;let B=G[G.length-1];if(B&&W===B.braceDepth)G.pop();X+=_,Q++;continue}let q=Z.slice(Q).match(/^class\s+\w+(?:\s+extends\s+\w+)?\s*\{/);if(q){let B=q[0].slice(0,-1);X+=B,Q+=B.length,G.push({type:"class-body",braceDepth:W});continue}let I=Z.slice(Q).match(/^function\s+(\w+)\s*\(/);if(I){let B=I[1],P=I[0].length,R=Z[Q+P],F=null,w=Q+P;if(R==="?"||R==="!")if(F=R,w++,F==="!")$.unsafeFunctions.add(B);else $.safeFunctions.add(B);X+=`function ${B}(`,Q=w;let V=V0(Z,Q,"(",")");if(!V){X+=Z[Q],Q++;continue}let{content:C,endPos:O}=V;Q=O;let N=V4(C,$,!0);X+=N+")";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 f=P0(Z,S);if(f){let{type:c,endPos:v}=f;if(H===void 0){if(H=c,g==="-?")K="safe";else if(g==="-!")K="unsafe"}Q=v}}continue}let M=Z.slice(Q).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(M&&L()){let B=M[1],P=M[0].length,R=Q+P;X+=B+"(",Q=R;let F=V0(Z,Q,"(",")");if(!F){X+=Z[Q],Q++;continue}let{content:w,endPos:V}=F;Q=V;let C=V4(w,$,!0);X+=C+")";let O=Q;while(O<Z.length&&/\s/.test(Z[O]))O++;let N=Z.slice(O,O+2);if(N==="->"||N==="-!"||N==="-?"){O+=2;while(O<Z.length&&/\s/.test(Z[O]))O++;let S=P0(Z,O);if(S)Q=S.endPos}else if(Z[O]===":"){O++;while(O<Z.length&&/\s/.test(Z[O]))O++;let S=P0(Z,O);if(S)Q=S.endPos}continue}if(Z[Q]==="("){let B=V0(Z,Q+1,"(",")");if(!B){X+=Z[Q],Q++;continue}let{content:P,endPos:R}=B,F=R;while(F<Z.length&&/\s/.test(Z[F]))F++;let w,V=Z.slice(F,F+2);if(V==="->"||V==="-?"||V==="-!"){F+=2;while(F<Z.length&&/\s/.test(Z[F]))F++;let C=P0(Z,F);if(C){w=C.type,F=C.endPos;while(F<Z.length&&/\s/.test(Z[F]))F++}}if(Z.slice(F,F+2)==="=>"){let C=null,O=P,N=P.trimStart();if(N.startsWith("?")&&(N.length===1||/\s/.test(N[1])))C="?",O=N.slice(1);else if(N.startsWith("!")&&(N.length===1||/\s/.test(N[1])))C="!",O=N.slice(1);let S=V4(O,$,!1);X+=`(${C==="?"?"/* safe */ ":C==="!"?"/* unsafe */ ":""}${S})`,Q=R;while(Q<F&&/\s/.test(Z[Q]))X+=Z[Q],Q++;if(w)Q=F}else{let C=N0(P,$);X+=`(${C.source})`,Q=R}continue}X+=Z[Q],Q++}return{source:X,returnType:H,returnSafety:K}}function V0(Z,$,X,Q){let H=1,K=$,Y=!1,z="";while(K<Z.length&&H>0){let G=Z[K];if(!Y&&(G==="'"||G==='"'||G==="`"))Y=!0,z=G;else if(Y&&G===z&&Z[K-1]!=="\\")Y=!1;else if(!Y){if(G===X)H++;else if(G===Q)H--}K++}if(H!==0)return null;return{content:Z.slice($,K-1),endPos:K}}function j6(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return null;let Q=X,H=Z[X];if(H==="{"||H==="["){let Y=H==="{"?"}":"]",z=V0(Z,X+1,H,Y);if(!z)return null;return{value:Z.slice(Q,z.endPos),endPos:z.endPos}}if(H==="'"||H==='"'||H==="`"){X++;while(X<Z.length){if(Z[X]===H&&Z[X-1]!=="\\")return X++,{value:Z.slice(Q,X),endPos:X};X++}return null}if(/[-+\d]/.test(H)){while(X<Z.length&&/[\d.eE+-]/.test(Z[X]))X++;return{value:Z.slice(Q,X),endPos:X}}let K=Z.slice(X).match(/^(true|false|null|undefined)\b/);if(K)return{value:K[1],endPos:X+K[1].length};return null}function e1(Z){return Z.replace(/(?<!\|)\|(?!\|)/g," || ")}function P0(Z,$){let X=$,Q=0,H=!1,K="",Y=!1,z=(G)=>({type:e1(Z.slice($,G).trim()),endPos:G});while(X<Z.length){let G=Z[X];if(!H&&(G==="'"||G==='"'||G==="`")){H=!0,K=G,Y=!0,X++;continue}if(H){if(G===K&&Z[X-1]!=="\\"){if(H=!1,X++,Q===0){let W=X;while(W<Z.length&&/\s/.test(Z[W]))W++;if(Z[W]==="{"){if(!Z.slice(W+1).match(/^\s*(\w+)\s*:/))return z(X)}if(Z[W]!=="|"&&Z[W]!=="&")return z(X)}continue}X++;continue}if(G==="{"||G==="["||G==="("){Q++,Y=!0,X++;continue}if(G==="}"||G==="]"||G===")"){if(Q--,Q===0){X++;let W=X;while(W<Z.length&&/\s/.test(Z[W]))W++;if(Z[W]==="|"||Z[W]==="&")continue;return z(X)}X++;continue}if(Q===0&&G==="{"){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&&(G==="|"||G==="&")){if(X++,X<Z.length&&Z[X]==="|")X++;while(X<Z.length&&/\s/.test(Z[X]))X++;continue}if(Q===0&&(/\d/.test(G)||G==="-"&&/\d/.test(Z[X+1]))){let W=X;if(Z[W]==="-")W++;while(W<Z.length&&/\d/.test(Z[W]))W++;if(W<Z.length&&Z[W]==="."&&/\d/.test(Z[W+1])){W++;while(W<Z.length&&/\d/.test(Z[W]))W++}if(W<Z.length&&(Z[W]==="e"||Z[W]==="E")){if(W++,W<Z.length&&(Z[W]==="+"||Z[W]==="-"))W++;while(W<Z.length&&/\d/.test(Z[W]))W++}Y=!0,X=W;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X<Z.length&&Z[X]==="{")return{type:e1(Z.slice($,W).trim()),endPos:W};if(Z[X]!=="|"&&Z[X]!=="&")return{type:e1(Z.slice($,W).trim()),endPos:W};continue}if(Q===0&&/[a-zA-Z_]/.test(G)){let W=X;while(W<Z.length&&/\w/.test(Z[W]))W++;Y=!0,X=W;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=W;while(L>$&&/\s/.test(Z[L-1]))L--;return{type:e1(Z.slice($,L).trim()),endPos:W}}}if(Z[X]!=="|"&&Z[X]!=="&")return{type:e1(Z.slice($,W).trim()),endPos:W};continue}X++}if(Y)return z(X);return null}function E0(Z){let $=[],X="",Q=0,H=!1,K=!1,Y=0;while(Y<Z.length){let z=Z[Y],G=Z[Y+1];if(!K&&z==="/"&&G==="/"){H=!0,X+="//",Y+=2;continue}if(!H&&z==="/"&&G==="*"){K=!0,X+="/*",Y+=2;continue}if(H&&z===`
5
+ `){H=!1,X+=z,Y++;continue}if(K&&z==="*"&&G==="/"){K=!1,X+="*/",Y+=2;continue}if(H||K){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 V4(Z,$,X){let Q=N0(Z,{originalSource:Z,requiredParams:$.requiredParams,unsafeFunctions:$.unsafeFunctions,safeFunctions:$.safeFunctions}).source,H=E0(Q),K=!1,Y=new Set,z=(W)=>{if(X&&/^\w+$/.test(W)){if(Y.has(W))throw Error(`Duplicate parameter name '${W}'`);Y.add(W)}};return H.map((W)=>{let J=W.trim();if(!J)return W;if(X&&J.startsWith("{")&&J.endsWith("}")){let U=J.slice(1,-1);return`{ ${M6(U,$)} }`}if(X&&J.startsWith("[")&&J.endsWith("]")){let U=J.slice(1,-1);return`[ ${M6(U,$)} ]`}if(J.startsWith("...")){let U=w6(J);if(U!==-1)return J.slice(0,U).trim();return W}let L=J.match(/^(\w+)\s*\?\s*:\s*(.+)$/);if(L){let[,U,q]=L;return z(U),K=!0,`${U} = ${q}`}if(!k8(J)){let U=J.match(/^(\w+)\s*=/);if(U)z(U[1]);return K=!0,W}let _=w6(J);if(_!==-1){let U=J.slice(0,_).trim(),q=J.slice(_+1).trim();if(z(U),K&&X&&/^\w+$/.test(U));if(X&&/^\w+$/.test(U))$.requiredParams.add(U);return`${U} = ${q}`}return W}).join(",")}function M6(Z,$){return E0(Z).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,W,J]=Y;$.requiredParams.add(W);let L=C0(J);return`${W} = ${L}`}let z=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(z){let[,W,J]=z;$.requiredParams.add(W);let L=O0(J);return`${W} = ${L}`}let G=K.match(/^(\w+)\s*:\s*([\s\S]+)$/);if(G){let[,W,J]=G;return $.requiredParams.add(W),`${W} = ${J}`}return H}).join(", ")}function C0(Z){let $=Z.slice(1,-1).trim();return`{ ${E0($).map((H)=>{let K=H.trim();if(!K)return H;let Y=K.match(/^(\w+)\s*:\s*(\{[\s\S]*\})$/);if(Y){let[,L,_]=Y;return`${L}: ${C0(_)}`}let z=K.match(/^(\w+)\s*=\s*(\{[\s\S]*\})$/);if(z){let[,L,_]=z;return`${L}: ${C0(_)}`}let G=K.match(/^(\w+)\s*:\s*(\[[\s\S]*\])$/);if(G){let[,L,_]=G;return`${L}: ${O0(_)}`}let W=K.match(/^(\w+)\s*=\s*(\[[\s\S]*\])$/);if(W){let[,L,_]=W;return`${L}: ${O0(_)}`}let J=K.match(/^(\w+)\s*=\s*([\s\S]+)$/);if(J){let[,L,_]=J;return`${L}: ${_}`}return H}).join(", ")} }`}function O0(Z){let $=Z.slice(1,-1).trim();return`[ ${E0($).map((H)=>{let K=H.trim();if(!K)return H;if(K.startsWith("{")&&K.endsWith("}"))return C0(K);if(K.startsWith("[")&&K.endsWith("]"))return O0(K);return H}).join(", ")} ]`}function k8(Z){let $=0,X=!1,Q=!1,H=!1,K="";for(let Y=0;Y<Z.length;Y++){let z=Z[Y];if(!H&&(z==="'"||z==='"'||z==="`")){H=!0,K=z;continue}if(H){if(z===K&&Z[Y-1]!=="\\")H=!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 w6(Z){let $=0,X=!1,Q="";for(let H=0;H<Z.length;H++){let K=Z[H];if(!X&&(K==="'"||K==='"'||K==="`")){X=!0,Q=K;continue}if(X){if(K===Q&&Z[H-1]!=="\\")X=!1;continue}if(K==="("||K==="{"||K==="[")$++;else if(K===")"||K==="}"||K==="]")$--;else if($===0&&K===":")return H}return-1}function C6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\btry\s*\{/);if(Q){let K=X+Q[0].length-1+1,Y=1,z=K;while(z<Z.length&&Y>0){let W=Z[z];if(W==="{")Y++;else if(W==="}")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 W=Z.slice(K,z-1);$+=`try {${W}} 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 O6(Z){let $=[],X="",Q=0,H=0;while(Q<Z.length){let K=Z.slice(Q).match(/^\bwasm\s*\{/);if(K){let Y=Q,z=Q+K[0].length,G=1,W=z;while(W<Z.length&&G>0){let V=Z[W];if(V==="{")G++;else if(V==="}")G--;W++}if(G!==0){X+=Z[Q],Q++;continue}let J=Z.slice(z,W-1),L,_=W,U=Z.slice(W).match(/^\s*fallback\s*\{/);if(U){let V=W+U[0].length;G=1;let C=V;while(C<Z.length&&G>0){let O=Z[C];if(O==="{")G++;else if(O==="}")G--;C++}if(G===0)L=Z.slice(V,C-1),_=C}let I=b8(J).map((V)=>{let C=v8(Z,Y,V);return C?`${V}: ${C}`:V}),M={id:`__tjs_wasm_${H}`,body:J,fallback:L,captures:I,start:Y,end:_};$.push(M);let B=L??J,P=I.map((V)=>V.split(":")[0].trim()),R=P.length>0?P.join(", "):"",F=P.length>0?`globalThis.${M.id}(${R})`:`globalThis.${M.id}()`,w=`(globalThis.${M.id} ? ${F} : (() => {${B}})())`;X+=w,Q=_,H++}else X+=Z[Q],Q++}return{source:X,blocks:$}}function g8(Z){return Z.startsWith("f32x4_")||Z.startsWith("v128_")}function b8(Z){let $=Z.replace(/\/\/[^\n]*/g,"").replace(/\/\*[\s\S]*?\*\//g,""),X=new Set,Q=/\.([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,H;while((H=Q.exec($))!==null)X.add(H[1]);let K=/(?<!\.)(\b[a-zA-Z_$][a-zA-Z0-9_$]*)\b/g,Y=new Set;while((H=K.exec($))!==null)Y.add(H[1]);for(let _ of X){if(!Y.has(_))continue;let U=new RegExp(`(?<!\\.)\\b${_}\\b`,"g"),q=new RegExp(`\\.${_}\\b`,"g"),I=$.match(U)?.length||0,M=$.match(q)?.length||0;if(I<=M)Y.delete(_)}let z=new Set,G=/\b(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=G.exec($))!==null)z.add(H[1]);let W=/\bfor\s*\(\s*(?:let|const|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;while((H=W.exec($))!==null)z.add(H[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(_)&&!g8(_))L.push(_);return L.sort()}function v8(Z,$,X){let Q=Z.slice(0,$),H=/function\s+\w+\s*\(([^)]*)\)\s*(?:->.*?)?\s*\{[^}]*$/,K=Q.match(H);if(!K){let Y=/(?:const|let|var)?\s*\w+\s*=\s*(?:async\s*)?\(([^)]*)\)\s*(?:=>|->)?\s*\{[^}]*$/,z=Q.match(Y);if(!z)return;return F6(z[1],X)}return F6(K[1],X)}function F6(Z,$){let X=Z.split(",").map((Q)=>Q.trim());for(let Q of X){let H=Q.match(new RegExp(`^${$}\\s*:\\s*([A-Za-z][A-Za-z0-9]*)`));if(H)return H[1];let K=Q.match(new RegExp(`^${$}\\s*=\\s*(Float32Array|Float64Array|Int32Array|Uint8Array|Int8Array|Int16Array|Uint16Array|Uint32Array)`));if(K)return K[1]}return}function N6(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 E6(Z){let $=/^[\s]*[([/+\-`]/,X=/[{([,;:+\-*/%=&|?<>!~^]\s*$|^\s*$/,Q=/\b(return|throw|yield|await|case|default|extends|new|typeof|void|delete|in|of|instanceof)\s*$/,H=Z.split(`
6
6
  `),K=[];for(let Y=0;Y<H.length;Y++){let z=H[Y],G=Y>0?H[Y-1]:"";if(Y>0&&$.test(z)){let W=G.replace(/\/\/.*$/,"").replace(/\/\*.*\*\/\s*$/,"");if(!X.test(W)&&!Q.test(W)){let J=z.match(/^(\s*)/),L=J?J[1]:"",_=z.slice(L.length);K.push(L+";"+_);continue}}K.push(z)}return K.join(`
7
7
  `)}function T6(Z){let $=[],X=0,Q="normal",H=[];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,H.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(H.length>0){if(Y==="{")H[H.length-1]++;else if(Y==="}"){if(H[H.length-1]--,H[H.length-1]===0){H.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 G=X-1;while(G>=0&&/\s/.test(Z[G]))G--;let W=G>=0?Z[G]:"";if(!W||/[=(!,;:{[&|?+\-*%<>~^]/.test(W)||G>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(Z.slice(Math.max(0,G-10),G+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 K=Z;for(let Y=$.length-1;Y>=0;Y--){let{pos:z,op:G}=$[Y],W=G==="=="?"Is":"IsNot",J=v8(K,z),L=f8(K,z+2),_=K.slice(J,z).trim(),U=K.slice(z+2,L).trim();if(_&&U){let q=K.slice(0,J),I=K.slice(L),R=/[a-zA-Z0-9_$]$/.test(q)?" ":"";K=`${q}${R}${W}(${_}, ${U})${I}`}}return K}function v8(Z,$){let X=$-1;while(X>=0&&/\s/.test(Z[X]))X--;if(X<0)return 0;let Q=0,H=!1,K="";while(X>=0){let Y=Z[X],z=X>0?Z[X-1]:"";if(H){if(Y===K&&z!=="\\")H=!1;X--;continue}if((Y==='"'||Y==="'"||Y==="`")&&z!=="\\"){H=!0,K=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 G=X+1,W=X;while(W>0&&/[a-z]/i.test(Z[W-1]))W--;let J=Z.slice(W,G),L=W>0?Z[W-1]:"";if(!/[a-zA-Z0-9_$]/.test(L)){if(["return","throw","case","typeof","void","delete","await","yield","new"].includes(J))return G}}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 f8(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return Z.length;let Q=0,H=!1,K="";while(X<Z.length){let Y=Z[X],z=X+1<Z.length?Z[X+1]:"";if(H){if(Y===K&&Z[X-1]!=="\\")H=!1;X++;continue}if((Y==='"'||Y==="'"||Y==="`")&&Z[X-1]!=="\\"){H=!0,K=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 S6(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 H=Q[1],K=X+Q[0].length,Y=H,z=!1,G=Z.slice(K).match(/^(['"`])([^]*?)\1\s*/);if(G){let _=K+G[0].length,U=Z[_],q=U===void 0||_>=Z.length||U!=="="&&U!=="{";if(U==="="||U==="{")Y=G[2],z=!0,K=_;else if(q){let I=G[0].trim(),B=G[0].slice(I.length);$+=`const ${H} = Type('${H}', ${I})${B}`,X=_;continue}}let W,J=K,L=Z.slice(K).match(/^=\s*/);if(L){K+=L[0].length;let _=Z.slice(K).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){W=_[0],K+=_[0].length,J=K;let U=Z.slice(K).match(/^\s*/);if(U)K+=U[0].length}}if(Z[K]==="{"){let _=K+1,U=1,q=_;while(q<Z.length&&U>0){let M=Z[q];if(M==="{")U++;else if(M==="}")U--;q++}if(U!==0){$+=Z[X],X++;continue}let I=Z.slice(_,q-1).trim(),B=q,R=I.match(/description\s*:\s*(['"`])([^]*?)\1/);if(R&&!z)Y=R[2];let C,w=I.match(/example\s*:\s*/);if(w){let M=w.index+w[0].length,P=j6(I,M);if(P)C=P.value.trim()}let F=I.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(F&&C){let M=F[1].trim(),P=F[2].trim(),V=W?`, ${W}`:"";$+=`const ${H} = Type('${Y}', (${M}) => { if (!globalThis.__tjs?.validate(${M}, globalThis.__tjs?.infer(${C}))) return false; ${P} }, ${C}${V})`}else if(F){let M=F[1].trim(),P=F[2].trim(),V=W?`, undefined, ${W}`:"";$+=`const ${H} = Type('${Y}', (${M}) => { ${P} }${V})`}else if(C){let M=W?`, ${W}`:"";$+=`const ${H} = Type('${Y}', undefined, ${C}${M})`}else if(W)$+=`const ${H} = Type('${Y}', ${W})`;else $+=`const ${H} = Type('${Y}')`;X=B;continue}else if(W){$+=`const ${H} = Type('${Y}', ${W})`,X=J;continue}else if(!G){let _=Z.slice(K).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let U=_[0];$+=`const ${H} = Type('${H}', ${U})`,X=K+_[0].length;continue}}}$+=Z[X],X++}return $}function k6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bFunctionPredicate\s+([A-Z_][a-zA-Z0-9_]*)\s*/);if(Q){let H=Q[1],K=X+Q[0].length;if(Z[K]==="{"){let Y=1,z=K+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}if(Y===0){let G=Z.slice(K+1,z-1).trim(),W=G.match(/params\s*:\s*(\{[^}]*\})/),J=G.match(/returns\s*:\s*(.+?)(?:\n|$)/),L=G.match(/returnContract\s*:\s*['"](\w+)['"]/),_=G.match(/description\s*:\s*(['"])([^]*?)\1/),U=[];if(W)U.push(`params: ${W[1]}`);if(J)U.push(`returns: ${J[1].trim()}`);if(L)U.push(`returnContract: '${L[1]}'`);let q=_?_[2]:H;$+=`const ${H} = FunctionPredicate('${q}', { ${U.join(", ")} })`,X=z;continue}}if(Z[K]==="("){let Y=1,z=K+1;while(z<Z.length&&Y>0){if(Z[z]==="(")Y++;else if(Z[z]===")")Y--;z++}if(Y===0){let G=Z.slice(K+1,z-1).trim(),W=G.indexOf(",");if(W!==-1){let J=G.slice(0,W).trim(),L=G.slice(W+1).trim();$+=`const ${H} = FunctionPredicate(${L}, ${J})`}else $+=`const ${H} = FunctionPredicate('${H}', ${G})`;X=z;continue}}}$+=Z[X],X++}return $}function g6(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 H=Q[1],K=Q[2],z=X+Q[0].length-1+1,G=1,W=z;while(W<Z.length&&G>0){let C=Z[W];if(C==="{")G++;else if(C==="}")G--;W++}if(G!==0){$+=Z[X],X++;continue}let J=Z.slice(z,W-1).trim(),L=W,_=K.split(",").map((C)=>{let w=C.trim().split("=").map((F)=>F.trim());if(w.length===2){let F=w[1]==="any"||w[1]==="undefined"?"null":w[1];return`['${w[0]}', ${F}]`}return`'${w[0]}'`}),U=J,q=U.search(/\bdeclaration\s*\{/);if(q!==-1){let C=U.indexOf("{",q),w=1,F=C+1;while(F<U.length&&w>0){if(U[F]==="{")w++;else if(U[F]==="}")w--;F++}U=U.slice(0,q)+U.slice(F)}let I=U.match(/description\s*:\s*(['"`])([^]*?)\1/),B=U.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),R=I?I[2]:H;if(B){let C=B[1].trim().split(",").map((V)=>V.trim()),w=B[2].trim(),F=C[0]||"x",M=C.slice(1),P=M.map((V)=>`check${V}`);M.forEach((V,O)=>{w=w.replace(new RegExp(`\\b${V}\\s*\\(`,"g"),`${P[O]}(`)}),$+=`const ${H} = Generic([${_.join(", ")}], (${F}, ${P.join(", ")}) => { ${w} }, '${R}')`}else $+=`const ${H} = Generic([${_.join(", ")}], () => true, '${R}')`;X=L;continue}$+=Z[X],X++}return $}function b6(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 H=Q[1],K=Q[3],Y=X+Q[0].length;if(Z[Y]==="{"){let z=Y+1,G=1,W=z;while(W<Z.length&&G>0){let U=Z[W];if(U==="{")G++;else if(U==="}")G--;W++}if(G!==0){$+=Z[X],X++;continue}let J=Z.slice(z,W-1).trim(),L=W,_=P6(J);$+=`const ${H} = Union('${K}', [${_.join(", ")}])`,X=L;continue}else{let z=Z.indexOf(`
9
- `,Y);if(z===-1)z=Z.length;let G=Z.slice(Y,z).trim();if(G){let W=P6(G);$+=`const ${H} = Union('${K}', [${W.join(", ")}])`,X=z;continue}}}$+=Z[X],X++}return $}function P6(Z){let $=[],X=Z.split("|").map((Q)=>Q.trim());for(let Q of X){if(!Q)continue;$.push(Q)}return $}function v6(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 H=Q[1],K=Q[3],z=X+Q[0].length-1+1,G=1,W=z;while(W<Z.length&&G>0){let q=Z[W];if(q==="{")G++;else if(q==="}")G--;W++}if(G!==0){$+=Z[X],X++;continue}let J=Z.slice(z,W-1).trim(),L=W,U=y8(J).map(([q,I])=>`${q}: ${I}`).join(", ");$+=`const ${H} = Enum('${K}', { ${U} })`,X=L;continue}$+=Z[X],X++}return $}function y8(Z){let $=[],X=0,Q=Z.split(/[\n,]/).map((H)=>H.trim()).filter((H)=>H&&!H.startsWith("//"));for(let H of Q){let K=H.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(K){let Y=K[1],z=K[2]?.trim();if(z!==void 0){$.push([Y,z]);let G=Number(z);if(!isNaN(G))X=G+1}else $.push([Y,String(X)]),X++}}return $}function f6(Z){let $=new Map,X="",Q=0;while(Q<Z.length){let H=Z.slice(Q),K=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/);if(!K){if(Q===0||Z[Q-1]===`
10
- `||Z[Q-1]===";"||Z[Q-1]==="}"){let w=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/)}X+=Z[Q],Q++;continue}let Y=K[1],z=K[2],G=Q+K[0].length-1,W=$0(Z,G),J=Z.slice(G+1,W-1).trim(),L=[],_=0,U=Z.slice(G+1,W-1);while(_<U.length){let w=U.slice(_).match(/^(\s*)(async\s+)?(\w+)\s*\(/);if(!w){_++;continue}let F=w[1],M=!!w[2],P=w[3],V=_+w[0].length-1,O=1,N=V+1;while(N<U.length&&O>0){if(U[N]==="(")O++;if(U[N]===")")O--;N++}let S=U.slice(V+1,N-1),g=N;while(g<U.length&&/\s/.test(U[g]))g++;if(U[g]==="="&&U[g+1]===">"){let s=Z0(Z,G+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.`,s)}if(U[g]!=="{"){_++;continue}let f=$0(U,g),c=U.slice(_,f).trim(),v=S.split(",").map((s)=>s.trim()).filter((s)=>s.length>0).map((s)=>{let D1=s.match(/^(\w+)\s*:\s*(.+)$/);if(D1)return`${D1[1]} = ${D1[2]}`;return s}).join(", "),h=M?"async ":"",Z1=U.slice(g+1,f-1);L.push({name:P,isAsync:M,fullText:`${P}: ${h}function(${v}) {${Z1}}`}),_=f}let q=!$.has(z);if(q)$.set(z,new Set);let I=$.get(z);for(let C of L)I.add(C.name);let B=L.map((C)=>` ${C.fullText}`).join(`,
11
- `),R;if(q)R=`${Y}const __ext_${z} = {
12
- ${B}
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(H.length>0){if(Y==="{")H[H.length-1]++;else if(Y==="}"){if(H[H.length-1]--,H[H.length-1]===0){H.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 G=X-1;while(G>=0&&/\s/.test(Z[G]))G--;let W=G>=0?Z[G]:"";if(!W||/[=(!,;:{[&|?+\-*%<>~^]/.test(W)||G>=5&&/\b(return|case|throw|in|of|typeof|instanceof|new|delete|void)$/.test(Z.slice(Math.max(0,G-10),G+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 K=Z;for(let Y=$.length-1;Y>=0;Y--){let{pos:z,op:G}=$[Y],W=G==="=="?"Is":"IsNot",J=f8(K,z),L=y8(K,z+2),_=K.slice(J,z).trim(),U=K.slice(z+2,L).trim();if(_&&U){let q=K.slice(0,J),I=K.slice(L),B=/[a-zA-Z0-9_$]$/.test(q)?" ":"";K=`${q}${B}${W}(${_}, ${U})${I}`}}return K}function f8(Z,$){let X=$-1;while(X>=0&&/\s/.test(Z[X]))X--;if(X<0)return 0;let Q=0,H=!1,K="";while(X>=0){let Y=Z[X],z=X>0?Z[X-1]:"";if(H){if(Y===K&&z!=="\\")H=!1;X--;continue}if((Y==='"'||Y==="'"||Y==="`")&&z!=="\\"){H=!0,K=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 G=X+1,W=X;while(W>0&&/[a-z]/i.test(Z[W-1]))W--;let J=Z.slice(W,G),L=W>0?Z[W-1]:"";if(!/[a-zA-Z0-9_$]/.test(L)){if(["return","throw","case","typeof","void","delete","await","yield","new"].includes(J))return G}}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 y8(Z,$){let X=$;while(X<Z.length&&/\s/.test(Z[X]))X++;if(X>=Z.length)return Z.length;let Q=0,H=!1,K="";while(X<Z.length){let Y=Z[X],z=X+1<Z.length?Z[X+1]:"";if(H){if(Y===K&&Z[X-1]!=="\\")H=!1;X++;continue}if((Y==='"'||Y==="'"||Y==="`")&&Z[X-1]!=="\\"){H=!0,K=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 S6(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 H=Q[1],K=X+Q[0].length,Y=H,z=!1,G=Z.slice(K).match(/^(['"`])([^]*?)\1\s*/);if(G){let _=K+G[0].length,U=Z[_],q=U===void 0||_>=Z.length||U!=="="&&U!=="{";if(U==="="||U==="{")Y=G[2],z=!0,K=_;else if(q){let I=G[0].trim(),M=G[0].slice(I.length);$+=`const ${H} = Type('${H}', ${I})${M}`,X=_;continue}}let W,J=K,L=Z.slice(K).match(/^=\s*/);if(L){K+=L[0].length;let _=Z.slice(K).match(/^(\+?\d+(?:\.\d+)?|['"`][^'"`]*['"`]|\{[^}]*\}|\[[^\]]*\]|true|false|null)/);if(_){W=_[0],K+=_[0].length,J=K;let U=Z.slice(K).match(/^\s*/);if(U)K+=U[0].length}}if(Z[K]==="{"){let _=K+1,U=1,q=_;while(q<Z.length&&U>0){let w=Z[q];if(w==="{")U++;else if(w==="}")U--;q++}if(U!==0){$+=Z[X],X++;continue}let I=Z.slice(_,q-1).trim(),M=q,B=I.match(/description\s*:\s*(['"`])([^]*?)\1/);if(B&&!z)Y=B[2];let P,R=I.match(/example\s*:\s*/);if(R){let w=R.index+R[0].length,V=j6(I,w);if(V)P=V.value.trim()}let F=I.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/);if(F&&P){let w=F[1].trim(),V=F[2].trim(),C=W?`, ${W}`:"";$+=`const ${H} = Type('${Y}', (${w}) => { if (!globalThis.__tjs?.validate(${w}, globalThis.__tjs?.infer(${P}))) return false; ${V} }, ${P}${C})`}else if(F){let w=F[1].trim(),V=F[2].trim(),C=W?`, undefined, ${W}`:"";$+=`const ${H} = Type('${Y}', (${w}) => { ${V} }${C})`}else if(P){let w=W?`, ${W}`:"";$+=`const ${H} = Type('${Y}', undefined, ${P}${w})`}else if(W)$+=`const ${H} = Type('${Y}', ${W})`;else $+=`const ${H} = Type('${Y}')`;X=M;continue}else if(W){$+=`const ${H} = Type('${Y}', ${W})`,X=J;continue}else if(!G){let _=Z.slice(K).match(/^(['"`][^]*?['"`]|\+?\d+(?:\.\d+)?|true|false|null|\{[^]*?\}|\[[^]*?\])/);if(_){let U=_[0];$+=`const ${H} = Type('${H}', ${U})`,X=K+_[0].length;continue}}}$+=Z[X],X++}return $}function k6(Z){let $="",X=0;while(X<Z.length){let Q=Z.slice(X).match(/^\bFunctionPredicate\s+([A-Z_][a-zA-Z0-9_]*)\s*(?:<([^>]+)>)?\s*/);if(Q){let H=Q[1],K=Q[2],Y=X+Q[0].length;if(Z[Y]==="{"){let z=1,G=Y+1;while(G<Z.length&&z>0){if(Z[G]==="{")z++;else if(Z[G]==="}")z--;G++}if(z===0){let W=Z.slice(Y+1,G-1).trim(),J=W.match(/params\s*:\s*(\{[^}]*\})/),L=W.match(/returns\s*:\s*(.+?)(?:\n|$)/),_=W.match(/returnContract\s*:\s*['"](\w+)['"]/),U=W.match(/description\s*:\s*(['"])([^]*?)\1/),q=[];if(J)q.push(`params: ${J[1]}`);if(L)q.push(`returns: ${L[1].trim()}`);if(_)q.push(`returnContract: '${_[1]}'`);let I=U?U[2]:H;if(K){let M=K.split(",").map((P)=>{let R=P.trim().split("=").map((F)=>F.trim());if(R.length===2){let F=R[1]==="any"||R[1]==="undefined"?"null":R[1];return`['${R[0]}', ${F}]`}return`'${R[0]}'`}),B=K.split(",").map((P)=>P.trim().split("=")[0].trim());$+=`const ${H} = FunctionPredicate('${I}', [${M.join(", ")}], (${B.join(", ")}) => ({ ${q.join(", ")} }))`}else $+=`const ${H} = FunctionPredicate('${I}', { ${q.join(", ")} })`;X=G;continue}}if(Z[Y]==="("){let z=1,G=Y+1;while(G<Z.length&&z>0){if(Z[G]==="(")z++;else if(Z[G]===")")z--;G++}if(z===0){let W=Z.slice(Y+1,G-1).trim(),J=W.indexOf(",");if(J!==-1){let L=W.slice(0,J).trim(),_=W.slice(J+1).trim();$+=`const ${H} = FunctionPredicate(${_}, ${L})`}else $+=`const ${H} = FunctionPredicate('${H}', ${W})`;X=G;continue}}}$+=Z[X],X++}return $}function g6(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 H=Q[1],K=Q[2],z=X+Q[0].length-1+1,G=1,W=z;while(W<Z.length&&G>0){let P=Z[W];if(P==="{")G++;else if(P==="}")G--;W++}if(G!==0){$+=Z[X],X++;continue}let J=Z.slice(z,W-1).trim(),L=W,_=K.split(",").map((P)=>{let R=P.trim().split("=").map((F)=>F.trim());if(R.length===2){let F=R[1]==="any"||R[1]==="undefined"?"null":R[1];return`['${R[0]}', ${F}]`}return`'${R[0]}'`}),U=J,q=U.search(/\bdeclaration\s*\{/);if(q!==-1){let P=U.indexOf("{",q),R=1,F=P+1;while(F<U.length&&R>0){if(U[F]==="{")R++;else if(U[F]==="}")R--;F++}U=U.slice(0,q)+U.slice(F)}let I=U.match(/description\s*:\s*(['"`])([^]*?)\1/),M=U.match(/predicate\s*\(([^)]*)\)\s*\{([^]*)\}/),B=I?I[2]:H;if(M){let P=M[1].trim().split(",").map((C)=>C.trim()),R=M[2].trim(),F=P[0]||"x",w=P.slice(1),V=w.map((C)=>`check${C}`);w.forEach((C,O)=>{R=R.replace(new RegExp(`\\b${C}\\s*\\(`,"g"),`${V[O]}(`)}),$+=`const ${H} = Generic([${_.join(", ")}], (${F}, ${V.join(", ")}) => { ${R} }, '${B}')`}else $+=`const ${H} = Generic([${_.join(", ")}], () => true, '${B}')`;X=L;continue}$+=Z[X],X++}return $}function b6(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 H=Q[1],K=Q[3],Y=X+Q[0].length;if(Z[Y]==="{"){let z=Y+1,G=1,W=z;while(W<Z.length&&G>0){let U=Z[W];if(U==="{")G++;else if(U==="}")G--;W++}if(G!==0){$+=Z[X],X++;continue}let J=Z.slice(z,W-1).trim(),L=W,_=P6(J);$+=`const ${H} = Union('${K}', [${_.join(", ")}])`,X=L;continue}else{let z=Z.indexOf(`
9
+ `,Y);if(z===-1)z=Z.length;let G=Z.slice(Y,z).trim();if(G){let W=P6(G);$+=`const ${H} = Union('${K}', [${W.join(", ")}])`,X=z;continue}}}$+=Z[X],X++}return $}function P6(Z){let $=[],X=Z.split("|").map((Q)=>Q.trim());for(let Q of X){if(!Q)continue;$.push(Q)}return $}function v6(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 H=Q[1],K=Q[3],z=X+Q[0].length-1+1,G=1,W=z;while(W<Z.length&&G>0){let q=Z[W];if(q==="{")G++;else if(q==="}")G--;W++}if(G!==0){$+=Z[X],X++;continue}let J=Z.slice(z,W-1).trim(),L=W,U=h8(J).map(([q,I])=>`${q}: ${I}`).join(", ");$+=`const ${H} = Enum('${K}', { ${U} })`,X=L;continue}$+=Z[X],X++}return $}function h8(Z){let $=[],X=0,Q=Z.split(/[\n,]/).map((H)=>H.trim()).filter((H)=>H&&!H.startsWith("//"));for(let H of Q){let K=H.match(/^([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*(.+))?$/);if(K){let Y=K[1],z=K[2]?.trim();if(z!==void 0){$.push([Y,z]);let G=Number(z);if(!isNaN(G))X=G+1}else $.push([Y,String(X)]),X++}}return $}function f6(Z){let $=new Map,X="",Q=0;while(Q<Z.length){let H=Z.slice(Q),K=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/);if(!K){if(Q===0||Z[Q-1]===`
10
+ `||Z[Q-1]===";"||Z[Q-1]==="}"){let R=H.match(/^(\s*)extend\s+([A-Z]\w*)\s*\{/)}X+=Z[Q],Q++;continue}let Y=K[1],z=K[2],G=Q+K[0].length-1,W=$0(Z,G),J=Z.slice(G+1,W-1).trim(),L=[],_=0,U=Z.slice(G+1,W-1);while(_<U.length){let R=U.slice(_).match(/^(\s*)(async\s+)?(\w+)\s*\(/);if(!R){_++;continue}let F=R[1],w=!!R[2],V=R[3],C=_+R[0].length-1,O=1,N=C+1;while(N<U.length&&O>0){if(U[N]==="(")O++;if(U[N]===")")O--;N++}let S=U.slice(C+1,N-1),g=N;while(g<U.length&&/\s/.test(U[g]))g++;if(U[g]==="="&&U[g+1]===">"){let s=Z0(Z,G+1+_);throw new Q1(`Arrow functions are not allowed in extend blocks (method '${V}' in extend ${z}). Use regular function syntax instead, as extension methods need 'this' binding.`,s)}if(U[g]!=="{"){_++;continue}let f=$0(U,g),c=U.slice(_,f).trim(),v=S.split(",").map((s)=>s.trim()).filter((s)=>s.length>0).map((s)=>{let D1=s.match(/^(\w+)\s*:\s*(.+)$/);if(D1)return`${D1[1]} = ${D1[2]}`;return s}).join(", "),x=w?"async ":"",Z1=U.slice(g+1,f-1);L.push({name:V,isAsync:w,fullText:`${V}: ${x}function(${v}) {${Z1}}`}),_=f}let q=!$.has(z);if(q)$.set(z,new Set);let I=$.get(z);for(let P of L)I.add(P.name);let M=L.map((P)=>` ${P.fullText}`).join(`,
11
+ `),B;if(q)B=`${Y}const __ext_${z} = {
12
+ ${M}
13
13
  ${Y}}
14
- `;else R=`${Y}Object.assign(__ext_${z}, {
15
- ${B}
14
+ `;else B=`${Y}Object.assign(__ext_${z}, {
15
+ ${M}
16
16
  ${Y}})
17
- `;for(let C of L)R+=`${Y}if (__tjs?.registerExtension) { __tjs.registerExtension('${z}', '${C.name}', __ext_${z}.${C.name}) }
18
- `;X+=R,Q=W}if(Q<=Z.length&&X.length<Z.length);return{source:X,extensions:$}}function X0(Z,$){if($.size===0)return Z;let X=new Map;for(let[H,K]of $)for(let Y of K){if(!X.has(Y))X.set(Y,[]);X.get(Y).push(H)}let Q=Z;for(let[H,K]of X){if(!K.includes("String"))continue;let Y=new RegExp(`('(?:[^'\\\\]|\\\\.)*')\\.(${H})\\((\\))?`,"g");Q=Q.replace(Y,(W,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let z=new RegExp(`("(?:[^"\\\\]|\\\\.)*")\\.(${H})\\((\\))?`,"g");Q=Q.replace(z,(W,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let G=new RegExp("(`(?:[^`\\\\]|\\\\.)*`)\\."+H+"\\((\\))?","g");Q=Q.replace(G,(W,J,L)=>{return L?`__ext_String.${H}.call(${J})`:`__ext_String.${H}.call(${J}, `})}for(let[H,K]of X){if(!K.includes("Array"))continue;let Y=`].${H}(`,z=0,G;while((G=Q.indexOf(Y,z))!==-1){let W=1,J=G-1,L=!1;while(J>=0&&W>0){let _=Q[J];if(L){if(_===L&&(J===0||Q[J-1]!=="\\"))L=!1}else{if(_==="]")W++;if(_==="[")W--;if(_==="'"||_==='"'||_==="`")L=_}J--}if(W===0){let _=Q.slice(J+1,G+1),U=Q.slice(0,J+1),q=Q.slice(G+Y.length);if(q[0]===")")Q=`${U}__ext_Array.${H}.call(${_})${q.slice(1)}`;else Q=`${U}__ext_Array.${H}.call(${_}, ${q}`}z=G+1}}for(let[H,K]of X){if(!K.includes("Number"))continue;let Y=new RegExp(`(\\d+(?:\\.\\d+)?)\\.(${H})\\((\\))?`,"g");Q=Q.replace(Y,(z,G,W,J)=>{return J?`__ext_Number.${W}.call(${G})`:`__ext_Number.${W}.call(${G}, `})}return Q}function Z0(Z,$){let X=1,Q=0;for(let H=0;H<$&&H<Z.length;H++)if(Z[H]===`
19
- `)X++,Q=0;else Q++;return{line:X,column:Q}}function y6(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 E0(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 C4(Z,$){let X=[],Q=0,H="",K=!1;for(let z=0;z<Z.length;z++){let G=Z[z];if(!K&&(G==="'"||G==='"'||G==="`")){K=G,H+=G;continue}if(K){if(H+=G,G==="\\"){if(z++,z<Z.length)H+=Z[z];continue}if(G===K)K=!1;continue}if(G==="("||G==="["||G==="{"){Q++,H+=G;continue}if(G===")"||G==="]"||G==="}"){Q--,H+=G;continue}if(G===","&&Q===0){let W=V6(H.trim(),$);if(W)X.push(W);H="";continue}H+=G}let Y=H.trim();if(Y){let z=V6(Y,$);if(z)X.push(z)}return X}function V6(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 H=X.slice(0,Q).trim(),K=X.slice(Q+1).trim();return{name:H,defaultValue:K,required:$.has(H)}}function $0(Z,$){let X=1,Q=$+1,H=!1,K=!1,Y=!1;while(Q<Z.length&&X>0){let z=Z[Q],G=Q+1<Z.length?Z[Q+1]:"";if(K){if(z===`
20
- `)K=!1;Q++;continue}if(Y){if(z==="*"&&G==="/"){Y=!1,Q+=2;continue}Q++;continue}if(H){if(z==="\\"){Q+=2;continue}if(z===H)H=!1;Q++;continue}if(z==="/"&&G==="/"){K=!0,Q+=2;continue}if(z==="/"&&G==="*"){Y=!0,Q+=2;continue}if(z==="'"||z==='"'||z==="`"){H=z,Q++;continue}if(z==="{")X++;if(z==="}")X--;Q++}return Q}function h6(Z,$){let X=new Set,Q=/(?:^|(?<=[\n;{}]))\s*(export\s+)?(async\s+)?function\s+(\w+)\s*\(/gm,H=new Map,K,Y=[];while((K=Q.exec(Z))!==null){let L=!!K[1],_=!!K[2],U=K[3],q=K.index,I=q,R=K[0].indexOf("function");if(R>=0)I=q+R;Y.push({name:U,fullMatchStart:q,funcKeywordStart:I,exported:L,isAsync:_})}for(let L of Y)if(!H.has(L.name))H.set(L.name,[]);let z=new Map;for(let L of Y)z.set(L.name,(z.get(L.name)||0)+1);let G=new Set;for(let[L,_]of z)if(_>1)G.add(L);if(G.size===0)return{source:Z,polymorphicNames:X};for(let L of Y){if(!G.has(L.name))continue;let _=Z.indexOf("(",L.funcKeywordStart);if(_===-1)continue;let U=1,q=_+1;while(q<Z.length&&U>0){if(Z[q]==="(")U++;if(Z[q]===")")U--;q++}let I=q-1,B=Z.slice(_+1,I),R=q;while(R<Z.length&&Z[R]!=="{")R++;if(R>=Z.length)continue;let C=$0(Z,R),w=L.fullMatchStart;while(w>0&&Z[w-1]===" ")w--;let F=H.get(L.name),M=C4(B,$);if(B.includes("...")){let V=Z0(Z,L.funcKeywordStart);throw new Q1(`Rest parameters are not supported in polymorphic function '${L.name}'. Use separate function names instead.`,V)}F.push({index:F.length+1,start:w,end:C,text:Z.slice(w,C),exported:L.exported,isAsync:L.isAsync,params:M})}for(let[L,_]of H){if(_.length<2)continue;let U=_.filter((q)=>q.isAsync).length;if(U>0&&U<_.length){let q=Z0(Z,_[0].start);throw new Q1(`Polymorphic function '${L}': all variants must be either sync or async, not mixed.`,q)}for(let q=0;q<_.length;q++)for(let I=q+1;I<_.length;I++){let B=_[q],R=_[I];if(B.params.length!==R.params.length)continue;let C=!0;for(let w=0;w<B.params.length;w++){let F=B.params[w].defaultValue?E0(B.params[w].defaultValue):"any",M=R.params[w].defaultValue?E0(R.params[w].defaultValue):"any";if(F!==M){C=!1;break}}if(C){let w=Z0(Z,R.start);throw new Q1(`Polymorphic function '${L}': variants ${q+1} and ${I+1} have ambiguous signatures (same parameter types at every position). Overloads must differ by arity or parameter types.`,w)}}}let W=[];for(let[L,_]of H){if(_.length<2)continue;for(let U of _)W.push({name:L,variant:U})}W.sort((L,_)=>_.variant.start-L.variant.start);let J=Z;for(let{name:L,variant:_}of W){let U=_.isAsync?"async ":"",q=_.text.replace(new RegExp(`(?:export\\s+)?${U?U.replace(/\s+$/,"\\s+"):""}function\\s+${L}\\s*\\(`),`${U}function ${L}$$${_.index}(`);J=J.slice(0,_.start)+q+J.slice(_.end)}for(let[L,_]of H){if(_.length<2)continue;X.add(L);let U=_[0].isAsync,q=_.some((F)=>F.exported),I=U?"async ":"",B=q?"export ":"",R=[..._].sort((F,M)=>{if(F.params.length!==M.params.length)return 0;let P=0,V=0;for(let O of F.params){let N=O.defaultValue?E0(O.defaultValue):"any";if(N==="non-negative-integer")P+=3;else if(N==="integer")P+=2;else if(N!=="any")P+=1}for(let O of M.params){let N=O.defaultValue?E0(O.defaultValue):"any";if(N==="non-negative-integer")V+=3;else if(N==="integer")V+=2;else if(N!=="any")V+=1}return V-P}),C=[];for(let F of R){let M=[`__args.length === ${F.params.length}`],P=[];for(let V=0;V<F.params.length;V++){let O=F.params[V];if(P.push(`__args[${V}]`),O.defaultValue){let N=y6(`__args[${V}]`,O.defaultValue);if(N!=="true")M.push(N)}}C.push(` if (${M.join(" && ")}) return ${L}$${F.index}(${P.join(", ")})`)}let w=`
21
- ${B}${I}function ${L}(...__args) {
22
- ${C.join(`
17
+ `;for(let P of L)B+=`${Y}if (__tjs?.registerExtension) { __tjs.registerExtension('${z}', '${P.name}', __ext_${z}.${P.name}) }
18
+ `;X+=B,Q=W}if(Q<=Z.length&&X.length<Z.length);return{source:X,extensions:$}}function X0(Z,$){if($.size===0)return Z;let X=new Map;for(let[H,K]of $)for(let Y of K){if(!X.has(Y))X.set(Y,[]);X.get(Y).push(H)}let Q=Z;for(let[H,K]of X){if(!K.includes("String"))continue;let Y=new RegExp(`('(?:[^'\\\\]|\\\\.)*')\\.(${H})\\((\\))?`,"g");Q=Q.replace(Y,(W,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let z=new RegExp(`("(?:[^"\\\\]|\\\\.)*")\\.(${H})\\((\\))?`,"g");Q=Q.replace(z,(W,J,L,_)=>{return _?`__ext_String.${L}.call(${J})`:`__ext_String.${L}.call(${J}, `});let G=new RegExp("(`(?:[^`\\\\]|\\\\.)*`)\\."+H+"\\((\\))?","g");Q=Q.replace(G,(W,J,L)=>{return L?`__ext_String.${H}.call(${J})`:`__ext_String.${H}.call(${J}, `})}for(let[H,K]of X){if(!K.includes("Array"))continue;let Y=`].${H}(`,z=0,G;while((G=Q.indexOf(Y,z))!==-1){let W=1,J=G-1,L=!1;while(J>=0&&W>0){let _=Q[J];if(L){if(_===L&&(J===0||Q[J-1]!=="\\"))L=!1}else{if(_==="]")W++;if(_==="[")W--;if(_==="'"||_==='"'||_==="`")L=_}J--}if(W===0){let _=Q.slice(J+1,G+1),U=Q.slice(0,J+1),q=Q.slice(G+Y.length);if(q[0]===")")Q=`${U}__ext_Array.${H}.call(${_})${q.slice(1)}`;else Q=`${U}__ext_Array.${H}.call(${_}, ${q}`}z=G+1}}for(let[H,K]of X){if(!K.includes("Number"))continue;let Y=new RegExp(`(\\d+(?:\\.\\d+)?)\\.(${H})\\((\\))?`,"g");Q=Q.replace(Y,(z,G,W,J)=>{return J?`__ext_Number.${W}.call(${G})`:`__ext_Number.${W}.call(${G}, `})}return Q}function Z0(Z,$){let X=1,Q=0;for(let H=0;H<$&&H<Z.length;H++)if(Z[H]===`
19
+ `)X++,Q=0;else Q++;return{line:X,column:Q}}function y6(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 T0(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 C4(Z,$){let X=[],Q=0,H="",K=!1;for(let z=0;z<Z.length;z++){let G=Z[z];if(!K&&(G==="'"||G==='"'||G==="`")){K=G,H+=G;continue}if(K){if(H+=G,G==="\\"){if(z++,z<Z.length)H+=Z[z];continue}if(G===K)K=!1;continue}if(G==="("||G==="["||G==="{"){Q++,H+=G;continue}if(G===")"||G==="]"||G==="}"){Q--,H+=G;continue}if(G===","&&Q===0){let W=V6(H.trim(),$);if(W)X.push(W);H="";continue}H+=G}let Y=H.trim();if(Y){let z=V6(Y,$);if(z)X.push(z)}return X}function V6(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 H=X.slice(0,Q).trim(),K=X.slice(Q+1).trim();return{name:H,defaultValue:K,required:$.has(H)}}function $0(Z,$){let X=1,Q=$+1,H=!1,K=!1,Y=!1;while(Q<Z.length&&X>0){let z=Z[Q],G=Q+1<Z.length?Z[Q+1]:"";if(K){if(z===`
20
+ `)K=!1;Q++;continue}if(Y){if(z==="*"&&G==="/"){Y=!1,Q+=2;continue}Q++;continue}if(H){if(z==="\\"){Q+=2;continue}if(z===H)H=!1;Q++;continue}if(z==="/"&&G==="/"){K=!0,Q+=2;continue}if(z==="/"&&G==="*"){Y=!0,Q+=2;continue}if(z==="'"||z==='"'||z==="`"){H=z,Q++;continue}if(z==="{")X++;if(z==="}")X--;Q++}return Q}function h6(Z,$){let X=new Set,Q=/(?:^|(?<=[\n;{}]))\s*(export\s+)?(async\s+)?function\s+(\w+)\s*\(/gm,H=new Map,K,Y=[];while((K=Q.exec(Z))!==null){let L=!!K[1],_=!!K[2],U=K[3],q=K.index,I=q,B=K[0].indexOf("function");if(B>=0)I=q+B;Y.push({name:U,fullMatchStart:q,funcKeywordStart:I,exported:L,isAsync:_})}for(let L of Y)if(!H.has(L.name))H.set(L.name,[]);let z=new Map;for(let L of Y)z.set(L.name,(z.get(L.name)||0)+1);let G=new Set;for(let[L,_]of z)if(_>1)G.add(L);if(G.size===0)return{source:Z,polymorphicNames:X};for(let L of Y){if(!G.has(L.name))continue;let _=Z.indexOf("(",L.funcKeywordStart);if(_===-1)continue;let U=1,q=_+1;while(q<Z.length&&U>0){if(Z[q]==="(")U++;if(Z[q]===")")U--;q++}let I=q-1,M=Z.slice(_+1,I),B=q;while(B<Z.length&&Z[B]!=="{")B++;if(B>=Z.length)continue;let P=$0(Z,B),R=L.fullMatchStart;while(R>0&&Z[R-1]===" ")R--;let F=H.get(L.name),w=C4(M,$);if(M.includes("...")){let C=Z0(Z,L.funcKeywordStart);throw new Q1(`Rest parameters are not supported in polymorphic function '${L.name}'. Use separate function names instead.`,C)}F.push({index:F.length+1,start:R,end:P,text:Z.slice(R,P),exported:L.exported,isAsync:L.isAsync,params:w})}for(let[L,_]of H){if(_.length<2)continue;let U=_.filter((q)=>q.isAsync).length;if(U>0&&U<_.length){let q=Z0(Z,_[0].start);throw new Q1(`Polymorphic function '${L}': all variants must be either sync or async, not mixed.`,q)}for(let q=0;q<_.length;q++)for(let I=q+1;I<_.length;I++){let M=_[q],B=_[I];if(M.params.length!==B.params.length)continue;let P=!0;for(let R=0;R<M.params.length;R++){let F=M.params[R].defaultValue?T0(M.params[R].defaultValue):"any",w=B.params[R].defaultValue?T0(B.params[R].defaultValue):"any";if(F!==w){P=!1;break}}if(P){let R=Z0(Z,B.start);throw new Q1(`Polymorphic function '${L}': variants ${q+1} and ${I+1} have ambiguous signatures (same parameter types at every position). Overloads must differ by arity or parameter types.`,R)}}}let W=[];for(let[L,_]of H){if(_.length<2)continue;for(let U of _)W.push({name:L,variant:U})}W.sort((L,_)=>_.variant.start-L.variant.start);let J=Z;for(let{name:L,variant:_}of W){let U=_.isAsync?"async ":"",q=_.text.replace(new RegExp(`(?:export\\s+)?${U?U.replace(/\s+$/,"\\s+"):""}function\\s+${L}\\s*\\(`),`${U}function ${L}$$${_.index}(`);J=J.slice(0,_.start)+q+J.slice(_.end)}for(let[L,_]of H){if(_.length<2)continue;X.add(L);let U=_[0].isAsync,q=_.some((F)=>F.exported),I=U?"async ":"",M=q?"export ":"",B=[..._].sort((F,w)=>{if(F.params.length!==w.params.length)return 0;let V=0,C=0;for(let O of F.params){let N=O.defaultValue?T0(O.defaultValue):"any";if(N==="non-negative-integer")V+=3;else if(N==="integer")V+=2;else if(N!=="any")V+=1}for(let O of w.params){let N=O.defaultValue?T0(O.defaultValue):"any";if(N==="non-negative-integer")C+=3;else if(N==="integer")C+=2;else if(N!=="any")C+=1}return C-V}),P=[];for(let F of B){let w=[`__args.length === ${F.params.length}`],V=[];for(let C=0;C<F.params.length;C++){let O=F.params[C];if(V.push(`__args[${C}]`),O.defaultValue){let N=y6(`__args[${C}]`,O.defaultValue);if(N!=="true")w.push(N)}}P.push(` if (${w.join(" && ")}) return ${L}$${F.index}(${V.join(", ")})`)}let R=`
21
+ ${M}${I}function ${L}(...__args) {
22
+ ${P.join(`
23
23
  `)}
24
24
  return __tjs.typeError('${L}', 'no matching overload', __args)
25
25
  }
26
- `;J+=w}return{source:J,polymorphicNames:X}}function x6(Z){return Z.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,($,X)=>{return $.replace(X,`const ${X}`)})}function u6(Z,$=!1){let X=[],Q=[],H="",K=0;while(K<Z.length){let Y=Z.slice(K).match(/^\btest\s+/);if(Y){let z=K,G=K+Y[0].length,W,J=Z.slice(G).match(/^(['"`])([^]*?)\1\s*/);if(J)W=J[2],G+=J[0].length;if(Z[G]==="{"){let L=G+1,_=1,U=L;while(U<Z.length&&_>0){let q=Z[U];if(q==="{")_++;else if(q==="}")_--;U++}if(_===0){let q=Z.slice(L,U-1).trim(),I=U,B=(Z.slice(0,z).match(/\n/g)||[]).length+1;if(X.push({description:W,body:q,start:z,end:I,line:B}),!$)try{Function(q)()}catch(w){let F=W||`test at line ${B}`;Q.push(`Test failed: ${F} (line ${B})
27
- ${w.message||w}`)}let C=(Z.slice(z,I).match(/\n/g)||[]).length;H+=`
28
- `.repeat(C),K=I;continue}}}H+=Z[K],K++}return{source:H,tests:X,errors:Q}}function d6(Z,$){let X=new Set,Q=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,H,K=[];while((H=Q.exec(Z))!==null){let z=H[1],G=H[2]?.trim()||"",W=H.index+H[0].length-1,J=$0(Z,W),L=Z.slice(W,J);K.push({className:z,extendsClause:G,bodyStart:W,bodyEnd:J,body:L})}let Y=Z;for(let z=K.length-1;z>=0;z--){let{className:G,extendsClause:W,bodyStart:J,bodyEnd:L,body:_}=K[z],U=/\bconstructor\s*\(/g,q,I=[];while((q=U.exec(_))!==null)I.push(q.index);if(I.length<2)continue;X.add(G);let B=[];for(let V=0;V<I.length;V++){let O=I[V],N=_.indexOf("(",O),S=1,g=N+1;while(g<_.length&&S>0){if(_[g]==="(")S++;if(_[g]===")")S--;g++}let f=_.slice(N+1,g-1),c=g;while(c<_.length&&_[c]!=="{")c++;let v=$0(_,c),h=_.slice(c+1,v-1);B.push({index:V+1,paramStr:f,bodyText:h,fullStart:O,fullEnd:v})}let R=_.slice(0,B[0].fullEnd),C=B[B.length-1].fullEnd;R+=_.slice(C);let w=_;for(let V=B.length-1;V>=1;V--){let O=B[V],N=O.fullStart;while(N>0&&w[N-1]===" ")N--;if(N>0&&w[N-1]===`
29
- `)N--;w=w.slice(0,N)+w.slice(O.fullEnd)}let F="";for(let V=1;V<B.length;V++){let O=B[V],N=C4(O.paramStr,$);if(O.paramStr.includes("...")){let g=Z0(Z,J+O.fullStart);throw new Q1(`Rest parameters are not supported in polymorphic constructors for '${G}'.`,g)}F+=`
26
+ `;J+=R}return{source:J,polymorphicNames:X}}function x6(Z){return Z.replace(/(?<=^|[;\n{])\s*([A-Z][a-zA-Z0-9_]*)\s*=(?!=)/gm,($,X)=>{return $.replace(X,`const ${X}`)})}function u6(Z,$=!1){let X=[],Q=[],H="",K=0;while(K<Z.length){let Y=Z.slice(K).match(/^\btest\s+/);if(Y){let z=K,G=K+Y[0].length,W,J=Z.slice(G).match(/^(['"`])([^]*?)\1\s*/);if(J)W=J[2],G+=J[0].length;if(Z[G]==="{"){let L=G+1,_=1,U=L;while(U<Z.length&&_>0){let q=Z[U];if(q==="{")_++;else if(q==="}")_--;U++}if(_===0){let q=Z.slice(L,U-1).trim(),I=U,M=(Z.slice(0,z).match(/\n/g)||[]).length+1;if(X.push({description:W,body:q,start:z,end:I,line:M}),!$)try{Function(q)()}catch(R){let F=W||`test at line ${M}`;Q.push(`Test failed: ${F} (line ${M})
27
+ ${R.message||R}`)}let P=(Z.slice(z,I).match(/\n/g)||[]).length;H+=`
28
+ `.repeat(P),K=I;continue}}}H+=Z[K],K++}return{source:H,tests:X,errors:Q}}function d6(Z,$){let X=new Set,Q=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,H,K=[];while((H=Q.exec(Z))!==null){let z=H[1],G=H[2]?.trim()||"",W=H.index+H[0].length-1,J=$0(Z,W),L=Z.slice(W,J);K.push({className:z,extendsClause:G,bodyStart:W,bodyEnd:J,body:L})}let Y=Z;for(let z=K.length-1;z>=0;z--){let{className:G,extendsClause:W,bodyStart:J,bodyEnd:L,body:_}=K[z],U=/\bconstructor\s*\(/g,q,I=[];while((q=U.exec(_))!==null)I.push(q.index);if(I.length<2)continue;X.add(G);let M=[];for(let C=0;C<I.length;C++){let O=I[C],N=_.indexOf("(",O),S=1,g=N+1;while(g<_.length&&S>0){if(_[g]==="(")S++;if(_[g]===")")S--;g++}let f=_.slice(N+1,g-1),c=g;while(c<_.length&&_[c]!=="{")c++;let v=$0(_,c),x=_.slice(c+1,v-1);M.push({index:C+1,paramStr:f,bodyText:x,fullStart:O,fullEnd:v})}let B=_.slice(0,M[0].fullEnd),P=M[M.length-1].fullEnd;B+=_.slice(P);let R=_;for(let C=M.length-1;C>=1;C--){let O=M[C],N=O.fullStart;while(N>0&&R[N-1]===" ")N--;if(N>0&&R[N-1]===`
29
+ `)N--;R=R.slice(0,N)+R.slice(O.fullEnd)}let F="";for(let C=1;C<M.length;C++){let O=M[C],N=C4(O.paramStr,$);if(O.paramStr.includes("...")){let g=Z0(Z,J+O.fullStart);throw new Q1(`Rest parameters are not supported in polymorphic constructors for '${G}'.`,g)}F+=`
30
30
  function ${G}$ctor$${O.index}(${O.paramStr}) {`,F+=`
31
31
  const __obj = Object.create(${G}.prototype)`,F+=`
32
32
  ;(function() {${O.bodyText}}).call(__obj)`,F+=`
33
33
  return __obj`,F+=`
34
34
  }
35
- `}let M=[];for(let V=0;V<B.length;V++){let O=B[V],N=C4(O.paramStr,$),S=[`a.length === ${N.length}`];for(let g=0;g<N.length;g++){let f=N[g];if(f.defaultValue){let c=y6(`a[${g}]`,f.defaultValue);if(c!=="true")S.push(c)}}if(V===0)M.push(` if (${S.join(" && ")}) return Reflect.construct(t, a)`);else{let g=N.map((f,c)=>`a[${c}]`).join(", ");M.push(` if (${S.join(" && ")}) return ${G}$ctor$${O.index}(${g})`)}}F+=`
35
+ `}let w=[];for(let C=0;C<M.length;C++){let O=M[C],N=C4(O.paramStr,$),S=[`a.length === ${N.length}`];for(let g=0;g<N.length;g++){let f=N[g];if(f.defaultValue){let c=y6(`a[${g}]`,f.defaultValue);if(c!=="true")S.push(c)}}if(C===0)w.push(` if (${S.join(" && ")}) return Reflect.construct(t, a)`);else{let g=N.map((f,c)=>`a[${c}]`).join(", ");w.push(` if (${S.join(" && ")}) return ${G}$ctor$${O.index}(${g})`)}}F+=`
36
36
  function ${G}$dispatch(t, a) {
37
- `,F+=M.join(`
37
+ `,F+=w.join(`
38
38
  `)+`
39
39
  `,F+=` return __tjs.typeError('${G}', 'no matching constructor', a)
40
40
  `,F+=`}
41
- `,Y=Y.slice(0,J)+w+Y.slice(L);let P=J+w.length;Y=Y.slice(0,P)+F+Y.slice(P)}return{source:Y,polyCtorClasses:X}}function l6(Z,$=new Set){let X=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Q="",H=0,K;while((K=X.exec(Z))!==null){let Y=K[1],z=K[2]||"",G=K.index,W=G+K[0].length-1,J=1,L=W+1;while(L<Z.length&&J>0){let _=Z[L];if(_==="{")J++;else if(_==="}")J--;L++}if(J===0){let _=L,U=Z.slice(W,_);if(Q+=Z.slice(H,G),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) } });`;H=_}}return Q+=Z.slice(H),Q}function m6(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 i6(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 T0(Z,$={}){let X=Z,Q,H=new Set,K=new Set,Y=new Set,z={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1},G=Z.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(G)Q=G[2],Z=Z.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let W=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsStandard|TjsSafeEval)\b/,J;while(J=Z.match(W)){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=E6(Z);if(Z=N6(Z),z.tjsEquals&&!$.vmTarget)Z=T6(Z);Z=S6(Z),Z=g6(Z),Z=k6(Z),Z=b6(Z),Z=v6(Z),Z=x6(Z);let{source:L,returnType:_,returnSafety:U}=O0(Z,{originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y});Z=L;let q=f6(Z);Z=q.source,Z=C6(Z);let I=h6(Z,H);Z=I.source;let B=O6(Z);Z=B.source;let R=u6(Z,$.dangerouslySkipTests);Z=R.source;let C=d6(Z,H);Z=C.source;for(let w of C.polyCtorClasses)K.add(`${w}$dispatch`);if(z.tjsClass)Z=l6(Z,C.polyCtorClasses);if(z.tjsDate)Z=m6(Z);if(z.tjsNoeval)Z=i6(Z);return Z=X0(Z,q.extensions),{source:Z,returnType:_,returnSafety:U,moduleSafety:Q,tjsModes:z,originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y,wasmBlocks:B.blocks,tests:R.tests,testErrors:R.errors,polymorphicNames:I.polymorphicNames,extensions:q.extensions}}function w1(Z,$={}){let{filename:X="<source>",colonShorthand:Q=!0,vmTarget:H=!1}=$,{source:K,returnType:Y,returnSafety:z,moduleSafety:G,originalSource:W,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:I}=Q?T0(Z,{vmTarget:H}):{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:p6.parse(K,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:Y,returnSafety:z,moduleSafety:G,originalSource:W,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:I}}catch(B){let R=B.loc||{line:1,column:0};throw new Q1(B.message.replace(/\s*\(\d+:\d+\)$/,""),R,W,X)}}function S0(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 Q0(Z,$){let X={params:{}};if(!$.loc)return X;let Q=Z.substring(0,$.start),H=[...Q.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(H.length>0){let J=H[H.length-1],L=Q.substring(J.index+J[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(L)){let _=J[1],U=_.split(`
42
- `),q=U.filter((I)=>I.trim().length>0).reduce((I,B)=>{let R=B.match(/^(\s*)/)?.[1].length||0;return Math.min(I,R)},1/0);if(q>0&&q<1/0)_=U.map((I)=>I.slice(q)).join(`
43
- `);return X.description=_.trim(),X}}let K=Q.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!K)return X;let Y=K[0],z=Y.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(z)X.description=z[1].trim();let G=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,W;while((W=G.exec(Y))!==null)X.params[W[1]]=W[2].trim();return X}import{parseExpressionAt as h8}from"acorn";function H1(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"}};let X=$.filter((Y)=>Y!=null).map((Y)=>H1(Y));if(X.length===0)return{kind:"array",items:{kind:"any"}};let Q=new Map;for(let Y of X){let z=JSON.stringify(Y);if(!Q.has(z))Q.set(z,Y)}let H=[...Q.values()];return{kind:"array",items:H.length===1?H[0]:{kind:"union",members:H}}}case"ObjectExpression":{let $=Z.properties,X={};for(let Q of $)if(Q.type==="Property"&&Q.key.type==="Identifier"){let H=Q.key.name;X[H]=H1(Q.value)}return{kind:"object",shape:X}}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="||")return H1(X);if($==="&&")return H1(Q);if($==="??")return H1(Q);return{kind:"any"}}case"BinaryExpression":{let{operator:$,left:X,right:Q}=Z;if($==="|"){let H=H1(X),K=H1(Q);if(K.kind==="null")return{...H,nullable:!0};if(H.kind==="null")return{...K,nullable:!0};return{kind:"union",members:[H,K]}}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 H=X.raw;if(H&&H.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 l("Only simple parameter names are supported",m(Z));let H=X.name,K=$?.has(H)??!1,Y=H1(Q),z=A1(Q);return{name:H,type:Y,required:K,default:K?null:z,example:z,loc:{start:Z.start,end:Z.end}}}if(Z.type==="ObjectPattern"){let X=Z.properties,Q={},H={};for(let K of X)if(K.type==="Property"){let Y=K.key.type==="Identifier"?K.key.name:String(K.key.value);if(K.value.type==="Identifier")Q[Y]={kind:"any"},H[Y]={name:Y,type:{kind:"any"},required:!0};else if(K.value.type==="AssignmentPattern"){let z=P1(K.value,$),G=$?.has(Y)??!1;Q[Y]=z.type,H[Y]={name:Y,type:z.type,required:G,default:G?null:z.example,example:z.example}}}return{name:"__destructured__",type:{kind:"object",shape:Q,destructuredParams:H},required:!0}}throw new l(`Unsupported parameter pattern: ${Z.type}`,m(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 n6(Z){try{let $=h8(Z,0,{ecmaVersion:2022});return H1($)}catch{return{kind:"any"}}}function O4(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?O4(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}: ${O4(Q)}`).join(", ");return Z.nullable?`{ ${$} } | null`:`{ ${$} }`}case"union":return Z.members?.map(O4).join(" | ")||"any";default:return"any"}}function k0(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?k0(Z.items):{}};case"object":if(Z.shape){let $={};for(let[X,Q]of Object.entries(Z.shape))$[X]=k0(Q);return{type:"object",properties:$,additionalProperties:!1}}return{type:"object"};case"union":if(Z.members)return{oneOf:Z.members.map(k0)};return{};default:return{}}}function x8(Z){let $={},X=[];for(let[Q,H]of Object.entries(Z))if($[Q]=k0(H.type),H.required)X.push(Q);return{type:"object",properties:$,required:X.length>0?X:void 0,additionalProperties:!1}}function Y0(Z,$,X,Q={},H){let K=Q0($,Z),Y=new Map;for(let B of Z.params){let R=P1(B,H);if(R.name==="__destructured__"&&R.type.kind==="object"&&R.type.destructuredParams)for(let[C,w]of Object.entries(R.type.destructuredParams))Y.set(C,{...w,description:K.params[C]});else R.description=K.params[R.name],Y.set(R.name,R)}let z;if(X)z=n6(X);let G={depth:0,locals:new Map,parameters:Y,atoms:new Set(Object.keys(Q.atoms||{})),warnings:[],source:$,filename:Q.filename||"<source>",options:Q},W=I1(Z.body,G),J=[],L=[],_=[];for(let[B,R]of Y.entries())if(R.required)L.push(B);else if(R.default!==void 0)_.push({name:B,defaultValue:R.default});else L.push(B);if(L.length>0)J.push({op:"varsImport",keys:L});for(let{name:B,defaultValue:R}of _)J.push({op:"varsImport",keys:[B]}),J.push({op:"if",condition:{$expr:"binary",op:"==",left:{$expr:"ident",name:B},right:{$expr:"literal",value:null}},then:[{op:"varSet",key:B,value:R}]});J.push(...W);let U=Object.fromEntries(Y),q={name:Z.id?.name||"anonymous",description:K.description,parameters:U,returns:z},I=x8(U);return{ast:{op:"seq",steps:J,inputSchema:I},signature:q,warnings:G.warnings}}function I1(Z,$){let X=[];for(let Q of Z.body){let H=H0(Q,$);if(H)if(Array.isArray(H))X.push(...H);else X.push(H)}return X}function H0(Z,$){switch(Z.type){case"VariableDeclaration":return u8(Z,$);case"ExpressionStatement":return d8(Z,$);case"IfStatement":return m8(Z,$);case"WhileStatement":return i8(Z,$);case"ForOfStatement":return p8(Z,$);case"TryStatement":return n8(Z,$);case"ReturnStatement":return c8(Z,$);case"ThrowStatement":throw new l("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",m(Z),$.source,$.filename);case"BlockStatement":return{op:"scope",steps:I1(Z,G1($))};case"EmptyStatement":return null;default:throw new l(`Unsupported statement type: ${Z.type}`,m(Z),$.source,$.filename)}}function u8(Z,$){let X=[],Q=Z.kind==="const",H=Q?"constSet":"varSet";for(let K of Z.declarations){if(K.id.type!=="Identifier")throw new l("Only simple variable names are supported",m(K),$.source,$.filename);let Y=K.id.name;if(K.init){let{step:z,resultVar:G}=S1(K.init,$,Y,Q);if(z)X.push(z);else if(G!==Y)X.push({op:H,key:Y,value:G});let W=H1(K.init);$.locals.set(Y,W)}else{if(Q)throw new l("const declarations must be initialized",m(K),$.source,$.filename);X.push({op:"varSet",key:Y,value:null}),$.locals.set(Y,{kind:"any",nullable:!0})}}return X}function d8(Z,$){let X=Z.expression;if(X.type==="AssignmentExpression")return l8(X,$);if(X.type==="CallExpression"){let{step:Q,resultVar:H}=S1(X,$);if(Q)return Q;if(H)return{op:"varSet",key:"_",value:H};return null}return $.warnings.push({message:"Expression statement has no effect",line:m(Z).line,column:m(Z).column}),null}function l8(Z,$){if(Z.left.type!=="Identifier")throw new l("Only simple variable assignment is supported",m(Z),$.source,$.filename);let X=Z.left.name,{step:Q,resultVar:H}=S1(Z.right,$,X);if(Q)return Q;return{op:"varSet",key:X,value:H}}function m8(Z,$){let X=d(Z.test,$),Q=Z.consequent.type==="BlockStatement"?I1(Z.consequent,G1($)):[H0(Z.consequent,$)].filter(Boolean),H;if(Z.alternate)H=Z.alternate.type==="BlockStatement"?I1(Z.alternate,G1($)):[H0(Z.alternate,$)].filter(Boolean);return{op:"if",condition:X,then:Q,...H&&{else:H}}}function i8(Z,$){let X=d(Z.test,$),Q=Z.body.type==="BlockStatement"?I1(Z.body,G1($)):[H0(Z.body,$)].filter(Boolean);return{op:"while",condition:X,body:Q}}function p8(Z,$){let X;if(Z.left.type==="VariableDeclaration"){let Y=Z.left.declarations[0];if(Y.id.type!=="Identifier")throw new l("Only simple variable names are supported in for...of",m(Z.left),$.source,$.filename);X=Y.id.name}else if(Z.left.type==="Identifier")X=Z.left.name;else throw new l("Unsupported for...of left-hand side",m(Z.left),$.source,$.filename);let Q=r(Z.right,$),H=G1($);H.locals.set(X,{kind:"any"});let K=Z.body.type==="BlockStatement"?I1(Z.body,H):[H0(Z.body,H)].filter(Boolean);return{op:"map",items:Q,as:X,steps:K}}function n8(Z,$){let X=I1(Z.block,G1($)),Q,H;if(Z.handler){let K=G1($);if(Z.handler.param?.type==="Identifier")H=Z.handler.param.name,K.locals.set(H,{kind:"any"});Q=I1(Z.handler.body,K)}return{op:"try",try:X,...Q&&{catch:Q},...H&&{catchParam:H}}}function c8(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 o6=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),o8=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"]),s8=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 a8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;return o8.has($)||K0.has($)}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(o6.has(X)||K0.has(X))return!0}if($.property.type==="Identifier"){let X=$.property.name;if(s8.has(X))return!0}}return!1}function r8(Z){if(Z.object.type==="Identifier"){let $=Z.object.name;return o6.has($)||K0.has($)}return!1}var c6={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 t8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;if(K0.has($))return c6[$]||`${$} 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 c6[X]||`${X} is not available in AsyncJS.`}}return null}function s6(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 H=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 G=s6(z);throw new l(`The 'new' keyword is not supported in AsyncJS.${G}`,m(Z),$.source,$.filename)}if(Z.type==="CallExpression"){let Y=t8(Z);if(Y)throw new l(Y,m(Z),$.source,$.filename)}if(Z.type==="CallExpression"&&a8(Z)){let Y=d(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="MemberExpression"&&r8(Z)){let Y=d(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="CallExpression")return e8(Z,$,X,Q);if(Z.type==="TemplateLiteral")return $Z(Z,$,X,Q);if(Z.type==="BinaryExpression"||Z.type==="LogicalExpression"||Z.type==="UnaryExpression"){let Y=d(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}return{step:null,resultVar:r(Z,$)}}function e8(Z,$,X,Q){let H,K=!1,Y;if(Z.callee.type==="Identifier")H=Z.callee.name;else if(Z.callee.type==="MemberExpression"){let G=Z.callee;if(G.property.type==="Identifier")H=G.property.name,K=!0,Y=r(G.object,$);else throw new l("Computed method names are not supported",m(Z),$.source,$.filename)}else throw new l("Only named function calls are supported",m(Z),$.source,$.filename);if(K)return ZZ(H,Y,Z.arguments,$,X,Q);if(H==="console"&&Z.callee.type==="MemberExpression");let z=XZ(Z,$);return{step:{op:H,...z,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function ZZ(Z,$,X,Q,H,K){switch(Z){case"map":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=z?.type==="Identifier"?z.name:"item",W=G1(Q);W.locals.set(G,{kind:"any"});let J;if(Y.body.type==="BlockStatement")J=I1(Y.body,W);else{let{step:L,resultVar:_}=S1(Y.body,W,"result");J=L?[L]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:$,as:G,steps:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"filter":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=z?.type==="Identifier"?z.name:"item",W=G1(Q);W.locals.set(G,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new l("filter callback must be an expression, not a block",m(X[0]),Q.source,Q.filename);else J=d(Y.body,W);return{step:{op:"filter",items:$,as:G,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"find":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=z?.type==="Identifier"?z.name:"item",W=G1(Q);W.locals.set(G,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new l("find callback must be an expression, not a block",m(X[0]),Q.source,Q.filename);else J=d(Y.body,W);return{step:{op:"find",items:$,as:G,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"reduce":if(X.length>=2&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=Y.params[1],W=z?.type==="Identifier"?z.name:"acc",J=G?.type==="Identifier"?G.name:"item",L=G1(Q);L.locals.set(W,{kind:"any"}),L.locals.set(J,{kind:"any"});let _;if(Y.body.type==="BlockStatement")_=I1(Y.body,L);else{let{step:q,resultVar:I}=S1(Y.body,L,"result");_=q?[q]:[{op:"varSet",key:"result",value:I}]}let U=r(X[1],Q);return{step:{op:"reduce",items:$,as:J,accumulator:W,initial:U,steps:_,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"slice":break;case"push":return{step:{op:"push",list:$,item:r(X[0],Q),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"join":return{step:{op:"join",list:$,sep:X.length>0?r(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"split":return{step:{op:"split",str:$,sep:X.length>0?r(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}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)),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}function $Z(Z,$,X,Q){let H="",K={};for(let Y=0;Y<Z.quasis.length;Y++)if(H+=Z.quasis[Y].value.cooked||Z.quasis[Y].value.raw,Y<Z.expressions.length){let z=Z.expressions[Y],G=`_${Y}`;K[G]=r(z,$),H+=`{{${G}}}`}return{step:{op:"template",tmpl:H,vars:K,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function d(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=d(X.object,$),H=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,...H&&{optional:!0}};throw new l("Computed member access with variables not yet supported",m(Z),$.source,$.filename)}let K=X.property.name;return{$expr:"member",object:Q,property:K,...H&&{optional:!0}}}case"ChainExpression":return d(Z.expression,$);case"BinaryExpression":{let X=Z;return{$expr:"binary",op:X.operator,left:d(X.left,$),right:d(X.right,$)}}case"LogicalExpression":{let X=Z;return{$expr:"logical",op:X.operator,left:d(X.left,$),right:d(X.right,$)}}case"UnaryExpression":{let X=Z;return{$expr:"unary",op:X.operator,argument:d(X.argument,$)}}case"ConditionalExpression":{let X=Z;return{$expr:"conditional",test:d(X.test,$),consequent:d(X.consequent,$),alternate:d(X.alternate,$)}}case"ArrayExpression":return{$expr:"array",elements:Z.elements.filter((Q)=>Q!==null).map((Q)=>d(Q,$))};case"ObjectExpression":{let X=Z,Q=[];for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q.push({key:K,value:d(H.value,$)})}return{$expr:"object",properties:Q}}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee,H=Q.property.type==="Identifier"?Q.property.name:String(Q.property.value),K=Q.optional===!0||X.optional===!0;return{$expr:"methodCall",object:d(Q.object,$),method:H,arguments:X.arguments.map((Y)=>d(Y,$)),...K&&{optional:!0}}}if(X.callee.type==="Identifier")return{$expr:"call",callee:X.callee.name,arguments:X.arguments.map((H)=>d(H,$))};throw new l("Complex function calls in expressions should be lifted to statements",m(Z),$.source,$.filename)}case"NewExpression":{let X=Z,Q="constructor";if(X.callee.type==="Identifier")Q=X.callee.name;let H=s6(Q);throw new l(`The 'new' keyword is not supported in AsyncJS.${H}`,m(Z),$.source,$.filename)}case"TemplateLiteral":throw new l("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",m(Z),$.source,$.filename);default:throw new l(`Unsupported expression type in condition: ${Z.type}`,m(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 d(Z,$);let H=r(X.object,$);if(H&&typeof H==="object"&&H.$expr){let Y=X.computed?String(X.property.value):X.property.name;return{$expr:"member",object:H,property:Y,...X.computed&&{computed:!0}}}if(X.computed)return`${H}[${r(X.property,$)}]`;let K=X.property.name;if(typeof H==="string")return`${H}.${K}`;if(H&&H.$kind==="arg")return{$kind:"arg",path:`${H.path}.${K}`};return`${H}.${K}`}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 H=Q.key.type==="Identifier"?Q.key.name:String(Q.key.value);X[H]=r(Q.value,$)}return X}case"TemplateLiteral":return d(Z,$);case"CallExpression":return d(Z,$);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return d(Z,$);default:return null}}function XZ(Z,$){if(Z.arguments.length===1&&Z.arguments[0].type==="ObjectExpression"){let X=Z.arguments[0],Q={};for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q[K]=r(H.value,$)}return Q}return{args:Z.arguments.map((X)=>r(X,$))}}import{parseExpressionAt as z7}from"acorn";function QZ(Z,$){let X=$;while(X>0&&Z[X-1]!==`
44
- `)X--;if(Z.slice(X,$).includes("//"))return!0;let H=0,K=!1;while(H<$)if(!K&&Z.slice(H,H+2)==="/*")K=!0,H+=2;else if(K&&Z.slice(H,H+2)==="*/")K=!1,H+=2;else H++;return K}function HZ(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{([\s\S]*?)\}\s*\*\/|\/\*test\s*\{([\s\S]*?)\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null){let H=Q[2]||`embedded test ${$.length+1}`,K=(Q[3]||Q[4]||"").trim();$.push({description:H,body:K,line:N4(Z,Q.index)})}return $}function E4(Z){let $=[],X=[],Q=HZ(Z);$.push(...Q);let H=/test\s+(['"`])([^'"`]*)\1\s*\{|test\s*\(\s*(['"`])([^'"`]*)\3\s*\)\s*\{|test\s*\{/g,K=/mock\s*\{/g,Y=Z,z,G=[];while((z=H.exec(Z))!==null){let _=z.index;if(QZ(Z,_))continue;let U=z[2]||z[4]||`test ${$.length+1}`,q=z.index+z[0].length,I=a6(Z,q-1);if(I===-1)continue;let B=Z.slice(q,I).trim();$.push({description:U,body:B,line:N4(Z,_)}),G.push({start:_,end:I+1,desc:U})}let W=[];while((z=K.exec(Z))!==null){let _=z.index,U=z.index+z[0].length,q=a6(Z,U-1);if(q===-1)continue;let I=Z.slice(U,q).trim();X.push({body:I,line:N4(Z,_)}),W.push({start:_,end:q+1})}let J=[...G,...W].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,`
41
+ `,Y=Y.slice(0,J)+R+Y.slice(L);let V=J+R.length;Y=Y.slice(0,V)+F+Y.slice(V)}return{source:Y,polyCtorClasses:X}}function l6(Z,$=new Set){let X=/\bclass\s+(\w+)(\s+extends\s+\w+)?\s*\{/g,Q="",H=0,K;while((K=X.exec(Z))!==null){let Y=K[1],z=K[2]||"",G=K.index,W=G+K[0].length-1,J=1,L=W+1;while(L<Z.length&&J>0){let _=Z[L];if(_==="{")J++;else if(_==="}")J--;L++}if(J===0){let _=L,U=Z.slice(W,_);if(Q+=Z.slice(H,G),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) } });`;H=_}}return Q+=Z.slice(H),Q}function m6(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 i6(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 S0(Z,$={}){let X=Z,Q,H=new Set,K=new Set,Y=new Set,z={tjsEquals:!1,tjsClass:!1,tjsDate:!1,tjsNoeval:!1,tjsStandard:!1,tjsSafeEval:!1},G=Z.match(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\b/);if(G)Q=G[2],Z=Z.replace(/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*safety\s+(none|inputs|all)\s*/,"$1");let W=/^(\s*(?:\/\/[^\n]*\n|\/\*[\s\S]*?\*\/\s*)*)\s*(TjsStrict|TjsEquals|TjsClass|TjsDate|TjsNoeval|TjsStandard|TjsSafeEval)\b/,J;while(J=Z.match(W)){let R=J[2];if(R==="TjsStrict")z.tjsEquals=!0,z.tjsClass=!0,z.tjsDate=!0,z.tjsNoeval=!0,z.tjsStandard=!0;else if(R==="TjsEquals")z.tjsEquals=!0;else if(R==="TjsClass")z.tjsClass=!0;else if(R==="TjsDate")z.tjsDate=!0;else if(R==="TjsNoeval")z.tjsNoeval=!0;else if(R==="TjsStandard")z.tjsStandard=!0;else if(R==="TjsSafeEval")z.tjsSafeEval=!0;Z=Z.replace(new RegExp(`^(\\s*(?:\\/\\/[^\\n]*\\n|\\/\\*[\\s\\S]*?\\*\\/\\s*)*)\\s*${R}\\s*`),"$1")}if(z.tjsStandard)Z=E6(Z);if(Z=N6(Z),z.tjsEquals&&!$.vmTarget)Z=T6(Z);Z=S6(Z),Z=g6(Z),Z=k6(Z),Z=b6(Z),Z=v6(Z),Z=x6(Z);let{source:L,returnType:_,returnSafety:U}=N0(Z,{originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y});Z=L;let q=f6(Z);Z=q.source,Z=C6(Z);let I=h6(Z,H);Z=I.source;let M=O6(Z);Z=M.source;let B=u6(Z,$.dangerouslySkipTests);Z=B.source;let P=d6(Z,H);Z=P.source;for(let R of P.polyCtorClasses)K.add(`${R}$dispatch`);if(z.tjsClass)Z=l6(Z,P.polyCtorClasses);if(z.tjsDate)Z=m6(Z);if(z.tjsNoeval)Z=i6(Z);return Z=X0(Z,q.extensions),{source:Z,returnType:_,returnSafety:U,moduleSafety:Q,tjsModes:z,originalSource:X,requiredParams:H,unsafeFunctions:K,safeFunctions:Y,wasmBlocks:M.blocks,tests:B.tests,testErrors:B.errors,polymorphicNames:I.polymorphicNames,extensions:q.extensions}}function M1(Z,$={}){let{filename:X="<source>",colonShorthand:Q=!0,vmTarget:H=!1}=$,{source:K,returnType:Y,returnSafety:z,moduleSafety:G,originalSource:W,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:I}=Q?S0(Z,{vmTarget:H}):{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:p6.parse(K,{ecmaVersion:2022,sourceType:"module",locations:!0,allowReturnOutsideFunction:!1}),returnType:Y,returnSafety:z,moduleSafety:G,originalSource:W,requiredParams:J,unsafeFunctions:L,safeFunctions:_,wasmBlocks:U,tests:q,testErrors:I}}catch(M){let B=M.loc||{line:1,column:0};throw new Q1(M.message.replace(/\s*\(\d+:\d+\)$/,""),B,W,X)}}function k0(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 Q0(Z,$){let X={params:{}};if(!$.loc)return X;let Q=Z.substring(0,$.start),H=[...Q.matchAll(/\/\*#([\s\S]*?)\*\//g)];if(H.length>0){let J=H[H.length-1],L=Q.substring(J.index+J[0].length);if(/^(?:\s|\/\/[^\n]*)*$/.test(L)){let _=J[1],U=_.split(`
42
+ `),q=U.filter((I)=>I.trim().length>0).reduce((I,M)=>{let B=M.match(/^(\s*)/)?.[1].length||0;return Math.min(I,B)},1/0);if(q>0&&q<1/0)_=U.map((I)=>I.slice(q)).join(`
43
+ `);return X.description=_.trim(),X}}let K=Q.match(/\/\*\*[\s\S]*?\*\/\s*$/);if(!K)return X;let Y=K[0],z=Y.match(/\/\*\*\s*\n?\s*\*?\s*([^@\n][^\n]*)/m);if(z)X.description=z[1].trim();let G=/@param\s+(?:\{[^}]+\}\s+)?(\w+)\s*-?\s*(.*)/g,W;while((W=G.exec(Y))!==null)X.params[W[1]]=W[2].trim();return X}import{parseExpressionAt as x8}from"acorn";function H1(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"}};let X=$.filter((Y)=>Y!=null).map((Y)=>H1(Y));if(X.length===0)return{kind:"array",items:{kind:"any"}};let Q=new Map;for(let Y of X){let z=JSON.stringify(Y);if(!Q.has(z))Q.set(z,Y)}let H=[...Q.values()];return{kind:"array",items:H.length===1?H[0]:{kind:"union",members:H}}}case"ObjectExpression":{let $=Z.properties,X={};for(let Q of $)if(Q.type==="Property"&&Q.key.type==="Identifier"){let H=Q.key.name;X[H]=H1(Q.value)}return{kind:"object",shape:X}}case"LogicalExpression":{let{operator:$,left:X,right:Q}=Z;if($==="||")return H1(X);if($==="&&")return H1(Q);if($==="??")return H1(Q);return{kind:"any"}}case"BinaryExpression":{let{operator:$,left:X,right:Q}=Z;if($==="|"){let H=H1(X),K=H1(Q);if(K.kind==="null")return{...H,nullable:!0};if(H.kind==="null")return{...K,nullable:!0};return{kind:"union",members:[H,K]}}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 H=X.raw;if(H&&H.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 l("Only simple parameter names are supported",m(Z));let H=X.name,K=$?.has(H)??!1,Y=H1(Q),z=A1(Q);return{name:H,type:Y,required:K,default:K?null:z,example:z,loc:{start:Z.start,end:Z.end}}}if(Z.type==="ObjectPattern"){let X=Z.properties,Q={},H={};for(let K of X)if(K.type==="Property"){let Y=K.key.type==="Identifier"?K.key.name:String(K.key.value);if(K.value.type==="Identifier")Q[Y]={kind:"any"},H[Y]={name:Y,type:{kind:"any"},required:!0};else if(K.value.type==="AssignmentPattern"){let z=P1(K.value,$),G=$?.has(Y)??!1;Q[Y]=z.type,H[Y]={name:Y,type:z.type,required:G,default:G?null:z.example,example:z.example}}}return{name:"__destructured__",type:{kind:"object",shape:Q,destructuredParams:H},required:!0}}throw new l(`Unsupported parameter pattern: ${Z.type}`,m(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 n6(Z){try{let $=x8(Z,0,{ecmaVersion:2022});return H1($)}catch{return{kind:"any"}}}function O4(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?O4(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}: ${O4(Q)}`).join(", ");return Z.nullable?`{ ${$} } | null`:`{ ${$} }`}case"union":return Z.members?.map(O4).join(" | ")||"any";default:return"any"}}function g0(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?g0(Z.items):{}};case"object":if(Z.shape){let $={};for(let[X,Q]of Object.entries(Z.shape))$[X]=g0(Q);return{type:"object",properties:$,additionalProperties:!1}}return{type:"object"};case"union":if(Z.members)return{oneOf:Z.members.map(g0)};return{};default:return{}}}function u8(Z){let $={},X=[];for(let[Q,H]of Object.entries(Z))if($[Q]=g0(H.type),H.required)X.push(Q);return{type:"object",properties:$,required:X.length>0?X:void 0,additionalProperties:!1}}function Y0(Z,$,X,Q={},H){let K=Q0($,Z),Y=new Map;for(let M of Z.params){let B=P1(M,H);if(B.name==="__destructured__"&&B.type.kind==="object"&&B.type.destructuredParams)for(let[P,R]of Object.entries(B.type.destructuredParams))Y.set(P,{...R,description:K.params[P]});else B.description=K.params[B.name],Y.set(B.name,B)}let z;if(X)z=n6(X);let G={depth:0,locals:new Map,parameters:Y,atoms:new Set(Object.keys(Q.atoms||{})),warnings:[],source:$,filename:Q.filename||"<source>",options:Q},W=I1(Z.body,G),J=[],L=[],_=[];for(let[M,B]of Y.entries())if(B.required)L.push(M);else if(B.default!==void 0)_.push({name:M,defaultValue:B.default});else L.push(M);if(L.length>0)J.push({op:"varsImport",keys:L});for(let{name:M,defaultValue:B}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:B}]});J.push(...W);let U=Object.fromEntries(Y),q={name:Z.id?.name||"anonymous",description:K.description,parameters:U,returns:z},I=u8(U);return{ast:{op:"seq",steps:J,inputSchema:I},signature:q,warnings:G.warnings}}function I1(Z,$){let X=[];for(let Q of Z.body){let H=H0(Q,$);if(H)if(Array.isArray(H))X.push(...H);else X.push(H)}return X}function H0(Z,$){switch(Z.type){case"VariableDeclaration":return d8(Z,$);case"ExpressionStatement":return l8(Z,$);case"IfStatement":return i8(Z,$);case"WhileStatement":return p8(Z,$);case"ForOfStatement":return n8(Z,$);case"TryStatement":return c8(Z,$);case"ReturnStatement":return o8(Z,$);case"ThrowStatement":throw new l("'throw' is not supported in AsyncJS. Use Error('message') to trigger error flow",m(Z),$.source,$.filename);case"BlockStatement":return{op:"scope",steps:I1(Z,G1($))};case"EmptyStatement":return null;default:throw new l(`Unsupported statement type: ${Z.type}`,m(Z),$.source,$.filename)}}function d8(Z,$){let X=[],Q=Z.kind==="const",H=Q?"constSet":"varSet";for(let K of Z.declarations){if(K.id.type!=="Identifier")throw new l("Only simple variable names are supported",m(K),$.source,$.filename);let Y=K.id.name;if(K.init){let{step:z,resultVar:G}=S1(K.init,$,Y,Q);if(z)X.push(z);else if(G!==Y)X.push({op:H,key:Y,value:G});let W=H1(K.init);$.locals.set(Y,W)}else{if(Q)throw new l("const declarations must be initialized",m(K),$.source,$.filename);X.push({op:"varSet",key:Y,value:null}),$.locals.set(Y,{kind:"any",nullable:!0})}}return X}function l8(Z,$){let X=Z.expression;if(X.type==="AssignmentExpression")return m8(X,$);if(X.type==="CallExpression"){let{step:Q,resultVar:H}=S1(X,$);if(Q)return Q;if(H)return{op:"varSet",key:"_",value:H};return null}return $.warnings.push({message:"Expression statement has no effect",line:m(Z).line,column:m(Z).column}),null}function m8(Z,$){if(Z.left.type!=="Identifier")throw new l("Only simple variable assignment is supported",m(Z),$.source,$.filename);let X=Z.left.name,{step:Q,resultVar:H}=S1(Z.right,$,X);if(Q)return Q;return{op:"varSet",key:X,value:H}}function i8(Z,$){let X=d(Z.test,$),Q=Z.consequent.type==="BlockStatement"?I1(Z.consequent,G1($)):[H0(Z.consequent,$)].filter(Boolean),H;if(Z.alternate)H=Z.alternate.type==="BlockStatement"?I1(Z.alternate,G1($)):[H0(Z.alternate,$)].filter(Boolean);return{op:"if",condition:X,then:Q,...H&&{else:H}}}function p8(Z,$){let X=d(Z.test,$),Q=Z.body.type==="BlockStatement"?I1(Z.body,G1($)):[H0(Z.body,$)].filter(Boolean);return{op:"while",condition:X,body:Q}}function n8(Z,$){let X;if(Z.left.type==="VariableDeclaration"){let Y=Z.left.declarations[0];if(Y.id.type!=="Identifier")throw new l("Only simple variable names are supported in for...of",m(Z.left),$.source,$.filename);X=Y.id.name}else if(Z.left.type==="Identifier")X=Z.left.name;else throw new l("Unsupported for...of left-hand side",m(Z.left),$.source,$.filename);let Q=r(Z.right,$),H=G1($);H.locals.set(X,{kind:"any"});let K=Z.body.type==="BlockStatement"?I1(Z.body,H):[H0(Z.body,H)].filter(Boolean);return{op:"map",items:Q,as:X,steps:K}}function c8(Z,$){let X=I1(Z.block,G1($)),Q,H;if(Z.handler){let K=G1($);if(Z.handler.param?.type==="Identifier")H=Z.handler.param.name,K.locals.set(H,{kind:"any"});Q=I1(Z.handler.body,K)}return{op:"try",try:X,...Q&&{catch:Q},...H&&{catchParam:H}}}function o8(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 o6=new Set(["Math","JSON","Array","Object","String","Number","console","Date","Schema"]),s8=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"]),a8=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 r8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;return s8.has($)||K0.has($)}if(Z.callee.type==="MemberExpression"){let $=Z.callee;if($.object.type==="Identifier"){let X=$.object.name;if(o6.has(X)||K0.has(X))return!0}if($.property.type==="Identifier"){let X=$.property.name;if(a8.has(X))return!0}}return!1}function t8(Z){if(Z.object.type==="Identifier"){let $=Z.object.name;return o6.has($)||K0.has($)}return!1}var c6={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 e8(Z){if(Z.callee.type==="Identifier"){let $=Z.callee.name;if(K0.has($))return c6[$]||`${$} 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 c6[X]||`${X} is not available in AsyncJS.`}}return null}function s6(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 H=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 G=s6(z);throw new l(`The 'new' keyword is not supported in AsyncJS.${G}`,m(Z),$.source,$.filename)}if(Z.type==="CallExpression"){let Y=e8(Z);if(Y)throw new l(Y,m(Z),$.source,$.filename)}if(Z.type==="CallExpression"&&r8(Z)){let Y=d(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="MemberExpression"&&t8(Z)){let Y=d(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}if(Z.type==="CallExpression")return ZZ(Z,$,X,Q);if(Z.type==="TemplateLiteral")return XZ(Z,$,X,Q);if(Z.type==="BinaryExpression"||Z.type==="LogicalExpression"||Z.type==="UnaryExpression"){let Y=d(Z,$);if(X)return{step:{op:H,key:X,value:Y},resultVar:X};return{step:null,resultVar:Y}}return{step:null,resultVar:r(Z,$)}}function ZZ(Z,$,X,Q){let H,K=!1,Y;if(Z.callee.type==="Identifier")H=Z.callee.name;else if(Z.callee.type==="MemberExpression"){let G=Z.callee;if(G.property.type==="Identifier")H=G.property.name,K=!0,Y=r(G.object,$);else throw new l("Computed method names are not supported",m(Z),$.source,$.filename)}else throw new l("Only named function calls are supported",m(Z),$.source,$.filename);if(K)return $Z(H,Y,Z.arguments,$,X,Q);if(H==="console"&&Z.callee.type==="MemberExpression");let z=QZ(Z,$);return{step:{op:H,...z,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function $Z(Z,$,X,Q,H,K){switch(Z){case"map":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=z?.type==="Identifier"?z.name:"item",W=G1(Q);W.locals.set(G,{kind:"any"});let J;if(Y.body.type==="BlockStatement")J=I1(Y.body,W);else{let{step:L,resultVar:_}=S1(Y.body,W,"result");J=L?[L]:[{op:"varSet",key:"result",value:_}]}return{step:{op:"map",items:$,as:G,steps:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"filter":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=z?.type==="Identifier"?z.name:"item",W=G1(Q);W.locals.set(G,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new l("filter callback must be an expression, not a block",m(X[0]),Q.source,Q.filename);else J=d(Y.body,W);return{step:{op:"filter",items:$,as:G,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"find":if(X.length>0&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=z?.type==="Identifier"?z.name:"item",W=G1(Q);W.locals.set(G,{kind:"any"});let J;if(Y.body.type==="BlockStatement")throw new l("find callback must be an expression, not a block",m(X[0]),Q.source,Q.filename);else J=d(Y.body,W);return{step:{op:"find",items:$,as:G,condition:J,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"reduce":if(X.length>=2&&(X[0].type==="ArrowFunctionExpression"||X[0].type==="FunctionExpression")){let Y=X[0],z=Y.params[0],G=Y.params[1],W=z?.type==="Identifier"?z.name:"acc",J=G?.type==="Identifier"?G.name:"item",L=G1(Q);L.locals.set(W,{kind:"any"}),L.locals.set(J,{kind:"any"});let _;if(Y.body.type==="BlockStatement")_=I1(Y.body,L);else{let{step:q,resultVar:I}=S1(Y.body,L,"result");_=q?[q]:[{op:"varSet",key:"result",value:I}]}let U=r(X[1],Q);return{step:{op:"reduce",items:$,as:J,accumulator:W,initial:U,steps:_,...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}break;case"slice":break;case"push":return{step:{op:"push",list:$,item:r(X[0],Q),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"join":return{step:{op:"join",list:$,sep:X.length>0?r(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H};case"split":return{step:{op:"split",str:$,sep:X.length>0?r(X[0],Q):"",...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}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)),...H&&{result:H},...H&&K&&{resultConst:!0}},resultVar:H}}function XZ(Z,$,X,Q){let H="",K={};for(let Y=0;Y<Z.quasis.length;Y++)if(H+=Z.quasis[Y].value.cooked||Z.quasis[Y].value.raw,Y<Z.expressions.length){let z=Z.expressions[Y],G=`_${Y}`;K[G]=r(z,$),H+=`{{${G}}}`}return{step:{op:"template",tmpl:H,vars:K,...X&&{result:X},...X&&Q&&{resultConst:!0}},resultVar:X}}function d(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=d(X.object,$),H=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,...H&&{optional:!0}};throw new l("Computed member access with variables not yet supported",m(Z),$.source,$.filename)}let K=X.property.name;return{$expr:"member",object:Q,property:K,...H&&{optional:!0}}}case"ChainExpression":return d(Z.expression,$);case"BinaryExpression":{let X=Z;return{$expr:"binary",op:X.operator,left:d(X.left,$),right:d(X.right,$)}}case"LogicalExpression":{let X=Z;return{$expr:"logical",op:X.operator,left:d(X.left,$),right:d(X.right,$)}}case"UnaryExpression":{let X=Z;return{$expr:"unary",op:X.operator,argument:d(X.argument,$)}}case"ConditionalExpression":{let X=Z;return{$expr:"conditional",test:d(X.test,$),consequent:d(X.consequent,$),alternate:d(X.alternate,$)}}case"ArrayExpression":return{$expr:"array",elements:Z.elements.filter((Q)=>Q!==null).map((Q)=>d(Q,$))};case"ObjectExpression":{let X=Z,Q=[];for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q.push({key:K,value:d(H.value,$)})}return{$expr:"object",properties:Q}}case"CallExpression":{let X=Z;if(X.callee.type==="MemberExpression"){let Q=X.callee,H=Q.property.type==="Identifier"?Q.property.name:String(Q.property.value),K=Q.optional===!0||X.optional===!0;return{$expr:"methodCall",object:d(Q.object,$),method:H,arguments:X.arguments.map((Y)=>d(Y,$)),...K&&{optional:!0}}}if(X.callee.type==="Identifier")return{$expr:"call",callee:X.callee.name,arguments:X.arguments.map((H)=>d(H,$))};throw new l("Complex function calls in expressions should be lifted to statements",m(Z),$.source,$.filename)}case"NewExpression":{let X=Z,Q="constructor";if(X.callee.type==="Identifier")Q=X.callee.name;let H=s6(Q);throw new l(`The 'new' keyword is not supported in AsyncJS.${H}`,m(Z),$.source,$.filename)}case"TemplateLiteral":throw new l("Template literals inside expressions are not supported. Assign to a variable first: const msg = `hello ${name}`; then use msg",m(Z),$.source,$.filename);default:throw new l(`Unsupported expression type in condition: ${Z.type}`,m(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 d(Z,$);let H=r(X.object,$);if(H&&typeof H==="object"&&H.$expr){let Y=X.computed?String(X.property.value):X.property.name;return{$expr:"member",object:H,property:Y,...X.computed&&{computed:!0}}}if(X.computed)return`${H}[${r(X.property,$)}]`;let K=X.property.name;if(typeof H==="string")return`${H}.${K}`;if(H&&H.$kind==="arg")return{$kind:"arg",path:`${H.path}.${K}`};return`${H}.${K}`}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 H=Q.key.type==="Identifier"?Q.key.name:String(Q.key.value);X[H]=r(Q.value,$)}return X}case"TemplateLiteral":return d(Z,$);case"CallExpression":return d(Z,$);case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"ConditionalExpression":return d(Z,$);default:return null}}function QZ(Z,$){if(Z.arguments.length===1&&Z.arguments[0].type==="ObjectExpression"){let X=Z.arguments[0],Q={};for(let H of X.properties)if(H.type==="Property"){let K=H.key.type==="Identifier"?H.key.name:String(H.key.value);Q[K]=r(H.value,$)}return Q}return{args:Z.arguments.map((X)=>r(X,$))}}import{parseExpressionAt as z7}from"acorn";function HZ(Z,$){let X=$;while(X>0&&Z[X-1]!==`
44
+ `)X--;if(Z.slice(X,$).includes("//"))return!0;let H=0,K=!1;while(H<$)if(!K&&Z.slice(H,H+2)==="/*")K=!0,H+=2;else if(K&&Z.slice(H,H+2)==="*/")K=!1,H+=2;else H++;return K}function KZ(Z){let $=[],X=/\/\*test\s+(['"`])([^'"`]*)\1\s*\{([\s\S]*?)\}\s*\*\/|\/\*test\s*\{([\s\S]*?)\}\s*\*\//g,Q;while((Q=X.exec(Z))!==null){let H=Q[2]||`embedded test ${$.length+1}`,K=(Q[3]||Q[4]||"").trim();$.push({description:H,body:K,line:N4(Z,Q.index)})}return $}function E4(Z){let $=[],X=[],Q=KZ(Z);$.push(...Q);let H=/test\s+(['"`])([^'"`]*)\1\s*\{|test\s*\(\s*(['"`])([^'"`]*)\3\s*\)\s*\{|test\s*\{/g,K=/mock\s*\{/g,Y=Z,z,G=[];while((z=H.exec(Z))!==null){let _=z.index;if(HZ(Z,_))continue;let U=z[2]||z[4]||`test ${$.length+1}`,q=z.index+z[0].length,I=a6(Z,q-1);if(I===-1)continue;let M=Z.slice(q,I).trim();$.push({description:U,body:M,line:N4(Z,_)}),G.push({start:_,end:I+1,desc:U})}let W=[];while((z=K.exec(Z))!==null){let _=z.index,U=z.index+z[0].length,q=a6(Z,U-1);if(q===-1)continue;let I=Z.slice(U,q).trim();X.push({body:I,line:N4(Z,_)}),W.push({start:_,end:q+1})}let J=[...G,...W].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,`
45
45
 
46
- `).trim();let L=KZ($,X);return{code:Y,tests:$,mocks:X,testRunner:L}}function a6(Z,$){let X=0,Q=null,H=!1;for(let K=$;K<Z.length;K++){let Y=Z[K];if(H){H=!1;continue}if(Y==="\\"){H=!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 K}}return-1}function N4(Z,$){return Z.slice(0,$).split(`
47
- `).length}function KZ(Z,$){if(Z.length===0)return"// No tests defined";let X=$.map((H)=>H.body).join(`
46
+ `).trim();let L=YZ($,X);return{code:Y,tests:$,mocks:X,testRunner:L}}function a6(Z,$){let X=0,Q=null,H=!1;for(let K=$;K<Z.length;K++){let Y=Z[K];if(H){H=!1;continue}if(Y==="\\"){H=!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 K}}return-1}function N4(Z,$){return Z.slice(0,$).split(`
47
+ `).length}function YZ(Z,$){if(Z.length===0)return"// No tests defined";let X=$.map((H)=>H.body).join(`
48
48
  `);return`(async () => {
49
49
  const __results = []
50
50
 
@@ -164,42 +164,42 @@ function expect(actual) {
164
164
  }
165
165
  }
166
166
  }
167
- `,YZ=r6+`
168
- `+t6;function zZ(Z,$,X=0.000000001){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"){if(!Number.isInteger(Z)||!Number.isInteger($)){let Q=Math.abs(Z-$),H=Math.max(Math.abs(Z),Math.abs($),1);return Q/H<X}}return!1}function T4(Z,$){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"&&Number.isNaN(Z)&&Number.isNaN($))return!0;if(zZ(Z,$))return!0;if(Z===null||$===null)return Z===$;if(Z===void 0||$===void 0)return Z===$;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((H,K)=>T4(H,$[K]))}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((H)=>T4(Z[H],$[H]))}function S4(Z,$,X=""){if($===null){if(Z===null)return{matches:!0};return{matches:!1,error:`Expected null at '${X}', got ${k1(Z)}`}}if($===void 0){if(Z===void 0)return{matches:!0};return{matches:!1,error:`Expected undefined at '${X}', got ${k1(Z)}`}}if(typeof $==="number"){if(typeof Z==="number")return{matches:!0};return{matches:!1,error:`Expected number at '${X}', got ${k1(Z)}`}}if(typeof $==="string"){if(typeof Z==="string")return{matches:!0};return{matches:!1,error:`Expected string at '${X}', got ${k1(Z)}`}}if(typeof $==="boolean"){if(typeof Z==="boolean")return{matches:!0};return{matches:!1,error:`Expected boolean at '${X}', got ${k1(Z)}`}}if(Array.isArray($)){if(!Array.isArray(Z))return{matches:!1,error:`Expected array at '${X}', got ${k1(Z)}`};if($.length===0)return{matches:!0};let Q=$[0];for(let H=0;H<Z.length;H++){let K=S4(Z[H],Q,`${X}[${H}]`);if(!K.matches)return K}return{matches:!0}}if(typeof $==="object"&&$!==null){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return{matches:!1,error:`Expected object at '${X}', got ${k1(Z)}`};for(let Q of Object.keys($)){let H=X?`${X}.${Q}`:Q;if(!(Q in Z))return{matches:!1,error:`Missing property '${H}'`};let K=S4(Z[Q],$[Q],H);if(!K.matches)return K}return{matches:!0}}if(Z===$)return{matches:!0};return{matches:!1,error:`Type mismatch at '${X}'`}}function k1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function z0(Z,$=0){if(Z===null)return"null";if(Z===void 0)return"undefined";if(typeof Z==="string")return JSON.stringify(Z);if(typeof Z==="number")return String(Z);if(typeof Z==="boolean")return String(Z);if(Array.isArray(Z)){if(Z.length===0)return"[]";if(Z.length<=3)return`[${Z.map((X)=>z0(X,$)).join(", ")}]`;return`[${Z.slice(0,3).map((X)=>z0(X,$)).join(", ")}, ...]`}if(typeof Z==="object"){let X=Object.entries(Z);if(X.length===0)return"{}";let Q=(G)=>/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(G)?G:JSON.stringify(G);if(X.length<=2)return`{${X.map(([W,J])=>`${Q(W)}: ${z0(J,$)}`).join(", ")}}`;let H=" ".repeat($+1),K=" ".repeat($),Y=X.slice(0,8).map(([G,W])=>`${H}${Q(G)}: ${z0(W,$+1)}`).join(`,
167
+ `,zZ=r6+`
168
+ `+t6;function GZ(Z,$,X=0.000000001){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"){if(!Number.isInteger(Z)||!Number.isInteger($)){let Q=Math.abs(Z-$),H=Math.max(Math.abs(Z),Math.abs($),1);return Q/H<X}}return!1}function T4(Z,$){if(Z===$)return!0;if(typeof Z==="number"&&typeof $==="number"&&Number.isNaN(Z)&&Number.isNaN($))return!0;if(GZ(Z,$))return!0;if(Z===null||$===null)return Z===$;if(Z===void 0||$===void 0)return Z===$;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((H,K)=>T4(H,$[K]))}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((H)=>T4(Z[H],$[H]))}function S4(Z,$,X=""){if($===null){if(Z===null)return{matches:!0};return{matches:!1,error:`Expected null at '${X}', got ${k1(Z)}`}}if($===void 0){if(Z===void 0)return{matches:!0};return{matches:!1,error:`Expected undefined at '${X}', got ${k1(Z)}`}}if(typeof $==="number"){if(typeof Z==="number")return{matches:!0};return{matches:!1,error:`Expected number at '${X}', got ${k1(Z)}`}}if(typeof $==="string"){if(typeof Z==="string")return{matches:!0};return{matches:!1,error:`Expected string at '${X}', got ${k1(Z)}`}}if(typeof $==="boolean"){if(typeof Z==="boolean")return{matches:!0};return{matches:!1,error:`Expected boolean at '${X}', got ${k1(Z)}`}}if(Array.isArray($)){if(!Array.isArray(Z))return{matches:!1,error:`Expected array at '${X}', got ${k1(Z)}`};if($.length===0)return{matches:!0};let Q=$[0];for(let H=0;H<Z.length;H++){let K=S4(Z[H],Q,`${X}[${H}]`);if(!K.matches)return K}return{matches:!0}}if(typeof $==="object"&&$!==null){if(typeof Z!=="object"||Z===null||Array.isArray(Z))return{matches:!1,error:`Expected object at '${X}', got ${k1(Z)}`};for(let Q of Object.keys($)){let H=X?`${X}.${Q}`:Q;if(!(Q in Z))return{matches:!1,error:`Missing property '${H}'`};let K=S4(Z[Q],$[Q],H);if(!K.matches)return K}return{matches:!0}}if(Z===$)return{matches:!0};return{matches:!1,error:`Type mismatch at '${X}'`}}function k1(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function z0(Z,$=0){if(Z===null)return"null";if(Z===void 0)return"undefined";if(typeof Z==="string")return JSON.stringify(Z);if(typeof Z==="number")return String(Z);if(typeof Z==="boolean")return String(Z);if(Array.isArray(Z)){if(Z.length===0)return"[]";if(Z.length<=3)return`[${Z.map((X)=>z0(X,$)).join(", ")}]`;return`[${Z.slice(0,3).map((X)=>z0(X,$)).join(", ")}, ...]`}if(typeof Z==="object"){let X=Object.entries(Z);if(X.length===0)return"{}";let Q=(G)=>/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(G)?G:JSON.stringify(G);if(X.length<=2)return`{${X.map(([W,J])=>`${Q(W)}: ${z0(J,$)}`).join(", ")}}`;let H=" ".repeat($+1),K=" ".repeat($),Y=X.slice(0,8).map(([G,W])=>`${H}${Q(G)}: ${z0(W,$+1)}`).join(`,
169
169
  `),z=X.length>8?`,
170
170
  ${H}...`:"";return`{
171
171
  ${Y}${z}
172
- ${K}}`}return String(Z)}function GZ(Z){let $=Z.replace(/\/\*[\s\S]*?\*\//g,(X)=>{let Q=X.split(`
172
+ ${K}}`}return String(Z)}function WZ(Z){let $=Z.replace(/\/\*[\s\S]*?\*\//g,(X)=>{let Q=X.split(`
173
173
  `).length-1;return`
174
- `.repeat(Q)});return $=$.replace(/\/\/[^\n]*/g,""),$}function g0(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 b0(Z){let $=Z.replace(/^const __tjs = globalThis\.__tjs\?\.createRuntime\?\.\(\) \?\? globalThis\.__tjs;\n?/m,"");return $=$.replace(/^const \{ (?:Is|IsNot|Is, IsNot) \} = __tjs \?\? \{\};\n?/m,""),$}function WZ(Z){if(Object.keys(Z).length===0)return"";let $=[];for(let[X,Q]of Object.entries(Z)){let H=g0(Q);H=b0(H),$.push(`// Resolved import: ${X}`),$.push(H)}return $.join(`
175
- `)}function JZ(Z){let $={},X=Z.trim();if(!X.startsWith("{")||!X.includes("="))try{return{pattern:Function(`return ${Z}`)(),defaults:$}}catch{return null}let Q="",H=0,K=0;while(K<X.length){let Y=X[K];if(Y==="{"||Y==="["||Y==="(")H++,Q+=Y,K++;else if(Y==="}"||Y==="]"||Y===")")H--,Q+=Y,K++;else if(Y==="'"||Y==='"'||Y==="`"){let z=Y;Q+=Y,K++;while(K<X.length&&X[K]!==z){if(X[K]==="\\")Q+=X[K++];Q+=X[K++]}if(K<X.length)Q+=X[K++]}else if(H===1&&Y==="="){let W=(Q.slice(Q.lastIndexOf("{")+1).split(",").pop()||"").match(/\s*(\w+)\s*$/);if(W){let J=K+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{$[W[1]]=Function(`return ${L.trim()}`)()}catch{}Q+=":",K++;continue}Q+=Y,K++}else Q+=Y,K++}try{return{pattern:Function(`return ${Q}`)(),defaults:$}}catch{return null}}function e6(Z){let $=[],X=GZ(Z),Q=/(async\s+)?function\s+(\w+)\s*\(([^)]*)\)\s*(-[>?])\s*/g,H;while((H=Q.exec(X))!==null){let K=!!H[1],Y=H[2],z=H[3],G=H[4],W=X.slice(0,H.index).split(`
176
- `).length;if(G==="-!")continue;let J=X.slice(H.index+H[0].length),L=k4(J);if(!L)continue;let _=_Z(z);if(z.trim()&&_.length===0)continue;try{let U=JZ(L);if(!U)continue;let q=_.map((I)=>Function(`return ${I}`)());$.push({funcName:Y,args:q,expected:U.pattern,defaults:Object.keys(U.defaults).length>0?U.defaults:void 0,line:W,isAsync:K})}catch{}}return $}function Z7(Z,$,X,Q,H={},K=new Map){let Y=[];if(Z.length===0&&X.length===0)return Y;let z=Q.match(/^import\s+.*?from\s+['"]([^'"]+)['"];?\s*$/gm)||[],G=z.length>0&&z.some((w)=>{let F=w.match(/from\s+['"]([^'"]+)['"]/);return F&&!(F[1]in H)}),W=g0(Q);W=b0(W);let J=WZ(H),L=$.map((w)=>w.body).join(`
177
- `),_=Z.map((w,F)=>{let M=K.size>0?X0(w.body,K):w.body;return`
178
- // Test ${F}: ${w.description}
174
+ `.repeat(Q)});return $=$.replace(/\/\/[^\n]*/g,""),$}function b0(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 v0(Z){let $=Z.replace(/^const __tjs = globalThis\.__tjs\?\.createRuntime\?\.\(\) \?\? globalThis\.__tjs;\n?/m,"");return $=$.replace(/^const \{ (?:Is|IsNot|Is, IsNot) \} = __tjs \?\? \{\};\n?/m,""),$}function JZ(Z){if(Object.keys(Z).length===0)return"";let $=[];for(let[X,Q]of Object.entries(Z)){let H=b0(Q);H=v0(H),$.push(`// Resolved import: ${X}`),$.push(H)}return $.join(`
175
+ `)}function _Z(Z){let $={},X=Z.trim();if(!X.startsWith("{")||!X.includes("="))try{return{pattern:Function(`return ${Z}`)(),defaults:$}}catch{return null}let Q="",H=0,K=0;while(K<X.length){let Y=X[K];if(Y==="{"||Y==="["||Y==="(")H++,Q+=Y,K++;else if(Y==="}"||Y==="]"||Y===")")H--,Q+=Y,K++;else if(Y==="'"||Y==='"'||Y==="`"){let z=Y;Q+=Y,K++;while(K<X.length&&X[K]!==z){if(X[K]==="\\")Q+=X[K++];Q+=X[K++]}if(K<X.length)Q+=X[K++]}else if(H===1&&Y==="="){let W=(Q.slice(Q.lastIndexOf("{")+1).split(",").pop()||"").match(/\s*(\w+)\s*$/);if(W){let J=K+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{$[W[1]]=Function(`return ${L.trim()}`)()}catch{}Q+=":",K++;continue}Q+=Y,K++}else Q+=Y,K++}try{return{pattern:Function(`return ${Q}`)(),defaults:$}}catch{return null}}function e6(Z){let $=[],X=WZ(Z),Q=/(async\s+)?function\s+(\w+)\s*\(([^)]*)\)\s*(-[>?])\s*/g,H;while((H=Q.exec(X))!==null){let K=!!H[1],Y=H[2],z=H[3],G=H[4],W=X.slice(0,H.index).split(`
176
+ `).length;if(G==="-!")continue;let J=X.slice(H.index+H[0].length),L=k4(J);if(!L)continue;let _=LZ(z);if(z.trim()&&_.length===0)continue;try{let U=_Z(L);if(!U)continue;let q=_.map((I)=>Function(`return ${I}`)());$.push({funcName:Y,args:q,expected:U.pattern,defaults:Object.keys(U.defaults).length>0?U.defaults:void 0,line:W,isAsync:K})}catch{}}return $}function Z7(Z,$,X,Q,H={},K=new Map){let Y=[];if(Z.length===0&&X.length===0)return Y;let z=Q.match(/^import\s+.*?from\s+['"]([^'"]+)['"];?\s*$/gm)||[],G=z.length>0&&z.some((R)=>{let F=R.match(/from\s+['"]([^'"]+)['"]/);return F&&!(F[1]in H)}),W=b0(Q);W=v0(W);let J=JZ(H),L=$.map((R)=>R.body).join(`
177
+ `),_=Z.map((R,F)=>{let w=K.size>0?X0(R.body,K):R.body;return`
178
+ // Test ${F}: ${R.description}
179
179
  try {
180
- ${M}
180
+ ${w}
181
181
  __testResults.push({ idx: ${F}, passed: true });
182
182
  } catch (e) {
183
183
  __testResults.push({ idx: ${F}, passed: false, error: e.message || String(e) });
184
184
  }
185
185
  `}).join(`
186
- `),U=X.filter((w)=>!w.isAsync),q=X.filter((w)=>w.isAsync),I=U.map((w,F)=>`
187
- // Signature test ${F}: ${w.funcName}
186
+ `),U=X.filter((R)=>!R.isAsync),q=X.filter((R)=>R.isAsync),I=U.map((R,F)=>`
187
+ // Signature test ${F}: ${R.funcName}
188
188
  try {
189
- let __actual = ${w.funcName}(${w.args.map((M)=>JSON.stringify(M)).join(", ")});
190
- const __expected = ${JSON.stringify(w.expected)};${w.defaults?`
191
- const __defaults = ${JSON.stringify(w.defaults)};
189
+ let __actual = ${R.funcName}(${R.args.map((w)=>JSON.stringify(w)).join(", ")});
190
+ const __expected = ${JSON.stringify(R.expected)};${R.defaults?`
191
+ const __defaults = ${JSON.stringify(R.defaults)};
192
192
  if (typeof __actual === 'object' && __actual !== null) __actual = Object.assign({}, __defaults, __actual);`:""}
193
193
  if (__deepEqual(__actual, __expected)) {
194
194
  __sigTestResults.push({ idx: ${F}, passed: true });
195
195
  } else {
196
- __sigTestResults.push({ idx: ${F}, passed: false, error: 'Expected ' + __format(__expected) + ' at \\'${w.funcName}\\', got ' + __format(__actual) });
196
+ __sigTestResults.push({ idx: ${F}, passed: false, error: 'Expected ' + __format(__expected) + ' at \\'${R.funcName}\\', got ' + __format(__actual) });
197
197
  }
198
198
  } catch (e) {
199
199
  __sigTestResults.push({ idx: ${F}, passed: false, error: e.message || String(e) });
200
200
  }
201
201
  `).join(`
202
- `),C=`
202
+ `),P=`
203
203
  ${`
204
204
  const __saved_tjs = globalThis.__tjs;
205
205
  class __MonadicError extends Error { constructor(m,p,e,a,c){super(m);this.name='MonadicError';this.path=p;this.expected=e;this.actual=a;this.callStack=c;} }
@@ -286,8 +286,8 @@ ${K}}`}return String(Z)}function GZ(Z){let $=Z.replace(/\/\*[\s\S]*?\*\//g,(X)=>
286
286
  ${"globalThis.__tjs = __saved_tjs;"}
287
287
  }
288
288
  return { testResults: __testResults, sigTestResults: __sigTestResults };
289
- `;try{let w=Function("__deepEqual","__format","__typeMatches",C),{testResults:F,sigTestResults:M}=w(T4,z0,S4);for(let P of F){let V=Z[P.idx],O=G&&!P.passed&&P.error&&/is not defined$/.test(P.error);Y.push({description:V.description,passed:O?!0:P.passed,error:O?void 0:P.error,line:V.line})}for(let P of M){let V=U[P.idx],O=G&&!P.passed&&P.error&&/is not defined$/.test(P.error);Y.push({description:`${V.funcName} signature example`,passed:O?!0:P.passed,error:O?void 0:P.error,isSignatureTest:!0,line:V.line})}}catch(w){let F=G&&w instanceof ReferenceError;for(let M of Z)Y.push({description:M.description,passed:F,error:F?void 0:`Module execution failed: ${w.message}`,line:M.line});for(let M of U)Y.push({description:`${M.funcName} signature example`,passed:F,error:F?void 0:`Module execution failed: ${w.message}`,isSignatureTest:!0,line:M.line})}for(let w of q)Y.push({description:`${w.funcName} signature example`,passed:!0,isSignatureTest:!0,line:w.line});return Y}function k4(Z){let $="",X=0,Q=!1;for(let K=0;K<Z.length;K++){let Y=Z[K];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 _Z(Z){if(!Z.trim())return[];let $=[],X=LZ(Z);for(let Q of X){let H=Q.trim(),K=H.match(/^\.\.\.(\w+)\s*[:=]\s*(\[.+\])$/);if(K){try{let z=Function(`return ${K[2]}`)();if(Array.isArray(z))for(let G of z)$.push(JSON.stringify(G))}catch{}continue}if(H.startsWith("..."))continue;let Y=H.match(/(?:\(\s*[?!]\s*)?(\w+)\s*[:=]\s*(.+?)(?:\))?$/);if(Y)$.push(Y[2].trim());else return[]}return $}function LZ(Z){let $=[],X="",Q=0;for(let H of Z){if(H==="("||H==="["||H==="{")Q++;else if(H===")"||H==="]"||H==="}")Q--;else if(H===","&&Q===0){$.push(X.trim()),X="";continue}X+=H}if(X.trim())$.push(X.trim());return $}import*as X7 from"acorn";var q1={i32:127,i64:126,f32:125,f64:124,v128:123,funcref:112,externref:111,void:64},G0={custom:0,type:1,import:2,function:3,table:4,memory:5,global:6,export:7,start:8,element:9,code:10,data:11},D={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},UZ=Object.fromEntries(Object.entries(D).map(([Z,$])=>[$,Z.replace(/_/g,".")])),J0=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},qZ=Object.fromEntries(Object.entries(t).map(([Z,$])=>[$,Z.replace(/_/g,".")]));function g4(Z){return[J0,...y(Z)]}function $7(Z,$,X){return[J0,...y(Z),...y($),...y(X)]}function y(Z){let $=[];do{let X=Z&127;if(Z>>>=7,Z!==0)X|=128;$.push(X)}while(Z!==0);return $}function _0(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 v4(Z){let $=new ArrayBuffer(4);return new Float32Array($)[0]=Z,[...new Uint8Array($)]}function W1(Z){let $=new ArrayBuffer(8);return new Float64Array($)[0]=Z,[...new Uint8Array($)]}function b4(Z){let $=new TextEncoder().encode(Z);return[...y($.length),...$]}function W0(Z,$){return[Z,...y($.length),...$]}function V1(Z,$){let X=0,Q=0,H=$;while(H<Z.length){let K=Z[H];if(X|=(K&127)<<Q,H++,(K&128)===0)break;Q+=7}return[X,H-$]}function DZ(Z,$){let X=new ArrayBuffer(8),Q=new Uint8Array(X);for(let H=0;H<8;H++)Q[H]=Z[$+H];return new Float64Array(X)[0]}function AZ(Z,$,X){let Q=[],H=1,K=()=>" ".repeat(H),Y=$.map((W,J)=>`(param $${W.name} ${W.type})`).join(" "),z=X.map((W,J)=>`(local $L${$.length+J} ${W})`).join(" ");if(Q.push(`(func (export "compute") ${Y} (result f64)`),z)Q.push(` ${z}`);let G=0;while(G<Z.length){let W=Z[G],J=UZ[W]||`unknown(0x${W.toString(16)})`;if(G++,W===D.local_get||W===D.local_set||W===D.local_tee){let[L,_]=V1(Z,G);G+=_;let U=L<$.length?`$${$[L].name}`:`$L${L}`;Q.push(`${K()}${J} ${U}`)}else if(W===D.br||W===D.br_if){let[L,_]=V1(Z,G);G+=_,Q.push(`${K()}${J} ${L}`)}else if(W===D.i32_const){let[L,_]=V1(Z,G);G+=_,Q.push(`${K()}i32.const ${L}`)}else if(W===D.f32_const){let L=new ArrayBuffer(4),_=new Uint8Array(L);for(let q=0;q<4;q++)_[q]=Z[G+q];let U=new Float32Array(L)[0];G+=4,Q.push(`${K()}f32.const ${U}`)}else if(W===D.f64_const){let L=DZ(Z,G);G+=8,Q.push(`${K()}f64.const ${L}`)}else if(W===D.block||W===D.loop){let L=Z[G];G++,Q.push(`${K()}${J}${L===q1.void?"":` (result ${L===q1.f64?"f64":"i32"})`}`),H++}else if(W===D.if){let L=Z[G];G++,Q.push(`${K()}if${L===q1.void?"":` (result ${L===q1.f64?"f64":"i32"})`}`),H++}else if(W===D.else)H--,Q.push(`${K()}else`),H++;else if(W===D.end)H=Math.max(1,H-1),Q.push(`${K()}end`);else if(W===D.f64_load||W===D.f64_store||W===D.f32_load||W===D.f32_store||W===D.i32_load||W===D.i32_store){let[L,_]=V1(Z,G);G+=_;let[U,q]=V1(Z,G);G+=q,Q.push(`${K()}${J}${U?` offset=${U}`:""}`)}else if(W===J0){let[L,_]=V1(Z,G);G+=_;let U=qZ[L]||`simd.unknown(0x${L.toString(16)})`;if(L===t.v128_load||L===t.v128_store){let[q,I]=V1(Z,G);G+=I;let[B,R]=V1(Z,G);G+=R,Q.push(`${K()}${U}${B?` offset=${B}`:""}`)}else if(L===t.v128_const){let q=Z.slice(G,G+16);G+=16,Q.push(`${K()}v128.const ${q.map((I)=>"0x"+I.toString(16).padStart(2,"0")).join(" ")}`)}else if(L===t.f32x4_extract_lane||L===t.f32x4_replace_lane){let q=Z[G];G++,Q.push(`${K()}${U} ${q}`)}else Q.push(`${K()}${U}`)}else Q.push(`${K()}${J}`)}return Q.push(")"),Q.join(`
290
- `)}var f0={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_s,storeOp:D.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_s,storeOp:D.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_u,storeOp:D.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:D.f32_load,storeOp:D.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:D.f64_load,storeOp:D.f64_store}};function IZ(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 v0(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[...u(X,$),D.drop]}case"ReturnStatement":{let X=Z;if($.hasReturn=!0,!X.argument)return[D.return];let Q=u(X.argument,$),H=i(X.argument,$);if(H==="i32")Q.push(D.f64_convert_i32_s);else if(H==="f32")Q.push(D.f64_promote_f32);return Q.push(D.return),Q}case"VariableDeclaration":{let X=Z,Q=[];for(let H of X.declarations){if(H.id.type!=="Identifier"){$.errors.push("Destructuring not supported in WASM blocks");continue}let K=H.id.name,Y="f64";if(H.init)Y=i(H.init,$);let z=v0($,K,Y);if(H.init)Q.push(...u(H.init,$)),Q.push(D.local_set,...y(z))}return Q}case"ForStatement":return RZ(Z,$);case"IfStatement":return BZ(Z,$);case"BlockStatement":{let X=Z,Q=[];for(let H of X.body)Q.push(...d1(H,$));return Q}default:return $.errors.push(`Unsupported statement type: ${Z.type}`),[]}}function RZ(Z,$){let X=[];if(Z.init)if(Z.init.type==="VariableDeclaration")X.push(...d1(Z.init,$));else X.push(...u(Z.init,$));if(X.push(D.block,q1.void),X.push(D.loop,q1.void),Z.test)X.push(...u(Z.test,$)),X.push(D.i32_eqz),X.push(D.br_if,1);if($.loopDepth++,Z.body)X.push(...d1(Z.body,$));if($.loopDepth--,Z.update)X.push(...u(Z.update,$)),X.push(D.drop);return X.push(D.br,0),X.push(D.end),X.push(D.end),X}function BZ(Z,$){let X=[];if(X.push(...u(Z.test,$)),X.push(D.if,q1.void),X.push(...d1(Z.consequent,$)),Z.alternate)X.push(D.else),X.push(...d1(Z.alternate,$));return X.push(D.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,$),H=i(X.right,$);if(Q==="v128"||H==="v128")return"v128";if(Q==="f64"||H==="f64")return"f64";if(Q==="f32"||H==="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 H=$.params.find((K)=>K.name===X.object.name);if(H?.arrayType){let K=f0[H.arrayType];if(K)return K.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 u(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){let Q=i(Z,$);if(Q==="i32")return[D.i32_const,..._0(X.value|0)];else if(Q==="f32")return[D.f32_const,...v4(X.value)];else return[D.f64_const,...W1(X.value)]}return $.errors.push(`Unsupported literal type: ${typeof X.value}`),[D.f64_const,...W1(0)]}case"Identifier":{let X=Z.name,Q=g1($,X);if(Q)return[D.local_get,...y(Q.index)];return $.errors.push(`Unknown identifier: ${X}`),[D.f64_const,...W1(0)]}case"BinaryExpression":return wZ(Z,$);case"UnaryExpression":return MZ(Z,$);case"AssignmentExpression":return jZ(Z,$);case"UpdateExpression":return FZ(Z,$);case"MemberExpression":return PZ(Z,$);case"CallExpression":return CZ(Z,$);case"SequenceExpression":{let X=Z,Q=[];for(let H=0;H<X.expressions.length;H++)if(Q.push(...u(X.expressions[H],$)),H<X.expressions.length-1)Q.push(D.drop);return Q}default:return $.errors.push(`Unsupported expression type: ${Z.type}`),[D.f64_const,...W1(0)]}}function wZ(Z,$){let X=u(Z.left,$),Q=u(Z.right,$),H=i(Z,$),K=i(Z.left,$),Y=i(Z.right,$),z=["<",">","<=",">=","==","===","!=","!=="].includes(Z.operator),G;if(K==="f64"||Y==="f64")G="f64";else if(K==="f32"||Y==="f32")G="f32";else G="i32";if(!z&&H==="f64")G="f64";let W=X,J=Q;if(G==="f64"){if(K==="i32")W=[...X,D.f64_convert_i32_s];else if(K==="f32")W=[...X,D.f64_promote_f32];if(Y==="i32")J=[...Q,D.f64_convert_i32_s];else if(Y==="f32")J=[...Q,D.f64_promote_f32]}else if(G==="f32"){if(K==="i32")W=[...X,D.f32_convert_i32_s];if(Y==="i32")J=[...Q,D.f32_convert_i32_s]}let _={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div},"%":{i32:D.i32_rem_s},"<":{i32:D.i32_lt_s,f32:D.f32_lt,f64:D.f64_lt},">":{i32:D.i32_gt_s,f32:D.f32_gt,f64:D.f64_gt},"<=":{i32:D.i32_le_s,f32:D.f32_le,f64:D.f64_le},">=":{i32:D.i32_ge_s,f32:D.f32_ge,f64:D.f64_ge},"==":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"===":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"!=":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"!==":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"|":{i32:D.i32_or},"&":{i32:D.i32_and},"^":{i32:D.i32_xor},"<<":{i32:D.i32_shl},">>":{i32:D.i32_shr_s},">>>":{i32:D.i32_shr_u}}[Z.operator];if(!_)return $.errors.push(`Unsupported operator: ${Z.operator}`),[D.f64_const,...W1(0)];let U=_[G]??_.f64??_.i32;if(U===void 0)return $.errors.push(`Operator ${Z.operator} not supported for type ${G}`),[D.f64_const,...W1(0)];return[...W,...J,U]}function MZ(Z,$){let X=u(Z.argument,$),Q=i(Z.argument,$);switch(Z.operator){case"-":if(Q==="i32")return[D.i32_const,0,...X,D.i32_sub];else if(Q==="f32")return[...X,D.f32_neg];else return[...X,D.f64_neg];case"!":return[...X,D.i32_eqz];case"~":return[...X,D.i32_const,..._0(-1),D.i32_xor];default:return $.errors.push(`Unsupported unary operator: ${Z.operator}`),X}}function jZ(Z,$){if(Z.left.type==="MemberExpression")return VZ(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 H=[];if(Z.operator==="="){H.push(...u(Z.right,$));let K=i(Z.right,$);if(Q.type==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Q.type==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Q.type==="i32"&&K==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&K==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);else if(Q.type==="f32"&&K==="f64")H.push(D.f32_demote_f64)}else{let K=i(Z.right,$),Y=Q.type;if(K==="f64"||Q.type==="f64")Y="f64";else if(K==="f32"||Q.type==="f32")Y="f32";if(H.push(D.local_get,...y(Q.index)),Y==="f64"&&Q.type==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&Q.type==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&Q.type==="i32")H.push(D.f32_convert_i32_s);if(H.push(...u(Z.right,$)),Y==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);let z=Z.operator.slice(0,-1),W={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div}}[z]?.[Y];if(!W)return $.errors.push(`Unsupported compound assignment: ${Z.operator}`),[];if(H.push(W),Q.type==="i32"&&Y==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&Y==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&Y==="f64")H.push(D.f32_demote_f64)}return H.push(D.local_tee,...y(Q.index)),H}function FZ(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 H=[],K=Q.type==="i32";if(Z.prefix){if(H.push(D.local_get,...y(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...W1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_tee,...y(Q.index))}else{if(H.push(D.local_get,...y(Q.index)),H.push(D.local_get,...y(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...W1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_set,...y(Q.index))}return H}function PZ(Z,$){if(Z.object.type!=="Identifier")return $.errors.push("Array access requires identifier"),[];let X=Z.object.name,Q=$.params.find((W)=>W.name===X);if(!Q?.isArray||!Q.arrayType)return $.errors.push(`${X} is not a typed array parameter`),[];let H=f0[Q.arrayType];if(!H)return $.errors.push(`Unknown array type: ${Q.arrayType}`),[];$.needsMemory=!0;let K=[],Y=g1($,X);if(!Y)return $.errors.push(`Unknown array: ${X}`),[];if(K.push(D.local_get,...y(Y.index)),!Z.computed||!Z.property)return $.errors.push("Array access requires computed index"),[];let z=u(Z.property,$),G=i(Z.property,$);if(K.push(...z),G==="f64")K.push(D.i32_trunc_f64_s);if(H.bytesPerElement>1)K.push(D.i32_const,..._0(H.bytesPerElement)),K.push(D.i32_mul);return K.push(D.i32_add),K.push(H.loadOp,0,0),K}function VZ(Z,$,X,Q){if(Z.object.type!=="Identifier")return Q.errors.push("Array store requires identifier"),[];let H=Z.object.name,K=Q.params.find((q)=>q.name===H);if(!K?.isArray||!K.arrayType)return Q.errors.push(`${H} is not a typed array parameter`),[];let Y=f0[K.arrayType];if(!Y)return Q.errors.push(`Unknown array type: ${K.arrayType}`),[];Q.needsMemory=!0;let z=[],G=g1(Q,H);if(!G)return[];if(!Z.computed||!Z.property)return Q.errors.push("Array store requires computed index"),[];let W=u(Z.property,Q),J=i(Z.property,Q),L=()=>{let q=[];if(q.push(D.local_get,...y(G.index)),q.push(...W),J==="f64")q.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)q.push(D.i32_const,..._0(Y.bytesPerElement)),q.push(D.i32_mul);return q.push(D.i32_add),q};if(X==="=")z.push(...u($,Q));else{let q=v0(Q,`__addr_${Q.nextLocalIndex}`,"i32");z.push(...L()),z.push(D.local_tee,...y(q)),z.push(Y.loadOp,0,0),z.push(...u($,Q));let I=i($,Q);if(Y.elementType==="f32"&&I==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&I==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="f32"&&I==="i32")z.push(D.f32_convert_i32_s);else if(Y.elementType==="f64"&&I==="i32")z.push(D.f64_convert_i32_s);else if(Y.elementType==="i32"&&I==="f64")z.push(D.i32_trunc_f64_s);else if(Y.elementType==="i32"&&I==="f32")z.push(D.i32_trunc_f32_s);let B=X.slice(0,-1),R={"+":Y.elementType==="i32"?D.i32_add:Y.elementType==="f32"?D.f32_add:D.f64_add,"-":Y.elementType==="i32"?D.i32_sub:Y.elementType==="f32"?D.f32_sub:D.f64_sub,"*":Y.elementType==="i32"?D.i32_mul:Y.elementType==="f32"?D.f32_mul:D.f64_mul};z.push(R[B]??D.f64_add);let C=v0(Q,`__val_${Q.nextLocalIndex}`,Y.elementType);return z.push(D.local_set,...y(C)),z.push(D.local_get,...y(q)),z.push(D.local_get,...y(C)),z.push(Y.storeOp,0,0),z.push(D.local_get,...y(C)),z}let _=i($,Q);if(Y.elementType==="f32"&&_==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&_==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="i32"&&_==="f64")z.push(D.i32_trunc_f64_s);let U=v0(Q,`__tmp_${Q.nextLocalIndex}`,Y.elementType);if(z.push(D.local_set,...y(U)),z.push(D.local_get,...y(G.index)),z.push(...W),J==="f64")z.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)z.push(D.i32_const,..._0(Y.bytesPerElement)),z.push(D.i32_mul);return z.push(D.i32_add),z.push(D.local_get,...y(U)),z.push(Y.storeOp,0,0),z.push(D.local_get,...y(U)),z}function CZ(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 NZ(Q,Z.arguments,$)}}if(Z.callee.type==="Identifier"){let X=Z.callee.name;if(X.startsWith("f32x4_")||X.startsWith("v128_"))return OZ(X,Z.arguments,$)}return $.errors.push(`Unsupported function call: ${Z.callee.type}`),[D.f64_const,...W1(0)]}function OZ(Z,$,X){X.needsMemory=!0;let Q=[];switch(Z){case"v128_load":case"f32x4_load":{if(Q.push(...u($[0],X)),i($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...u($[1],X));let K=i($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...$7(t.v128_load,2,0)),Q}case"v128_store":case"f32x4_store":{if(Q.push(...u($[0],X)),i($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...u($[1],X));let K=i($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...u($[2],X)),Q.push(...$7(t.v128_store,2,0)),Q.push(D.i32_const,0),Q}case"f32x4_splat":{Q.push(...u($[0],X));let H=i($[0],X);if(H==="i32")Q.push(D.f32_convert_i32_s);else if(H==="f64")Q.push(D.f32_demote_f64);return Q.push(...g4(t.f32x4_splat)),Q}case"f32x4_extract_lane":{Q.push(...u($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_extract_lane: lane must be 0-3, got ${H}`),[D.f32_const,...v4(0)];return Q.push(J0,...y(t.f32x4_extract_lane),H),Q}case"f32x4_replace_lane":{Q.push(...u($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_replace_lane: lane must be 0-3, got ${H}`),[D.f32_const,...v4(0)];Q.push(...u($[2],X));let K=i($[2],X);if(K==="i32")Q.push(D.f32_convert_i32_s);else if(K==="f64")Q.push(D.f32_demote_f64);return Q.push(J0,...y(t.f32x4_replace_lane),H),Q}case"f32x4_add":case"f32x4_sub":case"f32x4_mul":case"f32x4_div":{Q.push(...u($[0],X)),Q.push(...u($[1],X));let H={f32x4_add:t.f32x4_add,f32x4_sub:t.f32x4_sub,f32x4_mul:t.f32x4_mul,f32x4_div:t.f32x4_div};return Q.push(...g4(H[Z])),Q}case"f32x4_neg":case"f32x4_sqrt":{Q.push(...u($[0],X));let H={f32x4_neg:t.f32x4_neg,f32x4_sqrt:t.f32x4_sqrt};return Q.push(...g4(H[Z])),Q}default:return X.errors.push(`Unknown SIMD intrinsic: ${Z}`),[D.f64_const,...W1(0)]}}function NZ(Z,$,X){let Q=[];for(let z of $){Q.push(...u(z,X));let G=i(z,X);if(G==="i32")Q.push(D.f64_convert_i32_s);else if(G==="f32")Q.push(D.f64_promote_f32)}let K={abs:D.f64_abs,ceil:D.f64_ceil,floor:D.f64_floor,trunc:D.f64_trunc,sqrt:D.f64_sqrt,min:D.f64_min,max:D.f64_max}[Z];if(K!==void 0)return Q.push(K),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)`),[D.f64_const,...W1(0)];return X.errors.push(`Unknown Math method: ${Z}`),[D.f64_const,...W1(0)]}function Q7(Z){let $=Z.split(":").map((K)=>K.trim()),X=$[0];if($.length===1)return{name:X,type:"f64"};let Q=$[1];if(f0[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 EZ(Z,$,X,Q,H){let K=[0,97,115,109,1,0,0,0],Y=Z.map((C)=>q1[C.type]),z=H?[1,q1.f64]:[0],G=W0(G0.type,[1,96,...y(Z.length),...Y,...z]),W=[],J=[];if(Q)J=W0(G0.import,[1,...b4("env"),...b4("memory"),2,0,1]);let L=W0(G0.function,[1,0]),_=W0(G0.export,[1,...b4("compute"),0,0]),U=[];if(X.length>0){let C=X[0],w=1;for(let F=1;F<X.length;F++)if(X[F]===C)w++;else U.push([...y(w),q1[C]]),C=X[F],w=1;U.push([...y(w),q1[C]])}let I=[...[...y(U.length),...U.flat()],...$,D.end],B=W0(G0.code,[1,...y(I.length),...I]),R=[...K,...G];if(J.length>0)R.push(...J);return R.push(...L,..._,...B),R}function y0(Z){try{let $=Z.captures.map(Q7),X;try{let W=`function __wasm__(${$.map((J)=>J.name).join(", ")}) { ${Z.body} }`;X=X7.parse(W,{ecmaVersion:2022})}catch(W){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${W.message}`}}let H=X.body[0].body.body,K=IZ($),Y=[];for(let W of H)Y.push(...d1(W,K));if(K.errors.length>0)return{bytes:new Uint8Array,warnings:K.warnings,success:!1,error:K.errors.join("; ")};let z=EZ($,Y,K.localTypes,K.needsMemory,K.hasReturn),G=AZ(Y,$,K.localTypes);return{bytes:new Uint8Array(z),warnings:K.warnings,success:!0,needsMemory:K.needsMemory,wat:G}}catch($){return{bytes:new Uint8Array,warnings:[],success:!1,error:$.message}}}async function H7(Z,$){let X={};if($)X.env={memory:$};let Q=await WebAssembly.compile(Z);return WebAssembly.instantiate(Q,X)}async function TZ(Z){let $=y0(Z);if(!$.success)return{fn:()=>0,success:!1,error:$.error};try{let X;if($.needsMemory)X=new WebAssembly.Memory({initial:256});let H=(await H7($.bytes,X)).exports.compute,K=Z.captures.map(Q7);if(!K.some((G)=>G.isArray))return{fn:H,memory:X,success:!0};return{fn:(...G)=>{if(!X)throw Error("Memory not initialized");let W=new Uint8Array(X.buffer),J=0,L=[];for(let U=0;U<K.length;U++){let q=K[U],I=G[U];if(q.isArray&&I instanceof Object&&"buffer"in I){let B=I,R=new Uint8Array(B.buffer,B.byteOffset,B.byteLength);W.set(R,J),L.push(J),J+=R.length,J=J+15&-16}else L.push(I)}let _=H(...L);J=0;for(let U=0;U<K.length;U++){let q=K[U],I=G[U];if(q.isArray&&I instanceof Object&&"buffer"in I){let B=I,R=new Uint8Array(B.buffer,B.byteOffset,B.byteLength);R.set(W.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 K7(Z){let $=await TZ(Z);if(!$.success)return console.warn(`WASM compilation failed for ${Z.id}:`,$.error),!1;return globalThis[Z.id]=$.fn,!0}async function SZ(Z){let $=0,X=0,Q=[];for(let H of Z)if(await K7(H))$++;else X++,Q.push(`Failed to compile ${H.id}`);return{compiled:$,failed:X,errors:Q}}function Y7(Z){let $=[],X=[];for(let z of Z){let G=y0(z);if(G.success){let W=btoa(String.fromCharCode(...G.bytes));X.push({id:z.id,base64:W,captures:z.captures,needsMemory:G.needsMemory??!1,wat:G.wat??""}),$.push({id:z.id,success:!0,byteLength:G.bytes.length})}else $.push({id:z.id,success:!1,error:G.error})}if(X.length===0)return{code:"",results:$};let Q=X.map((z)=>{let G=z.wat.split(`
289
+ `;try{let R=Function("__deepEqual","__format","__typeMatches",P),{testResults:F,sigTestResults:w}=R(T4,z0,S4);for(let V of F){let C=Z[V.idx],O=G&&!V.passed&&V.error&&/is not defined$/.test(V.error);Y.push({description:C.description,passed:O?!0:V.passed,error:O?void 0:V.error,line:C.line})}for(let V of w){let C=U[V.idx],O=G&&!V.passed&&V.error&&/is not defined$/.test(V.error);Y.push({description:`${C.funcName} signature example`,passed:O?!0:V.passed,error:O?void 0:V.error,isSignatureTest:!0,line:C.line})}}catch(R){let F=G&&R instanceof ReferenceError;for(let w of Z)Y.push({description:w.description,passed:F,error:F?void 0:`Module execution failed: ${R.message}`,line:w.line});for(let w of U)Y.push({description:`${w.funcName} signature example`,passed:F,error:F?void 0:`Module execution failed: ${R.message}`,isSignatureTest:!0,line:w.line})}for(let R of q)Y.push({description:`${R.funcName} signature example`,passed:!0,isSignatureTest:!0,line:R.line});return Y}function k4(Z){let $="",X=0,Q=!1;for(let K=0;K<Z.length;K++){let Y=Z[K];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 LZ(Z){if(!Z.trim())return[];let $=[],X=UZ(Z);for(let Q of X){let H=Q.trim(),K=H.match(/^\.\.\.(\w+)\s*[:=]\s*(\[.+\])$/);if(K){try{let z=Function(`return ${K[2]}`)();if(Array.isArray(z))for(let G of z)$.push(JSON.stringify(G))}catch{}continue}if(H.startsWith("..."))continue;let Y=H.match(/(?:\(\s*[?!]\s*)?(\w+)\s*[:=]\s*(.+?)(?:\))?$/);if(Y)$.push(Y[2].trim());else return[]}return $}function UZ(Z){let $=[],X="",Q=0;for(let H of Z){if(H==="("||H==="["||H==="{")Q++;else if(H===")"||H==="]"||H==="}")Q--;else if(H===","&&Q===0){$.push(X.trim()),X="";continue}X+=H}if(X.trim())$.push(X.trim());return $}import*as X7 from"acorn";var q1={i32:127,i64:126,f32:125,f64:124,v128:123,funcref:112,externref:111,void:64},G0={custom:0,type:1,import:2,function:3,table:4,memory:5,global:6,export:7,start:8,element:9,code:10,data:11},D={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},qZ=Object.fromEntries(Object.entries(D).map(([Z,$])=>[$,Z.replace(/_/g,".")])),J0=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},DZ=Object.fromEntries(Object.entries(t).map(([Z,$])=>[$,Z.replace(/_/g,".")]));function g4(Z){return[J0,...h(Z)]}function $7(Z,$,X){return[J0,...h(Z),...h($),...h(X)]}function h(Z){let $=[];do{let X=Z&127;if(Z>>>=7,Z!==0)X|=128;$.push(X)}while(Z!==0);return $}function _0(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 v4(Z){let $=new ArrayBuffer(4);return new Float32Array($)[0]=Z,[...new Uint8Array($)]}function W1(Z){let $=new ArrayBuffer(8);return new Float64Array($)[0]=Z,[...new Uint8Array($)]}function b4(Z){let $=new TextEncoder().encode(Z);return[...h($.length),...$]}function W0(Z,$){return[Z,...h($.length),...$]}function V1(Z,$){let X=0,Q=0,H=$;while(H<Z.length){let K=Z[H];if(X|=(K&127)<<Q,H++,(K&128)===0)break;Q+=7}return[X,H-$]}function AZ(Z,$){let X=new ArrayBuffer(8),Q=new Uint8Array(X);for(let H=0;H<8;H++)Q[H]=Z[$+H];return new Float64Array(X)[0]}function IZ(Z,$,X){let Q=[],H=1,K=()=>" ".repeat(H),Y=$.map((W,J)=>`(param $${W.name} ${W.type})`).join(" "),z=X.map((W,J)=>`(local $L${$.length+J} ${W})`).join(" ");if(Q.push(`(func (export "compute") ${Y} (result f64)`),z)Q.push(` ${z}`);let G=0;while(G<Z.length){let W=Z[G],J=qZ[W]||`unknown(0x${W.toString(16)})`;if(G++,W===D.local_get||W===D.local_set||W===D.local_tee){let[L,_]=V1(Z,G);G+=_;let U=L<$.length?`$${$[L].name}`:`$L${L}`;Q.push(`${K()}${J} ${U}`)}else if(W===D.br||W===D.br_if){let[L,_]=V1(Z,G);G+=_,Q.push(`${K()}${J} ${L}`)}else if(W===D.i32_const){let[L,_]=V1(Z,G);G+=_,Q.push(`${K()}i32.const ${L}`)}else if(W===D.f32_const){let L=new ArrayBuffer(4),_=new Uint8Array(L);for(let q=0;q<4;q++)_[q]=Z[G+q];let U=new Float32Array(L)[0];G+=4,Q.push(`${K()}f32.const ${U}`)}else if(W===D.f64_const){let L=AZ(Z,G);G+=8,Q.push(`${K()}f64.const ${L}`)}else if(W===D.block||W===D.loop){let L=Z[G];G++,Q.push(`${K()}${J}${L===q1.void?"":` (result ${L===q1.f64?"f64":"i32"})`}`),H++}else if(W===D.if){let L=Z[G];G++,Q.push(`${K()}if${L===q1.void?"":` (result ${L===q1.f64?"f64":"i32"})`}`),H++}else if(W===D.else)H--,Q.push(`${K()}else`),H++;else if(W===D.end)H=Math.max(1,H-1),Q.push(`${K()}end`);else if(W===D.f64_load||W===D.f64_store||W===D.f32_load||W===D.f32_store||W===D.i32_load||W===D.i32_store){let[L,_]=V1(Z,G);G+=_;let[U,q]=V1(Z,G);G+=q,Q.push(`${K()}${J}${U?` offset=${U}`:""}`)}else if(W===J0){let[L,_]=V1(Z,G);G+=_;let U=DZ[L]||`simd.unknown(0x${L.toString(16)})`;if(L===t.v128_load||L===t.v128_store){let[q,I]=V1(Z,G);G+=I;let[M,B]=V1(Z,G);G+=B,Q.push(`${K()}${U}${M?` offset=${M}`:""}`)}else if(L===t.v128_const){let q=Z.slice(G,G+16);G+=16,Q.push(`${K()}v128.const ${q.map((I)=>"0x"+I.toString(16).padStart(2,"0")).join(" ")}`)}else if(L===t.f32x4_extract_lane||L===t.f32x4_replace_lane){let q=Z[G];G++,Q.push(`${K()}${U} ${q}`)}else Q.push(`${K()}${U}`)}else Q.push(`${K()}${J}`)}return Q.push(")"),Q.join(`
290
+ `)}var y0={Int8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_s,storeOp:D.i32_store8},Uint8Array:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Uint8ClampedArray:{elementType:"i32",bytesPerElement:1,loadOp:D.i32_load8_u,storeOp:D.i32_store8},Int16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_s,storeOp:D.i32_store16},Uint16Array:{elementType:"i32",bytesPerElement:2,loadOp:D.i32_load16_u,storeOp:D.i32_store16},Int32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Uint32Array:{elementType:"i32",bytesPerElement:4,loadOp:D.i32_load,storeOp:D.i32_store},Float32Array:{elementType:"f32",bytesPerElement:4,loadOp:D.f32_load,storeOp:D.f32_store},Float64Array:{elementType:"f64",bytesPerElement:8,loadOp:D.f64_load,storeOp:D.f64_store}};function BZ(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 f0(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[...u(X,$),D.drop]}case"ReturnStatement":{let X=Z;if($.hasReturn=!0,!X.argument)return[D.return];let Q=u(X.argument,$),H=i(X.argument,$);if(H==="i32")Q.push(D.f64_convert_i32_s);else if(H==="f32")Q.push(D.f64_promote_f32);return Q.push(D.return),Q}case"VariableDeclaration":{let X=Z,Q=[];for(let H of X.declarations){if(H.id.type!=="Identifier"){$.errors.push("Destructuring not supported in WASM blocks");continue}let K=H.id.name,Y="f64";if(H.init)Y=i(H.init,$);let z=f0($,K,Y);if(H.init)Q.push(...u(H.init,$)),Q.push(D.local_set,...h(z))}return Q}case"ForStatement":return RZ(Z,$);case"IfStatement":return MZ(Z,$);case"BlockStatement":{let X=Z,Q=[];for(let H of X.body)Q.push(...d1(H,$));return Q}default:return $.errors.push(`Unsupported statement type: ${Z.type}`),[]}}function RZ(Z,$){let X=[];if(Z.init)if(Z.init.type==="VariableDeclaration")X.push(...d1(Z.init,$));else X.push(...u(Z.init,$));if(X.push(D.block,q1.void),X.push(D.loop,q1.void),Z.test)X.push(...u(Z.test,$)),X.push(D.i32_eqz),X.push(D.br_if,1);if($.loopDepth++,Z.body)X.push(...d1(Z.body,$));if($.loopDepth--,Z.update)X.push(...u(Z.update,$)),X.push(D.drop);return X.push(D.br,0),X.push(D.end),X.push(D.end),X}function MZ(Z,$){let X=[];if(X.push(...u(Z.test,$)),X.push(D.if,q1.void),X.push(...d1(Z.consequent,$)),Z.alternate)X.push(D.else),X.push(...d1(Z.alternate,$));return X.push(D.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,$),H=i(X.right,$);if(Q==="v128"||H==="v128")return"v128";if(Q==="f64"||H==="f64")return"f64";if(Q==="f32"||H==="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 H=$.params.find((K)=>K.name===X.object.name);if(H?.arrayType){let K=y0[H.arrayType];if(K)return K.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 u(Z,$){switch(Z.type){case"Literal":{let X=Z;if(typeof X.value==="number"){let Q=i(Z,$);if(Q==="i32")return[D.i32_const,..._0(X.value|0)];else if(Q==="f32")return[D.f32_const,...v4(X.value)];else return[D.f64_const,...W1(X.value)]}return $.errors.push(`Unsupported literal type: ${typeof X.value}`),[D.f64_const,...W1(0)]}case"Identifier":{let X=Z.name,Q=g1($,X);if(Q)return[D.local_get,...h(Q.index)];return $.errors.push(`Unknown identifier: ${X}`),[D.f64_const,...W1(0)]}case"BinaryExpression":return wZ(Z,$);case"UnaryExpression":return jZ(Z,$);case"AssignmentExpression":return FZ(Z,$);case"UpdateExpression":return PZ(Z,$);case"MemberExpression":return VZ(Z,$);case"CallExpression":return OZ(Z,$);case"SequenceExpression":{let X=Z,Q=[];for(let H=0;H<X.expressions.length;H++)if(Q.push(...u(X.expressions[H],$)),H<X.expressions.length-1)Q.push(D.drop);return Q}default:return $.errors.push(`Unsupported expression type: ${Z.type}`),[D.f64_const,...W1(0)]}}function wZ(Z,$){let X=u(Z.left,$),Q=u(Z.right,$),H=i(Z,$),K=i(Z.left,$),Y=i(Z.right,$),z=["<",">","<=",">=","==","===","!=","!=="].includes(Z.operator),G;if(K==="f64"||Y==="f64")G="f64";else if(K==="f32"||Y==="f32")G="f32";else G="i32";if(!z&&H==="f64")G="f64";let W=X,J=Q;if(G==="f64"){if(K==="i32")W=[...X,D.f64_convert_i32_s];else if(K==="f32")W=[...X,D.f64_promote_f32];if(Y==="i32")J=[...Q,D.f64_convert_i32_s];else if(Y==="f32")J=[...Q,D.f64_promote_f32]}else if(G==="f32"){if(K==="i32")W=[...X,D.f32_convert_i32_s];if(Y==="i32")J=[...Q,D.f32_convert_i32_s]}let _={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div},"%":{i32:D.i32_rem_s},"<":{i32:D.i32_lt_s,f32:D.f32_lt,f64:D.f64_lt},">":{i32:D.i32_gt_s,f32:D.f32_gt,f64:D.f64_gt},"<=":{i32:D.i32_le_s,f32:D.f32_le,f64:D.f64_le},">=":{i32:D.i32_ge_s,f32:D.f32_ge,f64:D.f64_ge},"==":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"===":{i32:D.i32_eq,f32:D.f32_eq,f64:D.f64_eq},"!=":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"!==":{i32:D.i32_ne,f32:D.f32_ne,f64:D.f64_ne},"|":{i32:D.i32_or},"&":{i32:D.i32_and},"^":{i32:D.i32_xor},"<<":{i32:D.i32_shl},">>":{i32:D.i32_shr_s},">>>":{i32:D.i32_shr_u}}[Z.operator];if(!_)return $.errors.push(`Unsupported operator: ${Z.operator}`),[D.f64_const,...W1(0)];let U=_[G]??_.f64??_.i32;if(U===void 0)return $.errors.push(`Operator ${Z.operator} not supported for type ${G}`),[D.f64_const,...W1(0)];return[...W,...J,U]}function jZ(Z,$){let X=u(Z.argument,$),Q=i(Z.argument,$);switch(Z.operator){case"-":if(Q==="i32")return[D.i32_const,0,...X,D.i32_sub];else if(Q==="f32")return[...X,D.f32_neg];else return[...X,D.f64_neg];case"!":return[...X,D.i32_eqz];case"~":return[...X,D.i32_const,..._0(-1),D.i32_xor];default:return $.errors.push(`Unsupported unary operator: ${Z.operator}`),X}}function FZ(Z,$){if(Z.left.type==="MemberExpression")return CZ(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 H=[];if(Z.operator==="="){H.push(...u(Z.right,$));let K=i(Z.right,$);if(Q.type==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Q.type==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Q.type==="i32"&&K==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&K==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);else if(Q.type==="f32"&&K==="f64")H.push(D.f32_demote_f64)}else{let K=i(Z.right,$),Y=Q.type;if(K==="f64"||Q.type==="f64")Y="f64";else if(K==="f32"||Q.type==="f32")Y="f32";if(H.push(D.local_get,...h(Q.index)),Y==="f64"&&Q.type==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&Q.type==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&Q.type==="i32")H.push(D.f32_convert_i32_s);if(H.push(...u(Z.right,$)),Y==="f64"&&K==="i32")H.push(D.f64_convert_i32_s);else if(Y==="f64"&&K==="f32")H.push(D.f64_promote_f32);else if(Y==="f32"&&K==="i32")H.push(D.f32_convert_i32_s);let z=Z.operator.slice(0,-1),W={"+":{i32:D.i32_add,f32:D.f32_add,f64:D.f64_add},"-":{i32:D.i32_sub,f32:D.f32_sub,f64:D.f64_sub},"*":{i32:D.i32_mul,f32:D.f32_mul,f64:D.f64_mul},"/":{i32:D.i32_div_s,f32:D.f32_div,f64:D.f64_div}}[z]?.[Y];if(!W)return $.errors.push(`Unsupported compound assignment: ${Z.operator}`),[];if(H.push(W),Q.type==="i32"&&Y==="f64")H.push(D.i32_trunc_f64_s);else if(Q.type==="i32"&&Y==="f32")H.push(D.i32_trunc_f32_s);else if(Q.type==="f32"&&Y==="f64")H.push(D.f32_demote_f64)}return H.push(D.local_tee,...h(Q.index)),H}function PZ(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 H=[],K=Q.type==="i32";if(Z.prefix){if(H.push(D.local_get,...h(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...W1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_tee,...h(Q.index))}else{if(H.push(D.local_get,...h(Q.index)),H.push(D.local_get,...h(Q.index)),K)H.push(D.i32_const,1),H.push(Z.operator==="++"?D.i32_add:D.i32_sub);else H.push(D.f64_const,...W1(1)),H.push(Z.operator==="++"?D.f64_add:D.f64_sub);H.push(D.local_set,...h(Q.index))}return H}function VZ(Z,$){if(Z.object.type!=="Identifier")return $.errors.push("Array access requires identifier"),[];let X=Z.object.name,Q=$.params.find((W)=>W.name===X);if(!Q?.isArray||!Q.arrayType)return $.errors.push(`${X} is not a typed array parameter`),[];let H=y0[Q.arrayType];if(!H)return $.errors.push(`Unknown array type: ${Q.arrayType}`),[];$.needsMemory=!0;let K=[],Y=g1($,X);if(!Y)return $.errors.push(`Unknown array: ${X}`),[];if(K.push(D.local_get,...h(Y.index)),!Z.computed||!Z.property)return $.errors.push("Array access requires computed index"),[];let z=u(Z.property,$),G=i(Z.property,$);if(K.push(...z),G==="f64")K.push(D.i32_trunc_f64_s);if(H.bytesPerElement>1)K.push(D.i32_const,..._0(H.bytesPerElement)),K.push(D.i32_mul);return K.push(D.i32_add),K.push(H.loadOp,0,0),K}function CZ(Z,$,X,Q){if(Z.object.type!=="Identifier")return Q.errors.push("Array store requires identifier"),[];let H=Z.object.name,K=Q.params.find((q)=>q.name===H);if(!K?.isArray||!K.arrayType)return Q.errors.push(`${H} is not a typed array parameter`),[];let Y=y0[K.arrayType];if(!Y)return Q.errors.push(`Unknown array type: ${K.arrayType}`),[];Q.needsMemory=!0;let z=[],G=g1(Q,H);if(!G)return[];if(!Z.computed||!Z.property)return Q.errors.push("Array store requires computed index"),[];let W=u(Z.property,Q),J=i(Z.property,Q),L=()=>{let q=[];if(q.push(D.local_get,...h(G.index)),q.push(...W),J==="f64")q.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)q.push(D.i32_const,..._0(Y.bytesPerElement)),q.push(D.i32_mul);return q.push(D.i32_add),q};if(X==="=")z.push(...u($,Q));else{let q=f0(Q,`__addr_${Q.nextLocalIndex}`,"i32");z.push(...L()),z.push(D.local_tee,...h(q)),z.push(Y.loadOp,0,0),z.push(...u($,Q));let I=i($,Q);if(Y.elementType==="f32"&&I==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&I==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="f32"&&I==="i32")z.push(D.f32_convert_i32_s);else if(Y.elementType==="f64"&&I==="i32")z.push(D.f64_convert_i32_s);else if(Y.elementType==="i32"&&I==="f64")z.push(D.i32_trunc_f64_s);else if(Y.elementType==="i32"&&I==="f32")z.push(D.i32_trunc_f32_s);let M=X.slice(0,-1),B={"+":Y.elementType==="i32"?D.i32_add:Y.elementType==="f32"?D.f32_add:D.f64_add,"-":Y.elementType==="i32"?D.i32_sub:Y.elementType==="f32"?D.f32_sub:D.f64_sub,"*":Y.elementType==="i32"?D.i32_mul:Y.elementType==="f32"?D.f32_mul:D.f64_mul};z.push(B[M]??D.f64_add);let P=f0(Q,`__val_${Q.nextLocalIndex}`,Y.elementType);return z.push(D.local_set,...h(P)),z.push(D.local_get,...h(q)),z.push(D.local_get,...h(P)),z.push(Y.storeOp,0,0),z.push(D.local_get,...h(P)),z}let _=i($,Q);if(Y.elementType==="f32"&&_==="f64")z.push(D.f32_demote_f64);else if(Y.elementType==="f64"&&_==="f32")z.push(D.f64_promote_f32);else if(Y.elementType==="i32"&&_==="f64")z.push(D.i32_trunc_f64_s);let U=f0(Q,`__tmp_${Q.nextLocalIndex}`,Y.elementType);if(z.push(D.local_set,...h(U)),z.push(D.local_get,...h(G.index)),z.push(...W),J==="f64")z.push(D.i32_trunc_f64_s);if(Y.bytesPerElement>1)z.push(D.i32_const,..._0(Y.bytesPerElement)),z.push(D.i32_mul);return z.push(D.i32_add),z.push(D.local_get,...h(U)),z.push(Y.storeOp,0,0),z.push(D.local_get,...h(U)),z}function OZ(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 EZ(Q,Z.arguments,$)}}if(Z.callee.type==="Identifier"){let X=Z.callee.name;if(X.startsWith("f32x4_")||X.startsWith("v128_"))return NZ(X,Z.arguments,$)}return $.errors.push(`Unsupported function call: ${Z.callee.type}`),[D.f64_const,...W1(0)]}function NZ(Z,$,X){X.needsMemory=!0;let Q=[];switch(Z){case"v128_load":case"f32x4_load":{if(Q.push(...u($[0],X)),i($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...u($[1],X));let K=i($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...$7(t.v128_load,2,0)),Q}case"v128_store":case"f32x4_store":{if(Q.push(...u($[0],X)),i($[0],X)==="f64")Q.push(D.i32_trunc_f64_s);Q.push(...u($[1],X));let K=i($[1],X);if(K==="f64")Q.push(D.i32_trunc_f64_s);else if(K==="f32")Q.push(D.i32_trunc_f32_s);return Q.push(D.i32_add),Q.push(...u($[2],X)),Q.push(...$7(t.v128_store,2,0)),Q.push(D.i32_const,0),Q}case"f32x4_splat":{Q.push(...u($[0],X));let H=i($[0],X);if(H==="i32")Q.push(D.f32_convert_i32_s);else if(H==="f64")Q.push(D.f32_demote_f64);return Q.push(...g4(t.f32x4_splat)),Q}case"f32x4_extract_lane":{Q.push(...u($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_extract_lane: lane must be 0-3, got ${H}`),[D.f32_const,...v4(0)];return Q.push(J0,...h(t.f32x4_extract_lane),H),Q}case"f32x4_replace_lane":{Q.push(...u($[0],X));let H=$[1].value;if(!Number.isInteger(H)||H<0||H>3)return X.errors.push(`f32x4_replace_lane: lane must be 0-3, got ${H}`),[D.f32_const,...v4(0)];Q.push(...u($[2],X));let K=i($[2],X);if(K==="i32")Q.push(D.f32_convert_i32_s);else if(K==="f64")Q.push(D.f32_demote_f64);return Q.push(J0,...h(t.f32x4_replace_lane),H),Q}case"f32x4_add":case"f32x4_sub":case"f32x4_mul":case"f32x4_div":{Q.push(...u($[0],X)),Q.push(...u($[1],X));let H={f32x4_add:t.f32x4_add,f32x4_sub:t.f32x4_sub,f32x4_mul:t.f32x4_mul,f32x4_div:t.f32x4_div};return Q.push(...g4(H[Z])),Q}case"f32x4_neg":case"f32x4_sqrt":{Q.push(...u($[0],X));let H={f32x4_neg:t.f32x4_neg,f32x4_sqrt:t.f32x4_sqrt};return Q.push(...g4(H[Z])),Q}default:return X.errors.push(`Unknown SIMD intrinsic: ${Z}`),[D.f64_const,...W1(0)]}}function EZ(Z,$,X){let Q=[];for(let z of $){Q.push(...u(z,X));let G=i(z,X);if(G==="i32")Q.push(D.f64_convert_i32_s);else if(G==="f32")Q.push(D.f64_promote_f32)}let K={abs:D.f64_abs,ceil:D.f64_ceil,floor:D.f64_floor,trunc:D.f64_trunc,sqrt:D.f64_sqrt,min:D.f64_min,max:D.f64_max}[Z];if(K!==void 0)return Q.push(K),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)`),[D.f64_const,...W1(0)];return X.errors.push(`Unknown Math method: ${Z}`),[D.f64_const,...W1(0)]}function Q7(Z){let $=Z.split(":").map((K)=>K.trim()),X=$[0];if($.length===1)return{name:X,type:"f64"};let Q=$[1];if(y0[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 TZ(Z,$,X,Q,H){let K=[0,97,115,109,1,0,0,0],Y=Z.map((P)=>q1[P.type]),z=H?[1,q1.f64]:[0],G=W0(G0.type,[1,96,...h(Z.length),...Y,...z]),W=[],J=[];if(Q)J=W0(G0.import,[1,...b4("env"),...b4("memory"),2,0,1]);let L=W0(G0.function,[1,0]),_=W0(G0.export,[1,...b4("compute"),0,0]),U=[];if(X.length>0){let P=X[0],R=1;for(let F=1;F<X.length;F++)if(X[F]===P)R++;else U.push([...h(R),q1[P]]),P=X[F],R=1;U.push([...h(R),q1[P]])}let I=[...[...h(U.length),...U.flat()],...$,D.end],M=W0(G0.code,[1,...h(I.length),...I]),B=[...K,...G];if(J.length>0)B.push(...J);return B.push(...L,..._,...M),B}function h0(Z){try{let $=Z.captures.map(Q7),X;try{let W=`function __wasm__(${$.map((J)=>J.name).join(", ")}) { ${Z.body} }`;X=X7.parse(W,{ecmaVersion:2022})}catch(W){return{bytes:new Uint8Array,warnings:[],success:!1,error:`Parse error: ${W.message}`}}let H=X.body[0].body.body,K=BZ($),Y=[];for(let W of H)Y.push(...d1(W,K));if(K.errors.length>0)return{bytes:new Uint8Array,warnings:K.warnings,success:!1,error:K.errors.join("; ")};let z=TZ($,Y,K.localTypes,K.needsMemory,K.hasReturn),G=IZ(Y,$,K.localTypes);return{bytes:new Uint8Array(z),warnings:K.warnings,success:!0,needsMemory:K.needsMemory,wat:G}}catch($){return{bytes:new Uint8Array,warnings:[],success:!1,error:$.message}}}async function H7(Z,$){let X={};if($)X.env={memory:$};let Q=await WebAssembly.compile(Z);return WebAssembly.instantiate(Q,X)}async function SZ(Z){let $=h0(Z);if(!$.success)return{fn:()=>0,success:!1,error:$.error};try{let X;if($.needsMemory)X=new WebAssembly.Memory({initial:256});let H=(await H7($.bytes,X)).exports.compute,K=Z.captures.map(Q7);if(!K.some((G)=>G.isArray))return{fn:H,memory:X,success:!0};return{fn:(...G)=>{if(!X)throw Error("Memory not initialized");let W=new Uint8Array(X.buffer),J=0,L=[];for(let U=0;U<K.length;U++){let q=K[U],I=G[U];if(q.isArray&&I instanceof Object&&"buffer"in I){let M=I,B=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);W.set(B,J),L.push(J),J+=B.length,J=J+15&-16}else L.push(I)}let _=H(...L);J=0;for(let U=0;U<K.length;U++){let q=K[U],I=G[U];if(q.isArray&&I instanceof Object&&"buffer"in I){let M=I,B=new Uint8Array(M.buffer,M.byteOffset,M.byteLength);B.set(W.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 K7(Z){let $=await SZ(Z);if(!$.success)return console.warn(`WASM compilation failed for ${Z.id}:`,$.error),!1;return globalThis[Z.id]=$.fn,!0}async function kZ(Z){let $=0,X=0,Q=[];for(let H of Z)if(await K7(H))$++;else X++,Q.push(`Failed to compile ${H.id}`);return{compiled:$,failed:X,errors:Q}}function Y7(Z){let $=[],X=[];for(let z of Z){let G=h0(z);if(G.success){let W=btoa(String.fromCharCode(...G.bytes));X.push({id:z.id,base64:W,captures:z.captures,needsMemory:G.needsMemory??!1,wat:G.wat??""}),$.push({id:z.id,success:!0,byteLength:G.bytes.length})}else $.push({id:z.id,success:!1,error:G.error})}if(X.length===0)return{code:"",results:$};let Q=X.map((z)=>{let G=z.wat.split(`
291
291
  `).map((W)=>` * ${W}`);return`/**
292
292
  * WASM: ${z.id}
293
293
  ${G.join(`
@@ -324,85 +324,88 @@ for(const{id,b64,c,m}of __wasmBlocks){
324
324
  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}}
325
325
  return r};
326
326
  }})();
327
- `.trim(),results:$}}function kZ(Z,$,X){if(!Z||!$)return!1;let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*?\\b${X}\\s*([=:])`,"s"),H=Z.match(Q);if(!H)return!1;return H[1]===":"}function gZ(Z,$,X,Q,H){let K=[],Y=Q0($,Z),z={},G=!1,W,J;if(Z.params.length===1&&(Z.params[0].type==="ObjectPattern"||Z.params[0].type==="AssignmentPattern"&&Z.params[0].left.type==="ObjectPattern")){G=!0;let U=Z.params[0],q=U.type==="ObjectPattern"?U:U.left,I=P1(q,X);if(I.type.kind==="object"&&I.type.destructuredParams){W={},J=new Set;for(let[B,R]of Object.entries(I.type.destructuredParams))if(z[B]={...R,description:Y.params[B]},W[B]=R.type,R.required)J.add(B)}}else for(let U of Z.params)if(U.type==="Identifier"){let q=P1(U,X);z[U.name]={...q,required:X.has(U.name),description:Y.params[U.name]}}else if(U.type==="AssignmentPattern"&&U.left.type==="Identifier"){let q=P1(U,X),I=kZ(H||"",Z.id?.name||"",U.left.name);z[U.left.name]={...q,required:I,default:I?null:q.example??q.default,description:Y.params[U.left.name]}}else if(U.type==="ObjectPattern"){let q=P1(U,X);if(q.type.kind==="object"&&q.type.destructuredParams)for(let[I,B]of Object.entries(q.type.destructuredParams))z[I]={...B,description:Y.params[I]}}else if(U.type==="RestElement"&&U.argument?.type==="Identifier"){let q=U.argument.name,I=$.match(new RegExp(`\\.\\.\\.${q}\\s*:\\s*([^)]+?)\\s*\\)`));if(I)try{let B=z7(I[1].trim(),0,{ecmaVersion:2022}),R=H1(B);z[q]={name:q,type:R,required:!1,description:Y.params[q]}}catch{z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}else z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}let L;if(Q)try{let U=Q.includes("=")?G7(Q):Q,q=z7(U,0,{ecmaVersion:2022});L=H1(q)}catch{L={kind:"any"},K.push(`Could not parse return type: ${Q}`)}return{types:{name:Z.id?.name||"anonymous",params:z,returns:L,description:Y.description,isDestructuredParam:G,destructuredShape:W,destructuredRequired:J},warnings:K}}function bZ(Z,$,X){let Q=[],H=X?`${X}:`:"",K=X?`${X}:${Z}`:Z;if($.isDestructuredParam&&$.destructuredShape){let z=$.destructuredShape,G=$.destructuredRequired||new Set,W=Object.keys(z);if(W.length===0)return null;for(let J of W)Q.push(`if (${J} instanceof Error) return ${J};`);for(let[J,L]of Object.entries(z)){let _=G.has(J),U=`${H}${Z}.${J}`,q=f4(J,L);if(q){let I=L.kind;if(_)Q.push(`if (${q}) return __tjs.typeError('${U}', '${I}', ${J});`);else Q.push(`if (${J} !== undefined && ${q}) return __tjs.typeError('${U}', '${I}', ${J});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${K}');`),Q.unshift("try {"),{preamble:Q.join(`
327
+ `.trim(),results:$}}function gZ(Z,$,X){if(!Z||!$)return!1;let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*?\\b${X}\\s*([=:])`,"s"),H=Z.match(Q);if(!H)return!1;return H[1]===":"}function bZ(Z,$,X,Q,H){let K=[],Y=Q0($,Z),z={},G=!1,W,J;if(Z.params.length===1&&(Z.params[0].type==="ObjectPattern"||Z.params[0].type==="AssignmentPattern"&&Z.params[0].left.type==="ObjectPattern")){G=!0;let U=Z.params[0],q=U.type==="ObjectPattern"?U:U.left,I=P1(q,X);if(I.type.kind==="object"&&I.type.destructuredParams){W={},J=new Set;for(let[M,B]of Object.entries(I.type.destructuredParams))if(z[M]={...B,description:Y.params[M]},W[M]=B.type,B.required)J.add(M)}}else for(let U of Z.params)if(U.type==="Identifier"){let q=P1(U,X);z[U.name]={...q,required:X.has(U.name),description:Y.params[U.name]}}else if(U.type==="AssignmentPattern"&&U.left.type==="Identifier"){let q=P1(U,X),I=gZ(H||"",Z.id?.name||"",U.left.name);z[U.left.name]={...q,required:I,default:I?null:q.example??q.default,description:Y.params[U.left.name]}}else if(U.type==="ObjectPattern"){let q=P1(U,X);if(q.type.kind==="object"&&q.type.destructuredParams)for(let[I,M]of Object.entries(q.type.destructuredParams))z[I]={...M,description:Y.params[I]}}else if(U.type==="RestElement"&&U.argument?.type==="Identifier"){let q=U.argument.name,I=$.match(new RegExp(`\\.\\.\\.${q}\\s*:\\s*([^)]+?)\\s*\\)`));if(I)try{let M=z7(I[1].trim(),0,{ecmaVersion:2022}),B=H1(M);z[q]={name:q,type:B,required:!1,description:Y.params[q]}}catch{z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}else z[q]={name:q,type:{kind:"array"},required:!1,description:Y.params[q]}}let L;if(Q)try{let U=Q.includes("=")?G7(Q):Q,q=z7(U,0,{ecmaVersion:2022});L=H1(q)}catch{L={kind:"any"},K.push(`Could not parse return type: ${Q}`)}return{types:{name:Z.id?.name||"anonymous",params:z,returns:L,description:Y.description,isDestructuredParam:G,destructuredShape:W,destructuredRequired:J},warnings:K}}function vZ(Z,$,X){let Q=[],H=X?`${X}:`:"",K=X?`${X}:${Z}`:Z;if($.isDestructuredParam&&$.destructuredShape){let z=$.destructuredShape,G=$.destructuredRequired||new Set,W=Object.keys(z);if(W.length===0)return null;for(let J of W)Q.push(`if (${J} instanceof Error) return ${J};`);for(let[J,L]of Object.entries(z)){let _=G.has(J),U=`${H}${Z}.${J}`,q=f4(J,L);if(q){let I=L.kind;if(_)Q.push(`if (${q}) return __tjs.typeError('${U}', '${I}', ${J});`);else Q.push(`if (${J} !== undefined && ${q}) return __tjs.typeError('${U}', '${I}', ${J});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${K}');`),Q.unshift("try {"),{preamble:Q.join(`
328
328
  `),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,G]of Y){let W=`${H}${Z}.${z}`,J=f4(z,G.type);if(J){let L=G.type.kind==="union"?G.type.members.map((_)=>_.kind).join(" | "):G.type.kind;if(G.required)Q.push(`if (${J}) return __tjs.typeError('${W}', '${L}', ${z});`);else Q.push(`if (${z} !== undefined && ${J}) return __tjs.typeError('${W}', '${L}', ${z});`)}}if(Q.length===0)return null;return Q.unshift(`__tjs.pushStack('${K}');`),Q.unshift("try {"),{preamble:Q.join(`
329
- `),suffix:"} finally { __tjs.popStack(); }"}}function G7(Z){let $="",X=0;for(let Q=0;Q<Z.length;Q++){let H=Z[Q];if(H==="{"||H==="["||H==="(")X++,$+=H;else if(H==="}"||H==="]"||H===")")X--,$+=H;else if(H==="'"||H==='"'||H==="`"){$+=H,Q++;while(Q<Z.length&&Z[Q]!==H){if(Z[Q]==="\\")$+=Z[Q++];$+=Z[Q++]}if(Q<Z.length)$+=Z[Q]}else if(X===1&&H==="="&&Z[Q-1]!=="!"&&Z[Q+1]!=="=")$+=":";else $+=H}return $}function vZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(Z);if(!Q)return null;let H=Z.slice(Q.index+Q[0].length);return k4(H)}function fZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(Z);if(!Q)return;let H=Q[1];if(H==="?")return"safe";if(H==="!")return"unsafe";return}function yZ(Z){let $=Z.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return $?$[1].trim():void 0}function hZ(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 U0(Z,$={}){let{filename:X="<source>",runTests:Q=!0,debug:H=!1,resolvedImports:K={}}=$,Y=[],G=yZ(Z)||X,{code:W,tests:J,mocks:L,testRunner:_}=E4(Z),{ast:U,originalSource:q,requiredParams:I,unsafeFunctions:B}=w1(W,{filename:X,colonShorthand:!0}),R=xZ(U),C=T0(W),w={},F=[],M=[];for(let v of R){let h=v.id?.name||"anonymous",Z1=vZ(W,h),s;if(Z1&&Z1.includes("="))try{let z1=Z1.matchAll(/(\w+)\s*=\s*/g),L1=G7(Z1),T1=Function(`return ${L1}`)(),U1={};for(let j8 of z1){let F4=j8[1];if(F4 in T1)U1[F4]=T1[F4]}if(Object.keys(U1).length>0)s=U1}catch{}let{types:D1,warnings:I8}=gZ(v,q,I,Z1,W);Y.push(...I8),w[h]=D1;for(let z1 of v.params)if(z1.type==="AssignmentPattern"){let L1=z1.left?.name||z1.left?.value,T1=L1?D1.params[L1]:null;if(T1?.required&&T1.default===null)M.push({start:z1.left.end,end:z1.right.end});else{let U1=z1.right;if(U1.type==="BinaryExpression"&&U1.operator==="|")M.push({start:U1.left.end,end:U1.end})}}let R6=C.moduleSafety==="none"||B.has(h),R8=C.safeFunctions.has(h),B8=fZ(W,h),w8=hZ(Z,h),u1={file:G,line:w8??v.loc?.start.line??0,column:v.loc?.start.column??0},M8={unsafe:R6,safe:R8,returnSafety:B8},B6=C.polymorphicNames.has(h),j4;if(B6){let z1=[];for(let T1 of R){let U1=T1.id?.name||"";if(U1.startsWith(h+"$"))z1.push(U1)}let L1={polymorphic:!0,variants:z1};if(u1)L1.source=`${u1.file}:${u1.line}`;j4=`${h}.__tjs = ${JSON.stringify(L1,null,2)}`}else j4=uZ(h,D1,M8,{debug:H,source:u1,returnDefaults:s});if(F.push({position:v.end,text:`
330
- ${j4}`}),!R6&&!B6){let z1=`${u1.file}:${u1.line}`,L1=bZ(h,D1,z1);if(L1&&v.body&&v.body.start!==void 0)F.push({position:v.body.start+1,text:`
329
+ `),suffix:"} finally { __tjs.popStack(); }"}}function G7(Z){let $="",X=0;for(let Q=0;Q<Z.length;Q++){let H=Z[Q];if(H==="{"||H==="["||H==="(")X++,$+=H;else if(H==="}"||H==="]"||H===")")X--,$+=H;else if(H==="'"||H==='"'||H==="`"){$+=H,Q++;while(Q<Z.length&&Z[Q]!==H){if(Z[Q]==="\\")$+=Z[Q++];$+=Z[Q++]}if(Q<Z.length)$+=Z[Q]}else if(X===1&&H==="="&&Z[Q-1]!=="!"&&Z[Q+1]!=="=")$+=":";else $+=H}return $}function fZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*(-[>?!])\\s*`,"g").exec(Z);if(!Q)return null;let H=Z.slice(Q.index+Q[0].length);return k4(H)}function yZ(Z,$){let Q=new RegExp(`function\\s+${$}\\s*\\([^)]*\\)\\s*-([>?!])`,"g").exec(Z);if(!Q)return;let H=Q[1];if(H==="?")return"safe";if(H==="!")return"unsafe";return}function hZ(Z){let $=Z.match(/^\/\*\s*tjs\s*<-\s*([^*]+?)\s*\*\//);return $?$[1].trim():void 0}function xZ(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 U0(Z,$={}){let{filename:X="<source>",runTests:Q=!0,debug:H=!1,resolvedImports:K={}}=$,Y=[],G=hZ(Z)||X,{code:W,tests:J,mocks:L,testRunner:_}=E4(Z),{ast:U,originalSource:q,requiredParams:I,unsafeFunctions:M}=M1(W,{filename:X,colonShorthand:!0}),B=uZ(U),P=S0(W),R={},F=[],w=[];for(let v of B){let x=v.id?.name||"anonymous",Z1=fZ(W,x),s;if(Z1&&Z1.includes("="))try{let z1=Z1.matchAll(/(\w+)\s*=\s*/g),L1=G7(Z1),T1=Function(`return ${L1}`)(),U1={};for(let F8 of z1){let F4=F8[1];if(F4 in T1)U1[F4]=T1[F4]}if(Object.keys(U1).length>0)s=U1}catch{}let{types:D1,warnings:B8}=bZ(v,q,I,Z1,W);Y.push(...B8),R[x]=D1;for(let z1 of v.params)if(z1.type==="AssignmentPattern"){let L1=z1.left?.name||z1.left?.value,T1=L1?D1.params[L1]:null;if(T1?.required&&T1.default===null)w.push({start:z1.left.end,end:z1.right.end});else{let U1=z1.right;if(U1.type==="BinaryExpression"&&U1.operator==="|")w.push({start:U1.left.end,end:U1.end})}}let B6=P.moduleSafety==="none"||M.has(x),R8=P.safeFunctions.has(x),M8=yZ(W,x),w8=xZ(Z,x),u1={file:G,line:w8??v.loc?.start.line??0,column:v.loc?.start.column??0},j8={unsafe:B6,safe:R8,returnSafety:M8},R6=P.polymorphicNames.has(x),j4;if(R6){let z1=[];for(let T1 of B){let U1=T1.id?.name||"";if(U1.startsWith(x+"$"))z1.push(U1)}let L1={polymorphic:!0,variants:z1};if(u1)L1.source=`${u1.file}:${u1.line}`;j4=`${x}.__tjs = ${JSON.stringify(L1,null,2)}`}else j4=dZ(x,D1,j8,{debug:H,source:u1,returnDefaults:s});if(F.push({position:v.end,text:`
330
+ ${j4}`}),!B6&&!R6){let z1=`${u1.file}:${u1.line}`,L1=vZ(x,D1,z1);if(L1&&v.body&&v.body.start!==void 0)F.push({position:v.body.start+1,text:`
331
331
  ${L1.preamble}
332
332
  `}),F.push({position:v.body.end-1,text:`
333
333
  ${L1.suffix}
334
- `})}}M.sort((v,h)=>h.start-v.start);let P=C.source;for(let{start:v,end:h}of M)P=P.slice(0,v)+P.slice(h);for(let v of F){let h=0;for(let Z1 of M)if(Z1.start<v.position)h+=Z1.end-Z1.start;v.position-=h}F.sort((v,h)=>h.position-v.position);for(let{position:v,text:h}of F)P=P.slice(0,v)+h+P.slice(v);let V=P.includes("__tjs.typeError("),O=P.includes("__tjs.pushStack("),N=P.includes("Is("),S=P.includes("IsNot("),g=C.tjsModes.tjsSafeEval;if(V||O||N||S||g){let v=`const __tjs = globalThis.__tjs?.createRuntime?.() ?? globalThis.__tjs;
335
- `;if(N||S){let h=[N&&"Is",S&&"IsNot"].filter(Boolean).join(", ");v+=`const { ${h} } = __tjs ?? {};
336
- `}P=v+P}if(g)P=`import { Eval, SafeFunction } from 'tjs-lang';
337
- `+P;let f;if(Q){let v=e6(Z);f=Z7(J,L,v,P,K,C.extensions);let h=f.filter((Z1)=>!Z1.passed);if(h.length>0&&Q===!0){let Z1=h.map((s)=>{if(s.isSignatureTest)return` Function signature example is inconsistent:
334
+ `})}}w.sort((v,x)=>x.start-v.start);let V=P.source;for(let{start:v,end:x}of w)V=V.slice(0,v)+V.slice(x);for(let v of F){let x=0;for(let Z1 of w)if(Z1.start<v.position)x+=Z1.end-Z1.start;v.position-=x}F.sort((v,x)=>x.position-v.position);for(let{position:v,text:x}of F)V=V.slice(0,v)+x+V.slice(v);let C=V.includes("__tjs.typeError("),O=V.includes("__tjs.pushStack("),N=V.includes("Is("),S=V.includes("IsNot("),g=P.tjsModes.tjsSafeEval;if(C||O||N||S||g){let v=`const __tjs = globalThis.__tjs?.createRuntime?.() ?? globalThis.__tjs;
335
+ `;if(N||S){let x=[N&&"Is",S&&"IsNot"].filter(Boolean).join(", ");v+=`const { ${x} } = __tjs ?? {};
336
+ `}V=v+V}if(g)V=`import { Eval, SafeFunction } from 'tjs-lang';
337
+ `+V;let f;if(Q){let v=e6(Z);f=Z7(J,L,v,V,K,P.extensions);let x=f.filter((Z1)=>!Z1.passed);if(x.length>0&&Q===!0){let Z1=x.map((s)=>{if(s.isSignatureTest)return` Function signature example is inconsistent:
338
338
  ${s.error}`;let D1=s.line?` (line ${s.line})`:"";return` Test '${s.description}'${D1} failed:
339
339
  ${s.error}`});throw Error(`Transpile-time test failures:
340
340
  ${Z1.join(`
341
- `)}`)}}if(Q==="only")return{code:"",types:w,metadata:w,testResults:f,testCount:f?.length};let c;if(C.wasmBlocks.length>0){c=[];let v=Y7(C.wasmBlocks);if(v.code)P=v.code+`
342
- `+P;c=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:f,wasmCompiled:c}}function xZ(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 L0(Z){let $={kind:Z.kind};if(Z.nullable)$.nullable=!0;if(Z.items)$.items=L0(Z.items);if(Z.shape)$.shape=Object.fromEntries(Object.entries(Z.shape).map(([X,Q])=>[X,L0(Q)]));if(Z.members)$.members=Z.members.map(L0);return $}function uZ(Z,$,X={},Q={}){let H={};for(let[Y,z]of Object.entries($.params)){if(H[Y]={type:L0(z.type),required:z.required},z.default!==void 0)H[Y].default=z.default;if(z.description)H[Y].description=z.description}let K={params:H};if($.returns){if(K.returns={type:L0($.returns)},Q.returnDefaults)K.returns.defaults=Q.returnDefaults;if(X.returnSafety==="safe")K.safeReturn=!0;else if(X.returnSafety==="unsafe")K.unsafeReturn=!0}if($.description)K.description=$.description;if(X.unsafe)K.unsafe=!0;if(X.safe)K.safe=!0;if(Q.source){let{file:Y,line:z}=Q.source;K.source=`${Y}:${z}`}return`${Z}.__tjs = ${JSON.stringify(K,null,2)}`}function f4(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)=>f4(Z,Q)).filter((Q)=>Q!==null);if(X.length===0)return null;return`(${X.join(" && ")})`}case"any":return null;default:return null}}function l1(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=l1(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,H])=>`${Q}: ${l1(H)}`).join("; ")} }`;else $="Record<string, any>";break;case"union":if(Z.members&&Z.members.length>0)return Z.members.map(l1).join(" | ");$="any";break;default:$="any"}if(Z.nullable)return`${$} | null`;return $}function dZ(Z,$,X,Q){let H=Object.entries($.params).map(([z,G])=>{let W=!G.required,J=l1(G.type);return W?`${z}?: ${J}`:`${z}: ${J}`}).join(", "),K=$.returns?l1($.returns):"any";return`${X?Q?"export default function":"export declare function":"declare function"} ${Z}(${H}): ${K};`}function lZ(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 H=/^[ \t]*export\s+(default\s+)?class\s+(\w+)/gm;while((X=H.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let K=/^[ \t]*export\s+(default\s+)?(?:const|let|var)\s+(\w+)/gm;while((X=K.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 G=/^[ \t]*export\s+FunctionPredicate\s+(\w+)/gm;while((X=G.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let W=/^[ \t]*export\s*\{([^}]+)\}/gm;while((X=W.exec(Z))!==null){let J=X[1].split(",").map((L)=>L.trim().split(/\s+as\s+/));for(let L of J){let _=L.length>1?L[1]:L[0];if(_&&/^\w+$/.test(_))$.set(_,{exported:!0,isDefault:!1})}}return $}function mZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?FunctionPredicate\s+(\w+)\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q.index+Q[0].length-1,Y=1,z=K+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}let G=Z.slice(K+1,z-1),W=[],J=G.match(/params\s*:\s*\{([^}]*)\}/);if(J){let U=J[1],q=J7(U);for(let I of q){let B=I.match(/^(\w+)\s*:\s*(.+)$/);if(B)W.push({name:B[1],example:B[2].trim()})}}let L,_=G.match(/returns\s*:\s*(.+?)(?:\n|$)/);if(_)L=_[1].trim();$.set(H,{params:W,returns:L})}return $}function iZ(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 H=Q[1],K=Q.index+Q[0].length-1,Y=1,z=K+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}let G=Z.slice(K+1,z-1),W=G.indexOf("constructor"),J="";if(W!==-1){let q=G.indexOf("(",W);if(q!==-1){let I=1,B=q+1;while(B<G.length&&I>0){if(G[B]==="(")I++;else if(G[B]===")")I--;B++}J=G.slice(q+1,B-1).trim()}}let L=[],_=/^\s+(\w+)\s*\(/gm,U;while((U=_.exec(G))!==null){let q=U[1];if(q==="constructor"||q==="get"||q==="set")continue;let I=U.index+U[0].length-1,B=1,R=I+1;while(R<G.length&&B>0){if(G[R]==="(")B++;else if(G[R]===")")B--;R++}let C=G.slice(I+1,R-1).trim(),w=G.slice(R).match(/^\s*->\s*(.+?)\s*\{/),F=w?w[1].trim():null;L.push({name:q,params:C,returnType:F})}$.set(H,{name:H,constructorParams:J,methods:L})}return $}function J7(Z){let $=[],X=0,Q="";for(let H of Z){if(H==="{"||H==="["||H==="(")X++;else if(H==="}"||H==="]"||H===")")X--;if(H===","&&X===0)$.push(Q.trim()),Q="";else Q+=H}if(Q.trim())$.push(Q.trim());return $}function W7(Z){if(!Z.trim())return"";return J7(Z).map(($)=>{let X=$.match(/^(\w+)\s*:\s*(.+)$/);if(X){let H=X[1],K=m1(X[2].trim());return`${H}: ${K}`}let Q=$.match(/^(\w+)\s*=\s*(.+)$/);if(Q){let H=Q[1],K=m1(Q[2].trim());return`${H}?: ${K}`}if($.startsWith("{"))return"options: any";return`${$}: any`}).join(", ")}function pZ(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 H=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s+([^{=].*)$/gm;while((X=H.exec(Z))!==null)if(!$.has(X[1]))$.set(X[1],X[2].trim());let K=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*\{[^}]*example\s*:\s*(.+?)(?:\n|\s*[,}])/gm;while((X=K.exec(Z))!==null)$.set(X[1],X[2].trim());return $}function nZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?Generic\s+(\w+)\s*<([^>]+)>\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q[2].split(",").map((_)=>{return _.trim().split(/\s*=/)[0].trim()}),Y=Q.index+Q[0].length-1,z=1,G=Y+1;while(G<Z.length&&z>0){if(Z[G]==="{")z++;else if(Z[G]==="}")z--;G++}let W=Z.slice(Y+1,G-1),J,L=W.match(/\bdeclaration\s*\{/);if(L&&L.index!==void 0){let _=L.index+L[0].length-1,U=1,q=_+1;while(q<W.length&&U>0){if(W[q]==="{")U++;else if(W[q]==="}")U--;q++}J=W.slice(_+1,q-1).trim()}$.set(H,{typeParams:K,declaration:J})}return $}function cZ(Z,$,X={}){let Q=[],H=lZ($),K=pZ($),Y=iZ($),z=nZ($),G=H.size>0,W=new Set;for(let[L,_]of Object.entries(Z.types)){if(L.includes("$"))continue;let U=H.get(L),q=G?!!U?.exported:!0,I=U?.isDefault??!1;if(!q)continue;if(_.description)Q.push(`/** ${_.description} */`);Q.push(dZ(L,_,!0,I)),W.add(L)}for(let[L,_]of Y){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=_.constructorParams?W7(_.constructorParams):"";if(Q.push(`export declare function ${L}(${I}): any;`),I||_.methods.length>0){if(Q.push(`export declare class ${L} {`),_.constructorParams)Q.push(` constructor(${I});`);for(let B of _.methods){let R=B.params?W7(B.params):"";Q.push(` ${B.name}(${R}): any;`)}Q.push("}")}W.add(L)}for(let[L,_]of K){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=m1(_);Q.push(`export declare const ${L}: { check(value: any): boolean; default: ${I}; (value: any): boolean; };`),W.add(L)}for(let[L,_]of z){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=_.typeParams.length>0?`<${_.typeParams.join(", ")}>`:"";if(_.declaration){let B=_.declaration.split(`
343
- `).map((R)=>R.trim()).filter((R)=>R.length>0).map((R)=>` ${R}`).join(`
341
+ `)}`)}}if(Q==="only")return{code:"",types:R,metadata:R,testResults:f,testCount:f?.length};let c;if(P.wasmBlocks.length>0){c=[];let v=Y7(P.wasmBlocks);if(v.code)V=v.code+`
342
+ `+V;c=v.results}return{code:V,types:R,metadata:R,warnings:Y.length>0?Y:void 0,testRunner:J.length>0?_:void 0,testCount:J.length>0?J.length:void 0,testResults:f,wasmCompiled:c}}function uZ(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 L0(Z){let $={kind:Z.kind};if(Z.nullable)$.nullable=!0;if(Z.items)$.items=L0(Z.items);if(Z.shape)$.shape=Object.fromEntries(Object.entries(Z.shape).map(([X,Q])=>[X,L0(Q)]));if(Z.members)$.members=Z.members.map(L0);return $}function dZ(Z,$,X={},Q={}){let H={};for(let[Y,z]of Object.entries($.params)){if(H[Y]={type:L0(z.type),required:z.required},z.default!==void 0)H[Y].default=z.default;if(z.description)H[Y].description=z.description}let K={params:H};if($.returns){if(K.returns={type:L0($.returns)},Q.returnDefaults)K.returns.defaults=Q.returnDefaults;if(X.returnSafety==="safe")K.safeReturn=!0;else if(X.returnSafety==="unsafe")K.unsafeReturn=!0}if($.description)K.description=$.description;if(X.unsafe)K.unsafe=!0;if(X.safe)K.safe=!0;if(Q.source){let{file:Y,line:z}=Q.source;K.source=`${Y}:${z}`}return`${Z}.__tjs = ${JSON.stringify(K,null,2)}`}function f4(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)=>f4(Z,Q)).filter((Q)=>Q!==null);if(X.length===0)return null;return`(${X.join(" && ")})`}case"any":return null;default:return null}}function l1(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=l1(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,H])=>`${Q}: ${l1(H)}`).join("; ")} }`;else $="Record<string, any>";break;case"union":if(Z.members&&Z.members.length>0)return Z.members.map(l1).join(" | ");$="any";break;default:$="any"}if(Z.nullable)return`${$} | null`;return $}function lZ(Z,$,X,Q){let H=Object.entries($.params).map(([z,G])=>{let W=!G.required,J=l1(G.type);return W?`${z}?: ${J}`:`${z}: ${J}`}).join(", "),K=$.returns?l1($.returns):"any";return`${X?Q?"export default function":"export declare function":"declare function"} ${Z}(${H}): ${K};`}function mZ(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 H=/^[ \t]*export\s+(default\s+)?class\s+(\w+)/gm;while((X=H.exec(Z))!==null)$.set(X[2],{exported:!0,isDefault:!!X[1]});let K=/^[ \t]*export\s+(default\s+)?(?:const|let|var)\s+(\w+)/gm;while((X=K.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 G=/^[ \t]*export\s+FunctionPredicate\s+(\w+)/gm;while((X=G.exec(Z))!==null)$.set(X[1],{exported:!0,isDefault:!1});let W=/^[ \t]*export\s*\{([^}]+)\}/gm;while((X=W.exec(Z))!==null){let J=X[1].split(",").map((L)=>L.trim().split(/\s+as\s+/));for(let L of J){let _=L.length>1?L[1]:L[0];if(_&&/^\w+$/.test(_))$.set(_,{exported:!0,isDefault:!1})}}return $}function iZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?FunctionPredicate\s+(\w+)\s*(?:<([^>]+)>)?\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q[2],Y=Q.index+Q[0].length-1,z=1,G=Y+1;while(G<Z.length&&z>0){if(Z[G]==="{")z++;else if(Z[G]==="}")z--;G++}let W=Z.slice(Y+1,G-1),J;if(K)J=K.split(",").map((I)=>I.trim());let L=[],_=W.match(/params\s*:\s*\{([^}]*)\}/);if(_){let I=_[1],M=J7(I);for(let B of M){let P=B.match(/^(\w+)\s*:\s*(.+)$/);if(P)L.push({name:P[1],example:P[2].trim()})}}let U,q=W.match(/returns\s*:\s*(.+?)(?:\n|$)/);if(q)U=q[1].trim();$.set(H,{params:L,returns:U,typeParams:J})}return $}function pZ(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 H=Q[1],K=Q.index+Q[0].length-1,Y=1,z=K+1;while(z<Z.length&&Y>0){if(Z[z]==="{")Y++;else if(Z[z]==="}")Y--;z++}let G=Z.slice(K+1,z-1),W=G.indexOf("constructor"),J="";if(W!==-1){let q=G.indexOf("(",W);if(q!==-1){let I=1,M=q+1;while(M<G.length&&I>0){if(G[M]==="(")I++;else if(G[M]===")")I--;M++}J=G.slice(q+1,M-1).trim()}}let L=[],_=/^\s+(\w+)\s*\(/gm,U;while((U=_.exec(G))!==null){let q=U[1];if(q==="constructor"||q==="get"||q==="set")continue;let I=U.index+U[0].length-1,M=1,B=I+1;while(B<G.length&&M>0){if(G[B]==="(")M++;else if(G[B]===")")M--;B++}let P=G.slice(I+1,B-1).trim(),R=G.slice(B).match(/^\s*->\s*(.+?)\s*\{/),F=R?R[1].trim():null;L.push({name:q,params:P,returnType:F})}$.set(H,{name:H,constructorParams:J,methods:L})}return $}function J7(Z){let $=[],X=0,Q="";for(let H of Z){if(H==="{"||H==="["||H==="(")X++;else if(H==="}"||H==="]"||H===")")X--;if(H===","&&X===0)$.push(Q.trim()),Q="";else Q+=H}if(Q.trim())$.push(Q.trim());return $}function W7(Z){if(!Z.trim())return"";return J7(Z).map(($)=>{let X=$.match(/^(\w+)\s*:\s*(.+)$/);if(X){let H=X[1],K=m1(X[2].trim());return`${H}: ${K}`}let Q=$.match(/^(\w+)\s*=\s*(.+)$/);if(Q){let H=Q[1],K=m1(Q[2].trim());return`${H}?: ${K}`}if($.startsWith("{"))return"options: any";return`${$}: any`}).join(", ")}function nZ(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 H=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s+([^{=].*)$/gm;while((X=H.exec(Z))!==null)if(!$.has(X[1]))$.set(X[1],X[2].trim());let K=/^[ \t]*(?:export\s+)?Type\s+(\w+)\s*\{[^}]*example\s*:\s*(.+?)(?:\n|\s*[,}])/gm;while((X=K.exec(Z))!==null)$.set(X[1],X[2].trim());return $}function cZ(Z){let $=new Map,X=/^[ \t]*(?:export\s+)?Generic\s+(\w+)\s*<([^>]+)>\s*\{/gm,Q;while((Q=X.exec(Z))!==null){let H=Q[1],K=Q[2].split(",").map((_)=>{return _.trim().split(/\s*=/)[0].trim()}),Y=Q.index+Q[0].length-1,z=1,G=Y+1;while(G<Z.length&&z>0){if(Z[G]==="{")z++;else if(Z[G]==="}")z--;G++}let W=Z.slice(Y+1,G-1),J,L=W.match(/\bdeclaration\s*\{/);if(L&&L.index!==void 0){let _=L.index+L[0].length-1,U=1,q=_+1;while(q<W.length&&U>0){if(W[q]==="{")U++;else if(W[q]==="}")U--;q++}J=W.slice(_+1,q-1).trim()}$.set(H,{typeParams:K,declaration:J})}return $}function oZ(Z,$,X={}){let Q=[],H=mZ($),K=nZ($),Y=pZ($),z=cZ($),G=H.size>0,W=new Set;for(let[L,_]of Object.entries(Z.types)){if(L.includes("$"))continue;let U=H.get(L),q=G?!!U?.exported:!0,I=U?.isDefault??!1;if(!q)continue;if(_.description)Q.push(`/** ${_.description} */`);Q.push(lZ(L,_,!0,I)),W.add(L)}for(let[L,_]of Y){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=_.constructorParams?W7(_.constructorParams):"";if(Q.push(`export declare function ${L}(${I}): any;`),I||_.methods.length>0){if(Q.push(`export declare class ${L} {`),_.constructorParams)Q.push(` constructor(${I});`);for(let M of _.methods){let B=M.params?W7(M.params):"";Q.push(` ${M.name}(${B}): any;`)}Q.push("}")}W.add(L)}for(let[L,_]of K){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=m1(_);Q.push(`export declare const ${L}: { check(value: any): boolean; default: ${I}; (value: any): boolean; };`),W.add(L)}for(let[L,_]of z){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=_.typeParams.length>0?`<${_.typeParams.join(", ")}>`:"";if(_.declaration){let M=_.declaration.split(`
343
+ `).map((B)=>B.trim()).filter((B)=>B.length>0).map((B)=>` ${B}`).join(`
344
344
  `);Q.push(`export interface ${L}${I} {
345
- ${B}
346
- }`)}else Q.push(`export declare function ${L}(...args: any[]): { check(value: any): boolean; (value: any): boolean; };`);W.add(L)}let J=mZ($);for(let[L,_]of J){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=_.params.map((R)=>`${R.name}: ${m1(R.example)}`).join(", "),B=_.returns!==void 0?m1(_.returns):"void";Q.push(`export type ${L} = (${I}) => ${B};`),W.add(L)}if(X.moduleName){let L=Q.map((_)=>` ${_}`).join(`
345
+ ${M}
346
+ }`)}else Q.push(`export declare function ${L}(...args: any[]): { check(value: any): boolean; (value: any): boolean; };`);W.add(L)}let J=iZ($);for(let[L,_]of J){if(W.has(L))continue;let U=H.get(L);if(!(G?!!U?.exported:!0))continue;let I=new Set(_.typeParams?.map((R)=>R.split("=")[0].trim())??[]),M=_.typeParams?`<${_.typeParams.join(", ")}>`:"",B=_.params.map((R)=>{let F=I.has(R.example)?R.example:m1(R.example);return`${R.name}: ${F}`}).join(", "),P=_.returns!==void 0?I.has(_.returns)?_.returns:m1(_.returns):"void";Q.push(`export type ${L}${M} = (${B}) => ${P};`),W.add(L)}if(X.moduleName){let L=Q.map((_)=>` ${_}`).join(`
347
347
  `);return`declare module '${X.moduleName}' {
348
348
  ${L}
349
349
  }
350
350
  `}return Q.join(`
351
351
  `)+`
352
- `}function m1(Z){let $=Z.trim();if(oZ($)){let X=sZ($).map((Q)=>m1(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 oZ(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 sZ(Z){let $=[],X=0,Q=null,H="";for(let K of Z){if(Q){if(H+=K,K===Q)Q=null;continue}if(K==="'"||K==='"'||K==="`"){Q=K,H+=K;continue}if(K==="{"||K==="["||K==="(")X++;else if(K==="}"||K==="]"||K===")")X--;if(K==="|"&&X===0)$.push(H),H="";else H+=K}if(H)$.push(H);return $}import j from"typescript";import{validate as U7,s as Q4}from"tosijs-schema";import{validate as y4,s as h0}from"tosijs-schema";function C1(Z){return Z!==null&&typeof Z==="object"&&"__runtimeType"in Z&&Z.__runtimeType===!0}function _7(Z){return Z!==null&&typeof Z==="object"&&"schema"in Z&&typeof Z.schema==="object"}function aZ(Z){return Z!==null&&typeof Z==="object"&&"type"in Z&&typeof Z.type==="string"}function o(Z,$,X,Q){let H,K,Y,z=X,G=Q;if(typeof Z==="string")if(H=Z,typeof $==="function"){if(K=$,z!==void 0)Y=h0.infer(z)}else if($===void 0&&z!==void 0)Y=h0.infer(z);else if(_7($))Y=$;else if(aZ($))Y=$;else if($!==void 0)z=$,G=z,Y=h0.infer(z);else throw Error("Type(description) requires a predicate, schema, or example");else{if(_7(Z))Y=Z;else Y=Z;H=rZ(Y)}let W;if(Y){let L=Y?.schema??Y;if(L&&typeof L==="object"&&Array.isArray(L.examples))W=L.examples}if(z===void 0&&W&&W.length>0)z=W[0];return{description:H,check:(L)=>{if(K)return K(L);if(Y)return y4(L,Y);return!1},schema:Y,predicate:K,example:z,examples:W,default:G,__runtimeType:!0}}function rZ(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=o("string",(Z)=>typeof Z==="string"),u0=o("number",(Z)=>typeof Z==="number"),d0=o("boolean",(Z)=>typeof Z==="boolean"),l0=o("integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)),m0=o("positive integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)&&Z>0),i0=o("non-empty string",(Z)=>typeof Z==="string"&&Z.length>0),p0=o("email address",(Z)=>typeof Z==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(Z)),h4=(Z)=>{try{return new URL(Z),!0}catch{return!1}},n0=o("URL",(Z)=>typeof Z==="string"&&h4(Z)),c0=o("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)),x4=(Z)=>{let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")},u4=(Z)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=new Date(Z+"T00:00:00Z");return!isNaN($.getTime())},d4=o("ISO 8601 timestamp",(Z)=>typeof Z==="string"&&x4(Z)),l4=o("date (YYYY-MM-DD)",(Z)=>typeof Z==="string"&&u4(Z));function o0(Z){return o(`${Z.description} or null`,($)=>$===null||Z.check($))}function s0(Z){return o(`${Z.description} (optional)`,($)=>$===null||$===void 0||Z.check($))}function a0(Z,$,...X){if(typeof Z==="string"&&Array.isArray($)){let K=Z,Y=$,z=new Set(Y);return{description:K,check:(W)=>z.has(W),__runtimeType:!0,values:Y}}let Q=[];if(C1(Z))Q.push(Z);if(C1($))Q.push($);Q.push(...X);let H=Q.map((K)=>K.description).join(" | ");return o(H,(K)=>Q.some((Y)=>Y.check(K)))}function r0(Z){return o(`array of ${Z.description}`,($)=>Array.isArray($)&&$.every((X)=>Z.check(X)))}function tZ(Z){if(C1(Z))return(X)=>Z.check(X);if(Z&&typeof Z==="object"&&"schema"in Z)return(X)=>y4(X,Z);let $=h0.infer(Z);return(X)=>y4(X,$)}function i1(Z,$,X){let Q=[],H=[];for(let Y of Z)if(typeof Y==="string")Q.push(Y),H.push(void 0);else Q.push(Y[0]),H.push(Y[1]);let K=(...Y)=>{let z=Q.map((W,J)=>{let L=J<Y.length?Y[J]:H[J];if(L===void 0)return()=>!0;return tZ(L)}),G=X;return Q.forEach((W,J)=>{let L=J<Y.length?Y[J]:H[J],_="any";if(C1(L))_=L.description;else if(L!==void 0)_=typeof L==="string"?"string":JSON.stringify(L);G=G.replace(new RegExp(`\\b${W}\\b`,"g"),_)}),o(G,(W)=>$(W,...z))};return K.params=Q,K.description=X,K}var t0=i1(["T","U"],(Z,$,X)=>Array.isArray(Z)&&Z.length===2&&$(Z[0])&&X(Z[1]),"Pair<T, U>"),e0=i1(["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),H=Object.keys($),K={};for(let[z,G]of Object.entries($))K[G]=z;return{description:Z,check:(z)=>Q.has(z),__runtimeType:!0,members:$,names:K,values:X,keys:H}}function eZ(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";switch(typeof Z){case"string":return"string";case"boolean":return"boolean";case"number":return Number.isInteger(Z)?"integer":"number";case"object":return Array.isArray(Z)?"array":"object";default:return null}}function $4(Z,$){let X={},Q=void 0,H="assertReturns";if(typeof $==="function"){let Y=$.__tjs;if(Y){if(Y.params)for(let[z,G]of Object.entries(Y.params))X[z]=G?.example??null;if(Y.returns)Q=Y.returns?.example??null;if(Y.safeReturn)H="checkedReturns";else if(Y.unsafe)H="assertReturns";else H="returns"}}else X=$.params??{},Q=$.returns,H=$.returnContract??"assertReturns";return{description:Z,params:X,returns:Q,returnContract:H,check:(Y)=>{if(typeof Y!=="function")return!1;let z=Object.keys(X).length;if(z>0){let W=Y.__tjs;if(W?.params){if(Object.keys(W.params).length!==z)return!1;let L=Object.keys(X),_=Object.keys(W.params);for(let U=0;U<L.length;U++){let q=W.params[_[U]],I=X[L[U]];if(q?.type?.kind&&I!==void 0){let B=eZ(I);if(B&&q.type.kind!==B&&q.type.kind!=="any")return!1}}}}return!0},__runtimeType:!0}}var $5=L7(),$1=$5.version,q0=Symbol.for("tjs.equals");function H4(Z){let[$=0,X=0,Q=0]=Z.split(".").map(Number);return{major:$,minor:X,patch:Q}}function m4(Z,$){let X=H4(Z),Q=H4($);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 i4(Z,$){let X=H4(Z),Q=H4($);return X.major===Q.major}class f1 extends Error{path;expected;actual;callStack;constructor(Z,$,X,Q,H){super(Z);if(this.name="MonadicError",this.path=$,this.expected=X,this.actual=Q,this.callStack=H,Error.captureStackTrace)Error.captureStackTrace(this,f1)}}function X5(Z,$,X){let Q=X===null?"null":typeof X,H=K1.debug?A7():void 0;return new f1(`Expected ${$} for '${Z}', got ${Q}`,Z,$,Q,H)}function q7(Z){return Z instanceof f1}var p4={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},K1={...p4},j1=[],n1=0;function Q5(){n1++}function H5(){if(n1>0)n1--}function K5(){return n1>0}function Y5(Z){K1={...K1,...Z}}function z5(){return{...K1}}function D7(Z){if(K1.debug&&Z){j1.push(Z);let $=K1.maxStackSize??100;while(j1.length>$)j1.shift()}}function X4(){if(K1.debug)j1.pop()}function A7(){return[...j1]}function G5(){K1={...p4},j1.length=0,n1=0}function D0(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[q0]==="function")return Z[q0]($);if($!==null&&typeof $==="object"&&typeof $[q0]==="function")return $[q0](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((H,K)=>D0(H,$[K]))}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((H)=>D0(Z[H],$[H]))}function I7(Z,$){return!D0(Z,$)}function M1(Z){return Z!==null&&typeof Z==="object"&&Z.$error===!0}function R1(Z,$){let X={$error:!0,message:Z,...$};if(K1.debug&&j1.length>0){let Q=$?.path?[...j1,$.path]:[...j1];X.stack=Q}return X}function n4(Z,$){if(Z.length===0)return R1("Unknown error");if(Z.length===1)return Z[0];let X=Z.map((H)=>{if(H.path){let K=H.path.split(".");return K[K.length-1]}return"unknown"}).join(", "),Q=`Multiple parameter errors in ${$||"function"}: ${X}`;return R1(Q,{path:$,errors:Z})}function p1(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 R7(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(M1(Z))return Z;if(typeof $==="object"&&$!==null&&"check"in $){if($.check(Z))return null;return R1(`Expected ${$.description} but got ${p1(Z)}`,{path:X,expected:$.description,actual:p1(Z)})}let Q=p1(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 c4(Z,$,X){for(let[Q,H]of Object.entries($.params)){let K=Z[Q];if(M1(K))return K;if(H.required&&K===void 0){let z=typeof H.type==="string"?H.type:H.type.description;return R1(`Missing required parameter '${Q}'`,{path:X?`${X}.${Q}`:Q,expected:z,actual:"undefined",loc:H.loc})}if(K===void 0)continue;let Y=v1(K,H.type,X?`${X}.${Q}`:Q);if(Y){if(H.loc)Y.loc=H.loc;return Y}}return null}function o4(Z,$){if(Z.__tjs=$,!(!$.polymorphic&&($.safe||$.safeReturn||K1.safety!=="none"&&!$.unsafe||$.returns&&K1.safety==="all"&&!$.unsafeReturn)))return Z;let Q=!!$.returns,H=!!$.unsafe,K=!!$.safe,Y=!!$.unsafeReturn,z=!!$.safeReturn,G=$.returns?.defaults,W=Object.entries($.params),J=W.length,L=Z.name||$.name||"anonymous",_=function(...U){if(n1>0)return Z.apply(this,U);let q=K||!H&&K1.safety!=="none",I=Q&&(z||!Y&&K1.safety==="all");if(!q&&!I)return Z.apply(this,U);if(U.length>0&&M1(U[0]))return U[0];if(q){let B=U.length===1&&typeof U[0]==="object"&&U[0]!==null&&!Array.isArray(U[0]),R=[];if(!B)for(let C=0;C<J;C++){let[w,F]=W[C],M=U[C];if(M1(M)){R.push(M);continue}if(F.required&&M===void 0){R.push(R1(`Missing required parameter '${w}'`,{path:`${L}.${w}`,expected:typeof F.type==="string"?F.type:F.type?.description||"value",actual:"undefined",loc:F.loc}));continue}if(M!==void 0){let P=v1(M,F.type,`${L}.${w}`);if(P){if(F.loc)P.loc=F.loc;R.push(P)}}}else{let C=U[0];for(let w=0;w<J;w++){let[F,M]=W[w],P=C[F];if(M1(P)){R.push(P);continue}if(M.required&&P===void 0){R.push(R1(`Missing required parameter '${F}'`,{path:`${L}.${F}`,expected:typeof M.type==="string"?M.type:M.type?.description||"value",actual:"undefined",loc:M.loc}));continue}if(P!==void 0){let V=v1(P,M.type,`${L}.${F}`);if(V){if(M.loc)V.loc=M.loc;R.push(V)}}}}if(R.length>0)return n4(R,L)}D7(L);try{let B=Z.apply(this,U);if(I&&$.returns&&!M1(B)){let R=G&&typeof B==="object"&&B!==null?Object.assign({},G,B):B,C=v1(R,$.returns.type,`${L}()`);if(C)return X4(),C}return X4(),B}catch(B){return X4(),R1(B.message||String(B),{path:L,cause:B})}};return Object.defineProperty(_,"name",{value:Z.name}),_.__tjs=$,_}function B7(Z){let $=new Proxy(Z,{construct(X,Q,H){return Reflect.construct(X,Q,H)},apply(X,Q,H){return Reflect.construct(X,H)}});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 W5(){let Z={...K1},$=[],X=0;function Q(R){Z={...Z,...R}}function H(){return{...Z}}function K(R){if(Z.debug&&R){$.push(R);let C=Z.maxStackSize??100;while($.length>C)$.shift()}}function Y(){if(Z.debug)$.pop()}function z(){return[...$]}function G(){Z={...p4},$.length=0,X=0}function W(){X++}function J(){if(X>0)X--}function L(){return X>0}let _=new Map;function U(R,C,w){if(!_.has(R))_.set(R,new Map);_.get(R).set(C,w)}function q(R,C){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 M=F;while(M){let V=_.get(M);if(V?.has(C))return V.get(C);if(w==="object"&&!Array.isArray(R)){if(M=Object.getPrototypeOf(M===F?R:Object.getPrototypeOf(R))?.constructor?.name,M==="Object"||M===F)break}else break}let P=_.get("Object");if(P?.has(C))return P.get(C);return}function I(R,C,w){let F=w===null?"null":typeof w,M=Z.debug?z():void 0;return new f1(`Expected ${C} for '${R}', got ${F}`,R,C,F,M)}function B(R,C){let w={$error:!0,message:R,...C};if(Z.debug&&$.length>0){let F=C?.path?[...$,C.path]:[...$];w.stack=F}return w}return{version:$1,MonadicError:f1,typeError:I,isMonadicError:q7,isError:M1,error:B,composeErrors:n4,typeOf:p1,isNativeType:R7,checkType:v1,validateArgs:c4,wrap:o4,wrapClass:B7,compareVersions:m4,versionsCompatible:i4,configure:Q,getConfig:H,pushStack:K,popStack:Y,getStack:z,resetRuntime:G,enterUnsafe:W,exitUnsafe:J,isUnsafeMode:L,validate:U7,infer:Q4.infer.bind(Q4),Type:o,isRuntimeType:C1,Union:a0,Generic:i1,Enum:Z4,FunctionPredicate:$4,Nullable:o0,Optional:s0,TArray:r0,TString:x0,TNumber:u0,TBoolean:d0,TInteger:l0,TPositiveInt:m0,TNonEmptyString:i0,TEmail:p0,TUrl:n0,TUuid:c0,TPair:t0,TRecord:e0,Is:D0,IsNot:I7,tjsEquals:q0,registerExtension:U,resolveExtension:q}}var b1={version:$1,MonadicError:f1,typeError:X5,isMonadicError:q7,isError:M1,error:R1,composeErrors:n4,typeOf:p1,isNativeType:R7,checkType:v1,validateArgs:c4,wrap:o4,wrapClass:B7,compareVersions:m4,versionsCompatible:i4,configure:Y5,getConfig:z5,pushStack:D7,popStack:X4,getStack:A7,resetRuntime:G5,enterUnsafe:Q5,exitUnsafe:H5,isUnsafeMode:K5,createRuntime:W5,validate:U7,infer:Q4.infer.bind(Q4),Type:o,isRuntimeType:C1,Union:a0,Generic:i1,Enum:Z4,FunctionPredicate:$4,Nullable:o0,Optional:s0,TArray:r0,TString:x0,TNumber:u0,TBoolean:d0,TInteger:l0,TPositiveInt:m0,TNonEmptyString:i0,TEmail:p0,TUrl:n0,TUuid:c0,Timestamp:d4,LegalDate:l4,TPair:t0,TRecord:e0,Is:D0,IsNot:I7};function J5(){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(i4($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 _5(Z){return`
352
+ `}function m1(Z){let $=Z.trim();if(sZ($)){let X=aZ($).map((Q)=>m1(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 sZ(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 aZ(Z){let $=[],X=0,Q=null,H="";for(let K of Z){if(Q){if(H+=K,K===Q)Q=null;continue}if(K==="'"||K==='"'||K==="`"){Q=K,H+=K;continue}if(K==="{"||K==="["||K==="(")X++;else if(K==="}"||K==="]"||K===")")X--;if(K==="|"&&X===0)$.push(H),H="";else H+=K}if(H)$.push(H);return $}import j from"typescript";import{validate as U7,s as Q4}from"tosijs-schema";import{validate as y4,s as x0}from"tosijs-schema";function C1(Z){return Z!==null&&typeof Z==="object"&&"__runtimeType"in Z&&Z.__runtimeType===!0}function _7(Z){return Z!==null&&typeof Z==="object"&&"schema"in Z&&typeof Z.schema==="object"}function rZ(Z){return Z!==null&&typeof Z==="object"&&"type"in Z&&typeof Z.type==="string"}function o(Z,$,X,Q){let H,K,Y,z=X,G=Q;if(typeof Z==="string")if(H=Z,typeof $==="function"){if(K=$,z!==void 0)Y=x0.infer(z)}else if($===void 0&&z!==void 0)Y=x0.infer(z);else if(_7($))Y=$;else if(rZ($))Y=$;else if($!==void 0)z=$,G=z,Y=x0.infer(z);else throw Error("Type(description) requires a predicate, schema, or example");else{if(_7(Z))Y=Z;else Y=Z;H=tZ(Y)}let W;if(Y){let L=Y?.schema??Y;if(L&&typeof L==="object"&&Array.isArray(L.examples))W=L.examples}if(z===void 0&&W&&W.length>0)z=W[0];return{description:H,check:(L)=>{if(K)return K(L);if(Y)return y4(L,Y);return!1},schema:Y,predicate:K,example:z,examples:W,default:G,__runtimeType:!0}}function tZ(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 u0=o("string",(Z)=>typeof Z==="string"),d0=o("number",(Z)=>typeof Z==="number"),l0=o("boolean",(Z)=>typeof Z==="boolean"),m0=o("integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)),i0=o("positive integer",(Z)=>typeof Z==="number"&&Number.isInteger(Z)&&Z>0),p0=o("non-empty string",(Z)=>typeof Z==="string"&&Z.length>0),n0=o("email address",(Z)=>typeof Z==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(Z)),h4=(Z)=>{try{return new URL(Z),!0}catch{return!1}},c0=o("URL",(Z)=>typeof Z==="string"&&h4(Z)),o0=o("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)),x4=(Z)=>{let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")},u4=(Z)=>{if(!/^\d{4}-\d{2}-\d{2}$/.test(Z))return!1;let $=new Date(Z+"T00:00:00Z");return!isNaN($.getTime())},d4=o("ISO 8601 timestamp",(Z)=>typeof Z==="string"&&x4(Z)),l4=o("date (YYYY-MM-DD)",(Z)=>typeof Z==="string"&&u4(Z));function s0(Z){return o(`${Z.description} or null`,($)=>$===null||Z.check($))}function a0(Z){return o(`${Z.description} (optional)`,($)=>$===null||$===void 0||Z.check($))}function r0(Z,$,...X){if(typeof Z==="string"&&Array.isArray($)){let K=Z,Y=$,z=new Set(Y);return{description:K,check:(W)=>z.has(W),__runtimeType:!0,values:Y}}let Q=[];if(C1(Z))Q.push(Z);if(C1($))Q.push($);Q.push(...X);let H=Q.map((K)=>K.description).join(" | ");return o(H,(K)=>Q.some((Y)=>Y.check(K)))}function t0(Z){return o(`array of ${Z.description}`,($)=>Array.isArray($)&&$.every((X)=>Z.check(X)))}function eZ(Z){if(C1(Z))return(X)=>Z.check(X);if(Z&&typeof Z==="object"&&"schema"in Z)return(X)=>y4(X,Z);let $=x0.infer(Z);return(X)=>y4(X,$)}function i1(Z,$,X){let Q=[],H=[];for(let Y of Z)if(typeof Y==="string")Q.push(Y),H.push(void 0);else Q.push(Y[0]),H.push(Y[1]);let K=(...Y)=>{let z=Q.map((W,J)=>{let L=J<Y.length?Y[J]:H[J];if(L===void 0)return()=>!0;return eZ(L)}),G=X;return Q.forEach((W,J)=>{let L=J<Y.length?Y[J]:H[J],_="any";if(C1(L))_=L.description;else if(L!==void 0)_=typeof L==="string"?"string":JSON.stringify(L);G=G.replace(new RegExp(`\\b${W}\\b`,"g"),_)}),o(G,(W)=>$(W,...z))};return K.params=Q,K.description=X,K}var e0=i1(["T","U"],(Z,$,X)=>Array.isArray(Z)&&Z.length===2&&$(Z[0])&&X(Z[1]),"Pair<T, U>"),Z4=i1(["V"],(Z,$)=>typeof Z==="object"&&Z!==null&&!Array.isArray(Z)&&Object.values(Z).every($),"Record<string, V>");function $4(Z,$){let X=Object.values($),Q=new Set(X),H=Object.keys($),K={};for(let[z,G]of Object.entries($))K[G]=z;return{description:Z,check:(z)=>Q.has(z),__runtimeType:!0,members:$,names:K,values:X,keys:H}}function Z5(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";switch(typeof Z){case"string":return"string";case"boolean":return"boolean";case"number":return Number.isInteger(Z)?"integer":"number";case"object":return Array.isArray(Z)?"array":"object";default:return null}}function q0(Z,$,X){if(Array.isArray($)&&X){let Q=$,H=[],K=[];for(let z of Q)if(Array.isArray(z))H.push(z[0]),K.push(z[1]);else H.push(z),K.push(void 0);let Y=(...z)=>{let G=H.map((J,L)=>L<z.length?z[L]:K[L]),W=X(...G);return q0(Z,W)};return Object.defineProperties(Y,{typeParamNames:{value:H,enumerable:!0},description:{value:Z,enumerable:!0},__runtimeType:{value:!0,enumerable:!0}}),Y}return $5(Z,$)}function $5(Z,$){let X={},Q=void 0,H="assertReturns";if(typeof $==="function"){let Y=$.__tjs;if(Y){if(Y.params)for(let[z,G]of Object.entries(Y.params))X[z]=G?.example??null;if(Y.returns)Q=Y.returns?.example??null;if(Y.safeReturn)H="checkedReturns";else if(Y.unsafe)H="assertReturns";else H="returns"}}else X=$.params??{},Q=$.returns,H=$.returnContract??"assertReturns";return{description:Z,params:X,returns:Q,returnContract:H,check:(Y)=>{if(typeof Y!=="function")return!1;let z=Object.keys(X).length;if(z>0){let W=Y.__tjs;if(W?.params){if(Object.keys(W.params).length!==z)return!1;let L=Object.keys(X),_=Object.keys(W.params);for(let U=0;U<L.length;U++){let q=W.params[_[U]],I=X[L[U]];if(q?.type?.kind&&I!==void 0){let M=Z5(I);if(M&&q.type.kind!==M&&q.type.kind!=="any")return!1}}}}return!0},__runtimeType:!0}}var Q5=L7(),$1=Q5.version,D0=Symbol.for("tjs.equals");function H4(Z){let[$=0,X=0,Q=0]=Z.split(".").map(Number);return{major:$,minor:X,patch:Q}}function m4(Z,$){let X=H4(Z),Q=H4($);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 i4(Z,$){let X=H4(Z),Q=H4($);return X.major===Q.major}class f1 extends Error{path;expected;actual;callStack;constructor(Z,$,X,Q,H){super(Z);if(this.name="MonadicError",this.path=$,this.expected=X,this.actual=Q,this.callStack=H,Error.captureStackTrace)Error.captureStackTrace(this,f1)}}function H5(Z,$,X){let Q=X===null?"null":typeof X,H=K1.debug?A7():void 0;return new f1(`Expected ${$} for '${Z}', got ${Q}`,Z,$,Q,H)}function q7(Z){return Z instanceof f1}var p4={debug:!1,safety:"inputs",requireReturnTypes:!1,maxStackSize:100},K1={...p4},j1=[],n1=0;function K5(){n1++}function Y5(){if(n1>0)n1--}function z5(){return n1>0}function G5(Z){K1={...K1,...Z}}function W5(){return{...K1}}function D7(Z){if(K1.debug&&Z){j1.push(Z);let $=K1.maxStackSize??100;while(j1.length>$)j1.shift()}}function X4(){if(K1.debug)j1.pop()}function A7(){return[...j1]}function J5(){K1={...p4},j1.length=0,n1=0}function A0(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[D0]==="function")return Z[D0]($);if($!==null&&typeof $==="object"&&typeof $[D0]==="function")return $[D0](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((H,K)=>A0(H,$[K]))}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((H)=>A0(Z[H],$[H]))}function I7(Z,$){return!A0(Z,$)}function w1(Z){return Z!==null&&typeof Z==="object"&&Z.$error===!0}function B1(Z,$){let X={$error:!0,message:Z,...$};if(K1.debug&&j1.length>0){let Q=$?.path?[...j1,$.path]:[...j1];X.stack=Q}return X}function n4(Z,$){if(Z.length===0)return B1("Unknown error");if(Z.length===1)return Z[0];let X=Z.map((H)=>{if(H.path){let K=H.path.split(".");return K[K.length-1]}return"unknown"}).join(", "),Q=`Multiple parameter errors in ${$||"function"}: ${X}`;return B1(Q,{path:$,errors:Z})}function p1(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 B7(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 B1(`Expected ${$.description} but got ${p1(Z)}`,{path:X,expected:$.description,actual:p1(Z)})}let Q=p1(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 B1(`Expected ${$} but got ${Q}`,{path:X,expected:$,actual:Q})}function c4(Z,$,X){for(let[Q,H]of Object.entries($.params)){let K=Z[Q];if(w1(K))return K;if(H.required&&K===void 0){let z=typeof H.type==="string"?H.type:H.type.description;return B1(`Missing required parameter '${Q}'`,{path:X?`${X}.${Q}`:Q,expected:z,actual:"undefined",loc:H.loc})}if(K===void 0)continue;let Y=v1(K,H.type,X?`${X}.${Q}`:Q);if(Y){if(H.loc)Y.loc=H.loc;return Y}}return null}function o4(Z,$){if(Z.__tjs=$,!(!$.polymorphic&&($.safe||$.safeReturn||K1.safety!=="none"&&!$.unsafe||$.returns&&K1.safety==="all"&&!$.unsafeReturn)))return Z;let Q=!!$.returns,H=!!$.unsafe,K=!!$.safe,Y=!!$.unsafeReturn,z=!!$.safeReturn,G=$.returns?.defaults,W=Object.entries($.params),J=W.length,L=Z.name||$.name||"anonymous",_=function(...U){if(n1>0)return Z.apply(this,U);let q=K||!H&&K1.safety!=="none",I=Q&&(z||!Y&&K1.safety==="all");if(!q&&!I)return Z.apply(this,U);if(U.length>0&&w1(U[0]))return U[0];if(q){let M=U.length===1&&typeof U[0]==="object"&&U[0]!==null&&!Array.isArray(U[0]),B=[];if(!M)for(let P=0;P<J;P++){let[R,F]=W[P],w=U[P];if(w1(w)){B.push(w);continue}if(F.required&&w===void 0){B.push(B1(`Missing required parameter '${R}'`,{path:`${L}.${R}`,expected:typeof F.type==="string"?F.type:F.type?.description||"value",actual:"undefined",loc:F.loc}));continue}if(w!==void 0){let V=v1(w,F.type,`${L}.${R}`);if(V){if(F.loc)V.loc=F.loc;B.push(V)}}}else{let P=U[0];for(let R=0;R<J;R++){let[F,w]=W[R],V=P[F];if(w1(V)){B.push(V);continue}if(w.required&&V===void 0){B.push(B1(`Missing required parameter '${F}'`,{path:`${L}.${F}`,expected:typeof w.type==="string"?w.type:w.type?.description||"value",actual:"undefined",loc:w.loc}));continue}if(V!==void 0){let C=v1(V,w.type,`${L}.${F}`);if(C){if(w.loc)C.loc=w.loc;B.push(C)}}}}if(B.length>0)return n4(B,L)}D7(L);try{let M=Z.apply(this,U);if(I&&$.returns&&!w1(M)){let B=G&&typeof M==="object"&&M!==null?Object.assign({},G,M):M,P=v1(B,$.returns.type,`${L}()`);if(P)return X4(),P}return X4(),M}catch(M){return X4(),B1(M.message||String(M),{path:L,cause:M})}};return Object.defineProperty(_,"name",{value:Z.name}),_.__tjs=$,_}function R7(Z){let $=new Proxy(Z,{construct(X,Q,H){return Reflect.construct(X,Q,H)},apply(X,Q,H){return Reflect.construct(X,H)}});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 _5(){let Z={...K1},$=[],X=0;function Q(B){Z={...Z,...B}}function H(){return{...Z}}function K(B){if(Z.debug&&B){$.push(B);let P=Z.maxStackSize??100;while($.length>P)$.shift()}}function Y(){if(Z.debug)$.pop()}function z(){return[...$]}function G(){Z={...p4},$.length=0,X=0}function W(){X++}function J(){if(X>0)X--}function L(){return X>0}let _=new Map;function U(B,P,R){if(!_.has(B))_.set(B,new Map);_.get(B).set(P,R)}function q(B,P){let R=typeof B,F;if(B===null||B===void 0)return;if(R==="string")F="String";else if(R==="number")F="Number";else if(R==="boolean")F="Boolean";else if(Array.isArray(B))F="Array";else if(R==="object")F=B.constructor?.name||"Object";else return;let w=F;while(w){let C=_.get(w);if(C?.has(P))return C.get(P);if(R==="object"&&!Array.isArray(B)){if(w=Object.getPrototypeOf(w===F?B:Object.getPrototypeOf(B))?.constructor?.name,w==="Object"||w===F)break}else break}let V=_.get("Object");if(V?.has(P))return V.get(P);return}function I(B,P,R){let F=R===null?"null":typeof R,w=Z.debug?z():void 0;return new f1(`Expected ${P} for '${B}', got ${F}`,B,P,F,w)}function M(B,P){let R={$error:!0,message:B,...P};if(Z.debug&&$.length>0){let F=P?.path?[...$,P.path]:[...$];R.stack=F}return R}return{version:$1,MonadicError:f1,typeError:I,isMonadicError:q7,isError:w1,error:M,composeErrors:n4,typeOf:p1,isNativeType:B7,checkType:v1,validateArgs:c4,wrap:o4,wrapClass:R7,compareVersions:m4,versionsCompatible:i4,configure:Q,getConfig:H,pushStack:K,popStack:Y,getStack:z,resetRuntime:G,enterUnsafe:W,exitUnsafe:J,isUnsafeMode:L,validate:U7,infer:Q4.infer.bind(Q4),Type:o,isRuntimeType:C1,Union:r0,Generic:i1,Enum:$4,FunctionPredicate:q0,Nullable:s0,Optional:a0,TArray:t0,TString:u0,TNumber:d0,TBoolean:l0,TInteger:m0,TPositiveInt:i0,TNonEmptyString:p0,TEmail:n0,TUrl:c0,TUuid:o0,TPair:e0,TRecord:Z4,Is:A0,IsNot:I7,tjsEquals:D0,registerExtension:U,resolveExtension:q}}var b1={version:$1,MonadicError:f1,typeError:H5,isMonadicError:q7,isError:w1,error:B1,composeErrors:n4,typeOf:p1,isNativeType:B7,checkType:v1,validateArgs:c4,wrap:o4,wrapClass:R7,compareVersions:m4,versionsCompatible:i4,configure:G5,getConfig:W5,pushStack:D7,popStack:X4,getStack:A7,resetRuntime:J5,enterUnsafe:K5,exitUnsafe:Y5,isUnsafeMode:z5,createRuntime:_5,validate:U7,infer:Q4.infer.bind(Q4),Type:o,isRuntimeType:C1,Union:r0,Generic:i1,Enum:$4,FunctionPredicate:q0,Nullable:s0,Optional:a0,TArray:t0,TString:u0,TNumber:d0,TBoolean:l0,TInteger:m0,TPositiveInt:i0,TNonEmptyString:p0,TEmail:n0,TUrl:c0,TUuid:o0,Timestamp:d4,LegalDate:l4,TPair:e0,TRecord:Z4,Is:A0,IsNot:I7};function L5(){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(i4($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 U5(Z){return`
353
353
  // TJS runtime wrapper (skips unsafe functions)
354
354
  if (typeof ${Z}.__tjs === 'object' && !${Z}.__tjs.unsafe && typeof globalThis.__tjs?.wrap === 'function') {
355
355
  ${Z} = globalThis.__tjs.wrap(${Z}, ${Z}.__tjs)
356
356
  }
357
- `.trim()}function w7(Z){return`
357
+ `.trim()}function M7(Z){return`
358
358
  // TJS: callable without new
359
359
  ${Z} = new Proxy(${Z}, { apply(t, _, a) { return Reflect.construct(t, a) } });
360
- `.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.SymbolKeyword:return"Symbol('example')";case j.SyntaxKind.BigIntKeyword:return"0n";case j.SyntaxKind.ObjectKeyword:return"{}";case j.SyntaxKind.ArrayType:{let K=x(Z.elementType,$);if(K==="any")K="null";return`[${K}]`}case j.SyntaxKind.TypeReference:{let H=Z,K=H.typeName.getText();if(K==="Array"&&H.typeArguments?.length)return`[${x(H.typeArguments[0],$,X,Q)}]`;if(K==="Promise"){if(H.typeArguments?.length)return x(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Generator"||K==="AsyncGenerator"||K==="IterableIterator"||K==="AsyncIterableIterator"){if(H.typeArguments?.length)return x(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Record")return"{}";let Y={Map:"new Map()",Set:"new Set()",WeakMap:"new WeakMap()",WeakSet:"new WeakSet()",WeakRef:"new WeakRef({})",Error:"new Error('example')",TypeError:"new TypeError('example')",RangeError:"new RangeError('example')",Date:"new Date()",RegExp:"/example/",ArrayBuffer:"new ArrayBuffer(0)",SharedArrayBuffer:"new SharedArrayBuffer(0)",DataView:"new DataView(new ArrayBuffer(0))",Float32Array:"new Float32Array(0)",Float64Array:"new Float64Array(0)",Int8Array:"new Int8Array(0)",Int16Array:"new Int16Array(0)",Int32Array:"new Int32Array(0)",Uint8Array:"new Uint8Array(0)",Uint16Array:"new Uint16Array(0)",Uint32Array:"new Uint32Array(0)",Uint8ClampedArray:"new Uint8ClampedArray(0)",BigInt64Array:"new BigInt64Array(0)",BigUint64Array:"new BigUint64Array(0)",URL:"new URL('https://example.com')",URLSearchParams:"new URLSearchParams()",Headers:"new Headers()",FormData:"new FormData()",Blob:"new Blob()",File:"new File([], 'example')",Response:"new Response()",Request:"new Request('https://example.com')",AbortController:"new AbortController()",ReadableStream:"new ReadableStream()",WritableStream:"new WritableStream()",TransformStream:"new TransformStream()",TextEncoder:"new TextEncoder()",TextDecoder:"new TextDecoder()"};if(K in Y)return Y[K];if(Q?.typeAliases?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let G=Q.typeAliases.get(K);return x(G,$,X,{...Q,visited:z})}if(Q?.interfaces?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let G=Q.interfaces.get(K),W=[];for(let J of G.members)if(j.isPropertySignature(J)&&J.name){let L=J.name.getText(Q.sourceFile),_=x(J.type,$,X,{...Q,visited:z});W.push(`${L}: ${_}`)}return`{ ${W.join(", ")} }`}if(Q?.typeParams?.has(K)){let z=Q.typeParams.get(K);if(z.constraint)return x(z.constraint,$,X,Q);if(z.default)return x(z.default,$,X,Q)}if(/^[A-Z]$/.test(K)||["T","K","V","U","TKey","TValue","TItem","TResult"].includes(K))return X?.push(`Generic type parameter '${K}' converted to 'any' - consider specializing`),"any";return X?.push(`Unknown type '${K}' converted to 'any' - may need manual review`),"any"}case j.SyntaxKind.TypeLiteral:{let H=Z,K=[];for(let Y of H.members)if(j.isPropertySignature(Y)&&Y.name){let z=Y.name.getText(),G=x(Y.type,$);if(G==="any")G="null";K.push(`${z}: ${G}`)}return`{ ${K.join(", ")} }`}case j.SyntaxKind.UnionType:{let H=Z,K=(L)=>L.kind===j.SyntaxKind.NullKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.NullKeyword,Y=(L)=>L.kind===j.SyntaxKind.UndefinedKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.UndefinedKeyword,z=H.types.filter((L)=>!K(L)&&!Y(L)),G=H.types.some(K),W=H.types.some(Y);if(z.length===0){if(G)return"null";return"undefined"}if(z.length===1&&(G||W)){let L=x(z[0],$);if(G)return`${L} | null`;if(W)return`${L} | undefined`}let J=H.types.map((L)=>x(L,$)).filter((L,_,U)=>U.indexOf(L)===_);if(J.length===1)return J[0];if(J.length>0)return J[0];return"undefined"}case j.SyntaxKind.LiteralType:{let H=Z;if(j.isStringLiteral(H.literal))return`'${H.literal.text}'`;if(j.isNumericLiteral(H.literal))return H.literal.text;if(H.literal.kind===j.SyntaxKind.TrueKeyword)return"true";if(H.literal.kind===j.SyntaxKind.FalseKeyword)return"false";if(H.literal.kind===j.SyntaxKind.NullKeyword)return"null";return"undefined"}case j.SyntaxKind.ParenthesizedType:return x(Z.type,$);case j.SyntaxKind.FunctionType:{let H=Z,K=[];for(let G of H.parameters){let W=G.name?.getText()||"_";if(W==="this")continue;let J=x(G.type,$,X,Q);if(J==="any")J="null";K.push(`${W}: ${J}`)}let Y=x(H.type,$,X,Q);if(Y==="any")Y="null";let z=[];if(K.length>0)z.push(`params: { ${K.join(", ")} }`);if(Y!=="undefined")z.push(`returns: ${Y}`);return`FunctionPredicate('function', { ${z.join(", ")} })`}case j.SyntaxKind.TupleType:return`[${Z.elements.map((Y)=>{let z=j.isNamedTupleMember(Y)?x(Y.type,$):x(Y,$);return z==="any"?"null":z}).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 H of X.members)if(j.isPropertySignature(H)&&H.name){let K=H.name.getText();Q[K]=p(H.type,$)}return{kind:"object",shape:Q}}case j.SyntaxKind.UnionType:{let X=Z,Q=X.types.filter((K)=>K.kind!==j.SyntaxKind.NullKeyword&&K.kind!==j.SyntaxKind.UndefinedKeyword),H=X.types.some((K)=>K.kind===j.SyntaxKind.NullKeyword);if(Q.length===1&&H)return{...p(Q[0],$),nullable:!0};return{kind:"union",members:X.types.map((K)=>p(K,$))}}case j.SyntaxKind.IntersectionType:{let X=Z,Q={};for(let H of X.types){let K=p(H,$);if(K.kind==="object"&&K.shape)Object.assign(Q,K.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 H of X.elements)if(j.isNamedTupleMember(H))Q.push(p(H.type,$));else Q.push(p(H,$));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 H=p(X.typeArguments[0],$);if(Q==="Partial")return H;if(Q==="Required")return H;if(Q==="Readonly")return H;if(Q==="Record"&&X.typeArguments.length>=2)return{kind:"object",shape:{"[key]":p(X.typeArguments[1],$)}};if(Q==="Pick"||Q==="Omit")return H;if(Q==="NonNullable"){if(H.nullable)return{...H,nullable:!1};return H}if(["ReturnType","Parameters","ConstructorParameters"].includes(Q))return{kind:"any"}}if($?.typeAliases?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.typeAliases.get(Q);return p(K,{...$,visited:H})}if($?.interfaces?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.interfaces.get(Q),Y={};if(K.heritageClauses){for(let z of K.heritageClauses)if(z.token===j.SyntaxKind.ExtendsKeyword)for(let G of z.types){let W=G.expression.getText($.sourceFile);if($.interfaces?.has(W)&&!H.has(W)){let J={kind:j.SyntaxKind.TypeReference,typeName:{getText:()=>W}},L=p(J,{...$,visited:H});if(L.kind==="object"&&L.shape)Object.assign(Y,L.shape)}}}for(let z of K.members)if(j.isPropertySignature(z)&&z.name){let G=z.name.getText($.sourceFile);Y[G]=p(z.type,{...$,visited:H})}return{kind:"object",shape:Y}}if($?.typeParams?.has(Q)){let H=$.typeParams.get(Q);if(H.constraint)return p(H.constraint,$);if(H.default)return p(H.default,$)}return{kind:"any"}}default:return{kind:"any"}}}function L5(Z,$){if(!Z.typeParameters||Z.typeParameters.length===0)return;let X={};for(let Q of Z.typeParameters){let H=Q.name.getText(),K={};if(Q.constraint){let Y=x(Q.constraint,void 0,$);if(Y.startsWith("{"))try{K.constraint=Y}catch{K.constraint=Y}else K.constraint=Y}if(Q.default){let Y=x(Q.default,void 0,$);K.default=Y}X[H]=K}return Object.keys(X).length>0?X:void 0}function U5(Z,$,X){let Q=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return q5(Z,$,X);let H=[];for(let K of Z.members)if(j.isPropertySignature(K)&&K.name){let Y=K.name.getText($),z=x(K.type,void 0,X);if(z==="any")z="null";H.push(`${Y}: ${z}`)}if(H.length===0)return`Type ${Q} {}`;return`Type ${Q} {
360
+ `.trim()}var j7=new Set(["Event","CustomEvent","MouseEvent","KeyboardEvent","PointerEvent","TouchEvent","FocusEvent","InputEvent","CompositionEvent","WheelEvent","DragEvent","AnimationEvent","TransitionEvent","ClipboardEvent","UIEvent","ProgressEvent","ErrorEvent","MessageEvent","PopStateEvent","HashChangeEvent","PageTransitionEvent","StorageEvent","BeforeUnloadEvent","SubmitEvent","EventTarget","EventListener","Node","Element","HTMLElement","SVGElement","Document","DocumentFragment","ShadowRoot","Text","Comment","Attr","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLButtonElement","HTMLFormElement","HTMLAnchorElement","HTMLImageElement","HTMLVideoElement","HTMLAudioElement","HTMLCanvasElement","HTMLDivElement","HTMLSpanElement","HTMLParagraphElement","HTMLTableElement","HTMLTemplateElement","HTMLSlotElement","HTMLDialogElement","HTMLDetailsElement","HTMLLabelElement","HTMLOptionElement","HTMLIFrameElement","HTMLScriptElement","HTMLStyleElement","HTMLLinkElement","HTMLMetaElement","HTMLHeadElement","HTMLBodyElement","HTMLMediaElement","SVGSVGElement","SVGPathElement","SVGGElement","SVGCircleElement","SVGRectElement","SVGTextElement","SVGLineElement","SVGPolygonElement","NodeList","HTMLCollection","NamedNodeMap","DOMTokenList","DOMStringMap","CSSStyleDeclaration","DOMRect","DOMRectReadOnly","DOMPoint","DOMMatrix","Range","Selection","StaticRange","MutationObserver","MutationRecord","IntersectionObserver","IntersectionObserverEntry","ResizeObserver","ResizeObserverEntry","PerformanceObserver","PerformanceEntry","Window","Location","History","Navigator","Screen","Storage","CanvasRenderingContext2D","WebGLRenderingContext","WebGL2RenderingContext","OffscreenCanvas","ImageData","ImageBitmap","MediaStream","MediaRecorder","AudioContext","AudioNode","AudioBuffer","Worker","SharedWorker","ServiceWorker","ServiceWorkerRegistration","BroadcastChannel","MessageChannel","MessagePort","WebSocket","XMLHttpRequest","FileReader","FileList","DataTransfer","Crypto","SubtleCrypto","CryptoKey","Geolocation","Notification","PermissionStatus","MediaQueryList","TreeWalker","NodeIterator","ClipboardItem"]);function y(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.SymbolKeyword:return"Symbol('example')";case j.SyntaxKind.BigIntKeyword:return"0n";case j.SyntaxKind.ObjectKeyword:return"{}";case j.SyntaxKind.ArrayType:{let K=y(Z.elementType,$);if(K==="any")K="null";return`[${K}]`}case j.SyntaxKind.TypeReference:{let H=Z,K=H.typeName.getText();if(K==="Array"&&H.typeArguments?.length)return`[${y(H.typeArguments[0],$,X,Q)}]`;if(K==="Promise"){if(H.typeArguments?.length)return y(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Generator"||K==="AsyncGenerator"||K==="IterableIterator"||K==="AsyncIterableIterator"){if(H.typeArguments?.length)return y(H.typeArguments[0],$,X,Q);return"undefined"}if(K==="Record")return"{}";let Y={Map:"new Map()",Set:"new Set()",WeakMap:"new WeakMap()",WeakSet:"new WeakSet()",WeakRef:"new WeakRef({})",Error:"new Error('example')",TypeError:"new TypeError('example')",RangeError:"new RangeError('example')",SyntaxError:"new SyntaxError('example')",ReferenceError:"new ReferenceError('example')",URIError:"new URIError('example')",EvalError:"new EvalError('example')",Date:"new Date()",RegExp:"/example/",ArrayBuffer:"new ArrayBuffer(0)",SharedArrayBuffer:"new SharedArrayBuffer(0)",DataView:"new DataView(new ArrayBuffer(0))",Float32Array:"new Float32Array(0)",Float64Array:"new Float64Array(0)",Int8Array:"new Int8Array(0)",Int16Array:"new Int16Array(0)",Int32Array:"new Int32Array(0)",Uint8Array:"new Uint8Array(0)",Uint16Array:"new Uint16Array(0)",Uint32Array:"new Uint32Array(0)",Uint8ClampedArray:"new Uint8ClampedArray(0)",BigInt64Array:"new BigInt64Array(0)",BigUint64Array:"new BigUint64Array(0)",URL:"new URL('https://example.com')",URLSearchParams:"new URLSearchParams()",Headers:"new Headers()",FormData:"new FormData()",Blob:"new Blob()",File:"new File([], 'example')",Response:"new Response()",Request:"new Request('https://example.com')",AbortController:"new AbortController()",AbortSignal:"AbortSignal.abort()",ReadableStream:"new ReadableStream()",WritableStream:"new WritableStream()",TransformStream:"new TransformStream()",TextEncoder:"new TextEncoder()",TextDecoder:"new TextDecoder()",Promise:"Promise.resolve(null)"};if(K in Y)return Y[K];if(Q?.typeAliases?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let G=Q.typeAliases.get(K);return y(G,$,X,{...Q,visited:z})}if(Q?.interfaces?.has(K)){let z=Q.visited??new Set;if(z.has(K))return X?.push(`Circular type reference '${K}' - using 'any'`),"any";z.add(K);let G=Q.interfaces.get(K),W=[];for(let J of G.members)if(j.isPropertySignature(J)&&J.name){let L=J.name.getText(Q.sourceFile),_=y(J.type,$,X,{...Q,visited:z});W.push(`${L}: ${_}`)}return`{ ${W.join(", ")} }`}if(Q?.typeParams?.has(K)){let z=Q.typeParams.get(K);if(z.constraint)return y(z.constraint,$,X,Q);if(z.default)return y(z.default,$,X,Q)}if(j7.has(K))return"{}";if(/^[A-Z]$/.test(K)||["T","K","V","U","TKey","TValue","TItem","TResult"].includes(K))return X?.push(`Generic type parameter '${K}' converted to 'any' - consider specializing`),"any";return X?.push(`Unknown type '${K}' converted to 'any' - may need manual review`),"any"}case j.SyntaxKind.TypeLiteral:{let H=Z,K=[];for(let Y of H.members)if(j.isPropertySignature(Y)&&Y.name){let z=Y.name.getText(),G=y(Y.type,$);if(G==="any")G="null";K.push(`${z}: ${G}`)}return`{ ${K.join(", ")} }`}case j.SyntaxKind.UnionType:{let H=Z,K=(L)=>L.kind===j.SyntaxKind.NullKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.NullKeyword,Y=(L)=>L.kind===j.SyntaxKind.UndefinedKeyword||j.isLiteralTypeNode(L)&&L.literal.kind===j.SyntaxKind.UndefinedKeyword,z=H.types.filter((L)=>!K(L)&&!Y(L)),G=H.types.some(K),W=H.types.some(Y);if(z.length===0){if(G)return"null";return"undefined"}if(z.length===1&&(G||W)){let L=y(z[0],$);if(G)return`${L} | null`;if(W)return`${L} | undefined`}let J=H.types.map((L)=>y(L,$)).filter((L,_,U)=>U.indexOf(L)===_);if(J.length===1)return J[0];if(J.length>0)return J[0];return"undefined"}case j.SyntaxKind.LiteralType:{let H=Z;if(j.isStringLiteral(H.literal))return`'${H.literal.text}'`;if(j.isNumericLiteral(H.literal))return H.literal.text;if(H.literal.kind===j.SyntaxKind.TrueKeyword)return"true";if(H.literal.kind===j.SyntaxKind.FalseKeyword)return"false";if(H.literal.kind===j.SyntaxKind.NullKeyword)return"null";return"undefined"}case j.SyntaxKind.ParenthesizedType:return y(Z.type,$);case j.SyntaxKind.FunctionType:{let H=Z,K=[];for(let G of H.parameters){let W=G.name?.getText()||"_";if(W==="this")continue;let J=y(G.type,$,X,Q);if(J==="any")J="null";K.push(`${W}: ${J}`)}let Y=y(H.type,$,X,Q);if(Y==="any")Y="null";let z=[];if(K.length>0)z.push(`params: { ${K.join(", ")} }`);if(Y!=="undefined")z.push(`returns: ${Y}`);return`FunctionPredicate('function', { ${z.join(", ")} })`}case j.SyntaxKind.TupleType:return`[${Z.elements.map((Y)=>{let z=j.isNamedTupleMember(Y)?y(Y.type,$):y(Y,$);return z==="any"?"null":z}).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 H of X.members)if(j.isPropertySignature(H)&&H.name){let K=H.name.getText();Q[K]=p(H.type,$)}return{kind:"object",shape:Q}}case j.SyntaxKind.UnionType:{let X=Z,Q=X.types.filter((K)=>K.kind!==j.SyntaxKind.NullKeyword&&K.kind!==j.SyntaxKind.UndefinedKeyword),H=X.types.some((K)=>K.kind===j.SyntaxKind.NullKeyword);if(Q.length===1&&H)return{...p(Q[0],$),nullable:!0};return{kind:"union",members:X.types.map((K)=>p(K,$))}}case j.SyntaxKind.IntersectionType:{let X=Z,Q={};for(let H of X.types){let K=p(H,$);if(K.kind==="object"&&K.shape)Object.assign(Q,K.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 H of X.elements)if(j.isNamedTupleMember(H))Q.push(p(H.type,$));else Q.push(p(H,$));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 H=p(X.typeArguments[0],$);if(Q==="Partial")return H;if(Q==="Required")return H;if(Q==="Readonly")return H;if(Q==="Record"&&X.typeArguments.length>=2)return{kind:"object",shape:{"[key]":p(X.typeArguments[1],$)}};if(Q==="Pick"||Q==="Omit")return H;if(Q==="NonNullable"){if(H.nullable)return{...H,nullable:!1};return H}if(["ReturnType","Parameters","ConstructorParameters"].includes(Q))return{kind:"any"}}if($?.typeAliases?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.typeAliases.get(Q);return p(K,{...$,visited:H})}if($?.interfaces?.has(Q)){let H=$.visited??new Set;if(H.has(Q))return{kind:"any"};H.add(Q);let K=$.interfaces.get(Q),Y={};if(K.heritageClauses){for(let z of K.heritageClauses)if(z.token===j.SyntaxKind.ExtendsKeyword)for(let G of z.types){let W=G.expression.getText($.sourceFile);if($.interfaces?.has(W)&&!H.has(W)){let J={kind:j.SyntaxKind.TypeReference,typeName:{getText:()=>W}},L=p(J,{...$,visited:H});if(L.kind==="object"&&L.shape)Object.assign(Y,L.shape)}}}for(let z of K.members)if(j.isPropertySignature(z)&&z.name){let G=z.name.getText($.sourceFile);Y[G]=p(z.type,{...$,visited:H})}return{kind:"object",shape:Y}}if($?.typeParams?.has(Q)){let H=$.typeParams.get(Q);if(H.constraint)return p(H.constraint,$);if(H.default)return p(H.default,$)}if(j7.has(Q))return{kind:"object"};return{kind:"any"}}default:return{kind:"any"}}}function q5(Z,$){if(!Z.typeParameters||Z.typeParameters.length===0)return;let X={};for(let Q of Z.typeParameters){let H=Q.name.getText(),K={};if(Q.constraint){let Y=y(Q.constraint,void 0,$);if(Y.startsWith("{"))try{K.constraint=Y}catch{K.constraint=Y}else K.constraint=Y}if(Q.default){let Y=y(Q.default,void 0,$);K.default=Y}X[H]=K}return Object.keys(X).length>0?X:void 0}function D5(Z,$,X){let Q=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return A5(Z,$,X);let H=[];for(let K of Z.members)if(j.isPropertySignature(K)&&K.name){let Y=K.name.getText($),z=y(K.type,void 0,X);if(z==="any")z="null";H.push(`${Y}: ${z}`)}if(H.length===0)return`Type ${Q} {}`;return`Type ${Q} {
361
361
  example: { ${H.join(", ")} }
362
- }`}function q5(Z,$,X){let Q=Z.name.getText($),H=[];for(let G of Z.typeParameters||[]){let W=G.name.getText($);if(G.default){let J=x(G.default,void 0,X);H.push(`${W} = ${J}`)}else H.push(W)}let K=(Z.typeParameters||[]).map((G)=>G.name.getText($)),Y=["typeof x === 'object'","x !== null"];for(let G of Z.members)if(j.isPropertySignature(G)&&G.name){let W=G.name.getText($),J=W.startsWith("[")&&W.endsWith("]"),L=J?W.slice(1,-1):null;if(J)Y.push(`${L} in x`);else Y.push(`'${W}' in x`);if(G.type&&j.isTypeReferenceNode(G.type)){let _=G.type.typeName.getText($);if(K.includes(_))if(J)Y.push(`${_}(x[${L}])`);else Y.push(`${_}(x.${W})`)}}let z=["x",...K].join(", ");return`Generic ${Q}<${H.join(", ")}> {
362
+ }`}function A5(Z,$,X){let Q=Z.name.getText($),H=[];for(let G of Z.typeParameters||[]){let W=G.name.getText($);if(G.default){let J=y(G.default,void 0,X);H.push(`${W} = ${J}`)}else H.push(W)}let K=(Z.typeParameters||[]).map((G)=>G.name.getText($)),Y=["typeof x === 'object'","x !== null"];for(let G of Z.members)if(j.isPropertySignature(G)&&G.name){let W=G.name.getText($),J=W.startsWith("[")&&W.endsWith("]"),L=J?W.slice(1,-1):null;if(J)Y.push(`${L} in x`);else Y.push(`'${W}' in x`);if(G.type&&j.isTypeReferenceNode(G.type)){let _=G.type.typeName.getText($);if(K.includes(_))if(J)Y.push(`${_}(x[${L}])`);else Y.push(`${_}(x.${W})`)}}let z=["x",...K].join(", ");return`Generic ${Q}<${H.join(", ")}> {
363
363
  description: '${Q}'
364
364
  predicate(${z}) { return ${Y.join(" && ")} }
365
- }`}function D5(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 A5(Z,$,X){let Q=Z.name.getText($),H=[],K=0;for(let Y of Z.members){let z=Y.name.getText($);if(Y.initializer)if(j.isStringLiteral(Y.initializer))H.push(` ${z} = '${Y.initializer.text}'`);else if(j.isNumericLiteral(Y.initializer)){let G=parseInt(Y.initializer.text,10);H.push(` ${z} = ${G}`),K=G+1}else if(j.isPrefixUnaryExpression(Y.initializer)&&Y.initializer.operator===j.SyntaxKind.MinusToken){let G=Y.initializer.operand;if(j.isNumericLiteral(G)){let W=-parseInt(G.text,10);H.push(` ${z} = ${W}`),K=W+1}}else H.push(` ${z} = ${Y.initializer.getText($)}`);else H.push(` ${z} = ${K}`),K++}return`Enum ${Q} '${Q}' {
365
+ }`}function I5(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 B5(Z,$,X){let Q=Z.name.getText($),H=[],K=0;for(let Y of Z.members){let z=Y.name.getText($);if(Y.initializer)if(j.isStringLiteral(Y.initializer))H.push(` ${z} = '${Y.initializer.text}'`);else if(j.isNumericLiteral(Y.initializer)){let G=parseInt(Y.initializer.text,10);H.push(` ${z} = ${G}`),K=G+1}else if(j.isPrefixUnaryExpression(Y.initializer)&&Y.initializer.operator===j.SyntaxKind.MinusToken){let G=Y.initializer.operand;if(j.isNumericLiteral(G)){let W=-parseInt(G.text,10);H.push(` ${z} = ${W}`),K=W+1}}else H.push(` ${z} = ${Y.initializer.getText($)}`);else H.push(` ${z} = ${K}`),K++}return`Enum ${Q} '${Q}' {
366
366
  ${H.join(`
367
367
  `)}
368
- }`}function I5(Z,$,X){let Q=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0)return R5(Z,$,X);let H=D5(Z.type,$);if(H)return`Union ${Q} '${Q}' ${H.join(" | ")}`;if(Z.type.kind===j.SyntaxKind.FunctionType){let Y=Z.type,z=[];for(let J of Y.parameters){let L=J.name?.getText($)||"_";if(L==="this")continue;let _=x(J.type,void 0,X);if(_==="any")_="null";z.push(`${L}: ${_}`)}let G=x(Y.type,void 0,X);if(G==="any")G="null";let W=[];if(z.length>0)W.push(`params: { ${z.join(", ")} }`);if(G!=="undefined")W.push(`returns: ${G}`);return`FunctionPredicate ${Q} {
368
+ }`}function R5(Z,$,X){let Q=Z.name.getText($);if(Z.typeParameters&&Z.typeParameters.length>0){if(Z.type.kind===j.SyntaxKind.FunctionType)return M5(Z,$,X);return w5(Z,$,X)}let H=I5(Z.type,$);if(H)return`Union ${Q} '${Q}' ${H.join(" | ")}`;if(Z.type.kind===j.SyntaxKind.FunctionType){let Y=Z.type,z=[];for(let J of Y.parameters){let L=J.name?.getText($)||"_";if(L==="this")continue;let _=y(J.type,void 0,X);if(_==="any")_="null";z.push(`${L}: ${_}`)}let G=y(Y.type,void 0,X);if(G==="any")G="null";let W=[];if(z.length>0)W.push(`params: { ${z.join(", ")} }`);if(G!=="undefined")W.push(`returns: ${G}`);return`FunctionPredicate ${Q} {
369
369
  ${W.join(`
370
370
  `)}
371
- }`}let K=x(Z.type,void 0,X);if(K==="any"||K==="undefined")return`Type ${Q} {}`;if(K==="''"||K==="0"||K==="true"||K==="null")return`Type ${Q} ${K}`;return`Type ${Q} {
371
+ }`}let K=y(Z.type,void 0,X);if(K==="any"||K==="undefined")return`Type ${Q} {}`;if(K==="''"||K==="0"||K==="true"||K==="null")return`Type ${Q} ${K}`;return`Type ${Q} {
372
372
  example: ${K}
373
- }`}function R5(Z,$,X){let Q=Z.name.getText($),H=[];for(let W of Z.typeParameters||[]){let J=W.name.getText($);if(W.default){let L=x(W.default,void 0,X);H.push(`${J} = ${L}`)}else H.push(J)}let Y=["x",...(Z.typeParameters||[]).map((W)=>W.name.getText($))].join(", ");return`${`/* Original TS:
373
+ }`}function M5(Z,$,X){let Q=Z.name.getText($),H=Z.type,K=new Set,Y=[];for(let L of Z.typeParameters){let _=L.name.getText($);if(K.add(_),L.default){let U=y(L.default,void 0,X);Y.push(`${_} = ${U}`)}else Y.push(_)}let z=[];for(let L of H.parameters){let _=L.name?.getText($)||"_";if(_==="this")continue;let U=L.type?.getText($)||"any";if(K.has(U))z.push(`${_}: ${U}`);else{let q=y(L.type,void 0,X);if(q==="any")q="null";z.push(`${_}: ${q}`)}}let G=H.type?.getText($)||"void",W;if(G!=="void")if(K.has(G))W=G;else{if(W=y(H.type,void 0,X),W==="any")W="null";if(W==="undefined")W=void 0}let J=[];if(z.length>0)J.push(`params: { ${z.join(", ")} }`);if(W!==void 0)J.push(`returns: ${W}`);return`FunctionPredicate ${Q}<${Y.join(", ")}> {
374
+ ${J.join(`
375
+ `)}
376
+ }`}function w5(Z,$,X){let Q=Z.name.getText($),H=[];for(let W of Z.typeParameters||[]){let J=W.name.getText($);if(W.default){let L=y(W.default,void 0,X);H.push(`${J} = ${L}`)}else H.push(J)}let Y=["x",...(Z.typeParameters||[]).map((W)=>W.name.getText($))].join(", ");return`${`/* Original TS:
374
377
  ${Z.getText($).trim()}
375
378
  */`}
376
379
  Generic ${Q}<${H.join(", ")}> {
377
380
  description: '${Q}'
378
381
  predicate(${Y}) { return true }
379
- }`}function M7(Z,$,X,Q,H,K){let Y;if(Z.typeParameters&&Z.typeParameters.length>0){Y=new Map;for(let V of Z.typeParameters)Y.set(V.name.getText($),{constraint:V.constraint,default:V.default})}let z=Y||K?{...K,typeParams:Y??K?.typeParams}:K,G=[],W=c1(Z.parameters,$,Q,G,z),{line:J}=$.getLineAndCharacterOfPosition(Z.getStart($)),L=H?`/* line ${J+1} */
380
- `:"",_=X||(j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):""),U=Z.type?x(Z.type,void 0,Q,z):"",q=U&&U!=="undefined"&&U!=="any"&&!U.startsWith("new ")?` -! ${U}`:"";if(Z.type&&(U==="any"||U==="undefined")){let V=Z.type.getText($);if(V!=="any"&&V!=="unknown"&&V!=="void")G.push(`return: ${V}`)}let I="";if(Z.body){let V=j.isBlock(Z.body)?Z.body.getText($):`{ return ${Z.body.getText($)} }`;I=j.transpileModule(V,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}else I="{ }";let B=Z.modifiers?.some((V)=>V.kind===j.SyntaxKind.ExportKeyword),R=Z.modifiers?.some((V)=>V.kind===j.SyntaxKind.AsyncKeyword),C=!!Z.asteriskToken,w=B?"export ":"",F=R?"async ":"",M=C?"function* ":"function ",P=G.length>0?`/* TODO: TS types degraded — ${G.join(", ")} */
381
- `:"";return`${L}${P}${w}${F}${M}${_}(${W.join(", ")})${q} ${I}`}function B5(Z,$,X,Q){let H=$.name?.getText(X)||"",K=`_${H}_impl`,Y=[],z=c1($.parameters,X,Q),G="{ }";if($.body){let U=$.body.getText(X);G=j.transpileModule(U,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}let W=$.modifiers?.some((U)=>U.kind===j.SyntaxKind.AsyncKeyword),J=!!$.asteriskToken,L=W?"async ":"",_=J?"function* ":"function ";Y.push(`${L}${_}${K}(${z.join(", ")}) ${G}`);for(let U of Z){let q=c1(U.parameters,X,Q),I=U.parameters.map((M)=>M.name.getText(X)),B=U.type?x(U.type,void 0,Q):"",R=B&&B!=="undefined"&&B!=="any"?` -! ${B}`:"",{line:C}=X.getLineAndCharacterOfPosition(U.getStart(X)),w=`/* line ${C+1} */
382
- `,F=J?"yield* ":"return ";Y.push(`${w}${L}${_}${H}(${q.join(", ")})${R} { ${F}${K}(${I.join(", ")}) }`)}return Y}function w5(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let q=new Map;for(let I of Z.typeParameters)q.set(I.name.getText($),{constraint:I.constraint,default:I.default});H={...Q,typeParams:q}}let K=Z.name?.getText($)||"Anonymous",z=Z.heritageClauses?.find((q)=>q.token===j.SyntaxKind.ExtendsKeyword)?.types[0]?.expression?.getText($),G=new Map;for(let q of Z.members)if(j.isPropertyDeclaration(q)&&q.name){let I=q.name.getText($);if(q.modifiers?.some((R)=>R.kind===j.SyntaxKind.PrivateKeyword)&&!I.startsWith("#"))G.set(I,`#${I}`)}let W=(q)=>{let I=q;for(let[B,R]of G)I=I.replace(new RegExp(`(\\b\\w+)\\.${B}\\b`,"g"),`$1.${R}`);return I},J=[];for(let q of Z.members){if(j.isConstructorDeclaration(q)){let I=c1(q.parameters,$,X),B="{ }";if(q.body){let R=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});B=W(R.outputText.trim())}J.push(` constructor(${I.join(", ")}) ${B}`)}if(j.isMethodDeclaration(q)&&q.name){let I=q.name.getText($),B=q.modifiers?.some((S)=>S.kind===j.SyntaxKind.StaticKeyword),R=q.modifiers?.some((S)=>S.kind===j.SyntaxKind.AsyncKeyword),C=c1(q.parameters,$,X,void 0,H),w=q.type?x(q.type,void 0,X,H):"",F=w&&w!=="undefined"&&w!=="any"?` -! ${w}`:"",M="{ }";if(q.body){let S=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});M=W(S.outputText.trim())}let P=!!q.asteriskToken,V=B?"static ":"",O=R?"async ":"",N=P?"*":"";J.push(` ${V}${O}${N}${I}(${C.join(", ")})${F} ${M}`)}if(j.isGetAccessorDeclaration(q)&&q.name){let I=q.name.getText($),B=q.type?x(q.type,void 0,X,H):"",R=B&&B!=="undefined"&&B!=="any"&&!B.startsWith("new ")?` -> ${B}`:"",C="{ }";if(q.body){let w=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});C=W(w.outputText.trim())}J.push(` get ${I}()${R} ${C}`)}if(j.isSetAccessorDeclaration(q)&&q.name){let I=q.name.getText($),B=c1(q.parameters,$,X),R="{ }";if(q.body){let C=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});R=W(C.outputText.trim())}J.push(` set ${I}(${B.join(", ")}) ${R}`)}if(j.isPropertyDeclaration(q)&&q.name){let I=q.name.getText($),R=q.modifiers?.some((w)=>w.kind===j.SyntaxKind.StaticKeyword)?"static ":"",C=G.get(I)||I;if(q.initializer){let w=q.initializer.getText($),F=w.trimStart().startsWith("{")?`(${w})`:w,P=j.transpileModule(F,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(F!==w)P=P.replace(/^\(/,"").replace(/\);?\s*$/,"");J.push(` ${R}${C} = ${P}`)}else J.push(` ${R}${C}`)}}let _=Z.modifiers?.some((q)=>q.kind===j.SyntaxKind.ExportKeyword)?"export ":"",U=z?` extends ${z}`:"";return`${_}class ${K}${U} {
382
+ }`}function w7(Z,$,X,Q,H,K){let Y;if(Z.typeParameters&&Z.typeParameters.length>0){Y=new Map;for(let C of Z.typeParameters)Y.set(C.name.getText($),{constraint:C.constraint,default:C.default})}let z=Y||K?{...K,typeParams:Y??K?.typeParams}:K,G=[],W=c1(Z.parameters,$,Q,G,z),{line:J}=$.getLineAndCharacterOfPosition(Z.getStart($)),L=H?`/* line ${J+1} */
383
+ `:"",_=X||(j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):""),U=Z.type?y(Z.type,void 0,Q,z):"",q=U&&U!=="undefined"&&U!=="any"&&!U.startsWith("new ")?` -! ${U}`:"";if(Z.type&&(U==="any"||U==="undefined")){let C=Z.type.getText($);if(C!=="any"&&C!=="unknown"&&C!=="void")G.push(`return: ${C}`)}let I="";if(Z.body){let C=j.isBlock(Z.body)?Z.body.getText($):`{ return ${Z.body.getText($)} }`;I=j.transpileModule(C,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}else I="{ }";let M=Z.modifiers?.some((C)=>C.kind===j.SyntaxKind.ExportKeyword),B=Z.modifiers?.some((C)=>C.kind===j.SyntaxKind.AsyncKeyword),P=!!Z.asteriskToken,R=M?"export ":"",F=B?"async ":"",w=P?"function* ":"function ",V=G.length>0?`/* TODO: TS types degraded — ${G.join(", ")} */
384
+ `:"";return`${L}${V}${R}${F}${w}${_}(${W.join(", ")})${q} ${I}`}function j5(Z,$,X,Q){let H=$.name?.getText(X)||"",K=`_${H}_impl`,Y=[],z=c1($.parameters,X,Q),G="{ }";if($.body){let U=$.body.getText(X);G=j.transpileModule(U,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim()}let W=$.modifiers?.some((U)=>U.kind===j.SyntaxKind.AsyncKeyword),J=!!$.asteriskToken,L=W?"async ":"",_=J?"function* ":"function ";Y.push(`${L}${_}${K}(${z.join(", ")}) ${G}`);for(let U of Z){let q=c1(U.parameters,X,Q),I=U.parameters.map((w)=>w.name.getText(X)),M=U.type?y(U.type,void 0,Q):"",B=M&&M!=="undefined"&&M!=="any"?` -! ${M}`:"",{line:P}=X.getLineAndCharacterOfPosition(U.getStart(X)),R=`/* line ${P+1} */
385
+ `,F=J?"yield* ":"return ";Y.push(`${R}${L}${_}${H}(${q.join(", ")})${B} { ${F}${K}(${I.join(", ")}) }`)}return Y}function F5(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let q=new Map;for(let I of Z.typeParameters)q.set(I.name.getText($),{constraint:I.constraint,default:I.default});H={...Q,typeParams:q}}let K=Z.name?.getText($)||"Anonymous",z=Z.heritageClauses?.find((q)=>q.token===j.SyntaxKind.ExtendsKeyword)?.types[0]?.expression?.getText($),G=new Map;for(let q of Z.members)if(j.isPropertyDeclaration(q)&&q.name){let I=q.name.getText($);if(q.modifiers?.some((B)=>B.kind===j.SyntaxKind.PrivateKeyword)&&!I.startsWith("#"))G.set(I,`#${I}`)}let W=(q)=>{let I=q;for(let[M,B]of G)I=I.replace(new RegExp(`(\\b\\w+)\\.${M}\\b`,"g"),`$1.${B}`);return I},J=[];for(let q of Z.members){if(j.isConstructorDeclaration(q)){let I=c1(q.parameters,$,X),M="{ }";if(q.body){let B=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});M=W(B.outputText.trim())}J.push(` constructor(${I.join(", ")}) ${M}`)}if(j.isMethodDeclaration(q)&&q.name){let I=q.name.getText($),M=q.modifiers?.some((S)=>S.kind===j.SyntaxKind.StaticKeyword),B=q.modifiers?.some((S)=>S.kind===j.SyntaxKind.AsyncKeyword),P=c1(q.parameters,$,X,void 0,H),R=q.type?y(q.type,void 0,X,H):"",F=R&&R!=="undefined"&&R!=="any"?` -! ${R}`:"",w="{ }";if(q.body){let S=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});w=W(S.outputText.trim())}let V=!!q.asteriskToken,C=M?"static ":"",O=B?"async ":"",N=V?"*":"";J.push(` ${C}${O}${N}${I}(${P.join(", ")})${F} ${w}`)}if(j.isGetAccessorDeclaration(q)&&q.name){let I=q.name.getText($),M=q.type?y(q.type,void 0,X,H):"",B=M&&M!=="undefined"&&M!=="any"&&!M.startsWith("new ")?` -> ${M}`:"",P="{ }";if(q.body){let R=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});P=W(R.outputText.trim())}J.push(` get ${I}()${B} ${P}`)}if(j.isSetAccessorDeclaration(q)&&q.name){let I=q.name.getText($),M=c1(q.parameters,$,X),B="{ }";if(q.body){let P=j.transpileModule(q.body.getText($),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});B=W(P.outputText.trim())}J.push(` set ${I}(${M.join(", ")}) ${B}`)}if(j.isPropertyDeclaration(q)&&q.name){let I=q.name.getText($),B=q.modifiers?.some((R)=>R.kind===j.SyntaxKind.StaticKeyword)?"static ":"",P=G.get(I)||I;if(q.initializer){let R=q.initializer.getText($),F=R.trimStart().startsWith("{")?`(${R})`:R,V=j.transpileModule(F,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(F!==R)V=V.replace(/^\(/,"").replace(/\);?\s*$/,"");J.push(` ${B}${P} = ${V}`)}else J.push(` ${B}${P}`)}}let _=Z.modifiers?.some((q)=>q.kind===j.SyntaxKind.ExportKeyword)?"export ":"",U=z?` extends ${z}`:"";return`${_}class ${K}${U} {
383
386
  ${J.join(`
384
387
  `)}
385
- }`}function c1(Z,$,X,Q,H){let K=[];for(let Y of Z){let z=Y.name.getText($);if(z==="this")continue;let G=!!Y.questionToken||!!Y.initializer,W=x(Y.type,void 0,X,H);if(Y.initializer){let J=Y.initializer.getText($);K.push(`${z} = ${J}`)}else if(W==="any"||W==="undefined"){if(K.push(z),Q&&Y.type){let J=Y.type.getText($);if(J!=="any"&&J!=="unknown")Q.push(`${z}: ${J}`)}}else if(G)K.push(`${z}: ${W} | undefined`);else K.push(`${z}: ${W}`)}return K}function K4(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let W=new Map;for(let J of Z.typeParameters)W.set(J.name.getText($),{constraint:J.constraint,default:J.default});H={...Q,typeParams:W}}let K=j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):"anonymous",Y={};for(let W of Z.parameters){let J=W.name.getText($),L=!!W.questionToken||!!W.initializer,_=void 0;if(W.initializer){let U=W.initializer.getText($);try{_=JSON.parse(U)}catch{_=U}}Y[J]={type:p(W.type,H),required:!L,default:_}}let z={name:K,params:Y,returns:Z.type?p(Z.type,H):void 0},G=L5(Z,X);if(G)z.typeParams=G;return z}function M5(Z,$,X,Q){let H=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});H={...Q,typeParams:J}}let K=Z.name?.getText($)||"anonymous",Y={},z={},G;for(let J of Z.members){if(j.isConstructorDeclaration(J)){let L={};for(let _ of J.parameters){let U=_.name.getText($),q=!!_.questionToken||!!_.initializer,I=void 0;if(_.initializer){let B=_.initializer.getText($);try{I=JSON.parse(B)}catch{I=B}}L[U]={type:p(_.type,H),required:!q,default:I}}G={params:L}}if(j.isMethodDeclaration(J)&&J.name){let L=J.name.getText($),_=J.modifiers?.some((I)=>I.kind===j.SyntaxKind.StaticKeyword),U={};for(let I of J.parameters){let B=I.name.getText($),R=!!I.questionToken||!!I.initializer,C=void 0;if(I.initializer){let w=I.initializer.getText($);try{C=JSON.parse(w)}catch{C=w}}U[B]={type:p(I.type,H),required:!R,default:C}}let q={name:L,params:U,returns:J.type?p(J.type,H):void 0};if(_)z[L]=q;else Y[L]=q}}let W={name:K,methods:Y,staticMethods:z,constructor:G};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}W.typeParams=J}return W}function j5(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 F5(Z){let $=[],X=/\/\*#[\s\S]*?\*\//g,Q=0,H=null,K=[];for(let z=0;z<Z.length;z++){let G=Z[z],W=z>0?Z[z-1]:"";if(!H&&(G==='"'||G==="'"||G==="`"))H=G;else if(H&&G===H&&W!=="\\")H=null;if(!H){if(G==="{")Q++;if(G==="}")Q--}K[z]=Q}let Y;while((Y=X.exec(Z))!==null)if(K[Y.index]===0)$.push({content:Y[0],index:Y.index});return $}function P5(Z,$={}){let{emitTJS:X=!1,filename:Q="input.ts"}=$,H=[],K=j5(Z),Y=X?F5(Z):[],z=j.createSourceFile(Q,Z,j.ScriptTarget.Latest,!0),G=[],W=new Set,J={},L={},_=new Set,U=(M)=>{for(let P=0;P<Y.length;P++){let V=Y[P];if(!_.has(P)&&V.index<M)G.push(V.content),_.add(P)}},q=new Map,I=new Map;function B(M){if(j.isTypeAliasDeclaration(M))q.set(M.name.getText(z),M.type);if(j.isInterfaceDeclaration(M)){let P=M.name.getText(z),V=I.get(P);if(V){let O=j.factory.updateInterfaceDeclaration(V,V.modifiers,V.name,V.typeParameters,V.heritageClauses,[...V.members,...M.members]);I.set(P,O)}else I.set(P,M)}j.forEachChild(M,B)}B(z);let R={typeAliases:q,interfaces:I,sourceFile:z,warnings:H},C=new Map;for(let M of z.statements)if(j.isFunctionDeclaration(M)&&M.name){let P=M.name.getText(z);if(!C.has(P))C.set(P,{signatures:[],implementation:null});let V=C.get(P);if(M.body)V.implementation=M;else V.signatures.push(M)}for(let[M,P]of C)if(P.signatures.length===0||!P.implementation)C.delete(M);for(let M of z.statements){let P=!1;if(X)U(M.getStart(z));if(j.isFunctionDeclaration(M)&&M.name){let V=M.name.getText(z);P=!0;let O=C.get(V);if(O)if(!M.body);else if(X)G.push(...B5(O.signatures,M,z,H));else{let N=[];for(let g of O.signatures)N.push(K4(g,z,H,R));let S=K4(M,z,H,R);S.overloads=N,J[V]=S}else if(X)G.push(M7(M,z,void 0,H,!0,R));else J[V]=K4(M,z,H,R)}if(j.isVariableStatement(M)){let V=!1,O=M.modifiers?.some((N)=>N.kind===j.SyntaxKind.ExportKeyword);for(let N of M.declarationList.declarations)if(j.isIdentifier(N.name)&&N.initializer&&(j.isArrowFunction(N.initializer)||j.isFunctionExpression(N.initializer))){V=!0;let S=N.name.getText(z),g=N.initializer;if(X){let f=M7(g,z,S,H,!0,R);if(O&&!f.includes("export ")){let c=f.search(/^(async\s+)?function[\s*]/m);if(c>0)f=f.slice(0,c)+"export "+f.slice(c);else f="export "+f}G.push(f)}else{let f=K4(g,z,H,R);f.name=S,J[S]=f}}if(!V&&X){let N=j.transpileModule(M.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});G.push(N.outputText.trim())}P=!0}if(j.isInterfaceDeclaration(M)){if(P=!0,X){let V=M.name.getText(z);if(!W.has(V)){W.add(V);let O=I.get(V)||M,N=U5(O,z,H);if(N){let S=M.modifiers?.some((g)=>g.kind===j.SyntaxKind.ExportKeyword);G.push(S?N.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):N)}}}}if(j.isTypeAliasDeclaration(M)){if(P=!0,X){let V=M.name.getText(z);if(!W.has(V)){W.add(V);let O=I5(M,z,H);if(O){let N=M.modifiers?.some((S)=>S.kind===j.SyntaxKind.ExportKeyword);G.push(N?O.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):O)}}}}if(j.isEnumDeclaration(M)){if(P=!0,X){let V=M.name.getText(z);if(!W.has(V)){W.add(V);let O=A5(M,z,H);if(O)G.push(O)}}}if(j.isClassDeclaration(M)&&M.name){let V=M.name.getText(z);if(P=!0,X){let O=w5(M,z,H);G.push(O)}else L[V]=M5(M,z,H,R)}if(j.isImportDeclaration(M)){if(P=!0,X){if(!(M.importClause?.isTypeOnly||M.importClause?.namedBindings&&j.isNamedImports(M.importClause.namedBindings)&&M.importClause.namedBindings.elements.every((O)=>O.isTypeOnly)))if(M.importClause?.namedBindings&&j.isNamedImports(M.importClause.namedBindings)){let O=M.importClause.namedBindings.elements.filter((N)=>!N.isTypeOnly).map((N)=>{let S=N.name.getText(z),g=N.propertyName?.getText(z);return g?`${g} as ${S}`:S});if(O.length>0){let N=M.moduleSpecifier.text;G.push(`import { ${O.join(", ")} } from '${N}'`)}}else{let N=M.getText(z).replace(/\btype\s+/g,"").replace(/\s*:\s*\w+/g,"");G.push(N)}}}if(j.isExportDeclaration(M)||j.isExportAssignment(M)){if(P=!0,X){let O=j.transpileModule(M.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)G.push(O)}}if(!P&&X){let O=j.transpileModule(M.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)G.push(O)}}if(X){U(1/0);let P=`/* tjs <- ${Q||"unknown"} */
388
+ }`}function c1(Z,$,X,Q,H){let K=[];for(let Y of Z){let z=Y.name.getText($);if(z==="this")continue;let G=!!Y.questionToken||!!Y.initializer,W=y(Y.type,void 0,X,H);if(Y.initializer){let J=Y.initializer.getText($);K.push(`${z} = ${J}`)}else if(W==="any"||W==="undefined"){if(K.push(z),Q&&Y.type){let J=Y.type.getText($);if(J!=="any"&&J!=="unknown")Q.push(`${z}: ${J}`)}}else if(G)K.push(`${z}: ${W} | undefined`);else K.push(`${z}: ${W}`)}return K}function K4(Z,$,X,Q){let H=Q;if(Z.typeParameters&&Z.typeParameters.length>0){let W=new Map;for(let J of Z.typeParameters)W.set(J.name.getText($),{constraint:J.constraint,default:J.default});H={...Q,typeParams:W}}let K=j.isFunctionDeclaration(Z)&&Z.name?Z.name.getText($):"anonymous",Y={};for(let W of Z.parameters){let J=W.name.getText($),L=!!W.questionToken||!!W.initializer,_=void 0;if(W.initializer){let U=W.initializer.getText($);try{_=JSON.parse(U)}catch{_=U}}Y[J]={type:p(W.type,H),required:!L,default:_}}let z={name:K,params:Y,returns:Z.type?p(Z.type,H):void 0},G=q5(Z,X);if(G)z.typeParams=G;return z}function P5(Z,$,X,Q){let H=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});H={...Q,typeParams:J}}let K=Z.name?.getText($)||"anonymous",Y={},z={},G;for(let J of Z.members){if(j.isConstructorDeclaration(J)){let L={};for(let _ of J.parameters){let U=_.name.getText($),q=!!_.questionToken||!!_.initializer,I=void 0;if(_.initializer){let M=_.initializer.getText($);try{I=JSON.parse(M)}catch{I=M}}L[U]={type:p(_.type,H),required:!q,default:I}}G={params:L}}if(j.isMethodDeclaration(J)&&J.name){let L=J.name.getText($),_=J.modifiers?.some((I)=>I.kind===j.SyntaxKind.StaticKeyword),U={};for(let I of J.parameters){let M=I.name.getText($),B=!!I.questionToken||!!I.initializer,P=void 0;if(I.initializer){let R=I.initializer.getText($);try{P=JSON.parse(R)}catch{P=R}}U[M]={type:p(I.type,H),required:!B,default:P}}let q={name:L,params:U,returns:J.type?p(J.type,H):void 0};if(_)z[L]=q;else Y[L]=q}}let W={name:K,methods:Y,staticMethods:z,constructor:G};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=y(L.constraint,void 0,X,Q);if(L.default)U.default=y(L.default,void 0,X,Q);J[_]=U}W.typeParams=J}return W}function V5(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 C5(Z){let $=[],X=/\/\*#[\s\S]*?\*\//g,Q=0,H=null,K=[];for(let z=0;z<Z.length;z++){let G=Z[z],W=z>0?Z[z-1]:"";if(!H&&(G==='"'||G==="'"||G==="`"))H=G;else if(H&&G===H&&W!=="\\")H=null;if(!H){if(G==="{")Q++;if(G==="}")Q--}K[z]=Q}let Y;while((Y=X.exec(Z))!==null)if(K[Y.index]===0)$.push({content:Y[0],index:Y.index});return $}function O5(Z,$={}){let{emitTJS:X=!1,filename:Q="input.ts"}=$,H=[],K=V5(Z),Y=X?C5(Z):[],z=j.createSourceFile(Q,Z,j.ScriptTarget.Latest,!0),G=[],W=new Set,J={},L={},_=new Set,U=(w)=>{for(let V=0;V<Y.length;V++){let C=Y[V];if(!_.has(V)&&C.index<w)G.push(C.content),_.add(V)}},q=new Map,I=new Map;function M(w){if(j.isTypeAliasDeclaration(w))q.set(w.name.getText(z),w.type);if(j.isInterfaceDeclaration(w)){let V=w.name.getText(z),C=I.get(V);if(C){let O=j.factory.updateInterfaceDeclaration(C,C.modifiers,C.name,C.typeParameters,C.heritageClauses,[...C.members,...w.members]);I.set(V,O)}else I.set(V,w)}j.forEachChild(w,M)}M(z);let B={typeAliases:q,interfaces:I,sourceFile:z,warnings:H},P=new Map;for(let w of z.statements)if(j.isFunctionDeclaration(w)&&w.name){let V=w.name.getText(z);if(!P.has(V))P.set(V,{signatures:[],implementation:null});let C=P.get(V);if(w.body)C.implementation=w;else C.signatures.push(w)}for(let[w,V]of P)if(V.signatures.length===0||!V.implementation)P.delete(w);for(let w of z.statements){let V=!1;if(X)U(w.getStart(z));if(j.isFunctionDeclaration(w)&&w.name){let C=w.name.getText(z);V=!0;let O=P.get(C);if(O)if(!w.body);else if(X)G.push(...j5(O.signatures,w,z,H));else{let N=[];for(let g of O.signatures)N.push(K4(g,z,H,B));let S=K4(w,z,H,B);S.overloads=N,J[C]=S}else if(X)G.push(w7(w,z,void 0,H,!0,B));else J[C]=K4(w,z,H,B)}if(j.isVariableStatement(w)){let C=!1,O=w.modifiers?.some((N)=>N.kind===j.SyntaxKind.ExportKeyword);for(let N of w.declarationList.declarations)if(j.isIdentifier(N.name)&&N.initializer&&(j.isArrowFunction(N.initializer)||j.isFunctionExpression(N.initializer))){C=!0;let S=N.name.getText(z),g=N.initializer;if(X){let f=w7(g,z,S,H,!0,B);if(O&&!f.includes("export ")){let c=f.search(/^(async\s+)?function[\s*]/m);if(c>0)f=f.slice(0,c)+"export "+f.slice(c);else f="export "+f}G.push(f)}else{let f=K4(g,z,H,B);f.name=S,J[S]=f}}if(!C&&X){let N=j.transpileModule(w.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}});G.push(N.outputText.trim())}V=!0}if(j.isInterfaceDeclaration(w)){if(V=!0,X){let C=w.name.getText(z);if(!W.has(C)){W.add(C);let O=I.get(C)||w,N=D5(O,z,H);if(N){let S=w.modifiers?.some((g)=>g.kind===j.SyntaxKind.ExportKeyword);G.push(S?N.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):N)}}}}if(j.isTypeAliasDeclaration(w)){if(V=!0,X){let C=w.name.getText(z);if(!W.has(C)){W.add(C);let O=R5(w,z,H);if(O){let N=w.modifiers?.some((S)=>S.kind===j.SyntaxKind.ExportKeyword);G.push(N?O.replace(/^(\/\*[\s\S]*?\*\/\s*)?/,"$1export "):O)}}}}if(j.isEnumDeclaration(w)){if(V=!0,X){let C=w.name.getText(z);if(!W.has(C)){W.add(C);let O=B5(w,z,H);if(O)G.push(O)}}}if(j.isClassDeclaration(w)&&w.name){let C=w.name.getText(z);if(V=!0,X){let O=F5(w,z,H);G.push(O)}else L[C]=P5(w,z,H,B)}if(j.isImportDeclaration(w)){if(V=!0,X){if(!(w.importClause?.isTypeOnly||w.importClause?.namedBindings&&j.isNamedImports(w.importClause.namedBindings)&&w.importClause.namedBindings.elements.every((O)=>O.isTypeOnly)))if(w.importClause?.namedBindings&&j.isNamedImports(w.importClause.namedBindings)){let O=w.importClause.namedBindings.elements.filter((N)=>!N.isTypeOnly).map((N)=>{let S=N.name.getText(z),g=N.propertyName?.getText(z);return g?`${g} as ${S}`:S});if(O.length>0){let N=w.moduleSpecifier.text;G.push(`import { ${O.join(", ")} } from '${N}'`)}}else{let N=w.getText(z).replace(/\btype\s+/g,"").replace(/\s*:\s*\w+/g,"");G.push(N)}}}if(j.isExportDeclaration(w)||j.isExportAssignment(w)){if(V=!0,X){let O=j.transpileModule(w.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)G.push(O)}}if(!V&&X){let O=j.transpileModule(w.getText(z),{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText.trim();if(O)G.push(O)}}if(X){U(1/0);let V=`/* tjs <- ${Q||"unknown"} */
386
389
 
387
- `,V=K.length>0?`
390
+ `,C=K.length>0?`
388
391
 
389
392
  `+K.join(`
390
393
 
391
- `):"";return{code:P+G.join(`
394
+ `):"";return{code:V+G.join(`
392
395
 
393
- `)+V,warnings:H.length>0?H:void 0}}let F=j.transpileModule(Z,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText;for(let[M,P]of Object.entries(J)){let V={params:Object.fromEntries(Object.entries(P.params).map(([N,S])=>[N,{type:S.type.kind,required:S.required,default:S.default}])),returns:P.returns?{type:P.returns.kind}:void 0};if(P.typeParams)V.typeParams=P.typeParams;let O=JSON.stringify(V,null,2);F+=`
394
- ${M}.__tjs = ${O};
395
- `}for(let[M,P]of Object.entries(L)){let V={constructor:P.constructor?{params:Object.fromEntries(Object.entries(P.constructor.params??{}).map(([N,S])=>[N,{type:S.type.kind,required:S.required,default:S.default}]))}:void 0,methods:Object.fromEntries(Object.entries(P.methods??{}).map(([N,S])=>[N,{params:Object.fromEntries(Object.entries(S.params??{}).map(([g,f])=>[g,{type:f.type.kind,required:f.required}])),returns:S.returns?{type:S.returns.kind}:void 0}])),staticMethods:Object.fromEntries(Object.entries(P.staticMethods??{}).map(([N,S])=>[N,{params:Object.fromEntries(Object.entries(S.params??{}).map(([g,f])=>[g,{type:f.type.kind,required:f.required}])),returns:S.returns?{type:S.returns.kind}:void 0}]))};if(P.typeParams)V.typeParams=P.typeParams;let O=JSON.stringify(V,null,2);F+=`
396
- ${M}.__tjs = ${O};
396
+ `)+C,warnings:H.length>0?H:void 0}}let F=j.transpileModule(Z,{compilerOptions:{target:j.ScriptTarget.ESNext,module:j.ModuleKind.ESNext,removeComments:!1}}).outputText;for(let[w,V]of Object.entries(J)){let C={params:Object.fromEntries(Object.entries(V.params).map(([N,S])=>[N,{type:S.type.kind,required:S.required,default:S.default}])),returns:V.returns?{type:V.returns.kind}:void 0};if(V.typeParams)C.typeParams=V.typeParams;let O=JSON.stringify(C,null,2);F+=`
397
+ ${w}.__tjs = ${O};
398
+ `}for(let[w,V]of Object.entries(L)){let C={constructor:V.constructor?{params:Object.fromEntries(Object.entries(V.constructor.params??{}).map(([N,S])=>[N,{type:S.type.kind,required:S.required,default:S.default}]))}:void 0,methods:Object.fromEntries(Object.entries(V.methods??{}).map(([N,S])=>[N,{params:Object.fromEntries(Object.entries(S.params??{}).map(([g,f])=>[g,{type:f.type.kind,required:f.required}])),returns:S.returns?{type:S.returns.kind}:void 0}])),staticMethods:Object.fromEntries(Object.entries(V.staticMethods??{}).map(([N,S])=>[N,{params:Object.fromEntries(Object.entries(S.params??{}).map(([g,f])=>[g,{type:f.type.kind,required:f.required}])),returns:S.returns?{type:S.returns.kind}:void 0}]))};if(V.typeParams)C.typeParams=V.typeParams;let O=JSON.stringify(C,null,2);F+=`
399
+ ${w}.__tjs = ${O};
397
400
  `,F+=`
398
- ${w7(M)}
399
- `}return{code:F,types:J,classes:Object.keys(L).length>0?L:void 0,warnings:H.length>0?H:void 0}}import{s as j7}from"tosijs-schema";function F7(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function Y4(Z){return j7.infer(Z)}function s4(Z){return Y4(Z)}s4.type=F7;s4.infer=Y4;var V5=new Proxy(s4,{get(Z,$){if($==="type")return F7;if($==="infer")return Y4;return j7[$]},apply(Z,$,X){return Y4(X[0])}});async function z4(Z){let $=`${$1}:${Z}`;if(typeof crypto<"u"&&crypto.subtle){let H=new TextEncoder().encode($),K=await crypto.subtle.digest("SHA-256",H);return Array.from(new Uint8Array(K)).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 C5(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 O5="tjs-metadata-cache",N5=1,a="modules";class a4{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(O5,N5);X.onerror=()=>{console.warn("MetadataCache: Failed to open IndexedDB",X.error),Z()},X.onsuccess=()=>{this.db=X.result,Z()},X.onupgradeneeded=(Q)=>{let H=Q.target.result;if(!H.objectStoreNames.contains(a)){let K=H.createObjectStore(a,{keyPath:"hash"});K.createIndex("timestamp","timestamp"),K.createIndex("version","version")}}})}async get(Z){if(!this.db){this.stats.misses++;return}let $=await z4(Z);return new Promise((X)=>{let K=this.db.transaction(a,"readonly").objectStore(a).get($);K.onerror=()=>{this.stats.misses++,X(void 0)},K.onsuccess=()=>{let Y=K.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 z4(Z);return new Promise((Q,H)=>{let Y=this.db.transaction(a,"readwrite").objectStore(a),z=Y.get(X);z.onsuccess=()=>{let G=z.result,W={hash:X,version:$1,timestamp:Date.now(),transpile:$.transpile??G?.transpile,tjs:$.tjs??G?.tjs},J=Y.put(W);J.onerror=()=>H(J.error),J.onsuccess=()=>Q()},z.onerror=()=>H(z.error)})}async delete(Z){if(!this.db)return;let $=await z4(Z);return new Promise((X,Q)=>{let Y=this.db.transaction(a,"readwrite").objectStore(a).delete($);Y.onerror=()=>Q(Y.error),Y.onsuccess=()=>X()})}async clear(){if(!this.db)return;return new Promise((Z,$)=>{let H=this.db.transaction(a,"readwrite").objectStore(a).clear();H.onerror=()=>$(H.error),H.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(a,"readwrite").objectStore(a).index("timestamp"),z=IDBKeyRange.upperBound($),G=0,W=Y.openCursor(z);W.onsuccess=(J)=>{let L=J.target.result;if(L)L.delete(),G++,L.continue();else X(G)},W.onerror=()=>Q(W.error)})}async pruneOldVersions(){if(!this.db)return 0;return new Promise((Z,$)=>{let Q=this.db.transaction(a,"readwrite").objectStore(a),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z){if(z.value.version!==$1)z.delete(),H++;z.continue()}else Z(H)},K.onerror=()=>$(K.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 H=this.db.transaction(a,"readonly").objectStore(a).count();H.onerror=()=>$(H.error),H.onsuccess=()=>Z(H.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(a,"readonly").objectStore(a),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z)H+=JSON.stringify(z.value).length*2,z.continue();else Z(H)},K.onerror=()=>$(K.error)})}close(){if(this.db)this.db.close(),this.db=null}isAvailable(){return this.db!==null}resetStats(){this.stats={hits:0,misses:0}}}var A0=null;async function G4(){if(!A0)A0=new a4,await A0.open();return A0}function E5(Z){A0=Z}function W4(Z,$,X,Q,H){if(!X)X=T;(function K(Y,z,G){var W=G||Y.type;if(X[W](Y,z,K),$[W])$[W](Y,z)})(Z,Q,H)}function P7(Z,$,X,Q,H){var K=[];if(!X)X=T;(function Y(z,G,W){var J=W||z.type,L=z!==K[K.length-1];if(L)K.push(z);if(X[J](z,G,Y),$[J])$[J](z,G||K,K);if(L)K.pop()})(Z,Q,H)}function r4(Z,$,X){X(Z,$)}function y1(Z,$,X){}var T={};T.Program=T.BlockStatement=T.StaticBlock=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.Statement=r4;T.EmptyStatement=y1;T.ExpressionStatement=T.ParenthesizedExpression=T.ChainExpression=function(Z,$,X){return X(Z.expression,$,"Expression")};T.IfStatement=function(Z,$,X){if(X(Z.test,$,"Expression"),X(Z.consequent,$,"Statement"),Z.alternate)X(Z.alternate,$,"Statement")};T.LabeledStatement=function(Z,$,X){return X(Z.body,$,"Statement")};T.BreakStatement=T.ContinueStatement=y1;T.WithStatement=function(Z,$,X){X(Z.object,$,"Expression"),X(Z.body,$,"Statement")};T.SwitchStatement=function(Z,$,X){X(Z.discriminant,$,"Expression");for(var Q=0,H=Z.cases;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.SwitchCase=function(Z,$,X){if(Z.test)X(Z.test,$,"Expression");for(var Q=0,H=Z.consequent;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.ReturnStatement=T.YieldExpression=T.AwaitExpression=function(Z,$,X){if(Z.argument)X(Z.argument,$,"Expression")};T.ThrowStatement=T.SpreadElement=function(Z,$,X){return X(Z.argument,$,"Expression")};T.TryStatement=function(Z,$,X){if(X(Z.block,$,"Statement"),Z.handler)X(Z.handler,$);if(Z.finalizer)X(Z.finalizer,$,"Statement")};T.CatchClause=function(Z,$,X){if(Z.param)X(Z.param,$,"Pattern");X(Z.body,$,"Statement")};T.WhileStatement=T.DoWhileStatement=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.body,$,"Statement")};T.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")};T.ForInStatement=T.ForOfStatement=function(Z,$,X){X(Z.left,$,"ForInit"),X(Z.right,$,"Expression"),X(Z.body,$,"Statement")};T.ForInit=function(Z,$,X){if(Z.type==="VariableDeclaration")X(Z,$);else X(Z,$,"Expression")};T.DebuggerStatement=y1;T.FunctionDeclaration=function(Z,$,X){return X(Z,$,"Function")};T.VariableDeclaration=function(Z,$,X){for(var Q=0,H=Z.declarations;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.VariableDeclarator=function(Z,$,X){if(X(Z.id,$,"Pattern"),Z.init)X(Z.init,$,"Expression")};T.Function=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");for(var Q=0,H=Z.params;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Pattern")}X(Z.body,$,Z.expression?"Expression":"Statement")};T.Pattern=function(Z,$,X){if(Z.type==="Identifier")X(Z,$,"VariablePattern");else if(Z.type==="MemberExpression")X(Z,$,"MemberPattern");else X(Z,$)};T.VariablePattern=y1;T.MemberPattern=r4;T.RestElement=function(Z,$,X){return X(Z.argument,$,"Pattern")};T.ArrayPattern=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Pattern")}};T.ObjectPattern=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];if(K.type==="Property"){if(K.computed)X(K.key,$,"Expression");X(K.value,$,"Pattern")}else if(K.type==="RestElement")X(K.argument,$,"Pattern")}};T.Expression=r4;T.ThisExpression=T.Super=T.MetaProperty=y1;T.ArrayExpression=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Expression")}};T.ObjectExpression=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.FunctionExpression=T.ArrowFunctionExpression=T.FunctionDeclaration;T.SequenceExpression=function(Z,$,X){for(var Q=0,H=Z.expressions;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.TemplateLiteral=function(Z,$,X){for(var Q=0,H=Z.quasis;Q<H.length;Q+=1){var K=H[Q];X(K,$)}for(var Y=0,z=Z.expressions;Y<z.length;Y+=1){var G=z[Y];X(G,$,"Expression")}};T.TemplateElement=y1;T.UnaryExpression=T.UpdateExpression=function(Z,$,X){X(Z.argument,$,"Expression")};T.BinaryExpression=T.LogicalExpression=function(Z,$,X){X(Z.left,$,"Expression"),X(Z.right,$,"Expression")};T.AssignmentExpression=T.AssignmentPattern=function(Z,$,X){X(Z.left,$,"Pattern"),X(Z.right,$,"Expression")};T.ConditionalExpression=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.consequent,$,"Expression"),X(Z.alternate,$,"Expression")};T.NewExpression=T.CallExpression=function(Z,$,X){if(X(Z.callee,$,"Expression"),Z.arguments)for(var Q=0,H=Z.arguments;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.MemberExpression=function(Z,$,X){if(X(Z.object,$,"Expression"),Z.computed)X(Z.property,$,"Expression")};T.ExportNamedDeclaration=T.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")};T.ExportAllDeclaration=function(Z,$,X){if(Z.exported)X(Z.exported,$);X(Z.source,$,"Expression")};T.ImportDeclaration=function(Z,$,X){for(var Q=0,H=Z.specifiers;Q<H.length;Q+=1){var K=H[Q];X(K,$)}X(Z.source,$,"Expression")};T.ImportExpression=function(Z,$,X){X(Z.source,$,"Expression")};T.ImportSpecifier=T.ImportDefaultSpecifier=T.ImportNamespaceSpecifier=T.Identifier=T.PrivateIdentifier=T.Literal=y1;T.TaggedTemplateExpression=function(Z,$,X){X(Z.tag,$,"Expression"),X(Z.quasi,$,"Expression")};T.ClassDeclaration=T.ClassExpression=function(Z,$,X){return X(Z,$,"Class")};T.Class=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");if(Z.superClass)X(Z.superClass,$,"Expression");X(Z.body,$)};T.ClassBody=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.MethodDefinition=T.PropertyDefinition=T.Property=function(Z,$,X){if(Z.computed)X(Z.key,$,"Expression");if(Z.value)X(Z.value,$,"Expression")};var S5={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function k5(Z,$={}){let X={...S5,...$},Q=[],H;try{H=w1(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 K=[V7()];if(P7(H,{FunctionDeclaration(Y,z,G){let W=V7();K.push(W);for(let J of Y.params)g5(W,J,"parameter");if(Y.id)(K[K.length-2]||K[0]).declarations.set(Y.id.name,{node:Y.id,kind:"function",used:!1})},VariableDeclaration(Y){let z=K[K.length-1];for(let G of Y.declarations)if(G.id.type==="Identifier")z.declarations.set(G.id.name,{node:G.id,kind:Y.kind,used:!1})}}),W4(H,{Identifier(Y){for(let z=K.length-1;z>=0;z--){let G=K[z].declarations.get(Y.name);if(G){G.used=!0;break}}}}),X.unusedVariables)for(let Y of K)for(let[z,G]of Y.declarations){if(z.startsWith("_"))continue;if(!G.used&&G.kind!=="function")Q.push({severity:"warning",message:`'${z}' is declared but never used`,line:G.node.loc?.start?.line,column:G.node.loc?.start?.column,rule:"no-unused-vars"})}if(X.unreachableCode)W4(H,{BlockStatement(Y){let z=!1;for(let G of Y.body){if(z){Q.push({severity:"warning",message:"Unreachable code after return statement",line:G.loc?.start?.line,column:G.loc?.start?.column,rule:"no-unreachable"});break}if(G.type==="ReturnStatement")z=!0}}});if(X.noExplicitNew)W4(H,{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 V7(){return{declarations:new Map}}function g5(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 b5(Z){let $=[],X=0,Q=null;for(let H=0;H<Z.length;H++){let K=Z[H],Y=H>0?Z[H-1]:"";if(!Q&&(K==='"'||K==="'"||K==="`"))Q=K;else if(Q&&K===Q&&Y!=="\\")Q=null;if(!Q){if(K==="{")X++;if(K==="}")X--}$[H]=X}return $}function C7(Z){let $=[],X=b5(Z),Q=/\/\*#([\s\S]*?)\*\//g,H=/function\s+(\w+)\s*\(([^)]*)\)\s*(?:(-[>?!])\s*('[^']*'|"[^"]*"|[^\s{]+)|:\s*(\w+))?\s*\{/g,K=[],Y;while((Y=Q.exec(Z))!==null){if(X[Y.index]!==0)continue;let G=Y[1],W=G.split(`
401
+ ${M7(w)}
402
+ `}return{code:F,types:J,classes:Object.keys(L).length>0?L:void 0,warnings:H.length>0?H:void 0}}import{s as F7}from"tosijs-schema";function P7(Z){if(Z===null)return"null";if(Z===void 0)return"undefined";if(Array.isArray(Z))return"array";return typeof Z}function Y4(Z){return F7.infer(Z)}function s4(Z){return Y4(Z)}s4.type=P7;s4.infer=Y4;var N5=new Proxy(s4,{get(Z,$){if($==="type")return P7;if($==="infer")return Y4;return F7[$]},apply(Z,$,X){return Y4(X[0])}});async function z4(Z){let $=`${$1}:${Z}`;if(typeof crypto<"u"&&crypto.subtle){let H=new TextEncoder().encode($),K=await crypto.subtle.digest("SHA-256",H);return Array.from(new Uint8Array(K)).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 E5(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 T5="tjs-metadata-cache",S5=1,a="modules";class a4{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(T5,S5);X.onerror=()=>{console.warn("MetadataCache: Failed to open IndexedDB",X.error),Z()},X.onsuccess=()=>{this.db=X.result,Z()},X.onupgradeneeded=(Q)=>{let H=Q.target.result;if(!H.objectStoreNames.contains(a)){let K=H.createObjectStore(a,{keyPath:"hash"});K.createIndex("timestamp","timestamp"),K.createIndex("version","version")}}})}async get(Z){if(!this.db){this.stats.misses++;return}let $=await z4(Z);return new Promise((X)=>{let K=this.db.transaction(a,"readonly").objectStore(a).get($);K.onerror=()=>{this.stats.misses++,X(void 0)},K.onsuccess=()=>{let Y=K.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 z4(Z);return new Promise((Q,H)=>{let Y=this.db.transaction(a,"readwrite").objectStore(a),z=Y.get(X);z.onsuccess=()=>{let G=z.result,W={hash:X,version:$1,timestamp:Date.now(),transpile:$.transpile??G?.transpile,tjs:$.tjs??G?.tjs},J=Y.put(W);J.onerror=()=>H(J.error),J.onsuccess=()=>Q()},z.onerror=()=>H(z.error)})}async delete(Z){if(!this.db)return;let $=await z4(Z);return new Promise((X,Q)=>{let Y=this.db.transaction(a,"readwrite").objectStore(a).delete($);Y.onerror=()=>Q(Y.error),Y.onsuccess=()=>X()})}async clear(){if(!this.db)return;return new Promise((Z,$)=>{let H=this.db.transaction(a,"readwrite").objectStore(a).clear();H.onerror=()=>$(H.error),H.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(a,"readwrite").objectStore(a).index("timestamp"),z=IDBKeyRange.upperBound($),G=0,W=Y.openCursor(z);W.onsuccess=(J)=>{let L=J.target.result;if(L)L.delete(),G++,L.continue();else X(G)},W.onerror=()=>Q(W.error)})}async pruneOldVersions(){if(!this.db)return 0;return new Promise((Z,$)=>{let Q=this.db.transaction(a,"readwrite").objectStore(a),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z){if(z.value.version!==$1)z.delete(),H++;z.continue()}else Z(H)},K.onerror=()=>$(K.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 H=this.db.transaction(a,"readonly").objectStore(a).count();H.onerror=()=>$(H.error),H.onsuccess=()=>Z(H.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(a,"readonly").objectStore(a),H=0,K=Q.openCursor();K.onsuccess=(Y)=>{let z=Y.target.result;if(z)H+=JSON.stringify(z.value).length*2,z.continue();else Z(H)},K.onerror=()=>$(K.error)})}close(){if(this.db)this.db.close(),this.db=null}isAvailable(){return this.db!==null}resetStats(){this.stats={hits:0,misses:0}}}var I0=null;async function G4(){if(!I0)I0=new a4,await I0.open();return I0}function k5(Z){I0=Z}function W4(Z,$,X,Q,H){if(!X)X=T;(function K(Y,z,G){var W=G||Y.type;if(X[W](Y,z,K),$[W])$[W](Y,z)})(Z,Q,H)}function V7(Z,$,X,Q,H){var K=[];if(!X)X=T;(function Y(z,G,W){var J=W||z.type,L=z!==K[K.length-1];if(L)K.push(z);if(X[J](z,G,Y),$[J])$[J](z,G||K,K);if(L)K.pop()})(Z,Q,H)}function r4(Z,$,X){X(Z,$)}function y1(Z,$,X){}var T={};T.Program=T.BlockStatement=T.StaticBlock=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.Statement=r4;T.EmptyStatement=y1;T.ExpressionStatement=T.ParenthesizedExpression=T.ChainExpression=function(Z,$,X){return X(Z.expression,$,"Expression")};T.IfStatement=function(Z,$,X){if(X(Z.test,$,"Expression"),X(Z.consequent,$,"Statement"),Z.alternate)X(Z.alternate,$,"Statement")};T.LabeledStatement=function(Z,$,X){return X(Z.body,$,"Statement")};T.BreakStatement=T.ContinueStatement=y1;T.WithStatement=function(Z,$,X){X(Z.object,$,"Expression"),X(Z.body,$,"Statement")};T.SwitchStatement=function(Z,$,X){X(Z.discriminant,$,"Expression");for(var Q=0,H=Z.cases;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.SwitchCase=function(Z,$,X){if(Z.test)X(Z.test,$,"Expression");for(var Q=0,H=Z.consequent;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Statement")}};T.ReturnStatement=T.YieldExpression=T.AwaitExpression=function(Z,$,X){if(Z.argument)X(Z.argument,$,"Expression")};T.ThrowStatement=T.SpreadElement=function(Z,$,X){return X(Z.argument,$,"Expression")};T.TryStatement=function(Z,$,X){if(X(Z.block,$,"Statement"),Z.handler)X(Z.handler,$);if(Z.finalizer)X(Z.finalizer,$,"Statement")};T.CatchClause=function(Z,$,X){if(Z.param)X(Z.param,$,"Pattern");X(Z.body,$,"Statement")};T.WhileStatement=T.DoWhileStatement=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.body,$,"Statement")};T.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")};T.ForInStatement=T.ForOfStatement=function(Z,$,X){X(Z.left,$,"ForInit"),X(Z.right,$,"Expression"),X(Z.body,$,"Statement")};T.ForInit=function(Z,$,X){if(Z.type==="VariableDeclaration")X(Z,$);else X(Z,$,"Expression")};T.DebuggerStatement=y1;T.FunctionDeclaration=function(Z,$,X){return X(Z,$,"Function")};T.VariableDeclaration=function(Z,$,X){for(var Q=0,H=Z.declarations;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.VariableDeclarator=function(Z,$,X){if(X(Z.id,$,"Pattern"),Z.init)X(Z.init,$,"Expression")};T.Function=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");for(var Q=0,H=Z.params;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Pattern")}X(Z.body,$,Z.expression?"Expression":"Statement")};T.Pattern=function(Z,$,X){if(Z.type==="Identifier")X(Z,$,"VariablePattern");else if(Z.type==="MemberExpression")X(Z,$,"MemberPattern");else X(Z,$)};T.VariablePattern=y1;T.MemberPattern=r4;T.RestElement=function(Z,$,X){return X(Z.argument,$,"Pattern")};T.ArrayPattern=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Pattern")}};T.ObjectPattern=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];if(K.type==="Property"){if(K.computed)X(K.key,$,"Expression");X(K.value,$,"Pattern")}else if(K.type==="RestElement")X(K.argument,$,"Pattern")}};T.Expression=r4;T.ThisExpression=T.Super=T.MetaProperty=y1;T.ArrayExpression=function(Z,$,X){for(var Q=0,H=Z.elements;Q<H.length;Q+=1){var K=H[Q];if(K)X(K,$,"Expression")}};T.ObjectExpression=function(Z,$,X){for(var Q=0,H=Z.properties;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.FunctionExpression=T.ArrowFunctionExpression=T.FunctionDeclaration;T.SequenceExpression=function(Z,$,X){for(var Q=0,H=Z.expressions;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.TemplateLiteral=function(Z,$,X){for(var Q=0,H=Z.quasis;Q<H.length;Q+=1){var K=H[Q];X(K,$)}for(var Y=0,z=Z.expressions;Y<z.length;Y+=1){var G=z[Y];X(G,$,"Expression")}};T.TemplateElement=y1;T.UnaryExpression=T.UpdateExpression=function(Z,$,X){X(Z.argument,$,"Expression")};T.BinaryExpression=T.LogicalExpression=function(Z,$,X){X(Z.left,$,"Expression"),X(Z.right,$,"Expression")};T.AssignmentExpression=T.AssignmentPattern=function(Z,$,X){X(Z.left,$,"Pattern"),X(Z.right,$,"Expression")};T.ConditionalExpression=function(Z,$,X){X(Z.test,$,"Expression"),X(Z.consequent,$,"Expression"),X(Z.alternate,$,"Expression")};T.NewExpression=T.CallExpression=function(Z,$,X){if(X(Z.callee,$,"Expression"),Z.arguments)for(var Q=0,H=Z.arguments;Q<H.length;Q+=1){var K=H[Q];X(K,$,"Expression")}};T.MemberExpression=function(Z,$,X){if(X(Z.object,$,"Expression"),Z.computed)X(Z.property,$,"Expression")};T.ExportNamedDeclaration=T.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")};T.ExportAllDeclaration=function(Z,$,X){if(Z.exported)X(Z.exported,$);X(Z.source,$,"Expression")};T.ImportDeclaration=function(Z,$,X){for(var Q=0,H=Z.specifiers;Q<H.length;Q+=1){var K=H[Q];X(K,$)}X(Z.source,$,"Expression")};T.ImportExpression=function(Z,$,X){X(Z.source,$,"Expression")};T.ImportSpecifier=T.ImportDefaultSpecifier=T.ImportNamespaceSpecifier=T.Identifier=T.PrivateIdentifier=T.Literal=y1;T.TaggedTemplateExpression=function(Z,$,X){X(Z.tag,$,"Expression"),X(Z.quasi,$,"Expression")};T.ClassDeclaration=T.ClassExpression=function(Z,$,X){return X(Z,$,"Class")};T.Class=function(Z,$,X){if(Z.id)X(Z.id,$,"Pattern");if(Z.superClass)X(Z.superClass,$,"Expression");X(Z.body,$)};T.ClassBody=function(Z,$,X){for(var Q=0,H=Z.body;Q<H.length;Q+=1){var K=H[Q];X(K,$)}};T.MethodDefinition=T.PropertyDefinition=T.Property=function(Z,$,X){if(Z.computed)X(Z.key,$,"Expression");if(Z.value)X(Z.value,$,"Expression")};var b5={unusedVariables:!0,undefinedVariables:!0,unreachableCode:!0,noExplicitNew:!0};function v5(Z,$={}){let X={...b5,...$},Q=[],H;try{H=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 K=[C7()];if(V7(H,{FunctionDeclaration(Y,z,G){let W=C7();K.push(W);for(let J of Y.params)f5(W,J,"parameter");if(Y.id)(K[K.length-2]||K[0]).declarations.set(Y.id.name,{node:Y.id,kind:"function",used:!1})},VariableDeclaration(Y){let z=K[K.length-1];for(let G of Y.declarations)if(G.id.type==="Identifier")z.declarations.set(G.id.name,{node:G.id,kind:Y.kind,used:!1})}}),W4(H,{Identifier(Y){for(let z=K.length-1;z>=0;z--){let G=K[z].declarations.get(Y.name);if(G){G.used=!0;break}}}}),X.unusedVariables)for(let Y of K)for(let[z,G]of Y.declarations){if(z.startsWith("_"))continue;if(!G.used&&G.kind!=="function")Q.push({severity:"warning",message:`'${z}' is declared but never used`,line:G.node.loc?.start?.line,column:G.node.loc?.start?.column,rule:"no-unused-vars"})}if(X.unreachableCode)W4(H,{BlockStatement(Y){let z=!1;for(let G of Y.body){if(z){Q.push({severity:"warning",message:"Unreachable code after return statement",line:G.loc?.start?.line,column:G.loc?.start?.column,rule:"no-unreachable"});break}if(G.type==="ReturnStatement")z=!0}}});if(X.noExplicitNew)W4(H,{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 C7(){return{declarations:new Map}}function f5(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 y5(Z){let $=[],X=0,Q=null;for(let H=0;H<Z.length;H++){let K=Z[H],Y=H>0?Z[H-1]:"";if(!Q&&(K==='"'||K==="'"||K==="`"))Q=K;else if(Q&&K===Q&&Y!=="\\")Q=null;if(!Q){if(K==="{")X++;if(K==="}")X--}$[H]=X}return $}function O7(Z){let $=[],X=y5(Z),Q=/\/\*#([\s\S]*?)\*\//g,H=/function\s+(\w+)\s*\(([^)]*)\)\s*(?:(-[>?!])\s*('[^']*'|"[^"]*"|[^\s{]+)|:\s*(\w+))?\s*\{/g,K=[],Y;while((Y=Q.exec(Z))!==null){if(X[Y.index]!==0)continue;let G=Y[1],W=G.split(`
400
403
  `),J=W.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)G=W.map((L)=>L.slice(J)).join(`
401
404
  `);K.push({type:"doc",index:Y.index,data:G.trim()})}while((Y=H.exec(Z))!==null){let G=Y[1],W=Y[2],J=Y[3]||"",L=Y[4]||"",_=Y[5]||"",U=`function ${G}(${W})`;if(J)U+=` ${J} ${L}`;else if(_)U+=`: ${_}`;K.push({type:"function",index:Y.index,data:{name:G,signature:U}})}K.sort((G,W)=>G.index-W.index);for(let G of K)if(G.type==="doc")$.push({type:"doc",content:G.data});else $.push({type:"function",name:G.data.name,signature:G.data.signature});let z=$.map((G)=>{if(G.type==="doc")return G.content;else return`\`\`\`tjs
402
405
  ${G.signature}
403
406
  \`\`\``}).join(`
404
407
 
405
- `);return{items:$,markdown:z}}function v5(Z,$){let X=C7(Z),Q="";for(let H of X.items)if(H.type==="doc")Q+=H.content+`
408
+ `);return{items:$,markdown:z}}function h5(Z,$){let X=O7(Z),Q="";for(let H of X.items)if(H.type==="doc")Q+=H.content+`
406
409
 
407
410
  `;else if(H.type==="function"){let K=$?.[H.name];if(Q+=`## ${H.name}
408
411
 
@@ -415,8 +418,8 @@ ${H.signature}
415
418
  `}Q+=`
416
419
  `}if(K?.returns)Q+=`**Returns:** ${K.returns.kind||"void"}
417
420
 
418
- `}return Q.trim()||"*No documentation available*"}import{s as A,validate as t4,filter as g7}from"tosijs-schema";var J4=Symbol.for("tjs.equals");function L4(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[J4]==="function")return Z[J4]($);if($!==null&&typeof $==="object"&&typeof $[J4]==="function")return $[J4](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((H,K)=>L4(H,$[K]))}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((H)=>L4(Z[H],$[H]))}class Y1{$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 f5(Z){return Z instanceof Y1||Z&&Z.$error===!0}var s1=new Map,y5=3600000,h5=102400,e4="proc_";function Z6(Z){return typeof Z==="string"&&Z.startsWith(e4)}function $6(Z){let $=s1.get(Z);if(!$)throw Error(`Procedure not found: ${Z}`);if(Date.now()>$.expiresAt)throw s1.delete(Z),Error(`Procedure expired: ${Z}`);return $.ast}function x5(){if(typeof crypto<"u"&&crypto.randomUUID)return e4+crypto.randomUUID();return e4+Math.random().toString(36).slice(2)+Date.now().toString(36)}var b7=new Set(["__proto__","constructor","prototype"]);function O7(Z){if(b7.has(Z))throw Error(`Security Error: Access to '${Z}' is forbidden`)}var u5=new Set(["localhost","127.0.0.1","0.0.0.0","[::1]","metadata.google.internal"]);function d5(Z){try{let $=new URL(Z);if($.protocol!=="http:"&&$.protocol!=="https:")return!0;let X=$.hostname.toLowerCase();if(u5.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 l5(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 m5(Z,$){let X={},Q=new Set([...Object.keys(Z),...Object.keys($)]);for(let H of Q){let K=Z[H],Y=$[H];if(Y!==K)X[H]=Y}return X}function E(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 H of X)if(b7.has(H))throw Error(`Security Error: Access to '${H}' is forbidden`);let Q=$.state[X[0]];if(Q!==void 0){for(let H=1;H<X.length;H++)Q=Q?.[X[H]];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]=E(Z[Q],$);return X}if(Array.isArray(Z))return Z.map((X)=>E(X,$));return Z}function h1(Z,$,X){return new Proxy($,{get(Q,H){if(H in Q)return Q[H];let K=X?.[H];if(K)throw Error(`${Z}.${H} is not available. ${K}`);throw Error(`${Z}.${H} is not supported in AsyncJS. Check docs for available ${Z} methods.`)}})}function o1(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:o1(Z[0])}}if($==="object"){let X={},Q=[];for(let[H,K]of Object.entries(Z))X[H]=o1(K),Q.push(H);return{type:"object",properties:X,required:Q}}return{}}var F1={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=o1($),Q=g7(Z,X);if(Q instanceof Error)throw Q;return Q},Schema:{...A,response:(Z,$)=>{let X=$?.schema!=null?$.schema:o1($);return{type:"json_schema",json_schema:{name:Z,strict:!0,schema:X}}},fromExample:(Z)=>o1(Z),isValid:(Z,$)=>{if($?.schema!=null)return t4(Z,$);return t4(Z,o1($))}},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 F1.Set([...$,...Q])},intersection(X){let Q=X?.toArray?.()??X??[];return F1.Set($.filter((H)=>Q.includes(H)))},diff(X){let Q=X?.toArray?.()??X??[];return F1.Set($.filter((H)=>!Q.includes(H)))},forEach(X){$.forEach(X)},map(X){return F1.Set($.map(X))},filter(X){return F1.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:H=0,days:K=0,hours:Y=0,minutes:z=0,seconds:G=0,ms:W=0}={}){let J=new globalThis.Date(X.getTime());if(Q)J.setFullYear(J.getFullYear()+Q);if(H)J.setMonth(J.getMonth()+H);if(K)J.setDate(J.getDate()+K);if(Y)J.setHours(J.getHours()+Y);if(z)J.setMinutes(J.getMinutes()+z);if(G)J.setSeconds(J.getSeconds()+G);if(W)J.setMilliseconds(J.getMilliseconds()+W);return Z(J)},diff(Q,H="ms"){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime(),Y=X.getTime()-K;switch(H){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 H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()<H},isAfter(Q){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()>H},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)),$})()},_4={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."},i5=0.01,N7=0.0001,E7=0.001,p5=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-=i5,$.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 F1)return F1[Z.name];if(Z.name in _4)throw Error(_4[Z.name]);return}case"member":{let X=n(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.property;return O7(Q),X?.[Q]}case"binary":{let X=n(Z.left,$),Q=n(Z.right,$);switch(Z.op){case"+":{let H=X+Q;if(typeof H==="string"&&$.fuel){if($.fuel.current-=H.length*N7,$.fuel.current<=0){$.error=new Y1("Out of Fuel","expr.concat");return}}return H}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 L4(X,Q);case"!=":return!L4(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((K)=>n(K,$)),H=typeof Q[0]==="string"?Q[0]:"Error";$.error=new Y1(H,"Error");return}if(Z.callee in F1){let Q=F1[Z.callee];if(typeof Q==="function"){let H=Z.arguments.map((K)=>n(K,$));return Q(...H)}}if(!$.resolver(Z.callee)){if(Z.callee in _4)throw Error(_4[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(O7(Q),X===null||X===void 0)throw Error(`Cannot call method '${Q}' on ${X}`);let H=X[Q];if(typeof H!=="function")throw Error(`'${Q}' is not a function`);let K=Z.arguments.map((z)=>n(z,$)),Y=H.apply(X,K);if($.fuel&&p5.has(Q)){let z=0;if(typeof Y==="string")z=Y.length*N7;else if(Array.isArray(Y))z=Y.length*E7;else if(typeof Y==="object"&&Y!==null)z=Object.keys(Y).length*E7;if($.fuel.current-=z,$.fuel.current<=0){$.error=new Y1("Out of Fuel",`expr.${Q}`);return}}return Y}default:throw Error(`Unknown expression type: ${Z.$expr}`)}}function k(Z,$,X,Q,H={}){let{docs:K="",timeoutMs:Y=1000,cost:z=1}=typeof H==="string"?{docs:H}:H;return{op:Z,inputSchema:$,outputSchema:X,exec:async(W,J)=>{let{op:L,result:_,...U}=W;if(J.error)return;let q=J.trace?{...J.state}:null,I=J.fuel.current,B,R;try{let C=J.costOverrides?.[Z],w=C!==void 0?C:z,F=typeof w==="function"?w(U,J):w;if((J.fuel.current-=F)<=0){J.error=new Y1("Out of Fuel",Z);return}let M,P=async()=>Q(W,J);if(B=Y>0?await Promise.race([P(),new Promise((V,O)=>{M=setTimeout(()=>O(Error(`Atom '${Z}' timed out`)),Y)})]).finally(()=>clearTimeout(M)):await P(),W.result){if(J.consts.has(W.result))throw Error(`Cannot reassign const variable '${W.result}'`);if(B!==void 0&&X&&!t4(B,X)){J.error=new Y1(`Output validation failed for '${Z}'`,Z);return}if(J.state[W.result]=B,W.resultConst)J.consts.add(W.result)}}catch(C){R=C.message||String(C),J.error=new Y1(R,Z,C)}finally{if(J.trace&&q){let C=m5(q,J.state);J.trace.push({op:Z,input:U,stateDiff:C,result:B,error:R,fuelBefore:I,fuelAfter:J.fuel.current,timestamp:new Date().toISOString()})}}},docs:K,timeoutMs:Y,cost:z,create:(W)=>({op:Z,...W})}}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}),n5=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}),c5=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}),o5=k("return",void 0,A.any,async(Z,$)=>{if($.error)return $.output=$.error,$.error;if("value"in Z){let Q=E(Z.value,$);if(Q!==void 0&&Q!==null&&!f5(Q)&&(typeof Q!=="object"||Array.isArray(Q))){let H=new Y1(`Agent must return an object, got ${Array.isArray(Q)?"array":typeof Q}`,"return");return $.error=H,$.output=H,H}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=g7(X,Z.schema);if(!(Q instanceof Error))X=Q}}return $.output=X,X},{docs:"Return",cost:0.1}),s5=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}),a5=k("Error",A.object({args:A.array(A.any).optional}),void 0,async(Z,$)=>{let X=Z.args?.[0]??"Error";$.error=new Y1(String(X),"Error")},{docs:"Trigger error flow",cost:0.1}),r5=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]=E($,X)},{docs:"Set Variable",cost:0.1}),t5=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]=E($,X),X.consts.add(Z)},{docs:"Set Const Variable (immutable)",cost:0.1}),e5=k("varGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{return E(Z,$)},{docs:"Get Variable",cost:0.1}),Z$=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]=E({$kind:"arg",path:X},$);else for(let[X,Q]of Object.entries(Z))$.state[X]=E({$kind:"arg",path:Q},$)},{docs:"Import variables from args into the current scope, with optional renaming.",cost:0.2}),$$=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]=E(Z[X],$)}},{docs:"Initialize a set of variables in the current scope from the step object properties.",cost:0.1}),X$=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]=E(Q,$);else for(let[Q,H]of Object.entries(Z))X[Q]=E(H,$);return X},{docs:"Export variables from the current scope, with optional renaming.",cost:0.2}),Q$=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}),H$=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 H=[],K=E(Z,Q);if(!Array.isArray(K))throw Error("map: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);z.state[$]=Y,await J1.exec({op:"seq",steps:X},z),H.push(z.state.result??null)}return H},{docs:"Map Array",timeoutMs:0,cost:1}),K$=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 H=[],K=E(Z,Q);if(!Array.isArray(K))throw Error("filter: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);if(z.state[$]=Y,n(X,z))H.push(Y)}return H},{docs:"Filter Array",timeoutMs:0,cost:1}),Y$=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:H},K)=>{let Y=E(Z,K),z=E(Q,K);if(!Array.isArray(Y))throw Error("reduce: items is not an array");let G=z;for(let W of Y){if(K.signal?.aborted)throw Error("Execution aborted");let J=O1(K);J.state[$]=W,J.state[X]=G,await J1.exec({op:"seq",steps:H},J),G=J.state.result??G}return G},{docs:"Reduce Array",timeoutMs:0,cost:1}),z$=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 H=E(Z,Q);if(!Array.isArray(H))throw Error("find: items is not an array");for(let K of H){if(Q.signal?.aborted)throw Error("Execution aborted");let Y=O1(Q);if(Y.state[$]=K,n(X,Y))return K}return null},{docs:"Find in Array",timeoutMs:0,cost:1}),G$=k("push",A.object({list:A.array(A.any),item:A.any}),A.array(A.any),async({list:Z,item:$},X)=>{let Q=E(Z,X),H=E($,X);if(Array.isArray(Q))Q.push(H);return Q},{docs:"Push to Array",cost:1}),W$=k("len",A.object({list:A.any}),A.number,async({list:Z},$)=>{let X=E(Z,$);return Array.isArray(X)||typeof X==="string"?X.length:0},{docs:"Length",cost:1}),J$=k("split",A.object({str:A.string,sep:A.string}),A.array(A.string),async({str:Z,sep:$},X)=>E(Z,X).split(E($,X)),{docs:"Split String",cost:1}),_$=k("join",A.object({list:A.array(A.string),sep:A.string}),A.string,async({list:Z,sep:$},X)=>E(Z,X).join(E($,X)),{docs:"Join String",cost:1}),L$=k("template",A.object({tmpl:A.string,vars:A.record(A.any)}),A.string,async({tmpl:Z,vars:$},X)=>{return E(Z,X).replace(/\{\{(\w+)\}\}/g,(H,K)=>String(E($[K],X)??""))},{docs:"String Template",cost:1}),U$=k("regexMatch",A.object({pattern:A.string,value:A.any}),A.boolean,async({pattern:Z,value:$},X)=>{if(l5(Z))throw Error(`Suspicious regex pattern rejected (potential ReDoS): ${Z}`);let Q=E($,X);return new RegExp(Z).test(Q)},{docs:"Returns true if the value matches the regex pattern.",cost:2}),q$=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=E(Z,X),H=E($,X),K={};if(Q&&Array.isArray(H))H.forEach((Y)=>K[Y]=Q[Y]);return K},{docs:"Pick Keys",cost:1}),D$=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=E(Z,X),H=new Set(E($,X)),K={};if(Q)Object.keys(Q).forEach((Y)=>{if(!H.has(Y))K[Y]=Q[Y]});return K},{docs:"Omit Keys",cost:1}),A$=k("merge",A.object({a:A.record(A.any),b:A.record(A.any)}),A.record(A.any),async({a:Z,b:$},X)=>({...E(Z,X),...E($,X)}),{docs:"Merge Objects",cost:1}),I$=k("keys",A.object({obj:A.record(A.any)}),A.array(A.string),async({obj:Z},$)=>Object.keys(E(Z,$)??{}),{docs:"Object Keys",cost:1}),T7=10,S7="X-Agent-Depth";function R$(Z,$){try{let Q=new URL(Z).hostname.toLowerCase();for(let H of $){let K=H.toLowerCase();if(K.startsWith("*.")){let Y=K.slice(1);if(Q.endsWith(Y)||Q===K.slice(2))return!0}else if(Q===K)return!0}return!1}catch{return!1}}var B$=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=E(Z.url,$),Q=E(Z.method,$),H=E(Z.headers,$)||{},K=E(Z.body,$),Y=E(Z.responseType,$),z=$.context?.requestDepth??0;if(z>=T7)throw Error(`Agent request depth exceeded (max ${T7}). This prevents recursive agent loops.`);if($.capabilities.fetch)return $.capabilities.fetch(X,{method:Q,headers:{...H,[S7]:String(z+1)},body:K,signal:$.signal,responseType:Y});let G=$.context?.allowedFetchDomains;if(G){if(!R$(X,G))throw Error(`Fetch blocked: domain not in allowlist. Allowed: ${G.join(", ")}`)}else{if(d5(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(W){if(W.message.includes("allowedFetchDomains"))throw W;throw Error(`Invalid URL: ${X}`)}}if(typeof globalThis.fetch==="function"){let W=await globalThis.fetch(X,{method:Q,headers:{...H,[S7]:String(z+1)},body:K?JSON.stringify(K):void 0,signal:$.signal});if(Y==="dataUrl"){let L=await W.arrayBuffer(),_=new Uint8Array(L),U="";for(let B=0;B<_.length;B++)U+=String.fromCharCode(_[B]);let q=btoa(U);return`data:${W.headers.get("content-type")||"application/octet-stream"};base64,${q}`}let J=W.headers.get("content-type");if(Y==="json"||J&&J.includes("application/json"))return W.json();return W.text()}throw Error("Capability 'fetch' missing and no global fetch available")},{docs:"HTTP Fetch",timeoutMs:30000,cost:5}),w$=k("storeGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{let X=E(Z,$);return $.capabilities.store?.get(X)},{docs:"Store Get",cost:5}),M$=k("storeSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{let Q=E(Z,X),H=E($,X);return X.capabilities.store?.set(Q,H)},{docs:"Store Set",cost:5}),j$=k("storeQuery",A.object({query:A.any}),A.array(A.any),async({query:Z},$)=>$.capabilities.store?.query?.(E(Z,$))??[],{docs:"Store Query",cost:5}),F$=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?.(E(Z,Q),E($,Q),E(X,Q))??[],{docs:"Vector Search",cost:(Z,$)=>5+(E(Z.k,$)??5)}),P$=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(E(Z,X),E($,X))},{docs:"LLM Predict",timeoutMs:120000,cost:100}),V$=k("agentRun",A.object({agentId:A.any,input:A.any}),A.any,async({agentId:Z,input:$},X)=>{let Q=E(Z,X),H=E($,X),K=H;if(H&&typeof H==="object"&&!Array.isArray(H)){K={};for(let z in H)K[z]=E(H[z],X)}if(Z6(Q)){let z=$6(Q),G={...X,args:K,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(z,G),G.error)throw Error(G.error.message||"Sub-agent failed");return G.output}if(Q&&typeof Q==="object"&&"op"in Q){let z={...X,args:K,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(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,K);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}),C$=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=E(Z,$);try{return $.capabilities.code.transpile(X)}catch(Q){throw Error(`Code transpilation failed: ${Q.message}`)}},{docs:"Transpile AsyncJS code to AST",cost:1}),k7=10,O$=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>=k7)throw Error(`runCode recursion limit exceeded (max ${k7}). 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 H=E(Z,X),K=$?E($,X):{},Y;try{Y=X.capabilities.code.transpile(H)}catch(G){throw Error(`Code transpilation failed: ${G.message}`)}if(Y.op!=="seq")throw Error("Transpiled code must be a seq node");let z=O1(X);if(z.args=K,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}),N$=k("jsonParse",A.object({str:A.string}),A.any,async({str:Z},$)=>JSON.parse(E(Z,$)),{docs:"Parse JSON",cost:1}),E$=k("jsonStringify",A.object({value:A.any}),A.string,async({value:Z},$)=>JSON.stringify(E(Z,$)),{docs:"Stringify JSON",cost:1}),T$=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(E(Z,$))},{docs:"Parse XML",cost:1}),S$=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=E(Z,X)??await X6.exec({value:$,algorithm:"SHA-256"},X);if(X.memo.has(Q))return X.memo.get(Q);let H=O1(X);await J1.exec({op:"seq",steps:$},H);let K=H.output??H.state.result;return X.memo.set(Q,K),K},{docs:"Memoize steps result in memory",cost:1}),k$=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 K=`cache:${E(Z,Q)??await X6.exec({value:$,algorithm:"SHA-256"},Q)}`,Y=await Q.capabilities.store.get(K);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 G=z.output??z.state.result,W=Date.now()+(X??86400000);if((Q.fuel.current-=5)<=0)throw Error("Out of Fuel");return await Q.capabilities.store.set(K,{val:G,_exp:W}),G},{docs:"Cache steps result in store with TTL",cost:5}),g$=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},H)=>{let K=E(X,H)??"float",Y=E(Q,H)??10,z=E(Z,H)??0,G=E($,H)??1;if(K==="base36"){let U="";if(typeof crypto<"u"&&crypto.getRandomValues){let q=new Uint8Array(Y);crypto.getRandomValues(q);for(let I=0;I<Y;I++)U+="0123456789abcdefghijklmnopqrstuvwxyz"[q[I]%36]}else for(let q=0;q<Y;q++)U+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*36));return U}let W;if(typeof crypto<"u"&&crypto.getRandomValues){let _=new Uint32Array(1);crypto.getRandomValues(_),W=_[0]/4294967296}else W=Math.random();let J=G-z,L=W*J+z;if(K==="integer")return Math.floor(L);return L},{docs:"Generate Random",cost:1}),b$=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}),X6=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(E(Z,X)),H=E($,X)||"SHA-256";if(typeof crypto<"u"&&crypto.subtle){let z=new TextEncoder().encode(Q),G=await crypto.subtle.digest(H,z);return Array.from(new Uint8Array(G)).map((J)=>J.toString(16).padStart(2,"0")).join("")}let K=0;for(let Y=0;Y<Q.length;Y++){let z=Q.charCodeAt(Y);K=(K<<5)-K+z,K|=0}return String(K)},{docs:"Hash a value",cost:1}),v$=k("consoleLog",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(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}),f$=k("consoleWarn",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(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}),y$=k("consoleError",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);$.error=new Y1(Q,"console.error")},{docs:"Emit error and stop",cost:0.1}),h$=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 H=E(Z,Q),K=$?E($,Q):y5,Y=X?E(X,Q):h5;if(!H||typeof H!=="object"||!H.op)throw Error('Invalid AST: must be an object with an "op" property');let z=JSON.stringify(H);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 G=x5(),W=Date.now();return s1.set(G,{ast:H,createdAt:W,expiresAt:W+K}),G},{docs:"Store an AST and return a token for later execution",cost:1}),x$=k("releaseProcedure",A.object({token:A.string}),A.boolean,async({token:Z},$)=>{let X=E(Z,$);return s1.delete(X)},{docs:"Release a stored procedure by token",cost:0.1}),u$=k("clearExpiredProcedures",void 0,A.number,async()=>{let Z=Date.now(),$=0;for(let[X,Q]of s1)if(Z>Q.expiresAt)s1.delete(X),$++;return $},{docs:"Clear all expired procedures and return count",cost:0.5}),U4={seq:J1,if:n5,while:c5,return:o5,try:s5,Error:a5,varSet:r5,constSet:t5,varGet:e5,varsImport:Z$,varsLet:$$,varsExport:X$,scope:Q$,map:H$,filter:K$,reduce:Y$,find:z$,push:G$,len:W$,split:J$,join:_$,template:L$,regexMatch:U$,pick:q$,omit:D$,merge:A$,keys:I$,httpFetch:B$,storeGet:w$,storeSet:M$,storeQuery:j$,storeVectorSearch:F$,llmPredict:P$,agentRun:V$,transpileCode:C$,runCode:O$,jsonParse:N$,jsonStringify:E$,xmlParse:T$,memoize:S$,cache:k$,random:g$,uuid:b$,hash:X6,consoleLog:v$,consoleWarn:f$,consoleError:y$,storeProcedure:h$,releaseProcedure:x$,clearExpiredProcedures:u$};var d$=new Set(["true","false","null","undefined","and","or","not"]);function l$(Z,$){let X=Z.replace(/"[^"]*"/g,'""').replace(/'[^']*'/g,"''"),Q=[],H=/(?<![.])\b([a-zA-Z_][a-zA-Z0-9_]*)\b/g,K;while((K=H.exec(X))!==null)Q.push(K[1]);let z=[...new Set(Q)].filter((G)=>!d$.has(G)&&!(G in $)&&!new RegExp(`\\b${G}\\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 q4(Z,$){l$(Z,$);let X=m$(Z),Q=x7(X,0,$);if(Q.pos<X.length){let H=X.slice(Q.pos).join(" ");throw Error(`Unsupported condition syntax near '${H}' in: ${Z}
419
- Supported: comparisons, &&, ||, !, arithmetic, member access (a.b), literals`)}return Q.node}function m$(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++],H="";while(X<Z.length&&Z[X]!==Q)if(Z[X]==="\\"&&X+1<Z.length)X++,H+=Z[X++];else H+=Z[X++];X++,$.push(JSON.stringify(H));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 x7(Z,$,X){return i$(Z,$,X)}function i$(Z,$,X){let{node:Q,pos:H}=v7(Z,$,X);while(Z[H]==="||"){H++;let{node:K,pos:Y}=v7(Z,H,X);Q={$expr:"logical",op:"||",left:Q,right:K},H=Y}return{node:Q,pos:H}}function v7(Z,$,X){let{node:Q,pos:H}=f7(Z,$,X);while(Z[H]==="&&"){H++;let{node:K,pos:Y}=f7(Z,H,X);Q={$expr:"logical",op:"&&",left:Q,right:K},H=Y}return{node:Q,pos:H}}function f7(Z,$,X){let{node:Q,pos:H}=y7(Z,$,X),K=["==","!=",">","<",">=","<="];while(K.includes(Z[H])){let Y=Z[H++],{node:z,pos:G}=y7(Z,H,X);Q={$expr:"binary",op:Y,left:Q,right:z},H=G}return{node:Q,pos:H}}function y7(Z,$,X){let{node:Q,pos:H}=h7(Z,$,X);while(Z[H]==="+"||Z[H]==="-"){let K=Z[H++],{node:Y,pos:z}=h7(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function h7(Z,$,X){let{node:Q,pos:H}=Q6(Z,$,X);while(Z[H]==="*"||Z[H]==="/"||Z[H]==="%"){let K=Z[H++],{node:Y,pos:z}=Q6(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function Q6(Z,$,X){if(Z[$]==="!"||Z[$]==="-"){let Q=Z[$++],{node:H,pos:K}=Q6(Z,$,X);return{node:{$expr:"unary",op:Q,argument:H},pos:K}}return p$(Z,$,X)}function p$(Z,$,X){let Q=Z[$];if(Q==="("){let{node:H,pos:K}=x7(Z,$+1,X);return{node:H,pos:K+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 H={$expr:"ident",name:Q},K=$+1;while(Z[K]==="."){K++;let Y=Z[K++];H={$expr:"member",object:H,property:Y}}return{node:H,pos:K}}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(H)=>{let K=$.atoms[X];return $.add(K.create(H)),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 H=new e(this.atoms);X(H);let K;if(Q){let G=new e(this.atoms);Q(G),K=G.steps}let Y=q4(Z,$),z=this.atoms.if;return this.add(z.create({condition:Y,then:H.steps,else:K}))}while(Z,$,X){let Q=new e(this.atoms);X(Q);let H=q4(Z,$),K=this.atoms.while;return this.add(K.create({condition:H,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 H=this.atoms.map;return this.add(H.create({items:Z,as:$,steps:Q.steps}))}filter(Z,$,X,Q={}){let H=q4(X,Q),K=this.atoms.filter;return this.add(K.create({items:Z,as:$,condition:H}))}find(Z,$,X,Q={}){let H=q4(X,Q),K=this.atoms.find;return this.add(K.create({items:Z,as:$,condition:H}))}reduce(Z,$,X,Q,H){let K=new e(this.atoms);H(K);let Y=this.atoms.reduce;return this.add(Y.create({items:Z,as:$,accumulator:X,initial:Q,steps:K.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 H=this.atoms.cache;return this.add(H.create({key:$,steps:Q.steps,ttlMs:X}))}try(Z){let $=new e(this.atoms);Z.try($);let X;if(Z.catch){let H=new e(this.atoms);Z.catch(H),X=H.steps}let Q=this.atoms.try;return this.add(Q.create({try:$.steps,catch:X}))}}var n$={take(Z){return new e(U4)},custom(Z){return new e(Z)},args(Z){return{$kind:"arg",path:Z}},val(Z){return Z}},jH=n$;import{validate as c$}from"tosijs-schema";function I0(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=w1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=S0(X,$.filename),{ast:z,signature:G,warnings:W}=Y0(Y,H,Q,$,K);return{ast:z,signature:G,warnings:W}}var o$=10;class H6{atoms;constructor(Z={}){this.atoms={...U4,...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(Z6(Z))Q=$6(Z);else try{Q=I0(Z).ast}catch(U){throw Error(`AJS transpilation failed: ${U.message}`)}else Q=Z;let H=X.fuel??1000,K=X.timeoutMs??H*o$,Y=X.capabilities??{},z=[];if(!Y.store){let U=new Map,q=!1;Y.store={get:async(I)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");return U.get(I)},set:async(I,B)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");U.set(I,B)}}}let G=new AbortController,W=setTimeout(()=>G.abort(),K);if(X.signal)X.signal.addEventListener("abort",()=>G.abort());let J={fuel:{current:H},args:$,state:{},consts:new Set,capabilities:Y,resolver:(U)=>this.resolve(U),output:void 0,signal:G.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&&!c$($,L)){let U=new Y1("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,q)=>{if(G.signal.addEventListener("abort",()=>{q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))}),G.signal.aborted)q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))})])}catch(U){if(U.message?.includes("timeout")||U.message?.includes("aborted")||G.signal.aborted)J.error=new Y1(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`,"vm.run");else throw U}finally{clearTimeout(W)}if(J.error&&J.output===void 0)J.output=J.error;let _=[...z,...J.warnings??[]];return{result:J.output,error:J.error,fuelUsed:H-J.fuel.current,trace:J.trace,warnings:_.length>0?_:void 0}}}var s$=null,u7=()=>s$??=new H6;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 a$(Z){let{code:$,context:X={},fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=u7(),G=/\breturn\b/.test($)?`function __eval() { ${$} }`:`function __eval() { return (${$}) }`;try{let{ast:W}=I0(G);x1(W);let J=await Y.run(W,X,{fuel:Q,timeoutMs:H,capabilities:K}),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(W){return{result:void 0,fuelUsed:Q,error:{message:W.message||String(W)}}}}async function r$(Z){let{body:$,params:X=[],fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=u7(),G=`function __safeFn(${X.join(", ")}) { ${$} }`,{ast:W}=I0(G);return x1(W),async(...J)=>{let L={};for(let _=0;_<X.length;_++)L[X[_]]=J[_];try{let _=await Y.run(W,L,{fuel:Q,timeoutMs:H,capabilities:K}),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 A4(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=w1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=S0(X,$.filename),{ast:z,signature:G,warnings:W}=Y0(Y,H,Q,$,K);return{ast:z,signature:G,warnings:W}}function uH(Z,...$){if(typeof Z==="string")return A4(Z).ast;let X=Z.reduce((Q,H,K)=>Q+H+($[K]!==void 0?String($[K]):""),"");return A4(X).ast}function lH(Z,$,...X){if(typeof Z==="string")return U0(Z,$);let Q=$!==void 0?[$,...X]:X,H=Z.reduce((K,Y,z)=>K+Y+(Q[z]!==void 0?String(Q[z]):""),"");return U0(H)}async function mH(Z,$={},X){let Q=X??await G4(),H=await Q.getTranspile(Z);if(H)return{ast:H.ast,signature:H.signature,warnings:H.warnings};let K=A4(Z,$);return Q.setTranspile(Z,{ast:K.ast,signature:K.signature,warnings:K.warnings}),K}async function iH(Z,$={},X){let Q=X??await G4(),H=await Q.getTJS(Z);if(H)return{code:H.code,types:H.types,metadata:H.types,testRunner:H.testRunner,testCount:H.testCount,warnings:H.warnings};let K=U0(Z,$);return Q.setTJS(Z,{code:K.code,types:K.types,testRunner:K.testRunner,testCount:K.testCount,warnings:K.warnings}),K}function pH(Z,$,X){let{ast:Q,signature:H}=A4(Z),K=async(Y)=>{return(await $.run(Q,Y,X)).result};return K.signature=H,K.ast=Q,K}function nH(Z){return Object.entries(Z).map(([$,X])=>{let Q=X.signature,H={},K=[];for(let[Y,z]of Object.entries(Q.parameters)){if(H[Y]=D4(z.type),z.description)H[Y].description=z.description;if(z.required)K.push(Y)}return{type:"function",function:{name:Q.name||$,description:Q.description,parameters:{type:"object",properties:H,required:K}}}})}function D4(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?D4(Z.items):{}};case"object":if(!Z.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(Z.shape).map(([$,X])=>[$,D4(X)]))};case"union":if(!Z.members)return{};return{anyOf:Z.members.map(D4)};case"any":default:return{}}}import{s as b}from"tosijs-schema";var d7=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=E(Z,$);return X.embed(Q)},{docs:"Generate embeddings using vector battery",cost:20}),l7=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 H=E(Z,X),K=E($,X);return Q.createCollection(H,void 0,K)},{docs:"Create a vector store collection",cost:5}),m7=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 H=E(Z,X),K=E($,X);return Q.vectorAdd(H,K)},{docs:"Add a document to a vector store collection",cost:5}),i7=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},H)=>{let K=H.capabilities.store;if(!K?.vectorSearch)throw Error("Capability 'store' missing or does not support vectorSearch.");let Y=E(Z,H),z=E($,H),G=E(X,H)??5,W=E(Q,H);return K.vectorSearch(Y,z,G,W)},{docs:"Search vector store",cost:(Z,$)=>5+(E(Z.k,$)??5)}),p7=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},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=E(Z,H)??"You are a helpful agent.",z=E($,H),G=E(X,H),W=E(Q,H);return K.predict(Y,z,G,W)},{docs:"Generate completion using LLM battery",cost:100}),n7=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},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=E(Z,H)??"You analyze images accurately and concisely.",z=E($,H),G=E(X,H)??[],W=E(Q,H);return K.predict(Y,{text:z,images:G},void 0,W)},{docs:"Analyze images using a vision model",timeoutMs:120000,cost:150});var qK={storeCreateCollection:l7,storeSearch:i7,storeVectorAdd:m7,storeVectorize:d7,llmPredictBattery:p7,llmVision:n7};var c7=new Map,I4=new Map;function t$(Z,$){if(Z.length!==$.length)throw Error("Vectors must have the same length for cosine similarity.");let X=0,Q=0,H=0;for(let K=0;K<Z.length;K++)X+=Z[K]*$[K],Q+=Z[K]*Z[K],H+=$[K]*$[K];if(Q=Math.sqrt(Q),H=Math.sqrt(H),Q===0||H===0)return 0;return X/(Q*H)}function K6(){return{async get(Z){return c7.get(Z)},async set(Z,$){c7.set(Z,$)},async createCollection(Z,$,X){if(I4.has(Z))console.warn(`Collection '${Z}' already exists. Overwriting.`);I4.set(Z,[])},async vectorAdd(Z,$){let X=I4.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=I4.get(Z);if(!Q)throw Error(`Collection '${Z}' not found. Create it first.`);let H=Q.map((K)=>({doc:K,score:t$($,K.embedding)}));return H.sort((K,Y)=>Y.score-K.score),H.slice(0,X).map((K)=>K.doc)}}}function e$(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 ZX="http://localhost:1234/v1";function o7(Z,$=ZX){return{async predict(X,Q,H,K){try{let Y=K?Z.getStructuredLLM():Z.getLLM(),z=[{role:"system",content:X},e$(Q)],G=await fetch(`${$}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Y.id,messages:z,temperature:0.7,tools:H,response_format:K})});if(!G.ok)throw Error(`LLM Error: ${G.status} ${G.statusText}`);return(await G.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(),H=await fetch(`${$}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Q.id,input:X})});if(!H.ok)throw Error(`Embedding Error: ${H.status}`);return(await H.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 R0=typeof window<"u"&&typeof window.localStorage<"u";async function QX(Z){try{if(R0){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(() => (G6(),z6))).join(process.cwd(),".models.cache.json");try{let H=await $.readFile(Q,"utf-8"),K=JSON.parse(H);if(K.baseUrl!==Z)return null;if(Date.now()-K.timestamp>86400000)return null;return K.models}catch{return null}}}catch($){return console.warn("⚠️ Error reading model cache:",$),null}}async function HX(Z,$){let X={timestamp:Date.now(),baseUrl:Z,models:$};try{if(R0)window.localStorage.setItem(".models.cache.json",JSON.stringify(X));else{let Q=await import("node:fs/promises"),K=(await Promise.resolve().then(() => (G6(),z6))).join(process.cwd(),".models.cache.json");await Q.writeFile(K,JSON.stringify(X,null,2))}}catch(Q){console.error("❌ Error writing model cache:",Q)}}var B0=async(Z,$)=>{let X=new AbortController,Q=setTimeout(()=>X.abort(),60000);try{let H=await fetch(Z,{...$,signal:X.signal});return clearTimeout(Q),H}catch(H){throw clearTimeout(Q),H}};async function KX(Z,$){try{let X={type:"json_schema",json_schema:{name:"test",strict:!1,schema:{type:"object",properties:{status:{type:"string"}}}}},Q=await B0(`${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 YX(Z,$);return{ok:!1,msg:`HTTP ${Q.status}`}}let H=await Q.json();return JSON.parse(H.choices[0].message.content),{ok:!0,msg:"OK (Schema)"}}catch(X){return{ok:!1,msg:X.message||"Error"}}}async function YX(Z,$){try{if((await B0(`${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 zX(Z,$){try{return(await B0(`${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 GX(Z,$){try{let X=await B0(`${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 WX="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==";async function JX(Z,$){try{return(await B0(`${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:WX}}]}],max_tokens:10})})).ok}catch{return!1}}async function G8(Z){let $=await QX(Z),X=[];try{let Y=await fetch(`${Z}/models`);if(!Y.ok)throw Error("Could not connect");X=(await Y.json()).data.map((G)=>G.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=[],H=X.map((Y)=>({id:Y})),K;if(!R0)K=await import("node:readline");for(let Y of H){if(!R0&&K)K.cursorTo(process.stdout,0),process.stdout.write(`\uD83D\uDC49 Testing: ${Y.id}...`),K.clearLine(process.stdout,1);let z="Unknown",G=!1,W=!1,J="",L=void 0,_=await zX(Z,Y.id),U=await GX(Z,Y.id);if(U)L=U;if(_){z="LLM";let q=await KX(Z,Y.id);if(G=q.ok,W=await JX(Z,Y.id),J=G?q.msg:`Fail: ${q.msg}`,W)J+=" +Vision"}else if(U)z="Embedding",J=`OK (Dim: ${U})`;else J="LLM Fail";Q.push({id:Y.id,type:z,structuredOutput:G,vision:W,dimension:L,status:J})}if(!R0&&K)K.cursorTo(process.stdout,0),K.clearLine(process.stdout,0);return console.log(`
420
- `),console.table(Q),await HX(Z,Q),console.log("\uD83D\uDCDD Audit results saved to cache."),Q}var _X="http://localhost:1234/v1";class W6{baseUrl;models=[];defaultLLM=null;defaultEmbedding=null;defaultStructuredLLM=null;constructor(Z=_X){this.baseUrl=Z}async audit(){this.models=await G8(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 H=this.models.find((K)=>K.id===Z&&X(K));if(!H)throw Error(`Model '${Z}' not found or is not ${Q}.`);this[$]=H}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 LX=typeof window<"u",UX=LX&&window.location.protocol==="https:",w0=null,J6=null,W8=!1;async function qX(){if(W8)return{localModels:w0,llm:J6};if(W8=!0,UX)return console.log("\uD83D\uDCE1 HTTPS detected - local LLM endpoints disabled. Use HTTP for local LLM support."),{localModels:null,llm:null};try{w0=new W6,await w0.audit(),J6=o7(w0)}catch(Z){console.warn("⚠️ Could not connect to local LLM:",Z)}return{localModels:w0,llm:J6}}async function DX(){let{localModels:Z,llm:$}=await qX();return{vector:$?{embed:$.embed}:void 0,store:K6(),llmBattery:$,models:Z}}async function PK(){return DX()}var VK={store:K6(),llmBattery:null,vector:void 0,models:null};function AX(Z){if(typeof Z!=="string")return!1;let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")}function IX(){return new Date().toISOString()}function a1(Z,$,X,Q=0,H=0,K=0,Y=0){return new Date(Date.UTC(Z,$-1,X,Q,H,K,Y)).toISOString()}function J8(Z){let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);return $.toISOString()}function RX(Z){try{return J8(Z)}catch{return null}}function M0(Z,$){let X=new Date(Z);return X.setTime(X.getTime()+$),X.toISOString()}function BX(Z,$){return M0(Z,$*1000)}function wX(Z,$){return M0(Z,$*60*1000)}function MX(Z,$){return M0(Z,$*60*60*1000)}function _8(Z,$){return M0(Z,$*24*60*60*1000)}function jX(Z,$){return _8(Z,$*7)}function FX(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 PX(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 VX(Z,$){return Math.floor(N1(Z,$)/1000)}function CX(Z,$){return Math.floor(N1(Z,$)/60000)}function OX(Z,$){return Math.floor(N1(Z,$)/3600000)}function NX(Z,$){return Math.floor(N1(Z,$)/86400000)}function r1(Z){return new Date(Z).getUTCFullYear()}function B4(Z){return new Date(Z).getUTCMonth()+1}function _6(Z){return new Date(Z).getUTCDate()}function EX(Z){return new Date(Z).getUTCHours()}function TX(Z){return new Date(Z).getUTCMinutes()}function SX(Z){return new Date(Z).getUTCSeconds()}function kX(Z){return new Date(Z).getUTCMilliseconds()}function gX(Z){let $=new Date(Z).getUTCDay();return $===0?7:$}function w4(Z,$,X){let Q=new Date(Z),H={timeZone:$,...X};return new Intl.DateTimeFormat(void 0,H).format(Q)}function bX(Z,$){return w4(Z,$,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function vX(Z,$){return w4(Z,$,{year:"numeric",month:"short",day:"numeric"})}function fX(Z,$){return w4(Z,$,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function yX(Z){return Z.slice(0,10)}function L8(Z,$){return N1(Z,$)<0}function U8(Z,$){return N1(Z,$)>0}function hX(Z,$){return N1(Z,$)===0}function xX(Z,$){return L8(Z,$)?Z:$}function uX(Z,$){return U8(Z,$)?Z:$}function dX(Z){return a1(r1(Z),B4(Z),_6(Z))}function lX(Z){return a1(r1(Z),B4(Z),_6(Z),23,59,59,999)}function mX(Z){return a1(r1(Z),B4(Z),1)}function iX(Z){let $=new Date(Z);return $.setUTCMonth($.getUTCMonth()+1,0),$.setUTCHours(23,59,59,999),$.toISOString()}function pX(Z){return a1(r1(Z),1,1)}function nX(Z){return a1(r1(Z),12,31,23,59,59,999)}var t1={isValid:AX,now:IX,from:a1,parse:J8,tryParse:RX,addMilliseconds:M0,addSeconds:BX,addMinutes:wX,addHours:MX,addDays:_8,addWeeks:jX,addMonths:FX,addYears:PX,diff:N1,diffSeconds:VX,diffMinutes:CX,diffHours:OX,diffDays:NX,year:r1,month:B4,day:_6,hour:EX,minute:TX,second:SX,millisecond:kX,dayOfWeek:gX,toLocal:w4,format:bX,formatDate:vX,formatTime:fX,toDate:yX,isBefore:L8,isAfter:U8,isEqual:hX,min:xX,max:uX,startOfDay:dX,endOfDay:lX,startOfMonth:mX,endOfMonth:iX,startOfYear:pX,endOfYear:nX};function L6(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 H=[31,28,31,30,31,30,31,31,30,31,30,31],K=X===2&&($%4===0&&$%100!==0||$%400===0)?29:H[X-1];return Q<=K}function cX(){return t1.toDate(t1.now())}function oX(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"),H=String($).padStart(2,"0"),K=String(X).padStart(2,"0"),Y=`${Q}-${H}-${K}`;if(!L6(Y))throw Error(`Invalid date: ${Z}-${$}-${X}`);return Y}function q8(Z){if(/^\d{4}-\d{2}-\d{2}$/.test(Z)){if(!L6(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,H=$.getUTCDate();return _1(X,Q,H)}function sX(Z){try{return q8(Z)}catch{return null}}function M4(Z,$){let X=A8(Z);return t1.toDate(t1.addDays(X,$))}function aX(Z,$){return M4(Z,$*7)}function rX(Z,$){let X=X1(Z),Q=E1(Z),H=U6(Z),K=X*12+(Q-1)+$,Y=Math.floor(K/12),z=K%12+1,G=j0(Y,z),W=Math.min(H,G);return _1(Y,z,W)}function tX(Z,$){let X=X1(Z),Q=E1(Z),H=U6(Z),K=X+$,Y=j0(K,Q),z=Math.min(H,Y);return _1(K,Q,z)}function D8(Z,$){let Q=new Date(Z+"T00:00:00Z").getTime(),H=new Date($+"T00:00:00Z").getTime();return Math.round((Q-H)/86400000)}function eX(Z,$){let X=X1(Z),Q=E1(Z),H=X1($),K=E1($);return(X-H)*12+(Q-K)}function ZQ(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 U6(Z){return parseInt(Z.slice(8,10),10)}function q6(Z){let $=new Date(Z+"T00:00:00Z").getUTCDay();return $===0?7:$}function $Q(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 XQ(Z){let $=_1(X1(Z),1,1);return D8(Z,$)+1}function D6(Z){return Math.ceil(E1(Z)/3)}function A6(Z){return Z%4===0&&Z%100!==0||Z%400===0}function j0(Z,$){let X=[31,28,31,30,31,30,31,31,30,31,30,31];if($===2&&A6(Z))return 29;return X[$-1]}function QQ(Z){return A6(Z)?366:365}function A8(Z){return Z+"T00:00:00.000Z"}function HQ(Z){return Math.floor(new Date(Z+"T00:00:00Z").getTime()/1000)}function KQ(Z){let $=new Date(Z*1000);return _1($.getUTCFullYear(),$.getUTCMonth()+1,$.getUTCDate())}function I6(Z,$){let X=new Date(Z+"T00:00:00Z"),Q={timeZone:"UTC",...$};return new Intl.DateTimeFormat(void 0,Q).format(X)}function YQ(Z){return I6(Z,{year:"numeric",month:"long",day:"numeric"})}function zQ(Z){return I6(Z,{year:"numeric",month:"short",day:"numeric"})}function GQ(Z,$){return Z<$}function WQ(Z,$){return Z>$}function JQ(Z,$){return Z===$}function _Q(Z,$){return Z<$?Z:$}function LQ(Z,$){return Z>$?Z:$}function UQ(Z,$,X){return Z>=$&&Z<=X}function qQ(Z){return _1(X1(Z),E1(Z),1)}function DQ(Z){let $=X1(Z),X=E1(Z);return _1($,X,j0($,X))}function AQ(Z){let X=(D6(Z)-1)*3+1;return _1(X1(Z),X,1)}function IQ(Z){let X=D6(Z)*3;return _1(X1(Z),X,j0(X1(Z),X))}function RQ(Z){return _1(X1(Z),1,1)}function BQ(Z){return _1(X1(Z),12,31)}function wQ(Z){let $=q6(Z);return M4(Z,-($-1))}function MQ(Z){let $=q6(Z);return M4(Z,7-$)}var jQ={isValid:L6,today:cX,todayIn:oX,from:_1,parse:q8,tryParse:sX,addDays:M4,addWeeks:aX,addMonths:rX,addYears:tX,diff:D8,diffMonths:eX,diffYears:ZQ,year:X1,month:E1,day:U6,dayOfWeek:q6,weekOfYear:$Q,dayOfYear:XQ,quarter:D6,isLeapYear:A6,daysInMonth:j0,daysInYear:QQ,toTimestamp:A8,toUnix:HQ,fromUnix:KQ,format:I6,formatLong:YQ,formatShort:zQ,isBefore:GQ,isAfter:WQ,isEqual:JQ,min:_Q,max:LQ,isBetween:UQ,startOfMonth:qQ,endOfMonth:DQ,startOfQuarter:AQ,endOfQuarter:IQ,startOfYear:RQ,endOfYear:BQ,startOfWeek:wQ,endOfWeek:MQ};export{T$ as xmlParse,o4 as wrap,c5 as whileLoop,F$ as vectorSearch,$$ as varsLet,Z$ as varsImport,X$ as varsExport,r5 as varSet,e5 as varGet,c4 as validateArgs,b$ as uuid,O4 as typeToString,p1 as typeOf,l1 as typeDescriptorToTS,s5 as tryCatch,mH as transpileWithCache,U0 as transpileToJS,C$ as transpileCode,A4 as transpile,Y0 as transformFunction,iH as tjsWithCache,lH as tjs,YZ as testUtils,L$ as template,b0 as stripTjsPreamble,g0 as stripModuleSyntax,M$ as storeSet,j$ as storeQuery,h$ as storeProcedure,w$ as storeGet,J$ as split,E5 as setGlobalCache,J1 as seq,Q$ as scope,b1 as runtime,O$ as runCode,o5 as ret,E as resolveValue,$6 as resolveProcedureToken,x$ as releaseProcedure,K7 as registerWasmBlock,U$ as regexMatch,Y$ as reduce,g$ as random,G$ as push,s1 as procedureStore,T0 as preprocess,q$ as pick,n6 as parseReturnType,P1 as parseParameter,w1 as parse,D$ as omit,A$ as merge,S$ as memoize,H$ as map,T8 as lookupVariable,P$ as llmPredict,k5 as lint,W$ as len,I$ as keys,E$ as jsonStringify,N$ as jsonParse,_$ as join,h4 as isValidUrl,x4 as isValidTimestamp,u4 as isValidLegalDate,C1 as isRuntimeType,Z6 as isProcedureToken,M1 as isError,f5 as isAgentError,H7 as instantiateWasm,J5 as installRuntime,H1 as inferTypeFromValue,n5 as iff,C5 as hashSourceSync,z4 as hashSource,X6 as hash,nH as getToolDefinitions,K6 as getStoreCapabilityDefault,PK as getStandardCapabilities,m as getLocation,o7 as getLLMCapability,G4 as getGlobalCache,DX as getBatteries,v5 as generateDocsMarkdown,C7 as generateDocs,cZ as generateDTS,P5 as fromTS,z$ as find,K$ as filter,B$ as fetch,E4 as extractTests,Q0 as extractTDoc,A1 as extractLiteralValue,t6 as expectFunction,n as evaluateExpr,a5 as errorAtom,R1 as error,_5 as emitRuntimeWrapper,k as defineAtom,O1 as createChildScope,G1 as createChildContext,pH as createAgent,U4 as coreAtoms,t5 as constSet,f$ as consoleWarn,v$ as consoleLog,y$ as consoleError,SZ as compileWasmBlocks,y0 as compileToWasm,u$ as clearExpiredProcedures,v1 as checkType,k$ as cache,F1 as builtins,qK as batteryAtoms,VK as batteries,r6 as assertFunction,uH as ajs,V$ as agentRun,a0 as Union,e as TypedBuilder,E8 as TypeError,o as Type,l as TranspileError,d4 as TimestampType,t1 as Timestamp,c0 as TUuid,n0 as TUrl,x0 as TString,e0 as TRecord,m0 as TPositiveInt,t0 as TPair,u0 as TNumber,i0 as TNonEmptyString,$1 as TJS_VERSION,l0 as TInteger,p0 as TEmail,d0 as TBoolean,r0 as TArray,Q1 as SyntaxError,V5 as Schema,r$ as SafeFunction,e4 as PROCEDURE_TOKEN_PREFIX,s0 as Optional,o0 as Nullable,a4 as MetadataCache,W6 as LocalModels,l4 as LegalDateType,jQ as LegalDate,i1 as Generic,$4 as FunctionPredicate,a$ as Eval,Z4 as Enum,y5 as DEFAULT_PROCEDURE_TTL,h5 as DEFAULT_MAX_AST_SIZE,H6 as AgentVM,Y1 as AgentError,n$ as Agent,jH as A99};
421
+ `}return Q.trim()||"*No documentation available*"}import{s as A,validate as t4,filter as b7}from"tosijs-schema";var J4=Symbol.for("tjs.equals");function L4(Z,$){if(Z!==null&&typeof Z==="object"&&typeof Z[J4]==="function")return Z[J4]($);if($!==null&&typeof $==="object"&&typeof $[J4]==="function")return $[J4](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((H,K)=>L4(H,$[K]))}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((H)=>L4(Z[H],$[H]))}class Y1{$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 x5(Z){return Z instanceof Y1||Z&&Z.$error===!0}var s1=new Map,u5=3600000,d5=102400,e4="proc_";function Z6(Z){return typeof Z==="string"&&Z.startsWith(e4)}function $6(Z){let $=s1.get(Z);if(!$)throw Error(`Procedure not found: ${Z}`);if(Date.now()>$.expiresAt)throw s1.delete(Z),Error(`Procedure expired: ${Z}`);return $.ast}function l5(){if(typeof crypto<"u"&&crypto.randomUUID)return e4+crypto.randomUUID();return e4+Math.random().toString(36).slice(2)+Date.now().toString(36)}var v7=new Set(["__proto__","constructor","prototype"]);function N7(Z){if(v7.has(Z))throw Error(`Security Error: Access to '${Z}' is forbidden`)}var m5=new Set(["localhost","127.0.0.1","0.0.0.0","[::1]","metadata.google.internal"]);function i5(Z){try{let $=new URL(Z);if($.protocol!=="http:"&&$.protocol!=="https:")return!0;let X=$.hostname.toLowerCase();if(m5.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 p5(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 n5(Z,$){let X={},Q=new Set([...Object.keys(Z),...Object.keys($)]);for(let H of Q){let K=Z[H],Y=$[H];if(Y!==K)X[H]=Y}return X}function E(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 H of X)if(v7.has(H))throw Error(`Security Error: Access to '${H}' is forbidden`);let Q=$.state[X[0]];if(Q!==void 0){for(let H=1;H<X.length;H++)Q=Q?.[X[H]];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]=E(Z[Q],$);return X}if(Array.isArray(Z))return Z.map((X)=>E(X,$));return Z}function h1(Z,$,X){return new Proxy($,{get(Q,H){if(H in Q)return Q[H];let K=X?.[H];if(K)throw Error(`${Z}.${H} is not available. ${K}`);throw Error(`${Z}.${H} is not supported in AsyncJS. Check docs for available ${Z} methods.`)}})}function o1(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:o1(Z[0])}}if($==="object"){let X={},Q=[];for(let[H,K]of Object.entries(Z))X[H]=o1(K),Q.push(H);return{type:"object",properties:X,required:Q}}return{}}var F1={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=o1($),Q=b7(Z,X);if(Q instanceof Error)throw Q;return Q},Schema:{...A,response:(Z,$)=>{let X=$?.schema!=null?$.schema:o1($);return{type:"json_schema",json_schema:{name:Z,strict:!0,schema:X}}},fromExample:(Z)=>o1(Z),isValid:(Z,$)=>{if($?.schema!=null)return t4(Z,$);return t4(Z,o1($))}},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 F1.Set([...$,...Q])},intersection(X){let Q=X?.toArray?.()??X??[];return F1.Set($.filter((H)=>Q.includes(H)))},diff(X){let Q=X?.toArray?.()??X??[];return F1.Set($.filter((H)=>!Q.includes(H)))},forEach(X){$.forEach(X)},map(X){return F1.Set($.map(X))},filter(X){return F1.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:H=0,days:K=0,hours:Y=0,minutes:z=0,seconds:G=0,ms:W=0}={}){let J=new globalThis.Date(X.getTime());if(Q)J.setFullYear(J.getFullYear()+Q);if(H)J.setMonth(J.getMonth()+H);if(K)J.setDate(J.getDate()+K);if(Y)J.setHours(J.getHours()+Y);if(z)J.setMinutes(J.getMinutes()+z);if(G)J.setSeconds(J.getSeconds()+G);if(W)J.setMilliseconds(J.getMilliseconds()+W);return Z(J)},diff(Q,H="ms"){let K=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime(),Y=X.getTime()-K;switch(H){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 H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()<H},isAfter(Q){let H=typeof Q==="object"&&Q.timestamp?Q.timestamp:new globalThis.Date(Q).getTime();return X.getTime()>H},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)),$})()},_4={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."},c5=0.01,E7=0.0001,T7=0.001,o5=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-=c5,$.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 F1)return F1[Z.name];if(Z.name in _4)throw Error(_4[Z.name]);return}case"member":{let X=n(Z.object,$);if(Z.optional&&(X===null||X===void 0))return;let Q=Z.property;return N7(Q),X?.[Q]}case"binary":{let X=n(Z.left,$),Q=n(Z.right,$);switch(Z.op){case"+":{let H=X+Q;if(typeof H==="string"&&$.fuel){if($.fuel.current-=H.length*E7,$.fuel.current<=0){$.error=new Y1("Out of Fuel","expr.concat");return}}return H}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 L4(X,Q);case"!=":return!L4(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((K)=>n(K,$)),H=typeof Q[0]==="string"?Q[0]:"Error";$.error=new Y1(H,"Error");return}if(Z.callee in F1){let Q=F1[Z.callee];if(typeof Q==="function"){let H=Z.arguments.map((K)=>n(K,$));return Q(...H)}}if(!$.resolver(Z.callee)){if(Z.callee in _4)throw Error(_4[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(N7(Q),X===null||X===void 0)throw Error(`Cannot call method '${Q}' on ${X}`);let H=X[Q];if(typeof H!=="function")throw Error(`'${Q}' is not a function`);let K=Z.arguments.map((z)=>n(z,$)),Y=H.apply(X,K);if($.fuel&&o5.has(Q)){let z=0;if(typeof Y==="string")z=Y.length*E7;else if(Array.isArray(Y))z=Y.length*T7;else if(typeof Y==="object"&&Y!==null)z=Object.keys(Y).length*T7;if($.fuel.current-=z,$.fuel.current<=0){$.error=new Y1("Out of Fuel",`expr.${Q}`);return}}return Y}default:throw Error(`Unknown expression type: ${Z.$expr}`)}}function k(Z,$,X,Q,H={}){let{docs:K="",timeoutMs:Y=1000,cost:z=1}=typeof H==="string"?{docs:H}:H;return{op:Z,inputSchema:$,outputSchema:X,exec:async(W,J)=>{let{op:L,result:_,...U}=W;if(J.error)return;let q=J.trace?{...J.state}:null,I=J.fuel.current,M,B;try{let P=J.costOverrides?.[Z],R=P!==void 0?P:z,F=typeof R==="function"?R(U,J):R;if((J.fuel.current-=F)<=0){J.error=new Y1("Out of Fuel",Z);return}let w,V=async()=>Q(W,J);if(M=Y>0?await Promise.race([V(),new Promise((C,O)=>{w=setTimeout(()=>O(Error(`Atom '${Z}' timed out`)),Y)})]).finally(()=>clearTimeout(w)):await V(),W.result){if(J.consts.has(W.result))throw Error(`Cannot reassign const variable '${W.result}'`);if(M!==void 0&&X&&!t4(M,X)){J.error=new Y1(`Output validation failed for '${Z}'`,Z);return}if(J.state[W.result]=M,W.resultConst)J.consts.add(W.result)}}catch(P){B=P.message||String(P),J.error=new Y1(B,Z,P)}finally{if(J.trace&&q){let P=n5(q,J.state);J.trace.push({op:Z,input:U,stateDiff:P,result:M,error:B,fuelBefore:I,fuelAfter:J.fuel.current,timestamp:new Date().toISOString()})}}},docs:K,timeoutMs:Y,cost:z,create:(W)=>({op:Z,...W})}}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}),s5=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}),a5=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}),r5=k("return",void 0,A.any,async(Z,$)=>{if($.error)return $.output=$.error,$.error;if("value"in Z){let Q=E(Z.value,$);if(Q!==void 0&&Q!==null&&!x5(Q)&&(typeof Q!=="object"||Array.isArray(Q))){let H=new Y1(`Agent must return an object, got ${Array.isArray(Q)?"array":typeof Q}`,"return");return $.error=H,$.output=H,H}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=b7(X,Z.schema);if(!(Q instanceof Error))X=Q}}return $.output=X,X},{docs:"Return",cost:0.1}),t5=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}),e5=k("Error",A.object({args:A.array(A.any).optional}),void 0,async(Z,$)=>{let X=Z.args?.[0]??"Error";$.error=new Y1(String(X),"Error")},{docs:"Trigger error flow",cost:0.1}),Z$=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]=E($,X)},{docs:"Set Variable",cost:0.1}),$$=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]=E($,X),X.consts.add(Z)},{docs:"Set Const Variable (immutable)",cost:0.1}),X$=k("varGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{return E(Z,$)},{docs:"Get Variable",cost:0.1}),Q$=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]=E({$kind:"arg",path:X},$);else for(let[X,Q]of Object.entries(Z))$.state[X]=E({$kind:"arg",path:Q},$)},{docs:"Import variables from args into the current scope, with optional renaming.",cost:0.2}),H$=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]=E(Z[X],$)}},{docs:"Initialize a set of variables in the current scope from the step object properties.",cost:0.1}),K$=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]=E(Q,$);else for(let[Q,H]of Object.entries(Z))X[Q]=E(H,$);return X},{docs:"Export variables from the current scope, with optional renaming.",cost:0.2}),Y$=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 H=[],K=E(Z,Q);if(!Array.isArray(K))throw Error("map: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);z.state[$]=Y,await J1.exec({op:"seq",steps:X},z),H.push(z.state.result??null)}return H},{docs:"Map Array",timeoutMs:0,cost:1}),G$=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 H=[],K=E(Z,Q);if(!Array.isArray(K))throw Error("filter: items is not an array");for(let Y of K){if(Q.signal?.aborted)throw Error("Execution aborted");let z=O1(Q);if(z.state[$]=Y,n(X,z))H.push(Y)}return H},{docs:"Filter Array",timeoutMs:0,cost:1}),W$=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:H},K)=>{let Y=E(Z,K),z=E(Q,K);if(!Array.isArray(Y))throw Error("reduce: items is not an array");let G=z;for(let W of Y){if(K.signal?.aborted)throw Error("Execution aborted");let J=O1(K);J.state[$]=W,J.state[X]=G,await J1.exec({op:"seq",steps:H},J),G=J.state.result??G}return G},{docs:"Reduce Array",timeoutMs:0,cost:1}),J$=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 H=E(Z,Q);if(!Array.isArray(H))throw Error("find: items is not an array");for(let K of H){if(Q.signal?.aborted)throw Error("Execution aborted");let Y=O1(Q);if(Y.state[$]=K,n(X,Y))return K}return null},{docs:"Find in Array",timeoutMs:0,cost:1}),_$=k("push",A.object({list:A.array(A.any),item:A.any}),A.array(A.any),async({list:Z,item:$},X)=>{let Q=E(Z,X),H=E($,X);if(Array.isArray(Q))Q.push(H);return Q},{docs:"Push to Array",cost:1}),L$=k("len",A.object({list:A.any}),A.number,async({list:Z},$)=>{let X=E(Z,$);return Array.isArray(X)||typeof X==="string"?X.length:0},{docs:"Length",cost:1}),U$=k("split",A.object({str:A.string,sep:A.string}),A.array(A.string),async({str:Z,sep:$},X)=>E(Z,X).split(E($,X)),{docs:"Split String",cost:1}),q$=k("join",A.object({list:A.array(A.string),sep:A.string}),A.string,async({list:Z,sep:$},X)=>E(Z,X).join(E($,X)),{docs:"Join String",cost:1}),D$=k("template",A.object({tmpl:A.string,vars:A.record(A.any)}),A.string,async({tmpl:Z,vars:$},X)=>{return E(Z,X).replace(/\{\{(\w+)\}\}/g,(H,K)=>String(E($[K],X)??""))},{docs:"String Template",cost:1}),A$=k("regexMatch",A.object({pattern:A.string,value:A.any}),A.boolean,async({pattern:Z,value:$},X)=>{if(p5(Z))throw Error(`Suspicious regex pattern rejected (potential ReDoS): ${Z}`);let Q=E($,X);return new RegExp(Z).test(Q)},{docs:"Returns true if the value matches the regex pattern.",cost:2}),I$=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=E(Z,X),H=E($,X),K={};if(Q&&Array.isArray(H))H.forEach((Y)=>K[Y]=Q[Y]);return K},{docs:"Pick Keys",cost:1}),B$=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=E(Z,X),H=new Set(E($,X)),K={};if(Q)Object.keys(Q).forEach((Y)=>{if(!H.has(Y))K[Y]=Q[Y]});return K},{docs:"Omit Keys",cost:1}),R$=k("merge",A.object({a:A.record(A.any),b:A.record(A.any)}),A.record(A.any),async({a:Z,b:$},X)=>({...E(Z,X),...E($,X)}),{docs:"Merge Objects",cost:1}),M$=k("keys",A.object({obj:A.record(A.any)}),A.array(A.string),async({obj:Z},$)=>Object.keys(E(Z,$)??{}),{docs:"Object Keys",cost:1}),S7=10,k7="X-Agent-Depth";function w$(Z,$){try{let Q=new URL(Z).hostname.toLowerCase();for(let H of $){let K=H.toLowerCase();if(K.startsWith("*.")){let Y=K.slice(1);if(Q.endsWith(Y)||Q===K.slice(2))return!0}else if(Q===K)return!0}return!1}catch{return!1}}var j$=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=E(Z.url,$),Q=E(Z.method,$),H=E(Z.headers,$)||{},K=E(Z.body,$),Y=E(Z.responseType,$),z=$.context?.requestDepth??0;if(z>=S7)throw Error(`Agent request depth exceeded (max ${S7}). This prevents recursive agent loops.`);if($.capabilities.fetch)return $.capabilities.fetch(X,{method:Q,headers:{...H,[k7]:String(z+1)},body:K,signal:$.signal,responseType:Y});let G=$.context?.allowedFetchDomains;if(G){if(!w$(X,G))throw Error(`Fetch blocked: domain not in allowlist. Allowed: ${G.join(", ")}`)}else{if(i5(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(W){if(W.message.includes("allowedFetchDomains"))throw W;throw Error(`Invalid URL: ${X}`)}}if(typeof globalThis.fetch==="function"){let W=await globalThis.fetch(X,{method:Q,headers:{...H,[k7]:String(z+1)},body:K?JSON.stringify(K):void 0,signal:$.signal});if(Y==="dataUrl"){let L=await W.arrayBuffer(),_=new Uint8Array(L),U="";for(let M=0;M<_.length;M++)U+=String.fromCharCode(_[M]);let q=btoa(U);return`data:${W.headers.get("content-type")||"application/octet-stream"};base64,${q}`}let J=W.headers.get("content-type");if(Y==="json"||J&&J.includes("application/json"))return W.json();return W.text()}throw Error("Capability 'fetch' missing and no global fetch available")},{docs:"HTTP Fetch",timeoutMs:30000,cost:5}),F$=k("storeGet",A.object({key:A.string}),A.any,async({key:Z},$)=>{let X=E(Z,$);return $.capabilities.store?.get(X)},{docs:"Store Get",cost:5}),P$=k("storeSet",A.object({key:A.string,value:A.any}),void 0,async({key:Z,value:$},X)=>{let Q=E(Z,X),H=E($,X);return X.capabilities.store?.set(Q,H)},{docs:"Store Set",cost:5}),V$=k("storeQuery",A.object({query:A.any}),A.array(A.any),async({query:Z},$)=>$.capabilities.store?.query?.(E(Z,$))??[],{docs:"Store Query",cost:5}),C$=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?.(E(Z,Q),E($,Q),E(X,Q))??[],{docs:"Vector Search",cost:(Z,$)=>5+(E(Z.k,$)??5)}),O$=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(E(Z,X),E($,X))},{docs:"LLM Predict",timeoutMs:120000,cost:100}),N$=k("agentRun",A.object({agentId:A.any,input:A.any}),A.any,async({agentId:Z,input:$},X)=>{let Q=E(Z,X),H=E($,X),K=H;if(H&&typeof H==="object"&&!Array.isArray(H)){K={};for(let z in H)K[z]=E(H[z],X)}if(Z6(Q)){let z=$6(Q),G={...X,args:K,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(z,G),G.error)throw Error(G.error.message||"Sub-agent failed");return G.output}if(Q&&typeof Q==="object"&&"op"in Q){let z={...X,args:K,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(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,K);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}),E$=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=E(Z,$);try{return $.capabilities.code.transpile(X)}catch(Q){throw Error(`Code transpilation failed: ${Q.message}`)}},{docs:"Transpile AsyncJS code to AST",cost:1}),g7=10,T$=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>=g7)throw Error(`runCode recursion limit exceeded (max ${g7}). 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 H=E(Z,X),K=$?E($,X):{},Y;try{Y=X.capabilities.code.transpile(H)}catch(G){throw Error(`Code transpilation failed: ${G.message}`)}if(Y.op!=="seq")throw Error("Transpiled code must be a seq node");let z=O1(X);if(z.args=K,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}),S$=k("jsonParse",A.object({str:A.string}),A.any,async({str:Z},$)=>JSON.parse(E(Z,$)),{docs:"Parse JSON",cost:1}),k$=k("jsonStringify",A.object({value:A.any}),A.string,async({value:Z},$)=>JSON.stringify(E(Z,$)),{docs:"Stringify JSON",cost:1}),g$=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(E(Z,$))},{docs:"Parse XML",cost:1}),b$=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=E(Z,X)??await X6.exec({value:$,algorithm:"SHA-256"},X);if(X.memo.has(Q))return X.memo.get(Q);let H=O1(X);await J1.exec({op:"seq",steps:$},H);let K=H.output??H.state.result;return X.memo.set(Q,K),K},{docs:"Memoize steps result in memory",cost:1}),v$=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 K=`cache:${E(Z,Q)??await X6.exec({value:$,algorithm:"SHA-256"},Q)}`,Y=await Q.capabilities.store.get(K);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 G=z.output??z.state.result,W=Date.now()+(X??86400000);if((Q.fuel.current-=5)<=0)throw Error("Out of Fuel");return await Q.capabilities.store.set(K,{val:G,_exp:W}),G},{docs:"Cache steps result in store with TTL",cost:5}),f$=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},H)=>{let K=E(X,H)??"float",Y=E(Q,H)??10,z=E(Z,H)??0,G=E($,H)??1;if(K==="base36"){let U="";if(typeof crypto<"u"&&crypto.getRandomValues){let q=new Uint8Array(Y);crypto.getRandomValues(q);for(let I=0;I<Y;I++)U+="0123456789abcdefghijklmnopqrstuvwxyz"[q[I]%36]}else for(let q=0;q<Y;q++)U+="0123456789abcdefghijklmnopqrstuvwxyz".charAt(Math.floor(Math.random()*36));return U}let W;if(typeof crypto<"u"&&crypto.getRandomValues){let _=new Uint32Array(1);crypto.getRandomValues(_),W=_[0]/4294967296}else W=Math.random();let J=G-z,L=W*J+z;if(K==="integer")return Math.floor(L);return L},{docs:"Generate Random",cost:1}),y$=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}),X6=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(E(Z,X)),H=E($,X)||"SHA-256";if(typeof crypto<"u"&&crypto.subtle){let z=new TextEncoder().encode(Q),G=await crypto.subtle.digest(H,z);return Array.from(new Uint8Array(G)).map((J)=>J.toString(16).padStart(2,"0")).join("")}let K=0;for(let Y=0;Y<Q.length;Y++){let z=Q.charCodeAt(Y);K=(K<<5)-K+z,K|=0}return String(K)},{docs:"Hash a value",cost:1}),h$=k("consoleLog",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(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}),x$=k("consoleWarn",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(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}),u$=k("consoleError",A.object({message:A.any}),void 0,async({message:Z},$)=>{let X=E(Z,$),Q=typeof X==="string"?X:JSON.stringify(X);$.error=new Y1(Q,"console.error")},{docs:"Emit error and stop",cost:0.1}),d$=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 H=E(Z,Q),K=$?E($,Q):u5,Y=X?E(X,Q):d5;if(!H||typeof H!=="object"||!H.op)throw Error('Invalid AST: must be an object with an "op" property');let z=JSON.stringify(H);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 G=l5(),W=Date.now();return s1.set(G,{ast:H,createdAt:W,expiresAt:W+K}),G},{docs:"Store an AST and return a token for later execution",cost:1}),l$=k("releaseProcedure",A.object({token:A.string}),A.boolean,async({token:Z},$)=>{let X=E(Z,$);return s1.delete(X)},{docs:"Release a stored procedure by token",cost:0.1}),m$=k("clearExpiredProcedures",void 0,A.number,async()=>{let Z=Date.now(),$=0;for(let[X,Q]of s1)if(Z>Q.expiresAt)s1.delete(X),$++;return $},{docs:"Clear all expired procedures and return count",cost:0.5}),U4={seq:J1,if:s5,while:a5,return:r5,try:t5,Error:e5,varSet:Z$,constSet:$$,varGet:X$,varsImport:Q$,varsLet:H$,varsExport:K$,scope:Y$,map:z$,filter:G$,reduce:W$,find:J$,push:_$,len:L$,split:U$,join:q$,template:D$,regexMatch:A$,pick:I$,omit:B$,merge:R$,keys:M$,httpFetch:j$,storeGet:F$,storeSet:P$,storeQuery:V$,storeVectorSearch:C$,llmPredict:O$,agentRun:N$,transpileCode:E$,runCode:T$,jsonParse:S$,jsonStringify:k$,xmlParse:g$,memoize:b$,cache:v$,random:f$,uuid:y$,hash:X6,consoleLog:h$,consoleWarn:x$,consoleError:u$,storeProcedure:d$,releaseProcedure:l$,clearExpiredProcedures:m$};var i$=new Set(["true","false","null","undefined","and","or","not"]);function p$(Z,$){let X=Z.replace(/"[^"]*"/g,'""').replace(/'[^']*'/g,"''"),Q=[],H=/(?<![.])\b([a-zA-Z_][a-zA-Z0-9_]*)\b/g,K;while((K=H.exec(X))!==null)Q.push(K[1]);let z=[...new Set(Q)].filter((G)=>!i$.has(G)&&!(G in $)&&!new RegExp(`\\b${G}\\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 q4(Z,$){p$(Z,$);let X=n$(Z),Q=u7(X,0,$);if(Q.pos<X.length){let H=X.slice(Q.pos).join(" ");throw Error(`Unsupported condition syntax near '${H}' in: ${Z}
422
+ Supported: comparisons, &&, ||, !, arithmetic, member access (a.b), literals`)}return Q.node}function n$(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++],H="";while(X<Z.length&&Z[X]!==Q)if(Z[X]==="\\"&&X+1<Z.length)X++,H+=Z[X++];else H+=Z[X++];X++,$.push(JSON.stringify(H));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 u7(Z,$,X){return c$(Z,$,X)}function c$(Z,$,X){let{node:Q,pos:H}=f7(Z,$,X);while(Z[H]==="||"){H++;let{node:K,pos:Y}=f7(Z,H,X);Q={$expr:"logical",op:"||",left:Q,right:K},H=Y}return{node:Q,pos:H}}function f7(Z,$,X){let{node:Q,pos:H}=y7(Z,$,X);while(Z[H]==="&&"){H++;let{node:K,pos:Y}=y7(Z,H,X);Q={$expr:"logical",op:"&&",left:Q,right:K},H=Y}return{node:Q,pos:H}}function y7(Z,$,X){let{node:Q,pos:H}=h7(Z,$,X),K=["==","!=",">","<",">=","<="];while(K.includes(Z[H])){let Y=Z[H++],{node:z,pos:G}=h7(Z,H,X);Q={$expr:"binary",op:Y,left:Q,right:z},H=G}return{node:Q,pos:H}}function h7(Z,$,X){let{node:Q,pos:H}=x7(Z,$,X);while(Z[H]==="+"||Z[H]==="-"){let K=Z[H++],{node:Y,pos:z}=x7(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function x7(Z,$,X){let{node:Q,pos:H}=Q6(Z,$,X);while(Z[H]==="*"||Z[H]==="/"||Z[H]==="%"){let K=Z[H++],{node:Y,pos:z}=Q6(Z,H,X);Q={$expr:"binary",op:K,left:Q,right:Y},H=z}return{node:Q,pos:H}}function Q6(Z,$,X){if(Z[$]==="!"||Z[$]==="-"){let Q=Z[$++],{node:H,pos:K}=Q6(Z,$,X);return{node:{$expr:"unary",op:Q,argument:H},pos:K}}return o$(Z,$,X)}function o$(Z,$,X){let Q=Z[$];if(Q==="("){let{node:H,pos:K}=u7(Z,$+1,X);return{node:H,pos:K+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 H={$expr:"ident",name:Q},K=$+1;while(Z[K]==="."){K++;let Y=Z[K++];H={$expr:"member",object:H,property:Y}}return{node:H,pos:K}}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(H)=>{let K=$.atoms[X];return $.add(K.create(H)),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 H=new e(this.atoms);X(H);let K;if(Q){let G=new e(this.atoms);Q(G),K=G.steps}let Y=q4(Z,$),z=this.atoms.if;return this.add(z.create({condition:Y,then:H.steps,else:K}))}while(Z,$,X){let Q=new e(this.atoms);X(Q);let H=q4(Z,$),K=this.atoms.while;return this.add(K.create({condition:H,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 H=this.atoms.map;return this.add(H.create({items:Z,as:$,steps:Q.steps}))}filter(Z,$,X,Q={}){let H=q4(X,Q),K=this.atoms.filter;return this.add(K.create({items:Z,as:$,condition:H}))}find(Z,$,X,Q={}){let H=q4(X,Q),K=this.atoms.find;return this.add(K.create({items:Z,as:$,condition:H}))}reduce(Z,$,X,Q,H){let K=new e(this.atoms);H(K);let Y=this.atoms.reduce;return this.add(Y.create({items:Z,as:$,accumulator:X,initial:Q,steps:K.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 H=this.atoms.cache;return this.add(H.create({key:$,steps:Q.steps,ttlMs:X}))}try(Z){let $=new e(this.atoms);Z.try($);let X;if(Z.catch){let H=new e(this.atoms);Z.catch(H),X=H.steps}let Q=this.atoms.try;return this.add(Q.create({try:$.steps,catch:X}))}}var s$={take(Z){return new e(U4)},custom(Z){return new e(Z)},args(Z){return{$kind:"arg",path:Z}},val(Z){return Z}},VH=s$;import{validate as a$}from"tosijs-schema";function B0(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=M1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=k0(X,$.filename),{ast:z,signature:G,warnings:W}=Y0(Y,H,Q,$,K);return{ast:z,signature:G,warnings:W}}var r$=10;class H6{atoms;constructor(Z={}){this.atoms={...U4,...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(Z6(Z))Q=$6(Z);else try{Q=B0(Z).ast}catch(U){throw Error(`AJS transpilation failed: ${U.message}`)}else Q=Z;let H=X.fuel??1000,K=X.timeoutMs??H*r$,Y=X.capabilities??{},z=[];if(!Y.store){let U=new Map,q=!1;Y.store={get:async(I)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");return U.get(I)},set:async(I,M)=>{if(!q)q=!0,z.push("Using default in-memory store (not suitable for production)");U.set(I,M)}}}let G=new AbortController,W=setTimeout(()=>G.abort(),K);if(X.signal)X.signal.addEventListener("abort",()=>G.abort());let J={fuel:{current:H},args:$,state:{},consts:new Set,capabilities:Y,resolver:(U)=>this.resolve(U),output:void 0,signal:G.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&&!a$($,L)){let U=new Y1("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,q)=>{if(G.signal.addEventListener("abort",()=>{q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))}),G.signal.aborted)q(Error(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`))})])}catch(U){if(U.message?.includes("timeout")||U.message?.includes("aborted")||G.signal.aborted)J.error=new Y1(`Execution timeout after ${K}ms (fuel: ${H}). Consider increasing fuel or optimizing your agent.`,"vm.run");else throw U}finally{clearTimeout(W)}if(J.error&&J.output===void 0)J.output=J.error;let _=[...z,...J.warnings??[]];return{result:J.output,error:J.error,fuelUsed:H-J.fuel.current,trace:J.trace,warnings:_.length>0?_:void 0}}}var t$=null,d7=()=>t$??=new H6;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 e$(Z){let{code:$,context:X={},fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=d7(),G=/\breturn\b/.test($)?`function __eval() { ${$} }`:`function __eval() { return (${$}) }`;try{let{ast:W}=B0(G);x1(W);let J=await Y.run(W,X,{fuel:Q,timeoutMs:H,capabilities:K}),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(W){return{result:void 0,fuelUsed:Q,error:{message:W.message||String(W)}}}}async function ZX(Z){let{body:$,params:X=[],fuel:Q=1000,timeoutMs:H,capabilities:K={}}=Z,Y=d7(),G=`function __safeFn(${X.join(", ")}) { ${$} }`,{ast:W}=B0(G);return x1(W),async(...J)=>{let L={};for(let _=0;_<X.length;_++)L[X[_]]=J[_];try{let _=await Y.run(W,L,{fuel:Q,timeoutMs:H,capabilities:K}),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 A4(Z,$={}){let{ast:X,returnType:Q,originalSource:H,requiredParams:K}=M1(Z,{filename:$.filename,colonShorthand:!0,vmTarget:!0}),Y=k0(X,$.filename),{ast:z,signature:G,warnings:W}=Y0(Y,H,Q,$,K);return{ast:z,signature:G,warnings:W}}function mH(Z,...$){if(typeof Z==="string")return A4(Z).ast;let X=Z.reduce((Q,H,K)=>Q+H+($[K]!==void 0?String($[K]):""),"");return A4(X).ast}function pH(Z,$,...X){if(typeof Z==="string")return U0(Z,$);let Q=$!==void 0?[$,...X]:X,H=Z.reduce((K,Y,z)=>K+Y+(Q[z]!==void 0?String(Q[z]):""),"");return U0(H)}async function nH(Z,$={},X){let Q=X??await G4(),H=await Q.getTranspile(Z);if(H)return{ast:H.ast,signature:H.signature,warnings:H.warnings};let K=A4(Z,$);return Q.setTranspile(Z,{ast:K.ast,signature:K.signature,warnings:K.warnings}),K}async function cH(Z,$={},X){let Q=X??await G4(),H=await Q.getTJS(Z);if(H)return{code:H.code,types:H.types,metadata:H.types,testRunner:H.testRunner,testCount:H.testCount,warnings:H.warnings};let K=U0(Z,$);return Q.setTJS(Z,{code:K.code,types:K.types,testRunner:K.testRunner,testCount:K.testCount,warnings:K.warnings}),K}function oH(Z,$,X){let{ast:Q,signature:H}=A4(Z),K=async(Y)=>{return(await $.run(Q,Y,X)).result};return K.signature=H,K.ast=Q,K}function sH(Z){return Object.entries(Z).map(([$,X])=>{let Q=X.signature,H={},K=[];for(let[Y,z]of Object.entries(Q.parameters)){if(H[Y]=D4(z.type),z.description)H[Y].description=z.description;if(z.required)K.push(Y)}return{type:"function",function:{name:Q.name||$,description:Q.description,parameters:{type:"object",properties:H,required:K}}}})}function D4(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?D4(Z.items):{}};case"object":if(!Z.shape)return{type:"object"};return{type:"object",properties:Object.fromEntries(Object.entries(Z.shape).map(([$,X])=>[$,D4(X)]))};case"union":if(!Z.members)return{};return{anyOf:Z.members.map(D4)};case"any":default:return{}}}import{s as b}from"tosijs-schema";var l7=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=E(Z,$);return X.embed(Q)},{docs:"Generate embeddings using vector battery",cost:20}),m7=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 H=E(Z,X),K=E($,X);return Q.createCollection(H,void 0,K)},{docs:"Create a vector store collection",cost:5}),i7=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 H=E(Z,X),K=E($,X);return Q.vectorAdd(H,K)},{docs:"Add a document to a vector store collection",cost:5}),p7=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},H)=>{let K=H.capabilities.store;if(!K?.vectorSearch)throw Error("Capability 'store' missing or does not support vectorSearch.");let Y=E(Z,H),z=E($,H),G=E(X,H)??5,W=E(Q,H);return K.vectorSearch(Y,z,G,W)},{docs:"Search vector store",cost:(Z,$)=>5+(E(Z.k,$)??5)}),n7=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},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=E(Z,H)??"You are a helpful agent.",z=E($,H),G=E(X,H),W=E(Q,H);return K.predict(Y,z,G,W)},{docs:"Generate completion using LLM battery",cost:100}),c7=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},H)=>{let K=H.capabilities.llmBattery;if(!K?.predict)throw Error("Capability 'llmBattery' missing or invalid.");let Y=E(Z,H)??"You analyze images accurately and concisely.",z=E($,H),G=E(X,H)??[],W=E(Q,H);return K.predict(Y,{text:z,images:G},void 0,W)},{docs:"Analyze images using a vision model",timeoutMs:120000,cost:150});var IK={storeCreateCollection:m7,storeSearch:p7,storeVectorAdd:i7,storeVectorize:l7,llmPredictBattery:n7,llmVision:c7};var o7=new Map,I4=new Map;function $X(Z,$){if(Z.length!==$.length)throw Error("Vectors must have the same length for cosine similarity.");let X=0,Q=0,H=0;for(let K=0;K<Z.length;K++)X+=Z[K]*$[K],Q+=Z[K]*Z[K],H+=$[K]*$[K];if(Q=Math.sqrt(Q),H=Math.sqrt(H),Q===0||H===0)return 0;return X/(Q*H)}function K6(){return{async get(Z){return o7.get(Z)},async set(Z,$){o7.set(Z,$)},async createCollection(Z,$,X){if(I4.has(Z))console.warn(`Collection '${Z}' already exists. Overwriting.`);I4.set(Z,[])},async vectorAdd(Z,$){let X=I4.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=I4.get(Z);if(!Q)throw Error(`Collection '${Z}' not found. Create it first.`);let H=Q.map((K)=>({doc:K,score:$X($,K.embedding)}));return H.sort((K,Y)=>Y.score-K.score),H.slice(0,X).map((K)=>K.doc)}}}function XX(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 QX="http://localhost:1234/v1";function s7(Z,$=QX){return{async predict(X,Q,H,K){try{let Y=K?Z.getStructuredLLM():Z.getLLM(),z=[{role:"system",content:X},XX(Q)],G=await fetch(`${$}/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Y.id,messages:z,temperature:0.7,tools:H,response_format:K})});if(!G.ok)throw Error(`LLM Error: ${G.status} ${G.statusText}`);return(await G.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(),H=await fetch(`${$}/embeddings`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:Q.id,input:X})});if(!H.ok)throw Error(`Embedding Error: ${H.status}`);return(await H.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 R0=typeof window<"u"&&typeof window.localStorage<"u";async function YX(Z){try{if(R0){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(() => (G6(),z6))).join(process.cwd(),".models.cache.json");try{let H=await $.readFile(Q,"utf-8"),K=JSON.parse(H);if(K.baseUrl!==Z)return null;if(Date.now()-K.timestamp>86400000)return null;return K.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(R0)window.localStorage.setItem(".models.cache.json",JSON.stringify(X));else{let Q=await import("node:fs/promises"),K=(await Promise.resolve().then(() => (G6(),z6))).join(process.cwd(),".models.cache.json");await Q.writeFile(K,JSON.stringify(X,null,2))}}catch(Q){console.error("❌ Error writing model cache:",Q)}}var M0=async(Z,$)=>{let X=new AbortController,Q=setTimeout(()=>X.abort(),60000);try{let H=await fetch(Z,{...$,signal:X.signal});return clearTimeout(Q),H}catch(H){throw clearTimeout(Q),H}};async function GX(Z,$){try{let X={type:"json_schema",json_schema:{name:"test",strict:!1,schema:{type:"object",properties:{status:{type:"string"}}}}},Q=await M0(`${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 WX(Z,$);return{ok:!1,msg:`HTTP ${Q.status}`}}let H=await Q.json();return JSON.parse(H.choices[0].message.content),{ok:!0,msg:"OK (Schema)"}}catch(X){return{ok:!1,msg:X.message||"Error"}}}async function WX(Z,$){try{if((await M0(`${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 JX(Z,$){try{return(await M0(`${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 _X(Z,$){try{let X=await M0(`${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 LX="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==";async function UX(Z,$){try{return(await M0(`${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:LX}}]}],max_tokens:10})})).ok}catch{return!1}}async function W8(Z){let $=await YX(Z),X=[];try{let Y=await fetch(`${Z}/models`);if(!Y.ok)throw Error("Could not connect");X=(await Y.json()).data.map((G)=>G.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=[],H=X.map((Y)=>({id:Y})),K;if(!R0)K=await import("node:readline");for(let Y of H){if(!R0&&K)K.cursorTo(process.stdout,0),process.stdout.write(`\uD83D\uDC49 Testing: ${Y.id}...`),K.clearLine(process.stdout,1);let z="Unknown",G=!1,W=!1,J="",L=void 0,_=await JX(Z,Y.id),U=await _X(Z,Y.id);if(U)L=U;if(_){z="LLM";let q=await GX(Z,Y.id);if(G=q.ok,W=await UX(Z,Y.id),J=G?q.msg:`Fail: ${q.msg}`,W)J+=" +Vision"}else if(U)z="Embedding",J=`OK (Dim: ${U})`;else J="LLM Fail";Q.push({id:Y.id,type:z,structuredOutput:G,vision:W,dimension:L,status:J})}if(!R0&&K)K.cursorTo(process.stdout,0),K.clearLine(process.stdout,0);return console.log(`
423
+ `),console.table(Q),await zX(Z,Q),console.log("\uD83D\uDCDD Audit results saved to cache."),Q}var qX="http://localhost:1234/v1";class W6{baseUrl;models=[];defaultLLM=null;defaultEmbedding=null;defaultStructuredLLM=null;constructor(Z=qX){this.baseUrl=Z}async audit(){this.models=await W8(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 H=this.models.find((K)=>K.id===Z&&X(K));if(!H)throw Error(`Model '${Z}' not found or is not ${Q}.`);this[$]=H}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 DX=typeof window<"u",AX=DX&&window.location.protocol==="https:",w0=null,J6=null,J8=!1;async function IX(){if(J8)return{localModels:w0,llm:J6};if(J8=!0,AX)return console.log("\uD83D\uDCE1 HTTPS detected - local LLM endpoints disabled. Use HTTP for local LLM support."),{localModels:null,llm:null};try{w0=new W6,await w0.audit(),J6=s7(w0)}catch(Z){console.warn("⚠️ Could not connect to local LLM:",Z)}return{localModels:w0,llm:J6}}async function BX(){let{localModels:Z,llm:$}=await IX();return{vector:$?{embed:$.embed}:void 0,store:K6(),llmBattery:$,models:Z}}async function OK(){return BX()}var NK={store:K6(),llmBattery:null,vector:void 0,models:null};function RX(Z){if(typeof Z!=="string")return!1;let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")}function MX(){return new Date().toISOString()}function a1(Z,$,X,Q=0,H=0,K=0,Y=0){return new Date(Date.UTC(Z,$-1,X,Q,H,K,Y)).toISOString()}function _8(Z){let $=new Date(Z);if(isNaN($.getTime()))throw Error(`Invalid date string: ${Z}`);return $.toISOString()}function wX(Z){try{return _8(Z)}catch{return null}}function j0(Z,$){let X=new Date(Z);return X.setTime(X.getTime()+$),X.toISOString()}function jX(Z,$){return j0(Z,$*1000)}function FX(Z,$){return j0(Z,$*60*1000)}function PX(Z,$){return j0(Z,$*60*60*1000)}function L8(Z,$){return j0(Z,$*24*60*60*1000)}function VX(Z,$){return L8(Z,$*7)}function CX(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 OX(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 NX(Z,$){return Math.floor(N1(Z,$)/1000)}function EX(Z,$){return Math.floor(N1(Z,$)/60000)}function TX(Z,$){return Math.floor(N1(Z,$)/3600000)}function SX(Z,$){return Math.floor(N1(Z,$)/86400000)}function r1(Z){return new Date(Z).getUTCFullYear()}function R4(Z){return new Date(Z).getUTCMonth()+1}function _6(Z){return new Date(Z).getUTCDate()}function kX(Z){return new Date(Z).getUTCHours()}function gX(Z){return new Date(Z).getUTCMinutes()}function bX(Z){return new Date(Z).getUTCSeconds()}function vX(Z){return new Date(Z).getUTCMilliseconds()}function fX(Z){let $=new Date(Z).getUTCDay();return $===0?7:$}function M4(Z,$,X){let Q=new Date(Z),H={timeZone:$,...X};return new Intl.DateTimeFormat(void 0,H).format(Q)}function yX(Z,$){return M4(Z,$,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function hX(Z,$){return M4(Z,$,{year:"numeric",month:"short",day:"numeric"})}function xX(Z,$){return M4(Z,$,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function uX(Z){return Z.slice(0,10)}function U8(Z,$){return N1(Z,$)<0}function q8(Z,$){return N1(Z,$)>0}function dX(Z,$){return N1(Z,$)===0}function lX(Z,$){return U8(Z,$)?Z:$}function mX(Z,$){return q8(Z,$)?Z:$}function iX(Z){return a1(r1(Z),R4(Z),_6(Z))}function pX(Z){return a1(r1(Z),R4(Z),_6(Z),23,59,59,999)}function nX(Z){return a1(r1(Z),R4(Z),1)}function cX(Z){let $=new Date(Z);return $.setUTCMonth($.getUTCMonth()+1,0),$.setUTCHours(23,59,59,999),$.toISOString()}function oX(Z){return a1(r1(Z),1,1)}function sX(Z){return a1(r1(Z),12,31,23,59,59,999)}var t1={isValid:RX,now:MX,from:a1,parse:_8,tryParse:wX,addMilliseconds:j0,addSeconds:jX,addMinutes:FX,addHours:PX,addDays:L8,addWeeks:VX,addMonths:CX,addYears:OX,diff:N1,diffSeconds:NX,diffMinutes:EX,diffHours:TX,diffDays:SX,year:r1,month:R4,day:_6,hour:kX,minute:gX,second:bX,millisecond:vX,dayOfWeek:fX,toLocal:M4,format:yX,formatDate:hX,formatTime:xX,toDate:uX,isBefore:U8,isAfter:q8,isEqual:dX,min:lX,max:mX,startOfDay:iX,endOfDay:pX,startOfMonth:nX,endOfMonth:cX,startOfYear:oX,endOfYear:sX};function L6(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 H=[31,28,31,30,31,30,31,31,30,31,30,31],K=X===2&&($%4===0&&$%100!==0||$%400===0)?29:H[X-1];return Q<=K}function aX(){return t1.toDate(t1.now())}function rX(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"),H=String($).padStart(2,"0"),K=String(X).padStart(2,"0"),Y=`${Q}-${H}-${K}`;if(!L6(Y))throw Error(`Invalid date: ${Z}-${$}-${X}`);return Y}function D8(Z){if(/^\d{4}-\d{2}-\d{2}$/.test(Z)){if(!L6(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,H=$.getUTCDate();return _1(X,Q,H)}function tX(Z){try{return D8(Z)}catch{return null}}function w4(Z,$){let X=I8(Z);return t1.toDate(t1.addDays(X,$))}function eX(Z,$){return w4(Z,$*7)}function ZQ(Z,$){let X=X1(Z),Q=E1(Z),H=U6(Z),K=X*12+(Q-1)+$,Y=Math.floor(K/12),z=K%12+1,G=F0(Y,z),W=Math.min(H,G);return _1(Y,z,W)}function $Q(Z,$){let X=X1(Z),Q=E1(Z),H=U6(Z),K=X+$,Y=F0(K,Q),z=Math.min(H,Y);return _1(K,Q,z)}function A8(Z,$){let Q=new Date(Z+"T00:00:00Z").getTime(),H=new Date($+"T00:00:00Z").getTime();return Math.round((Q-H)/86400000)}function XQ(Z,$){let X=X1(Z),Q=E1(Z),H=X1($),K=E1($);return(X-H)*12+(Q-K)}function QQ(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 U6(Z){return parseInt(Z.slice(8,10),10)}function q6(Z){let $=new Date(Z+"T00:00:00Z").getUTCDay();return $===0?7:$}function HQ(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 KQ(Z){let $=_1(X1(Z),1,1);return A8(Z,$)+1}function D6(Z){return Math.ceil(E1(Z)/3)}function A6(Z){return Z%4===0&&Z%100!==0||Z%400===0}function F0(Z,$){let X=[31,28,31,30,31,30,31,31,30,31,30,31];if($===2&&A6(Z))return 29;return X[$-1]}function YQ(Z){return A6(Z)?366:365}function I8(Z){return Z+"T00:00:00.000Z"}function zQ(Z){return Math.floor(new Date(Z+"T00:00:00Z").getTime()/1000)}function GQ(Z){let $=new Date(Z*1000);return _1($.getUTCFullYear(),$.getUTCMonth()+1,$.getUTCDate())}function I6(Z,$){let X=new Date(Z+"T00:00:00Z"),Q={timeZone:"UTC",...$};return new Intl.DateTimeFormat(void 0,Q).format(X)}function WQ(Z){return I6(Z,{year:"numeric",month:"long",day:"numeric"})}function JQ(Z){return I6(Z,{year:"numeric",month:"short",day:"numeric"})}function _Q(Z,$){return Z<$}function LQ(Z,$){return Z>$}function UQ(Z,$){return Z===$}function qQ(Z,$){return Z<$?Z:$}function DQ(Z,$){return Z>$?Z:$}function AQ(Z,$,X){return Z>=$&&Z<=X}function IQ(Z){return _1(X1(Z),E1(Z),1)}function BQ(Z){let $=X1(Z),X=E1(Z);return _1($,X,F0($,X))}function RQ(Z){let X=(D6(Z)-1)*3+1;return _1(X1(Z),X,1)}function MQ(Z){let X=D6(Z)*3;return _1(X1(Z),X,F0(X1(Z),X))}function wQ(Z){return _1(X1(Z),1,1)}function jQ(Z){return _1(X1(Z),12,31)}function FQ(Z){let $=q6(Z);return w4(Z,-($-1))}function PQ(Z){let $=q6(Z);return w4(Z,7-$)}var VQ={isValid:L6,today:aX,todayIn:rX,from:_1,parse:D8,tryParse:tX,addDays:w4,addWeeks:eX,addMonths:ZQ,addYears:$Q,diff:A8,diffMonths:XQ,diffYears:QQ,year:X1,month:E1,day:U6,dayOfWeek:q6,weekOfYear:HQ,dayOfYear:KQ,quarter:D6,isLeapYear:A6,daysInMonth:F0,daysInYear:YQ,toTimestamp:I8,toUnix:zQ,fromUnix:GQ,format:I6,formatLong:WQ,formatShort:JQ,isBefore:_Q,isAfter:LQ,isEqual:UQ,min:qQ,max:DQ,isBetween:AQ,startOfMonth:IQ,endOfMonth:BQ,startOfQuarter:RQ,endOfQuarter:MQ,startOfYear:wQ,endOfYear:jQ,startOfWeek:FQ,endOfWeek:PQ};export{g$ as xmlParse,o4 as wrap,a5 as whileLoop,C$ as vectorSearch,H$ as varsLet,Q$ as varsImport,K$ as varsExport,Z$ as varSet,X$ as varGet,c4 as validateArgs,y$ as uuid,O4 as typeToString,p1 as typeOf,l1 as typeDescriptorToTS,t5 as tryCatch,nH as transpileWithCache,U0 as transpileToJS,E$ as transpileCode,A4 as transpile,Y0 as transformFunction,cH as tjsWithCache,pH as tjs,zZ as testUtils,D$ as template,v0 as stripTjsPreamble,b0 as stripModuleSyntax,P$ as storeSet,V$ as storeQuery,d$ as storeProcedure,F$ as storeGet,U$ as split,k5 as setGlobalCache,J1 as seq,Y$ as scope,b1 as runtime,T$ as runCode,r5 as ret,E as resolveValue,$6 as resolveProcedureToken,l$ as releaseProcedure,K7 as registerWasmBlock,A$ as regexMatch,W$ as reduce,f$ as random,_$ as push,s1 as procedureStore,S0 as preprocess,I$ as pick,n6 as parseReturnType,P1 as parseParameter,M1 as parse,B$ as omit,R$ as merge,b$ as memoize,z$ as map,S8 as lookupVariable,O$ as llmPredict,v5 as lint,L$ as len,M$ as keys,k$ as jsonStringify,S$ as jsonParse,q$ as join,h4 as isValidUrl,x4 as isValidTimestamp,u4 as isValidLegalDate,C1 as isRuntimeType,Z6 as isProcedureToken,w1 as isError,x5 as isAgentError,H7 as instantiateWasm,L5 as installRuntime,H1 as inferTypeFromValue,s5 as iff,E5 as hashSourceSync,z4 as hashSource,X6 as hash,sH as getToolDefinitions,K6 as getStoreCapabilityDefault,OK as getStandardCapabilities,m as getLocation,s7 as getLLMCapability,G4 as getGlobalCache,BX as getBatteries,h5 as generateDocsMarkdown,O7 as generateDocs,oZ as generateDTS,O5 as fromTS,J$ as find,G$ as filter,j$ as fetch,E4 as extractTests,Q0 as extractTDoc,A1 as extractLiteralValue,t6 as expectFunction,n as evaluateExpr,e5 as errorAtom,B1 as error,U5 as emitRuntimeWrapper,k as defineAtom,O1 as createChildScope,G1 as createChildContext,oH as createAgent,U4 as coreAtoms,$$ as constSet,x$ as consoleWarn,h$ as consoleLog,u$ as consoleError,kZ as compileWasmBlocks,h0 as compileToWasm,m$ as clearExpiredProcedures,v1 as checkType,v$ as cache,F1 as builtins,IK as batteryAtoms,NK as batteries,r6 as assertFunction,mH as ajs,N$ as agentRun,r0 as Union,e as TypedBuilder,T8 as TypeError,o as Type,l as TranspileError,d4 as TimestampType,t1 as Timestamp,o0 as TUuid,c0 as TUrl,u0 as TString,Z4 as TRecord,i0 as TPositiveInt,e0 as TPair,d0 as TNumber,p0 as TNonEmptyString,$1 as TJS_VERSION,m0 as TInteger,n0 as TEmail,l0 as TBoolean,t0 as TArray,Q1 as SyntaxError,N5 as Schema,ZX as SafeFunction,e4 as PROCEDURE_TOKEN_PREFIX,a0 as Optional,s0 as Nullable,a4 as MetadataCache,W6 as LocalModels,l4 as LegalDateType,VQ as LegalDate,i1 as Generic,q0 as FunctionPredicate,e$ as Eval,$4 as Enum,u5 as DEFAULT_PROCEDURE_TTL,d5 as DEFAULT_MAX_AST_SIZE,H6 as AgentVM,Y1 as AgentError,s$ as Agent,VH as A99};
421
424
 
422
- //# debugId=B08239C1540E710464756E2164756E21
425
+ //# debugId=A53DF84A862FF2F964756E2164756E21