tjs-lang 0.6.19 → 0.6.20
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 +3 -3
- package/dist/index.js.map +3 -3
- package/dist/tjs-full.js +3 -3
- package/dist/tjs-full.js.map +3 -3
- package/package.json +1 -1
- package/src/cli/tjs.ts +1 -1
- package/src/lang/emitters/dts.test.ts +22 -0
- package/src/lang/emitters/dts.ts +5 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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((_H,Q5)=>{Q5.exports={name:"tjs-lang",version:"0.6.
|
|
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((_H,Q5)=>{Q5.exports={name:"tjs-lang",version:"0.6.20",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:()=>GX,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 zX(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 zX("/",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,GX;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}),GX=G8});import*as p6 from"acorn";class m 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 m{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
3
|
`)}}class T8 extends m{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 i(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
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],P=I[0].length,B=Z[Q+P],F=null,N=Q+P;if(B==="?"||B==="!")if(F=B,N++,F==="!")$.unsafeFunctions.add(R);else $.safeFunctions.add(R);X+=`function ${R}(`,Q=N;let C=V0(Z,Q,"(",")");if(!C){X+=Z[Q],Q++;continue}let{content:w,endPos:V}=C;Q=V;let O=V4(w,$,!0);X+=O+")";let k=Q;while(k<Z.length&&/\s/.test(Z[k]))k++;let S=Z.slice(k,k+2);if(S==="->"||S==="-?"||S==="-!"){k+=2;while(k<Z.length&&/\s/.test(Z[k]))k++;let v=P0(Z,k);if(v){let{type:x,endPos:g}=v;if(H===void 0){if(H=x,S==="-?")K="safe";else if(S==="-!")K="unsafe"}Q=g}}continue}let M=Z.slice(Q).match(/^(constructor|(?:get|set)\s+\w+|async\s+\w+|\w+)\s*\(/);if(M&&L()){let R=M[1],P=M[0].length,B=Q+P;X+=R+"(",Q=B;let F=V0(Z,Q,"(",")");if(!F){X+=Z[Q],Q++;continue}let{content:N,endPos:C}=F;Q=C;let w=V4(N,$,!0);X+=w+")";let V=Q;while(V<Z.length&&/\s/.test(Z[V]))V++;let O=Z.slice(V,V+2);if(O==="->"||O==="-!"||O==="-?"){V+=2;while(V<Z.length&&/\s/.test(Z[V]))V++;let k=P0(Z,V);if(k)Q=k.endPos}else if(Z[V]===":"){V++;while(V<Z.length&&/\s/.test(Z[V]))V++;let k=P0(Z,V);if(k)Q=k.endPos}continue}if(Z[Q]==="("){let R=V0(Z,Q+1,"(",")");if(!R){X+=Z[Q],Q++;continue}let{content:P,endPos:B}=R,F=B;while(F<Z.length&&/\s/.test(Z[F]))F++;let N,C=Z.slice(F,F+2);if(C==="->"||C==="-?"||C==="-!"){F+=2;while(F<Z.length&&/\s/.test(Z[F]))F++;let w=P0(Z,F);if(w){N=w.type,F=w.endPos;while(F<Z.length&&/\s/.test(Z[F]))F++}}if(Z.slice(F,F+2)==="=>"){let w=null,V=P,O=P.trimStart();if(O.startsWith("?")&&(O.length===1||/\s/.test(O[1])))w="?",V=O.slice(1);else if(O.startsWith("!")&&(O.length===1||/\s/.test(O[1])))w="!",V=O.slice(1);let k=V4(V,$,!1);X+=`(${w==="?"?"/* safe */ ":w==="!"?"/* unsafe */ ":""}${k})`,Q=B;while(Q<F&&/\s/.test(Z[Q]))X+=Z[Q],Q++;if(N)Q=F}else{let w=N0(P,$);X+=`(${w.source})`,Q=B}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]==="("){Q++,X++;continue}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===`
|
|
@@ -339,7 +339,7 @@ ${j4}`}),!B6&&!R6){let z1=`${u1.file}:${u1.line}`,L1=fZ(y,D1,z1);if(L1&&g.body&&
|
|
|
339
339
|
${s.error}`});throw Error(`Transpile-time test failures:
|
|
340
340
|
${Z1.join(`
|
|
341
341
|
`)}`)}}if(Q==="only")return{code:"",types:B,metadata:B,testResults:v,testCount:v?.length};let x;if(P.wasmBlocks.length>0){x=[];let g=Y7(P.wasmBlocks);if(g.code)C=g.code+`
|
|
342
|
-
`+C;x=g.results}return{code:C,types:B,metadata:B,warnings:Y.length>0?Y:void 0,testRunner:J.length>0?_:void 0,testCount:J.length>0?J.length:void 0,testResults:v,wasmCompiled:x}}function dZ(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 lZ(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 mZ(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 iZ(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 pZ(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 R of M){let P=R.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 nZ(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 _=G.indexOf("(",W);if(_!==-1){let U=1,q=_+1;while(q<G.length&&U>0){if(G[q]==="(")U++;else if(G[q]===")")U--;q++}J=G.slice(_+1,q-1).trim()}}let L=[];{let _=0,U=0;while(_<G.length){let q=G[_];if(q==="{"){U++,_++;continue}if(q==="}"){U--,_++;continue}if(U===0){let I=G.slice(_).match(/^(\w+)\s*\(/);if(I){let M=I[1];if(M
|
|
342
|
+
`+C;x=g.results}return{code:C,types:B,metadata:B,warnings:Y.length>0?Y:void 0,testRunner:J.length>0?_:void 0,testCount:J.length>0?J.length:void 0,testResults:v,wasmCompiled:x}}function dZ(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 lZ(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 mZ(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 iZ(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 pZ(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 R of M){let P=R.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 nZ(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 _=G.indexOf("(",W);if(_!==-1){let U=1,q=_+1;while(q<G.length&&U>0){if(G[q]==="(")U++;else if(G[q]===")")U--;q++}J=G.slice(_+1,q-1).trim()}}let L=[];{let _=0,U=0;while(_<G.length){let q=G[_];if(q==="{"){U++,_++;continue}if(q==="}"){U--,_++;continue}if(U===0){let I=G.slice(_).match(/^(\w+)\s*\(/);if(I){let M=I[1];if(M==="constructor"||M==="get"||M==="set"){_+=M.length;continue}else{let R=_+I[0].length-1,P=1,B=R+1;while(B<G.length&&P>0){if(G[B]==="(")P++;else if(G[B]===")")P--;B++}let F=G.slice(R+1,B-1).trim(),N=G.slice(B).match(/^\s*->\s*(.+?)\s*\{/),C=N?N[1].trim():null;L.push({name:M,params:F,returnType:C}),_=B;continue}}}_++}}$.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 cZ(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 oZ(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 sZ(Z,$,X={}){let Q=[],H=iZ($),K=cZ($),Y=nZ($),z=oZ($),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(mZ(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 R=M.params?W7(M.params):"";Q.push(` ${M.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 M=_.declaration.split(`
|
|
343
343
|
`).map((R)=>R.trim()).filter((R)=>R.length>0).map((R)=>` ${R}`).join(`
|
|
344
344
|
`);Q.push(`export interface ${L}${I} {
|
|
345
345
|
${M}
|
|
@@ -423,4 +423,4 @@ ${H.signature}
|
|
|
423
423
|
Supported: comparisons, &&, ||, !, arithmetic, member access (a.b), literals`)}return Q.node}function s$(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 a$(Z,$,X)}function a$(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 r$(Z,$,X)}function r$(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 t$={take(Z){return new e(U4)},custom(Z){return new e(Z)},args(Z){return{$kind:"arg",path:Z}},val(Z){return Z}},NH=t$;import{validate as e$}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 ZX=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*ZX,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&&!e$($,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 $X=null,d7=()=>$X??=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 XX(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 QX(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 nH(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 oH(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 sH(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 aH(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 rH(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 tH(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 f}from"tosijs-schema";var l7=b("storeVectorize",f.object({text:f.string,model:f.string.optional}),f.array(f.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=b("storeCreateCollection",f.object({collection:f.string,dimension:f.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=b("storeVectorAdd",f.object({collection:f.string,doc:f.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=b("storeSearch",f.object({collection:f.string,queryVector:f.array(f.number),k:f.number.optional,filter:f.record(f.any).optional}),f.array(f.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=b("llmPredictBattery",f.object({system:f.string.optional,user:f.string,tools:f.array(f.any).optional,responseFormat:f.any.optional}),f.object({role:f.string.optional,content:f.string.optional,tool_calls:f.array(f.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=b("llmVision",f.object({system:f.string.optional,prompt:f.string,images:f.array(f.string),responseFormat:f.any.optional}),f.object({role:f.string.optional,content:f.string.optional,tool_calls:f.array(f.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 MK={storeCreateCollection:m7,storeSearch:p7,storeVectorAdd:i7,storeVectorize:l7,llmPredictBattery:n7,llmVision:c7};var o7=new Map,I4=new Map;function HX(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:HX($,K.embedding)}));return H.sort((K,Y)=>Y.score-K.score),H.slice(0,X).map((K)=>K.doc)}}}function KX(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 YX="http://localhost:1234/v1";function s7(Z,$=YX){return{async predict(X,Q,H,K){try{let Y=K?Z.getStructuredLLM():Z.getLLM(),z=[{role:"system",content:X},KX(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 WX(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 JX(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 _X(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 LX(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 LX(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 UX(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 qX(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 DX="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==";async function AX(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:DX}}]}],max_tokens:10})})).ok}catch{return!1}}async function W8(Z){let $=await WX(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 UX(Z,Y.id),U=await qX(Z,Y.id);if(U)L=U;if(_){z="LLM";let q=await _X(Z,Y.id);if(G=q.ok,W=await AX(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(`
|
|
424
424
|
`),console.table(Q),await JX(Z,Q),console.log("\uD83D\uDCDD Audit results saved to cache."),Q}var IX="http://localhost:1234/v1";class W6{baseUrl;models=[];defaultLLM=null;defaultEmbedding=null;defaultStructuredLLM=null;constructor(Z=IX){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 BX=typeof window<"u",RX=BX&&window.location.protocol==="https:",w0=null,J6=null,J8=!1;async function MX(){if(J8)return{localModels:w0,llm:J6};if(J8=!0,RX)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 wX(){let{localModels:Z,llm:$}=await MX();return{vector:$?{embed:$.embed}:void 0,store:K6(),llmBattery:$,models:Z}}async function TK(){return wX()}var SK={store:K6(),llmBattery:null,vector:void 0,models:null};function jX(Z){if(typeof Z!=="string")return!1;let $=new Date(Z);return!isNaN($.getTime())&&Z.includes("T")}function FX(){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 PX(Z){try{return _8(Z)}catch{return null}}function j0(Z,$){let X=new Date(Z);return X.setTime(X.getTime()+$),X.toISOString()}function VX(Z,$){return j0(Z,$*1000)}function CX(Z,$){return j0(Z,$*60*1000)}function OX(Z,$){return j0(Z,$*60*60*1000)}function L8(Z,$){return j0(Z,$*24*60*60*1000)}function NX(Z,$){return L8(Z,$*7)}function EX(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 TX(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 SX(Z,$){return Math.floor(N1(Z,$)/1000)}function kX(Z,$){return Math.floor(N1(Z,$)/60000)}function gX(Z,$){return Math.floor(N1(Z,$)/3600000)}function bX(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 vX(Z){return new Date(Z).getUTCHours()}function fX(Z){return new Date(Z).getUTCMinutes()}function yX(Z){return new Date(Z).getUTCSeconds()}function hX(Z){return new Date(Z).getUTCMilliseconds()}function xX(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 uX(Z,$){return M4(Z,$,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function dX(Z,$){return M4(Z,$,{year:"numeric",month:"short",day:"numeric"})}function lX(Z,$){return M4(Z,$,{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function mX(Z){return Z.slice(0,10)}function U8(Z,$){return N1(Z,$)<0}function q8(Z,$){return N1(Z,$)>0}function iX(Z,$){return N1(Z,$)===0}function pX(Z,$){return U8(Z,$)?Z:$}function nX(Z,$){return q8(Z,$)?Z:$}function cX(Z){return a1(r1(Z),R4(Z),_6(Z))}function oX(Z){return a1(r1(Z),R4(Z),_6(Z),23,59,59,999)}function sX(Z){return a1(r1(Z),R4(Z),1)}function aX(Z){let $=new Date(Z);return $.setUTCMonth($.getUTCMonth()+1,0),$.setUTCHours(23,59,59,999),$.toISOString()}function rX(Z){return a1(r1(Z),1,1)}function tX(Z){return a1(r1(Z),12,31,23,59,59,999)}var t1={isValid:jX,now:FX,from:a1,parse:_8,tryParse:PX,addMilliseconds:j0,addSeconds:VX,addMinutes:CX,addHours:OX,addDays:L8,addWeeks:NX,addMonths:EX,addYears:TX,diff:N1,diffSeconds:SX,diffMinutes:kX,diffHours:gX,diffDays:bX,year:r1,month:R4,day:_6,hour:vX,minute:fX,second:yX,millisecond:hX,dayOfWeek:xX,toLocal:M4,format:uX,formatDate:dX,formatTime:lX,toDate:mX,isBefore:U8,isAfter:q8,isEqual:iX,min:pX,max:nX,startOfDay:cX,endOfDay:oX,startOfMonth:sX,endOfMonth:aX,startOfYear:rX,endOfYear:tX};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 eX(){return t1.toDate(t1.now())}function ZQ(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 $Q(Z){try{return D8(Z)}catch{return null}}function w4(Z,$){let X=I8(Z);return t1.toDate(t1.addDays(X,$))}function XQ(Z,$){return w4(Z,$*7)}function QQ(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 HQ(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 KQ(Z,$){let X=X1(Z),Q=E1(Z),H=X1($),K=E1($);return(X-H)*12+(Q-K)}function YQ(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 zQ(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 GQ(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 WQ(Z){return A6(Z)?366:365}function I8(Z){return Z+"T00:00:00.000Z"}function JQ(Z){return Math.floor(new Date(Z+"T00:00:00Z").getTime()/1000)}function _Q(Z){let $=new Date(Z*1000);return _1($.getUTCFullYear(),$.getUTCMonth()+1,$.getUTCDate())}function I6(Z,$){let X=new Date(Z+"T00:00:00Z"),Q={timeZone:"UTC",...$};return new Intl.DateTimeFormat(void 0,Q).format(X)}function LQ(Z){return I6(Z,{year:"numeric",month:"long",day:"numeric"})}function UQ(Z){return I6(Z,{year:"numeric",month:"short",day:"numeric"})}function qQ(Z,$){return Z<$}function DQ(Z,$){return Z>$}function AQ(Z,$){return Z===$}function IQ(Z,$){return Z<$?Z:$}function BQ(Z,$){return Z>$?Z:$}function RQ(Z,$,X){return Z>=$&&Z<=X}function MQ(Z){return _1(X1(Z),E1(Z),1)}function wQ(Z){let $=X1(Z),X=E1(Z);return _1($,X,F0($,X))}function jQ(Z){let X=(D6(Z)-1)*3+1;return _1(X1(Z),X,1)}function FQ(Z){let X=D6(Z)*3;return _1(X1(Z),X,F0(X1(Z),X))}function PQ(Z){return _1(X1(Z),1,1)}function VQ(Z){return _1(X1(Z),12,31)}function CQ(Z){let $=q6(Z);return w4(Z,-($-1))}function OQ(Z){let $=q6(Z);return w4(Z,7-$)}var NQ={isValid:L6,today:eX,todayIn:ZQ,from:_1,parse:D8,tryParse:$Q,addDays:w4,addWeeks:XQ,addMonths:QQ,addYears:HQ,diff:A8,diffMonths:KQ,diffYears:YQ,year:X1,month:E1,day:U6,dayOfWeek:q6,weekOfYear:zQ,dayOfYear:GQ,quarter:D6,isLeapYear:A6,daysInMonth:F0,daysInYear:WQ,toTimestamp:I8,toUnix:JQ,fromUnix:_Q,format:I6,formatLong:LQ,formatShort:UQ,isBefore:qQ,isAfter:DQ,isEqual:AQ,min:IQ,max:BQ,isBetween:RQ,startOfMonth:MQ,endOfMonth:wQ,startOfQuarter:jQ,endOfQuarter:FQ,startOfYear:PQ,endOfYear:VQ,startOfWeek:CQ,endOfWeek:OQ};export{f$ as xmlParse,o4 as wrap,e5 as whileLoop,E$ as vectorSearch,z$ as varsLet,Y$ as varsImport,G$ as varsExport,Q$ as varSet,K$ as varGet,c4 as validateArgs,u$ as uuid,O4 as typeToString,p1 as typeOf,l1 as typeDescriptorToTS,$$ as tryCatch,sH as transpileWithCache,U0 as transpileToJS,k$ as transpileCode,A4 as transpile,Y0 as transformFunction,aH as tjsWithCache,oH as tjs,GZ as testUtils,B$ as template,v0 as stripTjsPreamble,b0 as stripModuleSyntax,O$ as storeSet,N$ as storeQuery,i$ as storeProcedure,C$ as storeGet,A$ as split,v5 as setGlobalCache,J1 as seq,W$ as scope,b1 as runtime,g$ as runCode,Z$ as ret,E as resolveValue,$6 as resolveProcedureToken,p$ as releaseProcedure,K7 as registerWasmBlock,R$ as regexMatch,L$ as reduce,x$ as random,q$ as push,s1 as procedureStore,S0 as preprocess,M$ as pick,n6 as parseReturnType,P1 as parseParameter,M1 as parse,w$ as omit,j$ as merge,y$ as memoize,J$ as map,S8 as lookupVariable,T$ as llmPredict,h5 as lint,D$ as len,F$ as keys,v$ as jsonStringify,b$ as jsonParse,I$ as join,h4 as isValidUrl,x4 as isValidTimestamp,u4 as isValidLegalDate,C1 as isRuntimeType,Z6 as isProcedureToken,w1 as isError,l5 as isAgentError,H7 as instantiateWasm,U5 as installRuntime,H1 as inferTypeFromValue,t5 as iff,k5 as hashSourceSync,z4 as hashSource,X6 as hash,tH as getToolDefinitions,K6 as getStoreCapabilityDefault,TK as getStandardCapabilities,i as getLocation,s7 as getLLMCapability,G4 as getGlobalCache,wX as getBatteries,d5 as generateDocsMarkdown,O7 as generateDocs,sZ as generateDTS,T5 as fromTS,U$ as find,_$ as filter,V$ as fetch,E4 as extractTests,Q0 as extractTDoc,A1 as extractLiteralValue,t6 as expectFunction,c as evaluateExpr,X$ as errorAtom,B1 as error,q5 as emitRuntimeWrapper,b as defineAtom,O1 as createChildScope,G1 as createChildContext,rH as createAgent,U4 as coreAtoms,H$ as constSet,l$ as consoleWarn,d$ as consoleLog,m$ as consoleError,gZ as compileWasmBlocks,h0 as compileToWasm,n$ as clearExpiredProcedures,v1 as checkType,h$ as cache,F1 as builtins,MK as batteryAtoms,SK as batteries,r6 as assertFunction,nH as ajs,S$ as agentRun,r0 as Union,e as TypedBuilder,T8 as TypeError,o as Type,m 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,S5 as Schema,QX as SafeFunction,e4 as PROCEDURE_TOKEN_PREFIX,a0 as Optional,s0 as Nullable,a4 as MetadataCache,W6 as LocalModels,l4 as LegalDateType,NQ as LegalDate,i1 as Generic,q0 as FunctionPredicate,XX as Eval,$4 as Enum,m5 as DEFAULT_PROCEDURE_TTL,i5 as DEFAULT_MAX_AST_SIZE,H6 as AgentVM,Y1 as AgentError,t$ as Agent,NH as A99};
|
|
425
425
|
|
|
426
|
-
//# debugId=
|
|
426
|
+
//# debugId=E33716D171D95B3164756E2164756E21
|