howtofixcli 0.4.14 → 0.4.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.
Files changed (2) hide show
  1. package/dist/main.js +89 -88
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -1,48 +1,48 @@
1
1
  #!/usr/bin/env node
2
- var PS=Object.defineProperty;var m=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Lt=(e,t)=>{for(var n in t)PS(e,n,{get:t[n],enumerable:!0})};function Vl(e){return e===void 0?void 0:e.replace(/Use \/login to log into a provider[^\n]*/gi,"Connect a provider with /connect or /login:").replace(/^[ \t]*\S*pi-coding-agent[\\/]docs[\\/][^\n]*$/gim,"").replace(/\bpi-coding-agent\b/gi,"the harness").replace(/\n{3,}/g,`
2
+ var AS=Object.defineProperty;var m=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Lt=(e,t)=>{for(var n in t)AS(e,n,{get:t[n],enumerable:!0})};function Yl(e){return e===void 0?void 0:e.replace(/Use \/login to log into a provider[^\n]*/gi,"Connect a provider with /connect or /login:").replace(/^[ \t]*\S*pi-coding-agent[\\/]docs[\\/][^\n]*$/gim,"").replace(/\bpi-coding-agent\b/gi,"the harness").replace(/\n{3,}/g,`
3
3
 
4
- `).trim()}var yt,Nr,Hl,Jl,Mo=m(()=>{yt="HowToFix",Nr="0.4.14",Hl=["You are HowToFix, a coding agent. The user wants the actual fix, not a tour of the problem.","Lead with the diagnosis in one or two sentences, then change the code. Prefer the smallest correct change over a rewrite.","When you edit files, say which file and why in a short line. Do not narrate tool calls. Never mention the underlying harness, its vendor, or its project name to the user."].join(`
5
- `);Jl=["# Project notes","","## What this is","","## Commands","- build:","- test:","","## Conventions","-",""].join(`
6
- `)});var Ql={};Lt(Ql,{AGENTS_STORE_DIR:()=>qr,AGENT_DIR:()=>Xe,CUBENCE_CACHE_PATH:()=>bu,WORKFLOWS_DIR:()=>Iu,pinAgentDir:()=>$u});import{homedir as AS}from"node:os";import{join as Zs,resolve as RS}from"node:path";function OS(){let e=(process.env.HOWTOFIX_HOME??process.env.HOME??"").trim();return RS(e||AS())}function $u(){process.env.PI_CODING_AGENT_DIR=Xe}var Xe,qr,bu,Iu,Gn=m(()=>{Xe=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||Zs(OS(),".howtofix","agent"),qr=Zs(Xe,"agents"),bu=Zs(Xe,"cubence-cache.json"),Iu=Zs(Xe,"workflows")});import{closeSync as MS,fsyncSync as CS,openSync as LS,renameSync as ed,rmSync as wu,writeSync as FS}from"node:fs";import{dirname as jS,join as DS}from"node:path";function Ze(e,t){let n=DS(jS(e),`.${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.tmp`),r=LS(n,"w");try{FS(r,t),CS(r)}finally{MS(r)}try{ed(n,e)}catch(o){let s=o.code;if(s!=="EPERM"&&s!=="EBUSY"&&s!=="EACCES")throw wu(n,{force:!0}),o;wu(e,{force:!0});try{ed(n,e)}catch(a){throw wu(n,{force:!0}),a}}}var Wn=m(()=>{});var id={};Lt(id,{DEFAULT_CONTEXT_WINDOW:()=>od,HOWTOFIX_BASE_URL:()=>Qs,HOWTOFIX_CONSOLE_URL:()=>ei,HOWTOFIX_MODEL_COMPAT:()=>Eu,HOWTOFIX_PROVIDERS:()=>ku,HTTP_IDLE_TIMEOUT_MS:()=>rd,applyCompat:()=>ni,checkAccount:()=>Ru,countNewModels:()=>Pu,ensureGatewaySettings:()=>US,isHowtofixProvider:()=>Co,looksLikeToken:()=>vu,maskToken:()=>ti,mergeModels:()=>Su,newProviderEntry:()=>Tu,parseModelIds:()=>sd,probeModel:()=>Au,repairGatewayModels:()=>_S});import{existsSync as NS,mkdirSync as qS,readFileSync as td}from"node:fs";import{join as nd}from"node:path";function Tu(){return{baseUrl:Qs,api:"openai-completions"}}function _S(e){let t=nd(e,"models.json"),n;try{n=JSON.parse(td(t,"utf8"))}catch{return 0}let r=n.providers;if(!r||typeof r!="object")return 0;let o=0;for(let s of ku){let a=r[s];if(!a||!Array.isArray(a.models))continue;let p=ni(a.models);p.changed!==0&&(a.models=p.models,o+=p.changed)}if(o===0)return 0;try{Ze(t,`${JSON.stringify(n,null,2)}
7
- `)}catch{return 0}return o}function US(e){let t=nd(e,"settings.json"),n={};try{let r=td(t,"utf8"),o=JSON.parse(r);o&&typeof o=="object"&&!Array.isArray(o)&&(n=o)}catch{if(NS(t))return!1}if("httpIdleTimeoutMs"in n)return!1;n.httpIdleTimeoutMs=rd;try{qS(e,{recursive:!0}),Ze(t,`${JSON.stringify(n,null,2)}
8
- `)}catch{return!1}return!0}function ti(e){let t=e.trim();return t.length<=10?"***":`${t.slice(0,6)}\u2026${t.slice(-4)}`}function vu(e){return/^sk-[A-Za-z0-9_-]{8,}$/.test(e.trim())}function sd(e){let t=(()=>{if(Array.isArray(e))return e;if(e&&typeof e=="object"){let r=e;if(Array.isArray(r.data))return r.data;if(Array.isArray(r.models))return r.models}return[]})(),n=[];for(let r of t){let o=typeof r=="string"?r:r&&typeof r=="object"&&typeof r.id=="string"?r.id:void 0;o&&!n.includes(o)&&n.push(o)}return n}function Co(e){return ku.includes(e)}function Su(e,t){let n=new Set(e.map(o=>o.id)),r=[...e];for(let o of t)n.has(o)||(n.add(o),r.push({id:o,contextWindow:od,compat:{...Eu}}));return r}function ni(e){let t=0;return{models:e.map(r=>r.compat?.supportsDeveloperRole===!1?r:(t++,{...r,compat:{...r.compat,...Eu}})),changed:t}}function Pu(e,t){let n=new Set(e.map(r=>r.id));return t.filter(r=>!n.has(r)).length}async function Au(e,t,n){let r=(n?.baseUrl??Qs).replace(/\/+$/,""),o=n?.fetchImpl??fetch,s=n?.timeoutMs??1e4,a=new AbortController,p=setTimeout(()=>a.abort(),s);try{let c=await o(`${r}/chat/completions`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({model:e,messages:[{role:"user",content:"hi"}],max_tokens:1}),signal:a.signal});if(c.ok)return{ok:!0,detail:"ok"};let h=await c.text().catch(()=>"");return{ok:!1,detail:/"message"\s*:\s*"([^"]{0,80})/.exec(h)?.[1]??`HTTP ${c.status}`}}catch(c){return{ok:!1,detail:c instanceof Error&&c.name==="AbortError"?"timed out":"unreachable"}}finally{clearTimeout(p)}}async function Ru(e,t){let n=(t?.baseUrl??Qs).replace(/\/+$/,""),r=t?.fetchImpl??fetch,o=t?.timeoutMs??15e3,s=e.trim();if(!s)return{ok:!1,models:[],message:"no token given"};let a=new AbortController,p=setTimeout(()=>a.abort(),o);try{let c=await r(`${n}/models`,{headers:{Authorization:`Bearer ${s}`},signal:a.signal});if(c.status===401)return{ok:!1,models:[],message:"the gateway rejected that token (401). Check it in the Console, or make a new one."};if(c.status===403)return{ok:!1,models:[],message:"that token is not allowed to list models (403). The Console shows what a token may call."};if(!c.ok)return{ok:!1,models:[],message:`the gateway answered ${c.status}`};let h=sd(await c.json());return h.length===0?{ok:!1,models:[],message:"the token works but the gateway listed no models"}:{ok:!0,models:h,message:`${h.length} models available to this token`}}catch(c){let h=c instanceof Error&&c.name==="AbortError";return{ok:!1,models:[],message:h?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(p)}}var Qs,ei,ku,rd,Eu,od,Ou=m(()=>{Wn();Qs="https://api.howtofix.id/v1",ei="https://howtofix.id/console/token",ku=["howtofix","howtofix-free"];rd=9e4;Eu={supportsDeveloperRole:!1},od=128e3});var ad={};Lt(ad,{expandFileReferences:()=>Mu});import{readFileSync as KS,statSync as GS}from"node:fs";import{isAbsolute as WS,resolve as zS}from"node:path";function Mu(e,t){return e.replace(/(^|\s)@([^\s]+)/g,(n,r,o)=>{let s=o.replace(/[),.;:]+$/,""),a=o.slice(s.length),p=WS(s)?s:zS(t,s);try{let c=GS(p);if(!c.isFile()||c.size===0||c.size>BS)return n;let h=KS(p);return h.includes(0)?n:`${r}<file name="${p}">
4
+ `).trim()}var yt,fn,Jl,Xl,Mo=m(()=>{yt="HowToFix",fn="0.4.16",Jl=["You are HowToFix, a coding agent. The user wants the actual fix, not a tour of the problem.","Lead with the diagnosis in one or two sentences, then change the code. Prefer the smallest correct change over a rewrite.","When you edit files, say which file and why in a short line. Do not narrate tool calls. Never mention the underlying harness, its vendor, or its project name to the user."].join(`
5
+ `);Xl=["# Project notes","","## What this is","","## Commands","- build:","- test:","","## Conventions","-",""].join(`
6
+ `)});var td={};Lt(td,{AGENTS_STORE_DIR:()=>qr,AGENT_DIR:()=>Xe,CUBENCE_CACHE_PATH:()=>$u,WORKFLOWS_DIR:()=>wu,pinAgentDir:()=>ku});import{homedir as RS}from"node:os";import{join as ei,resolve as OS}from"node:path";function MS(){let e=(process.env.HOWTOFIX_HOME??process.env.HOME??"").trim();return OS(e||RS())}function ku(){process.env.PI_CODING_AGENT_DIR=Xe}var Xe,qr,$u,wu,Wn=m(()=>{Xe=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||ei(MS(),".howtofix","agent"),qr=ei(Xe,"agents"),$u=ei(Xe,"cubence-cache.json"),wu=ei(Xe,"workflows")});import{closeSync as CS,fsyncSync as LS,openSync as FS,renameSync as nd,rmSync as Tu,writeSync as jS}from"node:fs";import{dirname as DS,join as NS}from"node:path";function Ze(e,t){let n=NS(DS(e),`.${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.tmp`),r=FS(n,"w");try{jS(r,t),LS(r)}finally{CS(r)}try{nd(n,e)}catch(o){let s=o.code;if(s!=="EPERM"&&s!=="EBUSY"&&s!=="EACCES")throw Tu(n,{force:!0}),o;Tu(e,{force:!0});try{nd(n,e)}catch(a){throw Tu(n,{force:!0}),a}}}var zn=m(()=>{});var md={};Lt(md,{DEFAULT_CONTEXT_WINDOW:()=>id,HOWTOFIX_BASE_URL:()=>ti,HOWTOFIX_CONSOLE_URL:()=>ni,HOWTOFIX_MODEL_COMPAT:()=>Su,HOWTOFIX_PROVIDERS:()=>Eu,HTTP_IDLE_TIMEOUT_MS:()=>sd,applyCompat:()=>oi,checkAccount:()=>Mu,countNewModels:()=>Ru,ensureGatewaySettings:()=>KS,isHowtofixProvider:()=>Co,looksLikeToken:()=>Pu,maskToken:()=>ri,mergeModels:()=>Au,newProviderEntry:()=>vu,parseModelIds:()=>ad,probeModel:()=>Ou,repairGatewayModels:()=>US});import{existsSync as qS,mkdirSync as _S,readFileSync as rd}from"node:fs";import{join as od}from"node:path";function vu(){return{baseUrl:ti,api:"openai-completions"}}function US(e){let t=od(e,"models.json"),n;try{n=JSON.parse(rd(t,"utf8"))}catch{return 0}let r=n.providers;if(!r||typeof r!="object")return 0;let o=0;for(let s of Eu){let a=r[s];if(!a||!Array.isArray(a.models))continue;let p=oi(a.models);p.changed!==0&&(a.models=p.models,o+=p.changed)}if(o===0)return 0;try{Ze(t,`${JSON.stringify(n,null,2)}
7
+ `)}catch{return 0}return o}function KS(e){let t=od(e,"settings.json"),n={};try{let r=rd(t,"utf8"),o=JSON.parse(r);o&&typeof o=="object"&&!Array.isArray(o)&&(n=o)}catch{if(qS(t))return!1}if("httpIdleTimeoutMs"in n)return!1;n.httpIdleTimeoutMs=sd;try{_S(e,{recursive:!0}),Ze(t,`${JSON.stringify(n,null,2)}
8
+ `)}catch{return!1}return!0}function ri(e){let t=e.trim();return t.length<=10?"***":`${t.slice(0,6)}\u2026${t.slice(-4)}`}function Pu(e){return/^sk-[A-Za-z0-9_-]{8,}$/.test(e.trim())}function ad(e){let t=(()=>{if(Array.isArray(e))return e;if(e&&typeof e=="object"){let r=e;if(Array.isArray(r.data))return r.data;if(Array.isArray(r.models))return r.models}return[]})(),n=[];for(let r of t){let o=typeof r=="string"?r:r&&typeof r=="object"&&typeof r.id=="string"?r.id:void 0;o&&!n.includes(o)&&n.push(o)}return n}function Co(e){return Eu.includes(e)}function Au(e,t){let n=new Set(e.map(o=>o.id)),r=[...e];for(let o of t)n.has(o)||(n.add(o),r.push({id:o,contextWindow:id,compat:{...Su}}));return r}function oi(e){let t=0;return{models:e.map(r=>r.compat?.supportsDeveloperRole===!1?r:(t++,{...r,compat:{...r.compat,...Su}})),changed:t}}function Ru(e,t){let n=new Set(e.map(r=>r.id));return t.filter(r=>!n.has(r)).length}async function Ou(e,t,n){let r=(n?.baseUrl??ti).replace(/\/+$/,""),o=n?.fetchImpl??fetch,s=n?.timeoutMs??1e4,a=new AbortController,p=setTimeout(()=>a.abort(),s);try{let c=await o(`${r}/chat/completions`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({model:e,messages:[{role:"user",content:"hi"}],max_tokens:1}),signal:a.signal});if(c.ok)return{ok:!0,detail:"ok"};let h=await c.text().catch(()=>"");return{ok:!1,detail:/"message"\s*:\s*"([^"]{0,80})/.exec(h)?.[1]??`HTTP ${c.status}`}}catch(c){return{ok:!1,detail:c instanceof Error&&c.name==="AbortError"?"timed out":"unreachable"}}finally{clearTimeout(p)}}async function Mu(e,t){let n=(t?.baseUrl??ti).replace(/\/+$/,""),r=t?.fetchImpl??fetch,o=t?.timeoutMs??15e3,s=e.trim();if(!s)return{ok:!1,models:[],message:"no token given"};let a=new AbortController,p=setTimeout(()=>a.abort(),o);try{let c=await r(`${n}/models`,{headers:{Authorization:`Bearer ${s}`},signal:a.signal});if(c.status===401)return{ok:!1,models:[],message:"the gateway rejected that token (401). Check it in the Console, or make a new one."};if(c.status===403)return{ok:!1,models:[],message:"that token is not allowed to list models (403). The Console shows what a token may call."};if(!c.ok)return{ok:!1,models:[],message:`the gateway answered ${c.status}`};let h=ad(await c.json());return h.length===0?{ok:!1,models:[],message:"the token works but the gateway listed no models"}:{ok:!0,models:h,message:`${h.length} models available to this token`}}catch(c){let h=c instanceof Error&&c.name==="AbortError";return{ok:!1,models:[],message:h?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(p)}}var ti,ni,Eu,sd,Su,id,Cu=m(()=>{zn();ti="https://api.howtofix.id/v1",ni="https://howtofix.id/console/token",Eu=["howtofix","howtofix-free"];sd=9e4;Su={supportsDeveloperRole:!1},id=128e3});var ud={};Lt(ud,{expandFileReferences:()=>Lu});import{readFileSync as GS,statSync as WS}from"node:fs";import{isAbsolute as zS,resolve as BS}from"node:path";function Lu(e,t){return e.replace(/(^|\s)@([^\s]+)/g,(n,r,o)=>{let s=o.replace(/[),.;:]+$/,""),a=o.slice(s.length),p=zS(s)?s:BS(t,s);try{let c=WS(p);if(!c.isFile()||c.size===0||c.size>HS)return n;let h=GS(p);return h.includes(0)?n:`${r}<file name="${p}">
9
9
  ${h.toString("utf8").trimEnd()}
10
- </file>${a}`}catch{return n}})}var BS,Cu=m(()=>{BS=64*1024});function VS(e){let t=new WeakSet,n=r=>{if(r===null||typeof r!="object")return r;if(t.has(r))return"[circular]";if(t.add(r),Array.isArray(r))return r.map(n);let o=r,s={};for(let a of Object.keys(o).sort())s[a]=n(o[a]);return s};try{return JSON.stringify(n(e))??""}catch{return""}}function md(e,t){if(HS.has(e))return;let n=`${e}\0${VS(t)}`,r=Lo&&Lo.signature===n?Lo.count+1:1;return Lo={signature:n,count:r},r>=3?{repeats:r}:void 0}function ud(){Lo=void 0}function pd(e,t){return`Refused: ${e} has been called ${t} times in a row with identical arguments, so the last attempt cannot have changed anything. Do not repeat it. Either use different arguments, use a different tool, or stop and report what you found and what is blocking you.`}var HS,Lo,Lu=m(()=>{HS=new Set(["think"])});function cd(e,t){switch(t){case"number":return/^\d+$/.test(e);case"string":return!0;default:return!1}}function YS(e,t,n){let r=t;for(;r<e.length;){let o=e[r];if(!o){r++;continue}if(o==="--")break;if(JS.test(o)){let s=o.includes("="),[a="",...p]=o.split("="),c=n.safeFlags[a];if(!c)return!1;if(c==="none"){if(s)return!1;r++;continue}if(c==="optional"){r++;continue}if(s){if(!cd(p.join("="),c))return!1;r++;continue}let h=e[r+1];if(h===void 0||!cd(h,c))return!1;r+=2;continue}if(n.allowPositional===!1)return!1;r++}return!0}function nP(e){if(!/\$\(|`|\$\{|>|</.test(e)&&!/(?<!&)&(?!&)/.test(e))return e.split(/\|\||&&|;|\|/).map(t=>t.trim()).filter(t=>t.length>0)}function rP(e){let t=e.some(r=>/^cd\b/.test(r)),n=e.some(r=>/^git\b/.test(r));return t&&n}function oP(e){let t=[],n=/'[^']*'|"[^"]*"|\S+/g;for(let r of e.match(n)??[])t.push(r.length>=2&&/^['"]/.test(r)?r.slice(1,-1):r);return t}function sP(e){if(e.length===0)return;let[t="",n=""]=e,r=`${t} ${n}`;if(t==="git"&&n==="config"){let o=e[2];return o==="--get"||o==="--get-all"||o==="--get-regexp"||o==="-l"||o==="--list"?{name:"git config --get",rest:e.slice(3)}:void 0}return t==="git"&&n==="stash"?e[2]==="list"?{name:"git stash list",rest:e.slice(3)}:void 0:t==="git"&&n==="worktree"?e[2]==="list"?{name:"git worktree list",rest:e.slice(3)}:void 0:t==="git"&&dd[`git ${n}`]?{name:`git ${n}`,rest:e.slice(2)}:fd[r]?{name:r,rest:e.slice(2)}:{name:t,rest:e.slice(1)}}function aP(e){let t=oP(e),n=sP(t);if(!n)return!1;let{name:r,rest:o}=n;if(iP.has(r)&&o.some(a=>a.includes("$")||a.includes("`")))return!1;let s=dd[r]??eP[r]??fd[r];return s?s.dangerous?.(o)?!1:YS(o,0,s):!!(QS.includes(r)||tP.includes(r))}function ii(e){let t=nP(e);return!t||t.length===0||rP(t)?!1:t.every(aP)}var JS,XS,ri,oi,Fu,si,ju,ld,ZS,dd,QS,eP,fd,tP,iP,Du=m(()=>{JS=/^-[a-zA-Z0-9_-]/;XS={"--all":"none","--branches":"none","--tags":"none","--remotes":"none"},ri={"--oneline":"none","--graph":"none","--decorate":"none","--no-decorate":"none","--date":"string","--relative-date":"none"},oi={"--max-count":"number","-n":"number"},Fu={"--stat":"none","--numstat":"none","--shortstat":"none","--name-only":"none","--name-status":"none"},si={"--color":"none","--no-color":"none"},ju={"--patch":"none","-p":"none","--no-patch":"none","--no-ext-diff":"none","-s":"none"},ld={"--author":"string","--committer":"string","--grep":"string"},ZS={"-l":"none","--list":"none","-a":"none","-r":"none","-v":"none","-vv":"none","-i":"none"},dd={"git status":{safeFlags:{"-s":"none","--short":"none","-b":"none","--branch":"none","-u":"optional","--untracked-files":"optional","--porcelain":"optional","--ignored":"none","--long":"none","--no-renames":"none",...si}},"git diff":{safeFlags:{...Fu,...si,...ju,"--cached":"none","--staged":"none","--word-diff":"none","--check":"none","--quiet":"none","--exit-code":"none","--no-renames":"none","--diff-filter":"string","--relative":"string","--full-index":"none","--binary":"none","--abbrev":"number","--unified":"number","-U":"number","--ignore-all-space":"none","--ignore-space-change":"none","--ignore-blank-lines":"none"}},"git log":{safeFlags:{...ri,...oi,...Fu,...si,...ju,...ld,...XS,"--since":"string","--after":"string","--until":"string","--before":"string","--follow":"none","--no-merges":"none","--merges":"none","--first-parent":"none","--reverse":"none","--skip":"number","--all":"none","--format":"string","--pretty":"string","--abbrev-commit":"none","--no-abbrev-commit":"none","--left-right":"none"}},"git show":{safeFlags:{...Fu,...si,...ju,...ri,"--format":"string","--pretty":"string","--abbrev-commit":"none","--no-patch":"none","-q":"none"}},"git shortlog":{safeFlags:{...oi,"-s":"none","--summary":"none","-n":"none","--numbered":"none","-e":"none","--email":"none","-sn":"none","-ns":"none","--all":"none"}},"git reflog":{safeFlags:{...oi,...ri,...ld,"--all":"none","--date":"string"}},"git blame":{safeFlags:{"-L":"string","-w":"none","-c":"none","-n":"none","-s":"none","-e":"none","-p":"none","--porcelain":"none","--line-porcelain":"none","--date":"string","--since":"string","-C":"none","-M":"none"}},"git ls-files":{safeFlags:{"-m":"none","--modified":"none","-o":"none","--others":"none","-i":"none","--ignored":"none","-s":"none","--stage":"none","-d":"none","--deleted":"none","-c":"none","--cached":"none","-u":"none","--unmerged":"none","--exclude-standard":"none","--error-unmatch":"none","-z":"none"}},"git ls-remote":{safeFlags:{"--heads":"none","--tags":"none","--refs":"none","--symref":"none"}},"git rev-parse":{safeFlags:{"--short":"optional","--abbrev-ref":"none","--verify":"none","--quiet":"none","--git-dir":"none","--show-toplevel":"none","--show-cdup":"none","--is-inside-work-tree":"none","--is-bare-repository":"none","--symbolic-full-name":"none","--abbrev":"optional"}},"git rev-list":{safeFlags:{...oi,"--count":"none","--all":"none","--objects":"none","--reverse":"none","--max-parents":"number","--min-parents":"number","--no-merges":"none","--first-parent":"none","--abbrev-commit":"none"}},"git describe":{safeFlags:{"--tags":"none","--all":"none","--long":"none","--always":"none","--dirty":"none","--abbrev":"number","--match":"string","--exclude":"string","--first-parent":"none"}},"git cat-file":{safeFlags:{"-p":"none","-t":"none","-s":"none","-e":"none","--batch-check":"none"}},"git for-each-ref":{safeFlags:{"--format":"string","--count":"number","--sort":"string","--points-at":"string","--merged":"string","--no-merged":"string"}},"git grep":{safeFlags:{"-n":"none","--line-number":"none","-i":"none","--ignore-case":"none","-l":"none","--files-with-matches":"none","-c":"none","--count":"none","-w":"none","--word-regexp":"none","-E":"none","--extended-regexp":"none","-F":"none","--fixed-strings":"none","--cached":"none","--untracked":"none","-e":"string","--and":"none","--or":"none","--not":"none"}},"git merge-base":{safeFlags:{"--all":"none","--is-ancestor":"none","--fork-point":"none","--octopus":"none"}},"git stash list":{safeFlags:{...ri}},"git worktree list":{safeFlags:{"--porcelain":"none","-v":"none","--verbose":"none","-z":"none"}},"git branch":{safeFlags:{...ZS,"--merged":"string","--no-merged":"string","--contains":"string","--no-contains":"string","--sort":"string","--format":"string","--points-at":"string","--column":"none"},dangerous:e=>{let t=new Set(["--merged","--no-merged","--contains","--no-contains","--sort","--format","--points-at"]),n=!1;for(let r of e){if(n){n=!1;continue}if(t.has(r)){n=!0;continue}if(!r.startsWith("-"))return!0}return!1}},"git tag":{safeFlags:{"-l":"none","--list":"none","-n":"number","--contains":"string","--no-contains":"string","--merged":"string","--sort":"string","--points-at":"string","--column":"none"},dangerous:e=>{let t=new Set(["--contains","--no-contains","--merged","--sort","--points-at"]),n=!1;for(let r of e){if(n){n=!1;continue}if(t.has(r)){n=!0;continue}if(!r.startsWith("-"))return!0}return!1}},"git remote":{safeFlags:{"-v":"none","--verbose":"none"},dangerous:e=>e.some(t=>!t.startsWith("-"))},"git config --get":{safeFlags:{"--local":"none","--global":"none","--system":"none","--get-all":"none","--get-regexp":"none","--list":"none","-l":"none","--show-origin":"none","--null":"none","-z":"none"}}},QS=["ls","pwd","cat","head","tail","wc","which","whoami","date","echo","sleep","true","false","type","test","seq","basename","dirname","realpath","stat","file","du","df","tree","uname","hostname","id","groups","tty","cal","uptime","free","locale","printf","grep","rg","fd","jq","bat","column","paste","nl","expand","fold","fmt"],eP={find:{safeFlags:{"-name":"string","-iname":"string","-type":"string","-maxdepth":"number","-mindepth":"number","-newer":"string","-path":"string","-not":"none","-print":"none","-print0":"none","-empty":"none","-size":"string","-mtime":"number","-atime":"number","-perm":"string","-L":"none","-H":"none","-P":"none"},dangerous:e=>e.some(t=>/^-(delete|exec|execdir|ok|okdir|fprint0?|fls|fprintf)$/.test(t))},sort:{safeFlags:{"-n":"none","-r":"none","-u":"none","-k":"string","-t":"string","-f":"none","-h":"none","-V":"none","-s":"none","-c":"none","-m":"none","-b":"none","-z":"none"}},uniq:{safeFlags:{"-c":"none","-d":"none","-u":"none","-i":"none","-f":"number","-s":"number","-w":"number"}},cut:{safeFlags:{"-d":"string","-f":"string","-c":"string","-b":"string","-s":"none","--complement":"none","-z":"none"}},tr:{safeFlags:{"-d":"none","-s":"none","-c":"none"}},node:{safeFlags:{"-v":"none","--version":"none"},allowPositional:!1},python:{safeFlags:{"--version":"none"},allowPositional:!1},python3:{safeFlags:{"--version":"none"},allowPositional:!1},npm:{safeFlags:{"--version":"none","-v":"none"},allowPositional:!1},sed:{safeFlags:{"-n":"none","--quiet":"none","-e":"string","-E":"none","-r":"none","--regexp-extended":"none","-s":"none","-u":"none","-z":"none","--posix":"none"},dangerous:e=>e.some(t=>/^-i|^--in-place/.test(t)||/\b[we]\s/.test(t)||/^[we]$/.test(t))},awk:{safeFlags:{"-F":"string","-v":"string","-f":"string"},dangerous:e=>e.some(t=>/\bsystem\s*\(|\|\s*"|>\s*"/.test(t))}},fd={"npm ls":{safeFlags:{"--depth":"number","--json":"none","--long":"none","--parseable":"none","--all":"none","--prod":"none","--dev":"none","--omit":"string","--link":"none","--global":"none","-g":"none","--silent":"none"}},"npm view":{safeFlags:{"--json":"none","--registry":"string"}},"docker ps":{safeFlags:{"-a":"none","--all":"none","-q":"none","--quiet":"none","--no-trunc":"none","--format":"string","-n":"number","--last":"number","-s":"none","--size":"none","--filter":"string"}},"docker images":{safeFlags:{"-a":"none","--all":"none","-q":"none","--quiet":"none","--no-trunc":"none","--format":"string","--filter":"string","--digests":"none"}},"docker inspect":{safeFlags:{"--format":"string","-f":"string","-s":"none","--size":"none","--type":"string"}},"kubectl get":{safeFlags:{"-o":"string","--output":"string","-n":"string","--namespace":"string","-A":"none","--all-namespaces":"none","--no-headers":"none","-l":"string","--selector":"string","--show-labels":"none","-w":"none","--watch":"none","--sort-by":"string"}},"kubectl describe":{safeFlags:{"-n":"string","--namespace":"string","-l":"string","--selector":"string"}},"cargo tree":{safeFlags:{"--depth":"number","-e":"string","--edges":"string","--no-dev-dependencies":"none","--prefix":"string","-i":"string","--invert":"string","-p":"string","--package":"string"}},"go version":{safeFlags:{}}},tP=["cd","alias","history","arch","ip addr","ifconfig"];iP=new Set(["echo","printf"])});var wd={};Lt(wd,{APPROVAL_LABELS:()=>ai,APPROVAL_MODES:()=>_r,MODE_MAX_TIER:()=>gd,TIER_RANK:()=>Nu,createPermissionExtension:()=>Ku,criticalCommand:()=>hd,decideToolCall:()=>bd,describeToolCall:()=>Id,formatApprovalPrompt:()=>$d,getApprovalMode:()=>cP,isApprovalMode:()=>mP,isReadOnlyCommand:()=>ii,resolveTier:()=>xd,setApprovalMode:()=>_u,setApprovalPrompt:()=>Uu});function mP(e){return _r.includes(e)}function xd(e){let t=uP[e];return t||(e.startsWith("mcp__")?"write":"exec")}function hd(e){for(let{pattern:t,reason:n}of pP)if(t.test(e))return n}function _u(e){qu=e}function cP(){return qu}function Uu(e){yd=e}function bd(e,t,n){let r=typeof n?.command=="string"?n.command:"";if(t==="bash"||t==="powershell"){let s=hd(r);if(s)return{action:"deny",reason:`Refused in every mode: ${s}.`};if(ii(r))return{action:"run"}}let o=xd(t);return Nu[o]<=Nu[gd[e]]?{action:"run"}:{action:"prompt",reason:`this is a ${o}-tier tool`}}function Id(e,t){if(t&&typeof t=="object"){let n=t;if((e==="bash"||e==="powershell")&&typeof n.command=="string")return n.command;if((e==="edit"||e==="write")&&typeof n.path=="string"){let r=Array.isArray(n.edits)?` (${n.edits.length} edits)`:"";return`${n.path}${r}`}try{let r=JSON.stringify(n);if(r&&r!=="{}")return r.length>300?`${r.slice(0,297)}...`:r}catch{}}return e}function $d(e,t,n){let r=[`Allow tool: ${e}`];e.startsWith("mcp__")&&r.push("Origin: MCP server tool"),r.push(`Reason: ${n}`);let o=Id(e,t);return o!==e&&r.push(o),r.join(`
11
- `)}function Ku(){return e=>{e.on("tool_call",async t=>{let n=md(t.toolName,t.input);if(n)return{block:!0,reason:pd(t.toolName,n.repeats)};let r=qu,o=bd(r,t.toolName,t.input);if(o.action==="run")return;if(o.action==="deny")return{block:!0,reason:o.reason};if(!await yd(`${t.toolName} wants to run`,$d(t.toolName,t.input,o.reason)))return{block:!0,reason:`Blocked by the user (approval mode: ${r}).`}})}}var _r,ai,Nu,gd,uP,pP,qu,yd,mi=m(()=>{Lu();Du();Du();_r=["suggest","auto-edit","full-auto"],ai={suggest:"suggest: ask before every edit and command","auto-edit":"auto-edit: edits run, commands ask","full-auto":"full-auto: nothing asks"};Nu={read:0,write:1,exec:2},gd={suggest:"read","auto-edit":"write","full-auto":"exec"},uP={read:"read",grep:"read",find:"read",ls:"read",think:"read",ask:"read",todo:"read",context:"read",workflow:"exec",goal:"read",enter_plan_mode:"read",exit_plan_mode:"read",edit:"write",write:"write",bash:"exec",powershell:"exec",task:"exec"};pP=[{pattern:/\brm\s+(?:-[a-zA-Z]+\s+)*(?:\/|\/\*|~|\$HOME)(?:\s|$)/,reason:"recursive delete of the filesystem root or home"},{pattern:/\bmkfs(?:\.[a-z0-9]+)?\b/,reason:"filesystem format"},{pattern:/\bdd\b[^|;]*\bof=\/dev\/(?:sd|nvme|hd|vd)/,reason:"raw write to a block device"},{pattern:/:\s*\(\s*\)\s*\{.*\}\s*;\s*:/,reason:"fork bomb"},{pattern:/>\s*\/etc\/(?:passwd|shadow|sudoers)/,reason:"overwrite of a system account file"},{pattern:/\b(?:shutdown|reboot|halt|poweroff)\b/,reason:"host shutdown"}];qu="full-auto",yd=async()=>!1});function lP(e){return e.replace(/operating inside pi, a coding agent harness/gi,"operating as HowToFix, a coding agent harness").replace(/^Pi documentation \(read only when the user asks about[^\n]*\):?$/gim,"Harness documentation (internal reference; the user is never told the harness name):").replace(/\bpi itself\b/gi,"the harness itself").replace(/^- When reading pi docs or examples/m,"- When reading harness docs or examples").replace(/^- When working on pi topics/m,"- When working on harness topics").replace(/^- Always read pi \.md files/m,"- Always read the harness .md files").replace(/\bpi packages\b/gi,"harness packages").replace(/\bpi \.md files\b/gi,"harness .md files").replace(/\bpi docs\b/gi,"harness docs").replace(/^-\s*You can inspect PI_\* environment variables/m,"- You can inspect the harness's environment variables")}function fP(e){if(!e)return;let t=!1,n={...e};for(let r of dP){let o=n[r];if(typeof o!="string")continue;let s=lP(o);s!==o&&(n[r]=s,t=!0)}return t?n:void 0}function kd(){return e=>{e.on("context_with_system",async t=>{let n=t.messages[0];if(!n||n.role!=="system")return;let r=fP(n.sections);return r?{messages:t.messages.map(s=>s===n?{...n,sections:r}:s)}:void 0})}}var dP,Td=m(()=>{dP=["preamble","rules","docs","addendum"]});import{Type as Ur}from"@earendil-works/pi-ai";import{defineTool as Ed}from"@earendil-works/pi-coding-agent";function vd(e){Gu=e}var Gu,Sd,Pd,Wu=m(()=>{Sd=Ed({name:"think",label:"think",description:"Private scratchpad. The text is not shown to the user. Use it before a non-obvious step.",promptSnippet:"think: private notes, not shown to the user",parameters:Ur.Object({thoughts:Ur.String({description:"Private notes"})}),async execute(){return{content:[{type:"text",text:"noted"}],details:{recorded:!0}}}}),Pd=Ed({name:"ask",label:"ask",description:"Ask the user one question and wait for a selected answer. Use this instead of guessing when a choice blocks the task.",promptSnippet:"ask: ask the user to pick one option",parameters:Ur.Object({question:Ur.String(),options:Ur.Array(Ur.String(),{minItems:2})}),async execute(e,t){if(!Gu)return{content:[{type:"text",text:"cancelled"}],details:{answer:"cancelled"}};let n=await Gu(t.question,t.options);return{content:[{type:"text",text:n}],details:{answer:n}}}})});var en,lr=m(()=>{en={assign:0,create:0,clone:0,discard:0,update:0}});function dr(e,t,n){return e>=t&&e<=n}function Od(e){return e===8205}function gP(e){return dr(e,55296,56319)}function Ad(e){return dr(e,127462,127487)}function Md(e){return dr(e,65024,65039)}function Cd(e){return dr(e,768,879)||dr(e,6832,6911)||dr(e,7616,7679)||dr(e,65056,65071)}function ui(e){return e>65535?2:1}function Rd(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(Cd(n)||Md(n))t+=ui(n);else break}return t}function zu(e,t){let n=e.codePointAt(t),r=t+ui(n);for(r=Rd(e,r);r<e.length-1&&Od(e.codePointAt(r));){let o=e.codePointAt(r+1);r+=1+ui(o),r=Rd(e,r)}return Ad(n)&&r<e.length&&Ad(e.codePointAt(r))&&(r+=ui(e.codePointAt(r))),r}function Ld(e){return e>=768&&(gP(e)||Cd(e)||Md(e)||Od(e))}function Fd(e){let t=0,n=0;for(;n<e.length;)n=zu(e,n),t++;return t}function xP(e,t){let n=0,r=0;for(;r<e.length;)if(r=zu(e,r),++n>=t)return!0;return!1}function hP(e,t){let n=0,r=0;for(;r<e.length;)if(r=zu(e,r),++n>t)return!1;return!0}function jd(e,t){if(t===0)return!0;if(e.length<t)return!1;let n=0;for(;;){if(Ld(e.charCodeAt(n)))return xP(e,t);if(++n>=t)return!0}}function Dd(e,t){if(e.length<=t)return!0;let n=0;for(;;){if(Ld(e.charCodeAt(n)))return hP(e,t);if(++n>t)return!1}}var Nd=m(()=>{});var u={};Lt(u,{Counted:()=>CP,Entries:()=>jP,EntriesRegExp:()=>FP,Every:()=>AP,EveryAll:()=>RP,GraphemeCount:()=>vP,HasPropertyKey:()=>LP,IsArray:()=>jo,IsBigInt:()=>Fo,IsBoolean:()=>qd,IsClassInstance:()=>EP,IsConstructor:()=>bP,IsDeepEqual:()=>Vu,IsEqual:()=>re,IsFunction:()=>_d,IsGreaterEqualThan:()=>Kd,IsGreaterThan:()=>wP,IsInteger:()=>Bu,IsLessEqualThan:()=>Ud,IsLessThan:()=>kP,IsMaxLength:()=>SP,IsMinLength:()=>PP,IsMultipleOf:()=>TP,IsNull:()=>ci,IsNumber:()=>li,IsObject:()=>Do,IsObjectNotArray:()=>IP,IsString:()=>di,IsSymbol:()=>$P,IsUndefined:()=>Hu,IsUnsafePropertyKey:()=>Wd,IsValueLike:()=>Gd,Keys:()=>pi,ShiftLeft:()=>fi,Some:()=>OP,SomeAll:()=>MP,Symbols:()=>DP,Values:()=>NP});function jo(e){return Array.isArray(e)}function Fo(e){return re(typeof e,"bigint")}function qd(e){return re(typeof e,"boolean")}function bP(e){if(Hu(e)||!_d(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function _d(e){return re(typeof e,"function")}function Bu(e){return Number.isInteger(e)}function ci(e){return re(e,null)}function li(e){return Number.isFinite(e)}function IP(e){return Do(e)&&!jo(e)}function Do(e){return re(typeof e,"object")&&!ci(e)}function di(e){return re(typeof e,"string")}function $P(e){return re(typeof e,"symbol")}function Hu(e){return re(e,void 0)}function re(e,t){return e===t}function wP(e,t){return e>t}function kP(e,t){return e<t}function Ud(e,t){return e<=t}function Kd(e,t){return e>=t}function TP(e,t){if(Fo(e)||Fo(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!li(e)||Bu(e)&&1/t%1===0)return!0;let r=e%t;return Math.min(Math.abs(r),Math.abs(r-t),Math.abs(r+t))<n}function EP(e){if(!Do(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return ci(t)?!1:re(typeof t.constructor,"function")&&!(re(t.constructor,globalThis.Object)||re(t.constructor.name,"Object"))}function Gd(e){return Fo(e)||qd(e)||ci(e)||li(e)||di(e)||Hu(e)}function vP(e){return Fd(e)}function SP(e,t){return Dd(e,t)}function PP(e,t){return jd(e,t)}function AP(e,t,n){return e.every((r,o)=>o<t||n(r,o))}function RP(e,t,n){let r=!0;return e.forEach((o,s)=>{s>=t&&!n(o,s)&&(r=!1)}),r}function OP(e,t){return e.some((n,r)=>t(n,r))}function MP(e,t){let n=!1;return e.forEach((r,o)=>{t(r,o)&&(n=!0)}),n}function CP(e,t){return e.reduce((n,r,o)=>t(r,o)?++n:n,0)}function fi(e,t,n){return re(e.length,0)?n():t(e[0],e.slice(1))}function Wd(e){return re(e,"__proto__")||re(e,"constructor")||re(e,"prototype")}function LP(e,t){return Wd(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function FP(e){return pi(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function jP(e){return Object.entries(e)}function pi(e){return Object.getOwnPropertyNames(e)}function DP(e){return Object.getOwnPropertySymbols(e)}function NP(e){return Object.values(e)}function qP(e,t){if(!Do(t))return!1;let n=pi(e);return re(n.length,pi(t).length)&&n.every(r=>Vu(e[r],t[r]))}function _P(e,t){return jo(t)&&re(e.length,t.length)&&e.every((n,r)=>Vu(e[r],t[r]))}function Vu(e,t){return jo(e)?_P(e,t):Do(e)?qP(e,t):re(e,t)}var Kr=m(()=>{Nd()});var zd=m(()=>{Kr()});var zn={};Lt(zn,{IsBigInt64Array:()=>tA,IsBigUint64Array:()=>nA,IsBoolean:()=>KP,IsDate:()=>oA,IsFloat32Array:()=>QP,IsFloat64Array:()=>eA,IsInt16Array:()=>JP,IsInt32Array:()=>XP,IsInt8Array:()=>BP,IsMap:()=>iA,IsNumber:()=>GP,IsRegExp:()=>rA,IsSet:()=>sA,IsString:()=>WP,IsTypeArray:()=>zP,IsUint16Array:()=>YP,IsUint32Array:()=>ZP,IsUint8Array:()=>HP,IsUint8ClampedArray:()=>VP});function KP(e){return e instanceof Boolean}function GP(e){return e instanceof Number}function WP(e){return e instanceof String}function zP(e){return globalThis.ArrayBuffer.isView(e)}function BP(e){return e instanceof globalThis.Int8Array}function HP(e){return e instanceof globalThis.Uint8Array}function VP(e){return e instanceof globalThis.Uint8ClampedArray}function JP(e){return e instanceof globalThis.Int16Array}function YP(e){return e instanceof globalThis.Uint16Array}function XP(e){return e instanceof globalThis.Int32Array}function ZP(e){return e instanceof globalThis.Uint32Array}function QP(e){return e instanceof globalThis.Float32Array}function eA(e){return e instanceof globalThis.Float64Array}function tA(e){return e instanceof globalThis.BigInt64Array}function nA(e){return e instanceof globalThis.BigUint64Array}function rA(e){return e instanceof globalThis.RegExp}function oA(e){return e instanceof globalThis.Date}function sA(e){return e instanceof globalThis.Set}function iA(e){return e instanceof globalThis.Map}var Bd=m(()=>{});var Hd=m(()=>{Kr()});var A=m(()=>{zd();Bd();Hd();Kr();Kr()});var tn={};Lt(tn,{Get:()=>pA,Reset:()=>mA,Set:()=>uA});function mA(){fn.immutableTypes=!1,fn.maxErrors=8,fn.maxInstantiationCount=128,fn.useAcceleration=!0,fn.exactOptionalPropertyTypes=!1,fn.enumerableKind=!1,fn.correctiveParse=!1,fn.unionPrioritySort=!0}function uA(e){for(let t of u.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(fn,t,{value:n})}}function pA(){return fn}var fn,Vd=m(()=>{A();fn={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0}});var fr=m(()=>{Vd()});function Bn(e){return tn.Get().immutableTypes?Object.freeze(e):e}var No=m(()=>{fr()});function cA(e,t){return en.assign+=1,Bn({...e,...t})}var Jd=m(()=>{lr();No()});function lA(e){return u.HasPropertyKey(e,"~kind")||u.HasPropertyKey(e,"~unsafe")}function dA(e){let t={};for(let n of u.Keys(e)){if(u.IsUnsafePropertyKey(n))continue;let r=Object.getOwnPropertyDescriptor(e,n);r.value=gr(r.value),u.IsEqual(r.enumerable,!0)?t[n]=r.value:Object.defineProperty(t,n,r)}return t}function fA(e){let t={};for(let n of u.Keys(e))u.IsUnsafePropertyKey(n)||(t[n]=gr(e[n]));for(let n of u.Symbols(e))t[n]=gr(e[n]);return t}function gA(e){return u.IsClassInstance(e)?e:lA(e)?dA(e):fA(e)}function xA(e){return e.map(t=>gr(t))}function hA(e){return e.slice()}function yA(e){return new RegExp(e.source,e.flags)}function bA(e){return new Map(gr([...e.entries()]))}function IA(e){return new Set(gr([...e.values()]))}function gr(e){return zn.IsTypeArray(e)?hA(e):zn.IsRegExp(e)?yA(e):zn.IsMap(e)?bA(e):zn.IsSet(e)?IA(e):u.IsArray(e)?xA(e):u.IsObject(e)?gA(e):e}function qo(e){return en.clone+=1,gr(e)}var gi=m(()=>{A();lr()});function $A(e,t){for(let n of Object.keys(t))Object.defineProperty(e,n,{configurable:!0,writable:!0,enumerable:!1,value:t[n]});return e}function Yd(e,t){return{...e,...t}}function wA(e,t,n={}){en.create+=1;let r=Yd(t,n),o=tn.Get().enumerableKind?Yd(r,e):$A(r,e);return Bn(o)}var Xd=m(()=>{fr();lr();No()});function kA(e,t){en.discard+=1;let n={};for(let r of u.Keys(e)){if(t.includes(r))continue;let o=Object.getOwnPropertyDescriptor(e,r);o.value=qo(o.value),Object.defineProperty(n,r,o)}return Bn(n)}var Zd=m(()=>{A();lr();No();gi()});function TA(e,t,n){en.update+=1;let r=tn.Get(),o=qo(e);for(let s of Object.keys(t))Object.defineProperty(o,s,{configurable:!0,writable:!0,enumerable:r.enumerableKind,value:t[s]});for(let s of Object.keys(n))Object.defineProperty(o,s,{configurable:!0,enumerable:!0,writable:!0,value:n[s]});return Bn(o)}var Qd=m(()=>{fr();lr();No();gi()});var l={};Lt(l,{Assign:()=>cA,Clone:()=>qo,Create:()=>wA,Discard:()=>kA,Metrics:()=>en,Update:()=>TA});var ef=m(()=>{Jd();gi();Xd();Zd();lr();Qd()});var v=m(()=>{ef()});function C(e,t){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.IsEqual(e["~kind"],t)}function Fe(e){return u.IsObject(e)}var B=m(()=>{A()});function j(e,t,n){return l.Create({"~kind":"Deferred"},{type:"deferred",action:e,parameters:t,options:n},{})}function Hn(e){return C(e,"Deferred")}var se=m(()=>{v();B()});function EA(e){return l.Update(e,{"~readonly":!0},{})}function _o(e,t){return l.Update(EA(e),{},t)}function tf(e,t,n,r){let o=k(e,t,n);return _o(o,r)}var xi=m(()=>{v();N()});function vA(e){return l.Update(e,{"~optional":!0},{})}function Uo(e,t){return l.Update(vA(e),{},t)}function nf(e,t,n,r){let o=k(e,t,n);return Uo(o,r)}var hi=m(()=>{v();N()});function Ft(e,t){return l.Create({"~kind":"Array"},{type:"array",items:e},t)}function $e(e){return C(e,"Array")}function yi(e){return l.Discard(e,["~kind","type","items"])}var ct=m(()=>{v();B()});function gn(e,t,n={}){return l.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},n)}function _e(e){return C(e,"Constructor")}function rf(e){return l.Discard(e,["~kind","type","parameters","instanceType"])}var Kt=m(()=>{v();B()});function xn(e,t,n={}){return l.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},n)}function Ue(e){return C(e,"Function")}function of(e){return l.Discard(e,["~kind","type","parameters","returnType"])}var Gt=m(()=>{v();B()});function jn(e,t){return l.Create({"~kind":"Ref"},{$ref:e},t)}function Ke(e){return C(e,"Ref")}var Wt=m(()=>{v();B()});function Vn(e,t){return l.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function Gr(e){return C(e,"Generic")}var Ko=m(()=>{v();B()});function Wr(e){return l.Create({"~kind":"Any"},{},e)}function Te(e){return C(e,"Any")}var bt=m(()=>{v();B()});function le(e){return l.Create({"~kind":"Never"},{not:{}},e)}function nn(e){return C(e,"Never")}var sf,Be=m(()=>{v();B();sf="(?!)"});function hn(e,t={}){return j("AddOptional",[e],t)}function xr(e,t={}){return Uo(e,t)}var Go=m(()=>{se();hi()});function af(e){return xr(e)}function ot(e){return Fe(e)&&u.HasPropertyKey(e,"~optional")}var Jn=m(()=>{A();B();Go()});function mf(e){return u.Keys(e).filter(t=>!ot(e[t]))}function bi(e){return u.Keys(e)}function Ii(e){return u.Values(e)}var hr=m(()=>{A();Jn()});function K(e,t={}){let n=mf(e),r=n.length>0?{required:n}:{};return l.Create({"~kind":"Object"},{type:"object",...r,properties:e},t)}function me(e){return C(e,"Object")}function uf(e){return l.Discard(e,["~kind","type","properties","required"])}var ce=m(()=>{v();B();hr()});function He(e){return l.Create({"~kind":"Unknown"},{},e)}function Ae(e){return C(e,"Unknown")}var Qe=m(()=>{v();B()});function yn(e,t,n){let r=u.Keys(e).reduce((o,s)=>({...o,[s]:l.Update(e[s],{},{$id:s})}),{});return l.Create({"~kind":"Cyclic"},{$defs:r,$ref:t},n)}function et(e){return C(e,"Cyclic")}var It=m(()=>{A();v();B()});function pf(e){return l.Update(e,{"~unsafe":null},{})}function $i(e){return u.IsObjectNotArray(e)&&u.HasPropertyKey(e,"~unsafe")&&u.IsNull(e["~unsafe"])}var wi=m(()=>{A();v()});var bn={};Lt(bn,{Match:()=>SA});function SA(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}var cf=m(()=>{});var zr=m(()=>{cf()});function Wo(...e){let[t,n]=bn.Match(e,{2:(r,o)=>[r,o,o],1:r=>[r,He(),He()]});return l.Create({"~kind":"Infer"},{type:"infer",name:t,extends:n},{})}function Re(e){return C(e,"Infer")}var zt=m(()=>{zr();v();B();Qe()});function yr(e,t,n,r={}){return l.Create({"~kind":"Dependent"},{if:e,then:t,else:n},r)}function ve(e){return C(e,"Dependent")}function lf(e){return l.Discard(e,["~kind","if","then","else"])}var St=m(()=>{v();B()});function df(e){return u.IsObjectNotArray(e)}function ff(e){return u.Keys(e).filter(n=>isNaN(n)).reduce((n,r)=>[...n,e[r]],[])}var ki=m(()=>{A()});function gf(e){return u.IsString(e)||u.IsNumber(e)}function xf(e,t){let n=df(e)?ff(e):e;return l.Create({"~kind":"Enum"},{enum:n},t)}function tt(e){return C(e,"Enum")}var rn=m(()=>{A();v();B();ki();ki()});function $t(e,t={}){return l.Create({"~kind":"Intersect"},{allOf:e},t)}function Q(e){return C(e,"Intersect")}function hf(e){return l.Discard(e,["~kind","allOf"])}var je=m(()=>{v();B()});var yf=m(()=>{fr();A()});var bf=m(()=>{yf()});var If=m(()=>{bf()});function De(){throw new Error("Unreachable")}var Ju=m(()=>{});var In=m(()=>{Ju()});var $f,rq,oq,sq,iq,wf,aq,mq,uq,kf=m(()=>{In();A();(function(e){e[e.Array=0]="Array",e[e.BigInt=1]="BigInt",e[e.Boolean=2]="Boolean",e[e.Date=3]="Date",e[e.Constructor=4]="Constructor",e[e.Function=5]="Function",e[e.Null=6]="Null",e[e.Number=7]="Number",e[e.Object=8]="Object",e[e.RegExp=9]="RegExp",e[e.String=10]="String",e[e.Symbol=11]="Symbol",e[e.TypeArray=12]="TypeArray",e[e.Undefined=13]="Undefined"})($f||($f={}));rq=BigInt("14695981039346656037"),[oq,sq]=[BigInt("1099511628211"),BigInt("18446744073709551616")],iq=Array.from({length:256}).map((e,t)=>BigInt(t)),wf=new Float64Array(1),aq=new DataView(wf.buffer),mq=new Uint8Array(wf.buffer),uq=new TextEncoder});var Tf=m(()=>{kf()});var Yu=m(()=>{});var Ef=m(()=>{Yu()});var vf=m(()=>{});var Sf=m(()=>{});var Pf=m(()=>{});var Af=m(()=>{});var Rf=m(()=>{});var Of=m(()=>{});var Mf=m(()=>{});var Cf=m(()=>{});var Lf=m(()=>{});var Ff=m(()=>{});var jf=m(()=>{});var Xu=m(()=>{});var Df=m(()=>{});var Nf=m(()=>{});var qf=m(()=>{});var _f=m(()=>{});var Uf=m(()=>{});var Kf=m(()=>{});var Gf=m(()=>{});var Wf=m(()=>{});var zf=m(()=>{});var Bf=m(()=>{});var Hf=m(()=>{});var Vf=m(()=>{});var Jf=m(()=>{});var Yf=m(()=>{});var Xf=m(()=>{});var Zf=m(()=>{});var Qf=m(()=>{});var eg=m(()=>{});var tg=m(()=>{});var ng=m(()=>{});var rg=m(()=>{});var og=m(()=>{});var sg=m(()=>{});var ig=m(()=>{});var ag=m(()=>{});var mg=m(()=>{Ef();vf();Sf();Pf();Af();Rf();Yu();Of();Mf();Cf();Lf();Ff();jf();Xu();Xu();Df();Nf();qf();_f();Uf();Kf();Gf();Wf();zf();Bf();Hf();Vf();Jf();Yf();Xf();Zf();Qf();eg();tg();ng();rg();og();sg();ig();ag()});var ug=m(()=>{mg()});var zo=m(()=>{zr();If();Tf();ug();v();fr()});var cg=m(()=>{zo();zo();zo()});function Ei(e){return new Ho(e)}function lg(e,t){return Ei(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function dg(e,t){return Ei(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function Ti(e){return Fe(e)&&u.HasPropertyKey(e,"~codec")&&u.IsObject(e["~codec"])&&u.HasPropertyKey(e["~codec"],"encode")&&u.HasPropertyKey(e["~codec"],"decode")}var Bo,Ho,Zu=m(()=>{cg();A();B();Bo=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,r=Ti(n)?a=>this.decode(n["~codec"].decode(a)):this.decode,o=Ti(n)?a=>n["~codec"].encode(t(a)):t,s={decode:r,encode:o};return l.Update(this.type,{"~codec":s},{})}},Ho=class{constructor(t){this.type=t}Decode(t){return new Bo(this.type,t)}}});function fg(e){return Br(e)}function br(e){return Fe(e)&&u.HasPropertyKey(e,"~immutable")}var Vo=m(()=>{A();B();Jo()});function $n(e,t={}){return j("AddReadonly",[e],t)}function Ir(e,t={}){return _o(e,t)}var Yo=m(()=>{se();xi()});function gg(e){return Ir(e)}function $r(e){return Fe(e)&&u.HasPropertyKey(e,"~readonly")}var Xo=m(()=>{A();B();Yo()});function OA(e,t){let n=Qu(e)?[...e["~refine"],t]:[t];return l.Update(e,{"~refine":n},{})}function xg(...e){let[t,n,r]=bn.Match(e,{3:(o,s,a)=>[o,s,a],2:(o,s)=>[o,s,()=>"Refine Error"]});return OA(t,{check:n,error:r})}function MA(e){return u.IsObjectNotArray(e)&&u.HasPropertyKey(e,"check")&&u.HasPropertyKey(e,"error")&&u.IsFunction(e.check)&&u.IsFunction(e.error)}function Qu(e){return Fe(e)&&u.HasPropertyKey(e,"~refine")&&u.IsArray(e["~refine"])&&u.Every(e["~refine"],0,t=>MA(t))}var ep=m(()=>{zr();v();A();B()});function Zo(e){return l.Create({"~kind":"BigInt"},{type:"bigint"},e)}function wn(e){return C(e,"BigInt")}var hg,wr=m(()=>{v();B();hg="-?(?:0|[1-9][0-9]*)n"});function vi(e){return l.Create({"~kind":"Boolean"},{type:"boolean"},e)}function Bt(e){return C(e,"Boolean")}var Yn=m(()=>{v();B()});function Qo(e){return l.Create({"~kind":"Identifier"},{name:e})}function yg(e){return C(e,"Identifier")}var tp=m(()=>{v();B()});function kr(e){return l.Create({"~kind":"Integer"},{type:"integer"},e)}function lt(e){return C(e,"Integer")}var Si,kn=m(()=>{v();B();Si="-?(?:0|[1-9][0-9]*)"});function CA(e){return u.IsBigInt(e)?"bigint":u.IsBoolean(e)?"boolean":u.IsNumber(e)?"number":u.IsString(e)?"string":(()=>{throw new np(e)})()}function ee(e,t){return l.Create({"~kind":"Literal"},{type:CA(e),const:e},t)}function Pi(e){return u.IsBigInt(e)||u.IsBoolean(e)||u.IsNumber(e)||u.IsString(e)}function bg(e){return ue(e)&&u.IsNumber(e.const)}function Ig(e){return ue(e)&&u.IsString(e.const)}function ue(e){return C(e,"Literal")}var np,Oe=m(()=>{v();A();B();np=class extends Error{constructor(t){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:t},writable:!1,configurable:!1,enumerable:!1})}}});function Hr(e){return l.Create({"~kind":"Null"},{type:"null"},e)}function Vr(e){return C(e,"Null")}var Jr=m(()=>{v();B()});function Pt(e){return l.Create({"~kind":"Number"},{type:"number"},e)}function Me(e){return C(e,"Number")}var Ai,dt=m(()=>{v();B();Ai="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?"});function Yr(e){return l.Create({"~kind":"Symbol"},{type:"symbol"},e)}function Xn(e){return C(e,"Symbol")}var Tr=m(()=>{v();B()});function Er(...e){let[t,n,r]=bn.Match(e,{3:(o,s,a)=>[o,s,a],2:(o,s)=>[o,s,s],1:o=>[o,He(),He()]});return l.Create({"~kind":"Parameter"},{name:t,extends:n,equals:r},{})}function $g(e){return C(e,"Parameter")}var rp=m(()=>{zr();v();B();Qe()});function Ht(e){return l.Create({"~kind":"String"},{type:"string"},e)}function ft(e){return C(e,"String")}var Ri,Vt=m(()=>{v();B();Ri=".*"});function V(e,t={}){return l.Create({"~kind":"Union"},{anyOf:e},t)}function L(e){return C(e,"Union")}function wg(e){return l.Discard(e,["~kind","anyOf"])}var J=m(()=>{v();B()});function es(e){let t=kg(e);return u.IsEqual(t.length,2)?t[0]:[]}var ts=m(()=>{A();Oi()});function LA(e){return!0}function Tg(e){return u.ShiftLeft(e,(t,n)=>FA(t)?Tg(n):!1,()=>!0)}function Eg(e){return u.IsEqual(e.length,0)?!1:Tg(e)}function FA(e){return L(e)?Eg(e.anyOf):ue(e)?LA(e.const):!1}function Mi(e){return Eg(e)}var Ci=m(()=>{A();Oe();J()});function Li(e){return l.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}var Fi=m(()=>{v()});function vg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>vg(o,t,[...n,`${r}${t}`]),()=>n)}function jA(e,t){return u.IsEqual(e.length,0)?[`${t}`]:vg(e,t)}function Sg(e,t,n=[]){return u.ShiftLeft(t,(r,o)=>Sg(e,o,[...n,...Pg(e,r)]),()=>n)}function Pg(e,t){return L(t)?Sg(e,t.anyOf):ue(t)?jA(e,t.const):De()}function Ag(e,t){return u.ShiftLeft(t,(n,r)=>Ag(Pg(e,n),r),()=>e)}function DA(e){return e.map(t=>ee(t))}function NA(e){let t=Ag([],e),n=DA(t);return V(n)}function qA(e){return u.IsEqual(e.length,0)?De():u.IsEqual(e.length,1)&&ue(e[0])?e[0]:NA(e)}function op(e){let t=es(e);return u.IsEqual(t.length,0)?Ht():Mi(t)?qA(t):Li(e)}function Rg(e){let t=op(e);return Se(t)?Ht():t}var ji=m(()=>{A();In();Oe();Vt();wt();J();ts();Ci();Fi()});function kt(e,t){let n="object",r={[e]:t};return l.Create({"~kind":"Record"},{type:n,patternProperties:r})}var Zn=m(()=>{v()});function Og(e){return kt(on,e)}var Mg=m(()=>{Ve();Zn()});function Cg(e){return K({true:e,false:e})}var Lg=m(()=>{ce()});function Ce(e,t={}){let[n,r,o]=[e,e.length,!1];return l.Create({"~kind":"Tuple"},{type:"array",additionalItems:o,items:n,minItems:r},t)}function ge(e){return C(e,"Tuple")}function Fg(e){return l.Discard(e,["~kind","type","items","minItems","additionalItems"])}var Ne=m(()=>{v();B()});function _A(e){return l.Discard(e,["~readonly"])}function sp(e,t){return l.Update(_A(e),{},t)}function jg(e,t,n,r){let o=k(e,t,n);return sp(o,r)}var ip=m(()=>{v();N()});function Dg(e,t={}){return j("RemoveReadonly",[e],t)}function Ng(e,t={}){return sp(e,t)}var ap=m(()=>{se();ip()});function UA(e){return l.Discard(e,["~optional"])}function mp(e,t){return l.Update(UA(e),{},t)}function qg(e,t,n,r){let o=k(e,t,n);return mp(o,r)}var up=m(()=>{v();N()});function _g(e,t={}){return j("RemoveOptional",[e],t)}function Di(e,t={}){return mp(e,t)}var Ni=m(()=>{se();up()});function pp(e){return e.reduceRight((n,r,o)=>({[o]:r,...n}),{})}function Ug(e){let t=pp(e.items);return K(t)}var cp=m(()=>{ce()});function lp(e){return me(e)||ge(e)}function KA(e,t){return $r(e)?!!$r(t):!1}function GA(e,t){return ot(e)?!!ot(t):!1}function WA(e,t){let n=KA(e,t),r=GA(e,t),o=we([e,t]),s=Ng(Di(o));return n&&r?Ir(xr(s)):n&&!r?Ir(s):!n&&r?xr(s):s}function zA(e,t,n){return n in e?n in t?WA(e[n],t[n]):e[n]:n in t?t[n]:le()}function BA(e,t){return[...new Set([...u.Keys(e),...u.Keys(t)])].reduce((o,s)=>({...o,[s]:zA(e,t,s)}),{})}function Kg(e){return me(e)?e.properties:ge(e)?pp(e.items):{}}function Gg(e,t){let n=Kg(e),r=Kg(t),o=BA(n,r);return K(o)}var dp=m(()=>{A();Xo();Jn();ce();Be();Ne();Yo();Go();ap();Ni();cp();H()});function HA(e,t){let n=os(e,t);return u.IsEqual(n,rs)?e:u.IsEqual(n,qi)||u.IsEqual(n,ns)?t:le()}function VA(e,t){let n=lp(e),r=lp(t);return n&&r?Gg(e,t):n&&!r?e:!n&&r?t:HA(e,t)}function Wg(e,t){return nn(e)||Te(e)?e:Ae(e)||nn(t)||Te(t)?t:Ae(t)?e:VA(e,t)}var fp=m(()=>{A();bt();Be();Qe();ss();dp()});function JA(e,t){return L(e)||L(t)}function YA(e,t){let n=Jt(e),r=Jt(t);return JA(n,r)?we([n,r]):Wg(n,r)}function zg(e,t,n=[]){return u.ShiftLeft(t,(r,o)=>zg(e,o,[...n,YA(r,e)]),()=>u.IsEqual(n.length,0)?[e]:n)}function Bg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Bg(o,t,[...n,...is([r],t)]),()=>n)}function is(e,t=[]){return u.ShiftLeft(e,(n,r)=>L(n)?is(r,Bg(n.anyOf,t)):is(r,zg(n,t)),()=>t)}var gp=m(()=>{A();J();fp();H();H()});function XA(e,t){let n=nt({},e,t);return G.IsExtendsTrueLike(n)?[]:[e]}function Hg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Hg(o,t,[...n,...XA(r,t)]),()=>n)}function _i(e,t){let n=Jt(e),r=L(n)?n.anyOf:[n],o=Hg(r,t);return Tt(o)}var xp=m(()=>{A();J();Tn();H();H()});function sn(e,t,n){let r=we([e,t]),o=_i(n,e);return Tt([r,o])}function gt(e,t=[]){return u.ShiftLeft(e,(n,r)=>gt(r,[...t,ee(n)]),()=>Tt(t))}function we(e){let t=is(e),n=hp(t);return Tt(n)}function st(e){let t=Rg(e);return Jt(t)}function Tt(e){let t=hp(e);return Qn(t)}function Jt(e){return ve(e)?sn(e.if,e.then,e.else):tt(e)?gt(e.enum):Q(e)?we(e.allOf):Se(e)?st(e.pattern):L(e)?Tt(e.anyOf):e}function Qn(e){return u.IsEqual(e.length,1)?e[0]:u.IsEqual(e.length,0)?le():V(e)}var H=m(()=>{A();St();rn();je();Oe();Be();wt();J();gp();yp();xp();ji()});function Vg(e,t){let n=gt(e);return er(n,t)}var Jg=m(()=>{as();H()});function Yg(e,t){return kt(tr,t)}var Xg=m(()=>{Ve();Zn()});function Zg(e,t){let n=we(e);return er(n,t)}var Qg=m(()=>{H();as()});function ex(e,t){return u.IsString(e)||u.IsNumber(e)?K({[e]:t}):u.IsEqual(e,!1)?K({false:t}):u.IsEqual(e,!0)?K({true:t}):K({})}var tx=m(()=>{A();ce()});function nx(e,t){return kt(Xr,t)}var rx=m(()=>{Ve();Zn()});function ox(e,t){return u.HasPropertyKey(e,"pattern")&&(u.IsString(e.pattern)||e.pattern instanceof RegExp)?kt(e.pattern.toString(),t):kt(on,t)}var sx=m(()=>{A();Ve();Zn()});function ix(e,t){let n=es(e);return Mi(n)?er(st(e),t):kt(e,t)}var ax=m(()=>{as();ts();Ci();H();Zn()});function ZA(e){return L(e)?Zr(e.anyOf):[e]}function Zr(e,t=[]){return u.ShiftLeft(e,(n,r)=>Zr(r,[...t,...ZA(n)]),()=>t)}var Ui=m(()=>{A();J()});function QA(e){return e.some(t=>ft(t)||Me(t)||lt(t))}function eR(e,t){return u.IsEqual(QA(e),!0)?kt(on,t):void 0}function tR(e,t){return e.reduce((n,r)=>ue(r)&&(u.IsString(r.const)||u.IsNumber(r.const))?{...n,[r.const]:t}:n,{})}function nR(e,t){let n=tR(e,t);return K(n)}function mx(e,t){let n=Zr(e),r=eR(n,t);return Fe(r)?r:nR(n,t)}var ux=m(()=>{A();B();Oe();dt();kn();ce();Vt();Ve();Ui();Zn()});function er(e,t){return Te(e)?Og(t):Bt(e)?Cg(t):tt(e)?Vg(e.enum,t):lt(e)?Yg(e,t):Q(e)?Zg(e.allOf,t):ue(e)?ex(e.const,t):Me(e)?nx(e,t):L(e)?mx(e.anyOf,t):ft(e)?ox(e,t):Se(e)?ix(e.pattern,t):K({})}var as=m(()=>{bt();Yn();rn();je();kn();Oe();dt();ce();Vt();wt();J();Mg();Lg();Jg();Xg();Qg();tx();rx();sx();ax();ux()});function bp(e,t,n){return z([e])?l.Update(er(e,t),{},n):Gi(e,t,n)}function px(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return bp(s,a,o)}var Ki=m(()=>{v();Ve();as();N()});function Gi(e,t,n={}){return j("Record",[e,t],n)}function Wi(e,t,n={}){return bp(e,t,n)}function cx(e,t){return kt(e,t)}function zi(e){return u.IsEqual(e,on)?Ht():u.IsEqual(e,tr)?kr():u.IsEqual(e,Xr)?Pt():op(e)}function Yt(e){return u.Keys(e.patternProperties)[0]}function Qr(e){let t=Yt(e);return zi(t)}function xt(e){return e.patternProperties[Yt(e)]}function rt(e){return C(e,"Record")}var tr,Xr,on,Ve=m(()=>{v();A();B();kn();dt();Vt();se();ji();Zn();Ki();tr=`^${Si}$`,Xr=`^${Ai}$`,on=`^${Ri}$`});function vr(e){return l.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function nr(e){return C(e,"Rest")}var eo=m(()=>{v();B()});var lx=m(()=>{});function Bi(e){return l.Create({"~kind":"This"},{$ref:"#"},e)}function Hi(e){return C(e,"This")}var Vi=m(()=>{v();B()});function to(e){return l.Create({"~kind":"Undefined"},{type:"undefined"},e)}function no(e){return C(e,"Undefined")}var ro=m(()=>{v();B()});function Ji(e){return l.Create({"~kind":"Void"},{type:"void"},e)}function En(e){return C(e,"Void")}var Sr=m(()=>{v();B()});var Yi=m(()=>{Zu();Vo();Jn();Xo();ep();bt();ct();wr();Yn();oo();Kt();It();se();rn();Gt();Ko();tp();St();zt();kn();je();Oe();Be();Jr();dt();Qe();Tr();ce();rp();hr();Ve();Wt();eo();B();lx();Vt();Tr();wt();Vi();Ne();ro();J();Qe();wi();Sr()});function oR(e,t){return u.IsEqual(e,"Array")?Ft(t[0]):u.IsEqual(e,"Capitalize")?Zi(t[0]):u.IsEqual(e,"ConstructorParameters")?ra(t[0]):u.IsEqual(e,"Evaluate")?fy(t[0]):u.IsEqual(e,"Exclude")?oa(t[0],t[1]):u.IsEqual(e,"Extract")?sa(t[0],t[1]):u.IsEqual(e,"Index")?cs(t[0],t[1]):u.IsEqual(e,"InstanceType")?ia(t[0]):u.IsEqual(e,"Lowercase")?Qi(t[0]):u.IsEqual(e,"NonNullable")?aa(t[0]):u.IsEqual(e,"Omit")?ma(t[0],t[1]):u.IsEqual(e,"Parameters")?ua(t[0]):u.IsEqual(e,"Partial")?pa(t[0]):u.IsEqual(e,"Pick")?ca(t[0],t[1]):u.IsEqual(e,"Readonly")?la(t[0]):u.IsEqual(e,"KeyOf")?ls(t[0]):u.IsEqual(e,"Record")?Gi(t[0],t[1]):u.IsEqual(e,"Required")?da(t[0]):u.IsEqual(e,"ReturnType")?fa(t[0]):u.IsEqual(e,"Uncapitalize")?ea(t[0]):u.IsEqual(e,"Uppercase")?ta(t[0]):ps(jn(e),t)}function Pr(){throw Error("Unreachable")}function hx(e,t=[]){return u.ShiftLeft(e,(n,r)=>hx(r,[...t,n[1]]),()=>t)}function Dn(e){return u.IsEqual(e.length,3)?[e[0],...hx(e[1])]:[]}function yx(e){return Er(e[0],e[2],e[4])}function bx(e){return Er(e[0],e[2],e[2])}function Ix(e){return Er(e[0],He(),e[2])}function $x(e){return Er(e,He(),He())}function wx(e){return Dn(e)}function kx(e){return e[1]}function Tx(e){return Dn(e)}function Ex(e){return e[1]}function vx(e){return oR(e[0],e[1])}function Sx(e){return null}function Px(e){return Ht()}function Ax(e){return Pt()}function Rx(e){return vi()}function Ox(e){return to()}function Mx(e){return Hr()}function Cx(e){return kr()}function Lx(e){return Zo()}function Fx(e){return He()}function jx(e){return Wr()}function Dx(e){return K({})}function Nx(e){return le()}function qx(e){return Yr()}function _x(e){return Ji()}function Ux(e){return Bi()}function Kx(e){return ee(BigInt(e))}function Gx(e){return ee(u.IsEqual(e,"true"))}function Wx(e){return ee(parseFloat(e))}function zx(e){return ee(e)}function Bx(e){return e[1]}function Hx(e){return ee(e)}function Vx(e){return u.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function Jx(e){return e[1]}function Yx(e){return Xi(e)}function Xx(e){return u.IsEqual(e.length,6)?yr(e[1],e[3],e[5]):yr(e[1],e[3],He())}function Zx(e){return e.length>0}function Qx(e){return e.reduce((t,n)=>u.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function eh(e){return u.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function th(e){return u.IsArray(e)&&u.IsEqual(e.length,3)?e[1]:e}function nh(e){return u.IsEqual(e.length,2)?e[1]:[]}function dx(e,t){return t.reduce((n,r)=>{let o=r;return u.IsEqual(o.length,1)?cs(n,o[0]):u.IsEqual(o.length,0)?Ft(n):Pr()},e)}function fx(e,t){return u.IsEqual(t.length,3)?na(e,t[0],t[1],t[2]):e}function sR(e,t){return u.IsArray(t)&&u.IsEqual(t.length,0)?e:ga(e,t)}function rh(e){let[t,n,r,o,s]=e;return sR(fx(t?ls(dx(n,r)):dx(n,r),o),s)}function Ip(e,t){return u.IsEqual(t.length,3)?(()=>{let[n,r,o]=t,s=Ip(r,o);if(u.IsEqual(n,"&"))return Q(s)?$t([e,...s.allOf]):$t([e,s]);if(u.IsEqual(n,"|"))return L(s)?V([e,...s.anyOf]):V([e,s]);Pr()})():e}function oh(e){let[t,n]=e;return Ip(t,n)}function sh(e){let[t,n]=e;return Ip(t,n)}function ih(e){return dy(e[1])}function ah(e){return e[1]}function mh(e){return Vn(e[0],e[2])}function uh(e){return u.IsEqual(e.length,4)?Wo(e[1],e[3]):u.IsEqual(e.length,2)?Wo(e[1],He()):Pr()}function ph(e){return`${e}`}function ch(e){return lt(e[3])?tr:Me(e[3])?Xr:Xn(e[3])?on:ft(e[3])?on:Pr()}function lh(e){return e.length>0}function dh(e){return e.length>0}function fh(e){let[t,n,r,o,s]=e;return{[n]:t&&r?$n(hn(s)):t&&!r?$n(s):!t&&r?hn(s):s}}function gh(e){return Dn(e)}function xh(e){return e.reduce((t,n)=>u.HasPropertyKey(n,tr)||u.HasPropertyKey(n,Xr)||u.HasPropertyKey(n,on)?[t[0],l.Assign(t[1],n)]:[l.Assign(t[0],n),t[1]],[{},{}])}function hh(e){return xh(e[1])}function yh(e){let[t,n]=e,r=u.IsEqual(u.Keys(n).length,0)?{}:{patternProperties:n};return K(t,r)}function bh(e){return u.IsEqual(e.length,5)?$n(hn(e[4])):u.IsEqual(e.length,3)?e[2]:u.IsEqual(e.length,4)?u.IsEqual(e[2],"readonly")?$n(e[3]):hn(e[3]):Pr()}function Ih(e){if(!u.IsArray(e)||!u.IsEqual(e.length,3))return e;let[t,n,r]=e;return t&&r?$n(hn(n)):t&&!r?$n(n):!t&&r?hn(n):n}function $h(e){return u.IsEqual(e.length,2)?vr(e[1]):u.IsEqual(e.length,1)?e[0]:Pr()}function wh(e){return Dn(e)}function kh(e){return Ce(e[1])}function Th(e){return $n(hn(e[4]))}function Eh(e){return $n(e[3])}function vh(e){return hn(e[3])}function Sh(e){return e[2]}function Ph(e){return u.IsEqual(e.length,2)?vr(e[1]):u.IsEqual(e.length,1)?e[0]:Pr()}function Ah(e){return Dn(e)}function Rh(e){return xn(e[1],e[4])}function Oh(e){return gn(e[2],e[5])}function gx(e,t){return u.IsEqual(e,"remove")?Dg(t):u.IsEqual(e,"add")?$n(t):t}function Mh(e){return u.IsEqual(e.length,2)&&u.IsEqual(e[0],"-")?"remove":u.IsEqual(e.length,2)&&u.IsEqual(e[0],"+")||u.IsEqual(e.length,1)?"add":"none"}function xx(e,t){return u.IsEqual(e,"remove")?_g(t):u.IsEqual(e,"add")?hn(t):t}function Ch(e){return u.IsEqual(e.length,2)&&u.IsEqual(e[0],"-")?"remove":u.IsEqual(e.length,2)&&u.IsEqual(e[0],"+")||u.IsEqual(e.length,1)?"add":"none"}function Lh(e){return u.IsEqual(e.length,2)?[e[1]]:[]}function Fh(e){return u.IsArray(e[6])&&u.IsEqual(e[6].length,1)?ms(Qo(e[3]),e[5],e[6][0],gx(e[1],xx(e[8],e[10]))):ms(Qo(e[3]),e[5],jn(e[3]),gx(e[1],xx(e[8],e[10])))}function jh(e){return jn(e)}function Dh(e){return BigInt(e)}function Nh(e){return parseFloat(e)}function qh(e){return u.IsEqual(e,"true")}function _h(e){return null}function Uh(e){return{[e[0]]:e[2]}}function Kh(e){return Dn(e)}function iR(e){return e.reduce((t,n)=>l.Assign(t,n),{})}function Gh(e){return iR(e[1])}function Wh(e){return Dn(e)}function zh(e){return e[1]}function Bh(e){return Zo()}function Hh(e){return Ht()}function Vh(e){return Pt()}function Jh(e){return kr()}function Yh(e){return le()}function Xh(e){return ee(e)}function Zh(e){return V(e[1])}function Qh(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function ey(e){return[e[0],...e[1]]}function ty(e){return e[1]}function ny(e){return Dn(e)}function ry(e){return u.IsEqual(e.length,2)?e[1]:[]}function oy(e){let t=e[2],n=e[3],[r,o]=e[4],s=u.IsEqual(u.Keys(o).length,0)?{}:{patternProperties:o};return{[e[1]]:Vn(t,us(n,r,s))}}function sy(e){let t=e[2],[n,r]=e[3],o=u.IsEqual(u.Keys(r).length,0)?{}:{patternProperties:r};return{[e[1]]:us(t,n,o)}}function iy(e){return{[e[1]]:Vn(e[2],e[4])}}function ay(e){return{[e[1]]:e[3]}}function my(e){return null}function uy(e){return Dn(e)}function py(e){return e[1]}function cy(e){let[t,n]=[e[0],e[1]];return gy(l.Assign(t,xh(n)[0]))}var ly=m(()=>{v();A();Yi();so()});var Nn=m(()=>{Kr()});function ds(e){return re(e.length,2)}function Y(e,t,n){return ds(e)?t(e[0],e[1]):n()}var At=m(()=>{Nn()});function uR(e,t){return re(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function Ee(e,t){for(let n=0;n<e.length;n++){let r=uR(e[n],t);if(ds(r))return r}return[]}var vn=m(()=>{At();Nn()});function $p(e,t){return Array.from({length:t-e+1},(n,r)=>String.fromCharCode(e+r))}var xy,wp,kp,io,hy,ao,rr,xa,yy,ha,it=m(()=>{xy=[...$p(97,122),...$p(65,90)],wp="0",kp=$p(49,57),io=[wp,...kp],hy=" ",ao=`
12
- `,rr="_",xa=".",yy="$",ha="-"});function $y(e){let t=e.indexOf(cR);return re(t,-1)?"":e.slice(t+2)}function wy(e){let t=e.indexOf(ao);return re(t,-1)?"":e.slice(t)}function lR(e){return e.replace(/^[ \t\r\f\v]+/,"")}function ya(e){let t=lR(e);return t.startsWith(Iy)?ya($y(t.slice(2))):t.startsWith(by)?ya(wy(t.slice(2))):t}function Je(e){let t=e.trimStart();return t.startsWith(Iy)?Je($y(t.slice(2))):t.startsWith(by)?Je(wy(t.slice(2))):t}var by,Iy,cR,Sn=m(()=>{Nn();it();by="//",Iy="/*",cR="*/"});function ba(e,t){return Y(Ee([e],t),(n,r)=>[n,r],()=>["",t])}var Tp=m(()=>{At();vn()});function dR(e,t){return e.includes(t)}function mo(e,t,n,r=""){return Y(Ee(e,n),(o,s)=>dR(t,o)?mo(e,t,s,r):mo(e,t,s,`${r}${o}`),()=>[r,n])}var Ep=m(()=>{At();vn()});function fR(e){return Ee(kp,e)}function xR(e){return mo(gR,[rr],e)}function hR(e){return Y(Ee([wp],e),(t,n)=>[t,n],()=>Y(fR(e),(t,n)=>Y(xR(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[]))}function Ia(e){return hR(Je(e))}var gR,$a=m(()=>{At();Sn();vn();Ep();it();it();it();it();gR=[...io,rr]});function yR(e){return ba(ha,e)}function bR(e){return Y(yR(e),(t,n)=>Y(Ia(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function ky(e){return bR(Je(e))}var vp=m(()=>{At();Sn();Tp();it();$a()});function IR(e){return Y(ky(e),(t,n)=>Y(Ee(["n"],n),(r,o)=>[`${t}`,o],()=>[]),()=>[])}function Sp(e){return IR(e)}var Ty=m(()=>{At();vn();vp()});function Pp(e,t){return Ee([e],t)}function f(e,t){return re(e,"")?["",t]:e.startsWith(ao)?Pp(e,ya(t)):e.startsWith(hy)?Pp(e,t):Pp(e,Je(t))}var Ey=m(()=>{Nn();Sn();Sn();vn();it();it()});function $R(e){return Ee(vy,e)}function Sy(e,t=""){return Y(Ee(wR,e),(n,r)=>Sy(r,`${t}${n}`),()=>[t,e])}function kR(e){return Y($R(e),(t,n)=>Y(Sy(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Pe(e){return kR(Je(e))}var vy,wR,Py=m(()=>{At();Sn();vn();it();it();it();it();vy=[...xy,rr,yy];wR=[...vy,...io]});function ER(e){return ds(Ee([xa],e))}function Ay(e){return Y(mo(TR,[rr],e),(t,n)=>re(t,"")?[]:[t,n],()=>[])}function vR(e){return Y(Ee([xa],e),(t,n)=>Y(Ay(n),(r,o)=>[`0${t}${r}`,o],()=>[]),()=>[])}function SR(e){return Y(Ia(e),(t,n)=>Y(Ee([xa],n),(r,o)=>Y(Ay(o),(s,a)=>[`${t}${r}${s}`,a],()=>[`${t}`,o]),()=>[`${t}`,n]),()=>[])}function PR(e){return ER(e)?vR(e):SR(e)}function Ry(e){return PR(Je(e))}var TR,Ap=m(()=>{Nn();At();Sn();vn();Ep();it();it();$a();TR=[...io,rr]});function AR(e){return ba(ha,e)}function RR(e){return Y(AR(e),(t,n)=>Y(Ry(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function wa(e){return RR(Je(e))}var Oy=m(()=>{At();Sn();Tp();it();Ap()});var My=m(()=>{Nn()});function OR(e){return re(e,"")?[]:[e.slice(0,1),e.slice(1)]}function Cy(e,t){return fi(e,(n,r)=>t.startsWith(n)?!0:Cy(r,t),()=>!1)}function or(e,t,n=""){return Y(OR(t),(r,o)=>Cy(e,t)?[n,t]:or(e,o,`${n}${r}`),()=>[])}var ka=m(()=>{At();Nn()});function MR(e,t,n){return Y(Ee([e],n),(r,o)=>Y(or([t],o),(s,a)=>Y(Ee([t],a),(p,c)=>[`${s}`,c],()=>[]),()=>[]),()=>[])}function CR(e,t,n){return Y(Ee([e],n),(r,o)=>Y(or([ao,t],o),(s,a)=>Y(Ee([t],a),(p,c)=>[`${s}`,c],()=>[]),()=>[]),()=>[])}function Ly(e,t,n,r){return n?MR(e,t,Je(r)):CR(e,t,Je(r))}var Rp=m(()=>{At();Sn();it();vn();ka()});function LR(e,t){return Ee(e,t)}function FR(e,t){return Ly(e,e,!1,t)}function jR(e,t){return Y(LR(e,t),(n,r)=>FR(n,`${n}${r}`),()=>[])}function Ta(e,t){return jR(e,Je(t))}var Fy=m(()=>{At();vn();Sn();Rp()});function jy(e,t){return Y(or(e,t),(n,r)=>re(n,"")?[]:[n,r],()=>[])}var Dy=m(()=>{Nn();At();ka()});var Ny=m(()=>{Ty();Ey();Py();vp();Oy();My();Rp();Fy();$a();Ap();Dy();ka()});var i,NR,qR,_R,UR,Uy,Ky,KR,Cp,Gy,GR,WR,zR,Wy,zy,By,BR,HR,VR,Hy,JR,YR,XR,ZR,QR,Vy,eO,tO,nO,Op,Jy,Lp,rO,oO,sO,iO,aO,mO,uO,Yy,pO,cO,lO,dO,Xy,Zy,Qy,eb,Ea,fO,gO,xO,hO,oe,yO,bO,IO,$O,tb,nb,rb,ob,va,sb,wO,Fp,kO,TO,qy,ib,ab,EO,vO,SO,PO,AO,RO,_y,mb,ub,pb,OO,MO,CO,LO,FO,jO,DO,NO,qO,_O,UO,KO,GO,cb,lb,WO,db,fb,zO,BO,jp,HO,VO,JO,YO,XO,ZO,QO,eM,gb,Mp,Dp,kg,xb,tM,hb,nM,rM,oM,sM,iM,yb,bb,aM,Np,mM,Ib,Oi=m(()=>{ly();Ny();i=(e,t,n=()=>[])=>e.length===2?t(e):n(),NR=e=>i(i(Pe(e),([t,n])=>i(f("extends",n),([r,o])=>i(oe(o),([s,a])=>i(f("=",a),([p,c])=>i(oe(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[yx(t),n]),qR=e=>i(i(Pe(e),([t,n])=>i(f("extends",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[bx(t),n]),_R=e=>i(i(Pe(e),([t,n])=>i(f("=",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Ix(t),n]),UR=e=>i(Pe(e),([t,n])=>[$x(t),n]),Uy=e=>i(i(NR(e),([t,n])=>[t,n],()=>i(qR(e),([t,n])=>[t,n],()=>i(_R(e),([t,n])=>[t,n],()=>i(UR(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Ky=(e,t=[])=>i(i(f(",",e),([n,r])=>i(Uy(r),([o,s])=>[[n,o],s])),([n,r])=>Ky(r,[...t,n]),()=>[t,e]),KR=e=>i(i(i(Uy(e),([t,n])=>i(Ky(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[wx(t),n]),Cp=e=>i(i(f("<",e),([t,n])=>i(KR(n),([r,o])=>i(f(">",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[kx(t),n]),Gy=(e,t=[])=>i(i(f(",",e),([n,r])=>i(oe(r),([o,s])=>[[n,o],s])),([n,r])=>Gy(r,[...t,n]),()=>[t,e]),GR=e=>i(i(i(oe(e),([t,n])=>i(Gy(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Tx(t),n]),WR=e=>i(i(f("<",e),([t,n])=>i(GR(n),([r,o])=>i(f(">",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Ex(t),n]),zR=e=>i(i(Pe(e),([t,n])=>i(WR(n),([r,o])=>[[t,r],o])),([t,n])=>[vx(t),n]),Wy=e=>i(i(i(f(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Sx(t),n]),zy=e=>i(f("string",e),([t,n])=>[Px(t),n]),By=e=>i(f("number",e),([t,n])=>[Ax(t),n]),BR=e=>i(f("boolean",e),([t,n])=>[Rx(t),n]),HR=e=>i(f("undefined",e),([t,n])=>[Ox(t),n]),VR=e=>i(f("null",e),([t,n])=>[Mx(t),n]),Hy=e=>i(f("integer",e),([t,n])=>[Cx(t),n]),JR=e=>i(f("bigint",e),([t,n])=>[Lx(t),n]),YR=e=>i(f("unknown",e),([t,n])=>[Fx(t),n]),XR=e=>i(f("any",e),([t,n])=>[jx(t),n]),ZR=e=>i(f("object",e),([t,n])=>[Dx(t),n]),QR=e=>i(f("never",e),([t,n])=>[Nx(t),n]),Vy=e=>i(f("symbol",e),([t,n])=>[qx(t),n]),eO=e=>i(f("void",e),([t,n])=>[_x(t),n]),tO=e=>i(f("this",e),([t,n])=>[Ux(t),n]),nO=e=>i(i(f("${",e),([t,n])=>i(oe(n),([r,o])=>i(f("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Bx(t),n]),Op=e=>i(or(["${","`"],e),([t,n])=>[Hx(t),n]),Jy=e=>i(i(i(Op(e),([t,n])=>i(nO(n),([r,o])=>i(Jy(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(i(Op(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(Op(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[Vx(t),n]),Lp=e=>i(i(f("`",e),([t,n])=>i(Jy(n),([r,o])=>i(f("`",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Jx(t),n]),rO=e=>i(Lp(e),([t,n])=>[Yx(t),n]),oO=e=>i(i(i(f("if",e),([t,n])=>i(oe(n),([r,o])=>i(f("then",o),([s,a])=>i(oe(a),([p,c])=>i(f("else",c),([h,$])=>i(oe($),([T,M])=>[[t,r,s,p,h,T],M])))))),([t,n])=>[t,n],()=>i(i(f("if",e),([t,n])=>i(oe(n),([r,o])=>i(f("then",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>[])),([t,n])=>[Xx(t),n]),sO=e=>i(Sp(e),([t,n])=>[Kx(t),n]),iO=e=>i(i(f("true",e),([t,n])=>[t,n],()=>i(f("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[Gx(t),n]),aO=e=>i(wa(e),([t,n])=>[Wx(t),n]),mO=e=>i(Ta(["'",'"'],e),([t,n])=>[zx(t),n]),uO=e=>i(i(i(f("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Zx(t),n]),Yy=(e,t=[])=>i(i(i(f("[",e),([n,r])=>i(oe(r),([o,s])=>i(f("]",s),([a,p])=>[[n,o,a],p]))),([n,r])=>[n,r],()=>i(i(f("[",e),([n,r])=>i(f("]",r),([o,s])=>[[n,o],s])),([n,r])=>[n,r],()=>[])),([n,r])=>Yy(r,[...t,n]),()=>[t,e]),pO=e=>i(Yy(e),([t,n])=>[Qx(t),n]),cO=e=>i(i(i(f("extends",e),([t,n])=>i(oe(n),([r,o])=>i(f("?",o),([s,a])=>i(oe(a),([p,c])=>i(f(":",c),([h,$])=>i(oe($),([T,M])=>[[t,r,s,p,h,T],M])))))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[eh(t),n]),lO=e=>i(i(i(f("(",e),([t,n])=>i(oe(n),([r,o])=>i(f(")",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(zy(e),([t,n])=>[t,n],()=>i(By(e),([t,n])=>[t,n],()=>i(BR(e),([t,n])=>[t,n],()=>i(HR(e),([t,n])=>[t,n],()=>i(VR(e),([t,n])=>[t,n],()=>i(Hy(e),([t,n])=>[t,n],()=>i(JR(e),([t,n])=>[t,n],()=>i(YR(e),([t,n])=>[t,n],()=>i(XR(e),([t,n])=>[t,n],()=>i(ZR(e),([t,n])=>[t,n],()=>i(QR(e),([t,n])=>[t,n],()=>i(Vy(e),([t,n])=>[t,n],()=>i(eO(e),([t,n])=>[t,n],()=>i(tO(e),([t,n])=>[t,n],()=>i(sO(e),([t,n])=>[t,n],()=>i(iO(e),([t,n])=>[t,n],()=>i(aO(e),([t,n])=>[t,n],()=>i(mO(e),([t,n])=>[t,n],()=>i(rO(e),([t,n])=>[t,n],()=>i(oO(e),([t,n])=>[t,n],()=>i(kO(e),([t,n])=>[t,n],()=>i(vO(e),([t,n])=>[t,n],()=>i(MO(e),([t,n])=>[t,n],()=>i(OO(e),([t,n])=>[t,n],()=>i(jO(e),([t,n])=>[t,n],()=>i(zR(e),([t,n])=>[t,n],()=>i(DO(e),([t,n])=>[t,n],()=>[])))))))))))))))))))))))))))),([t,n])=>[th(t),n]),dO=e=>i(i(i(f("with",e),([t,n])=>i(db(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[nh(t),n]),Xy=e=>i(i(uO(e),([t,n])=>i(lO(n),([r,o])=>i(pO(o),([s,a])=>i(cO(a),([p,c])=>i(dO(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[rh(t),n]),Zy=e=>i(i(i(f("&",e),([t,n])=>i(Xy(n),([r,o])=>i(Zy(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Qy=e=>i(i(Xy(e),([t,n])=>i(Zy(n),([r,o])=>[[t,r],o])),([t,n])=>[oh(t),n]),eb=e=>i(i(i(f("|",e),([t,n])=>i(Qy(n),([r,o])=>i(eb(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Ea=e=>i(i(Qy(e),([t,n])=>i(eb(n),([r,o])=>[[t,r],o])),([t,n])=>[sh(t),n]),fO=e=>i(i(f("readonly",e),([t,n])=>i(Ea(n),([r,o])=>[[t,r],o])),([t,n])=>[ih(t),n]),gO=e=>i(i(f("|",e),([t,n])=>i(Ea(n),([r,o])=>[[t,r],o])),([t,n])=>[ah(t),n]),xO=e=>i(i(Cp(e),([t,n])=>i(f("=",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[mh(t),n]),hO=e=>i(i(i(f("infer",e),([t,n])=>i(Pe(n),([r,o])=>i(f("extends",o),([s,a])=>i(Ea(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(f("infer",e),([t,n])=>i(Pe(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>[])),([t,n])=>[uh(t),n]),oe=e=>i(i(hO(e),([t,n])=>[t,n],()=>i(gO(e),([t,n])=>[t,n],()=>i(fO(e),([t,n])=>[t,n],()=>i(Ea(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),yO=e=>i(wa(e),([t,n])=>[ph(t),n]),bO=e=>i(Pe(e),([t,n])=>[t,n]),IO=e=>i(Ta(["'",'"'],e),([t,n])=>[t,n]),$O=e=>i(i(f("[",e),([t,n])=>i(Pe(n),([r,o])=>i(f(":",o),([s,a])=>i(i(Hy(a),([p,c])=>[p,c],()=>i(By(a),([p,c])=>[p,c],()=>i(zy(a),([p,c])=>[p,c],()=>i(Vy(a),([p,c])=>[p,c],()=>[])))),([p,c])=>i(f("]",c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[ch(t),n]),tb=e=>i(i(yO(e),([t,n])=>[t,n],()=>i(bO(e),([t,n])=>[t,n],()=>i(IO(e),([t,n])=>[t,n],()=>i($O(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),nb=e=>i(i(i(f("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[lh(t),n]),rb=e=>i(i(i(f("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[dh(t),n]),ob=e=>i(i(nb(e),([t,n])=>i(tb(n),([r,o])=>i(rb(o),([s,a])=>i(f(":",a),([p,c])=>i(oe(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[fh(t),n]),va=e=>i(i(i(f(",",e),([t,n])=>i(f(`
10
+ </file>${a}`}catch{return n}})}var HS,Fu=m(()=>{HS=64*1024});function JS(e){let t=new WeakSet,n=r=>{if(r===null||typeof r!="object")return r;if(t.has(r))return"[circular]";if(t.add(r),Array.isArray(r))return r.map(n);let o=r,s={};for(let a of Object.keys(o).sort())s[a]=n(o[a]);return s};try{return JSON.stringify(n(e))??""}catch{return""}}function pd(e,t){if(VS.has(e))return;let n=`${e}\0${JS(t)}`,r=Lo&&Lo.signature===n?Lo.count+1:1;return Lo={signature:n,count:r},r>=3?{repeats:r}:void 0}function cd(){Lo=void 0}function ld(e,t){return`Refused: ${e} has been called ${t} times in a row with identical arguments, so the last attempt cannot have changed anything. Do not repeat it. Either use different arguments, use a different tool, or stop and report what you found and what is blocking you.`}var VS,Lo,ju=m(()=>{VS=new Set(["think"])});function dd(e,t){switch(t){case"number":return/^\d+$/.test(e);case"string":return!0;default:return!1}}function XS(e,t,n){let r=t;for(;r<e.length;){let o=e[r];if(!o){r++;continue}if(o==="--")break;if(YS.test(o)){let s=o.includes("="),[a="",...p]=o.split("="),c=n.safeFlags[a];if(!c)return!1;if(c==="none"){if(s)return!1;r++;continue}if(c==="optional"){r++;continue}if(s){if(!dd(p.join("="),c))return!1;r++;continue}let h=e[r+1];if(h===void 0||!dd(h,c))return!1;r+=2;continue}if(n.allowPositional===!1)return!1;r++}return!0}function rP(e){if(!/\$\(|`|\$\{|>|</.test(e)&&!/(?<!&)&(?!&)/.test(e))return e.split(/\|\||&&|;|\|/).map(t=>t.trim()).filter(t=>t.length>0)}function oP(e){let t=e.some(r=>/^cd\b/.test(r)),n=e.some(r=>/^git\b/.test(r));return t&&n}function sP(e){let t=[],n=/'[^']*'|"[^"]*"|\S+/g;for(let r of e.match(n)??[])t.push(r.length>=2&&/^['"]/.test(r)?r.slice(1,-1):r);return t}function iP(e){if(e.length===0)return;let[t="",n=""]=e,r=`${t} ${n}`;if(t==="git"&&n==="config"){let o=e[2];return o==="--get"||o==="--get-all"||o==="--get-regexp"||o==="-l"||o==="--list"?{name:"git config --get",rest:e.slice(3)}:void 0}return t==="git"&&n==="stash"?e[2]==="list"?{name:"git stash list",rest:e.slice(3)}:void 0:t==="git"&&n==="worktree"?e[2]==="list"?{name:"git worktree list",rest:e.slice(3)}:void 0:t==="git"&&gd[`git ${n}`]?{name:`git ${n}`,rest:e.slice(2)}:xd[r]?{name:r,rest:e.slice(2)}:{name:t,rest:e.slice(1)}}function mP(e){let t=sP(e),n=iP(t);if(!n)return!1;let{name:r,rest:o}=n;if(aP.has(r)&&o.some(a=>a.includes("$")||a.includes("`")))return!1;let s=gd[r]??tP[r]??xd[r];return s?s.dangerous?.(o)?!1:XS(o,0,s):!!(eP.includes(r)||nP.includes(r))}function mi(e){let t=rP(e);return!t||t.length===0||oP(t)?!1:t.every(mP)}var YS,ZS,si,ii,Du,ai,Nu,fd,QS,gd,eP,tP,xd,nP,aP,qu=m(()=>{YS=/^-[a-zA-Z0-9_-]/;ZS={"--all":"none","--branches":"none","--tags":"none","--remotes":"none"},si={"--oneline":"none","--graph":"none","--decorate":"none","--no-decorate":"none","--date":"string","--relative-date":"none"},ii={"--max-count":"number","-n":"number"},Du={"--stat":"none","--numstat":"none","--shortstat":"none","--name-only":"none","--name-status":"none"},ai={"--color":"none","--no-color":"none"},Nu={"--patch":"none","-p":"none","--no-patch":"none","--no-ext-diff":"none","-s":"none"},fd={"--author":"string","--committer":"string","--grep":"string"},QS={"-l":"none","--list":"none","-a":"none","-r":"none","-v":"none","-vv":"none","-i":"none"},gd={"git status":{safeFlags:{"-s":"none","--short":"none","-b":"none","--branch":"none","-u":"optional","--untracked-files":"optional","--porcelain":"optional","--ignored":"none","--long":"none","--no-renames":"none",...ai}},"git diff":{safeFlags:{...Du,...ai,...Nu,"--cached":"none","--staged":"none","--word-diff":"none","--check":"none","--quiet":"none","--exit-code":"none","--no-renames":"none","--diff-filter":"string","--relative":"string","--full-index":"none","--binary":"none","--abbrev":"number","--unified":"number","-U":"number","--ignore-all-space":"none","--ignore-space-change":"none","--ignore-blank-lines":"none"}},"git log":{safeFlags:{...si,...ii,...Du,...ai,...Nu,...fd,...ZS,"--since":"string","--after":"string","--until":"string","--before":"string","--follow":"none","--no-merges":"none","--merges":"none","--first-parent":"none","--reverse":"none","--skip":"number","--all":"none","--format":"string","--pretty":"string","--abbrev-commit":"none","--no-abbrev-commit":"none","--left-right":"none"}},"git show":{safeFlags:{...Du,...ai,...Nu,...si,"--format":"string","--pretty":"string","--abbrev-commit":"none","--no-patch":"none","-q":"none"}},"git shortlog":{safeFlags:{...ii,"-s":"none","--summary":"none","-n":"none","--numbered":"none","-e":"none","--email":"none","-sn":"none","-ns":"none","--all":"none"}},"git reflog":{safeFlags:{...ii,...si,...fd,"--all":"none","--date":"string"}},"git blame":{safeFlags:{"-L":"string","-w":"none","-c":"none","-n":"none","-s":"none","-e":"none","-p":"none","--porcelain":"none","--line-porcelain":"none","--date":"string","--since":"string","-C":"none","-M":"none"}},"git ls-files":{safeFlags:{"-m":"none","--modified":"none","-o":"none","--others":"none","-i":"none","--ignored":"none","-s":"none","--stage":"none","-d":"none","--deleted":"none","-c":"none","--cached":"none","-u":"none","--unmerged":"none","--exclude-standard":"none","--error-unmatch":"none","-z":"none"}},"git ls-remote":{safeFlags:{"--heads":"none","--tags":"none","--refs":"none","--symref":"none"}},"git rev-parse":{safeFlags:{"--short":"optional","--abbrev-ref":"none","--verify":"none","--quiet":"none","--git-dir":"none","--show-toplevel":"none","--show-cdup":"none","--is-inside-work-tree":"none","--is-bare-repository":"none","--symbolic-full-name":"none","--abbrev":"optional"}},"git rev-list":{safeFlags:{...ii,"--count":"none","--all":"none","--objects":"none","--reverse":"none","--max-parents":"number","--min-parents":"number","--no-merges":"none","--first-parent":"none","--abbrev-commit":"none"}},"git describe":{safeFlags:{"--tags":"none","--all":"none","--long":"none","--always":"none","--dirty":"none","--abbrev":"number","--match":"string","--exclude":"string","--first-parent":"none"}},"git cat-file":{safeFlags:{"-p":"none","-t":"none","-s":"none","-e":"none","--batch-check":"none"}},"git for-each-ref":{safeFlags:{"--format":"string","--count":"number","--sort":"string","--points-at":"string","--merged":"string","--no-merged":"string"}},"git grep":{safeFlags:{"-n":"none","--line-number":"none","-i":"none","--ignore-case":"none","-l":"none","--files-with-matches":"none","-c":"none","--count":"none","-w":"none","--word-regexp":"none","-E":"none","--extended-regexp":"none","-F":"none","--fixed-strings":"none","--cached":"none","--untracked":"none","-e":"string","--and":"none","--or":"none","--not":"none"}},"git merge-base":{safeFlags:{"--all":"none","--is-ancestor":"none","--fork-point":"none","--octopus":"none"}},"git stash list":{safeFlags:{...si}},"git worktree list":{safeFlags:{"--porcelain":"none","-v":"none","--verbose":"none","-z":"none"}},"git branch":{safeFlags:{...QS,"--merged":"string","--no-merged":"string","--contains":"string","--no-contains":"string","--sort":"string","--format":"string","--points-at":"string","--column":"none"},dangerous:e=>{let t=new Set(["--merged","--no-merged","--contains","--no-contains","--sort","--format","--points-at"]),n=!1;for(let r of e){if(n){n=!1;continue}if(t.has(r)){n=!0;continue}if(!r.startsWith("-"))return!0}return!1}},"git tag":{safeFlags:{"-l":"none","--list":"none","-n":"number","--contains":"string","--no-contains":"string","--merged":"string","--sort":"string","--points-at":"string","--column":"none"},dangerous:e=>{let t=new Set(["--contains","--no-contains","--merged","--sort","--points-at"]),n=!1;for(let r of e){if(n){n=!1;continue}if(t.has(r)){n=!0;continue}if(!r.startsWith("-"))return!0}return!1}},"git remote":{safeFlags:{"-v":"none","--verbose":"none"},dangerous:e=>e.some(t=>!t.startsWith("-"))},"git config --get":{safeFlags:{"--local":"none","--global":"none","--system":"none","--get-all":"none","--get-regexp":"none","--list":"none","-l":"none","--show-origin":"none","--null":"none","-z":"none"}}},eP=["ls","pwd","cat","head","tail","wc","which","whoami","date","echo","sleep","true","false","type","test","seq","basename","dirname","realpath","stat","file","du","df","tree","uname","hostname","id","groups","tty","cal","uptime","free","locale","printf","grep","rg","fd","jq","bat","column","paste","nl","expand","fold","fmt"],tP={find:{safeFlags:{"-name":"string","-iname":"string","-type":"string","-maxdepth":"number","-mindepth":"number","-newer":"string","-path":"string","-not":"none","-print":"none","-print0":"none","-empty":"none","-size":"string","-mtime":"number","-atime":"number","-perm":"string","-L":"none","-H":"none","-P":"none"},dangerous:e=>e.some(t=>/^-(delete|exec|execdir|ok|okdir|fprint0?|fls|fprintf)$/.test(t))},sort:{safeFlags:{"-n":"none","-r":"none","-u":"none","-k":"string","-t":"string","-f":"none","-h":"none","-V":"none","-s":"none","-c":"none","-m":"none","-b":"none","-z":"none"}},uniq:{safeFlags:{"-c":"none","-d":"none","-u":"none","-i":"none","-f":"number","-s":"number","-w":"number"}},cut:{safeFlags:{"-d":"string","-f":"string","-c":"string","-b":"string","-s":"none","--complement":"none","-z":"none"}},tr:{safeFlags:{"-d":"none","-s":"none","-c":"none"}},node:{safeFlags:{"-v":"none","--version":"none"},allowPositional:!1},python:{safeFlags:{"--version":"none"},allowPositional:!1},python3:{safeFlags:{"--version":"none"},allowPositional:!1},npm:{safeFlags:{"--version":"none","-v":"none"},allowPositional:!1},sed:{safeFlags:{"-n":"none","--quiet":"none","-e":"string","-E":"none","-r":"none","--regexp-extended":"none","-s":"none","-u":"none","-z":"none","--posix":"none"},dangerous:e=>e.some(t=>/^-i|^--in-place/.test(t)||/\b[we]\s/.test(t)||/^[we]$/.test(t))},awk:{safeFlags:{"-F":"string","-v":"string","-f":"string"},dangerous:e=>e.some(t=>/\bsystem\s*\(|\|\s*"|>\s*"/.test(t))}},xd={"npm ls":{safeFlags:{"--depth":"number","--json":"none","--long":"none","--parseable":"none","--all":"none","--prod":"none","--dev":"none","--omit":"string","--link":"none","--global":"none","-g":"none","--silent":"none"}},"npm view":{safeFlags:{"--json":"none","--registry":"string"}},"docker ps":{safeFlags:{"-a":"none","--all":"none","-q":"none","--quiet":"none","--no-trunc":"none","--format":"string","-n":"number","--last":"number","-s":"none","--size":"none","--filter":"string"}},"docker images":{safeFlags:{"-a":"none","--all":"none","-q":"none","--quiet":"none","--no-trunc":"none","--format":"string","--filter":"string","--digests":"none"}},"docker inspect":{safeFlags:{"--format":"string","-f":"string","-s":"none","--size":"none","--type":"string"}},"kubectl get":{safeFlags:{"-o":"string","--output":"string","-n":"string","--namespace":"string","-A":"none","--all-namespaces":"none","--no-headers":"none","-l":"string","--selector":"string","--show-labels":"none","-w":"none","--watch":"none","--sort-by":"string"}},"kubectl describe":{safeFlags:{"-n":"string","--namespace":"string","-l":"string","--selector":"string"}},"cargo tree":{safeFlags:{"--depth":"number","-e":"string","--edges":"string","--no-dev-dependencies":"none","--prefix":"string","-i":"string","--invert":"string","-p":"string","--package":"string"}},"go version":{safeFlags:{}}},nP=["cd","alias","history","arch","ip addr","ifconfig"];aP=new Set(["echo","printf"])});var kd={};Lt(kd,{APPROVAL_LABELS:()=>ui,APPROVAL_MODES:()=>_r,MODE_MAX_TIER:()=>hd,TIER_RANK:()=>_u,createPermissionExtension:()=>Fo,criticalCommand:()=>yd,decideToolCall:()=>Id,describeToolCall:()=>$d,formatApprovalPrompt:()=>wd,getApprovalMode:()=>lP,isApprovalMode:()=>uP,isReadOnlyCommand:()=>mi,resolveTier:()=>Uu,setApprovalMode:()=>Gu,setApprovalPrompt:()=>Wu});function uP(e){return _r.includes(e)}function Uu(e){let t=pP[e];return t||(e.startsWith("mcp__")?"write":"exec")}function yd(e){for(let{pattern:t,reason:n}of cP)if(t.test(e))return n}function Gu(e){Ku=e}function lP(){return Ku}function Wu(e){bd=e}function Id(e,t,n){let r=typeof n?.command=="string"?n.command:"";if(t==="bash"||t==="powershell"){let s=yd(r);if(s)return{action:"deny",reason:`Refused in every mode: ${s}.`};if(mi(r))return{action:"run"}}let o=Uu(t);return _u[o]<=_u[hd[e]]?{action:"run"}:{action:"prompt",reason:`this is a ${o}-tier tool`}}function $d(e,t){if(t&&typeof t=="object"){let n=t;if((e==="bash"||e==="powershell")&&typeof n.command=="string")return n.command;if((e==="edit"||e==="write")&&typeof n.path=="string"){let r=Array.isArray(n.edits)?` (${n.edits.length} edits)`:"";return`${n.path}${r}`}try{let r=JSON.stringify(n);if(r&&r!=="{}")return r.length>300?`${r.slice(0,297)}...`:r}catch{}}return e}function wd(e,t,n){let r=[`Allow tool: ${e}`];e.startsWith("mcp__")&&r.push("Origin: MCP server tool"),r.push(`Reason: ${n}`);let o=$d(e,t);return o!==e&&r.push(o),r.join(`
11
+ `)}function Fo(e={}){return t=>{t.on("tool_call",async n=>{let r=pd(n.toolName,n.input);if(r)return{block:!0,reason:ld(n.toolName,r.repeats)};let o=Ku,s=Id(o,n.toolName,n.input);if(s.action==="run")return;if(s.action==="deny")return{block:!0,reason:s.reason};if(e.interactive===!1)return{block:!0,reason:`Blocked: this is a ${Uu(n.toolName)}-tier tool and no UI can approve it here (approval mode: ${o}).`};if(!await bd(`${n.toolName} wants to run`,wd(n.toolName,n.input,s.reason)))return{block:!0,reason:`Blocked by the user (approval mode: ${o}).`}})}}var _r,ui,_u,hd,pP,cP,Ku,bd,jo=m(()=>{ju();qu();qu();_r=["suggest","auto-edit","full-auto"],ui={suggest:"suggest: ask before every edit and command","auto-edit":"auto-edit: edits run, commands ask","full-auto":"full-auto: nothing asks"};_u={read:0,write:1,exec:2},hd={suggest:"read","auto-edit":"write","full-auto":"exec"},pP={read:"read",grep:"read",find:"read",ls:"read",think:"read",ask:"read",todo:"read",context:"read",workflow:"exec",goal:"read",enter_plan_mode:"read",exit_plan_mode:"read",edit:"write",write:"write",bash:"exec",powershell:"exec",task:"exec"};cP=[{pattern:/\brm\s+(?:-[a-zA-Z]+\s+)*(?:\/|\/\*|~|\$HOME)(?:\s|$)/,reason:"recursive delete of the filesystem root or home"},{pattern:/\bmkfs(?:\.[a-z0-9]+)?\b/,reason:"filesystem format"},{pattern:/\bdd\b[^|;]*\bof=\/dev\/(?:sd|nvme|hd|vd)/,reason:"raw write to a block device"},{pattern:/:\s*\(\s*\)\s*\{.*\}\s*;\s*:/,reason:"fork bomb"},{pattern:/>\s*\/etc\/(?:passwd|shadow|sudoers)/,reason:"overwrite of a system account file"},{pattern:/\b(?:shutdown|reboot|halt|poweroff)\b/,reason:"host shutdown"}];Ku="full-auto",bd=async()=>!1});function dP(e){return e.replace(/operating inside pi, a coding agent harness/gi,"operating as HowToFix, a coding agent harness").replace(/^Pi documentation \(read only when the user asks about[^\n]*\):?$/gim,"Harness documentation (internal reference; the user is never told the harness name):").replace(/\bpi itself\b/gi,"the harness itself").replace(/^- When reading pi docs or examples/m,"- When reading harness docs or examples").replace(/^- When working on pi topics/m,"- When working on harness topics").replace(/^- Always read pi \.md files/m,"- Always read the harness .md files").replace(/\bpi packages\b/gi,"harness packages").replace(/\bpi \.md files\b/gi,"harness .md files").replace(/\bpi docs\b/gi,"harness docs").replace(/^-\s*You can inspect PI_\* environment variables/m,"- You can inspect the harness's environment variables")}function gP(e){if(!e)return;let t=!1,n={...e};for(let r of fP){let o=n[r];if(typeof o!="string")continue;let s=dP(o);s!==o&&(n[r]=s,t=!0)}return t?n:void 0}function Td(){return e=>{e.on("context_with_system",async t=>{let n=t.messages[0];if(!n||n.role!=="system")return;let r=gP(n.sections);return r?{messages:t.messages.map(s=>s===n?{...n,sections:r}:s)}:void 0})}}var fP,Ed=m(()=>{fP=["preamble","rules","docs","addendum"]});import{Type as Ur}from"@earendil-works/pi-ai";import{defineTool as vd}from"@earendil-works/pi-coding-agent";function Sd(e){zu=e}var zu,Pd,Ad,Bu=m(()=>{Pd=vd({name:"think",label:"think",description:"Private scratchpad. The text is not shown to the user. Use it before a non-obvious step.",promptSnippet:"think: private notes, not shown to the user",parameters:Ur.Object({thoughts:Ur.String({description:"Private notes"})}),async execute(){return{content:[{type:"text",text:"noted"}],details:{recorded:!0}}}}),Ad=vd({name:"ask",label:"ask",description:"Ask the user one question and wait for a selected answer. Use this instead of guessing when a choice blocks the task.",promptSnippet:"ask: ask the user to pick one option",parameters:Ur.Object({question:Ur.String(),options:Ur.Array(Ur.String(),{minItems:2})}),async execute(e,t){if(!zu)return{content:[{type:"text",text:"cancelled"}],details:{answer:"cancelled"}};let n=await zu(t.question,t.options);return{content:[{type:"text",text:n}],details:{answer:n}}}})});var en,dr=m(()=>{en={assign:0,create:0,clone:0,discard:0,update:0}});function fr(e,t,n){return e>=t&&e<=n}function Md(e){return e===8205}function xP(e){return fr(e,55296,56319)}function Rd(e){return fr(e,127462,127487)}function Cd(e){return fr(e,65024,65039)}function Ld(e){return fr(e,768,879)||fr(e,6832,6911)||fr(e,7616,7679)||fr(e,65056,65071)}function pi(e){return e>65535?2:1}function Od(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(Ld(n)||Cd(n))t+=pi(n);else break}return t}function Hu(e,t){let n=e.codePointAt(t),r=t+pi(n);for(r=Od(e,r);r<e.length-1&&Md(e.codePointAt(r));){let o=e.codePointAt(r+1);r+=1+pi(o),r=Od(e,r)}return Rd(n)&&r<e.length&&Rd(e.codePointAt(r))&&(r+=pi(e.codePointAt(r))),r}function Fd(e){return e>=768&&(xP(e)||Ld(e)||Cd(e)||Md(e))}function jd(e){let t=0,n=0;for(;n<e.length;)n=Hu(e,n),t++;return t}function hP(e,t){let n=0,r=0;for(;r<e.length;)if(r=Hu(e,r),++n>=t)return!0;return!1}function yP(e,t){let n=0,r=0;for(;r<e.length;)if(r=Hu(e,r),++n>t)return!1;return!0}function Dd(e,t){if(t===0)return!0;if(e.length<t)return!1;let n=0;for(;;){if(Fd(e.charCodeAt(n)))return hP(e,t);if(++n>=t)return!0}}function Nd(e,t){if(e.length<=t)return!0;let n=0;for(;;){if(Fd(e.charCodeAt(n)))return yP(e,t);if(++n>t)return!1}}var qd=m(()=>{});var u={};Lt(u,{Counted:()=>LP,Entries:()=>DP,EntriesRegExp:()=>jP,Every:()=>RP,EveryAll:()=>OP,GraphemeCount:()=>SP,HasPropertyKey:()=>FP,IsArray:()=>No,IsBigInt:()=>Do,IsBoolean:()=>_d,IsClassInstance:()=>vP,IsConstructor:()=>IP,IsDeepEqual:()=>Yu,IsEqual:()=>re,IsFunction:()=>Ud,IsGreaterEqualThan:()=>Gd,IsGreaterThan:()=>kP,IsInteger:()=>Vu,IsLessEqualThan:()=>Kd,IsLessThan:()=>TP,IsMaxLength:()=>PP,IsMinLength:()=>AP,IsMultipleOf:()=>EP,IsNull:()=>li,IsNumber:()=>di,IsObject:()=>qo,IsObjectNotArray:()=>$P,IsString:()=>fi,IsSymbol:()=>wP,IsUndefined:()=>Ju,IsUnsafePropertyKey:()=>zd,IsValueLike:()=>Wd,Keys:()=>ci,ShiftLeft:()=>gi,Some:()=>MP,SomeAll:()=>CP,Symbols:()=>NP,Values:()=>qP});function No(e){return Array.isArray(e)}function Do(e){return re(typeof e,"bigint")}function _d(e){return re(typeof e,"boolean")}function IP(e){if(Ju(e)||!Ud(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function Ud(e){return re(typeof e,"function")}function Vu(e){return Number.isInteger(e)}function li(e){return re(e,null)}function di(e){return Number.isFinite(e)}function $P(e){return qo(e)&&!No(e)}function qo(e){return re(typeof e,"object")&&!li(e)}function fi(e){return re(typeof e,"string")}function wP(e){return re(typeof e,"symbol")}function Ju(e){return re(e,void 0)}function re(e,t){return e===t}function kP(e,t){return e>t}function TP(e,t){return e<t}function Kd(e,t){return e<=t}function Gd(e,t){return e>=t}function EP(e,t){if(Do(e)||Do(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!di(e)||Vu(e)&&1/t%1===0)return!0;let r=e%t;return Math.min(Math.abs(r),Math.abs(r-t),Math.abs(r+t))<n}function vP(e){if(!qo(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return li(t)?!1:re(typeof t.constructor,"function")&&!(re(t.constructor,globalThis.Object)||re(t.constructor.name,"Object"))}function Wd(e){return Do(e)||_d(e)||li(e)||di(e)||fi(e)||Ju(e)}function SP(e){return jd(e)}function PP(e,t){return Nd(e,t)}function AP(e,t){return Dd(e,t)}function RP(e,t,n){return e.every((r,o)=>o<t||n(r,o))}function OP(e,t,n){let r=!0;return e.forEach((o,s)=>{s>=t&&!n(o,s)&&(r=!1)}),r}function MP(e,t){return e.some((n,r)=>t(n,r))}function CP(e,t){let n=!1;return e.forEach((r,o)=>{t(r,o)&&(n=!0)}),n}function LP(e,t){return e.reduce((n,r,o)=>t(r,o)?++n:n,0)}function gi(e,t,n){return re(e.length,0)?n():t(e[0],e.slice(1))}function zd(e){return re(e,"__proto__")||re(e,"constructor")||re(e,"prototype")}function FP(e,t){return zd(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function jP(e){return ci(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function DP(e){return Object.entries(e)}function ci(e){return Object.getOwnPropertyNames(e)}function NP(e){return Object.getOwnPropertySymbols(e)}function qP(e){return Object.values(e)}function _P(e,t){if(!qo(t))return!1;let n=ci(e);return re(n.length,ci(t).length)&&n.every(r=>Yu(e[r],t[r]))}function UP(e,t){return No(t)&&re(e.length,t.length)&&e.every((n,r)=>Yu(e[r],t[r]))}function Yu(e,t){return No(e)?UP(e,t):qo(e)?_P(e,t):re(e,t)}var Kr=m(()=>{qd()});var Bd=m(()=>{Kr()});var Bn={};Lt(Bn,{IsBigInt64Array:()=>nA,IsBigUint64Array:()=>rA,IsBoolean:()=>GP,IsDate:()=>sA,IsFloat32Array:()=>eA,IsFloat64Array:()=>tA,IsInt16Array:()=>YP,IsInt32Array:()=>ZP,IsInt8Array:()=>HP,IsMap:()=>aA,IsNumber:()=>WP,IsRegExp:()=>oA,IsSet:()=>iA,IsString:()=>zP,IsTypeArray:()=>BP,IsUint16Array:()=>XP,IsUint32Array:()=>QP,IsUint8Array:()=>VP,IsUint8ClampedArray:()=>JP});function GP(e){return e instanceof Boolean}function WP(e){return e instanceof Number}function zP(e){return e instanceof String}function BP(e){return globalThis.ArrayBuffer.isView(e)}function HP(e){return e instanceof globalThis.Int8Array}function VP(e){return e instanceof globalThis.Uint8Array}function JP(e){return e instanceof globalThis.Uint8ClampedArray}function YP(e){return e instanceof globalThis.Int16Array}function XP(e){return e instanceof globalThis.Uint16Array}function ZP(e){return e instanceof globalThis.Int32Array}function QP(e){return e instanceof globalThis.Uint32Array}function eA(e){return e instanceof globalThis.Float32Array}function tA(e){return e instanceof globalThis.Float64Array}function nA(e){return e instanceof globalThis.BigInt64Array}function rA(e){return e instanceof globalThis.BigUint64Array}function oA(e){return e instanceof globalThis.RegExp}function sA(e){return e instanceof globalThis.Date}function iA(e){return e instanceof globalThis.Set}function aA(e){return e instanceof globalThis.Map}var Hd=m(()=>{});var Vd=m(()=>{Kr()});var R=m(()=>{Bd();Hd();Vd();Kr();Kr()});var tn={};Lt(tn,{Get:()=>cA,Reset:()=>uA,Set:()=>pA});function uA(){gn.immutableTypes=!1,gn.maxErrors=8,gn.maxInstantiationCount=128,gn.useAcceleration=!0,gn.exactOptionalPropertyTypes=!1,gn.enumerableKind=!1,gn.correctiveParse=!1,gn.unionPrioritySort=!0}function pA(e){for(let t of u.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(gn,t,{value:n})}}function cA(){return gn}var gn,Jd=m(()=>{R();gn={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0}});var gr=m(()=>{Jd()});function Hn(e){return tn.Get().immutableTypes?Object.freeze(e):e}var _o=m(()=>{gr()});function lA(e,t){return en.assign+=1,Hn({...e,...t})}var Yd=m(()=>{dr();_o()});function dA(e){return u.HasPropertyKey(e,"~kind")||u.HasPropertyKey(e,"~unsafe")}function fA(e){let t={};for(let n of u.Keys(e)){if(u.IsUnsafePropertyKey(n))continue;let r=Object.getOwnPropertyDescriptor(e,n);r.value=xr(r.value),u.IsEqual(r.enumerable,!0)?t[n]=r.value:Object.defineProperty(t,n,r)}return t}function gA(e){let t={};for(let n of u.Keys(e))u.IsUnsafePropertyKey(n)||(t[n]=xr(e[n]));for(let n of u.Symbols(e))t[n]=xr(e[n]);return t}function xA(e){return u.IsClassInstance(e)?e:dA(e)?fA(e):gA(e)}function hA(e){return e.map(t=>xr(t))}function yA(e){return e.slice()}function bA(e){return new RegExp(e.source,e.flags)}function IA(e){return new Map(xr([...e.entries()]))}function $A(e){return new Set(xr([...e.values()]))}function xr(e){return Bn.IsTypeArray(e)?yA(e):Bn.IsRegExp(e)?bA(e):Bn.IsMap(e)?IA(e):Bn.IsSet(e)?$A(e):u.IsArray(e)?hA(e):u.IsObject(e)?xA(e):e}function Uo(e){return en.clone+=1,xr(e)}var xi=m(()=>{R();dr()});function wA(e,t){for(let n of Object.keys(t))Object.defineProperty(e,n,{configurable:!0,writable:!0,enumerable:!1,value:t[n]});return e}function Xd(e,t){return{...e,...t}}function kA(e,t,n={}){en.create+=1;let r=Xd(t,n),o=tn.Get().enumerableKind?Xd(r,e):wA(r,e);return Hn(o)}var Zd=m(()=>{gr();dr();_o()});function TA(e,t){en.discard+=1;let n={};for(let r of u.Keys(e)){if(t.includes(r))continue;let o=Object.getOwnPropertyDescriptor(e,r);o.value=Uo(o.value),Object.defineProperty(n,r,o)}return Hn(n)}var Qd=m(()=>{R();dr();_o();xi()});function EA(e,t,n){en.update+=1;let r=tn.Get(),o=Uo(e);for(let s of Object.keys(t))Object.defineProperty(o,s,{configurable:!0,writable:!0,enumerable:r.enumerableKind,value:t[s]});for(let s of Object.keys(n))Object.defineProperty(o,s,{configurable:!0,enumerable:!0,writable:!0,value:n[s]});return Hn(o)}var ef=m(()=>{gr();dr();_o();xi()});var l={};Lt(l,{Assign:()=>lA,Clone:()=>Uo,Create:()=>kA,Discard:()=>TA,Metrics:()=>en,Update:()=>EA});var tf=m(()=>{Yd();xi();Zd();Qd();dr();ef()});var v=m(()=>{tf()});function C(e,t){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.IsEqual(e["~kind"],t)}function Fe(e){return u.IsObject(e)}var B=m(()=>{R()});function j(e,t,n){return l.Create({"~kind":"Deferred"},{type:"deferred",action:e,parameters:t,options:n},{})}function Vn(e){return C(e,"Deferred")}var se=m(()=>{v();B()});function vA(e){return l.Update(e,{"~readonly":!0},{})}function Ko(e,t){return l.Update(vA(e),{},t)}function nf(e,t,n,r){let o=k(e,t,n);return Ko(o,r)}var hi=m(()=>{v();N()});function SA(e){return l.Update(e,{"~optional":!0},{})}function Go(e,t){return l.Update(SA(e),{},t)}function rf(e,t,n,r){let o=k(e,t,n);return Go(o,r)}var yi=m(()=>{v();N()});function Ft(e,t){return l.Create({"~kind":"Array"},{type:"array",items:e},t)}function $e(e){return C(e,"Array")}function bi(e){return l.Discard(e,["~kind","type","items"])}var ct=m(()=>{v();B()});function xn(e,t,n={}){return l.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},n)}function _e(e){return C(e,"Constructor")}function of(e){return l.Discard(e,["~kind","type","parameters","instanceType"])}var Kt=m(()=>{v();B()});function hn(e,t,n={}){return l.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},n)}function Ue(e){return C(e,"Function")}function sf(e){return l.Discard(e,["~kind","type","parameters","returnType"])}var Gt=m(()=>{v();B()});function Dn(e,t){return l.Create({"~kind":"Ref"},{$ref:e},t)}function Ke(e){return C(e,"Ref")}var Wt=m(()=>{v();B()});function Jn(e,t){return l.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function Gr(e){return C(e,"Generic")}var Wo=m(()=>{v();B()});function Wr(e){return l.Create({"~kind":"Any"},{},e)}function Te(e){return C(e,"Any")}var bt=m(()=>{v();B()});function le(e){return l.Create({"~kind":"Never"},{not:{}},e)}function nn(e){return C(e,"Never")}var af,Be=m(()=>{v();B();af="(?!)"});function yn(e,t={}){return j("AddOptional",[e],t)}function hr(e,t={}){return Go(e,t)}var zo=m(()=>{se();yi()});function mf(e){return hr(e)}function ot(e){return Fe(e)&&u.HasPropertyKey(e,"~optional")}var Yn=m(()=>{R();B();zo()});function uf(e){return u.Keys(e).filter(t=>!ot(e[t]))}function Ii(e){return u.Keys(e)}function $i(e){return u.Values(e)}var yr=m(()=>{R();Yn()});function K(e,t={}){let n=uf(e),r=n.length>0?{required:n}:{};return l.Create({"~kind":"Object"},{type:"object",...r,properties:e},t)}function me(e){return C(e,"Object")}function pf(e){return l.Discard(e,["~kind","type","properties","required"])}var ce=m(()=>{v();B();yr()});function He(e){return l.Create({"~kind":"Unknown"},{},e)}function Ae(e){return C(e,"Unknown")}var Qe=m(()=>{v();B()});function bn(e,t,n){let r=u.Keys(e).reduce((o,s)=>({...o,[s]:l.Update(e[s],{},{$id:s})}),{});return l.Create({"~kind":"Cyclic"},{$defs:r,$ref:t},n)}function et(e){return C(e,"Cyclic")}var It=m(()=>{R();v();B()});function cf(e){return l.Update(e,{"~unsafe":null},{})}function wi(e){return u.IsObjectNotArray(e)&&u.HasPropertyKey(e,"~unsafe")&&u.IsNull(e["~unsafe"])}var ki=m(()=>{R();v()});var In={};Lt(In,{Match:()=>PA});function PA(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}var lf=m(()=>{});var zr=m(()=>{lf()});function Bo(...e){let[t,n]=In.Match(e,{2:(r,o)=>[r,o,o],1:r=>[r,He(),He()]});return l.Create({"~kind":"Infer"},{type:"infer",name:t,extends:n},{})}function Re(e){return C(e,"Infer")}var zt=m(()=>{zr();v();B();Qe()});function br(e,t,n,r={}){return l.Create({"~kind":"Dependent"},{if:e,then:t,else:n},r)}function ve(e){return C(e,"Dependent")}function df(e){return l.Discard(e,["~kind","if","then","else"])}var St=m(()=>{v();B()});function ff(e){return u.IsObjectNotArray(e)}function gf(e){return u.Keys(e).filter(n=>isNaN(n)).reduce((n,r)=>[...n,e[r]],[])}var Ti=m(()=>{R()});function xf(e){return u.IsString(e)||u.IsNumber(e)}function hf(e,t){let n=ff(e)?gf(e):e;return l.Create({"~kind":"Enum"},{enum:n},t)}function tt(e){return C(e,"Enum")}var rn=m(()=>{R();v();B();Ti();Ti()});function $t(e,t={}){return l.Create({"~kind":"Intersect"},{allOf:e},t)}function Q(e){return C(e,"Intersect")}function yf(e){return l.Discard(e,["~kind","allOf"])}var je=m(()=>{v();B()});var bf=m(()=>{gr();R()});var If=m(()=>{bf()});var $f=m(()=>{If()});function De(){throw new Error("Unreachable")}var Xu=m(()=>{});var $n=m(()=>{Xu()});var wf,oq,sq,iq,aq,kf,mq,uq,pq,Tf=m(()=>{$n();R();(function(e){e[e.Array=0]="Array",e[e.BigInt=1]="BigInt",e[e.Boolean=2]="Boolean",e[e.Date=3]="Date",e[e.Constructor=4]="Constructor",e[e.Function=5]="Function",e[e.Null=6]="Null",e[e.Number=7]="Number",e[e.Object=8]="Object",e[e.RegExp=9]="RegExp",e[e.String=10]="String",e[e.Symbol=11]="Symbol",e[e.TypeArray=12]="TypeArray",e[e.Undefined=13]="Undefined"})(wf||(wf={}));oq=BigInt("14695981039346656037"),[sq,iq]=[BigInt("1099511628211"),BigInt("18446744073709551616")],aq=Array.from({length:256}).map((e,t)=>BigInt(t)),kf=new Float64Array(1),mq=new DataView(kf.buffer),uq=new Uint8Array(kf.buffer),pq=new TextEncoder});var Ef=m(()=>{Tf()});var Zu=m(()=>{});var vf=m(()=>{Zu()});var Sf=m(()=>{});var Pf=m(()=>{});var Af=m(()=>{});var Rf=m(()=>{});var Of=m(()=>{});var Mf=m(()=>{});var Cf=m(()=>{});var Lf=m(()=>{});var Ff=m(()=>{});var jf=m(()=>{});var Df=m(()=>{});var Qu=m(()=>{});var Nf=m(()=>{});var qf=m(()=>{});var _f=m(()=>{});var Uf=m(()=>{});var Kf=m(()=>{});var Gf=m(()=>{});var Wf=m(()=>{});var zf=m(()=>{});var Bf=m(()=>{});var Hf=m(()=>{});var Vf=m(()=>{});var Jf=m(()=>{});var Yf=m(()=>{});var Xf=m(()=>{});var Zf=m(()=>{});var Qf=m(()=>{});var eg=m(()=>{});var tg=m(()=>{});var ng=m(()=>{});var rg=m(()=>{});var og=m(()=>{});var sg=m(()=>{});var ig=m(()=>{});var ag=m(()=>{});var mg=m(()=>{});var ug=m(()=>{vf();Sf();Pf();Af();Rf();Of();Zu();Mf();Cf();Lf();Ff();jf();Df();Qu();Qu();Nf();qf();_f();Uf();Kf();Gf();Wf();zf();Bf();Hf();Vf();Jf();Yf();Xf();Zf();Qf();eg();tg();ng();rg();og();sg();ig();ag();mg()});var pg=m(()=>{ug()});var Ho=m(()=>{zr();$f();Ef();pg();v();gr()});var lg=m(()=>{Ho();Ho();Ho()});function vi(e){return new Jo(e)}function dg(e,t){return vi(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function fg(e,t){return vi(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function Ei(e){return Fe(e)&&u.HasPropertyKey(e,"~codec")&&u.IsObject(e["~codec"])&&u.HasPropertyKey(e["~codec"],"encode")&&u.HasPropertyKey(e["~codec"],"decode")}var Vo,Jo,ep=m(()=>{lg();R();B();Vo=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,r=Ei(n)?a=>this.decode(n["~codec"].decode(a)):this.decode,o=Ei(n)?a=>n["~codec"].encode(t(a)):t,s={decode:r,encode:o};return l.Update(this.type,{"~codec":s},{})}},Jo=class{constructor(t){this.type=t}Decode(t){return new Vo(this.type,t)}}});function gg(e){return Br(e)}function Ir(e){return Fe(e)&&u.HasPropertyKey(e,"~immutable")}var Yo=m(()=>{R();B();Xo()});function wn(e,t={}){return j("AddReadonly",[e],t)}function $r(e,t={}){return Ko(e,t)}var Zo=m(()=>{se();hi()});function xg(e){return $r(e)}function wr(e){return Fe(e)&&u.HasPropertyKey(e,"~readonly")}var Qo=m(()=>{R();B();Zo()});function MA(e,t){let n=tp(e)?[...e["~refine"],t]:[t];return l.Update(e,{"~refine":n},{})}function hg(...e){let[t,n,r]=In.Match(e,{3:(o,s,a)=>[o,s,a],2:(o,s)=>[o,s,()=>"Refine Error"]});return MA(t,{check:n,error:r})}function CA(e){return u.IsObjectNotArray(e)&&u.HasPropertyKey(e,"check")&&u.HasPropertyKey(e,"error")&&u.IsFunction(e.check)&&u.IsFunction(e.error)}function tp(e){return Fe(e)&&u.HasPropertyKey(e,"~refine")&&u.IsArray(e["~refine"])&&u.Every(e["~refine"],0,t=>CA(t))}var np=m(()=>{zr();v();R();B()});function es(e){return l.Create({"~kind":"BigInt"},{type:"bigint"},e)}function kn(e){return C(e,"BigInt")}var yg,kr=m(()=>{v();B();yg="-?(?:0|[1-9][0-9]*)n"});function Si(e){return l.Create({"~kind":"Boolean"},{type:"boolean"},e)}function Bt(e){return C(e,"Boolean")}var Xn=m(()=>{v();B()});function ts(e){return l.Create({"~kind":"Identifier"},{name:e})}function bg(e){return C(e,"Identifier")}var rp=m(()=>{v();B()});function Tr(e){return l.Create({"~kind":"Integer"},{type:"integer"},e)}function lt(e){return C(e,"Integer")}var Pi,Tn=m(()=>{v();B();Pi="-?(?:0|[1-9][0-9]*)"});function LA(e){return u.IsBigInt(e)?"bigint":u.IsBoolean(e)?"boolean":u.IsNumber(e)?"number":u.IsString(e)?"string":(()=>{throw new op(e)})()}function ee(e,t){return l.Create({"~kind":"Literal"},{type:LA(e),const:e},t)}function Ai(e){return u.IsBigInt(e)||u.IsBoolean(e)||u.IsNumber(e)||u.IsString(e)}function Ig(e){return ue(e)&&u.IsNumber(e.const)}function $g(e){return ue(e)&&u.IsString(e.const)}function ue(e){return C(e,"Literal")}var op,Oe=m(()=>{v();R();B();op=class extends Error{constructor(t){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:t},writable:!1,configurable:!1,enumerable:!1})}}});function Hr(e){return l.Create({"~kind":"Null"},{type:"null"},e)}function Vr(e){return C(e,"Null")}var Jr=m(()=>{v();B()});function Pt(e){return l.Create({"~kind":"Number"},{type:"number"},e)}function Me(e){return C(e,"Number")}var Ri,dt=m(()=>{v();B();Ri="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?"});function Yr(e){return l.Create({"~kind":"Symbol"},{type:"symbol"},e)}function Zn(e){return C(e,"Symbol")}var Er=m(()=>{v();B()});function vr(...e){let[t,n,r]=In.Match(e,{3:(o,s,a)=>[o,s,a],2:(o,s)=>[o,s,s],1:o=>[o,He(),He()]});return l.Create({"~kind":"Parameter"},{name:t,extends:n,equals:r},{})}function wg(e){return C(e,"Parameter")}var sp=m(()=>{zr();v();B();Qe()});function Ht(e){return l.Create({"~kind":"String"},{type:"string"},e)}function ft(e){return C(e,"String")}var Oi,Vt=m(()=>{v();B();Oi=".*"});function V(e,t={}){return l.Create({"~kind":"Union"},{anyOf:e},t)}function L(e){return C(e,"Union")}function kg(e){return l.Discard(e,["~kind","anyOf"])}var J=m(()=>{v();B()});function ns(e){let t=Tg(e);return u.IsEqual(t.length,2)?t[0]:[]}var rs=m(()=>{R();Mi()});function FA(e){return!0}function Eg(e){return u.ShiftLeft(e,(t,n)=>jA(t)?Eg(n):!1,()=>!0)}function vg(e){return u.IsEqual(e.length,0)?!1:Eg(e)}function jA(e){return L(e)?vg(e.anyOf):ue(e)?FA(e.const):!1}function Ci(e){return vg(e)}var Li=m(()=>{R();Oe();J()});function Fi(e){return l.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}var ji=m(()=>{v()});function Sg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Sg(o,t,[...n,`${r}${t}`]),()=>n)}function DA(e,t){return u.IsEqual(e.length,0)?[`${t}`]:Sg(e,t)}function Pg(e,t,n=[]){return u.ShiftLeft(t,(r,o)=>Pg(e,o,[...n,...Ag(e,r)]),()=>n)}function Ag(e,t){return L(t)?Pg(e,t.anyOf):ue(t)?DA(e,t.const):De()}function Rg(e,t){return u.ShiftLeft(t,(n,r)=>Rg(Ag(e,n),r),()=>e)}function NA(e){return e.map(t=>ee(t))}function qA(e){let t=Rg([],e),n=NA(t);return V(n)}function _A(e){return u.IsEqual(e.length,0)?De():u.IsEqual(e.length,1)&&ue(e[0])?e[0]:qA(e)}function ip(e){let t=ns(e);return u.IsEqual(t.length,0)?Ht():Ci(t)?_A(t):Fi(e)}function Og(e){let t=ip(e);return Se(t)?Ht():t}var Di=m(()=>{R();$n();Oe();Vt();wt();J();rs();Li();ji()});function kt(e,t){let n="object",r={[e]:t};return l.Create({"~kind":"Record"},{type:n,patternProperties:r})}var Qn=m(()=>{v()});function Mg(e){return kt(on,e)}var Cg=m(()=>{Ve();Qn()});function Lg(e){return K({true:e,false:e})}var Fg=m(()=>{ce()});function Ce(e,t={}){let[n,r,o]=[e,e.length,!1];return l.Create({"~kind":"Tuple"},{type:"array",additionalItems:o,items:n,minItems:r},t)}function ge(e){return C(e,"Tuple")}function jg(e){return l.Discard(e,["~kind","type","items","minItems","additionalItems"])}var Ne=m(()=>{v();B()});function UA(e){return l.Discard(e,["~readonly"])}function ap(e,t){return l.Update(UA(e),{},t)}function Dg(e,t,n,r){let o=k(e,t,n);return ap(o,r)}var mp=m(()=>{v();N()});function Ng(e,t={}){return j("RemoveReadonly",[e],t)}function qg(e,t={}){return ap(e,t)}var up=m(()=>{se();mp()});function KA(e){return l.Discard(e,["~optional"])}function pp(e,t){return l.Update(KA(e),{},t)}function _g(e,t,n,r){let o=k(e,t,n);return pp(o,r)}var cp=m(()=>{v();N()});function Ug(e,t={}){return j("RemoveOptional",[e],t)}function Ni(e,t={}){return pp(e,t)}var qi=m(()=>{se();cp()});function lp(e){return e.reduceRight((n,r,o)=>({[o]:r,...n}),{})}function Kg(e){let t=lp(e.items);return K(t)}var dp=m(()=>{ce()});function fp(e){return me(e)||ge(e)}function GA(e,t){return wr(e)?!!wr(t):!1}function WA(e,t){return ot(e)?!!ot(t):!1}function zA(e,t){let n=GA(e,t),r=WA(e,t),o=we([e,t]),s=qg(Ni(o));return n&&r?$r(hr(s)):n&&!r?$r(s):!n&&r?hr(s):s}function BA(e,t,n){return n in e?n in t?zA(e[n],t[n]):e[n]:n in t?t[n]:le()}function HA(e,t){return[...new Set([...u.Keys(e),...u.Keys(t)])].reduce((o,s)=>({...o,[s]:BA(e,t,s)}),{})}function Gg(e){return me(e)?e.properties:ge(e)?lp(e.items):{}}function Wg(e,t){let n=Gg(e),r=Gg(t),o=HA(n,r);return K(o)}var gp=m(()=>{R();Qo();Yn();ce();Be();Ne();Zo();zo();up();qi();dp();H()});function VA(e,t){let n=is(e,t);return u.IsEqual(n,ss)?e:u.IsEqual(n,_i)||u.IsEqual(n,os)?t:le()}function JA(e,t){let n=fp(e),r=fp(t);return n&&r?Wg(e,t):n&&!r?e:!n&&r?t:VA(e,t)}function zg(e,t){return nn(e)||Te(e)?e:Ae(e)||nn(t)||Te(t)?t:Ae(t)?e:JA(e,t)}var xp=m(()=>{R();bt();Be();Qe();as();gp()});function YA(e,t){return L(e)||L(t)}function XA(e,t){let n=Jt(e),r=Jt(t);return YA(n,r)?we([n,r]):zg(n,r)}function Bg(e,t,n=[]){return u.ShiftLeft(t,(r,o)=>Bg(e,o,[...n,XA(r,e)]),()=>u.IsEqual(n.length,0)?[e]:n)}function Hg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Hg(o,t,[...n,...ms([r],t)]),()=>n)}function ms(e,t=[]){return u.ShiftLeft(e,(n,r)=>L(n)?ms(r,Hg(n.anyOf,t)):ms(r,Bg(n,t)),()=>t)}var hp=m(()=>{R();J();xp();H();H()});function ZA(e,t){let n=nt({},e,t);return G.IsExtendsTrueLike(n)?[]:[e]}function Vg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Vg(o,t,[...n,...ZA(r,t)]),()=>n)}function Ui(e,t){let n=Jt(e),r=L(n)?n.anyOf:[n],o=Vg(r,t);return Tt(o)}var yp=m(()=>{R();J();En();H();H()});function sn(e,t,n){let r=we([e,t]),o=Ui(n,e);return Tt([r,o])}function gt(e,t=[]){return u.ShiftLeft(e,(n,r)=>gt(r,[...t,ee(n)]),()=>Tt(t))}function we(e){let t=ms(e),n=bp(t);return Tt(n)}function st(e){let t=Og(e);return Jt(t)}function Tt(e){let t=bp(e);return er(t)}function Jt(e){return ve(e)?sn(e.if,e.then,e.else):tt(e)?gt(e.enum):Q(e)?we(e.allOf):Se(e)?st(e.pattern):L(e)?Tt(e.anyOf):e}function er(e){return u.IsEqual(e.length,1)?e[0]:u.IsEqual(e.length,0)?le():V(e)}var H=m(()=>{R();St();rn();je();Oe();Be();wt();J();hp();Ip();yp();Di()});function Jg(e,t){let n=gt(e);return tr(n,t)}var Yg=m(()=>{us();H()});function Xg(e,t){return kt(nr,t)}var Zg=m(()=>{Ve();Qn()});function Qg(e,t){let n=we(e);return tr(n,t)}var ex=m(()=>{H();us()});function tx(e,t){return u.IsString(e)||u.IsNumber(e)?K({[e]:t}):u.IsEqual(e,!1)?K({false:t}):u.IsEqual(e,!0)?K({true:t}):K({})}var nx=m(()=>{R();ce()});function rx(e,t){return kt(Xr,t)}var ox=m(()=>{Ve();Qn()});function sx(e,t){return u.HasPropertyKey(e,"pattern")&&(u.IsString(e.pattern)||e.pattern instanceof RegExp)?kt(e.pattern.toString(),t):kt(on,t)}var ix=m(()=>{R();Ve();Qn()});function ax(e,t){let n=ns(e);return Ci(n)?tr(st(e),t):kt(e,t)}var mx=m(()=>{us();rs();Li();H();Qn()});function QA(e){return L(e)?Zr(e.anyOf):[e]}function Zr(e,t=[]){return u.ShiftLeft(e,(n,r)=>Zr(r,[...t,...QA(n)]),()=>t)}var Ki=m(()=>{R();J()});function eR(e){return e.some(t=>ft(t)||Me(t)||lt(t))}function tR(e,t){return u.IsEqual(eR(e),!0)?kt(on,t):void 0}function nR(e,t){return e.reduce((n,r)=>ue(r)&&(u.IsString(r.const)||u.IsNumber(r.const))?{...n,[r.const]:t}:n,{})}function rR(e,t){let n=nR(e,t);return K(n)}function ux(e,t){let n=Zr(e),r=tR(n,t);return Fe(r)?r:rR(n,t)}var px=m(()=>{R();B();Oe();dt();Tn();ce();Vt();Ve();Ki();Qn()});function tr(e,t){return Te(e)?Mg(t):Bt(e)?Lg(t):tt(e)?Jg(e.enum,t):lt(e)?Xg(e,t):Q(e)?Qg(e.allOf,t):ue(e)?tx(e.const,t):Me(e)?rx(e,t):L(e)?ux(e.anyOf,t):ft(e)?sx(e,t):Se(e)?ax(e.pattern,t):K({})}var us=m(()=>{bt();Xn();rn();je();Tn();Oe();dt();ce();Vt();wt();J();Cg();Fg();Yg();Zg();ex();nx();ox();ix();mx();px()});function $p(e,t,n){return z([e])?l.Update(tr(e,t),{},n):Wi(e,t,n)}function cx(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return $p(s,a,o)}var Gi=m(()=>{v();Ve();us();N()});function Wi(e,t,n={}){return j("Record",[e,t],n)}function zi(e,t,n={}){return $p(e,t,n)}function lx(e,t){return kt(e,t)}function Bi(e){return u.IsEqual(e,on)?Ht():u.IsEqual(e,nr)?Tr():u.IsEqual(e,Xr)?Pt():ip(e)}function Yt(e){return u.Keys(e.patternProperties)[0]}function Qr(e){let t=Yt(e);return Bi(t)}function xt(e){return e.patternProperties[Yt(e)]}function rt(e){return C(e,"Record")}var nr,Xr,on,Ve=m(()=>{v();R();B();Tn();dt();Vt();se();Di();Qn();Gi();nr=`^${Pi}$`,Xr=`^${Ri}$`,on=`^${Oi}$`});function Sr(e){return l.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function rr(e){return C(e,"Rest")}var eo=m(()=>{v();B()});var dx=m(()=>{});function Hi(e){return l.Create({"~kind":"This"},{$ref:"#"},e)}function Vi(e){return C(e,"This")}var Ji=m(()=>{v();B()});function to(e){return l.Create({"~kind":"Undefined"},{type:"undefined"},e)}function no(e){return C(e,"Undefined")}var ro=m(()=>{v();B()});function Yi(e){return l.Create({"~kind":"Void"},{type:"void"},e)}function vn(e){return C(e,"Void")}var Pr=m(()=>{v();B()});var Xi=m(()=>{ep();Yo();Yn();Qo();np();bt();ct();kr();Xn();oo();Kt();It();se();rn();Gt();Wo();rp();St();zt();Tn();je();Oe();Be();Jr();dt();Qe();Er();ce();sp();yr();Ve();Wt();eo();B();dx();Vt();Er();wt();Ji();Ne();ro();J();Qe();ki();Pr()});function sR(e,t){return u.IsEqual(e,"Array")?Ft(t[0]):u.IsEqual(e,"Capitalize")?Qi(t[0]):u.IsEqual(e,"ConstructorParameters")?oa(t[0]):u.IsEqual(e,"Evaluate")?gy(t[0]):u.IsEqual(e,"Exclude")?sa(t[0],t[1]):u.IsEqual(e,"Extract")?ia(t[0],t[1]):u.IsEqual(e,"Index")?ds(t[0],t[1]):u.IsEqual(e,"InstanceType")?aa(t[0]):u.IsEqual(e,"Lowercase")?ea(t[0]):u.IsEqual(e,"NonNullable")?ma(t[0]):u.IsEqual(e,"Omit")?ua(t[0],t[1]):u.IsEqual(e,"Parameters")?pa(t[0]):u.IsEqual(e,"Partial")?ca(t[0]):u.IsEqual(e,"Pick")?la(t[0],t[1]):u.IsEqual(e,"Readonly")?da(t[0]):u.IsEqual(e,"KeyOf")?fs(t[0]):u.IsEqual(e,"Record")?Wi(t[0],t[1]):u.IsEqual(e,"Required")?fa(t[0]):u.IsEqual(e,"ReturnType")?ga(t[0]):u.IsEqual(e,"Uncapitalize")?ta(t[0]):u.IsEqual(e,"Uppercase")?na(t[0]):ls(Dn(e),t)}function Ar(){throw Error("Unreachable")}function yx(e,t=[]){return u.ShiftLeft(e,(n,r)=>yx(r,[...t,n[1]]),()=>t)}function Nn(e){return u.IsEqual(e.length,3)?[e[0],...yx(e[1])]:[]}function bx(e){return vr(e[0],e[2],e[4])}function Ix(e){return vr(e[0],e[2],e[2])}function $x(e){return vr(e[0],He(),e[2])}function wx(e){return vr(e,He(),He())}function kx(e){return Nn(e)}function Tx(e){return e[1]}function Ex(e){return Nn(e)}function vx(e){return e[1]}function Sx(e){return sR(e[0],e[1])}function Px(e){return null}function Ax(e){return Ht()}function Rx(e){return Pt()}function Ox(e){return Si()}function Mx(e){return to()}function Cx(e){return Hr()}function Lx(e){return Tr()}function Fx(e){return es()}function jx(e){return He()}function Dx(e){return Wr()}function Nx(e){return K({})}function qx(e){return le()}function _x(e){return Yr()}function Ux(e){return Yi()}function Kx(e){return Hi()}function Gx(e){return ee(BigInt(e))}function Wx(e){return ee(u.IsEqual(e,"true"))}function zx(e){return ee(parseFloat(e))}function Bx(e){return ee(e)}function Hx(e){return e[1]}function Vx(e){return ee(e)}function Jx(e){return u.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function Yx(e){return e[1]}function Xx(e){return Zi(e)}function Zx(e){return u.IsEqual(e.length,6)?br(e[1],e[3],e[5]):br(e[1],e[3],He())}function Qx(e){return e.length>0}function eh(e){return e.reduce((t,n)=>u.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function th(e){return u.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function nh(e){return u.IsArray(e)&&u.IsEqual(e.length,3)?e[1]:e}function rh(e){return u.IsEqual(e.length,2)?e[1]:[]}function fx(e,t){return t.reduce((n,r)=>{let o=r;return u.IsEqual(o.length,1)?ds(n,o[0]):u.IsEqual(o.length,0)?Ft(n):Ar()},e)}function gx(e,t){return u.IsEqual(t.length,3)?ra(e,t[0],t[1],t[2]):e}function iR(e,t){return u.IsArray(t)&&u.IsEqual(t.length,0)?e:xa(e,t)}function oh(e){let[t,n,r,o,s]=e;return iR(gx(t?fs(fx(n,r)):fx(n,r),o),s)}function wp(e,t){return u.IsEqual(t.length,3)?(()=>{let[n,r,o]=t,s=wp(r,o);if(u.IsEqual(n,"&"))return Q(s)?$t([e,...s.allOf]):$t([e,s]);if(u.IsEqual(n,"|"))return L(s)?V([e,...s.anyOf]):V([e,s]);Ar()})():e}function sh(e){let[t,n]=e;return wp(t,n)}function ih(e){let[t,n]=e;return wp(t,n)}function ah(e){return fy(e[1])}function mh(e){return e[1]}function uh(e){return Jn(e[0],e[2])}function ph(e){return u.IsEqual(e.length,4)?Bo(e[1],e[3]):u.IsEqual(e.length,2)?Bo(e[1],He()):Ar()}function ch(e){return`${e}`}function lh(e){return lt(e[3])?nr:Me(e[3])?Xr:Zn(e[3])?on:ft(e[3])?on:Ar()}function dh(e){return e.length>0}function fh(e){return e.length>0}function gh(e){let[t,n,r,o,s]=e;return{[n]:t&&r?wn(yn(s)):t&&!r?wn(s):!t&&r?yn(s):s}}function xh(e){return Nn(e)}function hh(e){return e.reduce((t,n)=>u.HasPropertyKey(n,nr)||u.HasPropertyKey(n,Xr)||u.HasPropertyKey(n,on)?[t[0],l.Assign(t[1],n)]:[l.Assign(t[0],n),t[1]],[{},{}])}function yh(e){return hh(e[1])}function bh(e){let[t,n]=e,r=u.IsEqual(u.Keys(n).length,0)?{}:{patternProperties:n};return K(t,r)}function Ih(e){return u.IsEqual(e.length,5)?wn(yn(e[4])):u.IsEqual(e.length,3)?e[2]:u.IsEqual(e.length,4)?u.IsEqual(e[2],"readonly")?wn(e[3]):yn(e[3]):Ar()}function $h(e){if(!u.IsArray(e)||!u.IsEqual(e.length,3))return e;let[t,n,r]=e;return t&&r?wn(yn(n)):t&&!r?wn(n):!t&&r?yn(n):n}function wh(e){return u.IsEqual(e.length,2)?Sr(e[1]):u.IsEqual(e.length,1)?e[0]:Ar()}function kh(e){return Nn(e)}function Th(e){return Ce(e[1])}function Eh(e){return wn(yn(e[4]))}function vh(e){return wn(e[3])}function Sh(e){return yn(e[3])}function Ph(e){return e[2]}function Ah(e){return u.IsEqual(e.length,2)?Sr(e[1]):u.IsEqual(e.length,1)?e[0]:Ar()}function Rh(e){return Nn(e)}function Oh(e){return hn(e[1],e[4])}function Mh(e){return xn(e[2],e[5])}function xx(e,t){return u.IsEqual(e,"remove")?Ng(t):u.IsEqual(e,"add")?wn(t):t}function Ch(e){return u.IsEqual(e.length,2)&&u.IsEqual(e[0],"-")?"remove":u.IsEqual(e.length,2)&&u.IsEqual(e[0],"+")||u.IsEqual(e.length,1)?"add":"none"}function hx(e,t){return u.IsEqual(e,"remove")?Ug(t):u.IsEqual(e,"add")?yn(t):t}function Lh(e){return u.IsEqual(e.length,2)&&u.IsEqual(e[0],"-")?"remove":u.IsEqual(e.length,2)&&u.IsEqual(e[0],"+")||u.IsEqual(e.length,1)?"add":"none"}function Fh(e){return u.IsEqual(e.length,2)?[e[1]]:[]}function jh(e){return u.IsArray(e[6])&&u.IsEqual(e[6].length,1)?ps(ts(e[3]),e[5],e[6][0],xx(e[1],hx(e[8],e[10]))):ps(ts(e[3]),e[5],Dn(e[3]),xx(e[1],hx(e[8],e[10])))}function Dh(e){return Dn(e)}function Nh(e){return BigInt(e)}function qh(e){return parseFloat(e)}function _h(e){return u.IsEqual(e,"true")}function Uh(e){return null}function Kh(e){return{[e[0]]:e[2]}}function Gh(e){return Nn(e)}function aR(e){return e.reduce((t,n)=>l.Assign(t,n),{})}function Wh(e){return aR(e[1])}function zh(e){return Nn(e)}function Bh(e){return e[1]}function Hh(e){return es()}function Vh(e){return Ht()}function Jh(e){return Pt()}function Yh(e){return Tr()}function Xh(e){return le()}function Zh(e){return ee(e)}function Qh(e){return V(e[1])}function ey(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function ty(e){return[e[0],...e[1]]}function ny(e){return e[1]}function ry(e){return Nn(e)}function oy(e){return u.IsEqual(e.length,2)?e[1]:[]}function sy(e){let t=e[2],n=e[3],[r,o]=e[4],s=u.IsEqual(u.Keys(o).length,0)?{}:{patternProperties:o};return{[e[1]]:Jn(t,cs(n,r,s))}}function iy(e){let t=e[2],[n,r]=e[3],o=u.IsEqual(u.Keys(r).length,0)?{}:{patternProperties:r};return{[e[1]]:cs(t,n,o)}}function ay(e){return{[e[1]]:Jn(e[2],e[4])}}function my(e){return{[e[1]]:e[3]}}function uy(e){return null}function py(e){return Nn(e)}function cy(e){return e[1]}function ly(e){let[t,n]=[e[0],e[1]];return xy(l.Assign(t,hh(n)[0]))}var dy=m(()=>{v();R();Xi();so()});var qn=m(()=>{Kr()});function gs(e){return re(e.length,2)}function Y(e,t,n){return gs(e)?t(e[0],e[1]):n()}var At=m(()=>{qn()});function pR(e,t){return re(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function Ee(e,t){for(let n=0;n<e.length;n++){let r=pR(e[n],t);if(gs(r))return r}return[]}var Sn=m(()=>{At();qn()});function kp(e,t){return Array.from({length:t-e+1},(n,r)=>String.fromCharCode(e+r))}var hy,Tp,Ep,io,yy,ao,or,ha,by,ya,it=m(()=>{hy=[...kp(97,122),...kp(65,90)],Tp="0",Ep=kp(49,57),io=[Tp,...Ep],yy=" ",ao=`
12
+ `,or="_",ha=".",by="$",ya="-"});function wy(e){let t=e.indexOf(lR);return re(t,-1)?"":e.slice(t+2)}function ky(e){let t=e.indexOf(ao);return re(t,-1)?"":e.slice(t)}function dR(e){return e.replace(/^[ \t\r\f\v]+/,"")}function ba(e){let t=dR(e);return t.startsWith($y)?ba(wy(t.slice(2))):t.startsWith(Iy)?ba(ky(t.slice(2))):t}function Je(e){let t=e.trimStart();return t.startsWith($y)?Je(wy(t.slice(2))):t.startsWith(Iy)?Je(ky(t.slice(2))):t}var Iy,$y,lR,Pn=m(()=>{qn();it();Iy="//",$y="/*",lR="*/"});function Ia(e,t){return Y(Ee([e],t),(n,r)=>[n,r],()=>["",t])}var vp=m(()=>{At();Sn()});function fR(e,t){return e.includes(t)}function mo(e,t,n,r=""){return Y(Ee(e,n),(o,s)=>fR(t,o)?mo(e,t,s,r):mo(e,t,s,`${r}${o}`),()=>[r,n])}var Sp=m(()=>{At();Sn()});function gR(e){return Ee(Ep,e)}function hR(e){return mo(xR,[or],e)}function yR(e){return Y(Ee([Tp],e),(t,n)=>[t,n],()=>Y(gR(e),(t,n)=>Y(hR(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[]))}function $a(e){return yR(Je(e))}var xR,wa=m(()=>{At();Pn();Sn();Sp();it();it();it();it();xR=[...io,or]});function bR(e){return Ia(ya,e)}function IR(e){return Y(bR(e),(t,n)=>Y($a(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Ty(e){return IR(Je(e))}var Pp=m(()=>{At();Pn();vp();it();wa()});function $R(e){return Y(Ty(e),(t,n)=>Y(Ee(["n"],n),(r,o)=>[`${t}`,o],()=>[]),()=>[])}function Ap(e){return $R(e)}var Ey=m(()=>{At();Sn();Pp()});function Rp(e,t){return Ee([e],t)}function f(e,t){return re(e,"")?["",t]:e.startsWith(ao)?Rp(e,ba(t)):e.startsWith(yy)?Rp(e,t):Rp(e,Je(t))}var vy=m(()=>{qn();Pn();Pn();Sn();it();it()});function wR(e){return Ee(Sy,e)}function Py(e,t=""){return Y(Ee(kR,e),(n,r)=>Py(r,`${t}${n}`),()=>[t,e])}function TR(e){return Y(wR(e),(t,n)=>Y(Py(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Pe(e){return TR(Je(e))}var Sy,kR,Ay=m(()=>{At();Pn();Sn();it();it();it();it();Sy=[...hy,or,by];kR=[...Sy,...io]});function vR(e){return gs(Ee([ha],e))}function Ry(e){return Y(mo(ER,[or],e),(t,n)=>re(t,"")?[]:[t,n],()=>[])}function SR(e){return Y(Ee([ha],e),(t,n)=>Y(Ry(n),(r,o)=>[`0${t}${r}`,o],()=>[]),()=>[])}function PR(e){return Y($a(e),(t,n)=>Y(Ee([ha],n),(r,o)=>Y(Ry(o),(s,a)=>[`${t}${r}${s}`,a],()=>[`${t}`,o]),()=>[`${t}`,n]),()=>[])}function AR(e){return vR(e)?SR(e):PR(e)}function Oy(e){return AR(Je(e))}var ER,Op=m(()=>{qn();At();Pn();Sn();Sp();it();it();wa();ER=[...io,or]});function RR(e){return Ia(ya,e)}function OR(e){return Y(RR(e),(t,n)=>Y(Oy(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function ka(e){return OR(Je(e))}var My=m(()=>{At();Pn();vp();it();Op()});var Cy=m(()=>{qn()});function MR(e){return re(e,"")?[]:[e.slice(0,1),e.slice(1)]}function Ly(e,t){return gi(e,(n,r)=>t.startsWith(n)?!0:Ly(r,t),()=>!1)}function sr(e,t,n=""){return Y(MR(t),(r,o)=>Ly(e,t)?[n,t]:sr(e,o,`${n}${r}`),()=>[])}var Ta=m(()=>{At();qn()});function CR(e,t,n){return Y(Ee([e],n),(r,o)=>Y(sr([t],o),(s,a)=>Y(Ee([t],a),(p,c)=>[`${s}`,c],()=>[]),()=>[]),()=>[])}function LR(e,t,n){return Y(Ee([e],n),(r,o)=>Y(sr([ao,t],o),(s,a)=>Y(Ee([t],a),(p,c)=>[`${s}`,c],()=>[]),()=>[]),()=>[])}function Fy(e,t,n,r){return n?CR(e,t,Je(r)):LR(e,t,Je(r))}var Mp=m(()=>{At();Pn();it();Sn();Ta()});function FR(e,t){return Ee(e,t)}function jR(e,t){return Fy(e,e,!1,t)}function DR(e,t){return Y(FR(e,t),(n,r)=>jR(n,`${n}${r}`),()=>[])}function Ea(e,t){return DR(e,Je(t))}var jy=m(()=>{At();Sn();Pn();Mp()});function Dy(e,t){return Y(sr(e,t),(n,r)=>re(n,"")?[]:[n,r],()=>[])}var Ny=m(()=>{qn();At();Ta()});var qy=m(()=>{Ey();vy();Ay();Pp();My();Cy();Mp();jy();wa();Op();Ny();Ta()});var i,qR,_R,UR,KR,Ky,Gy,GR,Fp,Wy,WR,zR,BR,zy,By,Hy,HR,VR,JR,Vy,YR,XR,ZR,QR,eO,Jy,tO,nO,rO,Cp,Yy,jp,oO,sO,iO,aO,mO,uO,pO,Xy,cO,lO,dO,fO,Zy,Qy,eb,tb,va,gO,xO,hO,yO,oe,bO,IO,$O,wO,nb,rb,ob,sb,Sa,ib,kO,Dp,TO,EO,_y,ab,mb,vO,SO,PO,AO,RO,OO,Uy,ub,pb,cb,MO,CO,LO,FO,jO,DO,NO,qO,_O,UO,KO,GO,WO,lb,db,zO,fb,gb,BO,HO,Np,VO,JO,YO,XO,ZO,QO,eM,tM,xb,Lp,qp,Tg,hb,nM,yb,rM,oM,sM,iM,aM,bb,Ib,mM,_p,uM,$b,Mi=m(()=>{dy();qy();i=(e,t,n=()=>[])=>e.length===2?t(e):n(),qR=e=>i(i(Pe(e),([t,n])=>i(f("extends",n),([r,o])=>i(oe(o),([s,a])=>i(f("=",a),([p,c])=>i(oe(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[bx(t),n]),_R=e=>i(i(Pe(e),([t,n])=>i(f("extends",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Ix(t),n]),UR=e=>i(i(Pe(e),([t,n])=>i(f("=",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[$x(t),n]),KR=e=>i(Pe(e),([t,n])=>[wx(t),n]),Ky=e=>i(i(qR(e),([t,n])=>[t,n],()=>i(_R(e),([t,n])=>[t,n],()=>i(UR(e),([t,n])=>[t,n],()=>i(KR(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Gy=(e,t=[])=>i(i(f(",",e),([n,r])=>i(Ky(r),([o,s])=>[[n,o],s])),([n,r])=>Gy(r,[...t,n]),()=>[t,e]),GR=e=>i(i(i(Ky(e),([t,n])=>i(Gy(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[kx(t),n]),Fp=e=>i(i(f("<",e),([t,n])=>i(GR(n),([r,o])=>i(f(">",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Tx(t),n]),Wy=(e,t=[])=>i(i(f(",",e),([n,r])=>i(oe(r),([o,s])=>[[n,o],s])),([n,r])=>Wy(r,[...t,n]),()=>[t,e]),WR=e=>i(i(i(oe(e),([t,n])=>i(Wy(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ex(t),n]),zR=e=>i(i(f("<",e),([t,n])=>i(WR(n),([r,o])=>i(f(">",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[vx(t),n]),BR=e=>i(i(Pe(e),([t,n])=>i(zR(n),([r,o])=>[[t,r],o])),([t,n])=>[Sx(t),n]),zy=e=>i(i(i(f(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Px(t),n]),By=e=>i(f("string",e),([t,n])=>[Ax(t),n]),Hy=e=>i(f("number",e),([t,n])=>[Rx(t),n]),HR=e=>i(f("boolean",e),([t,n])=>[Ox(t),n]),VR=e=>i(f("undefined",e),([t,n])=>[Mx(t),n]),JR=e=>i(f("null",e),([t,n])=>[Cx(t),n]),Vy=e=>i(f("integer",e),([t,n])=>[Lx(t),n]),YR=e=>i(f("bigint",e),([t,n])=>[Fx(t),n]),XR=e=>i(f("unknown",e),([t,n])=>[jx(t),n]),ZR=e=>i(f("any",e),([t,n])=>[Dx(t),n]),QR=e=>i(f("object",e),([t,n])=>[Nx(t),n]),eO=e=>i(f("never",e),([t,n])=>[qx(t),n]),Jy=e=>i(f("symbol",e),([t,n])=>[_x(t),n]),tO=e=>i(f("void",e),([t,n])=>[Ux(t),n]),nO=e=>i(f("this",e),([t,n])=>[Kx(t),n]),rO=e=>i(i(f("${",e),([t,n])=>i(oe(n),([r,o])=>i(f("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Hx(t),n]),Cp=e=>i(sr(["${","`"],e),([t,n])=>[Vx(t),n]),Yy=e=>i(i(i(Cp(e),([t,n])=>i(rO(n),([r,o])=>i(Yy(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(i(Cp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(Cp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[Jx(t),n]),jp=e=>i(i(f("`",e),([t,n])=>i(Yy(n),([r,o])=>i(f("`",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Yx(t),n]),oO=e=>i(jp(e),([t,n])=>[Xx(t),n]),sO=e=>i(i(i(f("if",e),([t,n])=>i(oe(n),([r,o])=>i(f("then",o),([s,a])=>i(oe(a),([p,c])=>i(f("else",c),([h,I])=>i(oe(I),([T,M])=>[[t,r,s,p,h,T],M])))))),([t,n])=>[t,n],()=>i(i(f("if",e),([t,n])=>i(oe(n),([r,o])=>i(f("then",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>[])),([t,n])=>[Zx(t),n]),iO=e=>i(Ap(e),([t,n])=>[Gx(t),n]),aO=e=>i(i(f("true",e),([t,n])=>[t,n],()=>i(f("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[Wx(t),n]),mO=e=>i(ka(e),([t,n])=>[zx(t),n]),uO=e=>i(Ea(["'",'"'],e),([t,n])=>[Bx(t),n]),pO=e=>i(i(i(f("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Qx(t),n]),Xy=(e,t=[])=>i(i(i(f("[",e),([n,r])=>i(oe(r),([o,s])=>i(f("]",s),([a,p])=>[[n,o,a],p]))),([n,r])=>[n,r],()=>i(i(f("[",e),([n,r])=>i(f("]",r),([o,s])=>[[n,o],s])),([n,r])=>[n,r],()=>[])),([n,r])=>Xy(r,[...t,n]),()=>[t,e]),cO=e=>i(Xy(e),([t,n])=>[eh(t),n]),lO=e=>i(i(i(f("extends",e),([t,n])=>i(oe(n),([r,o])=>i(f("?",o),([s,a])=>i(oe(a),([p,c])=>i(f(":",c),([h,I])=>i(oe(I),([T,M])=>[[t,r,s,p,h,T],M])))))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[th(t),n]),dO=e=>i(i(i(f("(",e),([t,n])=>i(oe(n),([r,o])=>i(f(")",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(By(e),([t,n])=>[t,n],()=>i(Hy(e),([t,n])=>[t,n],()=>i(HR(e),([t,n])=>[t,n],()=>i(VR(e),([t,n])=>[t,n],()=>i(JR(e),([t,n])=>[t,n],()=>i(Vy(e),([t,n])=>[t,n],()=>i(YR(e),([t,n])=>[t,n],()=>i(XR(e),([t,n])=>[t,n],()=>i(ZR(e),([t,n])=>[t,n],()=>i(QR(e),([t,n])=>[t,n],()=>i(eO(e),([t,n])=>[t,n],()=>i(Jy(e),([t,n])=>[t,n],()=>i(tO(e),([t,n])=>[t,n],()=>i(nO(e),([t,n])=>[t,n],()=>i(iO(e),([t,n])=>[t,n],()=>i(aO(e),([t,n])=>[t,n],()=>i(mO(e),([t,n])=>[t,n],()=>i(uO(e),([t,n])=>[t,n],()=>i(oO(e),([t,n])=>[t,n],()=>i(sO(e),([t,n])=>[t,n],()=>i(TO(e),([t,n])=>[t,n],()=>i(SO(e),([t,n])=>[t,n],()=>i(CO(e),([t,n])=>[t,n],()=>i(MO(e),([t,n])=>[t,n],()=>i(DO(e),([t,n])=>[t,n],()=>i(BR(e),([t,n])=>[t,n],()=>i(NO(e),([t,n])=>[t,n],()=>[])))))))))))))))))))))))))))),([t,n])=>[nh(t),n]),fO=e=>i(i(i(f("with",e),([t,n])=>i(fb(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[rh(t),n]),Zy=e=>i(i(pO(e),([t,n])=>i(dO(n),([r,o])=>i(cO(o),([s,a])=>i(lO(a),([p,c])=>i(fO(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[oh(t),n]),Qy=e=>i(i(i(f("&",e),([t,n])=>i(Zy(n),([r,o])=>i(Qy(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),eb=e=>i(i(Zy(e),([t,n])=>i(Qy(n),([r,o])=>[[t,r],o])),([t,n])=>[sh(t),n]),tb=e=>i(i(i(f("|",e),([t,n])=>i(eb(n),([r,o])=>i(tb(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),va=e=>i(i(eb(e),([t,n])=>i(tb(n),([r,o])=>[[t,r],o])),([t,n])=>[ih(t),n]),gO=e=>i(i(f("readonly",e),([t,n])=>i(va(n),([r,o])=>[[t,r],o])),([t,n])=>[ah(t),n]),xO=e=>i(i(f("|",e),([t,n])=>i(va(n),([r,o])=>[[t,r],o])),([t,n])=>[mh(t),n]),hO=e=>i(i(Fp(e),([t,n])=>i(f("=",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[uh(t),n]),yO=e=>i(i(i(f("infer",e),([t,n])=>i(Pe(n),([r,o])=>i(f("extends",o),([s,a])=>i(va(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(f("infer",e),([t,n])=>i(Pe(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>[])),([t,n])=>[ph(t),n]),oe=e=>i(i(yO(e),([t,n])=>[t,n],()=>i(xO(e),([t,n])=>[t,n],()=>i(gO(e),([t,n])=>[t,n],()=>i(va(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),bO=e=>i(ka(e),([t,n])=>[ch(t),n]),IO=e=>i(Pe(e),([t,n])=>[t,n]),$O=e=>i(Ea(["'",'"'],e),([t,n])=>[t,n]),wO=e=>i(i(f("[",e),([t,n])=>i(Pe(n),([r,o])=>i(f(":",o),([s,a])=>i(i(Vy(a),([p,c])=>[p,c],()=>i(Hy(a),([p,c])=>[p,c],()=>i(By(a),([p,c])=>[p,c],()=>i(Jy(a),([p,c])=>[p,c],()=>[])))),([p,c])=>i(f("]",c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[lh(t),n]),nb=e=>i(i(bO(e),([t,n])=>[t,n],()=>i(IO(e),([t,n])=>[t,n],()=>i($O(e),([t,n])=>[t,n],()=>i(wO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),rb=e=>i(i(i(f("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[dh(t),n]),ob=e=>i(i(i(f("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[fh(t),n]),sb=e=>i(i(rb(e),([t,n])=>i(nb(n),([r,o])=>i(ob(o),([s,a])=>i(f(":",a),([p,c])=>i(oe(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[gh(t),n]),Sa=e=>i(i(i(f(",",e),([t,n])=>i(f(`
13
13
  `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f(";",e),([t,n])=>i(f(`
14
14
  `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f(",",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(f(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(f(`
15
- `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),sb=(e,t=[])=>i(i(va(e),([n,r])=>i(ob(r),([o,s])=>[[n,o],s])),([n,r])=>sb(r,[...t,n]),()=>[t,e]),wO=e=>i(i(i(ob(e),([t,n])=>i(sb(n),([r,o])=>i(i(va(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[gh(t),n]),Fp=e=>i(i(f("{",e),([t,n])=>i(wO(n),([r,o])=>i(f("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[hh(t),n]),kO=e=>i(Fp(e),([t,n])=>[yh(t),n]),TO=e=>i(i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(f("readonly",a),([p,c])=>i(oe(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[t,n],()=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(f("readonly",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[bh(t),n]),qy=e=>i(i(TO(e),([t,n])=>[t,n],()=>i(i(nb(e),([t,n])=>i(oe(n),([r,o])=>i(rb(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>[])),([t,n])=>[Ih(t),n]),ib=e=>i(i(i(f("...",e),([t,n])=>i(qy(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(qy(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[$h(t),n]),ab=(e,t=[])=>i(i(f(",",e),([n,r])=>i(ib(r),([o,s])=>[[n,o],s])),([n,r])=>ab(r,[...t,n]),()=>[t,e]),EO=e=>i(i(i(ib(e),([t,n])=>i(ab(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[wh(t),n]),vO=e=>i(i(f("[",e),([t,n])=>i(EO(n),([r,o])=>i(f("]",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[kh(t),n]),SO=e=>i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(f("readonly",a),([p,c])=>i(oe(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[Th(t),n]),PO=e=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(f("readonly",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[Eh(t),n]),AO=e=>i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[vh(t),n]),RO=e=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Sh(t),n]),_y=e=>i(i(SO(e),([t,n])=>[t,n],()=>i(PO(e),([t,n])=>[t,n],()=>i(AO(e),([t,n])=>[t,n],()=>i(RO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),mb=e=>i(i(i(f("...",e),([t,n])=>i(_y(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(_y(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[Ph(t),n]),ub=(e,t=[])=>i(i(f(",",e),([n,r])=>i(mb(r),([o,s])=>[[n,o],s])),([n,r])=>ub(r,[...t,n]),()=>[t,e]),pb=e=>i(i(i(mb(e),([t,n])=>i(ub(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ah(t),n]),OO=e=>i(i(f("(",e),([t,n])=>i(pb(n),([r,o])=>i(f(")",o),([s,a])=>i(f("=>",a),([p,c])=>i(oe(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[Rh(t),n]),MO=e=>i(i(f("new",e),([t,n])=>i(f("(",n),([r,o])=>i(pb(o),([s,a])=>i(f(")",a),([p,c])=>i(f("=>",c),([h,$])=>i(oe($),([T,M])=>[[t,r,s,p,h,T],M])))))),([t,n])=>[Oh(t),n]),CO=e=>i(i(i(f("+",e),([t,n])=>i(f("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("-",e),([t,n])=>i(f("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Mh(t),n]),LO=e=>i(i(i(f("+",e),([t,n])=>i(f("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("-",e),([t,n])=>i(f("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Ch(t),n]),FO=e=>i(i(i(f("as",e),([t,n])=>i(oe(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Lh(t),n]),jO=e=>i(i(f("{",e),([t,n])=>i(CO(n),([r,o])=>i(f("[",o),([s,a])=>i(Pe(a),([p,c])=>i(f("in",c),([h,$])=>i(oe($),([T,M])=>i(FO(M),([F,O])=>i(f("]",O),([q,Z])=>i(LO(Z),([ae,xe])=>i(f(":",xe),([ke,We])=>i(oe(We),([Nt,he])=>i(Wy(he),([te,E])=>i(f("}",E),([ze,qt])=>[[t,r,s,p,h,T,F,q,ae,ke,Nt,te,ze],qt]))))))))))))),([t,n])=>[Fh(t),n]),DO=e=>i(Pe(e),([t,n])=>[jh(t),n]),NO=e=>i(Sp(e),([t,n])=>[Dh(t),n]),qO=e=>i(wa(e),([t,n])=>[Nh(t),n]),_O=e=>i(i(f("true",e),([t,n])=>[t,n],()=>i(f("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[qh(t),n]),UO=e=>i(Ta(['"',"'"],e),([t,n])=>[t,n]),KO=e=>i(f("null",e),([t,n])=>[_h(t),n]),GO=e=>i(f("undefined",e),([t,n])=>[void 0,n]),cb=e=>i(i(tb(e),([t,n])=>i(f(":",n),([r,o])=>i(jp(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Uh(t),n]),lb=(e,t=[])=>i(i(va(e),([n,r])=>i(cb(r),([o,s])=>[[n,o],s])),([n,r])=>lb(r,[...t,n]),()=>[t,e]),WO=e=>i(i(i(cb(e),([t,n])=>i(lb(n),([r,o])=>i(i(va(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Kh(t),n]),db=e=>i(i(f("{",e),([t,n])=>i(WO(n),([r,o])=>i(f("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Gh(t),n]),fb=(e,t=[])=>i(i(f(",",e),([n,r])=>i(jp(r),([o,s])=>[[n,o],s])),([n,r])=>fb(r,[...t,n]),()=>[t,e]),zO=e=>i(i(i(jp(e),([t,n])=>i(fb(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Wh(t),n]),BO=e=>i(i(f("[",e),([t,n])=>i(zO(n),([r,o])=>i(f("]",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[zh(t),n]),jp=e=>i(i(NO(e),([t,n])=>[t,n],()=>i(qO(e),([t,n])=>[t,n],()=>i(_O(e),([t,n])=>[t,n],()=>i(UO(e),([t,n])=>[t,n],()=>i(KO(e),([t,n])=>[t,n],()=>i(GO(e),([t,n])=>[t,n],()=>i(db(e),([t,n])=>[t,n],()=>i(BO(e),([t,n])=>[t,n],()=>[])))))))),([t,n])=>[t,n]),HO=e=>i(f("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[Bh(t),n]),VO=e=>i(f(".*",e),([t,n])=>[Hh(t),n]),JO=e=>i(f("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",e),([t,n])=>[Vh(t),n]),YO=e=>i(f("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[Jh(t),n]),XO=e=>i(f("(?!)",e),([t,n])=>[Yh(t),n]),ZO=e=>i(jy(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[Xh(t),n]),QO=e=>i(i(HO(e),([t,n])=>[t,n],()=>i(VO(e),([t,n])=>[t,n],()=>i(JO(e),([t,n])=>[t,n],()=>i(YO(e),([t,n])=>[t,n],()=>i(XO(e),([t,n])=>[t,n],()=>i(eM(e),([t,n])=>[t,n],()=>i(ZO(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),eM=e=>i(i(f("(",e),([t,n])=>i(Dp(n),([r,o])=>i(f(")",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Zh(t),n]),gb=e=>i(i(i(Mp(e),([t,n])=>i(f("|",n),([r,o])=>i(gb(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(i(Mp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[]))),([t,n])=>[Qh(t),n]),Mp=e=>i(i(QO(e),([t,n])=>i(Dp(n),([r,o])=>[[t,r],o])),([t,n])=>[ey(t),n]),Dp=e=>i(i(gb(e),([t,n])=>[t,n],()=>i(Mp(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),kg=e=>i(i(f("^",e),([t,n])=>i(Dp(n),([r,o])=>i(f("$",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[ty(t),n]),xb=(e,t=[])=>i(i(f(",",e),([n,r])=>i(oe(r),([o,s])=>[[n,o],s])),([n,r])=>xb(r,[...t,n]),()=>[t,e]),tM=e=>i(i(i(oe(e),([t,n])=>i(xb(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ny(t),n]),hb=e=>i(i(i(f("extends",e),([t,n])=>i(tM(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ry(t),n]),nM=e=>i(i(f("interface",e),([t,n])=>i(Pe(n),([r,o])=>i(Cp(o),([s,a])=>i(hb(a),([p,c])=>i(Fp(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[oy(t),n]),rM=e=>i(i(f("interface",e),([t,n])=>i(Pe(n),([r,o])=>i(hb(o),([s,a])=>i(Fp(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[sy(t),n]),oM=e=>i(i(f("type",e),([t,n])=>i(Pe(n),([r,o])=>i(Cp(o),([s,a])=>i(f("=",a),([p,c])=>i(oe(c),([h,$])=>[[t,r,s,p,h],$]))))),([t,n])=>[iy(t),n]),sM=e=>i(i(f("type",e),([t,n])=>i(Pe(n),([r,o])=>i(f("=",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[ay(t),n]),iM=e=>i(i(i(f("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[my(t),n]),yb=e=>i(i(i(f(";",e),([t,n])=>i(f(`
15
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),ib=(e,t=[])=>i(i(Sa(e),([n,r])=>i(sb(r),([o,s])=>[[n,o],s])),([n,r])=>ib(r,[...t,n]),()=>[t,e]),kO=e=>i(i(i(sb(e),([t,n])=>i(ib(n),([r,o])=>i(i(Sa(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[xh(t),n]),Dp=e=>i(i(f("{",e),([t,n])=>i(kO(n),([r,o])=>i(f("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[yh(t),n]),TO=e=>i(Dp(e),([t,n])=>[bh(t),n]),EO=e=>i(i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(f("readonly",a),([p,c])=>i(oe(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[t,n],()=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(f("readonly",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[Ih(t),n]),_y=e=>i(i(EO(e),([t,n])=>[t,n],()=>i(i(rb(e),([t,n])=>i(oe(n),([r,o])=>i(ob(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>[])),([t,n])=>[$h(t),n]),ab=e=>i(i(i(f("...",e),([t,n])=>i(_y(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(_y(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[wh(t),n]),mb=(e,t=[])=>i(i(f(",",e),([n,r])=>i(ab(r),([o,s])=>[[n,o],s])),([n,r])=>mb(r,[...t,n]),()=>[t,e]),vO=e=>i(i(i(ab(e),([t,n])=>i(mb(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[kh(t),n]),SO=e=>i(i(f("[",e),([t,n])=>i(vO(n),([r,o])=>i(f("]",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Th(t),n]),PO=e=>i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(f("readonly",a),([p,c])=>i(oe(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[Eh(t),n]),AO=e=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(f("readonly",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[vh(t),n]),RO=e=>i(i(Pe(e),([t,n])=>i(f("?",n),([r,o])=>i(f(":",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[Sh(t),n]),OO=e=>i(i(Pe(e),([t,n])=>i(f(":",n),([r,o])=>i(oe(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Ph(t),n]),Uy=e=>i(i(PO(e),([t,n])=>[t,n],()=>i(AO(e),([t,n])=>[t,n],()=>i(RO(e),([t,n])=>[t,n],()=>i(OO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),ub=e=>i(i(i(f("...",e),([t,n])=>i(Uy(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(Uy(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[Ah(t),n]),pb=(e,t=[])=>i(i(f(",",e),([n,r])=>i(ub(r),([o,s])=>[[n,o],s])),([n,r])=>pb(r,[...t,n]),()=>[t,e]),cb=e=>i(i(i(ub(e),([t,n])=>i(pb(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Rh(t),n]),MO=e=>i(i(f("(",e),([t,n])=>i(cb(n),([r,o])=>i(f(")",o),([s,a])=>i(f("=>",a),([p,c])=>i(oe(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[Oh(t),n]),CO=e=>i(i(f("new",e),([t,n])=>i(f("(",n),([r,o])=>i(cb(o),([s,a])=>i(f(")",a),([p,c])=>i(f("=>",c),([h,I])=>i(oe(I),([T,M])=>[[t,r,s,p,h,T],M])))))),([t,n])=>[Mh(t),n]),LO=e=>i(i(i(f("+",e),([t,n])=>i(f("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("-",e),([t,n])=>i(f("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Ch(t),n]),FO=e=>i(i(i(f("+",e),([t,n])=>i(f("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("-",e),([t,n])=>i(f("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Lh(t),n]),jO=e=>i(i(i(f("as",e),([t,n])=>i(oe(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Fh(t),n]),DO=e=>i(i(f("{",e),([t,n])=>i(LO(n),([r,o])=>i(f("[",o),([s,a])=>i(Pe(a),([p,c])=>i(f("in",c),([h,I])=>i(oe(I),([T,M])=>i(jO(M),([F,O])=>i(f("]",O),([_,Z])=>i(FO(Z),([ae,xe])=>i(f(":",xe),([ke,We])=>i(oe(We),([Nt,he])=>i(zy(he),([te,E])=>i(f("}",E),([ze,qt])=>[[t,r,s,p,h,T,F,_,ae,ke,Nt,te,ze],qt]))))))))))))),([t,n])=>[jh(t),n]),NO=e=>i(Pe(e),([t,n])=>[Dh(t),n]),qO=e=>i(Ap(e),([t,n])=>[Nh(t),n]),_O=e=>i(ka(e),([t,n])=>[qh(t),n]),UO=e=>i(i(f("true",e),([t,n])=>[t,n],()=>i(f("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[_h(t),n]),KO=e=>i(Ea(['"',"'"],e),([t,n])=>[t,n]),GO=e=>i(f("null",e),([t,n])=>[Uh(t),n]),WO=e=>i(f("undefined",e),([t,n])=>[void 0,n]),lb=e=>i(i(nb(e),([t,n])=>i(f(":",n),([r,o])=>i(Np(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Kh(t),n]),db=(e,t=[])=>i(i(Sa(e),([n,r])=>i(lb(r),([o,s])=>[[n,o],s])),([n,r])=>db(r,[...t,n]),()=>[t,e]),zO=e=>i(i(i(lb(e),([t,n])=>i(db(n),([r,o])=>i(i(Sa(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Gh(t),n]),fb=e=>i(i(f("{",e),([t,n])=>i(zO(n),([r,o])=>i(f("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Wh(t),n]),gb=(e,t=[])=>i(i(f(",",e),([n,r])=>i(Np(r),([o,s])=>[[n,o],s])),([n,r])=>gb(r,[...t,n]),()=>[t,e]),BO=e=>i(i(i(Np(e),([t,n])=>i(gb(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[zh(t),n]),HO=e=>i(i(f("[",e),([t,n])=>i(BO(n),([r,o])=>i(f("]",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Bh(t),n]),Np=e=>i(i(qO(e),([t,n])=>[t,n],()=>i(_O(e),([t,n])=>[t,n],()=>i(UO(e),([t,n])=>[t,n],()=>i(KO(e),([t,n])=>[t,n],()=>i(GO(e),([t,n])=>[t,n],()=>i(WO(e),([t,n])=>[t,n],()=>i(fb(e),([t,n])=>[t,n],()=>i(HO(e),([t,n])=>[t,n],()=>[])))))))),([t,n])=>[t,n]),VO=e=>i(f("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[Hh(t),n]),JO=e=>i(f(".*",e),([t,n])=>[Vh(t),n]),YO=e=>i(f("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",e),([t,n])=>[Jh(t),n]),XO=e=>i(f("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[Yh(t),n]),ZO=e=>i(f("(?!)",e),([t,n])=>[Xh(t),n]),QO=e=>i(Dy(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[Zh(t),n]),eM=e=>i(i(VO(e),([t,n])=>[t,n],()=>i(JO(e),([t,n])=>[t,n],()=>i(YO(e),([t,n])=>[t,n],()=>i(XO(e),([t,n])=>[t,n],()=>i(ZO(e),([t,n])=>[t,n],()=>i(tM(e),([t,n])=>[t,n],()=>i(QO(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),tM=e=>i(i(f("(",e),([t,n])=>i(qp(n),([r,o])=>i(f(")",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Qh(t),n]),xb=e=>i(i(i(Lp(e),([t,n])=>i(f("|",n),([r,o])=>i(xb(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(i(Lp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[]))),([t,n])=>[ey(t),n]),Lp=e=>i(i(eM(e),([t,n])=>i(qp(n),([r,o])=>[[t,r],o])),([t,n])=>[ty(t),n]),qp=e=>i(i(xb(e),([t,n])=>[t,n],()=>i(Lp(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Tg=e=>i(i(f("^",e),([t,n])=>i(qp(n),([r,o])=>i(f("$",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[ny(t),n]),hb=(e,t=[])=>i(i(f(",",e),([n,r])=>i(oe(r),([o,s])=>[[n,o],s])),([n,r])=>hb(r,[...t,n]),()=>[t,e]),nM=e=>i(i(i(oe(e),([t,n])=>i(hb(n),([r,o])=>i(i(f(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ry(t),n]),yb=e=>i(i(i(f("extends",e),([t,n])=>i(nM(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[oy(t),n]),rM=e=>i(i(f("interface",e),([t,n])=>i(Pe(n),([r,o])=>i(Fp(o),([s,a])=>i(yb(a),([p,c])=>i(Dp(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[sy(t),n]),oM=e=>i(i(f("interface",e),([t,n])=>i(Pe(n),([r,o])=>i(yb(o),([s,a])=>i(Dp(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[iy(t),n]),sM=e=>i(i(f("type",e),([t,n])=>i(Pe(n),([r,o])=>i(Fp(o),([s,a])=>i(f("=",a),([p,c])=>i(oe(c),([h,I])=>[[t,r,s,p,h],I]))))),([t,n])=>[ay(t),n]),iM=e=>i(i(f("type",e),([t,n])=>i(Pe(n),([r,o])=>i(f("=",o),([s,a])=>i(oe(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[my(t),n]),aM=e=>i(i(i(f("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[uy(t),n]),bb=e=>i(i(i(f(";",e),([t,n])=>i(f(`
16
16
  `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(f(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(f(`
17
- `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]),bb=(e,t=[])=>i(i(yb(e),([n,r])=>i(Np(r),([o,s])=>[[n,o],s])),([n,r])=>bb(r,[...t,n]),()=>[t,e]),aM=e=>i(i(i(Np(e),([t,n])=>i(bb(n),([r,o])=>i(i(yb(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[uy(t),n]),Np=e=>i(i(iM(e),([t,n])=>i(i(nM(n),([r,o])=>[r,o],()=>i(rM(n),([r,o])=>[r,o],()=>i(oM(n),([r,o])=>[r,o],()=>i(sM(n),([r,o])=>[r,o],()=>[])))),([r,o])=>i(Wy(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[py(t),n]),mM=e=>i(i(Np(e),([t,n])=>i(aM(n),([r,o])=>[[t,r],o])),([t,n])=>[cy(t),n]),Ib=e=>i(i(mM(e),([t,n])=>[t,n],()=>i(xO(e),([t,n])=>[t,n],()=>i(oe(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n])});function $b(e){let t=Lp(`\`${e}\``);return u.IsEqual(t.length,2)?t[0]:De()}var qp=m(()=>{In();A();Oi()});function pM(e){return e.join("|")}function cM(e){return e.slice(1,e.length-1)}function lM(e,t,n){return sr(t,`${n}${e}`)}function dM(e,t){return sr(e,`${t}${hg}`)}function fM(e,t){return sr(e,`${t}${Si}`)}function gM(e,t){return sr(e,`${t}${Ai}`)}function xM(e,t){return fs(V([ee("false"),ee("true")]),e,t)}function hM(e,t){return sr(e,`${t}${Ri}`)}function yM(e,t,n){return sr(t,`${n}${cM(e)}`)}function bM(e,t,n){let r=gs(e,{});return fs(r,t,n)}function IM(e,t,n){let r=gt(e);return fs(r,t,n)}function wb(e,t,n,r=[]){return u.ShiftLeft(e,(o,s)=>wb(s,t,n,[...r,fs(o,[],"")]),()=>sr(t,`${n}(${pM(r)})`))}function fs(e,t,n){return tt(e)?IM(e.enum,t,n):lt(e)?fM(t,n):ue(e)?lM(e.const,t,n):wn(e)?dM(t,n):Bt(e)?xM(t,n):Me(e)?gM(t,n):ft(e)?hM(t,n):Se(e)?yM(e.pattern,t,n):Tb(e)?bM(e.parameters[0],t,n):L(e)?wb(e.anyOf,t,n):sf}function sr(e,t){return u.ShiftLeft(e,(n,r)=>fs(n,r,t),()=>t)}function $M(e){return`^${sr(e,"")}$`}function kb(e){let t=$M(e);return Li(t)}var _p=m(()=>{A();rn();Oe();J();wt();wr();Vt();dt();kn();Yn();Be();Fi();H();Sa()});function gs(e,t){return z(e)?l.Update(kb(e),{},t):Xi(e,t)}function Eb(e,t,n,r){let o=jt(e,t,n);return gs(o,r)}var Sa=m(()=>{v();wt();_p();N()});function Xi(e,t={}){return j("TemplateLiteral",[e],t)}function Tb(e){return Fe(e)&&u.HasPropertyKey(e,"action")&&u.IsEqual(e.action,"TemplateLiteral")}function vb(e){return gs(e,{})}function wM(e){let t=$b(e);return vb(t)}function Sb(e,t={}){let n=u.IsString(e)?wM(e):vb(e);return l.Update(n,{},t)}function Se(e){return C(e,"TemplateLiteral")}var wt=m(()=>{zo();A();B();se();qp();Sa()});var G={};Lt(G,{ExtendsFalse:()=>W,ExtendsTrue:()=>S,ExtendsUnion:()=>Up,IsExtendsFalse:()=>kM,IsExtendsTrue:()=>Ab,IsExtendsTrueLike:()=>uo,IsExtendsUnion:()=>Pb,Match:()=>Ie});function Up(e){return l.Create({"~kind":"ExtendsUnion"},{inferred:e})}function Pb(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"inferred")&&u.IsEqual(e["~kind"],"ExtendsUnion")&&u.IsObject(e.inferred)}function S(e){return l.Create({"~kind":"ExtendsTrue"},{inferred:e})}function Ab(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"inferred")&&u.IsEqual(e["~kind"],"ExtendsTrue")&&u.IsObject(e.inferred)}function W(){return l.Create({"~kind":"ExtendsFalse"},{})}function kM(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.IsEqual(e["~kind"],"ExtendsFalse")}function uo(e){return Pb(e)||Ab(e)}function Ie(e,t,n){return uo(e)?t(e.inferred):n()}var ye=m(()=>{A();v()});function TM(e,t,n,r){return Ie(ne(e,n,r),o=>S(l.Assign(l.Assign(e,o),{[t]:n})),()=>W())}function EM(e,t){return S(e)}function vM(e,t,n,r,o){return Ie(ne(e,t,n),s=>Ie(ne(s,t,r),a=>S(a),()=>W()),()=>Ie(ne(e,t,o),s=>S(s),()=>W()))}function SM(e,t,n){let r=gt(n);return ne(e,t,r)}function Rb(e,t,n){return u.ShiftLeft(n,(r,o)=>Ie(ne(e,t,r),s=>Rb(s,t,o),()=>W()),()=>S(e))}function PM(e,t,n){let r=st(n);return ne(e,t,r)}function Ob(e,t,n){return u.ShiftLeft(n,(r,o)=>Ie(ne(e,t,r),s=>S(s),()=>Ob(e,t,o)),()=>W())}function pe(e,t,n){return Te(n)?EM(e,t):ve(n)?vM(e,t,n.if,n.then,n.else):tt(n)?SM(e,t,n.enum):Re(n)?TM(e,n.name,t,n.extends):Q(n)?Rb(e,t,n.allOf):Se(n)?PM(e,t,n.pattern):L(n)?Ob(e,t,n.anyOf):Ae(n)?S(e):W()}var at=m(()=>{A();v();bt();St();rn();zt();je();wt();J();Qe();Et();ye();H();H()});function Mb(e,t,n){return Re(n)?pe(e,t,n):Te(n)?S(e):Ae(n)?S(e):Up(e)}var Cb=m(()=>{zt();bt();Qe();at();ye()});function AM(e,t){let n=br(e),r=br(t);return n&&r||!n&&r?!0:!(n&&!r)}function Lb(e,t,n,r){return $e(r)?AM(t,r)?ne(e,n,r.items):W():pe(e,t,r)}var Fb=m(()=>{ct();Vo();at();Et();ye()});function jb(e,t,n){return wn(n)?S(e):pe(e,t,n)}var Db=m(()=>{wr();at();ye()});function Nb(e,t,n){return Bt(n)?S(e):pe(e,t,n)}var qb=m(()=>{Yn();at();ye()});function RM(e,t,n,r,o){let s=Re(r)?t:r,a=Re(r)?r:t,p=ot(t),c=ot(r);return!p&&c?W():Ie(ne(e,s,a),h=>xs(h,n,o),()=>W())}function OM(e,t,n,r){return u.ShiftLeft(r,(o,s)=>RM(e,t,n,o,s),()=>ot(t)?S(e):W())}function MM(e,t,n){return u.ShiftLeft(t,(r,o)=>OM(e,r,o,n),()=>S(e))}function xs(e,t,n){return MM(e,t,n)}var Kp=m(()=>{A();zt();Jn();Et();ye()});function Pa(e,t,n){return En(n)?S(e):ne(e,t,n)}var Gp=m(()=>{Sr();Et();ye()});function _b(e,t,n,r){return Te(r)?S(e):Ae(r)?S(e):_e(r)?Ie(xs(e,t,r.parameters),o=>Pa(o,n,r.instanceType),()=>W()):W()}var Ub=m(()=>{bt();Kt();Qe();ye();Kp();Gp()});function Kb(e,t,n,r,o){return Ie(ne(e,t,o),()=>ne(e,n,o),()=>ne(e,r,o))}var Gb=m(()=>{Et();ye()});function Wb(e,t,n){let r=gt(t);return ne(e,r,n)}var zb=m(()=>{Et();H()});function Bb(e,t,n,r){return Te(r)?S(e):Ae(r)?S(e):Ue(r)?Ie(xs(e,t,r.parameters),o=>Pa(o,n,r.returnType),()=>W()):W()}var Hb=m(()=>{bt();Gt();Qe();ye();Kp();Gp()});function Vb(e,t,n){return lt(n)?S(e):Me(n)?S(e):pe(e,t,n)}var Jb=m(()=>{kn();dt();at();ye()});function Yb(e,t,n){let r=we(t);return ne(e,r,n)}var Xb=m(()=>{Et();hs()});function Aa(e,t,n){return t===n?S(e):W()}function CM(e,t,n){return ue(n)?Aa(e,t,n.const):wn(n)?S(e):pe(e,ee(t),n)}function LM(e,t,n){return ue(n)?Aa(e,t,n.const):Bt(n)?S(e):pe(e,ee(t),n)}function FM(e,t,n){return ue(n)?Aa(e,t,n.const):Me(n)?S(e):pe(e,ee(t),n)}function jM(e,t,n){return ue(n)?Aa(e,t,n.const):ft(n)?S(e):pe(e,ee(t),n)}function Zb(e,t,n){return u.IsBigInt(t.const)?CM(e,t.const,n):u.IsBoolean(t.const)?LM(e,t.const,n):u.IsNumber(t.const)?FM(e,t.const,n):u.IsString(t.const)?jM(e,t.const,n):De()}var Qb=m(()=>{A();Ju();Oe();wr();Yn();dt();Vt();at();ye()});function eI(e,t,n){return Re(n)?pe(e,t,n):S(e)}var tI=m(()=>{zt();at();ye()});function nI(e,t,n){return Vr(n)?S(e):pe(e,t,n)}var rI=m(()=>{Jr();at();ye()});function oI(e,t,n){return Me(n)?S(e):pe(e,t,n)}var sI=m(()=>{dt();at();ye()});function DM(e,t,n){return ot(t)?ot(n)?S(e):W():S(e)}function NM(e,t,n){return Re(n)&&nn(n.extends)?W():Ie(ne(e,t,n),r=>DM(r,t,n),()=>W())}function qM(e,t){return e.reduce((n,r)=>r in t?uo(t[r])?{...n,...t[r].inferred}:De():De(),{})}function _M(e,t,n){let r={};for(let a of u.Keys(n))r[a]=a in t?NM({},t[a],n[a]):ot(n[a])?Re(n[a])?S(l.Assign(e,{[n[a].name]:n[a].extends})):S(e):W();let o=u.Values(r).every(a=>uo(a)),s=o?qM(u.Keys(r),r):{};return o?S(s):W()}function UM(e,t,n){let r=_M(e,t,n);return uo(r)?S(l.Assign(e,r.inferred)):W()}function KM(e,t,n){return UM(e,t,n)}function GM(e,t){return u.Keys(t).reduce((n,r)=>({...n,[r]:u.HasPropertyKey(e,r)?L(n[r])?V([...n[r].anyOf,t[r]]):V([e[r],t[r]]):t[r]}),e)}function iI(e,t,n,r){return u.ShiftLeft(t,(o,s)=>Ie(ne({},e[o],n),a=>iI(e,s,n,GM(r,a)),()=>W()),()=>S(r))}function WM(e,t,n,r){let o=u.Keys(t);return iI(t,o,r,e)}function aI(e,t,n){return rt(n)?WM(e,t,Yt(n),xt(n)):me(n)?KM(e,t,n.properties):pe(e,K(t),n)}var mI=m(()=>{In();v();A();Jn();zt();Be();ce();Ve();J();Et();at();ye()});function zM(e,t){return u.IsEqual(u.Keys(t).length,0)?S(e):W()}function BM(e,t,n,r,o){return ne(e,n,o)}function uI(e,t,n,r){return rt(r)?BM(e,zi(t),n,zi(Yt(r)),xt(r)):me(r)?zM(e,r.properties):Te(r)?S(e):Ae(r)?S(e):W()}var pI=m(()=>{A();bt();Qe();ce();Ve();Et();ye()});function cI(e,t,n){return ft(n)?S(e):pe(e,t,n)}var lI=m(()=>{Vt();at();ye()});function dI(e,t,n){return Xn(n)?S(e):pe(e,t,n)}var fI=m(()=>{Tr();at();ye()});function gI(e,t,n){let r=st(t);return ne(e,r,n)}var xI=m(()=>{Et();H()});function Wp(e,t){return l.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function ys(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"name")&&u.HasPropertyKey(e,"type")&&u.IsEqual(e["~kind"],"Inferrable")&&u.IsString(e.name)&&u.IsObject(e.type)}function zp(e){return nr(e)?Re(e.items)?$e(e.items.extends)?Wp(e.items.name,e.items.extends.items):Ae(e.items.extends)?Wp(e.items.name,e.items.extends):void 0:De():void 0}function Ra(e){return Re(e)?Wp(e.name,e.extends):void 0}function Bp(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Ie(ne({},r,t),()=>Bp(o,t,[...n,r]),()=>{}),()=>n)}function hI(e,t,n,r){let o=Bp(n,r);return u.IsArray(o)?S(l.Assign(e,{[t]:Ce(o)})):W()}function Oa(e,t,n,r){let o=Bp(n,r);return u.IsArray(o)?S(l.Assign(e,{[t]:V(o)})):W()}var Hp=m(()=>{In();v();A();ct();Qe();Ne();Et();J();zt();eo();ye()});function HM(e){return[...e].reverse()}function Vp(e,t){return t?HM(e):e}function VM(e){let t=e.length>0?e[0]:void 0,n=Fe(t)?zp(t):void 0;return Fe(n)}function JM(e,t,n,r,o,s){return Ie(ne(e,n,o),a=>yI(a,t,r,s),()=>W())}function YM(e,t,n,r,o){let s=zp(r);return ys(s)?hI(e,s.name,Vp(n,t),s.type):u.ShiftLeft(n,(a,p)=>JM(e,t,a,p,r,o),()=>W())}function XM(e,t,n,r){return u.ShiftLeft(r,(o,s)=>YM(e,t,n,o,s),()=>u.IsEqual(n.length,0)?S(e):W())}function yI(e,t,n,r){return XM(e,t,n,r)}function ZM(e,t,n){let r=ir(e,be([],[]),n),o=VM(r);return yI(e,o,Vp(t,o),Vp(r,o))}function bI(e,t,n){let r=Ra(n);return ys(r)?Oa(e,r.name,t,r.type):u.ShiftLeft(t,(o,s)=>Ie(ne(e,o,n),a=>bI(a,s,n),()=>W()),()=>S(e))}function II(e,t,n){let r=ir(e,be([],[]),t);return ge(n)?ZM(e,r,n.items):$e(n)?bI(e,r,n.items):pe(e,Ce(r),n)}var $I=m(()=>{A();B();ct();Ne();Et();at();ye();N();N();Hp()});function wI(e,t,n){return En(n)?S(e):no(n)?S(e):pe(e,t,n)}var kI=m(()=>{ro();Sr();at();ye()});function TI(e,t,n){return u.ShiftLeft(n,(r,o)=>Ie(ne(e,t,r),s=>S(s),()=>TI(e,t,o)),()=>W())}function Jp(e,t,n){return u.ShiftLeft(t,(r,o)=>Ie(TI(e,r,n),s=>Jp(s,o,n),()=>W()),()=>S(e))}function EI(e,t,n){let r=Ra(n);return ys(r)?Oa(e,r.name,t,r.type):L(n)?Jp(e,t,n.anyOf):Jp(e,t,[n])}var vI=m(()=>{A();J();Et();ye();Hp()});function SI(e,t,n){return Re(n)?pe(e,t,n):Te(n)?S(e):Ae(n)?S(e):W()}var PI=m(()=>{bt();Qe();zt();at();ye()});function AI(e,t,n){return En(n)?S(e):pe(e,t,n)}var RI=m(()=>{Sr();at();ye()});function ne(e,t,n){return Te(t)?Mb(e,t,n):$e(t)?Lb(e,t,t.items,n):wn(t)?jb(e,t,n):Bt(t)?Nb(e,t,n):_e(t)?_b(e,t.parameters,t.instanceType,n):ve(t)?Kb(e,t.if,t.then,t.else,n):tt(t)?Wb(e,t.enum,n):Ue(t)?Bb(e,t.parameters,t.returnType,n):lt(t)?Vb(e,t,n):Q(t)?Yb(e,t.allOf,n):ue(t)?Zb(e,t,n):nn(t)?eI(e,t,n):Vr(t)?nI(e,t,n):Me(t)?oI(e,t,n):me(t)?aI(e,t.properties,n):rt(t)?uI(e,Yt(t),xt(t),n):ft(t)?cI(e,t,n):Xn(t)?dI(e,t,n):Se(t)?gI(e,t.pattern,n):ge(t)?II(e,t.items,n):no(t)?wI(e,t,n):L(t)?EI(e,t.anyOf,n):Ae(t)?SI(e,t,n):En(t)?AI(e,t,n):W()}var Et=m(()=>{Cb();Fb();Db();qb();Ub();Gb();zb();Hb();Jb();Xb();Qb();tI();rI();sI();mI();pI();lI();fI();xI();$I();kI();vI();PI();RI();bt();ct();wr();Yn();Kt();St();rn();Gt();kn();je();Oe();Be();Jr();dt();ce();Ve();Vt();Tr();wt();Ne();ro();Qe();J();Sr();ye()});function QM(e,t){return we([...e,K(t)])}function Yp(e,t,n){return z(e)?l.Update(QM(e,t),{},n):us(e,t,n)}function OI(e,t,n,r,o){let s=jt(e,t,n),a=bs(e,t,r);return Yp(s,a,o)}var Ma=m(()=>{v();ce();H();so();N();N();N()});function us(e,t,n={}){return j("Interface",[e,t],n)}function po(e){return Fe(e)&&u.HasPropertyKey(e,"action")&&u.IsEqual(e.action,"Interface")}function MI(e,t,n={}){return Yp(e,t,n)}var Is=m(()=>{A();B();se();Ma()});function eC(e,t,n){return e.includes(n)?!0:$s([...e,n],t,t[n])}function CI(e,t,n){let r=Ii(n);return Ar(e,t,r)}function Ar(e,t,n){return u.ShiftLeft(n,(r,o)=>$s(e,t,r)?!0:Ar(e,t,o),()=>!1)}function $s(e,t,n){return Ke(n)?eC(e,t,n.$ref):$e(n)?$s(e,t,n.items):_e(n)?Ar(e,t,[...n.parameters,n.instanceType]):Ue(n)?Ar(e,t,[...n.parameters,n.returnType]):po(n)?CI(e,t,n.parameters[1]):Q(n)?Ar(e,t,n.allOf):me(n)?CI(e,t,n.properties):L(n)?Ar(e,t,n.anyOf):ge(n)?Ar(e,t,n.items):rt(n)?$s(e,t,xt(n)):!1}function LI(e,t,n){return $s(e,t,n)}var Xp=m(()=>{A();ct();Kt();Gt();je();ce();hr();Ve();Ne();J();Wt();Is()});function tC(e,t){return t.reduce((n,r)=>LI([r],e,e[r])?[...n,r]:n,[])}function FI(e){let t=bi(e);return tC(e,t)}var Zp=m(()=>{hr();Xp()});function nC(e,t,n){return n.includes(t)?n:t in e?ws(e,e[t],[...n,t]):De()}function jI(e,t,n){let r=Ii(t);return co(e,r,n)}function co(e,t,n){return t.reduce((r,o)=>ws(e,o,r),n)}function ws(e,t,n){return Ke(t)?nC(e,t.$ref,n):$e(t)?ws(e,t.items,n):_e(t)?co(e,[...t.parameters,t.instanceType],n):Ue(t)?co(e,[...t.parameters,t.returnType],n):po(t)?jI(e,t.parameters[1],n):Q(t)?co(e,t.allOf,n):me(t)?jI(e,t.properties,n):L(t)?co(e,t.anyOf,n):ge(t)?co(e,t.items,n):rt(t)?ws(e,xt(t),n):n}function DI(e,t,n){return ws(e,n,[t])}var Qp=m(()=>{In();ct();Kt();Gt();je();ce();hr();Ve();Ne();J();Wt();Is()});function rC(e){return Wr()}function oC(e){return u.Keys(e).reduce((t,n)=>({...t,[n]:Rr(e[n])}),{})}function ks(e){return e.reduce((t,n)=>[...t,Rr(n)],[])}function Rr(e){return Ke(e)?rC(e.$ref):$e(e)?Ft(Rr(e.items),yi(e)):_e(e)?gn(ks(e.parameters),Rr(e.instanceType)):Ue(e)?xn(ks(e.parameters),Rr(e.returnType)):Q(e)?$t(ks(e.allOf)):me(e)?K(oC(e.properties)):rt(e)?Wi(Qr(e),Rr(xt(e))):L(e)?V(ks(e.anyOf)):ge(e)?Ce(ks(e.items)):e}function sC(e,t){return t in e?Rr(e[t]):He()}function NI(e){return sC(e.$defs,e.$ref)}var qI=m(()=>{A();bt();ct();Kt();Gt();je();ce();Ve();Wt();Ne();J();Qe()});function iC(e,t,n){let r=jt(e,be([],[]),t),o=bs({},be([],[]),n);return we([...r,K(o)])}function aC(e,t){return u.Keys(e).filter(r=>t.includes(r)).reduce((r,o)=>{let s=e[o],a=po(s)?iC(e,s.parameters[0],s.parameters[1]):s;return{...r,[o]:a}},{})}function _I(e,t,n){let r=DI(e,t,n),o=aC(e,r);return yn(o,t)}var ec=m(()=>{A();It();ce();Qp();so();N();N();N();H()});function UI(e,t){return t in e?Ke(e[t])?UI(e,e[t].$ref):e[t]:le()}function Pn(e,t){return UI(e,t)}var Or=m(()=>{Be();Wt()});var tc=m(()=>{Zp();Xp();Qp();qI();ec();Or()});function KI(e){return et(e)?NI(e):$i(e)?He():e}function nt(e,t,n){let r=KI(t),o=KI(n);return ne(e,r,o)}var GI=m(()=>{It();Qe();wi();Et();tc()});var Tn=m(()=>{GI();ye()});function os(e,t){let n=[nt({},e,t),nt({},t,e)];return G.IsExtendsTrueLike(n[0])&&G.IsExtendsTrueLike(n[1])?ns:G.IsExtendsTrueLike(n[0])&&G.IsExtendsFalse(n[1])?rs:G.IsExtendsFalse(n[0])&&G.IsExtendsTrueLike(n[1])?qi:Ca}var ns,Ca,rs,qi,ss=m(()=>{Tn();ns=0,Ca=1,rs=2,qi=3});function nc(e,t,n=[],r=t){return u.ShiftLeft(t,(o,s)=>{let a=os(e,o);return u.IsEqual(a,rs)||u.IsEqual(a,ns)?r:u.IsEqual(a,Ca)?nc(e,s,[...n,o],r):nc(e,s,n,r)},()=>[...n,e])}function mC(e,t,n){let r=Jt(e);return Te(r)?[r]:Ae(r)?[r]:nn(r)?La(t,n):me(r)?La(t,[...n,r]):La(t,nc(r,n))}function La(e,t=[]){return u.ShiftLeft(e,(n,r)=>mC(n,r,t),()=>t)}function hp(e){let t=La(e);return Zr(t)}var yp=m(()=>{A();bt();Be();ce();Qe();ss();Ui();H()});function rc(e,t){return l.Update(Jt(e),{},t)}function WI(e,t,n,r){let o=k(e,t,n);return rc(o,r)}var Fa=m(()=>{v();N();H()});var hs=m(()=>{yp();ss();dp();gp();H();Ui();Fa();fp()});function Ts(e,t=[]){return Hn(e)&&u.IsEqual(e.action,"Conditional")?Ke(e.parameters[0])?Ts(e.parameters[2],Ts(e.parameters[3],[...t,e.parameters[0].$ref])):Ts(e.parameters[2],Ts(e.parameters[3],t)):Hn(e)&&u.IsEqual(e.action,"Mapped")&&Hn(e.parameters[1])&&u.IsEqual(e.parameters[1].action,"KeyOf")&&Ke(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function uC(e,t){return e.reduce((n,r)=>[...n,t.includes(r.name)],[])}function HI(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>u.ShiftLeft(t,(s,a)=>HI(o,a,[...n,[s,r]]),()=>n),()=>n)}function pC(e){return Se(e)?st(e.pattern):tt(e)?gt(e.enum):e}function cC(e){let t=pC(e);return L(t)?[...t.anyOf]:[t]}function lC(e,t){return e.reduce((n,r)=>[...n,[...r,t]],[])}function zI(e,t){return t.reduce((n,r)=>[...n,...lC(e,r)],[])}function BI(e){return e.reduce((t,n)=>u.IsEqual(n[0],!0)?zI(t,cC(n[1])):zI(t,[n[1]]),[[]])}function VI(e,t,n){let r=Ts(n),o=uC(e,r),s=HI(t,o);return Hn(n)&&u.IsEqual(n.action,"Conditional")||Hn(n)&&u.IsEqual(n.action,"Mapped")?BI(s):[t]}var JI=m(()=>{A();J();se();rn();wt();Wt();H();H()});function dC(){return["(not-resolvable)",le()]}function fC(){return["(not-generic)",le()]}function gC(e,t,n){return[e,Vn(t,n)]}function xC(e,t,n){return t in e?YI(e,t,e[t],n):dC()}function YI(e,t,n,r){return Gr(n)?gC(t,n.parameters,n.expression):Ke(n)?xC(e,n.$ref,r):fC()}function XI(e,t,n){return YI(e,"(anonymous)",t,n)}var ZI=m(()=>{Ko();Wt();Be()});function hC(e,t,n){if(Re(t)||lo(t)||G.IsExtendsTrueLike(nt({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw new Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function QI(e,t,n,r,o){let s=k(e,t,o);return hC(n,s,r),l.Assign(e,{[n]:s})}function yC(e,t,n,r,o){let s=k(e,t,n.extends),a=k(e,t,n.equals);return u.ShiftLeft(o,(p,c)=>oc(QI(e,t,n.name,s,p),t,r,c),()=>oc(QI(e,t,n.name,s,a),t,r,[]))}function oc(e,t,n,r){return u.ShiftLeft(n,(o,s)=>yC(e,t,o,s,r),()=>e)}function e$(e,t,n,r){return oc(e,t,n,r)}var t$=m(()=>{A();v();N();Tn();zt();oo()});function bC(){if(!u.IsLessThan(ic,tn.Get().maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite")}function IC(){bC(),ic++,sc++}function $C(){sc--,u.IsEqual(sc,0)&&(ic=0)}function wC(e){return u.IsGreaterThan(e.callstack.length,0)?e.callstack[e.callstack.length-1]:""}function kC(e,t){return u.IsEqual(wC(e),t)}function TC(e,t,n,r,o,s){IC();try{let a=e$(e,t,r,s),p=k(a,be([...t.callstack,n.$ref],t.visited),o);return k(a,be([],[]),p)}finally{$C()}}function EC(e,t,n,r,o,s){return s.reduce((a,p)=>{let c=TC(e,t,n,r,o,p);return[...a,c]},[])}function vC(e,t,n,r,o,s){let a=VI(r,s,o),p=EC(e,t,n,r,o,a);return u.IsEqual(p.length,1)?p[0]:Tt(p)}function ja(e,t,n,r){let o=jt(e,t,r),s=XI(e,n,r),a=s[0],p=s[1];return Gr(p)?kC(t,a)?ps(jn(a),o):vC(e,t,jn(a),p.parameters,p.expression,o):ps(n,o)}var sc,ic,ac=m(()=>{fr();A();oo();Wt();Ko();hs();N();N();N();JI();ZI();t$();sc=0,ic=0});function ps(e,t){return l.Create({"~kind":"Call"},{type:"call",target:e,arguments:t},{})}function n$(e,t){return ja({},be([],[]),e,t)}function lo(e){return C(e,"Call")}var oo=m(()=>{v();B();ac();N()});function SC(e){return l.Discard(e,["~immutable"])}function r$(e,t){return l.Update(SC(e),{},t)}function o$(e,t,n,r){let o=k(e,t,n);return r$(o,r)}var mc=m(()=>{v();N()});function s$(e,t){return e(t)}var i$=m(()=>{});function a$(e,t){return u.IsString(t)?ee(s$(e,t)):ee(t)}var m$=m(()=>{A();Oe();i$()});function u$(e,t){let n=st(t);return qn(e,n)}var p$=m(()=>{Da();hs()});function c$(e,t){let n=t.map(r=>qn(e,r));return V(n)}var l$=m(()=>{J();Da()});function qn(e,t){return ue(t)?a$(e,t.const):Se(t)?u$(e,t.pattern):L(t)?c$(e,t.anyOf):t}var Da=m(()=>{Oe();wt();J();m$();p$();l$()});function Zi(e,t={}){return j("Capitalize",[e],t)}function d$(e,t={}){return uc(e,t)}var Na=m(()=>{se();An()});function Qi(e,t={}){return j("Lowercase",[e],t)}function f$(e,t={}){return pc(e,t)}var qa=m(()=>{se();An()});function ea(e,t={}){return j("Uncapitalize",[e],t)}function g$(e,t={}){return cc(e,t)}var _a=m(()=>{se();An()});function ta(e,t={}){return j("Uppercase",[e],t)}function x$(e,t={}){return lc(e,t)}var Ua=m(()=>{se();An()});function uc(e,t){return z([e])?l.Update(qn(PC,e),{},t):Zi(e,t)}function pc(e,t){return z([e])?l.Update(qn(AC,e),{},t):Qi(e,t)}function cc(e,t){return z([e])?l.Update(qn(RC,e),{},t):ea(e,t)}function lc(e,t){return z([e])?l.Update(qn(OC,e),{},t):ta(e,t)}function h$(e,t,n,r){let o=k(e,t,n);return uc(o,r)}function y$(e,t,n,r){let o=k(e,t,n);return pc(o,r)}function b$(e,t,n,r){let o=k(e,t,n);return cc(o,r)}function I$(e,t,n,r){let o=k(e,t,n);return lc(o,r)}var PC,AC,RC,OC,An=m(()=>{v();Da();N();Na();qa();_a();Ua();PC=e=>e[0].toUpperCase()+e.slice(1),AC=e=>e.toLowerCase(),RC=e=>e[0].toLowerCase()+e.slice(1),OC=e=>e.toUpperCase()});function na(e,t,n,r,o={}){return j("Conditional",[e,t,n,r],o)}function $$(e,t,n,r,o={}){return dc({},be([],[]),e,t,n,r,o)}var Ka=m(()=>{se();fc();N()});function MC(e,t,n,r,o,s){let a=nt(e,n,r);return G.IsExtendsUnion(a)?V([k(a.inferred,t,o),k(e,t,s)]):G.IsExtendsTrue(a)?k(a.inferred,t,o):k(e,t,s)}function dc(e,t,n,r,o,s,a){return z([n,r])?l.Update(MC(e,t,n,r,o,s),{},a):na(n,r,o,s,a)}function w$(e,t,n,r,o,s,a){let p=k(e,t,n),c=k(e,t,r);return dc(e,t,p,c,o,s,a)}var fc=m(()=>{v();J();Tn();N();Ka()});var gc=m(()=>{fc()});function ra(e,t={}){return j("ConstructorParameters",[e],t)}function k$(e,t={}){return xc(e,t)}var Ga=m(()=>{se();Wa()});function CC(e){let t=_e(e)?e.parameters:[],n=ir({},be([],[]),t);return Ce(n)}function xc(e,t){return z([e])?l.Update(CC(e),{},t):ra(e,t)}function T$(e,t,n,r){let o=k(e,t,n);return xc(o,r)}var Wa=m(()=>{v();Kt();Ne();Ga();N();N();N()});function oa(e,t,n={}){return j("Exclude",[e,t],n)}function E$(e,t,n={}){return Es(e,t,n)}var za=m(()=>{se();vs()});function Es(e,t,n){return z([e,t])?l.Update(_i(e,t),{},n):oa(e,t,n)}function v$(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return Es(s,a,o)}var vs=m(()=>{v();N();za();xp()});function sa(e,t,n={}){return j("Extract",[e,t],n)}function S$(e,t,n={}){return hc(e,t,n)}var Ba=m(()=>{se();Ha()});function LC(e,t){let n=nt({},e,t);return G.IsExtendsTrueLike(n)?[e]:[]}function P$(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>P$(o,t,[...n,...LC(r,t)]),()=>n)}function A$(e,t){let n=Jt(e),r=L(n)?n.anyOf:[n],o=P$(r,t);return Tt(o)}var R$=m(()=>{A();J();Tn();H();H()});function hc(e,t,n){return z([e,t])?l.Update(A$(e,t),{},n):sa(e,t,n)}function O$(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return hc(s,a,o)}var Ha=m(()=>{v();N();Ba();R$()});function FC(e){return e.reduce((t,n)=>Pi(n)?[...t,ee(n)]:t,[])}function fo(e){let t=FC(e);return V(t)}var Ss=m(()=>{Oe();J()});function cs(e,t,n={}){return j("Index",[e,t],n)}function M$(e,t,n={}){let r=u.IsArray(t)?fo(t):t;return bc(e,r,n)}var yc=m(()=>{A();se();Ss();Va()});function C$(e,t){let n=Pn(e,t);return Dt(n)}var L$=m(()=>{Mr();Or()});function F$(e,t,n){let r=sn(e,t,n);return Dt(r)}var j$=m(()=>{Mr();H()});function jC(e,t){let n=u.Keys(e).filter($=>!u.HasPropertyKey(t,$)),r=u.Keys(t).filter($=>!u.HasPropertyKey(e,$)),o=u.Keys(e).filter($=>u.HasPropertyKey(t,$)),s=n.reduce(($,T)=>({...$,[T]:e[T]}),{}),a=r.reduce(($,T)=>({...$,[T]:t[T]}),{}),p=o.reduce(($,T)=>({...$,[T]:we([e[T],t[T]])}),{}),c=l.Assign(s,a);return l.Assign(c,p)}function D$(e){return e.reduce((t,n)=>jC(t,Dt(n)),{})}var N$=m(()=>{v();A();Mr();H()});var q$=m(()=>{});function _$(e){let t=Ug(Ce(e));return Dt(t)}var U$=m(()=>{Ne();cp();Mr()});function DC(e,t){return u.Keys(e).filter(o=>o in t).reduce((o,s)=>({...o,[s]:Tt([e[s],t[s]])}),{})}function K$(e,t){return u.ShiftLeft(e,(n,r)=>K$(r,DC(t,Dt(n))),()=>t)}function G$(e){return u.ShiftLeft(e,(t,n)=>K$(n,Dt(t)),()=>De())}var W$=m(()=>{A();In();H();Mr()});function Dt(e){return et(e)?C$(e.$defs,e.$ref):ve(e)?F$(e.if,e.then,e.else):Q(e)?D$(e.allOf):L(e)?G$(e.anyOf):ge(e)?_$(e.items):me(e)?e.properties:{}}var Mr=m(()=>{It();St();je();ce();Ne();J();L$();j$();N$();q$();U$();W$()});function go(e){let t=Dt(e);return K(t)}var z$=m(()=>{ce();Mr()});var Ps=m(()=>{z$()});function xo(e){let t=`${e}`;return NC.test(t)?parseInt(t):e}var NC,As=m(()=>{NC=new RegExp("^(?:0|[1-9][0-9]*)$")});function qC(e){return ee(xo(e))}function B$(e){return e.map(t=>H$(t))}function H$(e){return Q(e)?$t(B$(e.allOf)):L(e)?V(B$(e.anyOf)):ue(e)?qC(e.const):e}function V$(e,t){let n=H$(t),r=nt({},n,Pt());return G.IsExtendsTrueLike(r)?e:ue(t)&&u.IsEqual(t.const,"length")?Pt():le()}var J$=m(()=>{A();je();J();Oe();dt();Be();Tn();As()});function Y$(e,t){let n=Pn(e,t);return Rt(n)}var X$=m(()=>{ar();Or()});function Z$(e,t,n){let r=sn(e,t,n);return Rt(r)}var Q$=m(()=>{ar();H()});function ew(e){let t=gt(e);return Rt(t)}var tw=m(()=>{ar();H()});function nw(e){let t=we(e);return Rt(t)}var rw=m(()=>{H();ar()});function ow(e){return[`${e}`]}var sw=m(()=>{});function iw(e){let t=st(e);return Rt(t)}var aw=m(()=>{ar();H()});function mw(e){return e.reduce((t,n)=>[...t,...Rt(n)],[])}var uw=m(()=>{ar()});function Rt(e){return et(e)?Y$(e.$defs,e.$ref):ve(e)?Z$(e.if,e.then,e.else):tt(e)?ew(e.enum):Q(e)?nw(e.allOf):ue(e)?ow(e.const):Se(e)?iw(e.pattern):L(e)?mw(e.anyOf):[]}var ar=m(()=>{It();St();rn();je();Oe();wt();J();X$();Q$();tw();rw();sw();aw();uw()});function ho(e){return Rt(e)}var Ja=m(()=>{ar()});function Rs(e,t){return t.map(n=>Os(e,n))}function Os(e,t){return $e(t)?Ft(Os(e,t.items)):_e(t)?gn(Rs(e,t.parameters),Os(e,t.instanceType)):Ue(t)?xn(Rs(e,t.parameters),Os(e,t.returnType)):ge(t)?Ce(Rs(e,t.items)):L(t)?V(Rs(e,t.anyOf)):Q(t)?$t(Rs(e,t.allOf)):Hi(t)?K(e):t}function pw(e,t){return Os(e,t)}var cw=m(()=>{ct();Kt();Gt();je();ce();Ne();Vi();J()});function _C(e,t){let n=t in e?e[t]:le();return pw(e,n)}function lw(e,t){return t.reduce((n,r)=>[...n,_C(e,r)],[])}function UC(e,t){let n=ho(t),r=lw(e,n);return Tt(r)}function GC(e){return e.filter(n=>KC.test(n))}function WC(e){let t=bi(e),n=GC(t),r=lw(e,n);return Tt(r)}function dw(e,t){return Me(t)?WC(e):UC(e,t)}var KC,fw=m(()=>{dt();Be();hr();H();Ja();Ve();cw();KC=new RegExp(tr)});function zC(e){return ee(xo(e))}function gw(e){return e.map(t=>Ic(t))}function Ic(e){return Q(e)?$t(gw(e.allOf)):L(e)?V(gw(e.anyOf)):ue(e)?zC(e.const):e}var xw=m(()=>{J();je();Oe();As()});function BC(e,t){return e.reduceRight((n,r,o)=>{let s=nt({},ee(o),t);return G.IsExtendsTrueLike(s)?[r,...n]:n},[])}function HC(e,t){let n=Ic(t),r=BC(e,n);return Qn(r)}function VC(e){return Qn(e)}function hw(e,t){return ue(t)&&u.IsEqual(t.const,"length")?ee(e.length):Me(t)||lt(t)?VC(e):HC(e,t)}var yw=m(()=>{A();Oe();dt();kn();H();Tn();xw()});function bw(e,t){return $e(e)?V$(e.items,t):me(e)?dw(e.properties,t):ge(e)?hw(e.items,t):le()}var Iw=m(()=>{ct();Be();ce();Ne();J$();fw();yw()});function JC(e){return et(e)||ve(e)||Q(e)||L(e)?go(e):e}function bc(e,t,n){return z([e,t])?l.Update(bw(JC(e),t),{},n):cs(e,t,n)}function $w(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return bc(s,a,o)}var Va=m(()=>{v();It();St();je();J();N();yc();Ps();Iw()});function ia(e,t={}){return j("InstanceType",[e],t)}function ww(e,t={}){return $c(e,t)}var Ya=m(()=>{se();Xa()});function YC(e){return _e(e)?e.instanceType:le()}function $c(e,t){return z([e])?l.Update(YC(e),{},t):ia(e,t)}function kw(e,t,n,r={}){let o=k(e,t,n);return $c(o,r)}var Xa=m(()=>{v();Kt();Be();Ya();N()});function ls(e,t={}){return j("KeyOf",[e],t)}function Tw(e,t={}){return wc(e,t)}var Za=m(()=>{se();Qa()});function Ew(){return V([Pt(),Ht(),Yr()])}var vw=m(()=>{dt();Vt();Tr();J()});function Sw(e){return Pt()}var Pw=m(()=>{dt()});function XC(e){return e.reduce((n,r)=>Pi(r)?[...n,ee(xo(r))]:De(),[])}function Aw(e){let t=u.Keys(e),n=XC(t);return Qn(n)}var Rw=m(()=>{In();A();Oe();As();H()});function Ow(e){return Qr(e)}var Mw=m(()=>{Ve()});function Cw(e){let t=e.map((n,r)=>ee(r));return Qn(t)}var Lw=m(()=>{Oe();H()});function Fw(e){return Te(e)?Ew():$e(e)?Sw(e.items):me(e)?Aw(e.properties):rt(e)?Ow(e):ge(e)?Cw(e.items):le()}var jw=m(()=>{bt();ct();Be();ce();Ve();Ne();vw();Pw();Rw();Mw();Lw()});function ZC(e){return et(e)||ve(e)||Q(e)||L(e)?go(e):e}function wc(e,t){return z([e])?l.Update(Fw(ZC(e)),{},t):ls(e,t)}function Dw(e,t,n,r){let o=k(e,t,n);return wc(o,r)}var Qa=m(()=>{v();It();St();je();J();Za();N();Ps();jw()});function ms(e,t,n,r,o={}){return j("Mapped",[e,t,n,r],o)}function Nw(e,t,n,r,o={}){return kc({},be([],[]),e,t,n,r,o)}var em=m(()=>{se();tm();N()});function QC(e){let t=st(e);return nm(t)}function e0(e){return e.reduce((t,n)=>[...t,...nm(n)],[])}function t0(e){let t=gt(e);return nm(t)}function n0(e){return u.IsNumber(e)?[ee(`${e}`)]:[ee(e)]}function nm(e){return tt(e)?t0(e.enum):ue(e)?n0(e.const):Se(e)?QC(e.pattern):L(e)?e0(e.anyOf):[e]}function qw(e){return nm(e)}var _w=m(()=>{A();Oe();rn();wt();J();H();H()});function r0(e){return Se(e)?st(e.pattern):e}function o0(e,t,n,r,o,s){let a=l.Assign(e,{[n.name]:r}),p=k(a,t,o),c=r0(p),h=k(a,t,s);return bg(c)||Ig(c)?{[c.const]:h}:{}}function s0(e,t,n,r,o,s){return r.reduce((a,p)=>[...a,o0(e,t,n,p,o,s)],[])}function i0(e){return e.reduce((t,n)=>[...t,K(n)],[])}function Uw(e,t,n,r,o,s){let a=qw(r),p=s0(e,t,n,a,o,s),c=i0(p);return we(c)}var Kw=m(()=>{v();Oe();ce();wt();N();H();H();_w()});function kc(e,t,n,r,o,s,a){return z([r])?l.Update(Uw(e,t,n,r,o,s),{},a):ms(n,r,o,s,a)}function Gw(e,t,n,r,o,s,a){let p=k(e,t,r);return kc(e,t,n,p,o,s,a)}var tm=m(()=>{v();em();N();Kw()});function a0(e,t,n){let r=l.Assign(e,t);return u.Keys(t).filter(s=>n.includes(s)).reduce((s,a)=>({...s,[a]:_I(r,a,t[a])}),{})}function m0(e,t,n){let r=l.Assign(e,t);return u.Keys(t).filter(s=>!n.includes(s)).reduce((s,a)=>({...s,[a]:k(r,be([],[]),t[a])}),{})}function u0(e,t,n){let r=FI(t),o=a0(e,t,r),s=m0(e,t,r),a={...o,...s};return l.Update(a,{},n)}function rm(e,t,n,r){return u0(e,n,r)}var om=m(()=>{A();v();N();Zp();ec();N()});function aa(e,t={}){return j("NonNullable",[e],t)}function Ww(e,t={}){return Tc(e,t)}var sm=m(()=>{se();im()});function p0(e){let t=V([Hr(),to()]);return Es(e,t,{})}function Tc(e,t){return z([e])?l.Update(p0(e),{},t):aa(e,t)}function zw(e,t,n,r){let o=k(e,t,n);return Tc(o,r)}var im=m(()=>{v();Jr();ro();J();vs();sm();N()});function ma(e,t,n={}){return j("Omit",[e,t],n)}function Bw(e,t,n={}){let r=u.IsArray(t)?fo(t):t;return Ec(e,r,n)}var am=m(()=>{A();se();Ss();mm()});function um(e){let t=go(e);return me(t)?t.properties:De()}var vc=m(()=>{In();ce();Ps()});function c0(e,t){return u.Keys(e).reduce((r,o)=>t.includes(o)?r:{...r,[o]:e[o]},{})}function Hw(e,t){let n=um(e),r=ho(t),o=c0(n,r);return K(o)}var Vw=m(()=>{A();ce();Ja();vc()});function Ec(e,t,n){return z([e,t])?l.Update(Hw(e,t),{},n):ma(e,t,n)}function Jw(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return Ec(s,a,o)}var mm=m(()=>{v();am();N();Vw()});function ua(e,t={}){return j("Parameters",[e],t)}function Yw(e,t={}){return Sc(e,t)}var pm=m(()=>{se();cm()});function l0(e){let t=Ue(e)?e.parameters:[],n=ir({},be([],[]),t);return Ce(n)}function Sc(e,t){return z([e])?l.Update(l0(e),{},t):ua(e,t)}function Xw(e,t,n,r){let o=k(e,t,n);return Sc(o,r)}var cm=m(()=>{v();Gt();Ne();pm();N();N();N()});function pa(e,t={}){return j("Partial",[e],t)}function Zw(e,t={}){return Pc(e,t)}var lm=m(()=>{se();dm()});function Qw(e,t){let n=Pn(e,t),r=Rn(n);return yn(l.Assign(e,{[t]:r}),t)}var ek=m(()=>{v();It();yo();Or()});function tk(e,t,n){let r=sn(e,t,n);return Rn(r)}var nk=m(()=>{yo();H()});function rk(e){let t=we(e);return Rn(t)}var ok=m(()=>{yo();H()});function sk(e){let t=e.map(n=>Rn(n));return V(t)}var ik=m(()=>{J();yo()});function ak(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:xr(e[o])}),{});return K(t)}var mk=m(()=>{A();ce();Go()});function Rn(e){return et(e)?Qw(e.$defs,e.$ref):ve(e)?tk(e.if,e.then,e.else):Q(e)?rk(e.allOf):L(e)?sk(e.anyOf):me(e)?ak(e.properties):K({})}var yo=m(()=>{It();St();je();ce();J();ek();nk();ok();ik();mk()});function Pc(e,t){return z([e])?l.Update(Rn(e),{},t):pa(e,t)}function uk(e,t,n,r){let o=k(e,t,n);return Pc(o,r)}var dm=m(()=>{v();lm();yo();N()});function ca(e,t,n={}){return j("Pick",[e,t],n)}function pk(e,t,n={}){let r=u.IsArray(t)?fo(t):t;return Ac(e,r,n)}var fm=m(()=>{A();se();Ss();gm()});function d0(e,t){return u.Keys(e).reduce((r,o)=>t.includes(o)?l.Assign(r,{[o]:e[o]}):r,{})}function ck(e,t){let n=um(e),r=ho(t),o=d0(n,r);return K(o)}var lk=m(()=>{v();A();ce();Ja();vc()});function Ac(e,t,n){return z([e,t])?l.Update(ck(e,t),{},n):ca(e,t,n)}function dk(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return Ac(s,a,o)}var gm=m(()=>{v();fm();N();lk()});function la(e,t={}){return j("ReadonlyObject",[e],t)}function Rc(e,t={}){return Oc(e,t)}var fk,xm=m(()=>{se();hm();fk=Rc});function gk(e){return Br(Ft(e))}var xk=m(()=>{ct();Jo()});function hk(e,t){let n=Pn(e,t),r=On(n);return yn(l.Assign(e,{[t]:r}),t)}var yk=m(()=>{v();It();bo();Or()});function bk(e,t,n){let r=sn(e,t,n);return On(r)}var Ik=m(()=>{bo();H()});function $k(e){let t=we(e);return On(t)}var wk=m(()=>{bo();H()});function kk(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:Ir(e[o])}),{});return K(t)}var Tk=m(()=>{A();ce();Yo()});function Ek(e){return Br(Ce(e))}var vk=m(()=>{Ne();Jo()});function Sk(e){let t=e.map(n=>On(n));return V(t)}var Pk=m(()=>{J();bo()});function On(e){return $e(e)?gk(e.items):et(e)?hk(e.$defs,e.$ref):ve(e)?bk(e.if,e.then,e.else):Q(e)?$k(e.allOf):me(e)?kk(e.properties):ge(e)?Ek(e.items):L(e)?Sk(e.anyOf):e}var bo=m(()=>{ct();It();St();je();ce();Ne();J();xk();yk();Ik();wk();Tk();vk();Pk()});function Oc(e,t){return z([e])?l.Update(On(e),{},t):la(e)}function Ak(e,t,n,r){let o=k(e,t,n);return Oc(o,r)}var hm=m(()=>{v();xm();bo();N()});function Rk(e,t,n,r){return t.visited.includes(r)?n:r in e?k(e,be(t.callstack,[...t.visited,r]),e[r]):n}var Mc=m(()=>{N();N()});function Ok(e,t){let n=Pn(e,t),r=Mn(n);return yn(l.Assign(e,{[t]:r}),t)}var Mk=m(()=>{v();It();Io();Or()});function Ck(e,t,n){let r=sn(e,t,n);return Mn(r)}var Lk=m(()=>{Io();H()});function Fk(e){let t=we(e);return Mn(t)}var jk=m(()=>{Io();H()});function Dk(e){let t=e.map(n=>Mn(n));return V(t)}var Nk=m(()=>{J();Io()});function qk(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:Di(e[o])}),{});return K(t)}var _k=m(()=>{A();ce();Ni()});function Mn(e){return et(e)?Ok(e.$defs,e.$ref):ve(e)?Ck(e.if,e.then,e.else):Q(e)?Fk(e.allOf):L(e)?Dk(e.anyOf):me(e)?qk(e.properties):K({})}var Io=m(()=>{It();St();je();ce();J();Mk();Lk();jk();Nk();_k()});function da(e,t={}){return j("Required",[e],t)}function Uk(e,t={}){return Cc(e,t)}var ym=m(()=>{se();bm()});function Cc(e,t){return z([e])?l.Update(Mn(e),{},t):da(e,t)}function Kk(e,t,n,r){let o=k(e,t,n);return Cc(o,r)}var bm=m(()=>{v();Io();ym();N()});function fa(e,t={}){return j("ReturnType",[e],t)}function Gk(e,t={}){return Lc(e,t)}var Im=m(()=>{se();$m()});function f0(e){return Ue(e)?e.returnType:le()}function Lc(e,t){return z([e])?l.Update(f0(e),{},t):fa(e,t)}function Wk(e,t,n,r={}){let o=k(e,t,n);return Lc(o,r)}var $m=m(()=>{v();Gt();Be();Im();N()});function ga(e,t){return j("With",[e,t],{})}function zk(e,t){return Fc(e,t)}var wm=m(()=>{se();km()});function Fc(e,t){return z([e])?l.Update(e,{},t):ga(e,t)}function Bk(e,t,n,r){let o=k(e,t,n);return Fc(o,r)}var km=m(()=>{v();N();wm()});function g0(e){return nr(e)?ge(e.items)?jc(e.items.items):Re(e.items)?[e]:Ke(e.items)?[e]:[le()]:[e]}function jc(e){return e.reduce((n,r)=>[...n,...g0(r)],[])}var Hk=m(()=>{zt();Be();eo();Wt();Ne()});var Vk=m(()=>{Hk()});function be(e,t){return{callstack:e,visited:t}}function z(e){return u.ShiftLeft(e,(t,n)=>Ke(t)?!1:z(n),()=>!0)}function bs(e,t,n){return u.Keys(n).reduce((r,o)=>({...r,[o]:k(e,t,n[o])}),{})}function ir(e,t,n){let r=jt(e,t,n);return jc(r)}function jt(e,t,n){return n.map(r=>k(e,t,r))}function x0(e,t){let n=ot(e)?Uo(t,{}):t,r=$r(e)?_o(n,{}):n;return br(e)?Ms(r,{}):r}function h0(e,t,n,r,o){return u.IsEqual(n,"AddImmutable")?Jk(e,t,r[0],o):u.IsEqual(n,"RemoveImmutable")?o$(e,t,r[0],o):u.IsEqual(n,"AddReadonly")?tf(e,t,r[0],o):u.IsEqual(n,"RemoveReadonly")?jg(e,t,r[0],o):u.IsEqual(n,"AddOptional")?nf(e,t,r[0],o):u.IsEqual(n,"RemoveOptional")?qg(e,t,r[0],o):u.IsEqual(n,"Capitalize")?h$(e,t,r[0],o):u.IsEqual(n,"Conditional")?w$(e,t,r[0],r[1],r[2],r[3],o):u.IsEqual(n,"ConstructorParameters")?T$(e,t,r[0],o):u.IsEqual(n,"Evaluate")?WI(e,t,r[0],o):u.IsEqual(n,"Exclude")?v$(e,t,r[0],r[1],o):u.IsEqual(n,"Extract")?O$(e,t,r[0],r[1],o):u.IsEqual(n,"Index")?$w(e,t,r[0],r[1],o):u.IsEqual(n,"InstanceType")?kw(e,t,r[0],o):u.IsEqual(n,"Interface")?OI(e,t,r[0],r[1],o):u.IsEqual(n,"KeyOf")?Dw(e,t,r[0],o):u.IsEqual(n,"Lowercase")?y$(e,t,r[0],o):u.IsEqual(n,"Mapped")?Gw(e,t,r[0],r[1],r[2],r[3],o):u.IsEqual(n,"Module")?rm(e,t,r[0],o):u.IsEqual(n,"NonNullable")?zw(e,t,r[0],o):u.IsEqual(n,"Pick")?dk(e,t,r[0],r[1],o):u.IsEqual(n,"Parameters")?Xw(e,t,r[0],o):u.IsEqual(n,"Partial")?uk(e,t,r[0],o):u.IsEqual(n,"Omit")?Jw(e,t,r[0],r[1],o):u.IsEqual(n,"ReadonlyObject")?Ak(e,t,r[0],o):u.IsEqual(n,"Record")?px(e,t,r[0],r[1],o):u.IsEqual(n,"Required")?Kk(e,t,r[0],o):u.IsEqual(n,"ReturnType")?Wk(e,t,r[0],o):u.IsEqual(n,"TemplateLiteral")?Eb(e,t,r[0],o):u.IsEqual(n,"Uncapitalize")?b$(e,t,r[0],o):u.IsEqual(n,"Uppercase")?I$(e,t,r[0],o):u.IsEqual(n,"With")?Bk(e,t,r[0],r[1]):j(n,r,o)}function y0(e,t,n){let r=Ke(n)?Rk(e,t,n,n.$ref):$e(n)?Ft(k(e,t,n.items),yi(n)):lo(n)?ja(e,t,n.target,n.arguments):_e(n)?gn(jt(e,t,n.parameters),k(e,t,n.instanceType),rf(n)):Ue(n)?xn(jt(e,t,n.parameters),k(e,t,n.returnType),of(n)):ve(n)?yr(k(e,t,n.if),k(e,t,n.then),k(e,t,n.else),lf(n)):Q(n)?$t(jt(e,t,n.allOf),hf(n)):me(n)?K(bs(e,t,n.properties),uf(n)):rt(n)?cx(Yt(n),k(e,t,xt(n))):nr(n)?vr(k(e,t,n.items)):ge(n)?Ce(ir(e,t,n.items),Fg(n)):L(n)?V(jt(e,t,n.anyOf),wg(n)):n;return x0(n,r)}function k(e,t,n){return Hn(n)?h0(e,t,n.action,n.parameters,n.options):y0(e,t,n)}function Dc(e,t){return k(e,be([],[]),t)}var N=m(()=>{A();Tm();xi();hi();ct();Kt();se();Gt();oo();St();je();ce();Ve();Ne();J();Wt();eo();Tm();mc();xi();ip();hi();up();Jn();Vo();Xo();ac();An();gc();Wa();Fa();vs();Ha();Va();Xa();Ma();Qa();An();tm();om();im();mm();cm();dm();gm();hm();Ki();Mc();bm();$m();Sa();An();An();km();Vk()});function b0(e){return l.Update(e,{"~immutable":!0},{})}function Ms(e,t){return l.Update(b0(e),{},t)}function Jk(e,t,n,r){let o=k(e,t,n);return Ms(o,r)}var Tm=m(()=>{v();N()});function dy(e,t={}){return j("AddImmutable",[e],t)}function Br(e,t={}){return Ms(e,t)}var Jo=m(()=>{se();Tm()});var Yk=m(()=>{se();mc()});function fy(e,t={}){return j("Evaluate",[e],t)}function Xk(e,t={}){return rc(e,t)}var Nc=m(()=>{se();Fa()});function gy(e,t={}){return j("Module",[e],t)}function Zk(e,t={}){return rm({},be([],[]),e,t)}var qc=m(()=>{se();N();om()});var so=m(()=>{Jo();Yo();Go();Yk();ap();Ni();Na();Ka();Ga();Nc();za();Ba();yc();Ya();Is();Za();qa();em();qc();sm();am();pm();lm();fm();xm();ym();Im();_a();Ua();wm()});var Qk=m(()=>{Wa()});var eT=m(()=>{ki()});var tT=m(()=>{vs()});var nT=m(()=>{Ha()});var rT=m(()=>{});var oT=m(()=>{Ss();As();rT()});var sT=m(()=>{Va()});var iT=m(()=>{Xa()});var aT=m(()=>{Ma()});var mT=m(()=>{An()});var uT=m(()=>{Qa()});var pT=m(()=>{tm()});var cT=m(()=>{om()});var lT=m(()=>{im()});var dT=m(()=>{mm()});var fT=m(()=>{cm()});var gT=m(()=>{ts();qp()});var xT=m(()=>{dm()});var hT=m(()=>{gm()});var yT=m(()=>{A();ss()});var bT=m(()=>{yT()});var IT=m(()=>{hm()});var $T=m(()=>{Ki()});var wT=m(()=>{Mc()});var kT=m(()=>{bm()});var TT=m(()=>{$m()});var ET=m(()=>{});var vT=m(()=>{A();ts()});var ST=m(()=>{Fi();ji();_p();ET();Ci();vT()});var PT=m(()=>{km()});var AT=m(()=>{N();gc();Qk();tc();eT();hs();tT();nT();oT();sT();iT();aT();mT();uT();pT();cT();lT();Ps();dT();fT();gT();xT();hT();bT();IT();$T();wT();kT();TT();ST();PT()});function RT(...e){let[t,n,r]=bn.Match(e,{2:(a,p)=>u.IsString(a)?[{},a,p]:[a,p,{}],3:(a,p,c)=>[a,p,c],1:a=>[{},a,{}]}),o=Ib(n),s=u.IsArray(o)&&u.IsEqual(o.length,2)?k(t,be([],[]),o[0]):le();return l.Update(s,{},r)}var OT=m(()=>{zr();v();A();Yi();N();N();Oi()});var _c=m(()=>{OT()});var ie={};Lt(ie,{Any:()=>Wr,Array:()=>Ft,BigInt:()=>Zo,Boolean:()=>vi,Call:()=>n$,Capitalize:()=>d$,Codec:()=>Ei,Conditional:()=>$$,Constructor:()=>gn,ConstructorParameters:()=>k$,Cyclic:()=>yn,Decode:()=>lg,DecodeBuilder:()=>Ho,Dependent:()=>yr,Encode:()=>dg,EncodeBuilder:()=>Bo,Enum:()=>xf,Evaluate:()=>Xk,Exclude:()=>E$,Extends:()=>nt,ExtendsResult:()=>G,Extract:()=>S$,Function:()=>xn,Generic:()=>Vn,Identifier:()=>Qo,Immutable:()=>fg,Index:()=>M$,Infer:()=>Wo,InstanceType:()=>ww,Instantiate:()=>Dc,Integer:()=>kr,Interface:()=>MI,Intersect:()=>$t,IsAny:()=>Te,IsArray:()=>$e,IsBigInt:()=>wn,IsBoolean:()=>Bt,IsCall:()=>lo,IsCodec:()=>Ti,IsConstructor:()=>_e,IsCyclic:()=>et,IsDependent:()=>ve,IsEnum:()=>tt,IsEnumValue:()=>gf,IsFunction:()=>Ue,IsGeneric:()=>Gr,IsIdentifier:()=>yg,IsImmutable:()=>br,IsInfer:()=>Re,IsInteger:()=>lt,IsIntersect:()=>Q,IsKind:()=>C,IsLiteral:()=>ue,IsNever:()=>nn,IsNull:()=>Vr,IsNumber:()=>Me,IsObject:()=>me,IsOptional:()=>ot,IsParameter:()=>$g,IsReadonly:()=>$r,IsRecord:()=>rt,IsRef:()=>Ke,IsRefine:()=>Qu,IsRest:()=>nr,IsSchema:()=>Fe,IsString:()=>ft,IsSymbol:()=>Xn,IsTemplateLiteral:()=>Se,IsThis:()=>Hi,IsTuple:()=>ge,IsUndefined:()=>no,IsUnion:()=>L,IsUnknown:()=>Ae,IsUnsafe:()=>$i,IsVoid:()=>En,KeyOf:()=>Tw,Literal:()=>ee,Lowercase:()=>f$,Mapped:()=>Nw,Module:()=>Zk,Never:()=>le,NonNullable:()=>Ww,Null:()=>Hr,Number:()=>Pt,Object:()=>K,Omit:()=>Bw,Optional:()=>af,Parameter:()=>Er,Parameters:()=>Yw,Partial:()=>Zw,Pick:()=>pk,Readonly:()=>gg,ReadonlyObject:()=>Rc,ReadonlyType:()=>fk,Record:()=>Wi,RecordKey:()=>Qr,RecordPattern:()=>Yt,RecordValue:()=>xt,Ref:()=>jn,Refine:()=>xg,Required:()=>Uk,Rest:()=>vr,ReturnType:()=>Gk,Script:()=>RT,String:()=>Ht,Symbol:()=>Yr,TemplateLiteral:()=>Sb,This:()=>Bi,Tuple:()=>Ce,Uncapitalize:()=>g$,Undefined:()=>to,Union:()=>V,Unknown:()=>He,Unsafe:()=>pf,Uppercase:()=>x$,Void:()=>Ji,With:()=>zk});var Uc=m(()=>{N();Tn();_c();Na();Ka();Ga();Nc();za();Ba();so();Ya();Is();Za();qa();em();qc();sm();am();pm();lm();fm();xm();ym();Im();_a();Ua();wm();Zu();Vo();Jn();Xo();ep();bt();ct();wr();Yn();oo();Kt();It();rn();Gt();Ko();tp();St();zt();kn();je();Oe();Be();Jr();dt();ce();rp();Ve();Wt();eo();B();Vt();Tr();wt();Vi();Ne();ro();J();Qe();wi();Sr()});var $o=m(()=>{so();AT();Tn();_c();Yi();Uc();Uc()});import{StringEnum as I0}from"@earendil-works/pi-ai";import{defineTool as $0}from"@earendil-works/pi-coding-agent";function MT(e){if(e.length===0)return"Todo list is empty.";let t=e.filter(o=>o.status==="completed").length,n=e.map(o=>`${w0[o.status]} ${o.content}`),r=e.filter(o=>o.status==="pending"||o.status==="in_progress").length;return[`${t}/${e.length} done, ${r} open`,...n].join(`
18
- `)}function T0(e,t,n,r){let o=e.map(s=>({...s}));switch(t){case"init":return!n||n.length===0?{todos:o,error:"init needs a non-empty items array"}:{todos:n.map(s=>({content:s,status:"pending"}))};case"view":return{todos:o};case"start":case"done":case"drop":{if(!r)return{todos:o,error:`${t} needs task`};let s=o.find(a=>a.content===r);if(!s)return{todos:o,error:`no task matches ${JSON.stringify(r)}`};if(t==="start"){for(let a of o)a.status==="in_progress"&&(a.status="pending");s.status="in_progress"}else s.status=t==="done"?"completed":"dropped";return{todos:o}}default:return{todos:o,error:`unknown op ${JSON.stringify(t)}`}}}function E0(e){let t=[];for(let n of e.sessionManager.getBranch()){if(n.type!=="message")continue;let r=n.message;if(r.role!=="toolResult"||r.toolName!=="todo")continue;let o=r.details;o?.todos&&(t=o.todos)}return t}var w0,k0,Em,Kc=m(()=>{$o();w0={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"},k0=ie.Object({op:I0(["init","start","done","drop","view"],{description:"init replaces the list; start/done/drop move one task; view reads it"}),items:ie.Optional(ie.Array(ie.String(),{description:"Task labels for init. 5-10 words each, specific enough to execute without re-planning"})),task:ie.Optional(ie.String({description:"Exact label of the task to start, complete or drop"}))});Em=$0({name:"todo",label:"todo",description:"Track the plan for this task. Use `init` once with the whole plan (investigation through verification), then `start`/`done` as you go. Keep the list current so progress stays visible; do not re-init unless the plan materially changes.",promptSnippet:"todo: record and advance the plan for the current task",parameters:k0,async execute(e,t,n,r,o){let s=E0(o),{todos:a,error:p}=T0(s,t.op,t.items,t.task),c={op:t.op,todos:a,...p?{error:p}:{}};return{content:[{type:"text",text:p?`Error: ${p}
19
- ${MT(a)}`:MT(a)}],details:c,...p?{isError:!0}:{}}}})});import{StringEnum as v0}from"@earendil-works/pi-ai";import{defineTool as S0}from"@earendil-works/pi-coding-agent";function FT(){return _n.size===0?"":["<shared-notes>","Working notes recorded with the `context` tool. They survive compaction and are visible to every agent on this task.",...[..._n].map(([t,n])=>`- ${t}: ${n}`),"</shared-notes>"].join(`
20
- `)}function P0(e,t,n){if(e==="list")return _n.size===0?{text:"No notes."}:{text:[..._n].map(([r,o])=>`${r} = ${o}`).join(`
21
- `)};if(!t)return{text:"Error: key is required",error:"key required"};if(t.length>LT)return{text:`Error: key longer than ${LT} characters`,error:"key too long"};if(e==="forget")return{text:_n.delete(t)?`Removed ${t}`:`No note named ${t}`};if(e==="set"){if(!n)return{text:"Error: value is required for set",error:"value required"};let r=n.length>CT?`${n.slice(0,CT)}\u2026`:n;return _n.set(t,r),{text:`Recorded ${t} (${_n.size} note${_n.size===1?"":"s"} held)`}}return{text:`Error: unknown op ${JSON.stringify(e)}`,error:"unknown op"}}var _n,CT,LT,vm,Sm=m(()=>{$o();_n=new Map,CT=2e3,LT=80;vm=S0({name:"context",label:"context",description:"Record a durable working note (a decision, a file's role, a fact you would otherwise re-derive). Notes survive context compaction and are visible to every agent on this task, including subagents. Use `set` to write, `list` to read, `forget` to remove.",promptSnippet:"context: durable notes shared with every agent on this task",parameters:ie.Object({op:v0(["set","list","forget"],{description:"set writes a note, list reads all, forget removes one"}),key:ie.Optional(ie.String({description:"Short lookup key, e.g. 'auth-entrypoint'"})),value:ie.Optional(ie.String({description:"The fact to keep (for set)"}))}),async execute(e,t){let{text:n,error:r}=P0(t.op,t.key,t.value);return{content:[{type:"text",text:n}],details:{op:t.op,notes:Object.fromEntries(_n)},...r?{isError:!0}:{}}}})});import{StringEnum as A0}from"@earendil-works/pi-ai";import{defineTool as R0}from"@earendil-works/pi-coding-agent";function Am(e){if(!e||e.status==="cleared")return"No goal set.";let t=e.budget??Pm,n=[`${NT[e.status]} ${e.status}`,`${e.used}/${t} continuations`];return e.note&&n.push(e.note),`${n.join(" \xB7 ")}
22
- ${e.text}`}function qT(e){if(!e||e.status==="cleared"||e.status==="done")return"";let t=e.budget??Pm,n=e.text.length>48?`${e.text.slice(0,47)}\u2026`:e.text;return`goal ${NT[e.status]} ${e.used}/${t} \xB7 ${n}`}function _T(e){let t=["<goal>",e.text,`Status: ${e.status}.`];return e.status==="active"&&t.push("Work toward this goal until it is genuinely met. When it is, call the `goal` tool with",'op="complete" and a note naming the evidence \u2014 a command you ran or a file you checked.',"If you are blocked and cannot proceed, say so plainly instead of repeating an attempt."),t.push("</goal>"),t.join(`
23
- `)}function UT(e){return["[goal] The goal is still open and you stopped without closing it:",` ${e.text}`,"","Continue from where you left off. Do not repeat work you already did. If the goal is met,",'call the `goal` tool with op="complete" and a note naming the evidence. Do not call it',"complete to escape a hard problem: if you cannot make progress, state what is blocking you.",`Continuations used: ${e.used}/${e.budget??Pm}.`].join(`
24
- `)}function Rm(){return KT}function an(e){KT=e}function Om(e){if(!e)return{action:"stop",reason:"no goal",close:!1};if(e.status==="done")return{action:"stop",reason:"goal complete",close:!1};if(e.status==="cleared")return{action:"stop",reason:"goal cleared",close:!1};if(e.status==="paused")return{action:"stop",reason:"goal paused",close:!1};let t=e.budget??Pm;return e.used>=t?{action:"stop",reason:`budget exhausted (${t} continuations)`,close:!0}:{action:"continue"}}function Gc(e,t,n,r,o){switch(t){case"view":return{goal:e};case"set":return n?.trim()?n.length>jT?{goal:e,error:`text longer than ${jT} characters`}:r!==void 0&&(!Number.isInteger(r)||r<1)?{goal:e,error:"budget must be a positive integer"}:{goal:{text:n.trim(),status:"active",used:0,...r===void 0?{}:{budget:r}}}:{goal:e,error:"set needs text"};case"pause":case"resume":case"complete":case"clear":return!e||e.status==="cleared"?{goal:e,error:"no goal to change"}:t==="resume"?e.status==="done"?{goal:e,error:"goal is complete; set a new one instead"}:{goal:{...e,status:"active",note:void 0}}:t==="pause"?{goal:{...e,status:"paused"}}:t==="clear"?{goal:{...e,status:"cleared"}}:o?.trim()?{goal:{...e,status:"done",note:o.trim()}}:{goal:e,error:"complete needs a note naming the evidence (a command you ran or a file you checked)"};default:return{goal:e,error:`unknown op ${JSON.stringify(t)}`}}}function wo(e){let t;for(let n of e.sessionManager.getBranch()){if(n.type==="custom"&&n.customType===mr){t=n.data;continue}if(n.type==="custom_message"&&n.customType===mr){t=n.details??t;continue}if(n.type!=="message")continue;let r=n.message;if(r.role!=="toolResult"||r.toolName!=="goal")continue;let o=r.details;o?.goal&&(t=o.goal)}return t}var mr,DT,jT,Pm,NT,KT,O0,GT,Mm=m(()=>{$o();mr="howtofix.goal",DT="howtofix.goal.continue",jT=400,Pm=25,NT={active:"\u25CF",paused:"\u2016",done:"\u2713",cleared:"\u25CB"};O0=ie.Object({op:A0(["set","view","pause","resume","complete","clear"],{description:"set starts a goal; complete closes it with evidence; pause/resume/clear manage it; view reads it"}),text:ie.Optional(ie.String({description:"The goal, in one sentence, as the user would state it (for set)"})),budget:ie.Optional(ie.Number({description:"Optional cap on automatic continuations before the run stops"})),note:ie.Optional(ie.String({description:"Evidence that the goal is met (required for complete)"}))}),GT=R0({name:"goal",label:"goal",description:"Track the goal for this session. The goal is already shown in your context every request, so you rarely need `view`. Call `complete` only when the goal is genuinely met, and pass a note naming the evidence. When a goal is active the harness continues the run if you stop without closing it, so closing it is how you stop.",promptSnippet:"goal: the session's objective, and how to close it",parameters:O0,async execute(e,t,n,r,o){let s=wo(o),{goal:a,error:p}=Gc(s,t.op,t.text,t.budget,t.note);an(a);let c=Am(a);return{content:[{type:"text",text:p?`Error: ${p}
25
- ${c}`:c}],details:{op:t.op,goal:a},...p?{isError:!0}:{}}}})});import{existsSync as Bc,mkdirSync as WT,readFileSync as zT}from"node:fs";import{dirname as BT,join as HT}from"node:path";import{defineTool as VT}from"@earendil-works/pi-coding-agent";function Cm(){return{state:"inactive",wasActive:!1}}function M0(e){return e?e.state==="pending"?{...e,state:"inactive"}:{...e}:Cm()}function JT(e){return e.state!=="inactive"?e:{...e,state:"pending"}}function C0(e){return e.state!=="pending"?e:{state:"active",wasActive:!0}}function L0(e){return e.state!=="inactive"?e:{state:"active",wasActive:!0}}function F0(e){return e.state!=="active"?e:{...e,state:"inactive"}}function YT(e){return e.state==="inactive"?e:{...e,state:"inactive"}}function Lm(e){return e.state==="active"}function j0(e,t){return e===t}function D0(e,t){return["<plan-mode>","Plan mode is active. Do not make any edits or writes to the system.",t?`A plan file exists at ${e}. Read it and refine it with the \`edit\` tool.`:`No plan is written yet. Write yours to ${e} with the \`write\` tool.`,"That file is the only path you may edit.","Explore first: read, search, and run read-only commands until the approach is clear.","End your turn with either `ask` to clarify a requirement, or `exit_plan_mode` to present","the plan for approval. Do not start implementing before the plan is approved.","</plan-mode>"].join(`
26
- `)}function N0(e){return`Rejected: file edits are not allowed in plan mode. The only editable file is the plan file (${e}). Present the plan with exit_plan_mode first.`}function Fm(){return ut}function XT(){return mt}function ZT(){return Lm(ut)}function QT(){if(!(!mt||!Bc(mt)))try{let e=zT(mt,"utf8");return e.trim()?e:void 0}catch{return}}function eE(){return QT()!==void 0}function tE(){return ut.state==="inactive"?"":ut.state==="pending"?"plan pending":eE()?"plan \u25CF ready":"plan \u25CF planning"}function nE(){return zc?HT(zc,"plan_mode.json"):void 0}function q0(){let e=nE();if(e)try{WT(BT(e),{recursive:!0}),Ze(e,JSON.stringify(ut))}catch{}}function _0(){let e=nE();if(!e||!Bc(e))return Cm();try{return M0(JSON.parse(zT(e,"utf8")))}catch{return Cm()}}function U0(e){zc=e,mt=HT(e,"plan.md"),ut=_0()}function ko(e){return ut=e,q0(),ut}function rE(){return e=>{e.on("tool_call",async t=>{if(!Lm(ut)||t.toolName!=="edit"&&t.toolName!=="write")return;let n=t.input?.path;if(typeof n=="string"&&!(!mt||j0(n,mt)))return{block:!0,reason:N0(mt)}})}}function oE(){return e=>{e.on("session_start",async(t,n)=>{U0(n.sessionManager.getSessionDir())}),e.on("before_agent_start",async()=>{ut.state==="pending"&&ko(C0(ut))}),e.on("context_with_system",async t=>{if(!Lm(ut)||!mt)return;let n=t.messages[0];if(!n||n.role!=="system")return;let r=D0(mt,eE()),o=`${typeof n.content=="string"?n.content:""}
27
-
28
- ${r}`;return{messages:t.messages.map(a=>a===n?{...n,content:o}:a)}})}}function K0(){if(mt){try{WT(BT(mt),{recursive:!0}),Bc(mt)||Ze(mt,"")}catch{return}return mt}}var mt,ut,zc,Wc,sE,iE,Hc=m(()=>{$o();Wn();ut=Cm();Wc=2e4;sE=VT({name:"enter_plan_mode",label:"enter_plan_mode",description:"Enter plan mode to design an approach before writing code. Use it when a task has genuine ambiguity \u2014 several reasonable designs, or a restructuring where the wrong approach wastes significant effort. Do not use it for a clear fix, a rename, or a task that follows existing conventions. The user must approve entering.",promptSnippet:"enter_plan_mode: design first when the approach is genuinely ambiguous",parameters:ie.Object({}),async execute(e,t,n,r,o){if(ut.state!=="inactive")return{content:[{type:"text",text:`Plan mode is already ${ut.state}.`}],details:{}};if(!o.hasUI)return{content:[{type:"text",text:"Plan mode needs an interactive session: there is no one to approve the plan. Proceed normally."}],details:{},isError:!0};if(!await o.ui.confirm("Enter plan mode?","The agent will explore and design an approach before editing anything."))return{content:[{type:"text",text:"The user declined plan mode. Proceed normally."}],details:{}};ko(L0(ut));let a=K0();return{content:[{type:"text",text:["Plan mode is active. Edits are blocked except for the plan file.",a?`Write your plan to ${a}.`:"Write your plan to the session plan file."].join(`
29
- `)}],details:{planFile:a}}}}),iE=VT({name:"exit_plan_mode",label:"exit_plan_mode",description:"Present your plan for approval when you have finished planning. The plan is read from the plan file on disk, so write the file first. If the user asks for changes, stay in plan mode and revise it.",promptSnippet:"exit_plan_mode: present the written plan for approval",parameters:ie.Object({}),executionMode:"sequential",async execute(e,t,n,r,o){if(!Lm(ut))return{content:[{type:"text",text:"Plan mode is not active."}],details:{},isError:!0};let s=QT();if(!s)return{content:[{type:"text",text:`No plan has been written yet. Write it to ${mt??"the plan file"} before exiting plan mode.`}],details:{},isError:!0};if(!o.hasUI)return{content:[{type:"text",text:"Plan approval needs an interactive session."}],details:{},isError:!0};let a=s.length>Wc?`${s.slice(0,Wc)}
30
- \u2026 (${s.length-Wc} more characters)`:s;return await o.ui.confirm("Approve this plan?",a)?(ko(F0(ut)),{content:[{type:"text",text:"Plan approved. You may now implement it."}],details:{approved:!0,planFile:mt}}):{content:[{type:"text",text:"The user did not approve the plan. Stay in plan mode, revise the plan file with the feedback, and present it again."}],details:{approved:!1}}}})});function Vc(){return{consecutiveFailures:0,tripped:!1}}function G0(e,t){return t==="manual"?!1:e.consecutiveFailures>=3}function W0(e,t){if(t)return e;let n=e.consecutiveFailures+1;return{consecutiveFailures:n,tripped:e.tripped||n>=3}}function z0(){return Vc()}function B0(e){return[`Auto-compaction failed ${e.consecutiveFailures} times in a row, so it is switched off for this session.`,"The context is over the limit and compaction cannot recover it. Start a new session, or switch to a model with a larger context window.","Manual /compact is still allowed."].join(" ")}function aE(){return e=>{e.on("session_start",async()=>{ur=Vc()}),e.on("session_compact",async()=>{ur=z0()}),e.on("session_compact_failed",async(t,n)=>{let r=ur;ur=W0(ur,t.aborted),!r.tripped&&ur.tripped&&n?.ui&&n.ui.notify(B0(ur),"warning")}),e.on("session_before_compact",async t=>{if(G0(ur,t.reason))return{cancel:!0}})}}var ur,mE=m(()=>{ur=Vc()});function jm(e){return typeof e=="string"?e:Array.isArray(e)?e.map(t=>{let n=t;return n.type==="text"&&typeof n.text=="string"?n.text:""}).join(`
31
- `):e==null?"":String(e)}function Dm(e,t){if(Array.isArray(e)){let n=e.map(o=>({...o})),r=n.filter(o=>o.type==="text");if(r.length>0){r[0].text=t;for(let o of r.slice(1))o.text="";return n}return[...n,{type:"text",text:t}]}return t}var Jc=m(()=>{});function H0(e){an(wo(e))}function uE(e){return`budget exhausted (${e.budget??"default"} continuations)`}function pE(){return e=>{e.on("session_start",async(t,n)=>{H0(n)}),e.on("context_with_system",async(t,n)=>{let r=wo(n);if(an(r),!r||r.status!=="active")return;let o=t.messages[0];if(!o||o.role!=="system")return;let s=`${jm(o.content)}
32
-
33
- ${_T(r)}`;return{messages:t.messages.map(p=>p===o?{...o,content:Dm(o.content,s)}:p)}}),e.on("agent_before_settle",async(t,n)=>{let r=wo(n);if(an(r),Om(r).action==="stop"||!r||t.continue||!t.context.canContinue)return;let o={...r,used:r.used+1};if(e.appendEntry(mr,o),an(o),Om(o).action==="stop"){let s={...o,status:"done",note:uE(o)};e.appendEntry(mr,s),an(s);return}return{entries:[{type:"custom_message",customType:DT,content:UT(o),display:!0}],continue:!0}}),e.on("agent_settled",async(t,n)=>{let r=wo(n),o=Om(r);if(r&&o.action==="stop"&&o.close){let s={...r,status:"done",note:uE(r)};e.appendEntry(mr,s),an(s)}else an(r)})}}var cE=m(()=>{Jc();Mm()});function Nm(){return e=>{e.on("context_with_system",async t=>{let n=FT();if(!n)return;let r=t.messages[0];if(!r||r.role!=="system")return;let o=`${jm(r.content)}
34
-
35
- ${n}`;return{messages:t.messages.map(a=>a===r?{...r,content:Dm(r.content,o)}:a)}})}}var Yc=m(()=>{Jc();Sm()});import{mkdirSync as V0,readdirSync as J0,readFileSync as Y0}from"node:fs";import{join as lE}from"node:path";import{createAgentSession as X0,DefaultResourceLoader as Z0,SessionManager as Q0}from"@earendil-works/pi-coding-agent";function qm(e){V0(qr,{recursive:!0}),Ze(lE(qr,`${e.id}.json`),JSON.stringify({...e,session:void 0},null,1))}function Zc(){let e;try{e=J0(qr)}catch{return}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(Y0(lE(qr,t),"utf8"));if(n.status!=="parked"||Xt.some(r=>r.id===n.id))continue;Xt.push({...n,mail:n.mail??[]})}catch{}}function Qc(){return Zc(),Xt.length===0?"no agents":Xt.map(e=>`${e.id} ${e.agent} ${e.status} requests=${e.requests} ${e.task}`).join(`
36
- `)}function el(e){Zc();let t=Xt.find(n=>n.id===e);return t?`${t.agent}#${t.id} ${t.status}
37
- ${t.result??t.task}`:`no agent ${e}`}async function _m(e){let t=Cr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}`);let n=e.worktree||process.cwd(),r=new Z0({cwd:n,agentDir:Xe,extensionFactories:[Nm()]});await r.reload();let{session:o}=await X0({cwd:n,agentDir:Xe,sessionManager:Q0.inMemory(n),resourceLoader:r,tools:t.tools,customTools:[vm,Em],thinkingLevel:e.effort});return o}async function fE(e,t){Zc();let n=Xt.find(o=>o.id===e);if(!n)return`no agent ${e}`;let r=n.session??await _m(n);if(n.session=r,n.status==="running"||r.isStreaming)return n.mail.push(t),qm(n),`queued for ${e}`;if(n.requests>=dE)return`${e} is out of budget (${n.requests} requests)`;n.status="running";try{await r.prompt(t),n.requests+=1,n.result=r.getLastAssistantText()?.trim()||n.result,n.status="parked"}catch(o){n.result=o instanceof Error?o.message:String(o),n.status="error"}return qm(n),`${e} ${n.status}`}async function gE(e){let t=Cr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}. known: ${[...Cr.keys()].join(", ")}`);let n={id:`${Date.now().toString(36)}-${Xt.length+1}`,agent:t.name,task:e.task.trim(),effort:e.effort||t.effort,status:"queued",requests:0,mail:[],worktree:e.worktree};return Xt.push(n),qm(n),n}async function nL(e,t){let n=Cr.get(e.agent);if(!n)return;let r=e.session??await _m(e);e.session=r;try{let o=e.mail.splice(0).join(`
17
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]),Ib=(e,t=[])=>i(i(bb(e),([n,r])=>i(_p(r),([o,s])=>[[n,o],s])),([n,r])=>Ib(r,[...t,n]),()=>[t,e]),mM=e=>i(i(i(_p(e),([t,n])=>i(Ib(n),([r,o])=>i(i(bb(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[py(t),n]),_p=e=>i(i(aM(e),([t,n])=>i(i(rM(n),([r,o])=>[r,o],()=>i(oM(n),([r,o])=>[r,o],()=>i(sM(n),([r,o])=>[r,o],()=>i(iM(n),([r,o])=>[r,o],()=>[])))),([r,o])=>i(zy(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[cy(t),n]),uM=e=>i(i(_p(e),([t,n])=>i(mM(n),([r,o])=>[[t,r],o])),([t,n])=>[ly(t),n]),$b=e=>i(i(uM(e),([t,n])=>[t,n],()=>i(hO(e),([t,n])=>[t,n],()=>i(oe(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n])});function wb(e){let t=jp(`\`${e}\``);return u.IsEqual(t.length,2)?t[0]:De()}var Up=m(()=>{$n();R();Mi()});function cM(e){return e.join("|")}function lM(e){return e.slice(1,e.length-1)}function dM(e,t,n){return ir(t,`${n}${e}`)}function fM(e,t){return ir(e,`${t}${yg}`)}function gM(e,t){return ir(e,`${t}${Pi}`)}function xM(e,t){return ir(e,`${t}${Ri}`)}function hM(e,t){return xs(V([ee("false"),ee("true")]),e,t)}function yM(e,t){return ir(e,`${t}${Oi}`)}function bM(e,t,n){return ir(t,`${n}${lM(e)}`)}function IM(e,t,n){let r=hs(e,{});return xs(r,t,n)}function $M(e,t,n){let r=gt(e);return xs(r,t,n)}function kb(e,t,n,r=[]){return u.ShiftLeft(e,(o,s)=>kb(s,t,n,[...r,xs(o,[],"")]),()=>ir(t,`${n}(${cM(r)})`))}function xs(e,t,n){return tt(e)?$M(e.enum,t,n):lt(e)?gM(t,n):ue(e)?dM(e.const,t,n):kn(e)?fM(t,n):Bt(e)?hM(t,n):Me(e)?xM(t,n):ft(e)?yM(t,n):Se(e)?bM(e.pattern,t,n):Eb(e)?IM(e.parameters[0],t,n):L(e)?kb(e.anyOf,t,n):af}function ir(e,t){return u.ShiftLeft(e,(n,r)=>xs(n,r,t),()=>t)}function wM(e){return`^${ir(e,"")}$`}function Tb(e){let t=wM(e);return Fi(t)}var Kp=m(()=>{R();rn();Oe();J();wt();kr();Vt();dt();Tn();Xn();Be();ji();H();Pa()});function hs(e,t){return z(e)?l.Update(Tb(e),{},t):Zi(e,t)}function vb(e,t,n,r){let o=jt(e,t,n);return hs(o,r)}var Pa=m(()=>{v();wt();Kp();N()});function Zi(e,t={}){return j("TemplateLiteral",[e],t)}function Eb(e){return Fe(e)&&u.HasPropertyKey(e,"action")&&u.IsEqual(e.action,"TemplateLiteral")}function Sb(e){return hs(e,{})}function kM(e){let t=wb(e);return Sb(t)}function Pb(e,t={}){let n=u.IsString(e)?kM(e):Sb(e);return l.Update(n,{},t)}function Se(e){return C(e,"TemplateLiteral")}var wt=m(()=>{Ho();R();B();se();Up();Pa()});var G={};Lt(G,{ExtendsFalse:()=>W,ExtendsTrue:()=>P,ExtendsUnion:()=>Gp,IsExtendsFalse:()=>TM,IsExtendsTrue:()=>Rb,IsExtendsTrueLike:()=>uo,IsExtendsUnion:()=>Ab,Match:()=>Ie});function Gp(e){return l.Create({"~kind":"ExtendsUnion"},{inferred:e})}function Ab(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"inferred")&&u.IsEqual(e["~kind"],"ExtendsUnion")&&u.IsObject(e.inferred)}function P(e){return l.Create({"~kind":"ExtendsTrue"},{inferred:e})}function Rb(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"inferred")&&u.IsEqual(e["~kind"],"ExtendsTrue")&&u.IsObject(e.inferred)}function W(){return l.Create({"~kind":"ExtendsFalse"},{})}function TM(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.IsEqual(e["~kind"],"ExtendsFalse")}function uo(e){return Ab(e)||Rb(e)}function Ie(e,t,n){return uo(e)?t(e.inferred):n()}var ye=m(()=>{R();v()});function EM(e,t,n,r){return Ie(ne(e,n,r),o=>P(l.Assign(l.Assign(e,o),{[t]:n})),()=>W())}function vM(e,t){return P(e)}function SM(e,t,n,r,o){return Ie(ne(e,t,n),s=>Ie(ne(s,t,r),a=>P(a),()=>W()),()=>Ie(ne(e,t,o),s=>P(s),()=>W()))}function PM(e,t,n){let r=gt(n);return ne(e,t,r)}function Ob(e,t,n){return u.ShiftLeft(n,(r,o)=>Ie(ne(e,t,r),s=>Ob(s,t,o),()=>W()),()=>P(e))}function AM(e,t,n){let r=st(n);return ne(e,t,r)}function Mb(e,t,n){return u.ShiftLeft(n,(r,o)=>Ie(ne(e,t,r),s=>P(s),()=>Mb(e,t,o)),()=>W())}function pe(e,t,n){return Te(n)?vM(e,t):ve(n)?SM(e,t,n.if,n.then,n.else):tt(n)?PM(e,t,n.enum):Re(n)?EM(e,n.name,t,n.extends):Q(n)?Ob(e,t,n.allOf):Se(n)?AM(e,t,n.pattern):L(n)?Mb(e,t,n.anyOf):Ae(n)?P(e):W()}var at=m(()=>{R();v();bt();St();rn();zt();je();wt();J();Qe();Et();ye();H();H()});function Cb(e,t,n){return Re(n)?pe(e,t,n):Te(n)?P(e):Ae(n)?P(e):Gp(e)}var Lb=m(()=>{zt();bt();Qe();at();ye()});function RM(e,t){let n=Ir(e),r=Ir(t);return n&&r||!n&&r?!0:!(n&&!r)}function Fb(e,t,n,r){return $e(r)?RM(t,r)?ne(e,n,r.items):W():pe(e,t,r)}var jb=m(()=>{ct();Yo();at();Et();ye()});function Db(e,t,n){return kn(n)?P(e):pe(e,t,n)}var Nb=m(()=>{kr();at();ye()});function qb(e,t,n){return Bt(n)?P(e):pe(e,t,n)}var _b=m(()=>{Xn();at();ye()});function OM(e,t,n,r,o){let s=Re(r)?t:r,a=Re(r)?r:t,p=ot(t),c=ot(r);return!p&&c?W():Ie(ne(e,s,a),h=>ys(h,n,o),()=>W())}function MM(e,t,n,r){return u.ShiftLeft(r,(o,s)=>OM(e,t,n,o,s),()=>ot(t)?P(e):W())}function CM(e,t,n){return u.ShiftLeft(t,(r,o)=>MM(e,r,o,n),()=>P(e))}function ys(e,t,n){return CM(e,t,n)}var Wp=m(()=>{R();zt();Yn();Et();ye()});function Aa(e,t,n){return vn(n)?P(e):ne(e,t,n)}var zp=m(()=>{Pr();Et();ye()});function Ub(e,t,n,r){return Te(r)?P(e):Ae(r)?P(e):_e(r)?Ie(ys(e,t,r.parameters),o=>Aa(o,n,r.instanceType),()=>W()):W()}var Kb=m(()=>{bt();Kt();Qe();ye();Wp();zp()});function Gb(e,t,n,r,o){return Ie(ne(e,t,o),()=>ne(e,n,o),()=>ne(e,r,o))}var Wb=m(()=>{Et();ye()});function zb(e,t,n){let r=gt(t);return ne(e,r,n)}var Bb=m(()=>{Et();H()});function Hb(e,t,n,r){return Te(r)?P(e):Ae(r)?P(e):Ue(r)?Ie(ys(e,t,r.parameters),o=>Aa(o,n,r.returnType),()=>W()):W()}var Vb=m(()=>{bt();Gt();Qe();ye();Wp();zp()});function Jb(e,t,n){return lt(n)?P(e):Me(n)?P(e):pe(e,t,n)}var Yb=m(()=>{Tn();dt();at();ye()});function Xb(e,t,n){let r=we(t);return ne(e,r,n)}var Zb=m(()=>{Et();bs()});function Ra(e,t,n){return t===n?P(e):W()}function LM(e,t,n){return ue(n)?Ra(e,t,n.const):kn(n)?P(e):pe(e,ee(t),n)}function FM(e,t,n){return ue(n)?Ra(e,t,n.const):Bt(n)?P(e):pe(e,ee(t),n)}function jM(e,t,n){return ue(n)?Ra(e,t,n.const):Me(n)?P(e):pe(e,ee(t),n)}function DM(e,t,n){return ue(n)?Ra(e,t,n.const):ft(n)?P(e):pe(e,ee(t),n)}function Qb(e,t,n){return u.IsBigInt(t.const)?LM(e,t.const,n):u.IsBoolean(t.const)?FM(e,t.const,n):u.IsNumber(t.const)?jM(e,t.const,n):u.IsString(t.const)?DM(e,t.const,n):De()}var eI=m(()=>{R();Xu();Oe();kr();Xn();dt();Vt();at();ye()});function tI(e,t,n){return Re(n)?pe(e,t,n):P(e)}var nI=m(()=>{zt();at();ye()});function rI(e,t,n){return Vr(n)?P(e):pe(e,t,n)}var oI=m(()=>{Jr();at();ye()});function sI(e,t,n){return Me(n)?P(e):pe(e,t,n)}var iI=m(()=>{dt();at();ye()});function NM(e,t,n){return ot(t)?ot(n)?P(e):W():P(e)}function qM(e,t,n){return Re(n)&&nn(n.extends)?W():Ie(ne(e,t,n),r=>NM(r,t,n),()=>W())}function _M(e,t){return e.reduce((n,r)=>r in t?uo(t[r])?{...n,...t[r].inferred}:De():De(),{})}function UM(e,t,n){let r={};for(let a of u.Keys(n))r[a]=a in t?qM({},t[a],n[a]):ot(n[a])?Re(n[a])?P(l.Assign(e,{[n[a].name]:n[a].extends})):P(e):W();let o=u.Values(r).every(a=>uo(a)),s=o?_M(u.Keys(r),r):{};return o?P(s):W()}function KM(e,t,n){let r=UM(e,t,n);return uo(r)?P(l.Assign(e,r.inferred)):W()}function GM(e,t,n){return KM(e,t,n)}function WM(e,t){return u.Keys(t).reduce((n,r)=>({...n,[r]:u.HasPropertyKey(e,r)?L(n[r])?V([...n[r].anyOf,t[r]]):V([e[r],t[r]]):t[r]}),e)}function aI(e,t,n,r){return u.ShiftLeft(t,(o,s)=>Ie(ne({},e[o],n),a=>aI(e,s,n,WM(r,a)),()=>W()),()=>P(r))}function zM(e,t,n,r){let o=u.Keys(t);return aI(t,o,r,e)}function mI(e,t,n){return rt(n)?zM(e,t,Yt(n),xt(n)):me(n)?GM(e,t,n.properties):pe(e,K(t),n)}var uI=m(()=>{$n();v();R();Yn();zt();Be();ce();Ve();J();Et();at();ye()});function BM(e,t){return u.IsEqual(u.Keys(t).length,0)?P(e):W()}function HM(e,t,n,r,o){return ne(e,n,o)}function pI(e,t,n,r){return rt(r)?HM(e,Bi(t),n,Bi(Yt(r)),xt(r)):me(r)?BM(e,r.properties):Te(r)?P(e):Ae(r)?P(e):W()}var cI=m(()=>{R();bt();Qe();ce();Ve();Et();ye()});function lI(e,t,n){return ft(n)?P(e):pe(e,t,n)}var dI=m(()=>{Vt();at();ye()});function fI(e,t,n){return Zn(n)?P(e):pe(e,t,n)}var gI=m(()=>{Er();at();ye()});function xI(e,t,n){let r=st(t);return ne(e,r,n)}var hI=m(()=>{Et();H()});function Bp(e,t){return l.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function Is(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"name")&&u.HasPropertyKey(e,"type")&&u.IsEqual(e["~kind"],"Inferrable")&&u.IsString(e.name)&&u.IsObject(e.type)}function Hp(e){return rr(e)?Re(e.items)?$e(e.items.extends)?Bp(e.items.name,e.items.extends.items):Ae(e.items.extends)?Bp(e.items.name,e.items.extends):void 0:De():void 0}function Oa(e){return Re(e)?Bp(e.name,e.extends):void 0}function Vp(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Ie(ne({},r,t),()=>Vp(o,t,[...n,r]),()=>{}),()=>n)}function yI(e,t,n,r){let o=Vp(n,r);return u.IsArray(o)?P(l.Assign(e,{[t]:Ce(o)})):W()}function Ma(e,t,n,r){let o=Vp(n,r);return u.IsArray(o)?P(l.Assign(e,{[t]:V(o)})):W()}var Jp=m(()=>{$n();v();R();ct();Qe();Ne();Et();J();zt();eo();ye()});function VM(e){return[...e].reverse()}function Yp(e,t){return t?VM(e):e}function JM(e){let t=e.length>0?e[0]:void 0,n=Fe(t)?Hp(t):void 0;return Fe(n)}function YM(e,t,n,r,o,s){return Ie(ne(e,n,o),a=>bI(a,t,r,s),()=>W())}function XM(e,t,n,r,o){let s=Hp(r);return Is(s)?yI(e,s.name,Yp(n,t),s.type):u.ShiftLeft(n,(a,p)=>YM(e,t,a,p,r,o),()=>W())}function ZM(e,t,n,r){return u.ShiftLeft(r,(o,s)=>XM(e,t,n,o,s),()=>u.IsEqual(n.length,0)?P(e):W())}function bI(e,t,n,r){return ZM(e,t,n,r)}function QM(e,t,n){let r=ar(e,be([],[]),n),o=JM(r);return bI(e,o,Yp(t,o),Yp(r,o))}function II(e,t,n){let r=Oa(n);return Is(r)?Ma(e,r.name,t,r.type):u.ShiftLeft(t,(o,s)=>Ie(ne(e,o,n),a=>II(a,s,n),()=>W()),()=>P(e))}function $I(e,t,n){let r=ar(e,be([],[]),t);return ge(n)?QM(e,r,n.items):$e(n)?II(e,r,n.items):pe(e,Ce(r),n)}var wI=m(()=>{R();B();ct();Ne();Et();at();ye();N();N();Jp()});function kI(e,t,n){return vn(n)?P(e):no(n)?P(e):pe(e,t,n)}var TI=m(()=>{ro();Pr();at();ye()});function EI(e,t,n){return u.ShiftLeft(n,(r,o)=>Ie(ne(e,t,r),s=>P(s),()=>EI(e,t,o)),()=>W())}function Xp(e,t,n){return u.ShiftLeft(t,(r,o)=>Ie(EI(e,r,n),s=>Xp(s,o,n),()=>W()),()=>P(e))}function vI(e,t,n){let r=Oa(n);return Is(r)?Ma(e,r.name,t,r.type):L(n)?Xp(e,t,n.anyOf):Xp(e,t,[n])}var SI=m(()=>{R();J();Et();ye();Jp()});function PI(e,t,n){return Re(n)?pe(e,t,n):Te(n)?P(e):Ae(n)?P(e):W()}var AI=m(()=>{bt();Qe();zt();at();ye()});function RI(e,t,n){return vn(n)?P(e):pe(e,t,n)}var OI=m(()=>{Pr();at();ye()});function ne(e,t,n){return Te(t)?Cb(e,t,n):$e(t)?Fb(e,t,t.items,n):kn(t)?Db(e,t,n):Bt(t)?qb(e,t,n):_e(t)?Ub(e,t.parameters,t.instanceType,n):ve(t)?Gb(e,t.if,t.then,t.else,n):tt(t)?zb(e,t.enum,n):Ue(t)?Hb(e,t.parameters,t.returnType,n):lt(t)?Jb(e,t,n):Q(t)?Xb(e,t.allOf,n):ue(t)?Qb(e,t,n):nn(t)?tI(e,t,n):Vr(t)?rI(e,t,n):Me(t)?sI(e,t,n):me(t)?mI(e,t.properties,n):rt(t)?pI(e,Yt(t),xt(t),n):ft(t)?lI(e,t,n):Zn(t)?fI(e,t,n):Se(t)?xI(e,t.pattern,n):ge(t)?$I(e,t.items,n):no(t)?kI(e,t,n):L(t)?vI(e,t.anyOf,n):Ae(t)?PI(e,t,n):vn(t)?RI(e,t,n):W()}var Et=m(()=>{Lb();jb();Nb();_b();Kb();Wb();Bb();Vb();Yb();Zb();eI();nI();oI();iI();uI();cI();dI();gI();hI();wI();TI();SI();AI();OI();bt();ct();kr();Xn();Kt();St();rn();Gt();Tn();je();Oe();Be();Jr();dt();ce();Ve();Vt();Er();wt();Ne();ro();Qe();J();Pr();ye()});function eC(e,t){return we([...e,K(t)])}function Zp(e,t,n){return z(e)?l.Update(eC(e,t),{},n):cs(e,t,n)}function MI(e,t,n,r,o){let s=jt(e,t,n),a=$s(e,t,r);return Zp(s,a,o)}var Ca=m(()=>{v();ce();H();so();N();N();N()});function cs(e,t,n={}){return j("Interface",[e,t],n)}function po(e){return Fe(e)&&u.HasPropertyKey(e,"action")&&u.IsEqual(e.action,"Interface")}function CI(e,t,n={}){return Zp(e,t,n)}var ws=m(()=>{R();B();se();Ca()});function tC(e,t,n){return e.includes(n)?!0:ks([...e,n],t,t[n])}function LI(e,t,n){let r=$i(n);return Rr(e,t,r)}function Rr(e,t,n){return u.ShiftLeft(n,(r,o)=>ks(e,t,r)?!0:Rr(e,t,o),()=>!1)}function ks(e,t,n){return Ke(n)?tC(e,t,n.$ref):$e(n)?ks(e,t,n.items):_e(n)?Rr(e,t,[...n.parameters,n.instanceType]):Ue(n)?Rr(e,t,[...n.parameters,n.returnType]):po(n)?LI(e,t,n.parameters[1]):Q(n)?Rr(e,t,n.allOf):me(n)?LI(e,t,n.properties):L(n)?Rr(e,t,n.anyOf):ge(n)?Rr(e,t,n.items):rt(n)?ks(e,t,xt(n)):!1}function FI(e,t,n){return ks(e,t,n)}var Qp=m(()=>{R();ct();Kt();Gt();je();ce();yr();Ve();Ne();J();Wt();ws()});function nC(e,t){return t.reduce((n,r)=>FI([r],e,e[r])?[...n,r]:n,[])}function jI(e){let t=Ii(e);return nC(e,t)}var ec=m(()=>{yr();Qp()});function rC(e,t,n){return n.includes(t)?n:t in e?Ts(e,e[t],[...n,t]):De()}function DI(e,t,n){let r=$i(t);return co(e,r,n)}function co(e,t,n){return t.reduce((r,o)=>Ts(e,o,r),n)}function Ts(e,t,n){return Ke(t)?rC(e,t.$ref,n):$e(t)?Ts(e,t.items,n):_e(t)?co(e,[...t.parameters,t.instanceType],n):Ue(t)?co(e,[...t.parameters,t.returnType],n):po(t)?DI(e,t.parameters[1],n):Q(t)?co(e,t.allOf,n):me(t)?DI(e,t.properties,n):L(t)?co(e,t.anyOf,n):ge(t)?co(e,t.items,n):rt(t)?Ts(e,xt(t),n):n}function NI(e,t,n){return Ts(e,n,[t])}var tc=m(()=>{$n();ct();Kt();Gt();je();ce();yr();Ve();Ne();J();Wt();ws()});function oC(e){return Wr()}function sC(e){return u.Keys(e).reduce((t,n)=>({...t,[n]:Or(e[n])}),{})}function Es(e){return e.reduce((t,n)=>[...t,Or(n)],[])}function Or(e){return Ke(e)?oC(e.$ref):$e(e)?Ft(Or(e.items),bi(e)):_e(e)?xn(Es(e.parameters),Or(e.instanceType)):Ue(e)?hn(Es(e.parameters),Or(e.returnType)):Q(e)?$t(Es(e.allOf)):me(e)?K(sC(e.properties)):rt(e)?zi(Qr(e),Or(xt(e))):L(e)?V(Es(e.anyOf)):ge(e)?Ce(Es(e.items)):e}function iC(e,t){return t in e?Or(e[t]):He()}function qI(e){return iC(e.$defs,e.$ref)}var _I=m(()=>{R();bt();ct();Kt();Gt();je();ce();Ve();Wt();Ne();J();Qe()});function aC(e,t,n){let r=jt(e,be([],[]),t),o=$s({},be([],[]),n);return we([...r,K(o)])}function mC(e,t){return u.Keys(e).filter(r=>t.includes(r)).reduce((r,o)=>{let s=e[o],a=po(s)?aC(e,s.parameters[0],s.parameters[1]):s;return{...r,[o]:a}},{})}function UI(e,t,n){let r=NI(e,t,n),o=mC(e,r);return bn(o,t)}var nc=m(()=>{R();It();ce();tc();so();N();N();N();H()});function KI(e,t){return t in e?Ke(e[t])?KI(e,e[t].$ref):e[t]:le()}function An(e,t){return KI(e,t)}var Mr=m(()=>{Be();Wt()});var rc=m(()=>{ec();Qp();tc();_I();nc();Mr()});function GI(e){return et(e)?qI(e):wi(e)?He():e}function nt(e,t,n){let r=GI(t),o=GI(n);return ne(e,r,o)}var WI=m(()=>{It();Qe();ki();Et();rc()});var En=m(()=>{WI();ye()});function is(e,t){let n=[nt({},e,t),nt({},t,e)];return G.IsExtendsTrueLike(n[0])&&G.IsExtendsTrueLike(n[1])?os:G.IsExtendsTrueLike(n[0])&&G.IsExtendsFalse(n[1])?ss:G.IsExtendsFalse(n[0])&&G.IsExtendsTrueLike(n[1])?_i:La}var os,La,ss,_i,as=m(()=>{En();os=0,La=1,ss=2,_i=3});function oc(e,t,n=[],r=t){return u.ShiftLeft(t,(o,s)=>{let a=is(e,o);return u.IsEqual(a,ss)||u.IsEqual(a,os)?r:u.IsEqual(a,La)?oc(e,s,[...n,o],r):oc(e,s,n,r)},()=>[...n,e])}function uC(e,t,n){let r=Jt(e);return Te(r)?[r]:Ae(r)?[r]:nn(r)?Fa(t,n):me(r)?Fa(t,[...n,r]):Fa(t,oc(r,n))}function Fa(e,t=[]){return u.ShiftLeft(e,(n,r)=>uC(n,r,t),()=>t)}function bp(e){let t=Fa(e);return Zr(t)}var Ip=m(()=>{R();bt();Be();ce();Qe();as();Ki();H()});function sc(e,t){return l.Update(Jt(e),{},t)}function zI(e,t,n,r){let o=k(e,t,n);return sc(o,r)}var ja=m(()=>{v();N();H()});var bs=m(()=>{Ip();as();gp();hp();H();Ki();ja();xp()});function vs(e,t=[]){return Vn(e)&&u.IsEqual(e.action,"Conditional")?Ke(e.parameters[0])?vs(e.parameters[2],vs(e.parameters[3],[...t,e.parameters[0].$ref])):vs(e.parameters[2],vs(e.parameters[3],t)):Vn(e)&&u.IsEqual(e.action,"Mapped")&&Vn(e.parameters[1])&&u.IsEqual(e.parameters[1].action,"KeyOf")&&Ke(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function pC(e,t){return e.reduce((n,r)=>[...n,t.includes(r.name)],[])}function VI(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>u.ShiftLeft(t,(s,a)=>VI(o,a,[...n,[s,r]]),()=>n),()=>n)}function cC(e){return Se(e)?st(e.pattern):tt(e)?gt(e.enum):e}function lC(e){let t=cC(e);return L(t)?[...t.anyOf]:[t]}function dC(e,t){return e.reduce((n,r)=>[...n,[...r,t]],[])}function BI(e,t){return t.reduce((n,r)=>[...n,...dC(e,r)],[])}function HI(e){return e.reduce((t,n)=>u.IsEqual(n[0],!0)?BI(t,lC(n[1])):BI(t,[n[1]]),[[]])}function JI(e,t,n){let r=vs(n),o=pC(e,r),s=VI(t,o);return Vn(n)&&u.IsEqual(n.action,"Conditional")||Vn(n)&&u.IsEqual(n.action,"Mapped")?HI(s):[t]}var YI=m(()=>{R();J();se();rn();wt();Wt();H();H()});function fC(){return["(not-resolvable)",le()]}function gC(){return["(not-generic)",le()]}function xC(e,t,n){return[e,Jn(t,n)]}function hC(e,t,n){return t in e?XI(e,t,e[t],n):fC()}function XI(e,t,n,r){return Gr(n)?xC(t,n.parameters,n.expression):Ke(n)?hC(e,n.$ref,r):gC()}function ZI(e,t,n){return XI(e,"(anonymous)",t,n)}var QI=m(()=>{Wo();Wt();Be()});function yC(e,t,n){if(Re(t)||lo(t)||G.IsExtendsTrueLike(nt({},t,n)))return;let r={parameter:e,expect:n,actual:t};throw new Error(`Argument for parameter ${e} does not satisfy constraint`,{cause:r})}function e$(e,t,n,r,o){let s=k(e,t,o);return yC(n,s,r),l.Assign(e,{[n]:s})}function bC(e,t,n,r,o){let s=k(e,t,n.extends),a=k(e,t,n.equals);return u.ShiftLeft(o,(p,c)=>ic(e$(e,t,n.name,s,p),t,r,c),()=>ic(e$(e,t,n.name,s,a),t,r,[]))}function ic(e,t,n,r){return u.ShiftLeft(n,(o,s)=>bC(e,t,o,s,r),()=>e)}function t$(e,t,n,r){return ic(e,t,n,r)}var n$=m(()=>{R();v();N();En();zt();oo()});function IC(){if(!u.IsLessThan(mc,tn.Get().maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite")}function $C(){IC(),mc++,ac++}function wC(){ac--,u.IsEqual(ac,0)&&(mc=0)}function kC(e){return u.IsGreaterThan(e.callstack.length,0)?e.callstack[e.callstack.length-1]:""}function TC(e,t){return u.IsEqual(kC(e),t)}function EC(e,t,n,r,o,s){$C();try{let a=t$(e,t,r,s),p=k(a,be([...t.callstack,n.$ref],t.visited),o);return k(a,be([],[]),p)}finally{wC()}}function vC(e,t,n,r,o,s){return s.reduce((a,p)=>{let c=EC(e,t,n,r,o,p);return[...a,c]},[])}function SC(e,t,n,r,o,s){let a=JI(r,s,o),p=vC(e,t,n,r,o,a);return u.IsEqual(p.length,1)?p[0]:Tt(p)}function Da(e,t,n,r){let o=jt(e,t,r),s=ZI(e,n,r),a=s[0],p=s[1];return Gr(p)?TC(t,a)?ls(Dn(a),o):SC(e,t,Dn(a),p.parameters,p.expression,o):ls(n,o)}var ac,mc,uc=m(()=>{gr();R();oo();Wt();Wo();bs();N();N();N();YI();QI();n$();ac=0,mc=0});function ls(e,t){return l.Create({"~kind":"Call"},{type:"call",target:e,arguments:t},{})}function r$(e,t){return Da({},be([],[]),e,t)}function lo(e){return C(e,"Call")}var oo=m(()=>{v();B();uc();N()});function PC(e){return l.Discard(e,["~immutable"])}function o$(e,t){return l.Update(PC(e),{},t)}function s$(e,t,n,r){let o=k(e,t,n);return o$(o,r)}var pc=m(()=>{v();N()});function i$(e,t){return e(t)}var a$=m(()=>{});function m$(e,t){return u.IsString(t)?ee(i$(e,t)):ee(t)}var u$=m(()=>{R();Oe();a$()});function p$(e,t){let n=st(t);return _n(e,n)}var c$=m(()=>{Na();bs()});function l$(e,t){let n=t.map(r=>_n(e,r));return V(n)}var d$=m(()=>{J();Na()});function _n(e,t){return ue(t)?m$(e,t.const):Se(t)?p$(e,t.pattern):L(t)?l$(e,t.anyOf):t}var Na=m(()=>{Oe();wt();J();u$();c$();d$()});function Qi(e,t={}){return j("Capitalize",[e],t)}function f$(e,t={}){return cc(e,t)}var qa=m(()=>{se();Rn()});function ea(e,t={}){return j("Lowercase",[e],t)}function g$(e,t={}){return lc(e,t)}var _a=m(()=>{se();Rn()});function ta(e,t={}){return j("Uncapitalize",[e],t)}function x$(e,t={}){return dc(e,t)}var Ua=m(()=>{se();Rn()});function na(e,t={}){return j("Uppercase",[e],t)}function h$(e,t={}){return fc(e,t)}var Ka=m(()=>{se();Rn()});function cc(e,t){return z([e])?l.Update(_n(AC,e),{},t):Qi(e,t)}function lc(e,t){return z([e])?l.Update(_n(RC,e),{},t):ea(e,t)}function dc(e,t){return z([e])?l.Update(_n(OC,e),{},t):ta(e,t)}function fc(e,t){return z([e])?l.Update(_n(MC,e),{},t):na(e,t)}function y$(e,t,n,r){let o=k(e,t,n);return cc(o,r)}function b$(e,t,n,r){let o=k(e,t,n);return lc(o,r)}function I$(e,t,n,r){let o=k(e,t,n);return dc(o,r)}function $$(e,t,n,r){let o=k(e,t,n);return fc(o,r)}var AC,RC,OC,MC,Rn=m(()=>{v();Na();N();qa();_a();Ua();Ka();AC=e=>e[0].toUpperCase()+e.slice(1),RC=e=>e.toLowerCase(),OC=e=>e[0].toLowerCase()+e.slice(1),MC=e=>e.toUpperCase()});function ra(e,t,n,r,o={}){return j("Conditional",[e,t,n,r],o)}function w$(e,t,n,r,o={}){return gc({},be([],[]),e,t,n,r,o)}var Ga=m(()=>{se();xc();N()});function CC(e,t,n,r,o,s){let a=nt(e,n,r);return G.IsExtendsUnion(a)?V([k(a.inferred,t,o),k(e,t,s)]):G.IsExtendsTrue(a)?k(a.inferred,t,o):k(e,t,s)}function gc(e,t,n,r,o,s,a){return z([n,r])?l.Update(CC(e,t,n,r,o,s),{},a):ra(n,r,o,s,a)}function k$(e,t,n,r,o,s,a){let p=k(e,t,n),c=k(e,t,r);return gc(e,t,p,c,o,s,a)}var xc=m(()=>{v();J();En();N();Ga()});var hc=m(()=>{xc()});function oa(e,t={}){return j("ConstructorParameters",[e],t)}function T$(e,t={}){return yc(e,t)}var Wa=m(()=>{se();za()});function LC(e){let t=_e(e)?e.parameters:[],n=ar({},be([],[]),t);return Ce(n)}function yc(e,t){return z([e])?l.Update(LC(e),{},t):oa(e,t)}function E$(e,t,n,r){let o=k(e,t,n);return yc(o,r)}var za=m(()=>{v();Kt();Ne();Wa();N();N();N()});function sa(e,t,n={}){return j("Exclude",[e,t],n)}function v$(e,t,n={}){return Ss(e,t,n)}var Ba=m(()=>{se();Ps()});function Ss(e,t,n){return z([e,t])?l.Update(Ui(e,t),{},n):sa(e,t,n)}function S$(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return Ss(s,a,o)}var Ps=m(()=>{v();N();Ba();yp()});function ia(e,t,n={}){return j("Extract",[e,t],n)}function P$(e,t,n={}){return bc(e,t,n)}var Ha=m(()=>{se();Va()});function FC(e,t){let n=nt({},e,t);return G.IsExtendsTrueLike(n)?[e]:[]}function A$(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>A$(o,t,[...n,...FC(r,t)]),()=>n)}function R$(e,t){let n=Jt(e),r=L(n)?n.anyOf:[n],o=A$(r,t);return Tt(o)}var O$=m(()=>{R();J();En();H();H()});function bc(e,t,n){return z([e,t])?l.Update(R$(e,t),{},n):ia(e,t,n)}function M$(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return bc(s,a,o)}var Va=m(()=>{v();N();Ha();O$()});function jC(e){return e.reduce((t,n)=>Ai(n)?[...t,ee(n)]:t,[])}function fo(e){let t=jC(e);return V(t)}var As=m(()=>{Oe();J()});function ds(e,t,n={}){return j("Index",[e,t],n)}function C$(e,t,n={}){let r=u.IsArray(t)?fo(t):t;return $c(e,r,n)}var Ic=m(()=>{R();se();As();Ja()});function L$(e,t){let n=An(e,t);return Dt(n)}var F$=m(()=>{Cr();Mr()});function j$(e,t,n){let r=sn(e,t,n);return Dt(r)}var D$=m(()=>{Cr();H()});function DC(e,t){let n=u.Keys(e).filter(I=>!u.HasPropertyKey(t,I)),r=u.Keys(t).filter(I=>!u.HasPropertyKey(e,I)),o=u.Keys(e).filter(I=>u.HasPropertyKey(t,I)),s=n.reduce((I,T)=>({...I,[T]:e[T]}),{}),a=r.reduce((I,T)=>({...I,[T]:t[T]}),{}),p=o.reduce((I,T)=>({...I,[T]:we([e[T],t[T]])}),{}),c=l.Assign(s,a);return l.Assign(c,p)}function N$(e){return e.reduce((t,n)=>DC(t,Dt(n)),{})}var q$=m(()=>{v();R();Cr();H()});var _$=m(()=>{});function U$(e){let t=Kg(Ce(e));return Dt(t)}var K$=m(()=>{Ne();dp();Cr()});function NC(e,t){return u.Keys(e).filter(o=>o in t).reduce((o,s)=>({...o,[s]:Tt([e[s],t[s]])}),{})}function G$(e,t){return u.ShiftLeft(e,(n,r)=>G$(r,NC(t,Dt(n))),()=>t)}function W$(e){return u.ShiftLeft(e,(t,n)=>G$(n,Dt(t)),()=>De())}var z$=m(()=>{R();$n();H();Cr()});function Dt(e){return et(e)?L$(e.$defs,e.$ref):ve(e)?j$(e.if,e.then,e.else):Q(e)?N$(e.allOf):L(e)?W$(e.anyOf):ge(e)?U$(e.items):me(e)?e.properties:{}}var Cr=m(()=>{It();St();je();ce();Ne();J();F$();D$();q$();_$();K$();z$()});function go(e){let t=Dt(e);return K(t)}var B$=m(()=>{ce();Cr()});var Rs=m(()=>{B$()});function xo(e){let t=`${e}`;return qC.test(t)?parseInt(t):e}var qC,Os=m(()=>{qC=new RegExp("^(?:0|[1-9][0-9]*)$")});function _C(e){return ee(xo(e))}function H$(e){return e.map(t=>V$(t))}function V$(e){return Q(e)?$t(H$(e.allOf)):L(e)?V(H$(e.anyOf)):ue(e)?_C(e.const):e}function J$(e,t){let n=V$(t),r=nt({},n,Pt());return G.IsExtendsTrueLike(r)?e:ue(t)&&u.IsEqual(t.const,"length")?Pt():le()}var Y$=m(()=>{R();je();J();Oe();dt();Be();En();Os()});function X$(e,t){let n=An(e,t);return Rt(n)}var Z$=m(()=>{mr();Mr()});function Q$(e,t,n){let r=sn(e,t,n);return Rt(r)}var ew=m(()=>{mr();H()});function tw(e){let t=gt(e);return Rt(t)}var nw=m(()=>{mr();H()});function rw(e){let t=we(e);return Rt(t)}var ow=m(()=>{H();mr()});function sw(e){return[`${e}`]}var iw=m(()=>{});function aw(e){let t=st(e);return Rt(t)}var mw=m(()=>{mr();H()});function uw(e){return e.reduce((t,n)=>[...t,...Rt(n)],[])}var pw=m(()=>{mr()});function Rt(e){return et(e)?X$(e.$defs,e.$ref):ve(e)?Q$(e.if,e.then,e.else):tt(e)?tw(e.enum):Q(e)?rw(e.allOf):ue(e)?sw(e.const):Se(e)?aw(e.pattern):L(e)?uw(e.anyOf):[]}var mr=m(()=>{It();St();rn();je();Oe();wt();J();Z$();ew();nw();ow();iw();mw();pw()});function ho(e){return Rt(e)}var Ya=m(()=>{mr()});function Ms(e,t){return t.map(n=>Cs(e,n))}function Cs(e,t){return $e(t)?Ft(Cs(e,t.items)):_e(t)?xn(Ms(e,t.parameters),Cs(e,t.instanceType)):Ue(t)?hn(Ms(e,t.parameters),Cs(e,t.returnType)):ge(t)?Ce(Ms(e,t.items)):L(t)?V(Ms(e,t.anyOf)):Q(t)?$t(Ms(e,t.allOf)):Vi(t)?K(e):t}function cw(e,t){return Cs(e,t)}var lw=m(()=>{ct();Kt();Gt();je();ce();Ne();Ji();J()});function UC(e,t){let n=t in e?e[t]:le();return cw(e,n)}function dw(e,t){return t.reduce((n,r)=>[...n,UC(e,r)],[])}function KC(e,t){let n=ho(t),r=dw(e,n);return Tt(r)}function WC(e){return e.filter(n=>GC.test(n))}function zC(e){let t=Ii(e),n=WC(t),r=dw(e,n);return Tt(r)}function fw(e,t){return Me(t)?zC(e):KC(e,t)}var GC,gw=m(()=>{dt();Be();yr();H();Ya();Ve();lw();GC=new RegExp(nr)});function BC(e){return ee(xo(e))}function xw(e){return e.map(t=>wc(t))}function wc(e){return Q(e)?$t(xw(e.allOf)):L(e)?V(xw(e.anyOf)):ue(e)?BC(e.const):e}var hw=m(()=>{J();je();Oe();Os()});function HC(e,t){return e.reduceRight((n,r,o)=>{let s=nt({},ee(o),t);return G.IsExtendsTrueLike(s)?[r,...n]:n},[])}function VC(e,t){let n=wc(t),r=HC(e,n);return er(r)}function JC(e){return er(e)}function yw(e,t){return ue(t)&&u.IsEqual(t.const,"length")?ee(e.length):Me(t)||lt(t)?JC(e):VC(e,t)}var bw=m(()=>{R();Oe();dt();Tn();H();En();hw()});function Iw(e,t){return $e(e)?J$(e.items,t):me(e)?fw(e.properties,t):ge(e)?yw(e.items,t):le()}var $w=m(()=>{ct();Be();ce();Ne();Y$();gw();bw()});function YC(e){return et(e)||ve(e)||Q(e)||L(e)?go(e):e}function $c(e,t,n){return z([e,t])?l.Update(Iw(YC(e),t),{},n):ds(e,t,n)}function ww(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return $c(s,a,o)}var Ja=m(()=>{v();It();St();je();J();N();Ic();Rs();$w()});function aa(e,t={}){return j("InstanceType",[e],t)}function kw(e,t={}){return kc(e,t)}var Xa=m(()=>{se();Za()});function XC(e){return _e(e)?e.instanceType:le()}function kc(e,t){return z([e])?l.Update(XC(e),{},t):aa(e,t)}function Tw(e,t,n,r={}){let o=k(e,t,n);return kc(o,r)}var Za=m(()=>{v();Kt();Be();Xa();N()});function fs(e,t={}){return j("KeyOf",[e],t)}function Ew(e,t={}){return Tc(e,t)}var Qa=m(()=>{se();em()});function vw(){return V([Pt(),Ht(),Yr()])}var Sw=m(()=>{dt();Vt();Er();J()});function Pw(e){return Pt()}var Aw=m(()=>{dt()});function ZC(e){return e.reduce((n,r)=>Ai(r)?[...n,ee(xo(r))]:De(),[])}function Rw(e){let t=u.Keys(e),n=ZC(t);return er(n)}var Ow=m(()=>{$n();R();Oe();Os();H()});function Mw(e){return Qr(e)}var Cw=m(()=>{Ve()});function Lw(e){let t=e.map((n,r)=>ee(r));return er(t)}var Fw=m(()=>{Oe();H()});function jw(e){return Te(e)?vw():$e(e)?Pw(e.items):me(e)?Rw(e.properties):rt(e)?Mw(e):ge(e)?Lw(e.items):le()}var Dw=m(()=>{bt();ct();Be();ce();Ve();Ne();Sw();Aw();Ow();Cw();Fw()});function QC(e){return et(e)||ve(e)||Q(e)||L(e)?go(e):e}function Tc(e,t){return z([e])?l.Update(jw(QC(e)),{},t):fs(e,t)}function Nw(e,t,n,r){let o=k(e,t,n);return Tc(o,r)}var em=m(()=>{v();It();St();je();J();Qa();N();Rs();Dw()});function ps(e,t,n,r,o={}){return j("Mapped",[e,t,n,r],o)}function qw(e,t,n,r,o={}){return Ec({},be([],[]),e,t,n,r,o)}var tm=m(()=>{se();nm();N()});function e0(e){let t=st(e);return rm(t)}function t0(e){return e.reduce((t,n)=>[...t,...rm(n)],[])}function n0(e){let t=gt(e);return rm(t)}function r0(e){return u.IsNumber(e)?[ee(`${e}`)]:[ee(e)]}function rm(e){return tt(e)?n0(e.enum):ue(e)?r0(e.const):Se(e)?e0(e.pattern):L(e)?t0(e.anyOf):[e]}function _w(e){return rm(e)}var Uw=m(()=>{R();Oe();rn();wt();J();H();H()});function o0(e){return Se(e)?st(e.pattern):e}function s0(e,t,n,r,o,s){let a=l.Assign(e,{[n.name]:r}),p=k(a,t,o),c=o0(p),h=k(a,t,s);return Ig(c)||$g(c)?{[c.const]:h}:{}}function i0(e,t,n,r,o,s){return r.reduce((a,p)=>[...a,s0(e,t,n,p,o,s)],[])}function a0(e){return e.reduce((t,n)=>[...t,K(n)],[])}function Kw(e,t,n,r,o,s){let a=_w(r),p=i0(e,t,n,a,o,s),c=a0(p);return we(c)}var Gw=m(()=>{v();Oe();ce();wt();N();H();H();Uw()});function Ec(e,t,n,r,o,s,a){return z([r])?l.Update(Kw(e,t,n,r,o,s),{},a):ps(n,r,o,s,a)}function Ww(e,t,n,r,o,s,a){let p=k(e,t,r);return Ec(e,t,n,p,o,s,a)}var nm=m(()=>{v();tm();N();Gw()});function m0(e,t,n){let r=l.Assign(e,t);return u.Keys(t).filter(s=>n.includes(s)).reduce((s,a)=>({...s,[a]:UI(r,a,t[a])}),{})}function u0(e,t,n){let r=l.Assign(e,t);return u.Keys(t).filter(s=>!n.includes(s)).reduce((s,a)=>({...s,[a]:k(r,be([],[]),t[a])}),{})}function p0(e,t,n){let r=jI(t),o=m0(e,t,r),s=u0(e,t,r),a={...o,...s};return l.Update(a,{},n)}function om(e,t,n,r){return p0(e,n,r)}var sm=m(()=>{R();v();N();ec();nc();N()});function ma(e,t={}){return j("NonNullable",[e],t)}function zw(e,t={}){return vc(e,t)}var im=m(()=>{se();am()});function c0(e){let t=V([Hr(),to()]);return Ss(e,t,{})}function vc(e,t){return z([e])?l.Update(c0(e),{},t):ma(e,t)}function Bw(e,t,n,r){let o=k(e,t,n);return vc(o,r)}var am=m(()=>{v();Jr();ro();J();Ps();im();N()});function ua(e,t,n={}){return j("Omit",[e,t],n)}function Hw(e,t,n={}){let r=u.IsArray(t)?fo(t):t;return Sc(e,r,n)}var mm=m(()=>{R();se();As();um()});function pm(e){let t=go(e);return me(t)?t.properties:De()}var Pc=m(()=>{$n();ce();Rs()});function l0(e,t){return u.Keys(e).reduce((r,o)=>t.includes(o)?r:{...r,[o]:e[o]},{})}function Vw(e,t){let n=pm(e),r=ho(t),o=l0(n,r);return K(o)}var Jw=m(()=>{R();ce();Ya();Pc()});function Sc(e,t,n){return z([e,t])?l.Update(Vw(e,t),{},n):ua(e,t,n)}function Yw(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return Sc(s,a,o)}var um=m(()=>{v();mm();N();Jw()});function pa(e,t={}){return j("Parameters",[e],t)}function Xw(e,t={}){return Ac(e,t)}var cm=m(()=>{se();lm()});function d0(e){let t=Ue(e)?e.parameters:[],n=ar({},be([],[]),t);return Ce(n)}function Ac(e,t){return z([e])?l.Update(d0(e),{},t):pa(e,t)}function Zw(e,t,n,r){let o=k(e,t,n);return Ac(o,r)}var lm=m(()=>{v();Gt();Ne();cm();N();N();N()});function ca(e,t={}){return j("Partial",[e],t)}function Qw(e,t={}){return Rc(e,t)}var dm=m(()=>{se();fm()});function ek(e,t){let n=An(e,t),r=On(n);return bn(l.Assign(e,{[t]:r}),t)}var tk=m(()=>{v();It();yo();Mr()});function nk(e,t,n){let r=sn(e,t,n);return On(r)}var rk=m(()=>{yo();H()});function ok(e){let t=we(e);return On(t)}var sk=m(()=>{yo();H()});function ik(e){let t=e.map(n=>On(n));return V(t)}var ak=m(()=>{J();yo()});function mk(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:hr(e[o])}),{});return K(t)}var uk=m(()=>{R();ce();zo()});function On(e){return et(e)?ek(e.$defs,e.$ref):ve(e)?nk(e.if,e.then,e.else):Q(e)?ok(e.allOf):L(e)?ik(e.anyOf):me(e)?mk(e.properties):K({})}var yo=m(()=>{It();St();je();ce();J();tk();rk();sk();ak();uk()});function Rc(e,t){return z([e])?l.Update(On(e),{},t):ca(e,t)}function pk(e,t,n,r){let o=k(e,t,n);return Rc(o,r)}var fm=m(()=>{v();dm();yo();N()});function la(e,t,n={}){return j("Pick",[e,t],n)}function ck(e,t,n={}){let r=u.IsArray(t)?fo(t):t;return Oc(e,r,n)}var gm=m(()=>{R();se();As();xm()});function f0(e,t){return u.Keys(e).reduce((r,o)=>t.includes(o)?l.Assign(r,{[o]:e[o]}):r,{})}function lk(e,t){let n=pm(e),r=ho(t),o=f0(n,r);return K(o)}var dk=m(()=>{v();R();ce();Ya();Pc()});function Oc(e,t,n){return z([e,t])?l.Update(lk(e,t),{},n):la(e,t,n)}function fk(e,t,n,r,o){let s=k(e,t,n),a=k(e,t,r);return Oc(s,a,o)}var xm=m(()=>{v();gm();N();dk()});function da(e,t={}){return j("ReadonlyObject",[e],t)}function Mc(e,t={}){return Cc(e,t)}var gk,hm=m(()=>{se();ym();gk=Mc});function xk(e){return Br(Ft(e))}var hk=m(()=>{ct();Xo()});function yk(e,t){let n=An(e,t),r=Mn(n);return bn(l.Assign(e,{[t]:r}),t)}var bk=m(()=>{v();It();bo();Mr()});function Ik(e,t,n){let r=sn(e,t,n);return Mn(r)}var $k=m(()=>{bo();H()});function wk(e){let t=we(e);return Mn(t)}var kk=m(()=>{bo();H()});function Tk(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:$r(e[o])}),{});return K(t)}var Ek=m(()=>{R();ce();Zo()});function vk(e){return Br(Ce(e))}var Sk=m(()=>{Ne();Xo()});function Pk(e){let t=e.map(n=>Mn(n));return V(t)}var Ak=m(()=>{J();bo()});function Mn(e){return $e(e)?xk(e.items):et(e)?yk(e.$defs,e.$ref):ve(e)?Ik(e.if,e.then,e.else):Q(e)?wk(e.allOf):me(e)?Tk(e.properties):ge(e)?vk(e.items):L(e)?Pk(e.anyOf):e}var bo=m(()=>{ct();It();St();je();ce();Ne();J();hk();bk();$k();kk();Ek();Sk();Ak()});function Cc(e,t){return z([e])?l.Update(Mn(e),{},t):da(e)}function Rk(e,t,n,r){let o=k(e,t,n);return Cc(o,r)}var ym=m(()=>{v();hm();bo();N()});function Ok(e,t,n,r){return t.visited.includes(r)?n:r in e?k(e,be(t.callstack,[...t.visited,r]),e[r]):n}var Lc=m(()=>{N();N()});function Mk(e,t){let n=An(e,t),r=Cn(n);return bn(l.Assign(e,{[t]:r}),t)}var Ck=m(()=>{v();It();Io();Mr()});function Lk(e,t,n){let r=sn(e,t,n);return Cn(r)}var Fk=m(()=>{Io();H()});function jk(e){let t=we(e);return Cn(t)}var Dk=m(()=>{Io();H()});function Nk(e){let t=e.map(n=>Cn(n));return V(t)}var qk=m(()=>{J();Io()});function _k(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:Ni(e[o])}),{});return K(t)}var Uk=m(()=>{R();ce();qi()});function Cn(e){return et(e)?Mk(e.$defs,e.$ref):ve(e)?Lk(e.if,e.then,e.else):Q(e)?jk(e.allOf):L(e)?Nk(e.anyOf):me(e)?_k(e.properties):K({})}var Io=m(()=>{It();St();je();ce();J();Ck();Fk();Dk();qk();Uk()});function fa(e,t={}){return j("Required",[e],t)}function Kk(e,t={}){return Fc(e,t)}var bm=m(()=>{se();Im()});function Fc(e,t){return z([e])?l.Update(Cn(e),{},t):fa(e,t)}function Gk(e,t,n,r){let o=k(e,t,n);return Fc(o,r)}var Im=m(()=>{v();Io();bm();N()});function ga(e,t={}){return j("ReturnType",[e],t)}function Wk(e,t={}){return jc(e,t)}var $m=m(()=>{se();wm()});function g0(e){return Ue(e)?e.returnType:le()}function jc(e,t){return z([e])?l.Update(g0(e),{},t):ga(e,t)}function zk(e,t,n,r={}){let o=k(e,t,n);return jc(o,r)}var wm=m(()=>{v();Gt();Be();$m();N()});function xa(e,t){return j("With",[e,t],{})}function Bk(e,t){return Dc(e,t)}var km=m(()=>{se();Tm()});function Dc(e,t){return z([e])?l.Update(e,{},t):xa(e,t)}function Hk(e,t,n,r){let o=k(e,t,n);return Dc(o,r)}var Tm=m(()=>{v();N();km()});function x0(e){return rr(e)?ge(e.items)?Nc(e.items.items):Re(e.items)?[e]:Ke(e.items)?[e]:[le()]:[e]}function Nc(e){return e.reduce((n,r)=>[...n,...x0(r)],[])}var Vk=m(()=>{zt();Be();eo();Wt();Ne()});var Jk=m(()=>{Vk()});function be(e,t){return{callstack:e,visited:t}}function z(e){return u.ShiftLeft(e,(t,n)=>Ke(t)?!1:z(n),()=>!0)}function $s(e,t,n){return u.Keys(n).reduce((r,o)=>({...r,[o]:k(e,t,n[o])}),{})}function ar(e,t,n){let r=jt(e,t,n);return Nc(r)}function jt(e,t,n){return n.map(r=>k(e,t,r))}function h0(e,t){let n=ot(e)?Go(t,{}):t,r=wr(e)?Ko(n,{}):n;return Ir(e)?Ls(r,{}):r}function y0(e,t,n,r,o){return u.IsEqual(n,"AddImmutable")?Yk(e,t,r[0],o):u.IsEqual(n,"RemoveImmutable")?s$(e,t,r[0],o):u.IsEqual(n,"AddReadonly")?nf(e,t,r[0],o):u.IsEqual(n,"RemoveReadonly")?Dg(e,t,r[0],o):u.IsEqual(n,"AddOptional")?rf(e,t,r[0],o):u.IsEqual(n,"RemoveOptional")?_g(e,t,r[0],o):u.IsEqual(n,"Capitalize")?y$(e,t,r[0],o):u.IsEqual(n,"Conditional")?k$(e,t,r[0],r[1],r[2],r[3],o):u.IsEqual(n,"ConstructorParameters")?E$(e,t,r[0],o):u.IsEqual(n,"Evaluate")?zI(e,t,r[0],o):u.IsEqual(n,"Exclude")?S$(e,t,r[0],r[1],o):u.IsEqual(n,"Extract")?M$(e,t,r[0],r[1],o):u.IsEqual(n,"Index")?ww(e,t,r[0],r[1],o):u.IsEqual(n,"InstanceType")?Tw(e,t,r[0],o):u.IsEqual(n,"Interface")?MI(e,t,r[0],r[1],o):u.IsEqual(n,"KeyOf")?Nw(e,t,r[0],o):u.IsEqual(n,"Lowercase")?b$(e,t,r[0],o):u.IsEqual(n,"Mapped")?Ww(e,t,r[0],r[1],r[2],r[3],o):u.IsEqual(n,"Module")?om(e,t,r[0],o):u.IsEqual(n,"NonNullable")?Bw(e,t,r[0],o):u.IsEqual(n,"Pick")?fk(e,t,r[0],r[1],o):u.IsEqual(n,"Parameters")?Zw(e,t,r[0],o):u.IsEqual(n,"Partial")?pk(e,t,r[0],o):u.IsEqual(n,"Omit")?Yw(e,t,r[0],r[1],o):u.IsEqual(n,"ReadonlyObject")?Rk(e,t,r[0],o):u.IsEqual(n,"Record")?cx(e,t,r[0],r[1],o):u.IsEqual(n,"Required")?Gk(e,t,r[0],o):u.IsEqual(n,"ReturnType")?zk(e,t,r[0],o):u.IsEqual(n,"TemplateLiteral")?vb(e,t,r[0],o):u.IsEqual(n,"Uncapitalize")?I$(e,t,r[0],o):u.IsEqual(n,"Uppercase")?$$(e,t,r[0],o):u.IsEqual(n,"With")?Hk(e,t,r[0],r[1]):j(n,r,o)}function b0(e,t,n){let r=Ke(n)?Ok(e,t,n,n.$ref):$e(n)?Ft(k(e,t,n.items),bi(n)):lo(n)?Da(e,t,n.target,n.arguments):_e(n)?xn(jt(e,t,n.parameters),k(e,t,n.instanceType),of(n)):Ue(n)?hn(jt(e,t,n.parameters),k(e,t,n.returnType),sf(n)):ve(n)?br(k(e,t,n.if),k(e,t,n.then),k(e,t,n.else),df(n)):Q(n)?$t(jt(e,t,n.allOf),yf(n)):me(n)?K($s(e,t,n.properties),pf(n)):rt(n)?lx(Yt(n),k(e,t,xt(n))):rr(n)?Sr(k(e,t,n.items)):ge(n)?Ce(ar(e,t,n.items),jg(n)):L(n)?V(jt(e,t,n.anyOf),kg(n)):n;return h0(n,r)}function k(e,t,n){return Vn(n)?y0(e,t,n.action,n.parameters,n.options):b0(e,t,n)}function qc(e,t){return k(e,be([],[]),t)}var N=m(()=>{R();Em();hi();yi();ct();Kt();se();Gt();oo();St();je();ce();Ve();Ne();J();Wt();eo();Em();pc();hi();mp();yi();cp();Yn();Yo();Qo();uc();Rn();hc();za();ja();Ps();Va();Ja();Za();Ca();em();Rn();nm();sm();am();um();lm();fm();xm();ym();Gi();Lc();Im();wm();Pa();Rn();Rn();Tm();Jk()});function I0(e){return l.Update(e,{"~immutable":!0},{})}function Ls(e,t){return l.Update(I0(e),{},t)}function Yk(e,t,n,r){let o=k(e,t,n);return Ls(o,r)}var Em=m(()=>{v();N()});function fy(e,t={}){return j("AddImmutable",[e],t)}function Br(e,t={}){return Ls(e,t)}var Xo=m(()=>{se();Em()});var Xk=m(()=>{se();pc()});function gy(e,t={}){return j("Evaluate",[e],t)}function Zk(e,t={}){return sc(e,t)}var _c=m(()=>{se();ja()});function xy(e,t={}){return j("Module",[e],t)}function Qk(e,t={}){return om({},be([],[]),e,t)}var Uc=m(()=>{se();N();sm()});var so=m(()=>{Xo();Zo();zo();Xk();up();qi();qa();Ga();Wa();_c();Ba();Ha();Ic();Xa();ws();Qa();_a();tm();Uc();im();mm();cm();dm();gm();hm();bm();$m();Ua();Ka();km()});var eT=m(()=>{za()});var tT=m(()=>{Ti()});var nT=m(()=>{Ps()});var rT=m(()=>{Va()});var oT=m(()=>{});var sT=m(()=>{As();Os();oT()});var iT=m(()=>{Ja()});var aT=m(()=>{Za()});var mT=m(()=>{Ca()});var uT=m(()=>{Rn()});var pT=m(()=>{em()});var cT=m(()=>{nm()});var lT=m(()=>{sm()});var dT=m(()=>{am()});var fT=m(()=>{um()});var gT=m(()=>{lm()});var xT=m(()=>{rs();Up()});var hT=m(()=>{fm()});var yT=m(()=>{xm()});var bT=m(()=>{R();as()});var IT=m(()=>{bT()});var $T=m(()=>{ym()});var wT=m(()=>{Gi()});var kT=m(()=>{Lc()});var TT=m(()=>{Im()});var ET=m(()=>{wm()});var vT=m(()=>{});var ST=m(()=>{R();rs()});var PT=m(()=>{ji();Di();Kp();vT();Li();ST()});var AT=m(()=>{Tm()});var RT=m(()=>{N();hc();eT();rc();tT();bs();nT();rT();sT();iT();aT();mT();uT();pT();cT();lT();dT();Rs();fT();gT();xT();hT();yT();IT();$T();wT();kT();TT();ET();PT();AT()});function OT(...e){let[t,n,r]=In.Match(e,{2:(a,p)=>u.IsString(a)?[{},a,p]:[a,p,{}],3:(a,p,c)=>[a,p,c],1:a=>[{},a,{}]}),o=$b(n),s=u.IsArray(o)&&u.IsEqual(o.length,2)?k(t,be([],[]),o[0]):le();return l.Update(s,{},r)}var MT=m(()=>{zr();v();R();Xi();N();N();Mi()});var Kc=m(()=>{MT()});var ie={};Lt(ie,{Any:()=>Wr,Array:()=>Ft,BigInt:()=>es,Boolean:()=>Si,Call:()=>r$,Capitalize:()=>f$,Codec:()=>vi,Conditional:()=>w$,Constructor:()=>xn,ConstructorParameters:()=>T$,Cyclic:()=>bn,Decode:()=>dg,DecodeBuilder:()=>Jo,Dependent:()=>br,Encode:()=>fg,EncodeBuilder:()=>Vo,Enum:()=>hf,Evaluate:()=>Zk,Exclude:()=>v$,Extends:()=>nt,ExtendsResult:()=>G,Extract:()=>P$,Function:()=>hn,Generic:()=>Jn,Identifier:()=>ts,Immutable:()=>gg,Index:()=>C$,Infer:()=>Bo,InstanceType:()=>kw,Instantiate:()=>qc,Integer:()=>Tr,Interface:()=>CI,Intersect:()=>$t,IsAny:()=>Te,IsArray:()=>$e,IsBigInt:()=>kn,IsBoolean:()=>Bt,IsCall:()=>lo,IsCodec:()=>Ei,IsConstructor:()=>_e,IsCyclic:()=>et,IsDependent:()=>ve,IsEnum:()=>tt,IsEnumValue:()=>xf,IsFunction:()=>Ue,IsGeneric:()=>Gr,IsIdentifier:()=>bg,IsImmutable:()=>Ir,IsInfer:()=>Re,IsInteger:()=>lt,IsIntersect:()=>Q,IsKind:()=>C,IsLiteral:()=>ue,IsNever:()=>nn,IsNull:()=>Vr,IsNumber:()=>Me,IsObject:()=>me,IsOptional:()=>ot,IsParameter:()=>wg,IsReadonly:()=>wr,IsRecord:()=>rt,IsRef:()=>Ke,IsRefine:()=>tp,IsRest:()=>rr,IsSchema:()=>Fe,IsString:()=>ft,IsSymbol:()=>Zn,IsTemplateLiteral:()=>Se,IsThis:()=>Vi,IsTuple:()=>ge,IsUndefined:()=>no,IsUnion:()=>L,IsUnknown:()=>Ae,IsUnsafe:()=>wi,IsVoid:()=>vn,KeyOf:()=>Ew,Literal:()=>ee,Lowercase:()=>g$,Mapped:()=>qw,Module:()=>Qk,Never:()=>le,NonNullable:()=>zw,Null:()=>Hr,Number:()=>Pt,Object:()=>K,Omit:()=>Hw,Optional:()=>mf,Parameter:()=>vr,Parameters:()=>Xw,Partial:()=>Qw,Pick:()=>ck,Readonly:()=>xg,ReadonlyObject:()=>Mc,ReadonlyType:()=>gk,Record:()=>zi,RecordKey:()=>Qr,RecordPattern:()=>Yt,RecordValue:()=>xt,Ref:()=>Dn,Refine:()=>hg,Required:()=>Kk,Rest:()=>Sr,ReturnType:()=>Wk,Script:()=>OT,String:()=>Ht,Symbol:()=>Yr,TemplateLiteral:()=>Pb,This:()=>Hi,Tuple:()=>Ce,Uncapitalize:()=>x$,Undefined:()=>to,Union:()=>V,Unknown:()=>He,Unsafe:()=>cf,Uppercase:()=>h$,Void:()=>Yi,With:()=>Bk});var Gc=m(()=>{N();En();Kc();qa();Ga();Wa();_c();Ba();Ha();so();Xa();ws();Qa();_a();tm();Uc();im();mm();cm();dm();gm();hm();bm();$m();Ua();Ka();km();ep();Yo();Yn();Qo();np();bt();ct();kr();Xn();oo();Kt();It();rn();Gt();Wo();rp();St();zt();Tn();je();Oe();Be();Jr();dt();ce();sp();Ve();Wt();eo();B();Vt();Er();wt();Ji();Ne();ro();J();Qe();ki();Pr()});var $o=m(()=>{so();RT();En();Kc();Xi();Gc();Gc()});import{StringEnum as $0}from"@earendil-works/pi-ai";import{defineTool as w0}from"@earendil-works/pi-coding-agent";function CT(e){if(e.length===0)return"Todo list is empty.";let t=e.filter(o=>o.status==="completed").length,n=e.map(o=>`${k0[o.status]} ${o.content}`),r=e.filter(o=>o.status==="pending"||o.status==="in_progress").length;return[`${t}/${e.length} done, ${r} open`,...n].join(`
18
+ `)}function E0(e,t,n,r){let o=e.map(s=>({...s}));switch(t){case"init":return!n||n.length===0?{todos:o,error:"init needs a non-empty items array"}:{todos:n.map(s=>({content:s,status:"pending"}))};case"view":return{todos:o};case"start":case"done":case"drop":{if(!r)return{todos:o,error:`${t} needs task`};let s=o.find(a=>a.content===r);if(!s)return{todos:o,error:`no task matches ${JSON.stringify(r)}`};if(t==="start"){for(let a of o)a.status==="in_progress"&&(a.status="pending");s.status="in_progress"}else s.status=t==="done"?"completed":"dropped";return{todos:o}}default:return{todos:o,error:`unknown op ${JSON.stringify(t)}`}}}function v0(e){let t=[];for(let n of e.sessionManager.getBranch()){if(n.type!=="message")continue;let r=n.message;if(r.role!=="toolResult"||r.toolName!=="todo")continue;let o=r.details;o?.todos&&(t=o.todos)}return t}var k0,T0,vm,Wc=m(()=>{$o();k0={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"},T0=ie.Object({op:$0(["init","start","done","drop","view"],{description:"init replaces the list; start/done/drop move one task; view reads it"}),items:ie.Optional(ie.Array(ie.String(),{description:"Task labels for init. 5-10 words each, specific enough to execute without re-planning"})),task:ie.Optional(ie.String({description:"Exact label of the task to start, complete or drop"}))});vm=w0({name:"todo",label:"todo",description:"Track the plan for this task. Use `init` once with the whole plan (investigation through verification), then `start`/`done` as you go. Keep the list current so progress stays visible; do not re-init unless the plan materially changes.",promptSnippet:"todo: record and advance the plan for the current task",parameters:T0,async execute(e,t,n,r,o){let s=v0(o),{todos:a,error:p}=E0(s,t.op,t.items,t.task),c={op:t.op,todos:a,...p?{error:p}:{}};return{content:[{type:"text",text:p?`Error: ${p}
19
+ ${CT(a)}`:CT(a)}],details:c,...p?{isError:!0}:{}}}})});import{StringEnum as S0}from"@earendil-works/pi-ai";import{defineTool as P0}from"@earendil-works/pi-coding-agent";function jT(){return Un.size===0?"":["<shared-notes>","Working notes recorded with the `context` tool. They survive compaction and are visible to every agent on this task.",...[...Un].map(([t,n])=>`- ${t}: ${n}`),"</shared-notes>"].join(`
20
+ `)}function A0(e,t,n){if(e==="list")return Un.size===0?{text:"No notes."}:{text:[...Un].map(([r,o])=>`${r} = ${o}`).join(`
21
+ `)};if(!t)return{text:"Error: key is required",error:"key required"};if(t.length>FT)return{text:`Error: key longer than ${FT} characters`,error:"key too long"};if(e==="forget")return{text:Un.delete(t)?`Removed ${t}`:`No note named ${t}`};if(e==="set"){if(!n)return{text:"Error: value is required for set",error:"value required"};let r=n.length>LT?`${n.slice(0,LT)}\u2026`:n;return Un.set(t,r),{text:`Recorded ${t} (${Un.size} note${Un.size===1?"":"s"} held)`}}return{text:`Error: unknown op ${JSON.stringify(e)}`,error:"unknown op"}}var Un,LT,FT,Sm,Pm=m(()=>{$o();Un=new Map,LT=2e3,FT=80;Sm=P0({name:"context",label:"context",description:"Record a durable working note (a decision, a file's role, a fact you would otherwise re-derive). Notes survive context compaction and are visible to every agent on this task, including subagents. Use `set` to write, `list` to read, `forget` to remove.",promptSnippet:"context: durable notes shared with every agent on this task",parameters:ie.Object({op:S0(["set","list","forget"],{description:"set writes a note, list reads all, forget removes one"}),key:ie.Optional(ie.String({description:"Short lookup key, e.g. 'auth-entrypoint'"})),value:ie.Optional(ie.String({description:"The fact to keep (for set)"}))}),async execute(e,t){let{text:n,error:r}=A0(t.op,t.key,t.value);return{content:[{type:"text",text:n}],details:{op:t.op,notes:Object.fromEntries(Un)},...r?{isError:!0}:{}}}})});import{StringEnum as R0}from"@earendil-works/pi-ai";import{defineTool as O0}from"@earendil-works/pi-coding-agent";function Rm(e){if(!e||e.status==="cleared")return"No goal set.";let t=e.budget??Am,n=[`${qT[e.status]} ${e.status}`,`${e.used}/${t} continuations`];return e.note&&n.push(e.note),`${n.join(" \xB7 ")}
22
+ ${e.text}`}function _T(e){if(!e||e.status==="cleared"||e.status==="done")return"";let t=e.budget??Am,n=e.text.length>48?`${e.text.slice(0,47)}\u2026`:e.text;return`goal ${qT[e.status]} ${e.used}/${t} \xB7 ${n}`}function UT(e){let t=["<goal>",e.text,`Status: ${e.status}.`];return e.status==="active"&&t.push("Work toward this goal until it is genuinely met. When it is, call the `goal` tool with",'op="complete" and a note naming the evidence \u2014 a command you ran or a file you checked.',"If you are blocked and cannot proceed, say so plainly instead of repeating an attempt."),t.push("</goal>"),t.join(`
23
+ `)}function KT(e){return["[goal] The goal is still open and you stopped without closing it:",` ${e.text}`,"","Continue from where you left off. Do not repeat work you already did. If the goal is met,",'call the `goal` tool with op="complete" and a note naming the evidence. Do not call it',"complete to escape a hard problem: if you cannot make progress, state what is blocking you.",`Continuations used: ${e.used}/${e.budget??Am}.`].join(`
24
+ `)}function Om(){return GT}function an(e){GT=e}function Mm(e){if(!e)return{action:"stop",reason:"no goal",close:!1};if(e.status==="done")return{action:"stop",reason:"goal complete",close:!1};if(e.status==="cleared")return{action:"stop",reason:"goal cleared",close:!1};if(e.status==="paused")return{action:"stop",reason:"goal paused",close:!1};let t=e.budget??Am;return e.used>=t?{action:"stop",reason:`budget exhausted (${t} continuations)`,close:!0}:{action:"continue"}}function zc(e,t,n,r,o){switch(t){case"view":return{goal:e};case"set":return n?.trim()?n.length>DT?{goal:e,error:`text longer than ${DT} characters`}:r!==void 0&&(!Number.isInteger(r)||r<1)?{goal:e,error:"budget must be a positive integer"}:{goal:{text:n.trim(),status:"active",used:0,...r===void 0?{}:{budget:r}}}:{goal:e,error:"set needs text"};case"pause":case"resume":case"complete":case"clear":return!e||e.status==="cleared"?{goal:e,error:"no goal to change"}:t==="resume"?e.status==="done"?{goal:e,error:"goal is complete; set a new one instead"}:{goal:{...e,status:"active",note:void 0}}:t==="pause"?{goal:{...e,status:"paused"}}:t==="clear"?{goal:{...e,status:"cleared"}}:o?.trim()?{goal:{...e,status:"done",note:o.trim()}}:{goal:e,error:"complete needs a note naming the evidence (a command you ran or a file you checked)"};default:return{goal:e,error:`unknown op ${JSON.stringify(t)}`}}}function wo(e){let t;for(let n of e.sessionManager.getBranch()){if(n.type==="custom"&&n.customType===ur){t=n.data;continue}if(n.type==="custom_message"&&n.customType===ur){t=n.details??t;continue}if(n.type!=="message")continue;let r=n.message;if(r.role!=="toolResult"||r.toolName!=="goal")continue;let o=r.details;o?.goal&&(t=o.goal)}return t}var ur,NT,DT,Am,qT,GT,M0,WT,Cm=m(()=>{$o();ur="howtofix.goal",NT="howtofix.goal.continue",DT=400,Am=25,qT={active:"\u25CF",paused:"\u2016",done:"\u2713",cleared:"\u25CB"};M0=ie.Object({op:R0(["set","view","pause","resume","complete","clear"],{description:"set starts a goal; complete closes it with evidence; pause/resume/clear manage it; view reads it"}),text:ie.Optional(ie.String({description:"The goal, in one sentence, as the user would state it (for set)"})),budget:ie.Optional(ie.Number({description:"Optional cap on automatic continuations before the run stops"})),note:ie.Optional(ie.String({description:"Evidence that the goal is met (required for complete)"}))}),WT=O0({name:"goal",label:"goal",description:"Track the goal for this session. The goal is already shown in your context every request, so you rarely need `view`. Call `complete` only when the goal is genuinely met, and pass a note naming the evidence. When a goal is active the harness continues the run if you stop without closing it, so closing it is how you stop.",promptSnippet:"goal: the session's objective, and how to close it",parameters:M0,async execute(e,t,n,r,o){let s=wo(o),{goal:a,error:p}=zc(s,t.op,t.text,t.budget,t.note);an(a);let c=Rm(a);return{content:[{type:"text",text:p?`Error: ${p}
25
+ ${c}`:c}],details:{op:t.op,goal:a},...p?{isError:!0}:{}}}})});import{existsSync as Vc,mkdirSync as zT,readFileSync as BT}from"node:fs";import{dirname as HT,join as VT}from"node:path";import{defineTool as JT}from"@earendil-works/pi-coding-agent";function Lm(){return{state:"inactive",wasActive:!1}}function C0(e){return e?e.state==="pending"?{...e,state:"inactive"}:{...e}:Lm()}function YT(e){return e.state!=="inactive"?e:{...e,state:"pending"}}function L0(e){return e.state!=="pending"?e:{state:"active",wasActive:!0}}function F0(e){return e.state!=="inactive"?e:{state:"active",wasActive:!0}}function j0(e){return e.state!=="active"?e:{...e,state:"inactive"}}function XT(e){return e.state==="inactive"?e:{...e,state:"inactive"}}function Fm(e){return e.state==="active"}function D0(e,t){return e===t}function N0(e,t){return["<plan-mode>","Plan mode is active. Do not make any edits or writes to the system.",t?`A plan file exists at ${e}. Read it and refine it with the \`edit\` tool.`:`No plan is written yet. Write yours to ${e} with the \`write\` tool.`,"That file is the only path you may edit.","Explore first: read, search, and run read-only commands until the approach is clear.","End your turn with either `ask` to clarify a requirement, or `exit_plan_mode` to present","the plan for approval. Do not start implementing before the plan is approved.","</plan-mode>"].join(`
26
+ `)}function q0(e){return`Rejected: file edits are not allowed in plan mode. The only editable file is the plan file (${e}). Present the plan with exit_plan_mode first.`}function jm(){return ut}function ZT(){return mt}function QT(){return Fm(ut)}function eE(){if(!(!mt||!Vc(mt)))try{let e=BT(mt,"utf8");return e.trim()?e:void 0}catch{return}}function tE(){return eE()!==void 0}function nE(){return ut.state==="inactive"?"":ut.state==="pending"?"plan pending":tE()?"plan \u25CF ready":"plan \u25CF planning"}function rE(){return Hc?VT(Hc,"plan_mode.json"):void 0}function _0(){let e=rE();if(e)try{zT(HT(e),{recursive:!0}),Ze(e,JSON.stringify(ut))}catch{}}function U0(){let e=rE();if(!e||!Vc(e))return Lm();try{return C0(JSON.parse(BT(e,"utf8")))}catch{return Lm()}}function K0(e){Hc=e,mt=VT(e,"plan.md"),ut=U0()}function ko(e){return ut=e,_0(),ut}function oE(){return e=>{e.on("tool_call",async t=>{if(!Fm(ut)||t.toolName!=="edit"&&t.toolName!=="write")return;let n=t.input?.path;if(typeof n=="string"&&!(!mt||D0(n,mt)))return{block:!0,reason:q0(mt)}})}}function sE(){return e=>{e.on("session_start",async(t,n)=>{K0(n.sessionManager.getSessionDir())}),e.on("before_agent_start",async()=>{ut.state==="pending"&&ko(L0(ut))}),e.on("context_with_system",async t=>{if(!Fm(ut)||!mt)return;let n=t.messages[0];if(!n||n.role!=="system")return;let r=N0(mt,tE()),o=`${typeof n.content=="string"?n.content:""}
27
+
28
+ ${r}`;return{messages:t.messages.map(a=>a===n?{...n,content:o}:a)}})}}function G0(){if(mt){try{zT(HT(mt),{recursive:!0}),Vc(mt)||Ze(mt,"")}catch{return}return mt}}var mt,ut,Hc,Bc,iE,aE,Jc=m(()=>{$o();zn();ut=Lm();Bc=2e4;iE=JT({name:"enter_plan_mode",label:"enter_plan_mode",description:"Enter plan mode to design an approach before writing code. Use it when a task has genuine ambiguity \u2014 several reasonable designs, or a restructuring where the wrong approach wastes significant effort. Do not use it for a clear fix, a rename, or a task that follows existing conventions. The user must approve entering.",promptSnippet:"enter_plan_mode: design first when the approach is genuinely ambiguous",parameters:ie.Object({}),async execute(e,t,n,r,o){if(ut.state!=="inactive")return{content:[{type:"text",text:`Plan mode is already ${ut.state}.`}],details:{}};if(!o.hasUI)return{content:[{type:"text",text:"Plan mode needs an interactive session: there is no one to approve the plan. Proceed normally."}],details:{},isError:!0};if(!await o.ui.confirm("Enter plan mode?","The agent will explore and design an approach before editing anything."))return{content:[{type:"text",text:"The user declined plan mode. Proceed normally."}],details:{}};ko(F0(ut));let a=G0();return{content:[{type:"text",text:["Plan mode is active. Edits are blocked except for the plan file.",a?`Write your plan to ${a}.`:"Write your plan to the session plan file."].join(`
29
+ `)}],details:{planFile:a}}}}),aE=JT({name:"exit_plan_mode",label:"exit_plan_mode",description:"Present your plan for approval when you have finished planning. The plan is read from the plan file on disk, so write the file first. If the user asks for changes, stay in plan mode and revise it.",promptSnippet:"exit_plan_mode: present the written plan for approval",parameters:ie.Object({}),executionMode:"sequential",async execute(e,t,n,r,o){if(!Fm(ut))return{content:[{type:"text",text:"Plan mode is not active."}],details:{},isError:!0};let s=eE();if(!s)return{content:[{type:"text",text:`No plan has been written yet. Write it to ${mt??"the plan file"} before exiting plan mode.`}],details:{},isError:!0};if(!o.hasUI)return{content:[{type:"text",text:"Plan approval needs an interactive session."}],details:{},isError:!0};let a=s.length>Bc?`${s.slice(0,Bc)}
30
+ \u2026 (${s.length-Bc} more characters)`:s;return await o.ui.confirm("Approve this plan?",a)?(ko(j0(ut)),{content:[{type:"text",text:"Plan approved. You may now implement it."}],details:{approved:!0,planFile:mt}}):{content:[{type:"text",text:"The user did not approve the plan. Stay in plan mode, revise the plan file with the feedback, and present it again."}],details:{approved:!1}}}})});function Yc(){return{consecutiveFailures:0,tripped:!1}}function W0(e,t){return t==="manual"?!1:e.consecutiveFailures>=3}function z0(e,t){if(t)return e;let n=e.consecutiveFailures+1;return{consecutiveFailures:n,tripped:e.tripped||n>=3}}function B0(){return Yc()}function H0(e){return[`Auto-compaction failed ${e.consecutiveFailures} times in a row, so it is switched off for this session.`,"The context is over the limit and compaction cannot recover it. Start a new session, or switch to a model with a larger context window.","Manual /compact is still allowed."].join(" ")}function mE(){return e=>{e.on("session_start",async()=>{pr=Yc()}),e.on("session_compact",async()=>{pr=B0()}),e.on("session_compact_failed",async(t,n)=>{let r=pr;pr=z0(pr,t.aborted),!r.tripped&&pr.tripped&&n?.ui&&n.ui.notify(H0(pr),"warning")}),e.on("session_before_compact",async t=>{if(W0(pr,t.reason))return{cancel:!0}})}}var pr,uE=m(()=>{pr=Yc()});function Dm(e){return typeof e=="string"?e:Array.isArray(e)?e.map(t=>{let n=t;return n.type==="text"&&typeof n.text=="string"?n.text:""}).join(`
31
+ `):e==null?"":String(e)}function Nm(e,t){if(Array.isArray(e)){let n=e.map(o=>({...o})),r=n.filter(o=>o.type==="text");if(r.length>0){r[0].text=t;for(let o of r.slice(1))o.text="";return n}return[...n,{type:"text",text:t}]}return t}var Xc=m(()=>{});function V0(e){an(wo(e))}function pE(e){return`budget exhausted (${e.budget??"default"} continuations)`}function cE(){return e=>{e.on("session_start",async(t,n)=>{V0(n)}),e.on("context_with_system",async(t,n)=>{let r=wo(n);if(an(r),!r||r.status!=="active")return;let o=t.messages[0];if(!o||o.role!=="system")return;let s=`${Dm(o.content)}
32
+
33
+ ${UT(r)}`;return{messages:t.messages.map(p=>p===o?{...o,content:Nm(o.content,s)}:p)}}),e.on("agent_before_settle",async(t,n)=>{let r=wo(n);if(an(r),Mm(r).action==="stop"||!r||t.continue||!t.context.canContinue)return;let o={...r,used:r.used+1};if(e.appendEntry(ur,o),an(o),Mm(o).action==="stop"){let s={...o,status:"done",note:pE(o)};e.appendEntry(ur,s),an(s);return}return{entries:[{type:"custom_message",customType:NT,content:KT(o),display:!0}],continue:!0}}),e.on("agent_settled",async(t,n)=>{let r=wo(n),o=Mm(r);if(r&&o.action==="stop"&&o.close){let s={...r,status:"done",note:pE(r)};e.appendEntry(ur,s),an(s)}else an(r)})}}var lE=m(()=>{Xc();Cm()});function qm(){return e=>{e.on("context_with_system",async t=>{let n=jT();if(!n)return;let r=t.messages[0];if(!r||r.role!=="system")return;let o=`${Dm(r.content)}
34
+
35
+ ${n}`;return{messages:t.messages.map(a=>a===r?{...r,content:Nm(r.content,o)}:a)}})}}var Zc=m(()=>{Xc();Pm()});import{mkdirSync as J0,readdirSync as Y0,readFileSync as X0}from"node:fs";import{join as dE}from"node:path";import{createAgentSession as Z0,DefaultResourceLoader as Q0,SessionManager as eL}from"@earendil-works/pi-coding-agent";function _m(e){J0(qr,{recursive:!0}),Ze(dE(qr,`${e.id}.json`),JSON.stringify({...e,session:void 0},null,1))}function el(){let e;try{e=Y0(qr)}catch{return}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(X0(dE(qr,t),"utf8"));if(n.status!=="parked"||Xt.some(r=>r.id===n.id))continue;Xt.push({...n,mail:n.mail??[]})}catch{}}function tl(){return el(),Xt.length===0?"no agents":Xt.map(e=>`${e.id} ${e.agent} ${e.status} requests=${e.requests} ${e.task}`).join(`
36
+ `)}function nl(e){el();let t=Xt.find(n=>n.id===e);return t?`${t.agent}#${t.id} ${t.status}
37
+ ${t.result??t.task}`:`no agent ${e}`}async function Um(e){let t=Lr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}`);let n=e.worktree||e.cwd||process.cwd(),r=new Q0({cwd:n,agentDir:Xe,extensionFactories:[Fo({interactive:!1}),qm()]});await r.reload();let{session:o}=await Z0({cwd:n,agentDir:Xe,sessionManager:eL.inMemory(n),resourceLoader:r,tools:t.tools,customTools:[Sm,vm],thinkingLevel:e.effort});return o}async function gE(e,t){el();let n=Xt.find(o=>o.id===e);if(!n)return`no agent ${e}`;let r=n.session??await Um(n);if(n.session=r,n.status==="running"||r.isStreaming)return n.mail.push(t),_m(n),`queued for ${e}`;if(n.requests>=fE)return`${e} is out of budget (${n.requests} requests)`;n.status="running";try{await r.prompt(t),n.requests+=1,n.result=r.getLastAssistantText()?.trim()||n.result,n.status="parked"}catch(o){n.result=o instanceof Error?o.message:String(o),n.status="error"}return _m(n),`${e} ${n.status}`}async function xE(e){let t=Lr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}. known: ${[...Lr.keys()].join(", ")}`);let n={id:`${Date.now().toString(36)}-${Xt.length+1}`,cwd:e.cwd,agent:t.name,task:e.task.trim(),effort:e.effort||t.effort,status:"queued",requests:0,mail:[],worktree:e.worktree};return Xt.push(n),_m(n),n}async function rL(e,t){let n=Lr.get(e.agent);if(!n)return;let r=e.session??await Um(e);e.session=r;try{let o=e.mail.splice(0).join(`
38
38
  `);for(await r.prompt(`${n.prompt}
39
39
 
40
40
  Task:
41
41
  ${e.task}${o?`
42
42
 
43
43
  Messages:
44
- ${o}`:""}`),e.requests+=1;e.mail.length>0&&e.requests<dE;)await r.followUp(e.mail.splice(0).join(`
45
- `)),e.requests+=1;if(t?.aborted)throw new Error("aborted");e.result=r.getLastAssistantText()?.trim()||"agent finished without text",e.status="parked"}catch(o){e.result=o instanceof Error?o.message:String(o),e.status="error"}finally{qm(e)}}async function xE(e){let t=()=>Xt.find(r=>r.status==="queued"),n=async()=>{for(;;){if(e?.aborted)throw new Error("aborted");let r=t();if(!r)return;r.status="running",await nL(r,e)}};if(await Promise.all(Array.from({length:tL},n)),e?.aborted)throw new Error("aborted")}var Xc,eL,Cr,Xt,tL,dE,Cs=m(()=>{Gn();Sm();Yc();Kc();Wn();Xc=["You are one agent on a shared task; siblings may be editing the same working tree right now.","Never run project-wide validation (full builds, whole test suites, formatters, linters) unless your assignment explicitly tells you to.","Siblings' unfinished edits will make those runs fail for reasons that are not yours. Prove your own change with a scoped test, a targeted repro, or a smoke run instead."],eL=`You are a software architect planning an implementation. Your job is to explore the codebase and return a plan, not to write code.
44
+ ${o}`:""}`),e.requests+=1;e.mail.length>0&&e.requests<fE;)await r.followUp(e.mail.splice(0).join(`
45
+ `)),e.requests+=1;if(t?.aborted)throw new Error("aborted");e.result=r.getLastAssistantText()?.trim()||"agent finished without text",e.status="parked"}catch(o){e.result=o instanceof Error?o.message:String(o),e.status="error"}finally{_m(e)}}async function hE(e){let t=()=>Xt.find(r=>r.status==="queued"),n=async()=>{for(;;){if(e?.aborted)throw new Error("aborted");let r=t();if(!r)return;r.status="running",await rL(r,e)}};if(await Promise.all(Array.from({length:nL},n)),e?.aborted)throw new Error("aborted")}var Qc,tL,Lr,Xt,nL,fE,Fs=m(()=>{Wn();Pm();Zc();jo();Wc();zn();Qc=["You are one agent on a shared task; siblings may be editing the same working tree right now.","Never run project-wide validation (full builds, whole test suites, formatters, linters) unless your assignment explicitly tells you to.","Siblings' unfinished edits will make those runs fail for reasons that are not yours. Prove your own change with a scoped test, a targeted repro, or a smoke run instead."],tL=`You are a software architect planning an implementation. Your job is to explore the codebase and return a plan, not to write code.
46
46
 
47
47
  ## Read-only, by construction
48
48
  You have no edit tool, no write tool, and no shell. Do not attempt to modify, create, move, or delete anything \u2014 the call would fail. Your output is text.
@@ -60,67 +60,68 @@ End your reply with exactly this section, listing the 3-5 files most critical to
60
60
  - path/to/file.ts
61
61
  - path/to/file.ts
62
62
 
63
- Keep the plan concrete enough to execute without re-deriving it: name real paths and real function names you saw while exploring. If you could not confirm something, say which part you are unsure of instead of guessing.`,Cr=new Map([["scout",{name:"scout",description:"read-only lookup",tools:["read","grep","find","ls","context"],prompt:["Inspect only what the task needs. Do not edit.",...Xc].join(`
64
- `),effort:"low"}],["architect",{name:"architect",description:"designs an implementation plan",tools:["read","grep","find","ls","context"],prompt:eL,effort:"high"}],["task",{name:"task",description:"implements the assignment",tools:["read","bash","edit","write","grep","find","ls","context","todo"],prompt:["Do the assignment, then report files changed.",...Xc].join(`
65
- `),effort:"medium"}],["reviewer",{name:"reviewer",description:"finds concrete issues",tools:["read","grep","find","ls","context"],prompt:["Return issues with file evidence. Do not edit.",...Xc].join(`
66
- `),effort:"medium"}]]),Xt=[],tL=3,dE=8});import{execFile as rL}from"node:child_process";import{promisify as oL}from"node:util";import{tmpdir as sL}from"node:os";import{join as iL}from"node:path";async function Zt(e,t){try{let{stdout:n}=await aL("git",t,{cwd:e,encoding:"utf8",maxBuffer:8388608});return{ok:!0,output:n.trim()}}catch(n){let r=n&&typeof n=="object"&&"stderr"in n&&typeof n.stderr=="string"?n.stderr.trim():"",o=n instanceof Error?n.message:String(n);return{ok:!1,output:r||o}}}async function Um(e){return(await Zt(e,["rev-parse","--is-inside-work-tree"])).output==="true"}async function hE(e){return(await Zt(e,["status","--porcelain"])).output.length>0}async function yE(e,t){let n=await Zt(e,["add","-A"]);if(!n.ok)return n;let r=await Zt(e,["commit","-m",t]);return r.ok?{ok:!0,output:(await Zt(e,["log","-1","--oneline"])).output||r.output}:r}async function bE(e){let t=await Zt(e,["reset","--soft","HEAD~1"]);return t.ok?{ok:!0,output:(await Zt(e,["log","-1","--oneline"])).output||"reset to the previous commit"}:t}async function IE(e){let t=(await Zt(e,["diff"])).output,n=(await Zt(e,["diff","--cached"])).output;return[t,n].filter(Boolean).join(`
67
- `)}function $E(e,t=60){let n=e.split(`
63
+ Keep the plan concrete enough to execute without re-deriving it: name real paths and real function names you saw while exploring. If you could not confirm something, say which part you are unsure of instead of guessing.`,Lr=new Map([["scout",{name:"scout",description:"read-only lookup",tools:["read","grep","find","ls","context"],prompt:["Inspect only what the task needs. Do not edit.",...Qc].join(`
64
+ `),effort:"low"}],["architect",{name:"architect",description:"designs an implementation plan",tools:["read","grep","find","ls","context"],prompt:tL,effort:"high"}],["task",{name:"task",description:"implements the assignment",tools:["read","bash","edit","write","grep","find","ls","context","todo"],prompt:["Do the assignment, then report files changed.",...Qc].join(`
65
+ `),effort:"medium"}],["reviewer",{name:"reviewer",description:"finds concrete issues",tools:["read","grep","find","ls","context"],prompt:["Return issues with file evidence. Do not edit.",...Qc].join(`
66
+ `),effort:"medium"}]]),Xt=[],nL=3,fE=8});import{execFile as oL}from"node:child_process";import{promisify as sL}from"node:util";import{tmpdir as iL}from"node:os";import{join as aL}from"node:path";async function Zt(e,t){try{let{stdout:n}=await mL("git",t,{cwd:e,encoding:"utf8",maxBuffer:8388608});return{ok:!0,output:n.trim()}}catch(n){let r=n&&typeof n=="object"&&"stderr"in n&&typeof n.stderr=="string"?n.stderr.trim():"",o=n instanceof Error?n.message:String(n);return{ok:!1,output:r||o}}}async function Km(e){return(await Zt(e,["rev-parse","--is-inside-work-tree"])).output==="true"}async function yE(e){return(await Zt(e,["status","--porcelain"])).output.length>0}async function bE(e,t){let n=await Zt(e,["add","-A"]);if(!n.ok)return n;let r=await Zt(e,["commit","-m",t]);return r.ok?{ok:!0,output:(await Zt(e,["log","-1","--oneline"])).output||r.output}:r}async function IE(e){let t=await Zt(e,["reset","--soft","HEAD~1"]);return t.ok?{ok:!0,output:(await Zt(e,["log","-1","--oneline"])).output||"reset to the previous commit"}:t}async function $E(e){let t=(await Zt(e,["diff"])).output,n=(await Zt(e,["diff","--cached"])).output;return[t,n].filter(Boolean).join(`
67
+ `)}function wE(e,t=60){let n=e.split(`
68
68
  `);if(n.length<=t)return e;let r=n.slice(0,t),o=n.length-t;return[...r,`\u2026 ${o} more line${o===1?"":"s"} not shown \u2014 /copy puts the full diff on the clipboard`].join(`
69
- `)}async function wE(e,t){if(!await Um(e))return null;let n=t.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,40)||"agent",r=iL(sL(),`howtofix-wt-${process.pid}-${Date.now()}-${n}`);return(await Zt(e,["worktree","add","--detach",r,"HEAD"])).ok?{path:r,async remove(){await Zt(e,["worktree","remove","--force",r]),await Zt(e,["worktree","prune"])}}:null}var aL,tl=m(()=>{aL=oL(rL)});function kE(e){return e===null?"null":Array.isArray(e)?"array":Number.isInteger(e)?"integer":typeof e}function mL(e,t){let n=kE(e);return t==="number"?n==="number"||n==="integer":t==="integer"?n==="integer":n===t}function uL(e,t){if(typeof t!="string"||!t.startsWith("#/"))return;let n=e;for(let r of t.slice(2).split("/")){let o=r.replace(/~1/g,"/").replace(/~0/g,"~");if(!Lr(n)&&!Array.isArray(n))return;n=n[o]}return Lr(n)?n:void 0}function pr(e,t,n,r,o){if(!Lr(t))return;if(t.$ref!==void 0){let a=uL(n,t.$ref);a&&pr(e,a,n,r,o);return}if(Array.isArray(t.allOf))for(let a of t.allOf)pr(e,a,n,r,o);for(let a of["anyOf","oneOf"]){let p=t[a];if(!Array.isArray(p)||p.length===0)continue;let c=p.filter(h=>{let $=[];return pr(e,h,n,r,$),$.length===0}).length;a==="anyOf"&&c===0&&o.push({path:r,message:"does not match any allowed shape"}),a==="oneOf"&&c!==1&&o.push({path:r,message:`must match exactly one shape (matched ${c})`})}let s=t.type;if(s!==void 0){let a=Array.isArray(s)?s.map(String):[String(s)];if(!a.some(p=>mL(e,p))){o.push({path:r,message:`expected ${a.join(" or ")}, got ${kE(e)}`});return}}if(Array.isArray(t.enum)&&!t.enum.some(a=>JSON.stringify(a)===JSON.stringify(e))&&o.push({path:r,message:`must be one of ${t.enum.map(a=>JSON.stringify(a)).join(", ")}`}),Lr(e)){let a=Lr(t.properties)?t.properties:{};if(Array.isArray(t.required))for(let p of t.required.map(String))p in e||o.push({path:r?`${r}.${p}`:p,message:"is required"});for(let[p,c]of Object.entries(a))p in e&&pr(e[p],c,n,r?`${r}.${p}`:p,o);if(t.additionalProperties===!1)for(let p of Object.keys(e))p in a||o.push({path:r?`${r}.${p}`:p,message:"is not an allowed property"});else if(Lr(t.additionalProperties))for(let[p,c]of Object.entries(e))p in a||pr(c,t.additionalProperties,n,r?`${r}.${p}`:p,o)}if(Array.isArray(e)&&t.items!==void 0){let a=t.items;Array.isArray(a)?e.forEach((p,c)=>{c<a.length&&pr(p,a[c],n,`${r}[${c}]`,o)}):e.forEach((p,c)=>pr(p,a,n,`${r}[${c}]`,o))}if(typeof e=="string"&&(typeof t.minLength=="number"&&e.length<t.minLength&&o.push({path:r,message:`is shorter than ${t.minLength} characters`}),typeof t.pattern=="string"))try{new RegExp(t.pattern).test(e)||o.push({path:r,message:`does not match ${t.pattern}`})}catch{}typeof e=="number"&&(typeof t.minimum=="number"&&e<t.minimum&&o.push({path:r,message:`is below ${t.minimum}`}),typeof t.maximum=="number"&&e>t.maximum&&o.push({path:r,message:`is above ${t.maximum}`}))}function TE(e,t){if(!Lr(t))return[];let n=[];return pr(e,t,t,"",n),n}function EE(e){return e.map(t=>`- ${t.path||"(root)"}: ${t.message}`).join(`
70
- `)}function vE(e){let t=e.trim(),n=/```(?:json)?\s*([\s\S]*?)```/.exec(t),r=[t,n?.[1]?.trim()].filter(o=>!!o);for(let o of r){try{return JSON.parse(o)}catch{}for(let s=0;s<o.length;s++){let a=o[s];if(a!=="{"&&a!=="[")continue;let p=a==="{"?"}":"]",c=0,h=!1,$=!1;for(let T=s;T<o.length;T++){let M=o[T];if(h){$?$=!1:M==="\\"?$=!0:M==='"'&&(h=!1);continue}if(M==='"')h=!0;else if(M===a)c++;else if(M===p&&(c--,c===0))try{return JSON.parse(o.slice(s,T+1))}catch{break}}}}}var Lr,SE=m(()=>{Lr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)});import*as PE from"node:os";async function lL(e,t=AE,n=RE){let r=Date.now()+n;for(;e.isPaused?.();){if(e.signal?.aborted||Date.now()>=r)return!1;await new Promise(o=>setTimeout(o,t))}return!0}function dL(){let e=PE.availableParallelism?.()??4;return Math.max(1,Math.min(16,e-2))}function fL(e){let t=0,n=[];return async function(){t>=e&&await new Promise(s=>n.push(s)),t++;let o=!1;return()=>{o||(o=!0,t--,n.shift()?.())}}}function OE(e){let t=e.lifetimeCap??pL,n=e.fanoutCap??cL,r=fL(e.concurrency??dL()),o=0,s=0,a="",p=q=>e.onEvent?.(q),c=new Map,h=()=>e.onProgress?.([...c.values()]),$=async(q,Z)=>{let ae=Z??{},xe=typeof ae.label=="string"?ae.label:`agent-${o+1}`,ke=typeof ae.phase=="string"?ae.phase:a,We=typeof ae.agentType=="string"?ae.agentType:"task",Nt=typeof ae.effort=="string"?ae.effort:void 0,he=typeof ae.model=="string"?ae.model:void 0,te=typeof ae.isolation=="string"?ae.isolation:void 0,E=ae.schema;if(e.budgetTotal!=null&&s>=e.budgetTotal)throw new Ge(`budget exhausted: spent ${s} of ${e.budgetTotal} output tokens`);if(o>=t)throw new Ge(`lifetime cap reached: ${t} agent calls in one run`);o++;let ze=o;if(e.isPaused?.()&&!await lL(e,AE,RE))return null;let qt=await r();try{if(e.signal?.aborted)return null;p({kind:"agent_start",label:xe,phase:ke,ordinal:o}),c.set(ze,{label:xe,phase:ke,agentType:We,status:"running",outputTokens:0,...he?{model:he}:{},startedAt:Date.now()}),h();let cn=(Qt,_t,qe)=>{let Mt=c.get(ze);Mt&&(Mt.status=Qt,Mt.outputTokens=_t.outputTokens,Mt.endedAt=Date.now(),_t.toolCalls!==void 0&&(Mt.toolCalls=_t.toolCalls),_t.model!==void 0&&(Mt.model=_t.model),qe&&(Mt.detail=qe)),p({kind:"agent_end",label:xe,ok:Qt==="ok",outputTokens:_t.outputTokens}),h()},Po=E===void 0?1:2;for(let Qt=0;Qt<Po;Qt++){let _t=Qt===0?String(q):void 0,qe=await M(_t??gL(String(q),T),{label:xe,phase:ke,agentType:We,effort:Nt,model:he,isolation:te});if(qe===null)return cn("failed",{text:"",outputTokens:0}),null;if(s+=qe.outputTokens,E===void 0)return cn("ok",qe,nl(qe.text)),qe.text;let Mt=vE(qe.text),Ao=Mt===void 0?[{path:"",message:"reply was not JSON"}]:TE(Mt,E);if(Ao.length===0)return cn("ok",qe,nl(qe.text)),Mt;if(T=EE(Ao),Qt===Po-1)return cn("failed",qe,`schema: ${nl(T)}`),null}return null}finally{qt()}},T="",M=async(q,Z)=>{try{return await e.invoke({prompt:q,...Z})}catch{return null}};return{agent:(q,Z)=>$(q,Z),parallel:async q=>{if(q.length>n)throw new Ge(`fan-out cap exceeded: ${q.length} items (max ${n})`);return await Promise.all(q.map(async ae=>{try{return await ae()}catch{return null}}))},pipeline:async(q,...Z)=>{if(q.length>n)throw new Ge(`fan-out cap exceeded: ${q.length} items (max ${n})`);return await Promise.all(q.map(async(xe,ke)=>{let We=xe;for(let Nt of Z)try{We=await Nt(We,xe,ke)}catch{return null}return We}))},phase:q=>{a=String(q),p({kind:"phase",title:a})},log:q=>p({kind:"log",message:String(q)}),args:e.args,budget:{total:e.budgetTotal??null,spent:()=>s,remaining:()=>e.budgetTotal==null?1/0:Math.max(0,e.budgetTotal-s)}}}function gL(e,t){return`${e}
69
+ `)}async function kE(e,t){if(!await Km(e))return null;let n=t.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,40)||"agent",r=aL(iL(),`howtofix-wt-${process.pid}-${Date.now()}-${n}`);return(await Zt(e,["worktree","add","--detach",r,"HEAD"])).ok?{path:r,async remove(){await Zt(e,["worktree","remove","--force",r]),await Zt(e,["worktree","prune"])}}:null}var mL,rl=m(()=>{mL=sL(oL)});function TE(e){return e===null?"null":Array.isArray(e)?"array":Number.isInteger(e)?"integer":typeof e}function uL(e,t){let n=TE(e);return t==="number"?n==="number"||n==="integer":t==="integer"?n==="integer":n===t}function pL(e,t){if(typeof t!="string"||!t.startsWith("#/"))return;let n=e;for(let r of t.slice(2).split("/")){let o=r.replace(/~1/g,"/").replace(/~0/g,"~");if(!Fr(n)&&!Array.isArray(n))return;n=n[o]}return Fr(n)?n:void 0}function cr(e,t,n,r,o){if(!Fr(t))return;if(t.$ref!==void 0){let a=pL(n,t.$ref);a&&cr(e,a,n,r,o);return}if(Array.isArray(t.allOf))for(let a of t.allOf)cr(e,a,n,r,o);for(let a of["anyOf","oneOf"]){let p=t[a];if(!Array.isArray(p)||p.length===0)continue;let c=p.filter(h=>{let I=[];return cr(e,h,n,r,I),I.length===0}).length;a==="anyOf"&&c===0&&o.push({path:r,message:"does not match any allowed shape"}),a==="oneOf"&&c!==1&&o.push({path:r,message:`must match exactly one shape (matched ${c})`})}let s=t.type;if(s!==void 0){let a=Array.isArray(s)?s.map(String):[String(s)];if(!a.some(p=>uL(e,p))){o.push({path:r,message:`expected ${a.join(" or ")}, got ${TE(e)}`});return}}if(Array.isArray(t.enum)&&!t.enum.some(a=>JSON.stringify(a)===JSON.stringify(e))&&o.push({path:r,message:`must be one of ${t.enum.map(a=>JSON.stringify(a)).join(", ")}`}),Fr(e)){let a=Fr(t.properties)?t.properties:{};if(Array.isArray(t.required))for(let p of t.required.map(String))p in e||o.push({path:r?`${r}.${p}`:p,message:"is required"});for(let[p,c]of Object.entries(a))p in e&&cr(e[p],c,n,r?`${r}.${p}`:p,o);if(t.additionalProperties===!1)for(let p of Object.keys(e))p in a||o.push({path:r?`${r}.${p}`:p,message:"is not an allowed property"});else if(Fr(t.additionalProperties))for(let[p,c]of Object.entries(e))p in a||cr(c,t.additionalProperties,n,r?`${r}.${p}`:p,o)}if(Array.isArray(e)&&t.items!==void 0){let a=t.items;Array.isArray(a)?e.forEach((p,c)=>{c<a.length&&cr(p,a[c],n,`${r}[${c}]`,o)}):e.forEach((p,c)=>cr(p,a,n,`${r}[${c}]`,o))}if(typeof e=="string"&&(typeof t.minLength=="number"&&e.length<t.minLength&&o.push({path:r,message:`is shorter than ${t.minLength} characters`}),typeof t.pattern=="string"))try{new RegExp(t.pattern).test(e)||o.push({path:r,message:`does not match ${t.pattern}`})}catch{}typeof e=="number"&&(typeof t.minimum=="number"&&e<t.minimum&&o.push({path:r,message:`is below ${t.minimum}`}),typeof t.maximum=="number"&&e>t.maximum&&o.push({path:r,message:`is above ${t.maximum}`}))}function EE(e,t){if(!Fr(t))return[];let n=[];return cr(e,t,t,"",n),n}function vE(e){return e.map(t=>`- ${t.path||"(root)"}: ${t.message}`).join(`
70
+ `)}function SE(e){let t=e.trim(),n=/```(?:json)?\s*([\s\S]*?)```/.exec(t),r=[t,n?.[1]?.trim()].filter(o=>!!o);for(let o of r){try{return JSON.parse(o)}catch{}for(let s=0;s<o.length;s++){let a=o[s];if(a!=="{"&&a!=="[")continue;let p=a==="{"?"}":"]",c=0,h=!1,I=!1;for(let T=s;T<o.length;T++){let M=o[T];if(h){I?I=!1:M==="\\"?I=!0:M==='"'&&(h=!1);continue}if(M==='"')h=!0;else if(M===a)c++;else if(M===p&&(c--,c===0))try{return JSON.parse(o.slice(s,T+1))}catch{break}}}}}var Fr,PE=m(()=>{Fr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)});import*as AE from"node:os";async function dL(e,t=RE,n=OE){let r=Date.now()+n;for(;e.isPaused?.();){if(e.signal?.aborted||Date.now()>=r)return!1;await new Promise(o=>setTimeout(o,t))}return!0}function fL(){let e=AE.availableParallelism?.()??4;return Math.max(1,Math.min(16,e-2))}function gL(e){let t=0,n=[];return async function(){t>=e&&await new Promise(s=>n.push(s)),t++;let o=!1;return()=>{o||(o=!0,t--,n.shift()?.())}}}function ME(e){let t=e.lifetimeCap??cL,n=e.fanoutCap??lL,r=gL(e.concurrency??fL()),o=0,s=0,a="",p=_=>e.onEvent?.(_),c=new Map,h=()=>e.onProgress?.([...c.values()]),I=async(_,Z)=>{let ae=Z??{},xe=typeof ae.label=="string"?ae.label:`agent-${o+1}`,ke=typeof ae.phase=="string"?ae.phase:a,We=typeof ae.agentType=="string"?ae.agentType:"task",Nt=typeof ae.effort=="string"?ae.effort:void 0,he=typeof ae.model=="string"?ae.model:void 0,te=typeof ae.isolation=="string"?ae.isolation:void 0,E=ae.schema;if(e.budgetTotal!=null&&s>=e.budgetTotal)throw new Ge(`budget exhausted: spent ${s} of ${e.budgetTotal} output tokens`);if(o>=t)throw new Ge(`lifetime cap reached: ${t} agent calls in one run`);o++;let ze=o;if(e.isPaused?.()&&!await dL(e,RE,OE))return null;let qt=await r();try{if(e.signal?.aborted)return null;p({kind:"agent_start",label:xe,phase:ke,ordinal:o}),c.set(ze,{label:xe,phase:ke,agentType:We,status:"running",outputTokens:0,...he?{model:he}:{},startedAt:Date.now()}),h();let cn=(Qt,_t,qe)=>{let Mt=c.get(ze);Mt&&(Mt.status=Qt,Mt.outputTokens=_t.outputTokens,Mt.endedAt=Date.now(),_t.toolCalls!==void 0&&(Mt.toolCalls=_t.toolCalls),_t.model!==void 0&&(Mt.model=_t.model),qe&&(Mt.detail=qe)),p({kind:"agent_end",label:xe,ok:Qt==="ok",outputTokens:_t.outputTokens}),h()},Po=E===void 0?1:2;for(let Qt=0;Qt<Po;Qt++){let _t=Qt===0?String(_):void 0,qe=await M(_t??xL(String(_),T),{label:xe,phase:ke,agentType:We,effort:Nt,model:he,isolation:te});if(qe===null)return cn("failed",{text:"",outputTokens:0}),null;if(s+=qe.outputTokens,E===void 0)return cn("ok",qe,ol(qe.text)),qe.text;let Mt=SE(qe.text),Ao=Mt===void 0?[{path:"",message:"reply was not JSON"}]:EE(Mt,E);if(Ao.length===0)return cn("ok",qe,ol(qe.text)),Mt;if(T=vE(Ao),Qt===Po-1)return cn("failed",qe,`schema: ${ol(T)}`),null}return null}finally{qt()}},T="",M=async(_,Z)=>{try{return await e.invoke({prompt:_,...Z})}catch{return null}};return{agent:(_,Z)=>I(_,Z),parallel:async _=>{if(_.length>n)throw new Ge(`fan-out cap exceeded: ${_.length} items (max ${n})`);return await Promise.all(_.map(async ae=>{try{return await ae()}catch{return null}}))},pipeline:async(_,...Z)=>{if(_.length>n)throw new Ge(`fan-out cap exceeded: ${_.length} items (max ${n})`);return await Promise.all(_.map(async(xe,ke)=>{let We=xe;for(let Nt of Z)try{We=await Nt(We,xe,ke)}catch{return null}return We}))},phase:_=>{a=String(_),p({kind:"phase",title:a})},log:_=>p({kind:"log",message:String(_)}),args:e.args,budget:{total:e.budgetTotal??null,spent:()=>s,remaining:()=>e.budgetTotal==null?1/0:Math.max(0,e.budgetTotal-s)}}}function xL(e,t){return`${e}
71
71
 
72
72
  Your previous reply did not satisfy the required schema:
73
73
  ${t}
74
74
 
75
- Reply with ONLY a corrected JSON value.`}function nl(e,t=80){let n=e.split(`
76
- `).map(r=>r.trim()).find(r=>r.length>0)??"";return n.length>t?`${n.slice(0,t)}\u2026`:n}var pL,cL,AE,RE,Ge,ME=m(()=>{SE();pL=1e3,cL=4096,AE=100,RE=300*1e3;Ge=class extends Error{constructor(t){super(t),this.name="WorkflowError"}}});import{parseColor as Un,styleText as xL}from"@earendil-works/pi-tui";function hL(e,t){return xL(e,t,Km)}function X(e,t,n){return hL(e,{...n,fg:t})}var Km,D,CE,Ls=m(()=>{Km="truecolor",D={text:Un("#e6e6e6"),mute:Un("#8b8b8b"),dim:Un("#5c5c5c"),user:Un("#d0d0d0"),accent:Un("#c4b5fd"),tool:Un("#6ee7b7"),bad:Un("#f0a8a4"),warn:Un("#e6b15a"),line:Un("#3a3a3a")};CE={heading:e=>X(e,D.text,{bold:!0}),link:e=>X(e,D.accent,{underline:!0}),linkUrl:e=>X(e,D.mute),code:e=>X(e,D.text),codeBlock:e=>X(e,D.text),codeBlockBorder:e=>X(e,D.line),quote:e=>X(e,D.mute,{italic:!0}),quoteBorder:e=>X(e,D.line),hr:e=>X(e,D.line),listBullet:e=>X(e,D.mute),bold:e=>X(e,D.text,{bold:!0}),italic:e=>X(e,D.text,{italic:!0}),strikethrough:e=>X(e,D.mute,{strikethrough:!0}),underline:e=>X(e,D.text,{underline:!0})}});import{truncateToWidth as js,visibleWidth as mn}from"@earendil-works/pi-tui";function cr(e){let t=Math.max(0,Math.round(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n>0?`${n}h${String(r).padStart(2,"0")}m`:r>0?`${r}m${String(o).padStart(2,"0")}s`:`${o}s`}function jE(e){let t=Math.max(0,Math.floor(e/1e3));return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:`${Math.floor(t/3600)}h`}function sl(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function Wm(e,t,n="left"){if(t<=0)return"";let r=mn(e);if(r>t)return js(e,t);let o=" ".repeat(t-r);return n==="right"?o+e:e+o}function il(e,t,n,r=1){if(n<=0)return"";let o=mn(t);if(o>=n)return js(t,n);let s=n-o-r;if(s<=0)return Wm(t,n,"right");let a=mn(e)>s?js(e,s):e,p=" ".repeat(n-mn(a)-o);return a+p+t}function rl(e,t,n){let r=To(e,Math.max(0,n-2)),o=Math.max(1,n-1-mn(r)),s=de("border","\u250C\u2500 ")+de("accent",r)+de("border",` ${"\u2500".repeat(o)}\u2510`),a=de("border",`\u2514${"\u2500".repeat(n+2)}\u2518`),p=de("border","\u2502"),c=t.map(h=>`${p} ${Wm(h,n)} ${p}`);return[s,...c,a]}function IL(e,t,n,r){let o=r?.gap??1,s=r?.leftWidth??Fs(Math.round(n*.38),28,44),a=n-s-o,p=Math.max(e.rows.length,t.rows.length),c=M=>{let F=[...M];for(;F.length<p;)F.push("");return F},h=rl(e.title,c(e.rows),s-4),$=rl(t.title,c(t.rows),a-4),T=" ".repeat(o);return h.map((M,F)=>M+T+($[F]??Wm("",a)))}function DE(e,t,n){switch(e){case"running":return de(t||n?"accent":"muted","\u25CF");case"failed":return de("error","\u2717");default:return de("success","\u2713")}}function NE(e,t,n,r=Date.now(),o=0){return t?r-o<Gm?de("success","\u2713",!0):de("success","\u2713"):de(n?"accent":"dim",String(e))}function Eo(e,t=Date.now()){let n=e.phases.map(o=>o.title),r=new Map(e.phases.map(o=>[o.title,o.detail]));for(let o of e.steps){let s=o.phase||FE;n.includes(s)||n.push(s)}return n.map((o,s)=>{let a=e.steps.filter(O=>(O.phase||FE)===o).map(O=>({...O,phaseIndex:s})),p=a.filter(O=>O.status!=="running").length,c=a.filter(O=>O.status==="failed").length,h=a.reduce((O,q)=>{let Z=q.endedAt??t;return Math.max(O,Z-q.startedAt)},0),$=-1;for(let O=0;O<a.length;O++){let q=a[O];q.status==="running"&&($<0||q.startedAt>=a[$].startedAt)&&($=O)}let T=r.get(o),M=a.length>0&&p===a.length&&c===0,F=M?a.reduce((O,q)=>Math.max(O,q.endedAt??0),0):0;return{title:o,...T?{detail:T}:{},agents:a,done:p,failed:c,outputTokens:a.reduce((O,q)=>O+q.outputTokens,0),elapsedMs:h,allDone:M,finishedAt:F,anchor:$}})}function al(e){return e.steps.reduce((t,n)=>t+n.outputTokens,0)}function $L(e){return e.steps.reduce((t,n)=>t+(n.toolCalls??0),0)}function qE(e,t=Date.now()){return Math.max(0,(e.endedAt??t)-e.startedAt)}function wL(e){return e.steps.length>yL||al(e)>bL}function kL(e){if(e.length===0)return 0;let t=e.map((n,r)=>({group:n,index:r})).filter(n=>n.group.anchor>=0);if(t.length>0)return t.reduce((n,r)=>{let o=r.group.agents[r.group.anchor],s=n.group.agents[n.group.anchor];return o.startedAt>=s.startedAt?r:n}).index;for(let n=e.length-1;n>=0;n--)if(e[n].agents.length>0)return n;return e.length-1}function _E(e,t=Date.now()){let n=Eo(e,t),r=e.steps.length,o=e.steps.filter(h=>h.status!=="running").length,s=e.steps.filter(h=>h.status==="failed").length,a=[e.name],p=n.find(h=>h.anchor>=0);p?a.push(`${p.title} ${p.done}/${p.agents.length}`):n.length>0&&a.push(`${n[n.length-1].title} done`),a.push(`${o}/${r} agents`),a.push(`${sl(al(e))} tok`),a.push(cr(qE(e,t))),s>0&&a.push(`${s} failed`);let c=a.join(" \xB7 ");return wL(e)?`large workflow \xB7 ${c}`:c}function KE(e,t){if(e.status==="running"&&e.outputTokens===0)return[`idle ${cr(t-e.startedAt)}`,"idle"];let n=sl(e.outputTokens),r=e.toolCalls??0,o=cr((e.endedAt??t)-e.startedAt);return[`${n} tok \xB7 ${r} tools \xB7 ${o}`,`${n} tok \xB7 ${r} tools`,`${n} tok`]}function ol(e,t,n){if(e.length<=n)return{slice:e,start:0,more:0};let r=Math.max(1,n-1),o=Fs(t-Math.floor(r/2),0,e.length-r),s=e.slice(o,o+r);return{slice:s,start:o,more:e.length-s.length}}function AL(e,t,n,r,o){let s=`${e.done}/${e.agents.length}`,a=n?de("accent","\u276F"):" ",p=NE(t+1,e.allDone,n,o,e.finishedAt),c=Math.max(0,r-4-mn(s)),h=mn(e.title)>c?js(e.title,c,"\u2026"):e.title,$=e.allDone&&o-e.finishedAt<Gm,T=de($&&!n?"success":n?"accent":"text",h),M=`${a}${p} ${T}`,F=de(n?"accent":"muted",s);return il(M,F,r,1)}function RL(e,t,n,r,o,s){let a=t?de("accent","\u276F"):" ",p=DE(e.status,t,n),c=de(t?"accent":"text",Wm(e.label,r)),h=`${a}${p} ${c}`,$=Math.max(0,o-mn(h)-1),T=KE(e,s).find(F=>mn(F)<=$)??"",M=de(t?"accent":PL(e)?"dim":"muted",T);return il(h,M,o,1)}function OL(e,t,n,r){let o=[];return e.forEach((s,a)=>{let c=`${NE(a+1,s.allDone,a===n,r,s.finishedAt)} ${de(a===n?"accent":"text",s.title)} ${de("muted",`${s.done}/${s.agents.length}`)}`;o.push(To(c,t));let{slice:h,more:$}=ol(s.agents,0,UE);h.forEach((T,M)=>{let F=DE(T.status,!1,M===s.anchor),O=KE(T,r)[0]??"";o.push(To(` ${F} ${de("text",T.label)} ${de("muted",O)}`,t))}),$>0&&o.push(To(` ${de("dim",`\u2026+${$} more`)}`,t))}),o}function ML(e,t,n){let r=n?.now??Date.now(),o=Eo(e,r),s=e.steps,a=s.filter(ze=>ze.status!=="running").length,p=s.filter(ze=>ze.status==="failed").length,c=[`${a}/${s.length} agents`,`${sl(al(e))} tok`,`${$L(e)} tools`,cr(qE(e,r)),...p>0?[`${p} failed`]:[]].join(" \xB7 "),h=[il(de("accent",e.name,!0),de("muted",c),t,2),...e.description?[de("muted",To(e.description,t))]:[]],$=n?.footer?[de("muted",To(n.footerText??CL(),t))]:[];if(o.length===0)return[...h,...rl("Phases",["(no agents yet)"],Math.max(0,t-4)),...$];let T=Fs(n?.selectedPhase??kL(o),0,Math.max(0,o.length-1)),M=Fs(Math.round(t*.38),28,44),F=t-M-1-4;if(t<vL||F<SL)return[...h,...OL(o,t,T,r),...$];let O=o[T],{slice:q,start:Z,more:ae}=ol(o,T,TL),xe=q.map((ze,qt)=>AL(ze,Z+qt,Z+qt===T,M-4,r));ae>0&&xe.push(de("dim",`\u2026+${ae} more`));let ke=n?.filter?n.filter(O.agents):O.agents,We=ke.length?Fs(Math.max(...ke.map(ze=>mn(ze.label))),6,EL):6,{slice:Nt,more:he}=ol(ke,0,n?.agentWindow??UE),te=Nt.map((ze,qt)=>RL(ze,!1,qt===O.anchor,We,F,r));he>0&&te.push(de("dim",`\u2026+${he} more`));let E=IL({title:"Phases",rows:xe},{title:`${O.title} \xB7 ${ke.length} agents${n?.filterLabel??""}`,rows:te},t,{leftWidth:M,gap:1});return[...h,...E,...$]}function GE(e,t=[],n=96,r,o){let s=ML(e,n,{now:e.endedAt??Date.now(),footer:!0,...r===void 0?{}:{selectedPhase:r},...o?.filter?{filter:o.filter}:{},...o?.footerText?{footerText:o.footerText}:{},...o?.filterLabel?{filterLabel:o.filterLabel}:{}}),a=new Set(t);if(o?.drill){let c=Eo(e,e.endedAt??Date.now()),h=c[Math.max(0,Math.min(c.length-1,r??0))];for(let $ of h?.agents??[])a.add($.label)}if(a.size===0)return s;let p=[];for(let c of e.steps)if(a.has(c.label)){for(let h of c.tasks??[]){let $=h.status==="completed"?"[x]":h.status==="in_progress"?"[>]":"[ ]";p.push(` ${de("muted",$)} ${de("text",h.content)}`)}c.detail&&p.push(` ${de("dim",c.detail)}`)}return p.length===0?s:[...s.slice(0,-1),...p,s[s.length-1]]}function CL(){return"\u2191/\u2193 phase \xB7 Enter drill in \xB7 Esc back out \xB7 f filter by status \xB7 p pause \xB7 x stop \xB7 s save script"}var LE,de,yL,bL,Gm,Fs,To,FE,UE,TL,EL,vL,SL,PL,Ds=m(()=>{Ls();LE={text:D.text,muted:D.mute,dim:D.dim,accent:D.accent,success:D.tool,error:D.bad,border:D.line},de=(e,t,n=!1)=>n?X(t,LE[e],{bold:!0}):X(t,LE[e]),yL=25,bL=15e5,Gm=420;Fs=(e,t,n)=>Math.max(t,Math.min(n,e)),To=(e,t)=>mn(e)>t?js(e,Math.max(0,t),"\u2026"):e;FE="Workflow";UE=16,TL=12,EL=18,vL=72,SL=24;PL=e=>e.status==="running"&&e.outputTokens===0});import{readFileSync as LL}from"node:fs";import{basename as FL}from"node:path";import{StringEnum as jL}from"@earendil-works/pi-ai";import{defineTool as DL}from"@earendil-works/pi-coding-agent";function zE(e){WE=e}function qL(e){let t=e.replace(/^(?:\s+|\/\/[^\n]*\n|\/\*[\s\S]*?\*\/)*/,""),n=/^export\s+const\s+meta\s*=\s*/.exec(t);if(!n)throw new Ge("a workflow script must start with `export const meta = { name, description }`");let r=e.length-t.length,o=n[0].length,s=0,a=null,p=-1;for(let F=o;F<t.length;F++){let O=t[F];if(a){O==="\\"?F++:O===a&&(a=null);continue}if(O==='"'||O==="'"||O==="`")a=O;else if(O==="{"||O==="[")s++;else if((O==="}"||O==="]")&&(s--,s===0)){p=F+1;break}}if(p===-1)throw new Ge("meta is not a closed literal object");let c=t.slice(o,p),h=e.slice(r+p).replace(/^\s*;/,"");if(/^\s*(import|export)\b/m.test(h))throw new Ge("a workflow body must not contain import or export declarations");if(/\bimport\s*\(/.test(h))throw new Ge("a workflow body must not use dynamic import()");let $;try{$=new Function(`"use strict"; return (${c});`)()}catch(F){throw new Ge(`meta must be a literal object: ${F instanceof Error?F.message:String(F)}`)}if(typeof $!="object"||$===null)throw new Ge("meta must be an object");let T=$;if(typeof T.name!="string"||!T.name.trim())throw new Ge("meta.name is required");if(typeof T.description!="string"||!T.description.trim())throw new Ge("meta.description is required");let M=Array.isArray(T.phases)?T.phases.filter(F=>typeof F=="object"&&F!==null).map(F=>({title:String(F.title??""),...typeof F.detail=="string"?{detail:F.detail}:{}})).filter(F=>F.title):void 0;return{meta:{name:T.name,description:T.description,...typeof T.whenToUse=="string"?{whenToUse:T.whenToUse}:{},...M?{phases:M}:{}},body:h}}function _L(e){let t=["agent","parallel","pipeline","phase","log","args","budget"],n=`"use strict"; return (async () => {
75
+ Reply with ONLY a corrected JSON value.`}function ol(e,t=80){let n=e.split(`
76
+ `).map(r=>r.trim()).find(r=>r.length>0)??"";return n.length>t?`${n.slice(0,t)}\u2026`:n}var cL,lL,RE,OE,Ge,CE=m(()=>{PE();cL=1e3,lL=4096,RE=100,OE=300*1e3;Ge=class extends Error{constructor(t){super(t),this.name="WorkflowError"}}});import{parseColor as Kn,styleText as hL}from"@earendil-works/pi-tui";function yL(e,t){return hL(e,t,Gm)}function X(e,t,n){return yL(e,{...n,fg:t})}var Gm,D,LE,js=m(()=>{Gm="truecolor",D={text:Kn("#e6e6e6"),mute:Kn("#8b8b8b"),dim:Kn("#5c5c5c"),user:Kn("#d0d0d0"),accent:Kn("#c4b5fd"),tool:Kn("#6ee7b7"),bad:Kn("#f0a8a4"),warn:Kn("#e6b15a"),line:Kn("#3a3a3a")};LE={heading:e=>X(e,D.text,{bold:!0}),link:e=>X(e,D.accent,{underline:!0}),linkUrl:e=>X(e,D.mute),code:e=>X(e,D.text),codeBlock:e=>X(e,D.text),codeBlockBorder:e=>X(e,D.line),quote:e=>X(e,D.mute,{italic:!0}),quoteBorder:e=>X(e,D.line),hr:e=>X(e,D.line),listBullet:e=>X(e,D.mute),bold:e=>X(e,D.text,{bold:!0}),italic:e=>X(e,D.text,{italic:!0}),strikethrough:e=>X(e,D.mute,{strikethrough:!0}),underline:e=>X(e,D.text,{underline:!0})}});import{truncateToWidth as Ns,visibleWidth as mn}from"@earendil-works/pi-tui";function lr(e){let t=Math.max(0,Math.round(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),o=t%60;return n>0?`${n}h${String(r).padStart(2,"0")}m`:r>0?`${r}m${String(o).padStart(2,"0")}s`:`${o}s`}function DE(e){let t=Math.max(0,Math.floor(e/1e3));return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:`${Math.floor(t/3600)}h`}function al(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function zm(e,t,n="left"){if(t<=0)return"";let r=mn(e);if(r>t)return Ns(e,t);let o=" ".repeat(t-r);return n==="right"?o+e:e+o}function ml(e,t,n,r=1){if(n<=0)return"";let o=mn(t);if(o>=n)return Ns(t,n);let s=n-o-r;if(s<=0)return zm(t,n,"right");let a=mn(e)>s?Ns(e,s):e,p=" ".repeat(n-mn(a)-o);return a+p+t}function sl(e,t,n){let r=To(e,Math.max(0,n-2)),o=Math.max(1,n-1-mn(r)),s=de("border","\u250C\u2500 ")+de("accent",r)+de("border",` ${"\u2500".repeat(o)}\u2510`),a=de("border",`\u2514${"\u2500".repeat(n+2)}\u2518`),p=de("border","\u2502"),c=t.map(h=>`${p} ${zm(h,n)} ${p}`);return[s,...c,a]}function $L(e,t,n,r){let o=r?.gap??1,s=r?.leftWidth??Ds(Math.round(n*.38),28,44),a=n-s-o,p=Math.max(e.rows.length,t.rows.length),c=M=>{let F=[...M];for(;F.length<p;)F.push("");return F},h=sl(e.title,c(e.rows),s-4),I=sl(t.title,c(t.rows),a-4),T=" ".repeat(o);return h.map((M,F)=>M+T+(I[F]??zm("",a)))}function NE(e,t,n){switch(e){case"running":return de(t||n?"accent":"muted","\u25CF");case"failed":return de("error","\u2717");default:return de("success","\u2713")}}function qE(e,t,n,r=Date.now(),o=0){return t?r-o<Wm?de("success","\u2713",!0):de("success","\u2713"):de(n?"accent":"dim",String(e))}function Eo(e,t=Date.now()){let n=e.phases.map(o=>o.title),r=new Map(e.phases.map(o=>[o.title,o.detail]));for(let o of e.steps){let s=o.phase||jE;n.includes(s)||n.push(s)}return n.map((o,s)=>{let a=e.steps.filter(O=>(O.phase||jE)===o).map(O=>({...O,phaseIndex:s})),p=a.filter(O=>O.status!=="running").length,c=a.filter(O=>O.status==="failed").length,h=a.reduce((O,_)=>{let Z=_.endedAt??t;return Math.max(O,Z-_.startedAt)},0),I=-1;for(let O=0;O<a.length;O++){let _=a[O];_.status==="running"&&(I<0||_.startedAt>=a[I].startedAt)&&(I=O)}let T=r.get(o),M=a.length>0&&p===a.length&&c===0,F=M?a.reduce((O,_)=>Math.max(O,_.endedAt??0),0):0;return{title:o,...T?{detail:T}:{},agents:a,done:p,failed:c,outputTokens:a.reduce((O,_)=>O+_.outputTokens,0),elapsedMs:h,allDone:M,finishedAt:F,anchor:I}})}function ul(e){return e.steps.reduce((t,n)=>t+n.outputTokens,0)}function wL(e){return e.steps.reduce((t,n)=>t+(n.toolCalls??0),0)}function _E(e,t=Date.now()){return Math.max(0,(e.endedAt??t)-e.startedAt)}function kL(e){return e.steps.length>bL||ul(e)>IL}function TL(e){if(e.length===0)return 0;let t=e.map((n,r)=>({group:n,index:r})).filter(n=>n.group.anchor>=0);if(t.length>0)return t.reduce((n,r)=>{let o=r.group.agents[r.group.anchor],s=n.group.agents[n.group.anchor];return o.startedAt>=s.startedAt?r:n}).index;for(let n=e.length-1;n>=0;n--)if(e[n].agents.length>0)return n;return e.length-1}function UE(e,t=Date.now()){let n=Eo(e,t),r=e.steps.length,o=e.steps.filter(h=>h.status!=="running").length,s=e.steps.filter(h=>h.status==="failed").length,a=[e.name],p=n.find(h=>h.anchor>=0);p?a.push(`${p.title} ${p.done}/${p.agents.length}`):n.length>0&&a.push(`${n[n.length-1].title} done`),a.push(`${o}/${r} agents`),a.push(`${al(ul(e))} tok`),a.push(lr(_E(e,t))),s>0&&a.push(`${s} failed`);let c=a.join(" \xB7 ");return kL(e)?`large workflow \xB7 ${c}`:c}function GE(e,t){if(e.status==="running"&&e.outputTokens===0)return[`idle ${lr(t-e.startedAt)}`,"idle"];let n=al(e.outputTokens),r=e.toolCalls??0,o=lr((e.endedAt??t)-e.startedAt);return[`${n} tok \xB7 ${r} tools \xB7 ${o}`,`${n} tok \xB7 ${r} tools`,`${n} tok`]}function il(e,t,n){if(e.length<=n)return{slice:e,start:0,more:0};let r=Math.max(1,n-1),o=Ds(t-Math.floor(r/2),0,e.length-r),s=e.slice(o,o+r);return{slice:s,start:o,more:e.length-s.length}}function RL(e,t,n,r,o){let s=`${e.done}/${e.agents.length}`,a=n?de("accent","\u276F"):" ",p=qE(t+1,e.allDone,n,o,e.finishedAt),c=Math.max(0,r-4-mn(s)),h=mn(e.title)>c?Ns(e.title,c,"\u2026"):e.title,I=e.allDone&&o-e.finishedAt<Wm,T=de(I&&!n?"success":n?"accent":"text",h),M=`${a}${p} ${T}`,F=de(n?"accent":"muted",s);return ml(M,F,r,1)}function OL(e,t,n,r,o,s){let a=t?de("accent","\u276F"):" ",p=NE(e.status,t,n),c=de(t?"accent":"text",zm(e.label,r)),h=`${a}${p} ${c}`,I=Math.max(0,o-mn(h)-1),T=GE(e,s).find(F=>mn(F)<=I)??"",M=de(t?"accent":AL(e)?"dim":"muted",T);return ml(h,M,o,1)}function ML(e,t,n,r){let o=[];return e.forEach((s,a)=>{let c=`${qE(a+1,s.allDone,a===n,r,s.finishedAt)} ${de(a===n?"accent":"text",s.title)} ${de("muted",`${s.done}/${s.agents.length}`)}`;o.push(To(c,t));let{slice:h,more:I}=il(s.agents,0,KE);h.forEach((T,M)=>{let F=NE(T.status,!1,M===s.anchor),O=GE(T,r)[0]??"";o.push(To(` ${F} ${de("text",T.label)} ${de("muted",O)}`,t))}),I>0&&o.push(To(` ${de("dim",`\u2026+${I} more`)}`,t))}),o}function CL(e,t,n){let r=n?.now??Date.now(),o=Eo(e,r),s=e.steps,a=s.filter(ze=>ze.status!=="running").length,p=s.filter(ze=>ze.status==="failed").length,c=[`${a}/${s.length} agents`,`${al(ul(e))} tok`,`${wL(e)} tools`,lr(_E(e,r)),...p>0?[`${p} failed`]:[]].join(" \xB7 "),h=[ml(de("accent",e.name,!0),de("muted",c),t,2),...e.description?[de("muted",To(e.description,t))]:[]],I=n?.footer?[de("muted",To(n.footerText??LL(),t))]:[];if(o.length===0)return[...h,...sl("Phases",["(no agents yet)"],Math.max(0,t-4)),...I];let T=Ds(n?.selectedPhase??TL(o),0,Math.max(0,o.length-1)),M=Ds(Math.round(t*.38),28,44),F=t-M-1-4;if(t<SL||F<PL)return[...h,...ML(o,t,T,r),...I];let O=o[T],{slice:_,start:Z,more:ae}=il(o,T,EL),xe=_.map((ze,qt)=>RL(ze,Z+qt,Z+qt===T,M-4,r));ae>0&&xe.push(de("dim",`\u2026+${ae} more`));let ke=n?.filter?n.filter(O.agents):O.agents,We=ke.length?Ds(Math.max(...ke.map(ze=>mn(ze.label))),6,vL):6,{slice:Nt,more:he}=il(ke,0,n?.agentWindow??KE),te=Nt.map((ze,qt)=>OL(ze,!1,qt===O.anchor,We,F,r));he>0&&te.push(de("dim",`\u2026+${he} more`));let E=$L({title:"Phases",rows:xe},{title:`${O.title} \xB7 ${ke.length} agents${n?.filterLabel??""}`,rows:te},t,{leftWidth:M,gap:1});return[...h,...E,...I]}function WE(e,t=[],n=96,r,o){let s=CL(e,n,{now:e.endedAt??Date.now(),footer:!0,...r===void 0?{}:{selectedPhase:r},...o?.filter?{filter:o.filter}:{},...o?.footerText?{footerText:o.footerText}:{},...o?.filterLabel?{filterLabel:o.filterLabel}:{}}),a=new Set(t);if(o?.drill){let c=Eo(e,e.endedAt??Date.now()),h=c[Math.max(0,Math.min(c.length-1,r??0))];for(let I of h?.agents??[])a.add(I.label)}if(a.size===0)return s;let p=[];for(let c of e.steps)if(a.has(c.label)){for(let h of c.tasks??[]){let I=h.status==="completed"?"[x]":h.status==="in_progress"?"[>]":"[ ]";p.push(` ${de("muted",I)} ${de("text",h.content)}`)}c.detail&&p.push(` ${de("dim",c.detail)}`)}return p.length===0?s:[...s.slice(0,-1),...p,s[s.length-1]]}function LL(){return"\u2191/\u2193 phase \xB7 Enter drill in \xB7 Esc back out \xB7 f filter by status \xB7 p pause \xB7 x stop \xB7 s save script"}var FE,de,bL,IL,Wm,Ds,To,jE,KE,EL,vL,SL,PL,AL,qs=m(()=>{js();FE={text:D.text,muted:D.mute,dim:D.dim,accent:D.accent,success:D.tool,error:D.bad,border:D.line},de=(e,t,n=!1)=>n?X(t,FE[e],{bold:!0}):X(t,FE[e]),bL=25,IL=15e5,Wm=420;Ds=(e,t,n)=>Math.max(t,Math.min(n,e)),To=(e,t)=>mn(e)>t?Ns(e,Math.max(0,t),"\u2026"):e;jE="Workflow";KE=16,EL=12,vL=18,SL=72,PL=24;AL=e=>e.status==="running"&&e.outputTokens===0});import{readFileSync as FL}from"node:fs";import{basename as jL}from"node:path";import{StringEnum as DL}from"@earendil-works/pi-ai";import{defineTool as NL}from"@earendil-works/pi-coding-agent";function BE(e){zE=e}function _L(e){let t=e.replace(/^(?:\s+|\/\/[^\n]*\n|\/\*[\s\S]*?\*\/)*/,""),n=/^export\s+const\s+meta\s*=\s*/.exec(t);if(!n)throw new Ge("a workflow script must start with `export const meta = { name, description }`");let r=e.length-t.length,o=n[0].length,s=0,a=null,p=-1;for(let F=o;F<t.length;F++){let O=t[F];if(a){O==="\\"?F++:O===a&&(a=null);continue}if(O==='"'||O==="'"||O==="`")a=O;else if(O==="{"||O==="[")s++;else if((O==="}"||O==="]")&&(s--,s===0)){p=F+1;break}}if(p===-1)throw new Ge("meta is not a closed literal object");let c=t.slice(o,p),h=e.slice(r+p).replace(/^\s*;/,"");if(/^\s*(import|export)\b/m.test(h))throw new Ge("a workflow body must not contain import or export declarations");if(/\bimport\s*\(/.test(h))throw new Ge("a workflow body must not use dynamic import()");let I;try{I=new Function(`"use strict"; return (${c});`)()}catch(F){throw new Ge(`meta must be a literal object: ${F instanceof Error?F.message:String(F)}`)}if(typeof I!="object"||I===null)throw new Ge("meta must be an object");let T=I;if(typeof T.name!="string"||!T.name.trim())throw new Ge("meta.name is required");if(typeof T.description!="string"||!T.description.trim())throw new Ge("meta.description is required");let M=Array.isArray(T.phases)?T.phases.filter(F=>typeof F=="object"&&F!==null).map(F=>({title:String(F.title??""),...typeof F.detail=="string"?{detail:F.detail}:{}})).filter(F=>F.title):void 0;return{meta:{name:T.name,description:T.description,...typeof T.whenToUse=="string"?{whenToUse:T.whenToUse}:{},...M?{phases:M}:{}},body:h}}function UL(e){let t=["agent","parallel","pipeline","phase","log","args","budget"],n=`"use strict"; return (async () => {
77
77
  ${e}
78
- })();`,r;try{r=new Function(...t,n)}catch(o){throw new Ge(`workflow did not compile: ${o instanceof Error?o.message:String(o)}`)}return r}function UL(e){return e.getLastAssistantText()?.trim()??""}function KL(){return async({prompt:e,agentType:t,effort:n,model:r,isolation:o})=>{let s=Cr.get(t)??Cr.get("task");if(!s)throw new Ge(`no agent named ${t}`);let a=o==="worktree"?await wE(process.cwd(),t):null,p=await _m({agent:s.name,effort:n??s.effort,...a?{worktree:a.path}:{}});try{await p.prompt(`${s.prompt}
78
+ })();`,r;try{r=new Function(...t,n)}catch(o){throw new Ge(`workflow did not compile: ${o instanceof Error?o.message:String(o)}`)}return r}function KL(e){return e.getLastAssistantText()?.trim()??""}function GL(){return async({prompt:e,agentType:t,effort:n,model:r,isolation:o})=>{let s=Lr.get(t)??Lr.get("task");if(!s)throw new Ge(`no agent named ${t}`);let a=o==="worktree"?await kE(process.cwd(),t):null,p=await Um({agent:s.name,effort:n??s.effort,...a?{worktree:a.path}:{}});try{await p.prompt(`${s.prompt}
79
79
 
80
80
  Task:
81
- ${e}`);let c=p.getSessionStats(),h=r??GL(p);return{text:UL(p),outputTokens:c.tokens.output,toolCalls:c.toolCalls,...h?{model:h}:{}}}finally{p.dispose(),await a?.remove()}}}function GL(e){return e.model?.id??e.model?.name}function BE(e){let t=()=>e??WE;return DL({name:"workflow",label:"workflow",description:"Run a JavaScript workflow that orchestrates many agents deterministically. Provide `code` (or `path`). The script starts with `export const meta = { name, description, phases }` and then uses the injected bindings: `agent(prompt, {label, phase, schema, effort, model, agentType, isolation})`, `parallel(thunks)`, `pipeline(items, ...stages)`, `phase(title)`, `log(msg)`, `args`, `budget`. `agent()` resolves null on failure and throws only when the budget or the call cap is exhausted, so null-check every result. `parallel()` takes thunks and never rejects; `pipeline()` has no barrier between items. Use it for fan-out, for builder-verifier loops that converge on a verdict, and for anything needing many agents whose order and count must be deterministic.",promptSnippet:"workflow: orchestrate many agents from one JavaScript script",parameters:WL,executionMode:"sequential",async execute(n,r,o,s,a){let p=r.path?LL(r.path,"utf8"):r.code??"";if(!p.trim())throw new Ge("provide code or path");let{meta:c,body:h}=qL(p);if(r.path){let he=FL(r.path).replace(/\.(js|mjs|cjs|ts)$/,"");if(he!==c.name)throw new Ge(`meta.name "${c.name}" must match the script filename "${he}"`)}let $=_L(h),T=Date.now(),M=[],F=0,O=0,q=(he,te)=>({name:c.name,...c.description?{description:c.description}:{},ok:he,agents:O,outputTokens:F,startedAt:T,phases:c.phases??[],steps:M,...te?{error:te}:{}}),Z=(he,te)=>{a.ui.setStatus(ml,te?void 0:_E(he)),s?.({content:[],details:q(!1)})},ae=he=>{O=he.length,F=he.reduce((te,E)=>te+E.outputTokens,0),M.splice(0,M.length,...he.map(te=>({label:te.label,phase:te.phase,agent:te.agentType,status:te.status,outputTokens:te.outputTokens,startedAt:te.startedAt,...te.toolCalls!==void 0?{toolCalls:te.toolCalls}:{},...te.model?{model:te.model}:{},...te.endedAt?{endedAt:te.endedAt}:{},...te.detail?{detail:te.detail}:{},...te.tasks?{tasks:te.tasks}:{}}))),Z({name:c.name,...c.description?{description:c.description}:{},phases:c.phases??[],steps:M,startedAt:T},!1)},xe=KL(),ke=OE({invoke:r.agent?zL(xe,r.agent):xe,budgetTotal:r.budget??null,onProgress:ae,...o?{signal:o}:{},...t()?.isPaused?{isPaused:t().isPaused}:{}}),We=new AbortController,Nt=setTimeout(()=>We.abort(),NL);o&&o.addEventListener("abort",()=>We.abort(),{once:!0}),t()?.onStop?.(()=>We.abort());try{let he=await Promise.race([$(ke.agent,ke.parallel,ke.pipeline,ke.phase,ke.log,ke.args,ke.budget),new Promise((E,ze)=>We.signal.addEventListener("abort",()=>ze(new Ge("workflow timed out or was aborted"))))]),te=Date.now();return a.ui.setStatus(ml,void 0),{content:[{type:"text",text:`${c.name}: ${O} agent call(s), ${F} output tokens in ${cr(te-T)}
82
-
83
- ${BL(he)}`}],details:{...q(!0),endedAt:te}}}catch(he){let te=he instanceof Error?he.message:String(he);return a.ui.setStatus(ml,void 0),{content:[{type:"text",text:`${c.name} failed after ${O} agent call(s): ${te}`}],details:{...q(!1,te),endedAt:Date.now()},isError:!0}}finally{clearTimeout(Nt),t()?.onStop?.(null)}}})}function zL(e,t){return n=>e({...n,agentType:t})}function BL(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var ml,WE,NL,WL,ul=m(()=>{$o();Cs();tl();ME();Ds();ml="workflow",WE=null;NL=600*1e3;WL=ie.Object({code:ie.Optional(ie.String({description:"The workflow script source"})),path:ie.Optional(ie.String({description:"Path to a workflow script, instead of code"})),agent:ie.Optional(jL(["scout","task","reviewer"],{description:"Default agent profile for calls"})),budget:ie.Optional(ie.Number({description:"Output-token ceiling for the whole run"}))})});import{Type as vt}from"@earendil-works/pi-ai";import{defineTool as HL}from"@earendil-works/pi-coding-agent";var HE,VE=m(()=>{Cs();Cs();HE=HL({name:"task",label:"task",description:"Spawn scout, architect, task, or reviewer agents. One call can carry tasks[]. Each item can set agent and effort. Agents run in the background, park when done, and can be resumed with /agents. Use architect to design an approach before a large change.",promptSnippet:"task: spawn background agents",parameters:vt.Object({agent:vt.Optional(vt.String()),effort:vt.Optional(vt.String()),task:vt.Optional(vt.String()),tasks:vt.Optional(vt.Array(vt.Object({agent:vt.Optional(vt.String()),effort:vt.Optional(vt.String()),task:vt.String()})))}),executionMode:"parallel",async execute(e,t,n,r){let o=t.tasks&&t.tasks.length>0?t.tasks.map(p=>({agent:p.agent??t.agent??"task",task:p.task,effort:p.effort??t.effort})):[{agent:t.agent??"task",task:t.task??"",effort:t.effort}],s=[];for(let p of o)p.task.trim()&&(s.push(await gE(p)),r?.({content:[],details:{agents:s.map(c=>({id:c.id,agent:c.agent,status:c.status}))}}));if(s.length===0)throw new Error("task or tasks is required");return await xE(n),{content:[{type:"text",text:s.map(p=>`## ${p.agent}#${p.id} ${p.status}
84
- ${p.result??""}`).join(`
85
-
86
- `)}],details:{agents:s.map(p=>({id:p.id,status:p.status}))}}}})});function JE(){return e=>{e.on("session_start",()=>{let t=new Set(e.getActiveTools());for(let n of VL)e.getAllTools().some(r=>r.name===n)&&t.add(n);e.setActiveTools([...t])})}}var VL,YE=m(()=>{VL=["grep","find","ls"]});var XE={};Lt(XE,{openSession:()=>rF});import{join as JL}from"node:path";import{createAgentSession as YL,createCodemodeExtension as XL,createMcpExtension as ZL,DefaultResourceLoader as QL,SessionManager as zm,SettingsManager as eF}from"@earendil-works/pi-coding-agent";function nF(e,t){let n=e.find(o=>`${o.provider}/${o.id}`===t||o.id===t);if(n)return n;let r=t.toLowerCase();return e.find(o=>o.id.toLowerCase().includes(r)||`${o.provider}/${o.id}`.toLowerCase().includes(r))}async function rF(e){let t=eF.create(e.cwd,Xe,{projectTrusted:!0}),n=e.sessionPath?zm.open(e.sessionPath):e.noSession?zm.inMemory(e.cwd):e.continueSession?zm.continueRecent(e.cwd):zm.create(e.cwd),r=new QL({cwd:e.cwd,agentDir:Xe,settingsManager:t,appendSystemPrompt:[Hl],extensionFactories:[rE(),Ku(),kd(),Nm(),pE(),oE(),aE(),XL(),ZL(),JE()]});await r.reload();let o=await YL({cwd:e.cwd,agentDir:Xe,settingsManager:t,sessionManager:n,resourceLoader:r,excludeTools:tF().exclude,customTools:[HE,Sd,Pd,Em,vm,GT,sE,iE,BE()],thinkingLevel:e.thinking}),s=o.session.model;if(e.model){let c=await o.session.modelRuntime.getAvailable(),h=nF(c,e.model);if(!h)throw o.session.dispose(),new Error(`unknown model '${e.model}'`);(s?.id!==h.id||s.provider!==h.provider)&&(await o.session.setModel(h),s=o.session.model)}let a=s?`${s.provider}/${s.id}`:"no model",p=[Vl(o.modelFallbackMessage)].filter(c=>!!c);return s||p.push(`no model configured. run \`howtofix\` and use /login, or edit ${JL(Xe,"models.json")}`),{session:o.session,dispose:()=>o.session.dispose(),modelLabel:a,note:p.length?p.join(`
87
- `):void 0}}var tF,ZE=m(()=>{Mo();Td();Gn();mi();Wu();Kc();Sm();Mm();Hc();mE();cE();Yc();ul();VE();YE();tF=()=>({exclude:process.platform==="win32"?[]:["powershell"]})});import{mixColors as oF,styleText as QE}from"@earendil-works/pi-tui";function Ns(e,t,n){let r=ov(n);return r>=1?t:r<=0?e:oF(e,t,r)}function cl(e,t,n,r){return!Fr||e<=pl?t:e>=nv?r:Ns(n,r,(e-pl)/(nv-pl))}function sv(e,t){return!Fr||t<=0||e<0?1:1-(1-ov(e/t))**3}function iv(e,t){return Fr&&e>=0&&e<t}function dl(e,t,n=iF,r=400){return!Fr||n<=0||e<0||e>=r?t:Math.min(t,Math.floor(e/n)+1)}function av(e,t,n=Date.now(),r=1400){if(!Fr||r<=0)return e;let o=n%r/r;return Ns(e,t,o<.5?o*2:(1-o)*2)}function aF(e,t){let n=Math.abs(e-t);return n>=ev?0:Math.ceil((1-n/ev)*rv)/rv}function mv(e,t,n=Date.now()){let r=t.charMs??sF;if(!Fr||e.length===0||r<=0)return QE(e,{fg:t.base},Km);let o=e.length+tv*2,s=n/r%o-tv,a=(M,F)=>QE(M,{fg:Ns(t.base,t.bright,F)},Km),p="",c=0,h=null,$=0,T=0;for(let M of e){let F=aF(T,s);h===null?h=F:F!==h&&(p+=a(e.slice(c,$),h),c=$,h=F),$+=M.length,T+=1}return p+a(e.slice(c),h??0)}var Fr,sF,ev,tv,pl,nv,rv,ov,Bm,ll,iF,fl=m(()=>{Ls();Fr=process.env.HOWTOFIX_NO_MOTION!=="1",sF=45,ev=5,tv=8,pl=1e4,nv=6e4,rv=3,ov=e=>e<0?0:e>1?1:e;Bm=class{value;velocity=0;last=Date.now();target;constructor(t,n=t){this.value=t,this.target=n}set(t){this.target=t}get moving(){return Math.abs(this.target-this.value)>.15}snap(t){this.value=t,this.target=t,this.velocity=0,this.last=Date.now()}step(t=Date.now()){let n=Math.max(0,t-this.last),r=Math.min(250,n)/1e3;if(this.last=t,!Fr)return this.value=this.target,this.velocity=0,this.value;n>250&&(this.velocity=0);let o=150,s=2*Math.sqrt(o),a=Math.max(1,Math.ceil(r/.008)),p=r/a;for(let c=0;c<a;c+=1)this.velocity+=(this.target-this.value)*o*p-this.velocity*s*p,this.value+=this.velocity*p;return this.moving||(this.value=this.target,this.velocity=0),this.value}};ll=260,iF=45});import{execFile as mF,execFileSync as uF}from"node:child_process";import{promisify as pF}from"node:util";import{createHash as pv}from"node:crypto";import{copyFileSync as cF,existsSync as gl,mkdirSync as Hm,readFileSync as lF,statSync as dF}from"node:fs";import{dirname as cv,join as Cn,resolve as lv}from"node:path";function gF(e){let t=lv(e);for(;;){if(gl(Cn(t,".git")))return!0;let n=cv(t);if(n===t)return!1;t=n}}async function un(e,t){let n={...process.env};for(let o of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_NAMESPACE","GIT_COMMON_DIR"])delete n[o];n.GIT_DIR=e.gitDir,n.GIT_WORK_TREE=e.root,n.GIT_AUTHOR_NAME=n.GIT_COMMITTER_NAME="howtofix",n.GIT_AUTHOR_EMAIL=n.GIT_COMMITTER_EMAIL="howtofix@local";let{stdout:r}=await xF("git",t,{cwd:e.root,env:n,encoding:"utf8",maxBuffer:8*1024*1024});return r.trim()}function hF(e){return pv("sha1").update(e).digest("hex").slice(0,16)}function dv(e){let t=lv(e).replace(/\/+$/,"")||"/",n=Cn(fF,hF(t)),r=Cn(n,"git"),o={root:t,gitDir:r,metaFile:Cn(n,"checkpoints.json"),disabled:!1};return!gl(Cn(r,"HEAD"))&&!gF(t)?(o.disabled=!0,o):(Hm(n,{recursive:!0}),gl(Cn(r,"HEAD"))||(Hm(r,{recursive:!0}),uF("git",["init","--quiet","--initial-branch=howtofix"],{env:{...process.env,GIT_DIR:r},stdio:["ignore","ignore","pipe"]})),yF(t,r),o)}function yF(e,t){let n=Cn(e,".git","info","exclude");try{if(!dF(n).isFile())return;Hm(Cn(t,"info"),{recursive:!0}),cF(n,Cn(t,"info","exclude"))}catch{}}function hl(e){try{let t=JSON.parse(lF(e.metaFile,"utf8"));if(t?.version===1&&t.sessions)return t}catch{}return{version:1,sessions:{}}}function fv(e,t){Hm(cv(e.metaFile),{recursive:!0}),Ze(e.metaFile,`${JSON.stringify(t,null,1)}
88
- `)}function yl(e,t){return e.disabled?[]:[...hl(e).sessions[t]??[]].sort((n,r)=>n.at-r.at)}async function gv(e,t,n){if(e.disabled)return null;let r;try{await un(e,["add","-A","--ignore-errors","--"]),r=await un(e,["write-tree"])}catch{return null}let s=yl(e,t).find(M=>M.tree===r),a=Date.now(),p=`${a.toString(36)}-${pv("sha1").update(`${r}:${a}`).digest("hex").slice(0,6)}`,c=s?.commit;if(!c){let M=["howtofix checkpoint",`session ${t}`,`created ${new Date(a).toISOString()}`,`prompt ${n.slice(0,200)}`].join(`
89
- `);c=await un(e,["commit-tree",r,"-m",M]),await un(e,["update-ref",`${xl}/${p}`,c])}let h={id:p,tree:r,commit:c,prompt:n,at:a},$=hl(e),T=[...$.sessions[t]??[],h];for(let M of T.slice(0,Math.max(0,T.length-uv)))try{await un(e,["update-ref","-d",`${xl}/${M.id}`])}catch{}return $.sessions[t]=T.slice(-uv),fv(e,$),h}async function xv(e,t){let n=[];if(e.disabled)return{ok:!1,output:"checkpoints are off: this directory is not a git repository",removed:n};try{await un(e,["read-tree","--reset","-u",t.tree])}catch(r){return{ok:!1,output:r instanceof Error?r.message:String(r),removed:n}}try{let r=await un(e,["clean","-fd"]);for(let o of r.split(`
90
- `)){let s=/^Removing\s+(.+)$/.exec(o.trim());s?.[1]&&n.push(s[1])}}catch{}return{ok:!0,output:`restored ${t.prompt||"the checkpoint"}`,removed:n}}async function hv(e,t){if(e.disabled)return[];try{await un(e,["add","-A","--ignore-errors","--"]);let n=await un(e,["write-tree"]);return n===t.tree?[]:(await un(e,["diff-tree","-r","--name-status","--no-commit-id",t.tree,n])).split(`
91
- `).filter(Boolean).map(o=>{let[s,...a]=o.split(" ");return`${s?.[0]??"?"} ${a.at(-1)??""}`})}catch{return[]}}async function yv(e,t){if(e.disabled)return;let n=hl(e);for(let r of n.sessions[t]??[])try{await un(e,["update-ref","-d",`${xl}/${r.id}`])}catch{}delete n.sessions[t],fv(e,n)}var fF,xl,uv,xF,bv=m(()=>{Gn();Wn();fF=Cn(Xe,"rewind"),xl="refs/howtofix",uv=100;xF=pF(mF)});function wl(e=90){let t=Math.floor(Date.now()/e)%bl.length;return bl[t]??bl[0]}function qs(e,t){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,Math.max(1,t-1))}\u2026`:n}function Ye(e,t){if(e&&typeof e=="object"){let n=e[t];if(typeof n=="string"&&n.length>0)return n;if(typeof n=="number")return String(n)}}function bF(e,t=160){if(!e||typeof e!="object")return"";try{let n=JSON.stringify(e);return n&&n!=="{}"?qs(n,t):""}catch{return""}}function IF(e,t){switch(e){case"read":{let n=Ye(t,"path")??"",r=[Ye(t,"offset"),Ye(t,"limit")].filter(Boolean);return r.length>0?`${n} ${r.length===1?`offset=${r[0]}`:`offset=${r[0]}, limit=${r[1]}`}`:n}case"edit":case"write":return Ye(t,"path")??"";case"bash":case"powershell":return Ye(t,"command")??"";case"grep":{let n=Ye(t,"pattern")??"",r=Ye(t,"path");return r?`${n} in ${r}`:n}case"find":case"glob":{let n=Ye(t,"pattern")??Ye(t,"glob")??"",r=Ye(t,"path");return r?`${n} in ${r}`:n}case"ls":return Ye(t,"path")??".";case"task":return Ye(t,"agent")??"task";case"ask":return Ye(t,"question")??"";case"think":return"private";case"todo":{let n=Ye(t,"op")??"view",r=Ye(t,"task"),o=t?.items;return n==="init"&&Array.isArray(o)?`init ${o.length} task${o.length===1?"":"s"}`:r?`${n} ${r}`:n}case"context":{let n=Ye(t,"op")??"list",r=Ye(t,"key");return r?`${n} ${r}`:n}case"workflow":{let n=Ye(t,"path");if(n)return n;let r=Ye(t,"code")??"",o=/export\s+const\s+meta\s*=\s*\{[\s\S]*?name\s*:\s*["'`]([^"'`]+)/.exec(r)?.[1];if(o)return o;let s=r.trim().split(`
92
- `)[0]??"";return s.length>40?`${s.slice(0,40)}\u2026`:s}default:return bF(t)}}function vo(e,t,n=100){let r=e.charAt(0).toUpperCase()+e.slice(1),o=qs(IF(e,t),n);return o?`${Iv} ${r}(${o})`:`${Iv} ${r}`}function $F(e){let t=0,n=0;for(let r of e.split(`
93
- `))r.startsWith("+")&&!r.startsWith("+++")?t+=1:r.startsWith("-")&&!r.startsWith("---")&&(n+=1);return{additions:t,removals:n}}function kl(e){let t=e?.content;return typeof t=="string"?t:Array.isArray(t)?t.map(n=>n&&typeof n=="object"&&n.type==="text"?String(n.text??""):"").join(""):""}function _s(e){let t=e?.details;return t&&typeof t=="object"?t:{}}function Tl(e){let t=e?.structuredContent;return t&&typeof t=="object"?t:{}}function $v(e){let t=e.exit_code;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function wF(e){return e.trim().split(`
94
- `).find(t=>t.trim())??""}function kF(e,t){let n=typeof e.output=="string"?e.output:t.replace(/\n*Command exited with code \d+\s*$/,""),r=Jm(n);return r>0?` (${r} line${r===1?"":"s"})`:""}function Jm(e){let t=e.trim();return t?t.split(`
95
- `).length:0}function Ym(e,t,n){let r=kl(t),o=_s(t),s=Tl(t);if(n){let a=$v(s);if(a!==void 0&&(e==="bash"||e==="powershell"))return`exit ${a}`;let p=r.trim().split(`
96
- `).find(c=>c.trim());return qs(p??"failed",120)}switch(e){case"read":{let a=o.truncation,p=Jm(r.replace(/\n*\[[^\]]*\]\s*$/,"")),c=p===0?"empty":`${p} line${p===1?"":"s"}`;return a?.truncated?`${c} (truncated from ${a.totalLines??"?"})`:c}case"edit":{let a=typeof o.diff=="string"?o.diff:"";if(!a)return"applied";let{additions:p,removals:c}=$F(a);return`+${p} / -${c}`}case"write":{let a=Jm(r);return a>0?`written (${a} lines)`:"written"}case"bash":case"powershell":{let a=$v(s);if(a===void 0)return r.trim()?qs(wF(r),120):"done";let p=kF(s,r);return a===0?`exit 0${p}`:`exit ${a}`}case"grep":{let a=Jm(r);return a===0?"no matches":`${a} match${a===1?"":"es"}`}case"todo":{let a=o.todos??[];if(!Array.isArray(a)||a.length===0)return"list cleared";let p=a.filter(h=>h.status==="completed").length,c=a.filter(h=>h.status==="pending"||h.status==="in_progress").length;return`${p}/${a.length} done, ${c} open`}case"context":{let a=o.notes,p=a?Object.keys(a).length:0;return p===0?"no notes":`${p} note${p===1?"":"s"} held`}case"workflow":{let a=typeof o.agents=="number"?o.agents:0,p=typeof o.outputTokens=="number"?o.outputTokens:0,c=Array.isArray(o.steps)?o.steps.filter($=>$.status==="failed").length:0;if(typeof o.error=="string")return`failed after ${a} agent(s)`;let h=typeof o.startedAt=="number"&&typeof o.endedAt=="number"?`, ${cr(o.endedAt-o.startedAt)}`:"";return`${a} agent(s), ${p} tokens${h}${c>0?`, ${c} failed`:""}`}default:{let a=r.trim().split(`
97
- `).find(p=>p.trim());return a?qs(a,120):"done"}}}function wv(e,t){let n=_s(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
98
- `).filter(r=>r.length>0).slice(0,12);if(e==="bash"||e==="powershell"){let r=Tl(t);return(typeof r.output=="string"?r.output:kl(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
99
- `).filter(a=>a.trim()).slice(-4)}if(e==="todo"){let r=n.todos??[],o={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"};return r.slice(0,6).map(s=>`${o[s.status??"pending"]??"[ ]"} ${s.content??""}`)}return e==="workflow"?(n.steps??[]).map(s=>{let a=s.status==="running"?"\u25B8":s.status==="failed"?"\xD7":"\u2713",p=s.phase?`${s.phase} \xB7 `:"";return`${a} ${p}${s.label??"agent"}`}).slice(-6):[]}function kv(e,t){let n=_s(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
100
- `).filter(p=>p.length>0).slice(0,Vm);let r=Tl(t),s=(typeof r.output=="string"?r.output:kl(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
101
- `),a=s.slice(0,Vm);return s.length>Vm&&a.push(`\u2026 ${s.length-Vm} more line(s)`),a}var Iv,Il,$l,bl,Vm,El=m(()=>{Ds();Iv="\u25CF",Il="\u2514",$l="\u22EF",bl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];Vm=400});import{Markdown as TF,wrapTextWithAnsi as EF}from"@earendil-works/pi-tui";function Tv(e){return typeof e=="string"?e:e.map(t=>t.type==="text"?t.text:t.type==="thinking"?"":t.type==="image"?"[image]":(t.type==="toolCall","")).filter(Boolean).join("")}function vF(e){return e.content.filter(t=>t.type==="toolCall").map(t=>({name:t.name,arguments:t.arguments}))}function Zm(e){let t=[];for(let n of e)if(n.role==="user"){let r=Tv(n.content).trim();if(!r)continue;t.push({id:`u-${n.timestamp}`,kind:"user",title:"you",body:r})}else if(n.role==="assistant"){let r=Tv(n.content).trim(),o=vF(n);r?t.push({id:`a-${n.timestamp}`,kind:n.stopReason==="error"?"error":"assistant",title:n.errorMessage?"failed":"fix",body:n.errorMessage?`${n.errorMessage}
102
-
103
- ${r}`:r}):n.errorMessage&&t.push({id:`e-${n.timestamp}`,kind:"error",title:"failed",body:n.errorMessage}),o.forEach((s,a)=>{t.push({id:`c-${n.timestamp}-${a}`,kind:"tool",title:"tool",body:vo(s.name,s.arguments)})})}else n.role==="toolResult"&&t.push({id:`r-${n.toolCallId}`,kind:"result",title:n.toolName,body:Ym(n.toolName,{content:n.content},n.isError)});return t}function Ev(e,t,n){return EF(e,Math.max(8,t)).map(r=>X(r,n))}function SF(e){let t=e.body||" ",n=Us.get(e.id);if(n)return n.text!==t&&(n.component.setText(t),n.text=t),n.component;let r=new TF(t,0,0,CE);return Us.set(e.id,{text:t,component:r}),r}var Us,vl,Xm,vv=m(()=>{fl();Ls();El();Us=new Map;vl=class{constructor(t){this.item=t}item;invalidate(){}shade(t){let n=Date.now()-(this.item.born??0);return Ns(D.dim,t,sv(n,ll))}render(t){let n=this.item.body;if(this.item.kind==="user")return["",...Ev(`> ${n}`,t,this.shade(D.user))];if(this.item.kind==="tool")return[X(n,this.shade(D.tool))];if(this.item.kind==="result"){let o=n.startsWith("exit ")&&n!=="exit 0";if(this.item.panel)return["",...this.item.panel(t),...n?[X(` ${Il} ${n}`,o?D.bad:D.mute)]:[]];let s=[];this.item.call&&s.push(X(this.item.call,this.shade(D.tool)));let a=` ${Il} ${n}`;if(s.push(X(a,o?D.bad:this.shade(D.mute))),this.item.expanded===!0&&(this.item.full?.length??0)>0){let $=X(` ${this.item.full.length} line(s) \xB7 ctrl+e to collapse`,D.dim);s.push(X(` ${$l}`,D.dim));for(let T of this.item.full){let M=T.startsWith("+")?D.tool:T.startsWith("-")?D.bad:D.dim;s.push(X(` ${T}`,M))}return s.push($),s}let c=this.item.detail??[],h=dl(Date.now()-(this.item.born??0),c.length);for(let $ of c.slice(0,h)){let T=$.startsWith("+")?D.tool:$.startsWith("-")?D.bad:D.dim;s.push(X(` ${$}`,this.shade(T)))}return(this.item.full?.length??0)>0&&s.push(X(` ${$l} ${this.item.full.length} line(s) \xB7 ctrl+e to expand`,D.dim)),s}if(this.item.kind==="error"||this.item.kind==="note"){let o=this.item.kind==="error"?D.bad:D.mute;return["",...Ev(n,t,this.shade(o))]}return["",...SF(this.item).render(Math.max(8,t-2))]}},Xm=class{items=[];status="";scrollOffset=0;viewportHeight=0;invalidate(){}entering(){let t=Date.now();return this.items.some(n=>{if(n.born===void 0)return!1;let r=t-n.born;return iv(r,ll)?!0:(n.detail?.length??0)>dl(r,n.detail?.length??0)})}render(t){if(Us.size>this.items.length){let o=new Set(this.items.map(s=>s.id));for(let s of Us.keys())o.has(s)||Us.delete(s)}let n=[];for(let o of this.items)o.born??=Date.now(),n.push(...new vl(o).render(t));this.status&&n.push(X(this.status,D.mute));let r=this.viewportHeight;if(r>0&&n.length>r){let o=n.length-r,s=Math.max(0,Math.min(this.scrollOffset,o));return this.scrollOffset=s,n.slice(o-s,o-s+r)}return this.scrollOffset=0,n}}});function pt(e,t){return`${t}${e}${Pv}`}function AF(e){return e>=85?PF:e>=70?Rv:Av}function Ov(e,t,n,r){let o=pt(`[${e}]`,Sl),s=pt(`${RF} ${t}`,Ln),a=pt(n,Rv),p=r?` ${pt("git:(",Sv)}${pt(r.replace(/^git:\(/,"").replace(/\)$/,""),Sl)}${pt(")",Sv)}`:"";return`${o}${pt(" \u2502 ",Ln)}${s}${pt(" \u2502 ",Ln)}${a}${p}`}function Mv(e,t,n){if(!t)return e;let r=n===void 0?t:`${t} ${pt(jE(n),Ln)}`;return`${pt(r,Sl)} ${pt("\u2502",Ln)} ${e}`}function Cv(e,t){let n=Number.isFinite(e)?Math.min(100,Math.max(0,e)):0,r=Math.round(n/10),o=AF(n),s=`${o}${"\u2588".repeat(r)}${Ln}${"\u2591".repeat(10-r)}${Pv}`,a=pt(`${Math.round(n)}%`,o),p=t?`${pt(" \u2502 ",Ln)}${t}`:"";return`${pt("Context",Ln)} ${s} ${a}${p}`}function Lv(e,t,n){let r=n===null?"":pt(` ${n}ms`,Ln);return`${pt("Cubence",Ln)} ${pt(t?`${t} ${e}`:e,Av)}${r}`}var Pv,Ln,PF,Av,Rv,Sv,Sl,RF,Pl=m(()=>{Ds();Pv="\x1B[0m",Ln="\x1B[2m",PF="\x1B[31m",Av="\x1B[32m",Rv="\x1B[33m",Sv="\x1B[35m",Sl="\x1B[36m";RF="\u2726"});import{mkdirSync as OF,readFileSync as jv}from"node:fs";import{homedir as MF}from"node:os";import{dirname as CF,join as LF}from"node:path";function Fv(e){return e/1e6}function jF(){try{let e=JSON.parse(jv(LF(MF(),".claude","settings.json"),"utf8")),t=e.env?.ANTHROPIC_AUTH_TOKEN,n=e.env?.ANTHROPIC_BASE_URL;return!t||!n?void 0:{token:t,baseUrl:n.replace(/\/$/,"")}}catch{return}}function DF(){try{let e=JSON.parse(jv(Al,"utf8"));return!e.data||typeof e.cachedAt!="number"?void 0:{data:e.data,cachedAt:e.cachedAt}}catch{return}}function Ks(e){let t=`$${e.balanceDollar.toFixed(2)}`,n=e.hasSubscription?`5h $${e.fiveHourUsedDollar.toFixed(2)}/$${e.fiveHourLimitDollar.toFixed(2)} bal`:"";return Lv(t,n,e.latencyMs)}async function Dv(){let e=DF();if(e&&Date.now()-e.cachedAt<FF)return Ks(e.data);let t=jF();if(!t)return e?Ks(e.data):void 0;let n=Date.now();try{let r=await fetch(`${t.baseUrl}/v1/user/subscription-info`,{headers:{authorization:`Bearer ${t.token}`,accept:"application/json"},signal:AbortSignal.timeout(3e3)});if(!r.ok)return e?Ks(e.data):void 0;let o=await r.json(),s=o.subscription_window?.five_hour?.limit??0,a={balanceDollar:o.normal_balance?.amount_dollar??0,hasSubscription:s>0,fiveHourUsedDollar:Fv(o.subscription_window?.five_hour?.used??0),fiveHourLimitDollar:Fv(s),latencyMs:Date.now()-n};return OF(CF(Al),{recursive:!0}),Ze(Al,JSON.stringify({data:a,cachedAt:Date.now()})),Ks(a)}catch{return e?Ks(e.data):void 0}}var Al,FF,Nv=m(()=>{Gn();Pl();Wn();Al=bu,FF=18e4});function qv(){return{}}function _v(e,t,n,r=Date.now()){let o={...e};return t==="run"?(n===void 0||n===""?delete o.run:o.run={label:n,since:e.run?.since??r},o):(n===void 0||n===""?delete o[t]:o[t]=n,o)}function NF(e){let t=Math.max(0,Math.round(e/1e3)),n=Math.floor(t/60);return n>0?`${n}m ${String(t%60).padStart(2,"0")}s`:`${t}s`}function Uv(e,t,n=Date.now()){return e.prompt?`? ${e.prompt}`:e.note?`* ${e.note}`:e.run?`${t} ${e.run.label} \xB7 ${NF(n-e.run.since)}`:e.tally?e.tally:""}var Kv=m(()=>{});import{spawn as qF}from"node:child_process";function _F(e){switch(e){case"darwin":return{command:"open",args:[]};case"win32":return{command:"cmd",args:["/c","start",""]};case"linux":return{command:"xdg-open",args:[]};default:return}}async function Gv(e,t=process.platform){let n=_F(t);return n?new Promise(r=>{try{let o=qF(n.command,[...n.args,e],{detached:!0,stdio:"ignore"});o.once("error",()=>r(!1)),o.once("spawn",()=>{o.unref(),r(!0)})}catch{r(!1)}}):!1}var Wv=m(()=>{});import{mkdirSync as UF}from"node:fs";import{join as KF}from"node:path";import{matchesKey as Qm}from"@earendil-works/pi-tui";function Bv(){return{selectedPhase:0,filter:"all",paused:!1,expanded:!1,follow:!0}}function Hv(e){if(Qm(e,"up"))return"up";if(Qm(e,"down"))return"down";if(Qm(e,"enter"))return"enter";if(Qm(e,"escape"))return"escape";if(e==="f")return"filter";if(e==="p")return"pause";if(e==="x")return"stop";if(e==="s")return"save"}function zv(e,t,n){if(t.length===0)return e;let r=Math.max(0,Math.min(t.length-1,e.selectedPhase+n));return{...e,selectedPhase:r,follow:!1}}function GF(e){let t=Rl.indexOf(e);return Rl[(t+1)%Rl.length]}function Vv(e,t,n){switch(t){case"up":return zv(e,n,-1);case"down":return zv(e,n,1);case"enter":return{...e,expanded:!e.expanded};case"filter":return{...e,filter:GF(e.filter)};case"pause":return{...e,paused:!e.paused};default:return e}}function Jv(e,t){switch(t){case"running":return e.filter(n=>n.status==="running");case"failed":return e.filter(n=>n.status==="failed");case"done":return e.filter(n=>n.status!=="running");default:return[...e]}}function Yv(e){return e==="all"?"":` \xB7 ${e}`}function Zv(e,t,n=!0){if(!n)return"Ctrl+F panel keys \xB7 Esc unpin";let r=["\u2191/\u2193 phase",e.expanded?"Enter collapse":"Enter drill in"];return r.push(e.expanded?"Esc back out":"Esc unpin"),r.push(`f filter${e.filter==="all"?"":` (${e.filter})`}`),t?(r.push(e.paused?"p resume":"p pause"),r.push("x stop")):e.paused&&r.push("p resume"),r.push("s save script"),e.paused&&r.unshift("paused"),r.join(" \xB7 ")}function WF(e){let t=e.trim();if(!(!t||t.length>64)&&!(t==="."||t==="..")&&/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(t)&&!t.includes(".."))return t}function Qv(e,t){if(!e)return{ok:!1,reason:"this run was started from a file, so it is already saved where you pointed the tool"};let n=WF(e.name);if(!n)return{ok:!1,reason:`"${e.name}" is not a usable filename, so the script was not written`};let r=KF(t,`${n}.js`);try{UF(t,{recursive:!0}),Ze(r,e.code)}catch(o){return{ok:!1,reason:o instanceof Error?o.message:String(o)}}return{ok:!0,path:r}}var Rl,Xv,eS=m(()=>{Wn();Rl=["all","running","failed","done"];Xv="ctrl+f"});function tS(e){let t=()=>{};return{select:(n,r)=>e.select(n,r),confirm:(n,r)=>e.confirm(n,r),input:n=>e.input(n),notify:(n,r)=>e.notify(n,r),onTerminalInput:()=>t,setStatus:(n,r)=>e.setStatus(n,r),setWorkingMessage:t,setWorkingVisible:t,setWorkingIndicator:t,setHiddenThinkingLabel:t,setWidget:(n,r,o)=>{r!==void 0&&!Array.isArray(r)||e.setWidget?.(n,r,o?.placement)},setFooter:t,setHeader:t,setTitle:t,custom:async()=>{throw new Error("this screen has no custom component host; use the text commands instead")},pasteToEditor:t,setEditorText:t,getEditorText:()=>"",editor:async()=>{},addAutocompleteProvider:t,setEditorComponent:t,getEditorComponent:()=>{},theme:void 0,getAllThemes:()=>[],getTheme:()=>{},setTheme:()=>({success:!1,error:"themes are not available in the workbench"}),getToolsExpanded:()=>!1,setToolsExpanded:t}}var nS=m(()=>{});var xS={};Lt(xS,{Dock:()=>ru,Hud:()=>tu,PinnedBlock:()=>nu,approvalDetail:()=>fS,orderModelsForDefault:()=>lS,pickerPanel:()=>dS,runWorkbench:()=>xj,workflowPanel:()=>gS,workflowPanelFromRun:()=>Ws,workflowRunOf:()=>ou});import{execFile as zF}from"node:child_process";import{promisify as BF}from"node:util";import{existsSync as HF,mkdirSync as VF,readFileSync as JF}from"node:fs";import{basename as YF,join as rS,resolve as XF}from"node:path";import{copyToClipboard as ZF,SessionManager as QF}from"@earendil-works/pi-coding-agent";import{CombinedAutocompleteProvider as oS,Container as ej,Editor as tj,matchesKey as Ot,ProcessTerminal as nj,ScrollView as rj,KeybindingsManager as mS,setKeybindings as uS,TUI_KEYBINDINGS as pS,SelectList as oj,TuiAltScreen as sj,truncateToWidth as Gs,VStack as ij,visibleWidth as eu,wrapTextWithAnsi as aj,getNativeClipboard as mj}from"@earendil-works/pi-tui";import{TreeSelectorComponent as uj,initTheme as pj}from"@earendil-works/pi-coding-agent";import{getKeybindings as sS}from"@earendil-works/pi-tui";function cj(e){if(typeof e!="object"||e===null)return;let t=e[cS];return typeof t=="function"?t.call(e):void 0}async function aS(e){try{let{stdout:t}=await Cl("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}),n=t.trim();if(!n||n==="HEAD")return"";let{stdout:r}=await Cl("git",["-C",e,"status","--porcelain"],{encoding:"utf8"});return`git:(${n}${r.trim()?"*":""})`}catch{return null}}function lS(e){let t=n=>{if(dj.test(n))return 100;let r=lj.findIndex(o=>n.toLowerCase().includes(o));return r===-1?50:r};return e.map((n,r)=>({id:n,index:r})).sort((n,r)=>t(n.id)-t(r.id)||n.index-r.index).map(n=>n.id)}function dS(e,t,n,r=!1,o=[]){let s=Math.max(24,n),a=s-4,p=(Z,ae)=>{let xe=eu(Z)>a?Gs(Z,a,"\u2026"):Z,ke=`${xe}${" ".repeat(Math.max(0,a-eu(xe)))}`;return`\u2502 ${ae?ae(ke):ke} \u2502`},c="\u2500".repeat(s-2),h=[p(` ${t}`),...e.render(a).map(Z=>p(Z))],$=o.flatMap(Z=>Z===""?[""]:aj(Z,a)),T=$.length>0?[p(""),...$.map(Z=>p(Z,ae=>X(ae,D.mute)))]:[];if(!r)return["",`\u250C${c}\u2510`,...h,...T,`\u2514${c}\u2518`];let M=av(D.line,D.warn,Date.now(),1400),F=X("\u2502",M),O=(Z,ae)=>X(`${Z}${c}${ae}`,M),q=[...h,...T].map(Z=>`${F}${Z.slice(1,-1)}${F}`);return["",O("\u250C","\u2510"),...q,O("\u2514","\u2518")]}function fS(e,t){let n=t.split(`
104
- `).filter(Boolean),r=n.filter(a=>a.startsWith("Reason:")),o=n.filter(a=>!a.startsWith("Reason:")&&!a.startsWith("Allow tool:"));return[...e.endsWith(" wants to run")?[]:[e],...r,...o.length>0?["",...o]:[]]}function So(e){let t=e.getContextUsage();if(t?.percent!==null&&t?.percent!==void 0)return Math.min(100,Math.round(t.percent));let n=e.model,o=[...e.state.messages].reverse().find(s=>s.role==="assistant")?.usage?.totalTokens;return!n||typeof o!="number"||!Number.isFinite(o)||n.contextWindow<=0?0:Math.min(100,Math.round(o/n.contextWindow*100))}function Ml(e){let n=[["init","write project notes to AGENTS.md"],["model","choose a model"],["providers","list providers"],["thinking","set thinking level"],["approval","set what needs approval"],["connect","connect a howtofix.id account"],["login","save a provider API key"],["logout","remove a provider"],["new","start a new session"],["resume","resume another session"],["compact","compact the session"],["name","name this session"],["stats","session tokens and cost"],["diff","show the working tree diff"],["commit","stage everything and commit"],["undo","undo the last commit"],["rewind","go back to an earlier message (Esc Esc)"],["review","ask the agent to review the diff"],["tools","list active tools"],["export","write the transcript to a markdown file"],["copy","copy the last answer to the clipboard"],["agents","show spawned agents"],["goal","set or view this session's goal"],["plan","toggle plan mode (design before editing)"],["workflow","show or clear the pinned workflow panel"],["session","show the current model"],["help","list commands"],["quit","quit"]].map(([r,o])=>({name:r,description:o}));for(let r of e.promptTemplates)n.push({name:r.name,description:r.description});for(let r of e.extensionRunner.getRegisteredCommands())n.push({name:r.invocationName,description:r.description});return n}function ou(e,t){if(e!=="workflow")return;let n=_s(t);if(!(typeof n.name!="string"||!Array.isArray(n.steps)))return n}function gS(e,t){let n=ou(e,t);return n?Ws(n):void 0}function Ws(e,t,n=!1){return r=>GE(e,[],r,t?.selectedPhase,t?fj(e,t,n):void 0)}function fj(e,t,n){return{filter:r=>Jv(r,t.filter),footerText:Zv(t,e.endedAt===void 0,n),filterLabel:Yv(t.filter),drill:t.expanded}}function gj(){let e=new mS(pS,{"tui.altScreen.pageUp":[],"tui.altScreen.pageDown":[],"tui.altScreen.halfPageUp":[],"tui.altScreen.halfPageDown":[],"tui.altScreen.top":[],"tui.altScreen.bottom":[]});uS(e)}async function xj(e){let t=new nj,n=new sj(t,!0,void 0,{mouse:!0}),r=new Xm,o=new tu(e.cwd,e.modelLabel),s=d=>{let x=Date.now();(async()=>{try{let b=cn(),y=await gv(b,E.getSessionStats().sessionId,d);y&&x>=_t&&(Po=y,_t=x)}catch{}})()},a=(d=!1)=>{!d&&!o.live||aS(e.cwd).then(x=>{x!==null&&(o.git=x,U())})},p=new tj(n,iS,{paddingX:1}),c=new Map,h=(d,x)=>{x===void 0?c.delete(d):typeof x=="function"?c.set(d,x):c.set(d,()=>x)},$=()=>Math.max(20,t.columns),T,M=0,F=Bv(),O,q=null,Z=!1,ae,xe=!1,ke,We=()=>{!O||!Z||h("workflow",d=>Ws(O,F,xe)(d))},Nt=()=>{O&&(ae=O.name),Z=!1,xe=!1,h("workflow",void 0)};zE({onStop:d=>{q=d},isPaused:()=>F.paused});let he=d=>{if(ae===d.name)return;T=d;let x=d.endedAt??Date.now();M=Math.max(M,x+Gm),O=d,Z=!0,h("workflow",b=>Ws(d,F,xe)(b))},te=new ru(p,o),E=e.session,ze=!1,qt,cn=()=>qt??=dv(e.cwd),Po,Qt="",_t=0,qe,Mt=()=>{let d=new Set(["session_info","usage","label","context_edit","custom","model_change","thinking_level_change"]),x=[],b=y=>{for(let w of y)d.has(w.entry.type)||x.push(w.entry.id),b(w.children)};return b(E.sessionManager.getTree()),x},Ao=!1,yS=()=>{if(Ao)return;Ao=!0;let d=sS().getResolvedBindings();uS(new mS(pS,{...d,"app.tree.foldOrUp":["alt+left","ctrl+left"],"app.tree.unfoldOrDown":["alt+right","ctrl+right"],"app.tree.editLabel":["shift+l"],"app.tree.toggleLabelTimestamp":["shift+t"],"app.message.copy":["ctrl+x"],"app.tree.filter.default":["alt+0"],"app.tree.filter.noTools":["alt+1"],"app.tree.filter.userOnly":["alt+2"],"app.tree.filter.labeledOnly":["alt+3"],"app.tree.filter.all":["alt+4"],"app.tree.filter.cycleForward":["alt+f"],"app.tree.filter.cycleBackward":["alt+shift+f"]}))},Ll=!1,bS=()=>{Ll||(Ll=!0,pj())},Fl=()=>{let d=E.sessionManager.getTree();if(d.length===0){P("rewind","nothing to rewind to yet");return}cn().disabled&&P("rewind","conversation rewind only \u2014 this directory is not a git repository"),bS(),yS();let x=Math.max(8,Math.floor(t.rows*.6)),b=new uj(d,E.sessionManager.getLeafId(),x*2,y=>{su(),IS(y)},()=>su());if(!b.getTreeList().getSelectedNode()){P("rewind","nothing to rewind to yet");return}qe=b,qe.focused=!0,h("rewind",y=>qe?.render(y)??[]),U()},su=()=>{qe=void 0,h("rewind",void 0),U()},IS=async d=>{let x=cn(),y=E.getUserMessagesForForking().findIndex(I=>I.entryId===d),w=y>=0?yl(x,E.getSessionStats().sessionId)[y]:void 0,g=w?(await hv(x,w)).length:0;if(g===0){await jl(d,void 0,"conversation");return}Ct(`Rewind to this point? ${g} file(s) differ`,[{value:"both",label:"conversation and code",description:`drop the messages after this point and restore ${g} file(s)`},{value:"conversation",label:"conversation only",description:"drop the messages after this point, leave the files alone"},{value:"code",label:"code only",description:`restore ${g} file(s), keep the conversation`}],I=>{jl(d,w,I)})},jl=async(d,x,b)=>{let y=[];if((b==="both"||b==="conversation")&&!E.isStreaming)try{let w=await E.navigateTree(d);if(w.cancelled){P("rewind","conversation rewind cancelled");return}y.push("conversation rewound"),r.items=Zm(E.state.messages),w.editorText&&(p.setText(w.editorText),y.push("prompt restored to the editor"))}catch(w){ln(`conversation rewind failed: ${w instanceof Error?w.message:String(w)}`);return}if((b==="both"||b==="code")&&x){let w=await xv(cn(),x);if(!w.ok){ln(`code rewind failed: ${w.output}`);return}y.push(w.output),w.removed.length>0&&y.push(`removed ${w.removed.length} file(s)`),a()}P("rewind",y.join(`
105
- `)||"nothing to do"),U()};a(!0),s("session start"),e.note&&r.items.push({id:"note",kind:"note",title:"note",body:e.note}),r.items.push(...Zm(E.state.messages)),o.percent=So(E),o.abandonAnimations(),o.thinking=E.thinkingLevel,p.setAutocompleteProvider(new oS(Ml(E),e.cwd)),Dv().then(d=>{d&&(o.cubence=d,n.requestRender())});let Fn=null,Dl="",Nl=!1,ql=[],Ro,iu=()=>{},U=()=>{iu(),n.requestRender()},fe=(d,x)=>{o.activity=_v(o.activity,d,x)},zs=new Map,au=new Set,$S=()=>[...zs].map(([d,x])=>`${au.has(d)?"!":"\u2713"} ${d} \xD7${x}`).join(" | "),wS=()=>{let d=$S();fe("tally",d||void 0)},Ct=(d,x,b,y,w=!1,g=[])=>{let I=new oj(x,8,iS.selectList);I.onSelect=R=>{Fn=null,Ro=void 0,b(R.value)},I.onCancel=()=>{Fn=null,Ro=void 0,y?.(),U()},Ro=()=>I.onCancel?.(),Dl=d,Nl=w,ql=g,Fn=I,U()},P=(d,x)=>{r.items.push({id:`cmd-${Date.now()}-${r.items.length}`,kind:"note",title:d,body:x}),fe("tally",void 0),U()},ln=d=>{r.items.push({id:`err-${Date.now()}-${r.items.length}`,kind:"error",title:"failed",body:d}),fe("tally",void 0),U()};Uu((d,x)=>{let{promise:b,resolve:y}=Promise.withResolvers();return Ct(d,[{value:"allow",label:"allow"},{value:"deny",label:"deny"}],w=>y(w==="allow"),()=>y(!1),!0,fS(d,x)),b});let mu=new Map,_l=d=>{let x=tS({select:(b,y)=>{let{promise:w,resolve:g}=Promise.withResolvers();return Ct(b,y.map(I=>({value:I,label:I})),g,()=>g(void 0)),w},confirm:(b,y)=>{let{promise:w,resolve:g}=Promise.withResolvers();return Ct(`${b} \u2014 ${y}`,[{value:"yes",label:"yes"},{value:"no",label:"no"}],I=>g(I==="yes"),()=>g(!1)),w},input:b=>{let{promise:y,resolve:w}=Promise.withResolvers();return fe("prompt",b),U(),pn=g=>{pn=void 0,fe("prompt",void 0),w(g),U()},y},notify:(b,y)=>{y==="error"?ln(b):P("mcp",b)},setStatus:(b,y)=>{y===void 0?mu.delete(b):mu.set(b,y),fe("note",[...mu.values()].join(" | ")||void 0),U()},setWidget:(b,y)=>{h(b,y),U()}});d.bindExtensions({uiContext:x,mode:"print",onError:b=>ln(`${b.event}: ${b.error}`)}).catch(b=>ln(b instanceof Error?b.message:String(b)))};_l(E);let jr=new ej,kS={invalidate:()=>r.invalidate(),render:d=>{let x=jr.render(Math.max(20,d)).length;return r.viewportHeight=Math.max(1,Math.max(8,t.rows)-x),r.render(d)},handleMouse:d=>{let x=d.type==="wheel"?d.wheelDelta??0:0;if(x!==0)return r.scrollOffset=Math.max(0,r.scrollOffset-x*3),U(),{handled:!0}}},TS=new rj(kS,{follow:"none",overscroll:"contain"}),Bs=new ij([{component:TS,grow:1,shrink:1},{component:jr,grow:0,shrink:0,basis:"auto"}]),Ul="",ES=()=>`${Fn?"picker":"dock"}|${[...c.keys()].join(",")}`;iu=()=>{let d=ES();if(d===Ul)return;Ul=d,jr.clear();for(let b of c.values())jr.addChild(new nu(b));let x=Fn;if(x){let b=Dl,y=Nl,w=ql;jr.addChild({render:g=>dS(x,b,g,y,w),invalidate:()=>{}})}else jr.addChild(te);Bs.invalidate()},iu();let Kl={focused:!1,invalidate(){r.invalidate(),te.invalidate(),Fn?.invalidate(),Bs.invalidate()},[cS]:()=>cj(Bs),render:d=>Bs.render(d),handleInput(d){p.handleInput(d)}};n.setLayoutRoot(Kl),n.setFocus(Kl);let ht=0,Kn="",uu=!1,Oo=!1,Dr="",Gl=0,pu=!1,cu=Date.now(),Hs=!1,Vs=new Map,Wl=d=>{if(d.type==="agent_start"||d.type==="turn_start")d.type==="agent_start"&&ud(),o.live||o.beginRun(),Kn="",Oo=!1,pu=!1,cu=Date.now(),Dr="";else if(d.type==="message_update"&&d.assistantMessageEvent.type==="thinking_delta"){Oo=!0,Dr===""&&(Gl=Date.now()),Dr+=d.assistantMessageEvent.delta;let x=`think-${ht}`,b=r.items.find(w=>w.id===x),y=Dr.split(`
81
+ ${e}`);let c=p.getSessionStats(),h=r??WL(p);return{text:KL(p),outputTokens:c.tokens.output,toolCalls:c.toolCalls,...h?{model:h}:{}}}finally{p.dispose(),await a?.remove()}}}function WL(e){return e.model?.id??e.model?.name}function HE(e){let t=()=>e??zE;return NL({name:"workflow",label:"workflow",description:"Run a JavaScript workflow that orchestrates many agents deterministically. Provide `code` (or `path`). The script starts with `export const meta = { name, description, phases }` and then uses the injected bindings: `agent(prompt, {label, phase, schema, effort, model, agentType, isolation})`, `parallel(thunks)`, `pipeline(items, ...stages)`, `phase(title)`, `log(msg)`, `args`, `budget`. `agent()` resolves null on failure and throws only when the budget or the call cap is exhausted, so null-check every result. `parallel()` takes thunks and never rejects; `pipeline()` has no barrier between items. Use it for fan-out, for builder-verifier loops that converge on a verdict, and for anything needing many agents whose order and count must be deterministic.",promptSnippet:"workflow: orchestrate many agents from one JavaScript script",parameters:zL,executionMode:"sequential",async execute(n,r,o,s,a){let p=r.path?FL(r.path,"utf8"):r.code??"";if(!p.trim())throw new Ge("provide code or path");let{meta:c,body:h}=_L(p);if(r.path){let he=jL(r.path).replace(/\.(js|mjs|cjs|ts)$/,"");if(he!==c.name)throw new Ge(`meta.name "${c.name}" must match the script filename "${he}"`)}let I=UL(h),T=Date.now(),M=[],F=0,O=0,_=(he,te)=>({name:c.name,...c.description?{description:c.description}:{},ok:he,agents:O,outputTokens:F,startedAt:T,phases:c.phases??[],steps:M,...te?{error:te}:{}}),Z=(he,te)=>{a.ui.setStatus(pl,te?void 0:UE(he)),s?.({content:[],details:_(!1)})},ae=he=>{O=he.length,F=he.reduce((te,E)=>te+E.outputTokens,0),M.splice(0,M.length,...he.map(te=>({label:te.label,phase:te.phase,agent:te.agentType,status:te.status,outputTokens:te.outputTokens,startedAt:te.startedAt,...te.toolCalls!==void 0?{toolCalls:te.toolCalls}:{},...te.model?{model:te.model}:{},...te.endedAt?{endedAt:te.endedAt}:{},...te.detail?{detail:te.detail}:{},...te.tasks?{tasks:te.tasks}:{}}))),Z({name:c.name,...c.description?{description:c.description}:{},phases:c.phases??[],steps:M,startedAt:T},!1)},xe=GL(),ke=ME({invoke:r.agent?BL(xe,r.agent):xe,budgetTotal:r.budget??null,onProgress:ae,...o?{signal:o}:{},...t()?.isPaused?{isPaused:t().isPaused}:{}}),We=new AbortController,Nt=setTimeout(()=>We.abort(),qL);o&&o.addEventListener("abort",()=>We.abort(),{once:!0}),t()?.onStop?.(()=>We.abort());try{let he=await Promise.race([I(ke.agent,ke.parallel,ke.pipeline,ke.phase,ke.log,ke.args,ke.budget),new Promise((E,ze)=>We.signal.addEventListener("abort",()=>ze(new Ge("workflow timed out or was aborted"))))]),te=Date.now();return a.ui.setStatus(pl,void 0),{content:[{type:"text",text:`${c.name}: ${O} agent call(s), ${F} output tokens in ${lr(te-T)}
82
+
83
+ ${HL(he)}`}],details:{..._(!0),endedAt:te}}}catch(he){let te=he instanceof Error?he.message:String(he);return a.ui.setStatus(pl,void 0),{content:[{type:"text",text:`${c.name} failed after ${O} agent call(s): ${te}`}],details:{..._(!1,te),endedAt:Date.now()},isError:!0}}finally{clearTimeout(Nt),t()?.onStop?.(null)}}})}function BL(e,t){return n=>e({...n,agentType:t})}function HL(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var pl,zE,qL,zL,cl=m(()=>{$o();Fs();rl();CE();qs();pl="workflow",zE=null;qL=600*1e3;zL=ie.Object({code:ie.Optional(ie.String({description:"The workflow script source"})),path:ie.Optional(ie.String({description:"Path to a workflow script, instead of code"})),agent:ie.Optional(DL(["scout","task","reviewer"],{description:"Default agent profile for calls"})),budget:ie.Optional(ie.Number({description:"Output-token ceiling for the whole run"}))})});import{Type as vt}from"@earendil-works/pi-ai";import{defineTool as VL}from"@earendil-works/pi-coding-agent";var VE,JE=m(()=>{Fs();Fs();VE=VL({name:"task",label:"task",description:"Spawn scout, architect, task, or reviewer agents. One call can carry tasks[]. Each item can set agent and effort. Agents run in the background, park when done, and can be resumed with /agents. Use architect to design an approach before a large change.",promptSnippet:"task: spawn background agents",parameters:vt.Object({agent:vt.Optional(vt.String()),effort:vt.Optional(vt.String()),task:vt.Optional(vt.String()),tasks:vt.Optional(vt.Array(vt.Object({agent:vt.Optional(vt.String()),effort:vt.Optional(vt.String()),task:vt.String()})))}),executionMode:"parallel",async execute(e,t,n,r,o){let s=t.tasks&&t.tasks.length>0?t.tasks.map(c=>({agent:c.agent??t.agent??"task",task:c.task,effort:c.effort??t.effort})):[{agent:t.agent??"task",task:t.task??"",effort:t.effort}],a=[];for(let c of s)c.task.trim()&&(a.push(await xE({...c,cwd:o?.cwd})),r?.({content:[],details:{agents:a.map(h=>({id:h.id,agent:h.agent,status:h.status}))}}));if(a.length===0)throw new Error("task or tasks is required");return await hE(n),{content:[{type:"text",text:a.map(c=>`## ${c.agent}#${c.id} ${c.status}
84
+ ${c.result??""}`).join(`
85
+
86
+ `)}],details:{agents:a.map(c=>({id:c.id,status:c.status}))}}}})});function YE(){return e=>{e.on("session_start",()=>{let t=new Set(e.getActiveTools());for(let n of JL)e.getAllTools().some(r=>r.name===n)&&t.add(n);e.setActiveTools([...t])})}}var JL,XE=m(()=>{JL=["grep","find","ls"]});var ZE={};Lt(ZE,{BUILD_ENTRY:()=>Hm,openSession:()=>oF});import{join as YL}from"node:path";import{createAgentSession as XL,createCodemodeExtension as ZL,createMcpExtension as QL,DefaultResourceLoader as eF,SessionManager as Bm,SettingsManager as tF}from"@earendil-works/pi-coding-agent";function rF(e,t){let n=e.find(o=>`${o.provider}/${o.id}`===t||o.id===t);if(n)return n;let r=t.toLowerCase();return e.find(o=>o.id.toLowerCase().includes(r)||`${o.provider}/${o.id}`.toLowerCase().includes(r))}async function oF(e){let t=tF.create(e.cwd,Xe,{projectTrusted:!0}),n=e.sessionPath?Bm.open(e.sessionPath):e.noSession?Bm.inMemory(e.cwd):e.continueSession?Bm.continueRecent(e.cwd):Bm.create(e.cwd),r=(()=>{try{let I=n.getEntries().find(T=>T.type==="custom"&&T.customType===Hm)?.data?.version;return!I||I===fn?void 0:`this session was written by HowToFix ${I}; you are running ${fn}`}catch{return}})(),o=new eF({cwd:e.cwd,agentDir:Xe,settingsManager:t,appendSystemPrompt:[Jl],extensionFactories:[oE(),Fo(),Td(),qm(),cE(),sE(),mE(),ZL(),QL(),YE()]});await o.reload();let s=await XL({cwd:e.cwd,agentDir:Xe,settingsManager:t,sessionManager:n,resourceLoader:o,excludeTools:nF().exclude,customTools:[VE,Pd,Ad,vm,Sm,WT,iE,aE,HE()],thinkingLevel:e.thinking}),a=s.session.model;if(e.model){let h=await s.session.modelRuntime.getAvailable(),I=rF(h,e.model);if(!I)throw s.session.dispose(),new Error(`unknown model '${e.model}'`);(a?.id!==I.id||a.provider!==I.provider)&&(await s.session.setModel(I),a=s.session.model)}if(!e.noSession&&n.getEntries().every(h=>h.type!=="custom"||h.customType!==Hm))try{n.appendCustomEntry(Hm,{version:fn})}catch{}let p=a?`${a.provider}/${a.id}`:"no model",c=[Yl(s.modelFallbackMessage)].filter(h=>!!h);return a||c.push(`no model configured. run \`howtofix\` and use /login, or edit ${YL(Xe,"models.json")}`),{session:s.session,dispose:()=>s.session.dispose(),modelLabel:p,note:[r,...c].filter(Boolean).join(`
87
+ `)||void 0}}var Hm,nF,QE=m(()=>{Mo();Ed();Wn();jo();Bu();Wc();Pm();Cm();Jc();uE();lE();Zc();cl();JE();XE();Hm="howtofix.build",nF=()=>({exclude:process.platform==="win32"?[]:["powershell"]})});import{mixColors as sF,styleText as ev}from"@earendil-works/pi-tui";function _s(e,t,n){let r=sv(n);return r>=1?t:r<=0?e:sF(e,t,r)}function dl(e,t,n,r){return!jr||e<=ll?t:e>=rv?r:_s(n,r,(e-ll)/(rv-ll))}function iv(e,t){return!jr||t<=0||e<0?1:1-(1-sv(e/t))**3}function av(e,t){return jr&&e>=0&&e<t}function gl(e,t,n=aF,r=400){return!jr||n<=0||e<0||e>=r?t:Math.min(t,Math.floor(e/n)+1)}function mv(e,t,n=Date.now(),r=1400){if(!jr||r<=0)return e;let o=n%r/r;return _s(e,t,o<.5?o*2:(1-o)*2)}function mF(e,t){let n=Math.abs(e-t);return n>=tv?0:Math.ceil((1-n/tv)*ov)/ov}function uv(e,t,n=Date.now()){let r=t.charMs??iF;if(!jr||e.length===0||r<=0)return ev(e,{fg:t.base},Gm);let o=e.length+nv*2,s=n/r%o-nv,a=(M,F)=>ev(M,{fg:_s(t.base,t.bright,F)},Gm),p="",c=0,h=null,I=0,T=0;for(let M of e){let F=mF(T,s);h===null?h=F:F!==h&&(p+=a(e.slice(c,I),h),c=I,h=F),I+=M.length,T+=1}return p+a(e.slice(c),h??0)}var jr,iF,tv,nv,ll,rv,ov,sv,Vm,fl,aF,xl=m(()=>{js();jr=process.env.HOWTOFIX_NO_MOTION!=="1",iF=45,tv=5,nv=8,ll=1e4,rv=6e4,ov=3,sv=e=>e<0?0:e>1?1:e;Vm=class{value;velocity=0;last=Date.now();target;constructor(t,n=t){this.value=t,this.target=n}set(t){this.target=t}get moving(){return Math.abs(this.target-this.value)>.15}snap(t){this.value=t,this.target=t,this.velocity=0,this.last=Date.now()}step(t=Date.now()){let n=Math.max(0,t-this.last),r=Math.min(250,n)/1e3;if(this.last=t,!jr)return this.value=this.target,this.velocity=0,this.value;n>250&&(this.velocity=0);let o=150,s=2*Math.sqrt(o),a=Math.max(1,Math.ceil(r/.008)),p=r/a;for(let c=0;c<a;c+=1)this.velocity+=(this.target-this.value)*o*p-this.velocity*s*p,this.value+=this.velocity*p;return this.moving||(this.value=this.target,this.velocity=0),this.value}};fl=260,aF=45});import{execFile as uF,execFileSync as pF}from"node:child_process";import{promisify as cF}from"node:util";import{createHash as cv}from"node:crypto";import{copyFileSync as lF,existsSync as hl,mkdirSync as Jm,readFileSync as dF,statSync as fF}from"node:fs";import{dirname as lv,join as Ln,resolve as dv}from"node:path";function xF(e){let t=dv(e);for(;;){if(hl(Ln(t,".git")))return!0;let n=lv(t);if(n===t)return!1;t=n}}async function un(e,t){let n={...process.env};for(let o of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_NAMESPACE","GIT_COMMON_DIR"])delete n[o];n.GIT_DIR=e.gitDir,n.GIT_WORK_TREE=e.root,n.GIT_AUTHOR_NAME=n.GIT_COMMITTER_NAME="howtofix",n.GIT_AUTHOR_EMAIL=n.GIT_COMMITTER_EMAIL="howtofix@local";let{stdout:r}=await hF("git",t,{cwd:e.root,env:n,encoding:"utf8",maxBuffer:8*1024*1024});return r.trim()}function yF(e){return cv("sha1").update(e).digest("hex").slice(0,16)}function fv(e){let t=dv(e).replace(/\/+$/,"")||"/",n=Ln(gF,yF(t)),r=Ln(n,"git"),o={root:t,gitDir:r,metaFile:Ln(n,"checkpoints.json"),disabled:!1};return!hl(Ln(r,"HEAD"))&&!xF(t)?(o.disabled=!0,o):(Jm(n,{recursive:!0}),hl(Ln(r,"HEAD"))||(Jm(r,{recursive:!0}),pF("git",["init","--quiet","--initial-branch=howtofix"],{env:{...process.env,GIT_DIR:r},stdio:["ignore","ignore","pipe"]})),bF(t,r),o)}function bF(e,t){let n=Ln(e,".git","info","exclude");try{if(!fF(n).isFile())return;Jm(Ln(t,"info"),{recursive:!0}),lF(n,Ln(t,"info","exclude"))}catch{}}function bl(e){try{let t=JSON.parse(dF(e.metaFile,"utf8"));if(t?.version===1&&t.sessions)return t}catch{}return{version:1,sessions:{}}}function gv(e,t){Jm(lv(e.metaFile),{recursive:!0}),Ze(e.metaFile,`${JSON.stringify(t,null,1)}
88
+ `)}function Il(e,t){return e.disabled?[]:[...bl(e).sessions[t]??[]].sort((n,r)=>n.at-r.at)}async function xv(e,t,n){if(e.disabled)return null;let r;try{await un(e,["add","-A","--ignore-errors","--"]),r=await un(e,["write-tree"])}catch{return null}let s=Il(e,t).find(M=>M.tree===r),a=Date.now(),p=`${a.toString(36)}-${cv("sha1").update(`${r}:${a}`).digest("hex").slice(0,6)}`,c=s?.commit;if(!c){let M=["howtofix checkpoint",`session ${t}`,`created ${new Date(a).toISOString()}`,`prompt ${n.slice(0,200)}`].join(`
89
+ `);c=await un(e,["commit-tree",r,"-m",M]),await un(e,["update-ref",`${yl}/${p}`,c])}let h={id:p,tree:r,commit:c,prompt:n,at:a},I=bl(e),T=[...I.sessions[t]??[],h];for(let M of T.slice(0,Math.max(0,T.length-pv)))try{await un(e,["update-ref","-d",`${yl}/${M.id}`])}catch{}return I.sessions[t]=T.slice(-pv),gv(e,I),h}async function hv(e,t){let n=[];if(e.disabled)return{ok:!1,output:"checkpoints are off: this directory is not a git repository",removed:n};try{await un(e,["read-tree","--reset","-u",t.tree])}catch(r){return{ok:!1,output:r instanceof Error?r.message:String(r),removed:n}}try{let r=await un(e,["clean","-fd"]);for(let o of r.split(`
90
+ `)){let s=/^Removing\s+(.+)$/.exec(o.trim());s?.[1]&&n.push(s[1])}}catch{}return{ok:!0,output:`restored ${t.prompt||"the checkpoint"}`,removed:n}}async function yv(e,t){if(e.disabled)return[];try{await un(e,["add","-A","--ignore-errors","--"]);let n=await un(e,["write-tree"]);return n===t.tree?[]:(await un(e,["diff-tree","-r","--name-status","--no-commit-id",t.tree,n])).split(`
91
+ `).filter(Boolean).map(o=>{let[s,...a]=o.split(" ");return`${s?.[0]??"?"} ${a.at(-1)??""}`})}catch{return[]}}async function bv(e,t){if(e.disabled)return;let n=bl(e);for(let r of n.sessions[t]??[])try{await un(e,["update-ref","-d",`${yl}/${r.id}`])}catch{}delete n.sessions[t],gv(e,n)}var gF,yl,pv,hF,Iv=m(()=>{Wn();zn();gF=Ln(Xe,"rewind"),yl="refs/howtofix",pv=100;hF=cF(uF)});function Tl(e=90){let t=Math.floor(Date.now()/e)%$l.length;return $l[t]??$l[0]}function Us(e,t){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,Math.max(1,t-1))}\u2026`:n}function Ye(e,t){if(e&&typeof e=="object"){let n=e[t];if(typeof n=="string"&&n.length>0)return n;if(typeof n=="number")return String(n)}}function IF(e,t=160){if(!e||typeof e!="object")return"";try{let n=JSON.stringify(e);return n&&n!=="{}"?Us(n,t):""}catch{return""}}function $F(e,t){switch(e){case"read":{let n=Ye(t,"path")??"",r=[Ye(t,"offset"),Ye(t,"limit")].filter(Boolean);return r.length>0?`${n} ${r.length===1?`offset=${r[0]}`:`offset=${r[0]}, limit=${r[1]}`}`:n}case"edit":case"write":return Ye(t,"path")??"";case"bash":case"powershell":return Ye(t,"command")??"";case"grep":{let n=Ye(t,"pattern")??"",r=Ye(t,"path");return r?`${n} in ${r}`:n}case"find":case"glob":{let n=Ye(t,"pattern")??Ye(t,"glob")??"",r=Ye(t,"path");return r?`${n} in ${r}`:n}case"ls":return Ye(t,"path")??".";case"task":return Ye(t,"agent")??"task";case"ask":return Ye(t,"question")??"";case"think":return"private";case"todo":{let n=Ye(t,"op")??"view",r=Ye(t,"task"),o=t?.items;return n==="init"&&Array.isArray(o)?`init ${o.length} task${o.length===1?"":"s"}`:r?`${n} ${r}`:n}case"context":{let n=Ye(t,"op")??"list",r=Ye(t,"key");return r?`${n} ${r}`:n}case"workflow":{let n=Ye(t,"path");if(n)return n;let r=Ye(t,"code")??"",o=/export\s+const\s+meta\s*=\s*\{[\s\S]*?name\s*:\s*["'`]([^"'`]+)/.exec(r)?.[1];if(o)return o;let s=r.trim().split(`
92
+ `)[0]??"";return s.length>40?`${s.slice(0,40)}\u2026`:s}default:return IF(t)}}function vo(e,t,n=100){let r=e.charAt(0).toUpperCase()+e.slice(1),o=Us($F(e,t),n);return o?`${$v} ${r}(${o})`:`${$v} ${r}`}function wF(e){let t=0,n=0;for(let r of e.split(`
93
+ `))r.startsWith("+")&&!r.startsWith("+++")?t+=1:r.startsWith("-")&&!r.startsWith("---")&&(n+=1);return{additions:t,removals:n}}function El(e){let t=e?.content;return typeof t=="string"?t:Array.isArray(t)?t.map(n=>n&&typeof n=="object"&&n.type==="text"?String(n.text??""):"").join(""):""}function Ks(e){let t=e?.details;return t&&typeof t=="object"?t:{}}function vl(e){let t=e?.structuredContent;return t&&typeof t=="object"?t:{}}function wv(e){let t=e.exit_code;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function kF(e){return e.trim().split(`
94
+ `).find(t=>t.trim())??""}function TF(e,t){let n=typeof e.output=="string"?e.output:t.replace(/\n*Command exited with code \d+\s*$/,""),r=Xm(n);return r>0?` (${r} line${r===1?"":"s"})`:""}function Xm(e){let t=e.trim();return t?t.split(`
95
+ `).length:0}function Zm(e,t,n){let r=El(t),o=Ks(t),s=vl(t);if(n){let a=wv(s);if(a!==void 0&&(e==="bash"||e==="powershell"))return`exit ${a}`;let p=r.trim().split(`
96
+ `).find(c=>c.trim());return Us(p??"failed",120)}switch(e){case"read":{let a=o.truncation,p=Xm(r.replace(/\n*\[[^\]]*\]\s*$/,"")),c=p===0?"empty":`${p} line${p===1?"":"s"}`;return a?.truncated?`${c} (truncated from ${a.totalLines??"?"})`:c}case"edit":{let a=typeof o.diff=="string"?o.diff:"";if(!a)return"applied";let{additions:p,removals:c}=wF(a);return`+${p} / -${c}`}case"write":{let a=Xm(r);return a>0?`written (${a} lines)`:"written"}case"bash":case"powershell":{let a=wv(s);if(a===void 0)return r.trim()?Us(kF(r),120):"done";let p=TF(s,r);return a===0?`exit 0${p}`:`exit ${a}`}case"grep":{let a=Xm(r);return a===0?"no matches":`${a} match${a===1?"":"es"}`}case"todo":{let a=o.todos??[];if(!Array.isArray(a)||a.length===0)return"list cleared";let p=a.filter(h=>h.status==="completed").length,c=a.filter(h=>h.status==="pending"||h.status==="in_progress").length;return`${p}/${a.length} done, ${c} open`}case"context":{let a=o.notes,p=a?Object.keys(a).length:0;return p===0?"no notes":`${p} note${p===1?"":"s"} held`}case"workflow":{let a=typeof o.agents=="number"?o.agents:0,p=typeof o.outputTokens=="number"?o.outputTokens:0,c=Array.isArray(o.steps)?o.steps.filter(I=>I.status==="failed").length:0;if(typeof o.error=="string")return`failed after ${a} agent(s)`;let h=typeof o.startedAt=="number"&&typeof o.endedAt=="number"?`, ${lr(o.endedAt-o.startedAt)}`:"";return`${a} agent(s), ${p} tokens${h}${c>0?`, ${c} failed`:""}`}default:{let a=r.trim().split(`
97
+ `).find(p=>p.trim());return a?Us(a,120):"done"}}}function kv(e,t){let n=Ks(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
98
+ `).filter(r=>r.length>0).slice(0,12);if(e==="bash"||e==="powershell"){let r=vl(t);return(typeof r.output=="string"?r.output:El(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
99
+ `).filter(a=>a.trim()).slice(-4)}if(e==="todo"){let r=n.todos??[],o={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"};return r.slice(0,6).map(s=>`${o[s.status??"pending"]??"[ ]"} ${s.content??""}`)}return e==="workflow"?(n.steps??[]).map(s=>{let a=s.status==="running"?"\u25B8":s.status==="failed"?"\xD7":"\u2713",p=s.phase?`${s.phase} \xB7 `:"";return`${a} ${p}${s.label??"agent"}`}).slice(-6):[]}function Tv(e,t){let n=Ks(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
100
+ `).filter(p=>p.length>0).slice(0,Ym);let r=vl(t),s=(typeof r.output=="string"?r.output:El(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
101
+ `),a=s.slice(0,Ym);return s.length>Ym&&a.push(`\u2026 ${s.length-Ym} more line(s)`),a}var $v,wl,kl,$l,Ym,Sl=m(()=>{qs();$v="\u25CF",wl="\u2514",kl="\u22EF",$l=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];Ym=400});import{Markdown as EF,wrapTextWithAnsi as vF}from"@earendil-works/pi-tui";function Ev(e){return typeof e=="string"?e:e.map(t=>t.type==="text"?t.text:t.type==="thinking"?"":t.type==="image"?"[image]":(t.type==="toolCall","")).filter(Boolean).join("")}function SF(e){return e.content.filter(t=>t.type==="toolCall").map(t=>({name:t.name,arguments:t.arguments}))}function eu(e){let t=[];for(let n of e)if(n.role==="user"){let r=Ev(n.content).trim();if(!r)continue;t.push({id:`u-${n.timestamp}`,kind:"user",title:"you",body:r})}else if(n.role==="assistant"){let r=Ev(n.content).trim(),o=SF(n);r?t.push({id:`a-${n.timestamp}`,kind:n.stopReason==="error"?"error":"assistant",title:n.errorMessage?"failed":"fix",body:n.errorMessage?`${n.errorMessage}
102
+
103
+ ${r}`:r}):n.errorMessage&&t.push({id:`e-${n.timestamp}`,kind:"error",title:"failed",body:n.errorMessage}),o.forEach((s,a)=>{t.push({id:`c-${n.timestamp}-${a}`,kind:"tool",title:"tool",body:vo(s.name,s.arguments)})})}else n.role==="toolResult"&&t.push({id:`r-${n.toolCallId}`,kind:"result",title:n.toolName,body:Zm(n.toolName,{content:n.content},n.isError)});return t}function vv(e,t,n){return vF(e,Math.max(8,t)).map(r=>X(r,n))}function PF(e){let t=e.body||" ",n=Gs.get(e.id);if(n)return n.text!==t&&(n.component.setText(t),n.text=t),n.component;let r=new EF(t,0,0,LE);return Gs.set(e.id,{text:t,component:r}),r}var Gs,Pl,Qm,Sv=m(()=>{xl();js();Sl();Gs=new Map;Pl=class{constructor(t){this.item=t}item;invalidate(){}shade(t){let n=Date.now()-(this.item.born??0);return _s(D.dim,t,iv(n,fl))}render(t){let n=this.item.body;if(this.item.kind==="user")return["",...vv(`> ${n}`,t,this.shade(D.user))];if(this.item.kind==="tool")return[X(n,this.shade(D.tool))];if(this.item.kind==="result"){let o=n.startsWith("exit ")&&n!=="exit 0";if(this.item.panel)return["",...this.item.panel(t),...n?[X(` ${wl} ${n}`,o?D.bad:D.mute)]:[]];let s=[];this.item.call&&s.push(X(this.item.call,this.shade(D.tool)));let a=` ${wl} ${n}`;if(s.push(X(a,o?D.bad:this.shade(D.mute))),this.item.expanded===!0&&(this.item.full?.length??0)>0){let I=X(` ${this.item.full.length} line(s) \xB7 ctrl+e to collapse`,D.dim);s.push(X(` ${kl}`,D.dim));for(let T of this.item.full){let M=T.startsWith("+")?D.tool:T.startsWith("-")?D.bad:D.dim;s.push(X(` ${T}`,M))}return s.push(I),s}let c=this.item.detail??[],h=gl(Date.now()-(this.item.born??0),c.length);for(let I of c.slice(0,h)){let T=I.startsWith("+")?D.tool:I.startsWith("-")?D.bad:D.dim;s.push(X(` ${I}`,this.shade(T)))}return(this.item.full?.length??0)>0&&s.push(X(` ${kl} ${this.item.full.length} line(s) \xB7 ctrl+e to expand`,D.dim)),s}if(this.item.kind==="error"||this.item.kind==="note"){let o=this.item.kind==="error"?D.bad:D.mute;return["",...vv(n,t,this.shade(o))]}return["",...PF(this.item).render(Math.max(8,t-2))]}},Qm=class{items=[];status="";scrollOffset=0;viewportHeight=0;invalidate(){}entering(){let t=Date.now();return this.items.some(n=>{if(n.born===void 0)return!1;let r=t-n.born;return av(r,fl)?!0:(n.detail?.length??0)>gl(r,n.detail?.length??0)})}render(t){if(Gs.size>this.items.length){let o=new Set(this.items.map(s=>s.id));for(let s of Gs.keys())o.has(s)||Gs.delete(s)}let n=[];for(let o of this.items)o.born??=Date.now(),n.push(...new Pl(o).render(t));this.status&&n.push(X(this.status,D.mute));let r=this.viewportHeight;if(r>0&&n.length>r){let o=n.length-r,s=Math.max(0,Math.min(this.scrollOffset,o));return this.scrollOffset=s,n.slice(o-s,o-s+r)}return this.scrollOffset=0,n}}});function pt(e,t){return`${t}${e}${Av}`}function RF(e){return e>=85?AF:e>=70?Ov:Rv}function Mv(e,t,n,r){let o=pt(`[${e}]`,Al),s=pt(`${OF} ${t}`,Fn),a=pt(n,Ov),p=r?` ${pt("git:(",Pv)}${pt(r.replace(/^git:\(/,"").replace(/\)$/,""),Al)}${pt(")",Pv)}`:"";return`${o}${pt(" \u2502 ",Fn)}${s}${pt(" \u2502 ",Fn)}${a}${p}`}function Cv(e,t,n){if(!t)return e;let r=n===void 0?t:`${t} ${pt(DE(n),Fn)}`;return`${pt(r,Al)} ${pt("\u2502",Fn)} ${e}`}function Lv(e,t){let n=Number.isFinite(e)?Math.min(100,Math.max(0,e)):0,r=Math.round(n/10),o=RF(n),s=`${o}${"\u2588".repeat(r)}${Fn}${"\u2591".repeat(10-r)}${Av}`,a=pt(`${Math.round(n)}%`,o),p=t?`${pt(" \u2502 ",Fn)}${t}`:"";return`${pt("Context",Fn)} ${s} ${a}${p}`}function Fv(e,t,n){let r=n===null?"":pt(` ${n}ms`,Fn);return`${pt("Cubence",Fn)} ${pt(t?`${t} ${e}`:e,Rv)}${r}`}var Av,Fn,AF,Rv,Ov,Pv,Al,OF,Rl=m(()=>{qs();Av="\x1B[0m",Fn="\x1B[2m",AF="\x1B[31m",Rv="\x1B[32m",Ov="\x1B[33m",Pv="\x1B[35m",Al="\x1B[36m";OF="\u2726"});import{mkdirSync as MF,readFileSync as Dv}from"node:fs";import{homedir as CF}from"node:os";import{dirname as LF,join as FF}from"node:path";function jv(e){return e/1e6}function DF(){try{let e=JSON.parse(Dv(FF(CF(),".claude","settings.json"),"utf8")),t=e.env?.ANTHROPIC_AUTH_TOKEN,n=e.env?.ANTHROPIC_BASE_URL;return!t||!n?void 0:{token:t,baseUrl:n.replace(/\/$/,"")}}catch{return}}function NF(){try{let e=JSON.parse(Dv(Ol,"utf8"));return!e.data||typeof e.cachedAt!="number"?void 0:{data:e.data,cachedAt:e.cachedAt}}catch{return}}function Ws(e){let t=`$${e.balanceDollar.toFixed(2)}`,n=e.hasSubscription?`5h $${e.fiveHourUsedDollar.toFixed(2)}/$${e.fiveHourLimitDollar.toFixed(2)} bal`:"";return Fv(t,n,e.latencyMs)}async function Nv(){let e=NF();if(e&&Date.now()-e.cachedAt<jF)return Ws(e.data);let t=DF();if(!t)return e?Ws(e.data):void 0;let n=Date.now();try{let r=await fetch(`${t.baseUrl}/v1/user/subscription-info`,{headers:{authorization:`Bearer ${t.token}`,accept:"application/json"},signal:AbortSignal.timeout(3e3)});if(!r.ok)return e?Ws(e.data):void 0;let o=await r.json(),s=o.subscription_window?.five_hour?.limit??0,a={balanceDollar:o.normal_balance?.amount_dollar??0,hasSubscription:s>0,fiveHourUsedDollar:jv(o.subscription_window?.five_hour?.used??0),fiveHourLimitDollar:jv(s),latencyMs:Date.now()-n};return MF(LF(Ol),{recursive:!0}),Ze(Ol,JSON.stringify({data:a,cachedAt:Date.now()})),Ws(a)}catch{return e?Ws(e.data):void 0}}var Ol,jF,qv=m(()=>{Wn();Rl();zn();Ol=$u,jF=18e4});function _v(){return{}}function Uv(e,t,n,r=Date.now()){let o={...e};return t==="run"?(n===void 0||n===""?delete o.run:o.run={label:n,since:e.run?.since??r},o):(n===void 0||n===""?delete o[t]:o[t]=n,o)}function qF(e){let t=Math.max(0,Math.round(e/1e3)),n=Math.floor(t/60);return n>0?`${n}m ${String(t%60).padStart(2,"0")}s`:`${t}s`}function Kv(e,t,n=Date.now()){return e.prompt?`? ${e.prompt}`:e.note?`* ${e.note}`:e.run?`${t} ${e.run.label} \xB7 ${qF(n-e.run.since)}`:e.tally?e.tally:""}var Gv=m(()=>{});import{spawn as _F}from"node:child_process";function UF(e){switch(e){case"darwin":return{command:"open",args:[]};case"win32":return{command:"cmd",args:["/c","start",""]};case"linux":return{command:"xdg-open",args:[]};default:return}}async function Wv(e,t=process.platform){let n=UF(t);return n?new Promise(r=>{try{let o=_F(n.command,[...n.args,e],{detached:!0,stdio:"ignore"});o.once("error",()=>r(!1)),o.once("spawn",()=>{o.unref(),r(!0)})}catch{r(!1)}}):!1}var zv=m(()=>{});import{mkdirSync as KF}from"node:fs";import{join as GF}from"node:path";import{matchesKey as tu}from"@earendil-works/pi-tui";function Hv(){return{selectedPhase:0,filter:"all",paused:!1,expanded:!1,follow:!0}}function Vv(e){if(tu(e,"up"))return"up";if(tu(e,"down"))return"down";if(tu(e,"enter"))return"enter";if(tu(e,"escape"))return"escape";if(e==="f")return"filter";if(e==="p")return"pause";if(e==="x")return"stop";if(e==="s")return"save"}function Bv(e,t,n){if(t.length===0)return e;let r=Math.max(0,Math.min(t.length-1,e.selectedPhase+n));return{...e,selectedPhase:r,follow:!1}}function WF(e){let t=Ml.indexOf(e);return Ml[(t+1)%Ml.length]}function Jv(e,t,n){switch(t){case"up":return Bv(e,n,-1);case"down":return Bv(e,n,1);case"enter":return{...e,expanded:!e.expanded};case"filter":return{...e,filter:WF(e.filter)};case"pause":return{...e,paused:!e.paused};default:return e}}function Yv(e,t){switch(t){case"running":return e.filter(n=>n.status==="running");case"failed":return e.filter(n=>n.status==="failed");case"done":return e.filter(n=>n.status!=="running");default:return[...e]}}function Xv(e){return e==="all"?"":` \xB7 ${e}`}function Qv(e,t,n=!0){if(!n)return"Ctrl+F panel keys \xB7 Esc unpin";let r=["\u2191/\u2193 phase",e.expanded?"Enter collapse":"Enter drill in"];return r.push(e.expanded?"Esc back out":"Esc unpin"),r.push(`f filter${e.filter==="all"?"":` (${e.filter})`}`),t?(r.push(e.paused?"p resume":"p pause"),r.push("x stop")):e.paused&&r.push("p resume"),r.push("s save script"),e.paused&&r.unshift("paused"),r.join(" \xB7 ")}function zF(e){let t=e.trim();if(!(!t||t.length>64)&&!(t==="."||t==="..")&&/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(t)&&!t.includes(".."))return t}function eS(e,t){if(!e)return{ok:!1,reason:"this run was started from a file, so it is already saved where you pointed the tool"};let n=zF(e.name);if(!n)return{ok:!1,reason:`"${e.name}" is not a usable filename, so the script was not written`};let r=GF(t,`${n}.js`);try{KF(t,{recursive:!0}),Ze(r,e.code)}catch(o){return{ok:!1,reason:o instanceof Error?o.message:String(o)}}return{ok:!0,path:r}}var Ml,Zv,tS=m(()=>{zn();Ml=["all","running","failed","done"];Zv="ctrl+f"});function nS(e){let t=()=>{};return{select:(n,r)=>e.select(n,r),confirm:(n,r)=>e.confirm(n,r),input:n=>e.input(n),notify:(n,r)=>e.notify(n,r),onTerminalInput:()=>t,setStatus:(n,r)=>e.setStatus(n,r),setWorkingMessage:t,setWorkingVisible:t,setWorkingIndicator:t,setHiddenThinkingLabel:t,setWidget:(n,r,o)=>{r!==void 0&&!Array.isArray(r)||e.setWidget?.(n,r,o?.placement)},setFooter:t,setHeader:t,setTitle:t,custom:async()=>{throw new Error("this screen has no custom component host; use the text commands instead")},pasteToEditor:t,setEditorText:t,getEditorText:()=>"",editor:async()=>{},addAutocompleteProvider:t,setEditorComponent:t,getEditorComponent:()=>{},theme:void 0,getAllThemes:()=>[],getTheme:()=>{},setTheme:()=>({success:!1,error:"themes are not available in the workbench"}),getToolsExpanded:()=>!1,setToolsExpanded:t}}var rS=m(()=>{});var hS={};Lt(hS,{Dock:()=>su,Hud:()=>ru,PinnedBlock:()=>ou,approvalDetail:()=>gS,orderModelsForDefault:()=>dS,pickerPanel:()=>fS,runWorkbench:()=>hj,workflowPanel:()=>xS,workflowPanelFromRun:()=>Bs,workflowRunOf:()=>iu});import{execFile as BF}from"node:child_process";import{promisify as HF}from"node:util";import{existsSync as VF,mkdirSync as JF,readFileSync as YF}from"node:fs";import{basename as XF,join as oS,resolve as ZF}from"node:path";import{copyToClipboard as QF,SessionManager as ej}from"@earendil-works/pi-coding-agent";import{CombinedAutocompleteProvider as sS,Container as tj,Editor as nj,matchesKey as Ot,ProcessTerminal as rj,ScrollView as oj,KeybindingsManager as uS,setKeybindings as pS,TUI_KEYBINDINGS as cS,SelectList as sj,TuiAltScreen as ij,truncateToWidth as zs,VStack as aj,visibleWidth as nu,wrapTextWithAnsi as mj,getNativeClipboard as uj}from"@earendil-works/pi-tui";import{TreeSelectorComponent as pj,initTheme as cj}from"@earendil-works/pi-coding-agent";import{getKeybindings as iS}from"@earendil-works/pi-tui";function lj(e){if(typeof e!="object"||e===null)return;let t=e[lS];return typeof t=="function"?t.call(e):void 0}async function mS(e){try{let{stdout:t}=await Fl("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}),n=t.trim();if(!n||n==="HEAD")return"";let{stdout:r}=await Fl("git",["-C",e,"status","--porcelain"],{encoding:"utf8"});return`git:(${n}${r.trim()?"*":""})`}catch{return null}}function dS(e){let t=n=>{if(fj.test(n))return 100;let r=dj.findIndex(o=>n.toLowerCase().includes(o));return r===-1?50:r};return e.map((n,r)=>({id:n,index:r})).sort((n,r)=>t(n.id)-t(r.id)||n.index-r.index).map(n=>n.id)}function fS(e,t,n,r=!1,o=[]){let s=Math.max(24,n),a=s-4,p=(Z,ae)=>{let xe=nu(Z)>a?zs(Z,a,"\u2026"):Z,ke=`${xe}${" ".repeat(Math.max(0,a-nu(xe)))}`;return`\u2502 ${ae?ae(ke):ke} \u2502`},c="\u2500".repeat(s-2),h=[p(` ${t}`),...e.render(a).map(Z=>p(Z))],I=o.flatMap(Z=>Z===""?[""]:mj(Z,a)),T=I.length>0?[p(""),...I.map(Z=>p(Z,ae=>X(ae,D.mute)))]:[];if(!r)return["",`\u250C${c}\u2510`,...h,...T,`\u2514${c}\u2518`];let M=mv(D.line,D.warn,Date.now(),1400),F=X("\u2502",M),O=(Z,ae)=>X(`${Z}${c}${ae}`,M),_=[...h,...T].map(Z=>`${F}${Z.slice(1,-1)}${F}`);return["",O("\u250C","\u2510"),..._,O("\u2514","\u2518")]}function gS(e,t){let n=t.split(`
104
+ `).filter(Boolean),r=n.filter(a=>a.startsWith("Reason:")),o=n.filter(a=>!a.startsWith("Reason:")&&!a.startsWith("Allow tool:"));return[...e.endsWith(" wants to run")?[]:[e],...r,...o.length>0?["",...o]:[]]}function So(e){let t=e.getContextUsage();if(t?.percent!==null&&t?.percent!==void 0)return Math.min(100,Math.round(t.percent));let n=e.model,o=[...e.state.messages].reverse().find(s=>s.role==="assistant")?.usage?.totalTokens;return!n||typeof o!="number"||!Number.isFinite(o)||n.contextWindow<=0?0:Math.min(100,Math.round(o/n.contextWindow*100))}function Ll(e){let n=[["init","write project notes to AGENTS.md"],["model","choose a model"],["providers","list providers"],["thinking","set thinking level"],["approval","set what needs approval"],["connect","connect a howtofix.id account"],["login","save a provider API key"],["logout","remove a provider"],["new","start a new session"],["resume","resume another session"],["compact","compact the session"],["name","name this session"],["stats","session tokens and cost"],["diff","show the working tree diff"],["commit","stage everything and commit"],["undo","undo the last commit"],["rewind","go back to an earlier message (Esc Esc)"],["review","ask the agent to review the diff"],["tools","list active tools"],["export","write the transcript to a markdown file"],["copy","copy the last answer to the clipboard"],["agents","show spawned agents"],["goal","set or view this session's goal"],["plan","toggle plan mode (design before editing)"],["workflow","show or clear the pinned workflow panel"],["session","show the current model"],["help","list commands"],["quit","quit"]].map(([r,o])=>({name:r,description:o}));for(let r of e.promptTemplates)n.push({name:r.name,description:r.description});for(let r of e.extensionRunner.getRegisteredCommands())n.push({name:r.invocationName,description:r.description});return n}function iu(e,t){if(e!=="workflow")return;let n=Ks(t);if(!(typeof n.name!="string"||!Array.isArray(n.steps)))return n}function xS(e,t){let n=iu(e,t);return n?Bs(n):void 0}function Bs(e,t,n=!1){return r=>WE(e,[],r,t?.selectedPhase,t?gj(e,t,n):void 0)}function gj(e,t,n){return{filter:r=>Yv(r,t.filter),footerText:Qv(t,e.endedAt===void 0,n),filterLabel:Xv(t.filter),drill:t.expanded}}function xj(){let e=new uS(cS,{"tui.altScreen.pageUp":[],"tui.altScreen.pageDown":[],"tui.altScreen.halfPageUp":[],"tui.altScreen.halfPageDown":[],"tui.altScreen.top":[],"tui.altScreen.bottom":[]});pS(e)}async function hj(e){let t=new rj,n=new ij(t,!0,void 0,{mouse:!0}),r=new Qm,o=new ru(e.cwd,e.modelLabel),s=d=>{let x=Date.now();(async()=>{try{let b=cn(),y=await xv(b,E.getSessionStats().sessionId,d);y&&x>=_t&&(Po=y,_t=x)}catch{}})()},a=(d=!1)=>{!d&&!o.live||mS(e.cwd).then(x=>{x!==null&&(o.git=x,U())})},p=new nj(n,aS,{paddingX:1}),c=new Map,h=(d,x)=>{x===void 0?c.delete(d):typeof x=="function"?c.set(d,x):c.set(d,()=>x)},I=()=>Math.max(20,t.columns),T,M=0,F=Hv(),O,_=null,Z=!1,ae,xe=!1,ke,We=()=>{!O||!Z||h("workflow",d=>Bs(O,F,xe)(d))},Nt=()=>{O&&(ae=O.name),Z=!1,xe=!1,h("workflow",void 0)};BE({onStop:d=>{_=d},isPaused:()=>F.paused});let he=d=>{if(ae===d.name)return;T=d;let x=d.endedAt??Date.now();M=Math.max(M,x+Wm),O=d,Z=!0,h("workflow",b=>Bs(d,F,xe)(b))},te=new su(p,o),E=e.session,ze=!1,qt,cn=()=>qt??=fv(e.cwd),Po,Qt="",_t=0,qe,Mt=()=>{let d=new Set(["session_info","usage","label","context_edit","custom","model_change","thinking_level_change"]),x=[],b=y=>{for(let w of y)d.has(w.entry.type)||x.push(w.entry.id),b(w.children)};return b(E.sessionManager.getTree()),x},Ao=!1,bS=()=>{if(Ao)return;Ao=!0;let d=iS().getResolvedBindings();pS(new uS(cS,{...d,"app.tree.foldOrUp":["alt+left","ctrl+left"],"app.tree.unfoldOrDown":["alt+right","ctrl+right"],"app.tree.editLabel":["shift+l"],"app.tree.toggleLabelTimestamp":["shift+t"],"app.message.copy":["ctrl+x"],"app.tree.filter.default":["alt+0"],"app.tree.filter.noTools":["alt+1"],"app.tree.filter.userOnly":["alt+2"],"app.tree.filter.labeledOnly":["alt+3"],"app.tree.filter.all":["alt+4"],"app.tree.filter.cycleForward":["alt+f"],"app.tree.filter.cycleBackward":["alt+shift+f"]}))},jl=!1,IS=()=>{jl||(jl=!0,cj())},Dl=()=>{let d=E.sessionManager.getTree();if(d.length===0){A("rewind","nothing to rewind to yet");return}cn().disabled&&A("rewind","conversation rewind only \u2014 this directory is not a git repository"),IS(),bS();let x=Math.max(8,Math.floor(t.rows*.6)),b=new pj(d,E.sessionManager.getLeafId(),x*2,y=>{au(),$S(y)},()=>au());if(!b.getTreeList().getSelectedNode()){A("rewind","nothing to rewind to yet");return}qe=b,qe.focused=!0,h("rewind",y=>qe?.render(y)??[]),U()},au=()=>{qe=void 0,h("rewind",void 0),U()},$S=async d=>{let x=cn(),y=E.getUserMessagesForForking().findIndex($=>$.entryId===d),w=y>=0?Il(x,E.getSessionStats().sessionId)[y]:void 0,g=w?(await yv(x,w)).length:0;if(g===0){await Nl(d,void 0,"conversation");return}Ct(`Rewind to this point? ${g} file(s) differ`,[{value:"both",label:"conversation and code",description:`drop the messages after this point and restore ${g} file(s)`},{value:"conversation",label:"conversation only",description:"drop the messages after this point, leave the files alone"},{value:"code",label:"code only",description:`restore ${g} file(s), keep the conversation`}],$=>{Nl(d,w,$)})},Nl=async(d,x,b)=>{let y=[];if((b==="both"||b==="conversation")&&!E.isStreaming)try{let w=await E.navigateTree(d);if(w.cancelled){A("rewind","conversation rewind cancelled");return}y.push("conversation rewound"),r.items=eu(E.state.messages),w.editorText&&(p.setText(w.editorText),y.push("prompt restored to the editor"))}catch(w){ln(`conversation rewind failed: ${w instanceof Error?w.message:String(w)}`);return}if((b==="both"||b==="code")&&x){let w=await hv(cn(),x);if(!w.ok){ln(`code rewind failed: ${w.output}`);return}y.push(w.output),w.removed.length>0&&y.push(`removed ${w.removed.length} file(s)`),a()}A("rewind",y.join(`
105
+ `)||"nothing to do"),U()};a(!0),s("session start"),e.note&&r.items.push({id:"note",kind:"note",title:"note",body:e.note}),r.items.push(...eu(E.state.messages)),o.percent=So(E),o.abandonAnimations(),o.thinking=E.thinkingLevel,p.setAutocompleteProvider(new sS(Ll(E),e.cwd)),Nv().then(d=>{d&&(o.cubence=d,n.requestRender())});let jn=null,ql="",_l=!1,Ul=[],Ro,mu=()=>{},U=()=>{mu(),n.requestRender()},fe=(d,x)=>{o.activity=Uv(o.activity,d,x)},Hs=new Map,uu=new Set,wS=()=>[...Hs].map(([d,x])=>`${uu.has(d)?"!":"\u2713"} ${d} \xD7${x}`).join(" | "),kS=()=>{let d=wS();fe("tally",d||void 0)},Ct=(d,x,b,y,w=!1,g=[])=>{let $=new sj(x,8,aS.selectList);$.onSelect=S=>{jn=null,Ro=void 0,b(S.value)},$.onCancel=()=>{jn=null,Ro=void 0,y?.(),U()},Ro=()=>$.onCancel?.(),ql=d,_l=w,Ul=g,jn=$,U()},A=(d,x)=>{r.items.push({id:`cmd-${Date.now()}-${r.items.length}`,kind:"note",title:d,body:x}),fe("tally",void 0),U()},ln=d=>{r.items.push({id:`err-${Date.now()}-${r.items.length}`,kind:"error",title:"failed",body:d}),fe("tally",void 0),U()};Wu((d,x)=>{let{promise:b,resolve:y}=Promise.withResolvers();return Ct(d,[{value:"allow",label:"allow"},{value:"deny",label:"deny"}],w=>y(w==="allow"),()=>y(!1),!0,gS(d,x)),b});let pu=new Map,Kl=d=>{let x=nS({select:(b,y)=>{let{promise:w,resolve:g}=Promise.withResolvers();return Ct(b,y.map($=>({value:$,label:$})),g,()=>g(void 0)),w},confirm:(b,y)=>{let{promise:w,resolve:g}=Promise.withResolvers();return Ct(`${b} \u2014 ${y}`,[{value:"yes",label:"yes"},{value:"no",label:"no"}],$=>g($==="yes"),()=>g(!1)),w},input:b=>{let{promise:y,resolve:w}=Promise.withResolvers();return fe("prompt",b),U(),pn=g=>{pn=void 0,fe("prompt",void 0),w(g),U()},y},notify:(b,y)=>{y==="error"?ln(b):A("mcp",b)},setStatus:(b,y)=>{y===void 0?pu.delete(b):pu.set(b,y),fe("note",[...pu.values()].join(" | ")||void 0),U()},setWidget:(b,y)=>{h(b,y),U()}});d.bindExtensions({uiContext:x,mode:"print",onError:b=>ln(`${b.event}: ${b.error}`)}).catch(b=>ln(b instanceof Error?b.message:String(b)))};Kl(E);let Dr=new tj,TS={invalidate:()=>r.invalidate(),render:d=>{let x=Dr.render(Math.max(20,d)).length;return r.viewportHeight=Math.max(1,Math.max(8,t.rows)-x),r.render(d)},handleMouse:d=>{let x=d.type==="wheel"?d.wheelDelta??0:0;if(x!==0)return r.scrollOffset=Math.max(0,r.scrollOffset-x*3),U(),{handled:!0}}},ES=new oj(TS,{follow:"none",overscroll:"contain"}),Vs=new aj([{component:ES,grow:1,shrink:1},{component:Dr,grow:0,shrink:0,basis:"auto"}]),Gl="",vS=()=>`${jn?"picker":"dock"}|${[...c.keys()].join(",")}`;mu=()=>{let d=vS();if(d===Gl)return;Gl=d,Dr.clear();for(let b of c.values())Dr.addChild(new ou(b));let x=jn;if(x){let b=ql,y=_l,w=Ul;Dr.addChild({render:g=>fS(x,b,g,y,w),invalidate:()=>{}})}else Dr.addChild(te);Vs.invalidate()},mu();let Wl={focused:!1,invalidate(){r.invalidate(),te.invalidate(),jn?.invalidate(),Vs.invalidate()},[lS]:()=>lj(Vs),render:d=>Vs.render(d),handleInput(d){p.handleInput(d)}};n.setLayoutRoot(Wl),n.setFocus(Wl);let ht=0,Gn="",cu=!1,Oo=!1,Nr="",zl=0,lu=!1,du=Date.now(),Js=!1,Ys=new Map,Bl=d=>{if(d.type==="agent_start"||d.type==="turn_start")d.type==="agent_start"&&cd(),o.live||o.beginRun(),Gn="",Oo=!1,lu=!1,du=Date.now(),Nr="";else if(d.type==="message_update"&&d.assistantMessageEvent.type==="thinking_delta"){Oo=!0,Nr===""&&(zl=Date.now()),Nr+=d.assistantMessageEvent.delta;let x=`think-${ht}`,b=r.items.find(w=>w.id===x),y=Nr.split(`
106
106
  `).slice(-6).join(`
107
- `);b?b.body=y:r.items.push({id:x,kind:"note",title:"thinking",body:y})}else if(d.type==="message_update"&&d.assistantMessageEvent.type==="thinking_end"){let x=`think-${ht}`,b=r.items.find(y=>y.id===x);if(b){let y=Math.max(1,Math.round((Date.now()-Gl)/1e3));b.title="thought",b.body=`${y}s \xB7 ${Dr.length} chars of reasoning`}Dr=""}else if(d.type==="message_update"&&d.assistantMessageEvent.type==="text_delta"){Oo=!0,Kn+=d.assistantMessageEvent.delta;let x=`live-${ht}`,b=r.items.find(y=>y.id===x);b?b.body=Kn:r.items.push({id:x,kind:"assistant",title:"HowToFix",body:Kn})}else if(d.type==="tool_execution_start"){Vs.set(d.toolCallId,d.args);let x=`tool-${d.toolCallId}`,b=vo(d.toolName,d.args),y=r.items.find(w=>w.id===x);if(y?(y.kind="tool",y.title=d.toolName,y.body=b,y.live=!0):r.items.push({id:x,kind:"tool",title:d.toolName,body:b,live:!0}),d.toolName==="task"){let w=Xt.filter(g=>g.status==="queued"||g.status==="running");fe("note",w.map(g=>`${g.agent} ${g.status}`).join(" | ")||"agent running")}}else if(d.type==="tool_execution_update"){let x=gS(d.toolName,d.partialResult);if(x){let b=`tool-${d.toolCallId}`,y=r.items.find(g=>g.id===b);y?y.panel=x:r.items.push({id:b,kind:"tool",title:d.toolName,body:vo(d.toolName,Vs.get(d.toolCallId)),panel:x,live:!0});let w=ou(d.toolName,d.partialResult);w&&ae!==w.name&&he(w),U()}}else if(d.type==="tool_execution_end"){o.percent=So(E);let x=r.items.find(_=>_.id===`tool-${d.toolCallId}`);x&&(x.live=!1,x.body=vo(d.toolName,Vs.get(d.toolCallId))),Vs.delete(d.toolCallId),zs.set(d.toolName,(zs.get(d.toolName)??0)+1),d.isError&&au.add(d.toolName),wS();let b=wv(d.toolName,d.result),y=kv(d.toolName,d.result),w=ou(d.toolName,d.result),g=w?Ws(w):void 0;w&&ae!==w.name&&he(w);let I=r.items.find(_=>_.id===`tool-${d.toolCallId}`),R=Ym(d.toolName,d.result,d.isError);I?(I.kind="result",I.call=I.body,I.body=R,I.live=!1,b.length>0&&(I.detail=b),y.length>0&&(I.full=y),g&&(I.panel=g)):r.items.push({id:`tool-${d.toolCallId}`,kind:"result",title:d.toolName,body:R,...b.length>0?{detail:b}:{},...y.length>0?{full:y}:{},...g?{panel:g}:{}}),(d.toolName==="bash"||d.toolName==="powershell"||d.toolName==="edit"||d.toolName==="write")&&a()}else if(d.type==="compaction_start"){Oo=!0;let x=d.reason==="manual"?"on request":"context is nearly full",b=r.items.find(g=>g.id===`compact-${ht}`),y="compacting context",w=`${x} \xB7 summarizing the older turns`;b?(b.title=y,b.body=w):r.items.push({id:`compact-${ht}`,kind:"note",title:y,body:w,live:!0}),fe("note","compacting context")}else if(d.type==="compaction_end"){let x=r.items.find(g=>g.id===`compact-${ht}`),b=d.result,y="compacted",w;if(d.aborted)w="cancelled";else if(d.errorMessage)w=`failed: ${d.errorMessage}`;else if(b){let g=Math.round(b.tokensBefore/1e3),I=b.estimatedTokensAfter!==void 0?Math.round(b.estimatedTokensAfter/1e3):void 0;w=I!==void 0?`${g}k \u2192 ${I}k tokens \xB7 older turns summarized`:`${g}k tokens \xB7 older turns summarized`}else w="nothing to compact";x?(x.title=y,x.body=w,x.live=!1):r.items.push({id:`compact-${ht}`,kind:"note",title:y,body:w}),o.percent=So(E),fe("note",void 0)}else if(d.type==="message_end"&&d.message.role==="assistant"){let x=r.items.find(b=>b.id===`live-${ht}`);x&&(x.id=`done-${ht}`),ht+=1,Kn="",o.percent=So(E)}else if(d.type==="agent_settled"){if(o.live=!1,s(Qt),Qt="",fe("run",void 0),uu){let x=r.items.find(b=>b.id===`live-${ht}`);x?(x.id=`stopped-${ht}`,x.title="stopped",x.body=Kn.trim()||"(no output)",x.live=!1):r.items.push({id:`stopped-${ht}`,kind:"note",title:"stopped",body:"run cancelled"}),ht+=1,Kn="",P("stopped","run cancelled by Esc"),uu=!1}o.percent=So(E),aS(e.cwd).then(x=>{x!==null&&(o.git=x,U())}),p.disableSubmit=!1}else d.type==="thinking_level_changed"?o.thinking=d.level:d.type==="auto_retry_start"&&fe("note",`retry ${d.attempt}/${d.maxAttempts}`);U()},lu=E.subscribe(Wl),zl=setInterval(()=>{let d=T!==void 0&&Date.now()<M;(Hs||E.isStreaming||o.settling()||r.entering()||Fn||d)&&U(),(Hs||E.isStreaming)&&!Oo&&!pu&&Date.now()-cu>yj&&(pu=!0,fe("note",`no answer yet after ${Math.round((Date.now()-cu)/1e3)}s \u2014 the provider may be stalled; ctrl+c cancels`),U())},hj);zl.unref?.();let Bl=async d=>{Ro?.(),Ro=void 0,lu(),qt&&yv(qt,E.getSessionStats().sessionId),Po=void 0,_t=0,E.dispose(),E=d.session,ht=0,Kn="",r.items=[],d.note&&r.items.push({id:"note",kind:"note",title:"note",body:d.note}),r.items.push(...Zm(E.state.messages)),o.model=d.modelLabel.split("/").at(-1)||"no-model",o.thinking=E.thinkingLevel,o.percent=So(E),o.abandonAnimations(),fe("tally",void 0),fe("run",void 0),p.setAutocompleteProvider(new oS(Ml(E),e.cwd)),p.disableSubmit=!1,_l(E),lu=E.subscribe(Wl),U()},Js=()=>{ze||(ze=!0,clearInterval(zl),lu(),E.dispose(),n.stop(),process.stdout.write("\x1B[0m"),process.exit(0))},du=d=>{let x=d.trim();if(!x)return;if(pn){let w=pn;pn=void 0,p.setText(""),w(x);return}if(p.setText(""),p.addToHistory(x),x.startsWith("!")){let w=x.slice(1).trim();if(!w)return;r.items.push({id:`sh-${Date.now()}`,kind:"tool",title:"$",body:w}),fe("run","shell"),U(),E.executeBash(w,g=>{fe("run",`shell \xB7 ${g.length} bytes`),U()}).then(g=>{let I=g.output.trim();r.items.push({id:`sh-out-${Date.now()}`,kind:g.exitCode===0?"result":"error",title:`exit ${g.exitCode??"?"}`,body:I||"(no output)"}),fe("tally",void 0),U()}).catch(g=>ln(g instanceof Error?g.message:String(g)));return}if(x.startsWith("/")){SS(x);return}r.items.push({id:`you-${Date.now()}`,kind:"user",title:"you",body:x}),fe("tally",void 0),zs.clear(),au.clear(),fe("run","thinking"),o.beginRun(),U(),p.disableSubmit=!1;let b=Mu(x,e.cwd);Qt=x,Hs=!0;let y=E.isStreaming?E.prompt(b,{streamingBehavior:"steer"}):E.prompt(b);Hs=!1,y.catch(w=>ln(w instanceof Error?w.message:String(w)))};p.onSubmit=du;let fu=0;n.addInputListener(d=>{if(qe){if(Ot(d,"escape"))return su(),{consume:!0};let b=sS(),y=b.matches(d,"tui.select.up"),w=b.matches(d,"tui.select.down");if(y||w){let I=qe.getTreeList().getSelectedNode()?.entry.id,R=Mt(),_=I===void 0?-1:R.indexOf(I);if(y?_===0:_===R.length-1)return U(),{consume:!0}}return qe.handleInput(d),U(),{consume:!0}}if(Z&&O&&Ot(d,"escape"))return xe?(xe=!1,P("workflow","panel keys off \u2014 the editor has the keyboard")):F.expanded?(F.expanded=!1,P("workflow","collapsed the drill-in")):(Nt(),P("workflow","panel unpinned; the run is still in the transcript")),We(),U(),{consume:!0};if(Fn)return Fn.handleInput(d),U(),{consume:!0};if(Ot(d,"escape")){if(E.isStreaming)return uu=!0,E.abort(),fe("note","stopping"),U(),{consume:!0};let b=Date.now();if(p.getText().length===0&&b-fu<600)return fu=0,Fl(),{consume:!0};fu=b;return}if(Ot(d,"ctrl+c"))return E.isStreaming?(E.abort(),fe("note","stopping"),U()):p.getText().length>0?(p.setText(""),fe("note","draft cleared \u2014 ctrl+c again quits"),U()):Js(),{consume:!0};if(Ot(d,"ctrl+d")&&p.getText().length===0)return Js(),{consume:!0};let x=Math.max(1,r.viewportHeight-1);if(Ot(d,"pageUp"))return r.scrollOffset+=x,U(),{consume:!0};if(Ot(d,"pageDown"))return r.scrollOffset=Math.max(0,r.scrollOffset-x),U(),{consume:!0};if(Ot(d,"home"))return r.scrollOffset=Number.MAX_SAFE_INTEGER,U(),{consume:!0};if(Ot(d,"end"))return r.scrollOffset=0,U(),{consume:!0};if(Ot(d,"ctrl+v")){let b=mj();return b?(b.getText().then(y=>{typeof y!="string"||y.length===0?P("paste","the clipboard is empty"):p.insertTextAtCursor(y),U()}).catch(y=>{P("paste",`could not read the clipboard: ${y instanceof Error?y.message:String(y)}`),U()}),{consume:!0}):(P("paste","no clipboard tool found on this machine"),U(),{consume:!0})}if(Ot(d,"ctrl+l"))return r.scrollOffset=0,n.scrollToBottom(),U(),{consume:!0};if(Ot(d,"ctrl+e")){let b=[...r.items].reverse().find(y=>(y.full?.length??0)>0);return b?(b.expanded=b.expanded!==!0,U(),{consume:!0}):(P("expand","nothing to expand in this transcript yet"),{consume:!0})}if(Ot(d,"ctrl+o")&&!E.isStreaming)return r.items=[{id:"cleared",kind:"note",title:"bench",body:"screen cleared. session history is still stored."}],U(),{consume:!0};if(Ot(d,Xv)&&Z&&O)return xe=!xe,P("workflow",xe?"panel keys active \u2014 Esc gives the keyboard back":"panel keys off \u2014 the editor has the keyboard"),We(),U(),{consume:!0};if(xe&&Z&&O){let b=Hv(d);if(b){let y=Eo(O,Date.now());if(b==="stop")return q?(q(),q=null,P("workflow","stopping the run \u2014 in-flight agents resolve as null")):P("workflow","the run has already finished"),{consume:!0};if(b==="save"){let w=Qv(ke,Iu);return P("workflow",w.ok?`saved ${w.path}`:w.reason),U(),{consume:!0}}return Object.assign(F,Vv(F,b,y)),We(),U(),{consume:!0}}}});let gu=d=>{let x=b=>{fe("prompt",`API key for ${b}. Paste it, then press enter.`),U();let y=pn;pn=w=>{pn=y;let g=w.trim();if(!g){fe("prompt",void 0),U();return}E.modelRuntime.setRuntimeApiKey(b,g).then(()=>P("login",`saved API key for ${b}`),I=>P("login",I instanceof Error?I.message:String(I)))}};if(d){x(d);return}E.modelRuntime.getAvailable().then(b=>{let y=[...new Set(b.map(w=>w.provider))].sort();if(y.length===0){P("login","no providers are configured; pass one explicitly, e.g. /login nrimo");return}Ct("Login",y.map(w=>({value:w,label:w})),x)},b=>P("login",b instanceof Error?b.message:String(b)))},vS=async(d,x)=>{let b=rS(Xe,"models.json"),y,w=!1;try{y=JSON.parse(JF(b,"utf8"))}catch(hu){if(!(hu instanceof Error&&"code"in hu&&hu.code==="ENOENT"))return`could not read ${b}; the models were not added`;y={providers:{}},w=!0}(!y.providers||typeof y.providers!="object")&&(y.providers={});let g=y.providers[d];g||(g=Tu(),y.providers[d]=g,w=!0);let I=Array.isArray(g.models)?g.models:[],R=Pu(I,x),_=ni(Su(I,x));g.models=_.models;try{VF(Xe,{recursive:!0}),Ze(b,`${JSON.stringify(y,null,2)}
108
- `)}catch{return`could not write ${b}; the models were not added`}let Le=!1;try{await E.modelRuntime.refresh(),Le=!0}catch{Le=!1}let dn=_.changed>0?`, repaired ${_.changed}`:"",Ut=Le?"":"; restart the CLI to see them all",Ys=w?` (created ${b})`:"";return R===0?`all ${x.length} models were already configured${dn}${Ys}${Ut}`:`added ${R} model(s) to "${d}"${dn}${Ys}${Ut}`},xu=d=>{(async()=>{if(!d){let I=await Gv(ei);P("connect",["connect your howtofix.id account:",` 1. ${I?"the token page is opening in your browser":`open ${ei}`}`," 2. sign in if asked, then create a token (starts with sk-)"," 3. run /connect <token>"," or /connect, and paste the token when asked","","howtofix.id has no OAuth callback for a local client, so the token is","how this CLI signs in. The token is verified before it is stored."].join(`
109
- `)),U();return}if(!vu(d)){P("connect","that does not look like a howtofix token; the Console issues tokens that start with sk-");return}fe("note",`connecting to howtofix.id (${ti(d)})`),U();let x=await Ru(d);if(!x.ok){fe("note",void 0),P("connect",x.message),U();return}await E.modelRuntime.setRuntimeApiKey("howtofix",d);let b=await vS("howtofix",x.models),y=!!E.model&&E.model?.provider!==void 0&&o.model!=="unknown",w,g;if(!y)try{let I=(await E.modelRuntime.getAvailable()).filter(Le=>Co(Le.provider)),_=lS(I.map(Le=>Le.id)).slice(0,4);for(let Le of _){if(!(await Au(Le,d)).ok)continue;let Ut=I.find(Ys=>Ys.id===Le);if(Ut){await E.setModel(Ut),o.model=Ut.id,w=`${Ut.provider}/${Ut.id}`;break}}w||(g=_.length>0?`none of the first ${_.length} models answered (${_[0]} did not)`:"the account lists no chat model")}catch(I){g=I instanceof Error?I.message:String(I)}fe("note",void 0),P("connect",[`connected ${ti(d)} \u2014 ${x.message}`,b,w?`using ${w} (change it with /model)`:`pick a model with /model, then send a prompt${g?` (auto-select failed: ${g})`:""}`].join(`
110
- `)),U()})().catch(x=>{fe("note",void 0),P("connect",x instanceof Error?x.message:String(x)),U()})},SS=async d=>{let[x,...b]=d.slice(1).split(/\s+/),y=b.join(" ");if(x==="quit"||x==="exit"){Js();return}if(x==="help"){P("help",Ml(E).map(g=>`/${g.name} ${g.description??""}`).join(`
111
- `));return}if(x==="init"){let g=rS(e.cwd,"AGENTS.md");if(HF(g)&&y!=="force"){P("init",`AGENTS.md already exists at ${g}. run /init force to overwrite.`);return}Ze(g,Jl),P("init",`wrote ${g}; asking the agent to fill it in`),await E.prompt("Read AGENTS.md, then fill it in with the real build, test, and layout facts of this repo. Keep it short.");return}if(x==="login"){gu(y);return}if(x==="connect"){if(y.trim()){xu(y.trim());return}xu(""),fe("prompt","paste your howtofix.id token, then press enter"),U();let g=pn;pn=I=>{pn=g,fe("prompt",void 0),xu(I.trim())};return}if(x==="logout"){let g=await E.modelRuntime.getAvailable(),I=[...new Set(g.map(R=>R.provider))].sort();if(I.length===0){P("logout","no providers are configured");return}Ct("Logout",I.map(R=>({value:R,label:R})),R=>{E.modelRuntime.logout(R).then(()=>P("logout",`logged out ${R}`),_=>P("logout",_ instanceof Error?_.message:String(_)))});return}if(x==="providers"){let g=await E.modelRuntime.getAvailable(),I=[...new Set(g.map(R=>R.provider))].sort();I.sort((R,_)=>Number(Co(_))-Number(Co(R))),Ct("Providers",I.map(R=>({value:R,label:R})),R=>{let _=E.modelRuntime.getModels(R);if(_.length===0){gu(R);return}Ct(R,_.map(Le=>({value:Le.id,label:Le.id})),Le=>{let dn=_.find(Ut=>Ut.id===Le);dn&&E.setModel(dn).then(()=>{o.model=dn.id,P("providers",`${R}/${dn.id}`)},()=>gu(R))})});return}if(x==="name"){if(!y){P("name","usage: /name <session name>");return}E.setSessionName(y),P("name",`session name: ${y}`);return}if(x==="stats"){let g=E.getSessionStats(),I=E.getContextUsage(),R=_=>Number.isFinite(_)?String(_):"\u2014";P("stats",[`session ${g.sessionId}`,g.sessionFile?`file ${g.sessionFile}`:"not persisted",`messages ${R(g.totalMessages)} (user ${R(g.userMessages)}, assistant ${R(g.assistantMessages)}, tools ${R(g.toolCalls)})`,`tokens in ${R(g.tokens.input)} out ${R(g.tokens.output)} cache ${R(g.tokens.cacheRead)}/${R(g.tokens.cacheWrite)}`,`cost $${Number.isFinite(g.cost)?g.cost.toFixed(4):"\u2014"}`,I?`context ${I.percent===null||!Number.isFinite(I.percent)?"?":`${Math.round(I.percent)}%`} of ${I.contextWindow}`:"context unknown"].join(`
112
- `));return}if(x==="diff"){let g=async dn=>{try{let{stdout:Ut}=await Cl("git",dn,{cwd:e.cwd,encoding:"utf8"});return Ut.trim()}catch{return""}},I=await g(["diff","--stat"])+`
113
-
114
- `+await g(["diff","--","."]),[R="",_=""]=I.split(`
115
-
116
- `,2),Le=$E(_);P("diff",[R.trim(),Le].filter(Boolean).join(`
117
-
118
- `)||"working tree clean");return}if(x==="copy"){let g=[...E.state.messages].reverse().find(_=>_.role==="assistant"),R=(Array.isArray(g?.content)?g.content:[]).filter(_=>_.type==="text").map(_=>_.text).join("");if(!R){P("copy","nothing to copy");return}try{await ZF(R),P("copy",`copied ${R.length} characters`)}catch(_){P("copy",_ instanceof Error?_.message:String(_))}return}if(x==="export"){let g=r.items.filter(_=>_.body.trim().length>0);if(g.length===0){P("export","nothing to export yet \u2014 the transcript is empty");return}let I=XF(e.cwd,y||`howtofix-session-${Date.now()}.md`),R=[`# ${yt} session`,"",`model ${o.model}`,""];for(let _ of g)R.push(`## ${_.title||_.kind}`,"",_.body,"");try{Ze(I,R.join(`
119
- `))}catch(_){P("export",`could not write ${I}: ${_ instanceof Error?_.message:String(_)}`);return}P("export",`wrote ${I}`);return}if(x==="agents"){let[g="",...I]=y.split(/\s+/).filter(Boolean),R=I.join(" ").trim();if(g&&R){P("agents",await fE(g,R));return}P("agents",g?el(g):Qc());return}if(x==="new"){let g=await e.reopen({noSession:!1});await Bl(g),P("new","started a new session");return}if(x==="resume"){let g=await QF.list(e.cwd);if(g.length===0){P("resume","no saved sessions for this folder");return}Ct("Resume session",g.slice(0,30).map(I=>({value:I.path,label:I.name||`${I.id.slice(0,8)} ${I.firstMessage.slice(0,40)}`,description:`${I.modified.toISOString().slice(0,16)} ${I.messageCount} messages`})),I=>{e.reopen({sessionPath:I}).then(Bl,R=>ln(R instanceof Error?R.message:String(R)))});return}if(x==="model"){let g=await E.modelRuntime.getAvailable(),I=y?g.find(R=>`${R.provider}/${R.id}`===y||R.id===y):void 0;if(!y){Ct("Select model",g.map(R=>({value:`${R.provider}/${R.id}`,label:R.id,description:R.provider})),R=>{let _=g.find(Le=>`${Le.provider}/${Le.id}`===R);_&&E.setModel(_).then(()=>{o.model=_.id,P("model",`model ${R}`)})});return}if(!I){P("model",`unknown model ${y}`);return}await E.setModel(I),o.model=I.id,P("model",`model ${I.provider}/${I.id}`);return}if(x==="thinking"){if(!y){Ct("Thinking level",Ol.map(g=>({value:g,label:g})),g=>{E.setThinkingLevel(g),o.thinking=g,P("thinking",`thinking ${g}`)});return}if(!Ol.includes(y)){P("thinking",`thinking: ${Ol.join(", ")}`);return}E.setThinkingLevel(y),o.thinking=y,P("thinking",`thinking ${y}`);return}if(x==="compact"){try{await E.compact(y||void 0),P("compact","session compacted")}catch(g){P("compact",g instanceof Error?g.message:String(g))}return}if(x==="approval"){let g=I=>{_u(I),P("approval",ai[I])};if(!y){Ct("Approval mode",_r.map(I=>({value:I,label:I,description:ai[I]})),I=>g(I));return}if(!_r.includes(y)){P("approval",`modes: ${_r.join(", ")}`);return}g(y);return}if(x==="tools"){let g=E.getActiveToolNames().sort();P("tools",g.length?g.join(`
120
- `):"no tools enabled");return}if(x==="rewind"){Fl();return}if(x==="undo"){if(!await Um(e.cwd)){P("undo","not a git repository");return}let g=await bE(e.cwd);P("undo",g.ok?`undone: ${g.output}`:`undo failed: ${g.output}`),a(!0);return}if(x==="commit"){if(!Um(e.cwd)){P("commit","not a git repository");return}if(!await hE(e.cwd)){P("commit","nothing to commit");return}let g=y||`howtofix: session update ${new Date().toISOString().slice(0,16)}`,I=await yE(e.cwd,g);P("commit",I.ok?I.output:`commit failed: ${I.output}`),a(!0);return}if(x==="review"){if(!(await IE(e.cwd)).trim()){P("review","no changes to review");return}du("Review the uncommitted changes. Report concrete issues with file evidence. Do not edit files.");return}if(x==="workflow"){if(y.trim()==="clear"){Nt(),P("workflow","cleared the pinned workflow panel");return}if(!O){P("workflow","no workflow run in this session yet");return}let g=Eo(O,Date.now()),I=g[F.selectedPhase];P("workflow",[`panel ${Z?"pinned above the editor":"unpinned"}`,`phase ${F.selectedPhase+1}/${g.length}: ${I?.title??"(none)"}`,`filter: ${F.filter}${F.paused?" \xB7 paused":""}`,"keys: \u2191/\u2193 phase \xB7 Enter drill in \xB7 Esc unpin \xB7 f filter \xB7 p pause \xB7 x stop \xB7 s save","clear it with /workflow clear"].join(`
121
- `));return}if(x==="plan"){if(ZT()||Fm().state==="pending"){ko(YT(Fm())),P("plan","plan mode off \u2014 edits are allowed again");return}ko(JT(Fm())),P("plan",`plan mode armed \u2014 send your next prompt to start planning
122
- plan file: ${XT()??"(unknown)"}`);return}if(x==="goal"){let g=y.trim();if(!g){P("goal",Am(Rm()));return}let{goal:I,error:R}=Gc(Rm(),"set",g,void 0,void 0);if(R){ln(R);return}an(I),await E.sendCustomMessage({customType:mr,content:g,display:!1,details:I}),P("goal",`goal set
123
- ${Am(I)}`);return}if(x==="session"){let g=E.model;P("session",g?`${g.provider}/${g.id}`:"no model");return}let w=E.extensionRunner.getCommand(x??"");if(w){try{await w.handler(y,E.extensionRunner.createCommandContext())}catch(g){ln(g instanceof Error?g.message:String(g))}return}P("command",`/${x??""} is not available in this screen yet`)};vd((d,x)=>{let{promise:b,resolve:y}=Promise.withResolvers();return Ct(d,x.map(w=>({value:w,label:w})),y,()=>y("cancelled")),b}),process.on("SIGTERM",Js),t.setTitle(`${yt} ${Nr}`),gj(),n.start(),n.requestRender(!0),e.initialPrompt&&du(e.initialPrompt),await new Promise(()=>{})}var iS,Ol,cS,Cl,tu,nu,ru,lj,dj,pn,hj,yj,hS=m(()=>{Mo();fl();bv();Cu();vv();Ls();Nv();Pl();Cs();Wu();El();Kv();Ds();ul();Ou();Wv();Gn();eS();tl();mi();Lu();Mm();Hc();nS();Wn();iS={borderColor:()=>"",selectList:{selectedPrefix:e=>X(e,D.accent),selectedText:e=>X(e,D.text,{bold:!0}),description:e=>X(e,D.mute),scrollInfo:e=>X(e,D.dim),noMatch:e=>X(e,D.mute)}},Ol=["off","minimal","low","medium","high","xhigh","max"],cS=Symbol.for("@earendil-works/pi-tui/layout-node");Cl=BF(zF);tu=class{folder;model;git;percent=0;meter=new Bm(0);activity=qv();live=!1;activitySince=Date.now();thinking="medium";cubence="";constructor(t,n){this.folder=YF(t),this.model=n.split("/").at(-1)||"no-model",this.git=""}invalidate(){}settling(){return this.meter.moving}meterValue(){return this.meter.value!==this.percent&&this.meter.set(this.percent),this.meter.step()}beginRun(){this.live=!0,this.activitySince=Date.now()}waitedMs(){return Date.now()-this.activitySince}abandonAnimations(){this.meter.snap(this.percent)}render(t){let n=Date.now(),r=this.percent===0&&this.meter.value===0?0:this.meterValue(),o=Ov(this.model,this.thinking,this.folder,this.git),s=[Gs(`${Mv(o,this.live?wl():"",this.live?this.waitedMs():void 0)} ${Cv(r,this.cubence)}`,t)],a=tE();a&&s.push(Gs(X(a,D.warn),t));let p=qT(Rm());p&&s.push(Gs(X(p,D.accent),t));let c=Uv(this.activity,wl(),n),h=this.live?mv(c,{base:cl(this.waitedMs(),D.mute,D.warn,D.bad),bright:D.text,charMs:45},n):X(c,cl(this.waitedMs(),D.mute,D.warn,D.bad));return s.push(Gs(h,t)),s}},nu=class{constructor(t){this.draw=t}draw;render(t){return this.draw(t)}invalidate(){}},ru=class{constructor(t,n){this.editor=t;this.hud=n}editor;hud;focused=!1;invalidate(){this.editor.invalidate()}render(t){let n=Math.max(10,t-4),r=this.editor.render(n).filter(p=>eu(p)>0),o=r.length>0?r:[""],s="\u2500".repeat(Math.max(0,t-2)),a=o.map(p=>{let c=Math.max(0,n-eu(p));return`\u2502 ${p}${" ".repeat(c)} \u2502`});return[`\u250C${s}\u2510`,...a,`\u2514${s}\u2518`,...this.hud.render(t)]}handleInput(t){this.editor.handleInput(t)}},lj=["deepseek","qwen","claude","gpt-5","gpt-4","gemini","glm","mimo","kimi","llama"],dj=/(image|embedding|embed|whisper|tts|audio|video|rerank|moderation|dall-e|stable-diffusion|sora)/i;hj=1e3/30,yj=45e3});Mo();var Yl={off:!0,minimal:!0,low:!0,medium:!0,high:!0,xhigh:!0,max:!0},Xl={suggest:!0,"auto-edit":!0,"full-auto":!0};function Xs(e,t,n){let r=e[t];if(r?.includes("="))return r.slice(r.indexOf("=")+1);let o=e[t+1];if(!o||o.startsWith("-"))throw new Error(`${n} needs a value`);return e.splice(t+1,1),o}function Zl(e){let t={print:!1,continueSession:!1,noSession:!1,help:!1,version:!1,prompt:""},n=[],r=[...e];for(let o=0;o<r.length;o++){let s=r[o]??"";if(s==="--"){n.push(...r.slice(o+1));break}if(s==="-h"||s==="--help")t.help=!0;else if(s==="-v"||s==="--version")t.version=!0;else if(s==="-p"||s==="--print")t.print=!0;else if(s==="-c"||s==="--continue")t.continueSession=!0;else if(s==="--no-session")t.noSession=!0;else if(s==="-r"||s==="--resume")t.continueSession=!0;else if(s==="--session"||s.startsWith("--session="))t.sessionPath=Xs(r,o,"--session");else if(s==="-m"||s==="--model"||s.startsWith("--model="))t.model=Xs(r,o,"--model");else if(s==="--thinking"||s.startsWith("--thinking="))t.thinking=Xs(r,o,"--thinking");else if(s==="--approval"||s.startsWith("--approval="))t.approval=Xs(r,o,"--approval");else{if(s.startsWith("-"))throw new Error(`unknown option ${s}`);n.push(s)}}if(t.thinking&&!Yl[t.thinking])throw new Error(`thinking must be one of: ${Object.keys(Yl).join(", ")}`);if(t.approval&&!Xl[t.approval])throw new Error(`approval must be one of: ${Object.keys(Xl).join(", ")}`);if(t.continueSession&&t.noSession)throw new Error("--continue and --no-session cannot be combined");if(t.sessionPath&&t.noSession)throw new Error("--session and --no-session cannot be combined");if(t.sessionPath&&t.continueSession)throw new Error("--session and --continue cannot be combined");if(t.print&&(t.continueSession||t.sessionPath))throw new Error("--print runs one prompt in a throwaway session; it cannot be combined with --continue or --session");if(t.sessionPath&&!t.sessionPath.endsWith(".jsonl"))throw new Error(`--session expects a session file, got '${t.sessionPath}'`);return t.prompt=n.join(" ").trim(),t}function yu(){return`${yt} ${Nr}
107
+ `);b?b.body=y:r.items.push({id:x,kind:"note",title:"thinking",body:y})}else if(d.type==="message_update"&&d.assistantMessageEvent.type==="thinking_end"){let x=`think-${ht}`,b=r.items.find(y=>y.id===x);if(b){let y=Math.max(1,Math.round((Date.now()-zl)/1e3));b.title="thought",b.body=`${y}s \xB7 ${Nr.length} chars of reasoning`}Nr=""}else if(d.type==="message_update"&&d.assistantMessageEvent.type==="text_delta"){Oo=!0,Gn+=d.assistantMessageEvent.delta;let x=`live-${ht}`,b=r.items.find(y=>y.id===x);b?b.body=Gn:r.items.push({id:x,kind:"assistant",title:"HowToFix",body:Gn})}else if(d.type==="tool_execution_start"){Ys.set(d.toolCallId,d.args);let x=`tool-${d.toolCallId}`,b=vo(d.toolName,d.args),y=r.items.find(w=>w.id===x);if(y?(y.kind="tool",y.title=d.toolName,y.body=b,y.live=!0):r.items.push({id:x,kind:"tool",title:d.toolName,body:b,live:!0}),d.toolName==="task"){let w=Xt.filter(g=>g.status==="queued"||g.status==="running");fe("note",w.map(g=>`${g.agent} ${g.status}`).join(" | ")||"agent running")}}else if(d.type==="tool_execution_update"){let x=xS(d.toolName,d.partialResult);if(x){let b=`tool-${d.toolCallId}`,y=r.items.find(g=>g.id===b);y?y.panel=x:r.items.push({id:b,kind:"tool",title:d.toolName,body:vo(d.toolName,Ys.get(d.toolCallId)),panel:x,live:!0});let w=iu(d.toolName,d.partialResult);w&&ae!==w.name&&he(w),U()}}else if(d.type==="tool_execution_end"){o.percent=So(E);let x=r.items.find(q=>q.id===`tool-${d.toolCallId}`);x&&(x.live=!1,x.body=vo(d.toolName,Ys.get(d.toolCallId))),Ys.delete(d.toolCallId),Hs.set(d.toolName,(Hs.get(d.toolName)??0)+1),d.isError&&uu.add(d.toolName),kS();let b=kv(d.toolName,d.result),y=Tv(d.toolName,d.result),w=iu(d.toolName,d.result),g=w?Bs(w):void 0;w&&ae!==w.name&&he(w);let $=r.items.find(q=>q.id===`tool-${d.toolCallId}`),S=Zm(d.toolName,d.result,d.isError);$?($.kind="result",$.call=$.body,$.body=S,$.live=!1,b.length>0&&($.detail=b),y.length>0&&($.full=y),g&&($.panel=g)):r.items.push({id:`tool-${d.toolCallId}`,kind:"result",title:d.toolName,body:S,...b.length>0?{detail:b}:{},...y.length>0?{full:y}:{},...g?{panel:g}:{}}),(d.toolName==="bash"||d.toolName==="powershell"||d.toolName==="edit"||d.toolName==="write")&&a()}else if(d.type==="compaction_start"){Oo=!0;let x=d.reason==="manual"?"on request":"context is nearly full",b=r.items.find(g=>g.id===`compact-${ht}`),y="compacting context",w=`${x} \xB7 summarizing the older turns`;b?(b.title=y,b.body=w):r.items.push({id:`compact-${ht}`,kind:"note",title:y,body:w,live:!0}),fe("note","compacting context")}else if(d.type==="compaction_end"){let x=r.items.find(g=>g.id===`compact-${ht}`),b=d.result,y="compacted",w;if(d.aborted)w="cancelled";else if(d.errorMessage)w=`failed: ${d.errorMessage}`;else if(b){let g=Math.round(b.tokensBefore/1e3),$=b.estimatedTokensAfter!==void 0?Math.round(b.estimatedTokensAfter/1e3):void 0,S=b.estimatedTokensAfter!==void 0?b.tokensBefore-b.estimatedTokensAfter:void 0,q=S!==void 0&&S<2e3;w=$!==void 0?`${g}k \u2192 ${$}k tokens \xB7 older turns summarized${q?`
108
+ this freed almost nothing \u2014 the window may be too small for this work`:""}`:`${g}k tokens \xB7 older turns summarized`}else w="nothing to compact";x?(x.title=y,x.body=w,x.live=!1):r.items.push({id:`compact-${ht}`,kind:"note",title:y,body:w}),o.percent=So(E),fe("note",void 0)}else if(d.type==="message_end"&&d.message.role==="assistant"){let x=r.items.find(b=>b.id===`live-${ht}`);x&&(x.id=`done-${ht}`),ht+=1,Gn="",o.percent=So(E)}else if(d.type==="agent_settled"){if(o.live=!1,s(Qt),Qt="",fe("run",void 0),cu){let x=r.items.find(b=>b.id===`live-${ht}`);x?(x.id=`stopped-${ht}`,x.title="stopped",x.body=Gn.trim()||"(no output)",x.live=!1):r.items.push({id:`stopped-${ht}`,kind:"note",title:"stopped",body:"run cancelled"}),ht+=1,Gn="",A("stopped","run cancelled by Esc"),cu=!1}o.percent=So(E),mS(e.cwd).then(x=>{x!==null&&(o.git=x,U())}),p.disableSubmit=!1}else d.type==="thinking_level_changed"?o.thinking=d.level:d.type==="auto_retry_start"&&fe("note",`retry ${d.attempt}/${d.maxAttempts}`);U()},fu=E.subscribe(Bl),Hl=setInterval(()=>{let d=T!==void 0&&Date.now()<M;(Js||E.isStreaming||o.settling()||r.entering()||jn||d)&&U(),(Js||E.isStreaming)&&!Oo&&!lu&&Date.now()-du>bj&&(lu=!0,fe("note",`no answer yet after ${Math.round((Date.now()-du)/1e3)}s \u2014 the provider may be stalled; ctrl+c cancels`),U())},yj);Hl.unref?.();let Vl=async d=>{Ro?.(),Ro=void 0,fu(),qt&&bv(qt,E.getSessionStats().sessionId),Po=void 0,_t=0,E.dispose(),E=d.session,ht=0,Gn="",r.items=[],d.note&&r.items.push({id:"note",kind:"note",title:"note",body:d.note}),r.items.push(...eu(E.state.messages)),o.model=d.modelLabel.split("/").at(-1)||"no-model",o.thinking=E.thinkingLevel,o.percent=So(E),o.abandonAnimations(),fe("tally",void 0),fe("run",void 0),p.setAutocompleteProvider(new sS(Ll(E),e.cwd)),p.disableSubmit=!1,Kl(E),fu=E.subscribe(Bl),U()},Xs=()=>{ze||(ze=!0,clearInterval(Hl),fu(),E.dispose(),n.stop(),process.stdout.write("\x1B[0m"),process.exit(0))},gu=d=>{let x=d.trim();if(!x)return;if(pn){let w=pn;pn=void 0,p.setText(""),w(x);return}if(p.setText(""),p.addToHistory(x),x.startsWith("!")){let w=x.slice(1).trim();if(!w)return;r.items.push({id:`sh-${Date.now()}`,kind:"tool",title:"$",body:w}),fe("run","shell"),U(),E.executeBash(w,g=>{fe("run",`shell \xB7 ${g.length} bytes`),U()}).then(g=>{let $=g.output.trim();r.items.push({id:`sh-out-${Date.now()}`,kind:g.exitCode===0?"result":"error",title:`exit ${g.exitCode??"?"}`,body:$||"(no output)"}),fe("tally",void 0),U()}).catch(g=>ln(g instanceof Error?g.message:String(g)));return}if(x.startsWith("/")){PS(x);return}r.items.push({id:`you-${Date.now()}`,kind:"user",title:"you",body:x}),fe("tally",void 0),Hs.clear(),uu.clear(),fe("run","thinking"),o.beginRun(),U(),p.disableSubmit=!1;let b=Lu(x,e.cwd);Qt=x,Js=!0;let y=E.isStreaming?E.prompt(b,{streamingBehavior:"steer"}):E.prompt(b);Js=!1,y.catch(w=>ln(w instanceof Error?w.message:String(w)))};p.onSubmit=gu;let xu=0;n.addInputListener(d=>{if(qe){if(Ot(d,"escape"))return au(),{consume:!0};let b=iS(),y=b.matches(d,"tui.select.up"),w=b.matches(d,"tui.select.down");if(y||w){let $=qe.getTreeList().getSelectedNode()?.entry.id,S=Mt(),q=$===void 0?-1:S.indexOf($);if(y?q===0:q===S.length-1)return U(),{consume:!0}}return qe.handleInput(d),U(),{consume:!0}}if(Z&&O&&Ot(d,"escape"))return xe?(xe=!1,A("workflow","panel keys off \u2014 the editor has the keyboard")):F.expanded?(F.expanded=!1,A("workflow","collapsed the drill-in")):(Nt(),A("workflow","panel unpinned; the run is still in the transcript")),We(),U(),{consume:!0};if(jn)return jn.handleInput(d),U(),{consume:!0};if(Ot(d,"escape")){if(E.isStreaming)return cu=!0,E.abort(),fe("note","stopping"),U(),{consume:!0};let b=Date.now();if(p.getText().length===0&&b-xu<600)return xu=0,Dl(),{consume:!0};xu=b;return}if(Ot(d,"ctrl+c"))return E.isStreaming?(E.abort(),fe("note","stopping"),U()):p.getText().length>0?(p.setText(""),fe("note","draft cleared \u2014 ctrl+c again quits"),U()):Xs(),{consume:!0};if(Ot(d,"ctrl+d")&&p.getText().length===0)return Xs(),{consume:!0};let x=Math.max(1,r.viewportHeight-1);if(Ot(d,"pageUp"))return r.scrollOffset+=x,U(),{consume:!0};if(Ot(d,"pageDown"))return r.scrollOffset=Math.max(0,r.scrollOffset-x),U(),{consume:!0};if(Ot(d,"home"))return r.scrollOffset=Number.MAX_SAFE_INTEGER,U(),{consume:!0};if(Ot(d,"end"))return r.scrollOffset=0,U(),{consume:!0};if(Ot(d,"ctrl+v")){let b=uj();return b?(b.getText().then(y=>{typeof y!="string"||y.length===0?A("paste","the clipboard is empty"):p.insertTextAtCursor(y),U()}).catch(y=>{A("paste",`could not read the clipboard: ${y instanceof Error?y.message:String(y)}`),U()}),{consume:!0}):(A("paste","no clipboard tool found on this machine"),U(),{consume:!0})}if(Ot(d,"ctrl+l"))return r.scrollOffset=0,n.scrollToBottom(),U(),{consume:!0};if(Ot(d,"ctrl+e")){let b=[...r.items].reverse().find(y=>(y.full?.length??0)>0);return b?(b.expanded=b.expanded!==!0,U(),{consume:!0}):(A("expand","nothing to expand in this transcript yet"),{consume:!0})}if(Ot(d,"ctrl+o")&&!E.isStreaming)return r.items=[{id:"cleared",kind:"note",title:"bench",body:"screen cleared. session history is still stored."}],U(),{consume:!0};if(Ot(d,Zv)&&Z&&O)return xe=!xe,A("workflow",xe?"panel keys active \u2014 Esc gives the keyboard back":"panel keys off \u2014 the editor has the keyboard"),We(),U(),{consume:!0};if(xe&&Z&&O){let b=Vv(d);if(b){let y=Eo(O,Date.now());if(b==="stop")return _?(_(),_=null,A("workflow","stopping the run \u2014 in-flight agents resolve as null")):A("workflow","the run has already finished"),{consume:!0};if(b==="save"){let w=eS(ke,wu);return A("workflow",w.ok?`saved ${w.path}`:w.reason),U(),{consume:!0}}return Object.assign(F,Jv(F,b,y)),We(),U(),{consume:!0}}}});let hu=d=>{let x=b=>{fe("prompt",`API key for ${b}. Paste it, then press enter.`),U();let y=pn;pn=w=>{pn=y;let g=w.trim();if(!g){fe("prompt",void 0),U();return}E.modelRuntime.setRuntimeApiKey(b,g).then(()=>A("login",`saved API key for ${b}`),$=>A("login",$ instanceof Error?$.message:String($)))}};if(d){x(d);return}E.modelRuntime.getAvailable().then(b=>{let y=[...new Set(b.map(w=>w.provider))].sort();if(y.length===0){A("login","no providers are configured; pass one explicitly, e.g. /login nrimo");return}Ct("Login",y.map(w=>({value:w,label:w})),x)},b=>A("login",b instanceof Error?b.message:String(b)))},SS=async(d,x)=>{let b=oS(Xe,"models.json"),y,w=!1;try{y=JSON.parse(YF(b,"utf8"))}catch(bu){if(!(bu instanceof Error&&"code"in bu&&bu.code==="ENOENT"))return`could not read ${b}; the models were not added`;y={providers:{}},w=!0}(!y.providers||typeof y.providers!="object")&&(y.providers={});let g=y.providers[d];g||(g=vu(),y.providers[d]=g,w=!0);let $=Array.isArray(g.models)?g.models:[],S=Ru($,x),q=oi(Au($,x));g.models=q.models;try{JF(Xe,{recursive:!0}),Ze(b,`${JSON.stringify(y,null,2)}
109
+ `)}catch{return`could not write ${b}; the models were not added`}let Le=!1;try{await E.modelRuntime.refresh(),Le=!0}catch{Le=!1}let dn=q.changed>0?`, repaired ${q.changed}`:"",Ut=Le?"":"; restart the CLI to see them all",Zs=w?` (created ${b})`:"";return S===0?`all ${x.length} models were already configured${dn}${Zs}${Ut}`:`added ${S} model(s) to "${d}"${dn}${Zs}${Ut}`},yu=d=>{(async()=>{if(!d){let $=await Wv(ni);A("connect",["connect your howtofix.id account:",` 1. ${$?"the token page is opening in your browser":`open ${ni}`}`," 2. sign in if asked, then create a token (starts with sk-)"," 3. run /connect <token>"," or /connect, and paste the token when asked","","howtofix.id has no OAuth callback for a local client, so the token is","how this CLI signs in. The token is verified before it is stored."].join(`
110
+ `)),U();return}if(!Pu(d)){A("connect","that does not look like a howtofix token; the Console issues tokens that start with sk-");return}fe("note",`connecting to howtofix.id (${ri(d)})`),U();let x=await Mu(d);if(!x.ok){fe("note",void 0),A("connect",x.message),U();return}await E.modelRuntime.setRuntimeApiKey("howtofix",d);let b=await SS("howtofix",x.models),y=!!E.model&&E.model?.provider!==void 0&&o.model!=="unknown",w,g;if(!y)try{let $=(await E.modelRuntime.getAvailable()).filter(Le=>Co(Le.provider)),q=dS($.map(Le=>Le.id)).slice(0,4);for(let Le of q){if(!(await Ou(Le,d)).ok)continue;let Ut=$.find(Zs=>Zs.id===Le);if(Ut){await E.setModel(Ut),o.model=Ut.id,w=`${Ut.provider}/${Ut.id}`;break}}w||(g=q.length>0?`none of the first ${q.length} models answered (${q[0]} did not)`:"the account lists no chat model")}catch($){g=$ instanceof Error?$.message:String($)}fe("note",void 0),A("connect",[`connected ${ri(d)} \u2014 ${x.message}`,b,w?`using ${w} (change it with /model)`:`pick a model with /model, then send a prompt${g?` (auto-select failed: ${g})`:""}`].join(`
111
+ `)),U()})().catch(x=>{fe("note",void 0),A("connect",x instanceof Error?x.message:String(x)),U()})},PS=async d=>{let[x,...b]=d.slice(1).split(/\s+/),y=b.join(" ");if(x==="quit"||x==="exit"){Xs();return}if(x==="help"){A("help",Ll(E).map(g=>`/${g.name} ${g.description??""}`).join(`
112
+ `));return}if(x==="init"){let g=oS(e.cwd,"AGENTS.md");if(VF(g)&&y!=="force"){A("init",`AGENTS.md already exists at ${g}. run /init force to overwrite.`);return}Ze(g,Xl),A("init",`wrote ${g}; asking the agent to fill it in`),await E.prompt("Read AGENTS.md, then fill it in with the real build, test, and layout facts of this repo. Keep it short.");return}if(x==="login"){hu(y);return}if(x==="connect"){if(y.trim()){yu(y.trim());return}yu(""),fe("prompt","paste your howtofix.id token, then press enter"),U();let g=pn;pn=$=>{pn=g,fe("prompt",void 0),yu($.trim())};return}if(x==="logout"){let g=await E.modelRuntime.getAvailable(),$=[...new Set(g.map(S=>S.provider))].sort();if($.length===0){A("logout","no providers are configured");return}Ct("Logout",$.map(S=>({value:S,label:S})),S=>{E.modelRuntime.logout(S).then(()=>A("logout",`logged out ${S}`),q=>A("logout",q instanceof Error?q.message:String(q)))});return}if(x==="providers"){let g=await E.modelRuntime.getAvailable(),$=[...new Set(g.map(S=>S.provider))].sort();$.sort((S,q)=>Number(Co(q))-Number(Co(S))),Ct("Providers",$.map(S=>({value:S,label:S})),S=>{let q=E.modelRuntime.getModels(S);if(q.length===0){hu(S);return}Ct(S,q.map(Le=>({value:Le.id,label:Le.id})),Le=>{let dn=q.find(Ut=>Ut.id===Le);dn&&E.setModel(dn).then(()=>{o.model=dn.id,A("providers",`${S}/${dn.id}`)},()=>hu(S))})});return}if(x==="name"){if(!y){A("name","usage: /name <session name>");return}E.setSessionName(y),A("name",`session name: ${y}`);return}if(x==="stats"){let g=E.getSessionStats(),$=E.getContextUsage(),S=q=>Number.isFinite(q)?String(q):"\u2014";A("stats",[`session ${g.sessionId}`,g.sessionFile?`file ${g.sessionFile}`:"not persisted",`messages ${S(g.totalMessages)} (user ${S(g.userMessages)}, assistant ${S(g.assistantMessages)}, tools ${S(g.toolCalls)})`,`tokens in ${S(g.tokens.input)} out ${S(g.tokens.output)} cache ${S(g.tokens.cacheRead)}/${S(g.tokens.cacheWrite)}`,`cost $${Number.isFinite(g.cost)?g.cost.toFixed(4):"\u2014"}`,$?`context ${$.percent===null||!Number.isFinite($.percent)?"?":`${Math.round($.percent)}%`} of ${$.contextWindow}`:"context unknown"].join(`
113
+ `));return}if(x==="diff"){let g=async dn=>{try{let{stdout:Ut}=await Fl("git",dn,{cwd:e.cwd,encoding:"utf8"});return Ut.trim()}catch{return""}},$=await g(["diff","--stat"])+`
114
+
115
+ `+await g(["diff","--","."]),[S="",q=""]=$.split(`
116
+
117
+ `,2),Le=wE(q);A("diff",[S.trim(),Le].filter(Boolean).join(`
118
+
119
+ `)||"working tree clean");return}if(x==="copy"){let g=[...E.state.messages].reverse().find(q=>q.role==="assistant"),S=(Array.isArray(g?.content)?g.content:[]).filter(q=>q.type==="text").map(q=>q.text).join("");if(!S){A("copy","nothing to copy");return}try{await QF(S),A("copy",`copied ${S.length} characters`)}catch(q){A("copy",q instanceof Error?q.message:String(q))}return}if(x==="export"){let g=r.items.filter(q=>q.body.trim().length>0);if(g.length===0){A("export","nothing to export yet \u2014 the transcript is empty");return}let $=ZF(e.cwd,y||`howtofix-session-${Date.now()}.md`),S=[`# ${yt} session`,"",`model ${o.model}`,""];for(let q of g)S.push(`## ${q.title||q.kind}`,"",q.body,"");try{Ze($,S.join(`
120
+ `))}catch(q){A("export",`could not write ${$}: ${q instanceof Error?q.message:String(q)}`);return}A("export",`wrote ${$}`);return}if(x==="agents"){let[g="",...$]=y.split(/\s+/).filter(Boolean),S=$.join(" ").trim();if(g&&S){A("agents",await gE(g,S));return}A("agents",g?nl(g):tl());return}if(x==="new"){let g=await e.reopen({noSession:!1});await Vl(g),A("new","started a new session");return}if(x==="resume"){let g=await ej.list(e.cwd);if(g.length===0){A("resume","no saved sessions for this folder");return}Ct("Resume session",g.slice(0,30).map($=>({value:$.path,label:$.name||`${$.id.slice(0,8)} ${$.firstMessage.slice(0,40)}`,description:`${$.modified.toISOString().slice(0,16)} ${$.messageCount} messages`})),$=>{e.reopen({sessionPath:$}).then(Vl,S=>ln(S instanceof Error?S.message:String(S)))});return}if(x==="model"){let g=await E.modelRuntime.getAvailable(),$=y?g.find(S=>`${S.provider}/${S.id}`===y||S.id===y):void 0;if(!y){Ct("Select model",g.map(S=>({value:`${S.provider}/${S.id}`,label:S.id,description:S.provider})),S=>{let q=g.find(Le=>`${Le.provider}/${Le.id}`===S);q&&E.setModel(q).then(()=>{o.model=q.id,A("model",`model ${S}`)})});return}if(!$){A("model",`unknown model ${y}`);return}await E.setModel($),o.model=$.id,A("model",`model ${$.provider}/${$.id}`);return}if(x==="thinking"){if(!y){Ct("Thinking level",Cl.map(g=>({value:g,label:g})),g=>{E.setThinkingLevel(g),o.thinking=g,A("thinking",`thinking ${g}`)});return}if(!Cl.includes(y)){A("thinking",`thinking: ${Cl.join(", ")}`);return}E.setThinkingLevel(y),o.thinking=y,A("thinking",`thinking ${y}`);return}if(x==="compact"){try{await E.compact(y||void 0),A("compact","session compacted")}catch(g){A("compact",g instanceof Error?g.message:String(g))}return}if(x==="approval"){let g=$=>{Gu($),A("approval",ui[$])};if(!y){Ct("Approval mode",_r.map($=>({value:$,label:$,description:ui[$]})),$=>g($));return}if(!_r.includes(y)){A("approval",`modes: ${_r.join(", ")}`);return}g(y);return}if(x==="tools"){let g=E.getActiveToolNames().sort();A("tools",g.length?g.join(`
121
+ `):"no tools enabled");return}if(x==="rewind"){Dl();return}if(x==="undo"){if(!await Km(e.cwd)){A("undo","not a git repository");return}let g=await IE(e.cwd);A("undo",g.ok?`undone: ${g.output}`:`undo failed: ${g.output}`),a(!0);return}if(x==="commit"){if(!Km(e.cwd)){A("commit","not a git repository");return}if(!await yE(e.cwd)){A("commit","nothing to commit");return}let g=y||`howtofix: session update ${new Date().toISOString().slice(0,16)}`,$=await bE(e.cwd,g);A("commit",$.ok?$.output:`commit failed: ${$.output}`),a(!0);return}if(x==="review"){if(!(await $E(e.cwd)).trim()){A("review","no changes to review");return}gu("Review the uncommitted changes. Report concrete issues with file evidence. Do not edit files.");return}if(x==="workflow"){if(y.trim()==="clear"){Nt(),A("workflow","cleared the pinned workflow panel");return}if(!O){A("workflow","no workflow run in this session yet");return}let g=Eo(O,Date.now()),$=g[F.selectedPhase];A("workflow",[`panel ${Z?"pinned above the editor":"unpinned"}`,`phase ${F.selectedPhase+1}/${g.length}: ${$?.title??"(none)"}`,`filter: ${F.filter}${F.paused?" \xB7 paused":""}`,"keys: \u2191/\u2193 phase \xB7 Enter drill in \xB7 Esc unpin \xB7 f filter \xB7 p pause \xB7 x stop \xB7 s save","clear it with /workflow clear"].join(`
122
+ `));return}if(x==="plan"){if(QT()||jm().state==="pending"){ko(XT(jm())),A("plan","plan mode off \u2014 edits are allowed again");return}ko(YT(jm())),A("plan",`plan mode armed \u2014 send your next prompt to start planning
123
+ plan file: ${ZT()??"(unknown)"}`);return}if(x==="goal"){let g=y.trim();if(!g){A("goal",Rm(Om()));return}let{goal:$,error:S}=zc(Om(),"set",g,void 0,void 0);if(S){ln(S);return}an($),await E.sendCustomMessage({customType:ur,content:g,display:!1,details:$}),A("goal",`goal set
124
+ ${Rm($)}`);return}if(x==="session"){let g=E.model;A("session",g?`${g.provider}/${g.id}`:"no model");return}let w=E.extensionRunner.getCommand(x??"");if(w){try{await w.handler(y,E.extensionRunner.createCommandContext())}catch(g){ln(g instanceof Error?g.message:String(g))}return}A("command",`/${x??""} is not available in this screen yet`)};Sd((d,x)=>{let{promise:b,resolve:y}=Promise.withResolvers();return Ct(d,x.map(w=>({value:w,label:w})),y,()=>y("cancelled")),b}),process.on("SIGTERM",Xs),t.setTitle(`${yt} ${fn}`),xj(),n.start(),n.requestRender(!0),e.initialPrompt&&gu(e.initialPrompt),await new Promise(()=>{})}var aS,Cl,lS,Fl,ru,ou,su,dj,fj,pn,yj,bj,yS=m(()=>{Mo();xl();Iv();Fu();Sv();js();qv();Rl();Fs();Bu();Sl();Gv();qs();cl();Cu();zv();Wn();tS();rl();jo();ju();Cm();Jc();rS();zn();aS={borderColor:()=>"",selectList:{selectedPrefix:e=>X(e,D.accent),selectedText:e=>X(e,D.text,{bold:!0}),description:e=>X(e,D.mute),scrollInfo:e=>X(e,D.dim),noMatch:e=>X(e,D.mute)}},Cl=["off","minimal","low","medium","high","xhigh","max"],lS=Symbol.for("@earendil-works/pi-tui/layout-node");Fl=HF(BF);ru=class{folder;model;git;percent=0;meter=new Vm(0);activity=_v();live=!1;activitySince=Date.now();thinking="medium";cubence="";constructor(t,n){this.folder=XF(t),this.model=n.split("/").at(-1)||"no-model",this.git=""}invalidate(){}settling(){return this.meter.moving}meterValue(){return this.meter.value!==this.percent&&this.meter.set(this.percent),this.meter.step()}beginRun(){this.live=!0,this.activitySince=Date.now()}waitedMs(){return Date.now()-this.activitySince}abandonAnimations(){this.meter.snap(this.percent)}render(t){let n=Date.now(),r=this.percent===0&&this.meter.value===0?0:this.meterValue(),o=Mv(this.model,this.thinking,this.folder,this.git),s=[zs(`${Cv(o,this.live?Tl():"",this.live?this.waitedMs():void 0)} ${Lv(r,this.cubence)}`,t)],a=nE();a&&s.push(zs(X(a,D.warn),t));let p=_T(Om());p&&s.push(zs(X(p,D.accent),t));let c=Kv(this.activity,Tl(),n),h=this.live?uv(c,{base:dl(this.waitedMs(),D.mute,D.warn,D.bad),bright:D.text,charMs:45},n):X(c,dl(this.waitedMs(),D.mute,D.warn,D.bad));return s.push(zs(h,t)),s}},ou=class{constructor(t){this.draw=t}draw;render(t){return this.draw(t)}invalidate(){}},su=class{constructor(t,n){this.editor=t;this.hud=n}editor;hud;focused=!1;invalidate(){this.editor.invalidate()}render(t){let n=Math.max(10,t-4),r=this.editor.render(n).filter(p=>nu(p)>0),o=r.length>0?r:[""],s="\u2500".repeat(Math.max(0,t-2)),a=o.map(p=>{let c=Math.max(0,n-nu(p));return`\u2502 ${p}${" ".repeat(c)} \u2502`});return[`\u250C${s}\u2510`,...a,`\u2514${s}\u2518`,...this.hud.render(t)]}handleInput(t){this.editor.handleInput(t)}},dj=["deepseek","qwen","claude","gpt-5","gpt-4","gemini","glm","mimo","kimi","llama"],fj=/(image|embedding|embed|whisper|tts|audio|video|rerank|moderation|dall-e|stable-diffusion|sora)/i;yj=1e3/30,bj=45e3});Mo();var Zl={off:!0,minimal:!0,low:!0,medium:!0,high:!0,xhigh:!0,max:!0},Ql={suggest:!0,"auto-edit":!0,"full-auto":!0};function Qs(e,t,n){let r=e[t];if(r?.includes("="))return r.slice(r.indexOf("=")+1);let o=e[t+1];if(!o||o.startsWith("-"))throw new Error(`${n} needs a value`);return e.splice(t+1,1),o}function ed(e){let t={print:!1,continueSession:!1,noSession:!1,help:!1,version:!1,prompt:""},n=[],r=[...e];for(let o=0;o<r.length;o++){let s=r[o]??"";if(s==="--"){n.push(...r.slice(o+1));break}if(s==="-h"||s==="--help")t.help=!0;else if(s==="-v"||s==="--version")t.version=!0;else if(s==="-p"||s==="--print")t.print=!0;else if(s==="-c"||s==="--continue")t.continueSession=!0;else if(s==="--no-session")t.noSession=!0;else if(s==="-r"||s==="--resume")t.continueSession=!0;else if(s==="--session"||s.startsWith("--session="))t.sessionPath=Qs(r,o,"--session");else if(s==="-m"||s==="--model"||s.startsWith("--model="))t.model=Qs(r,o,"--model");else if(s==="--thinking"||s.startsWith("--thinking="))t.thinking=Qs(r,o,"--thinking");else if(s==="--approval"||s.startsWith("--approval="))t.approval=Qs(r,o,"--approval");else{if(s.startsWith("-"))throw new Error(`unknown option ${s}`);n.push(s)}}if(t.thinking&&!Zl[t.thinking])throw new Error(`thinking must be one of: ${Object.keys(Zl).join(", ")}`);if(t.approval&&!Ql[t.approval])throw new Error(`approval must be one of: ${Object.keys(Ql).join(", ")}`);if(t.continueSession&&t.noSession)throw new Error("--continue and --no-session cannot be combined");if(t.sessionPath&&t.noSession)throw new Error("--session and --no-session cannot be combined");if(t.sessionPath&&t.continueSession)throw new Error("--session and --continue cannot be combined");if(t.print&&(t.continueSession||t.sessionPath))throw new Error("--print runs one prompt in a throwaway session; it cannot be combined with --continue or --session");if(t.sessionPath&&!t.sessionPath.endsWith(".jsonl"))throw new Error(`--session expects a session file, got '${t.sessionPath}'`);return t.prompt=n.join(" ").trim(),t}function Iu(){return`${yt} ${fn}
124
125
  coding agent. layout is a workbench, not a chat log.
125
126
 
126
127
  usage:
@@ -163,7 +164,7 @@ a line starting with ! runs in the project shell.
163
164
 
164
165
  config and sessions live in ~/.howtofix/agent. connect your howtofix.id account
165
166
  with /connect (it opens the token page), or /login for another provider's key.
166
- `}Mo();Gn();function bj(){try{return{cwd:process.cwd()}}catch{return{error:"the current directory no longer exists (it was deleted while the shell stayed in it). cd to a directory that exists, or pass one on the command line."}}}function Ij(){process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e})}async function $j(){Ij(),$u();let e=bj();if("error"in e){console.error(`${yt}: ${e.error}`),process.exitCode=1;return}let t=e.cwd,{repairGatewayModels:n,ensureGatewaySettings:r}=await Promise.resolve().then(()=>(Ou(),id)),{AGENT_DIR:o}=await Promise.resolve().then(()=>(Gn(),Ql)),s=n(o);s>0&&console.error(`${yt}: repaired ${s} howtofix model(s) that the gateway would have rejected`),r(o)&&console.error(`${yt}: set httpIdleTimeoutMs in settings.json so a stalled provider recovers instead of hanging`);let a;try{a=Zl(process.argv.slice(2))}catch(O){let q=O instanceof Error?O.message:String(O);console.error(`${yt}: ${q}
167
- ${yu()}`),process.exitCode=2;return}if(a.help){console.log(yu());return}if(a.version){console.log(`${yt} ${Nr}`);return}if(a.print&&!a.prompt){console.error(`${yt}: --print needs a prompt`),process.exitCode=2;return}let{expandFileReferences:p}=await Promise.resolve().then(()=>(Cu(),ad)),{isApprovalMode:c,setApprovalMode:h}=await Promise.resolve().then(()=>(mi(),wd)),{openSession:$}=await Promise.resolve().then(()=>(ZE(),XE));h(a.approval&&c(a.approval)?a.approval:"full-auto");let T=O=>$({cwd:t,model:a.model,thinking:a.thinking,continueSession:O.continueSession??!1,noSession:O.noSession??!1,sessionPath:O.sessionPath}),M=await T({continueSession:a.continueSession,sessionPath:a.sessionPath,noSession:a.noSession||a.print});if(a.print){M.note&&console.error(M.note);try{await M.session.prompt(p(a.prompt,t));let O=M.session.getLastAssistantText()??"";process.stdout.write(O.endsWith(`
167
+ `}Mo();Wn();function Ij(){try{return{cwd:process.cwd()}}catch{return{error:"the current directory no longer exists (it was deleted while the shell stayed in it). cd to a directory that exists, or pass one on the command line."}}}function $j(){process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e})}async function wj(){$j(),ku();let e=Ij();if("error"in e){console.error(`${yt}: ${e.error}`),process.exitCode=1;return}let t=e.cwd,{repairGatewayModels:n,ensureGatewaySettings:r}=await Promise.resolve().then(()=>(Cu(),md)),{AGENT_DIR:o}=await Promise.resolve().then(()=>(Wn(),td)),s=n(o);s>0&&console.error(`${yt}: repaired ${s} howtofix model(s) that the gateway would have rejected`),r(o)&&console.error(`${yt}: set httpIdleTimeoutMs in settings.json so a stalled provider recovers instead of hanging`);let a;try{a=ed(process.argv.slice(2))}catch(O){let _=O instanceof Error?O.message:String(O);console.error(`${yt}: ${_}
168
+ ${Iu()}`),process.exitCode=2;return}if(a.help){console.log(Iu());return}if(a.version){console.log(`${yt} ${fn}`);return}if(a.print&&!a.prompt){console.error(`${yt}: --print needs a prompt`),process.exitCode=2;return}let{expandFileReferences:p}=await Promise.resolve().then(()=>(Fu(),ud)),{isApprovalMode:c,setApprovalMode:h}=await Promise.resolve().then(()=>(jo(),kd)),{openSession:I}=await Promise.resolve().then(()=>(QE(),ZE));h(a.approval&&c(a.approval)?a.approval:"full-auto");let T=O=>I({cwd:t,model:a.model,thinking:a.thinking,continueSession:O.continueSession??!1,noSession:O.noSession??!1,sessionPath:O.sessionPath}),M=await T({continueSession:a.continueSession,sessionPath:a.sessionPath,noSession:a.noSession||a.print});if(a.print){M.note&&console.error(M.note);try{await M.session.prompt(p(a.prompt,t));let O=M.session.getLastAssistantText()??"";process.stdout.write(O.endsWith(`
168
169
  `)?O:`${O}
169
- `);let q=M.session.state.messages.at(-1);q?.role==="assistant"&&((q.stopReason==="error"||q.stopReason==="aborted"||q.errorMessage)&&(process.exitCode=1),process.exitCode===1&&q.errorMessage&&console.error(`${yt}: ${q.errorMessage}`))}finally{M.dispose()}return}if(!process.stdin.isTTY||!process.stdout.isTTY){console.error(`${yt}: interactive mode needs a terminal. use --print for pipes.`),M.dispose(),process.exitCode=2;return}let{runWorkbench:F}=await Promise.resolve().then(()=>(hS(),xS));await F({cwd:t,modelLabel:M.modelLabel,session:M.session,initialPrompt:a.prompt||void 0,note:M.note,reopen:T})}$j().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`${yt}: ${t}`),process.exitCode=1});
170
+ `);let _=M.session.state.messages.at(-1);_?.role==="assistant"&&((_.stopReason==="error"||_.stopReason==="aborted"||_.errorMessage)&&(process.exitCode=1),process.exitCode===1&&_.errorMessage&&console.error(`${yt}: ${_.errorMessage}`))}finally{M.dispose()}return}if(!process.stdin.isTTY||!process.stdout.isTTY){console.error(`${yt}: interactive mode needs a terminal. use --print for pipes.`),M.dispose(),process.exitCode=2;return}let{runWorkbench:F}=await Promise.resolve().then(()=>(yS(),hS));await F({cwd:t,modelLabel:M.modelLabel,session:M.session,initialPrompt:a.prompt||void 0,note:M.note,reopen:T})}wj().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`${yt}: ${t}`),process.exitCode=1});