howtofixcli 0.4.26 → 0.4.27

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 +104 -102
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -1,61 +1,61 @@
1
1
  #!/usr/bin/env node
2
- var DP=Object.defineProperty;var u=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Mt=(e,t)=>{for(var n in t)DP(e,n,{get:t[n],enumerable:!0})};function Sd(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
-
4
- `).trim()}var at,Nt,Ed,Pd,Ko=u(()=>{at="HowToFix",Nt="0.4.26",Ed=["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
- `);Pd=["# Project notes","","## What this is","","## Commands","- build:","- test:","","## Conventions","-",""].join(`
6
- `)});var Od={};Mt(Od,{AGENTS_STORE_DIR:()=>Jr,AGENT_DIR:()=>Ve,CUBENCE_CACHE_PATH:()=>_m,USER_SKILLS_DIR:()=>Dm,WORKFLOWS_DIR:()=>Nm,pinAgentDir:()=>qm,projectSkillsDir:()=>hr});import{homedir as _P}from"node:os";import{join as Vr,resolve as NP}from"node:path";function qP(){let e=(process.env.HOWTOFIX_HOME??process.env.HOME??"").trim();return NP(e||_P())}function hr(e){return Vr(e,".howtofix","skills")}function qm(){process.env.PI_CODING_AGENT_DIR=Ve}var Ve,Dm,Jr,_m,Nm,Nn=u(()=>{Ve=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||Vr(qP(),".howtofix","agent"),Dm=Vr(Ve,"skills");Jr=Vr(Ve,"agents"),_m=Vr(Ve,"cubence-cache.json"),Nm=Vr(Ve,"workflows")});import{closeSync as UP,fsyncSync as KP,openSync as GP,renameSync as Cd,rmSync as Um,writeSync as WP}from"node:fs";import{dirname as BP,join as zP}from"node:path";function tt(e,t){let n=zP(BP(e),`.${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.tmp`),r=GP(n,"w");try{WP(r,t),KP(r)}finally{UP(r)}try{Cd(n,e)}catch(o){let s=o.code;if(s!=="EPERM"&&s!=="EBUSY"&&s!=="EACCES")throw Um(n,{force:!0}),o;Um(e,{force:!0});try{Cd(n,e)}catch(i){throw Um(n,{force:!0}),i}}}var Hn=u(()=>{});var qd={};Mt(qd,{DEFAULT_CONTEXT_WINDOW:()=>Dd,HOWTOFIX_BASE_URL:()=>Go,HOWTOFIX_CONSOLE_URL:()=>li,HOWTOFIX_MODEL_COMPAT:()=>Gm,HOWTOFIX_PROVIDERS:()=>Yr,HTTP_IDLE_TIMEOUT_MS:()=>jd,UNLIMITED_SENTINEL:()=>Nd,applyCompat:()=>fi,checkAccount:()=>gi,checkUsage:()=>Wo,countNewModels:()=>zm,ensureGatewaySettings:()=>YP,isHowtofixProvider:()=>xr,looksLikeToken:()=>Wm,maskToken:()=>di,mergeModels:()=>Bm,newProviderEntry:()=>Km,parseModelIds:()=>_d,probeModel:()=>Hm,repairGatewayModels:()=>JP});import{existsSync as HP,mkdirSync as VP,readFileSync as Ld}from"node:fs";import{join as Fd}from"node:path";function Km(){return{baseUrl:Go,api:"openai-completions"}}function JP(e){let t=Fd(e,"models.json"),n;try{n=JSON.parse(Ld(t,"utf8"))}catch{return 0}let r=n.providers;if(!r||typeof r!="object")return 0;let o=0;for(let s of Yr){let i=r[s];if(!i||!Array.isArray(i.models))continue;let c=fi(i.models);c.changed!==0&&(i.models=c.models,o+=c.changed)}if(o===0)return 0;try{tt(t,`${JSON.stringify(n,null,2)}
7
- `)}catch{return 0}return o}function YP(e){let t=Fd(e,"settings.json"),n={};try{let r=Ld(t,"utf8"),o=JSON.parse(r);o&&typeof o=="object"&&!Array.isArray(o)&&(n=o)}catch{if(HP(t))return!1}if("httpIdleTimeoutMs"in n)return!1;n.httpIdleTimeoutMs=jd;try{VP(e,{recursive:!0}),tt(t,`${JSON.stringify(n,null,2)}
8
- `)}catch{return!1}return!0}function di(e){let t=e.trim();return t.length<=10?"***":`${t.slice(0,6)}\u2026${t.slice(-4)}`}function Wm(e){return/^sk-[A-Za-z0-9_-]{8,}$/.test(e.trim())}function _d(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 xr(e){return Yr.includes(e)}async function XP(e,t){let n=await e(t,{headers:{Accept:"application/json"}});if(!n.ok)return"USD";let o=(await n.json())?.data?.quota_display_type;return typeof o=="string"&&o.trim()?o.trim().toUpperCase():"USD"}async function Wo(e,t){let n=(t?.baseUrl??Go).replace(/\/+$/,""),r=t?.fetchImpl??fetch,o=t?.timeoutMs??15e3,s=e.trim();if(!s)return{ok:!1,unlimited:!1,unit:"USD",message:"no token given"};let i=`${n.replace(/\/v1$/,"")}/api/status`,c=await XP(r,i).catch(()=>"USD"),p=new AbortController,f=setTimeout(()=>p.abort(),o),I={Authorization:`Bearer ${s}`};try{let[$,A]=await Promise.all([r(`${n}/dashboard/billing/subscription`,{headers:I,signal:p.signal}),r(`${n}/dashboard/billing/usage`,{headers:I,signal:p.signal})]);if($.status===401||$.status===403)return{ok:!1,unlimited:!1,unit:c,message:"the gateway rejected that token when asking for the balance"};if(!$.ok)return{ok:!1,unlimited:!1,unit:c,message:`the balance endpoint answered ${$.status}`};let O=await $.json();if(O.error?.message)return{ok:!1,unlimited:!1,unit:c,message:O.error.message};let L=Number(O.hard_limit_usd??O.soft_limit_usd??0);if(L>=Nd)return{ok:!0,unlimited:!0,unit:c,message:"this token has no quota limit"};let K=0;if(A.ok){let G=await A.json();K=Number(G.total_usage??0)/100}let V=Math.max(0,L-K);return{ok:!0,unlimited:!1,limit:L,used:K,remaining:V,unit:c,message:`${V.toFixed(2)} ${c} left of ${L.toFixed(2)} (${K.toFixed(2)} used)`}}catch($){let A=$ instanceof Error&&$.name==="AbortError";return{ok:!1,unlimited:!1,unit:c,message:A?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(f)}}function Bm(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:Dd,compat:{...Gm}}));return r}function fi(e){let t=0;return{models:e.map(r=>r.compat?.supportsDeveloperRole===!1?r:(t++,{...r,compat:{...r.compat,...Gm}})),changed:t}}function zm(e,t){let n=new Set(e.map(r=>r.id));return t.filter(r=>!n.has(r)).length}async function Hm(e,t,n){let r=(n?.baseUrl??Go).replace(/\/+$/,""),o=n?.fetchImpl??fetch,s=n?.timeoutMs??1e4,i=new AbortController,c=setTimeout(()=>i.abort(),s);try{let p=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:i.signal});if(p.ok)return{ok:!0,detail:"ok"};let f=await p.text().catch(()=>"");return{ok:!1,detail:/"message"\s*:\s*"([^"]{0,80})/.exec(f)?.[1]??`HTTP ${p.status}`}}catch(p){return{ok:!1,detail:p instanceof Error&&p.name==="AbortError"?"timed out":"unreachable"}}finally{clearTimeout(c)}}async function gi(e,t){let n=(t?.baseUrl??Go).replace(/\/+$/,""),r=t?.fetchImpl??fetch,o=t?.timeoutMs??15e3,s=e.trim();if(!s)return{ok:!1,models:[],message:"no token given"};let i=new AbortController,c=setTimeout(()=>i.abort(),o);try{let p=await r(`${n}/models`,{headers:{Authorization:`Bearer ${s}`},signal:i.signal});if(p.status===401)return{ok:!1,models:[],message:"the gateway rejected that token (401). Check it in the Console, or make a new one."};if(p.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(!p.ok)return{ok:!1,models:[],message:`the gateway answered ${p.status}`};let f=_d(await p.json());return f.length===0?{ok:!1,models:[],message:"the token works but the gateway listed no models"}:{ok:!0,models:f,message:`${f.length} models available to this token`}}catch(p){let f=p instanceof Error&&p.name==="AbortError";return{ok:!1,models:[],message:f?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(c)}}var Go,li,Yr,jd,Gm,Dd,Nd,Vm=u(()=>{Hn();Go="https://api.howtofix.id/v1",li="https://howtofix.id/keys",Yr=["howtofix","howtofix-free"];jd=9e4;Gm={supportsDeveloperRole:!1},Dd=128e3;Nd=1e8});var hi={};Mt(hi,{CHECK_TIMEOUT_MS:()=>Wd,INSTALL_TIMEOUT_MS:()=>Bd,LOCK_TIMEOUT_MS:()=>Ym,PACKAGE_NAME:()=>Bo,acquireUpdateLock:()=>Yd,autoUpdateEnabled:()=>aA,checkForUpdate:()=>oA,compareVersions:()=>zd,installUpdate:()=>sA,isInstalledCopy:()=>iA,isNewer:()=>Hd,latestVersion:()=>Zd,releaseUpdateLock:()=>Xd});import{execFile as ZP}from"node:child_process";import{existsSync as QP,mkdirSync as eA,readFileSync as tA,realpathSync as nA,statSync as Ud,unlinkSync as Gd,writeFileSync as rA}from"node:fs";import{homedir as Xm}from"node:os";import{join as Kd,sep as Jm}from"node:path";function zd(e,t){let n=i=>{let c=i.trim().split("-")[0]?.split("+")[0]??"";if(/^\d+(\.\d+)*$/.test(c))return c.split(".").map(p=>Number(p))},r=n(e),o=n(t);if(!r||!o)return 0;let s=Math.max(r.length,o.length);for(let i=0;i<s;i+=1){let c=r[i]??0,p=o[i]??0;if(c>p)return 1;if(c<p)return-1}return 0}function Hd(e,t){return e.includes("-")?!1:zd(e,t)>0}function Jd(){let t=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||Kd(Xm(),".howtofix","agent");try{eA(t,{recursive:!0})}catch{}return Kd(t,"update.lock")}function Yd(e=Date.now()){let t=Jd();try{if(QP(t)){if(e-Ud(t).mtimeMs<Ym)return!1;let r=Ud(t).mtimeMs;if(e-r<Ym)return!1;Gd(t)}return rA(t,String(process.pid),{mode:384}),!0}catch{return!0}}function Xd(){try{Gd(Jd())}catch{}}async function Zd(e){let n=await(e?.runner??Vd)("npm",["view",`${Bo}@latest`,"version","--prefer-online"],{cwd:Xm(),timeoutMs:e?.timeoutMs??Wd});if(n.code!==0)return;let r=n.stdout.trim().split(`
9
- `).pop()?.trim()??"";return/^\d+\.\d+/.test(r)?r:void 0}async function oA(e,t){let n=await Zd(t);return n?Hd(n,e)?{current:e,latest:n,available:!0,message:`HowToFix ${n} is available (you have ${e})`}:{current:e,latest:n,available:!1,message:`HowToFix ${e} is up to date`}:{current:e,available:!1,message:"could not check for a newer version"}}async function sA(e){let t=e?.runner??Vd;if(!Yd())return{ok:!1,message:"another HowToFix is already installing an update"};try{let n=e?.version?`${Bo}@${e.version}`:`${Bo}@latest`,r=await t("npm",["install","-g",n],{cwd:Xm(),timeoutMs:e?.timeoutMs??Bd});if(r.code!==0){let o=(r.stderr||r.stdout).trim().split(`
10
- `).filter(Boolean).pop()??"";return{ok:!1,message:`the update did not install${/EACCES|EPERM|permission/i.test(o)?" \u2014 npm could not write to its global directory":""}${o?`: ${o}`:""}`}}return{ok:!0,version:e?.version,message:"updated; it takes effect the next time HowToFix starts"}}catch(n){return{ok:!1,message:`the update failed: ${n instanceof Error?n.message:String(n)}`}}finally{Xd()}}function iA(e=process.argv[1]){if(!e)return!1;let t=e;try{t=nA(e)}catch{}return t.includes(`${Jm}node_modules${Jm}${Bo}${Jm}`)}function aA(e){try{return JSON.parse(tA(e,"utf8")).autoUpdate!==!1}catch{return!0}}var Bo,Wd,Bd,Ym,Vd,xi=u(()=>{Bo="howtofixcli",Wd=5e3,Bd=12e4,Ym=600*1e3;Vd=(e,t,n)=>new Promise(r=>{ZP(e,t,{cwd:n.cwd,timeout:n.timeoutMs,windowsHide:!0},(o,s,i)=>{let c=o&&typeof o.code=="number"?o.code:o?1:0;r({code:c,stdout:String(s??""),stderr:String(i??"")})})})});var Qd={};Mt(Qd,{expandFileReferences:()=>Zm});import{readFileSync as uA,statSync as mA}from"node:fs";import{isAbsolute as cA,resolve as pA}from"node:path";function Zm(e,t){return e.replace(/(^|\s)@([^\s]+)/g,(n,r,o)=>{let s=o.replace(/[),.;:]+$/,""),i=o.slice(s.length),c=cA(s)?s:pA(t,s);try{let p=mA(c);if(!p.isFile()||p.size===0||p.size>lA)return n;let f=uA(c);return f.includes(0)?n:`${r}<file name="${c}">
2
+ var zP=Object.defineProperty;var u=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Mt=(e,t)=>{for(var n in t)zP(e,n,{get:t[n],enumerable:!0})};function Md(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
+
4
+ `).trim()}var at,Nt,Rd,Od,Ko=u(()=>{at="HowToFix",Nt="0.4.27",Rd=["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
+ `);Od=["# Project notes","","## What this is","","## Commands","- build:","- test:","","## Conventions","-",""].join(`
6
+ `)});var jd={};Mt(jd,{AGENTS_STORE_DIR:()=>Jr,AGENT_DIR:()=>Ve,CUBENCE_CACHE_PATH:()=>Um,USER_SKILLS_DIR:()=>qm,WORKFLOWS_DIR:()=>Km,pinAgentDir:()=>Gm,projectSkillsDir:()=>hr});import{homedir as HP}from"node:os";import{join as Vr,resolve as VP}from"node:path";function JP(){let e=(process.env.HOWTOFIX_HOME??process.env.HOME??"").trim();return VP(e||HP())}function hr(e){return Vr(e,".howtofix","skills")}function Gm(){process.env.PI_CODING_AGENT_DIR=Ve}var Ve,qm,Jr,Um,Km,Nn=u(()=>{Ve=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||Vr(JP(),".howtofix","agent"),qm=Vr(Ve,"skills");Jr=Vr(Ve,"agents"),Um=Vr(Ve,"cubence-cache.json"),Km=Vr(Ve,"workflows")});import{closeSync as YP,fsyncSync as XP,openSync as ZP,renameSync as Dd,rmSync as Wm,writeSync as QP}from"node:fs";import{dirname as eA,join as tA}from"node:path";function tt(e,t){let n=tA(eA(e),`.${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.tmp`),r=ZP(n,"w");try{QP(r,t),XP(r)}finally{YP(r)}try{Dd(n,e)}catch(o){let s=o.code;if(s!=="EPERM"&&s!=="EBUSY"&&s!=="EACCES")throw Wm(n,{force:!0}),o;Wm(e,{force:!0});try{Dd(n,e)}catch(i){throw Wm(n,{force:!0}),i}}}var Hn=u(()=>{});var Wd={};Mt(Wd,{DEFAULT_CONTEXT_WINDOW:()=>Ud,HOWTOFIX_BASE_URL:()=>Go,HOWTOFIX_CONSOLE_URL:()=>di,HOWTOFIX_MODEL_COMPAT:()=>zm,HOWTOFIX_PROVIDERS:()=>Yr,HTTP_IDLE_TIMEOUT_MS:()=>qd,UNLIMITED_SENTINEL:()=>Gd,applyCompat:()=>gi,checkAccount:()=>hi,checkUsage:()=>Wo,countNewModels:()=>Jm,ensureGatewaySettings:()=>sA,isHowtofixProvider:()=>xr,looksLikeToken:()=>Hm,maskToken:()=>fi,mergeModels:()=>Vm,newProviderEntry:()=>Bm,parseModelIds:()=>Kd,probeModel:()=>Ym,repairGatewayModels:()=>oA});import{existsSync as nA,mkdirSync as rA,readFileSync as _d}from"node:fs";import{join as Nd}from"node:path";function Bm(){return{baseUrl:Go,api:"openai-completions"}}function oA(e){let t=Nd(e,"models.json"),n;try{n=JSON.parse(_d(t,"utf8"))}catch{return 0}let r=n.providers;if(!r||typeof r!="object")return 0;let o=0;for(let s of Yr){let i=r[s];if(!i||!Array.isArray(i.models))continue;let c=gi(i.models);c.changed!==0&&(i.models=c.models,o+=c.changed)}if(o===0)return 0;try{tt(t,`${JSON.stringify(n,null,2)}
7
+ `)}catch{return 0}return o}function sA(e){let t=Nd(e,"settings.json"),n={};try{let r=_d(t,"utf8"),o=JSON.parse(r);o&&typeof o=="object"&&!Array.isArray(o)&&(n=o)}catch{if(nA(t))return!1}if("httpIdleTimeoutMs"in n)return!1;n.httpIdleTimeoutMs=qd;try{rA(e,{recursive:!0}),tt(t,`${JSON.stringify(n,null,2)}
8
+ `)}catch{return!1}return!0}function fi(e){let t=e.trim();return t.length<=10?"***":`${t.slice(0,6)}\u2026${t.slice(-4)}`}function Hm(e){return/^sk-[A-Za-z0-9_-]{8,}$/.test(e.trim())}function Kd(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 xr(e){return Yr.includes(e)}async function iA(e,t){let n=await e(t,{headers:{Accept:"application/json"}});if(!n.ok)return"USD";let o=(await n.json())?.data?.quota_display_type;return typeof o=="string"&&o.trim()?o.trim().toUpperCase():"USD"}async function Wo(e,t){let n=(t?.baseUrl??Go).replace(/\/+$/,""),r=t?.fetchImpl??fetch,o=t?.timeoutMs??15e3,s=e.trim();if(!s)return{ok:!1,unlimited:!1,unit:"USD",message:"no token given"};let i=`${n.replace(/\/v1$/,"")}/api/status`,c=await iA(r,i).catch(()=>"USD"),p=new AbortController,f=setTimeout(()=>p.abort(),o),w={Authorization:`Bearer ${s}`};try{let[$,P]=await Promise.all([r(`${n}/dashboard/billing/subscription`,{headers:w,signal:p.signal}),r(`${n}/dashboard/billing/usage`,{headers:w,signal:p.signal})]);if($.status===401||$.status===403)return{ok:!1,unlimited:!1,unit:c,message:"the gateway rejected that token when asking for the balance"};if(!$.ok)return{ok:!1,unlimited:!1,unit:c,message:`the balance endpoint answered ${$.status}`};let R=await $.json();if(R.error?.message)return{ok:!1,unlimited:!1,unit:c,message:R.error.message};let C=Number(R.hard_limit_usd??R.soft_limit_usd??0);if(C>=Gd)return{ok:!0,unlimited:!0,unit:c,message:"this token has no quota limit"};let U=0;if(P.ok){let G=await P.json();U=Number(G.total_usage??0)/100}let z=Math.max(0,C-U);return{ok:!0,unlimited:!1,limit:C,used:U,remaining:z,unit:c,message:`${z.toFixed(2)} ${c} left of ${C.toFixed(2)} (${U.toFixed(2)} used)`}}catch($){let P=$ instanceof Error&&$.name==="AbortError";return{ok:!1,unlimited:!1,unit:c,message:P?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(f)}}function Vm(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:Ud,compat:{...zm}}));return r}function gi(e){let t=0;return{models:e.map(r=>r.compat?.supportsDeveloperRole===!1?r:(t++,{...r,compat:{...r.compat,...zm}})),changed:t}}function Jm(e,t){let n=new Set(e.map(r=>r.id));return t.filter(r=>!n.has(r)).length}async function Ym(e,t,n){let r=(n?.baseUrl??Go).replace(/\/+$/,""),o=n?.fetchImpl??fetch,s=n?.timeoutMs??1e4,i=new AbortController,c=setTimeout(()=>i.abort(),s);try{let p=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:i.signal});if(p.ok)return{ok:!0,detail:"ok"};let f=await p.text().catch(()=>"");return{ok:!1,detail:/"message"\s*:\s*"([^"]{0,80})/.exec(f)?.[1]??`HTTP ${p.status}`}}catch(p){return{ok:!1,detail:p instanceof Error&&p.name==="AbortError"?"timed out":"unreachable"}}finally{clearTimeout(c)}}async function hi(e,t){let n=(t?.baseUrl??Go).replace(/\/+$/,""),r=t?.fetchImpl??fetch,o=t?.timeoutMs??15e3,s=e.trim();if(!s)return{ok:!1,models:[],message:"no token given"};let i=new AbortController,c=setTimeout(()=>i.abort(),o);try{let p=await r(`${n}/models`,{headers:{Authorization:`Bearer ${s}`},signal:i.signal});if(p.status===401)return{ok:!1,models:[],message:"the gateway rejected that token (401). Check it in the Console, or make a new one."};if(p.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(!p.ok)return{ok:!1,models:[],message:`the gateway answered ${p.status}`};let f=Kd(await p.json());return f.length===0?{ok:!1,models:[],message:"the token works but the gateway listed no models"}:{ok:!0,models:f,message:`${f.length} models available to this token`}}catch(p){let f=p instanceof Error&&p.name==="AbortError";return{ok:!1,models:[],message:f?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(c)}}var Go,di,Yr,qd,zm,Ud,Gd,Xm=u(()=>{Hn();Go="https://api.howtofix.id/v1",di="https://howtofix.id/keys",Yr=["howtofix","howtofix-free"];qd=9e4;zm={supportsDeveloperRole:!1},Ud=128e3;Gd=1e8});var xi={};Mt(xi,{CHECK_TIMEOUT_MS:()=>Vd,INSTALL_TIMEOUT_MS:()=>Jd,LOCK_TIMEOUT_MS:()=>Qm,PACKAGE_NAME:()=>Bo,acquireUpdateLock:()=>ef,autoUpdateEnabled:()=>hA,checkForUpdate:()=>dA,compareVersions:()=>Yd,installUpdate:()=>fA,isInstalledCopy:()=>gA,isNewer:()=>Xd,latestVersion:()=>nf,releaseUpdateLock:()=>tf});import{execFile as aA}from"node:child_process";import{existsSync as uA,mkdirSync as mA,readFileSync as cA,realpathSync as pA,statSync as Bd,unlinkSync as Hd,writeFileSync as lA}from"node:fs";import{homedir as ec}from"node:os";import{join as zd,sep as Zm}from"node:path";function Yd(e,t){let n=i=>{let c=i.trim().split("-")[0]?.split("+")[0]??"";if(/^\d+(\.\d+)*$/.test(c))return c.split(".").map(p=>Number(p))},r=n(e),o=n(t);if(!r||!o)return 0;let s=Math.max(r.length,o.length);for(let i=0;i<s;i+=1){let c=r[i]??0,p=o[i]??0;if(c>p)return 1;if(c<p)return-1}return 0}function Xd(e,t){return e.includes("-")?!1:Yd(e,t)>0}function Qd(){let t=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||zd(ec(),".howtofix","agent");try{mA(t,{recursive:!0})}catch{}return zd(t,"update.lock")}function ef(e=Date.now()){let t=Qd();try{if(uA(t)){if(e-Bd(t).mtimeMs<Qm)return!1;let r=Bd(t).mtimeMs;if(e-r<Qm)return!1;Hd(t)}return lA(t,String(process.pid),{mode:384}),!0}catch{return!0}}function tf(){try{Hd(Qd())}catch{}}async function nf(e){let n=await(e?.runner??Zd)("npm",["view",`${Bo}@latest`,"version","--prefer-online"],{cwd:ec(),timeoutMs:e?.timeoutMs??Vd});if(n.code!==0)return;let r=n.stdout.trim().split(`
9
+ `).pop()?.trim()??"";return/^\d+\.\d+/.test(r)?r:void 0}async function dA(e,t){let n=await nf(t);return n?Xd(n,e)?{current:e,latest:n,available:!0,message:`HowToFix ${n} is available (you have ${e})`}:{current:e,latest:n,available:!1,message:`HowToFix ${e} is up to date`}:{current:e,available:!1,message:"could not check for a newer version"}}async function fA(e){let t=e?.runner??Zd;if(!ef())return{ok:!1,message:"another HowToFix is already installing an update"};try{let n=e?.version?`${Bo}@${e.version}`:`${Bo}@latest`,r=await t("npm",["install","-g",n],{cwd:ec(),timeoutMs:e?.timeoutMs??Jd});if(r.code!==0){let o=(r.stderr||r.stdout).trim().split(`
10
+ `).filter(Boolean).pop()??"";return{ok:!1,message:`the update did not install${/EACCES|EPERM|permission/i.test(o)?" \u2014 npm could not write to its global directory":""}${o?`: ${o}`:""}`}}return{ok:!0,version:e?.version,message:"updated; it takes effect the next time HowToFix starts"}}catch(n){return{ok:!1,message:`the update failed: ${n instanceof Error?n.message:String(n)}`}}finally{tf()}}function gA(e=process.argv[1]){if(!e)return!1;let t=e;try{t=pA(e)}catch{}return t.includes(`${Zm}node_modules${Zm}${Bo}${Zm}`)}function hA(e){try{return JSON.parse(cA(e,"utf8")).autoUpdate!==!1}catch{return!0}}var Bo,Vd,Jd,Qm,Zd,yi=u(()=>{Bo="howtofixcli",Vd=5e3,Jd=12e4,Qm=600*1e3;Zd=(e,t,n)=>new Promise(r=>{aA(e,t,{cwd:n.cwd,timeout:n.timeoutMs,windowsHide:!0},(o,s,i)=>{let c=o&&typeof o.code=="number"?o.code:o?1:0;r({code:c,stdout:String(s??""),stderr:String(i??"")})})})});var rf={};Mt(rf,{expandFileReferences:()=>tc});import{readFileSync as xA,statSync as yA}from"node:fs";import{isAbsolute as bA,resolve as wA}from"node:path";function tc(e,t){return e.replace(/(^|\s)@([^\s]+)/g,(n,r,o)=>{let s=o.replace(/[),.;:]+$/,""),i=o.slice(s.length),c=bA(s)?s:wA(t,s);try{let p=yA(c);if(!p.isFile()||p.size===0||p.size>$A)return n;let f=xA(c);return f.includes(0)?n:`${r}<file name="${c}">
11
11
  ${f.toString("utf8").trimEnd()}
12
- </file>${i}`}catch{return n}})}var lA,Qm=u(()=>{lA=64*1024});function fA(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 i of Object.keys(o).sort())s[i]=n(o[i]);return s};try{return JSON.stringify(n(e))??""}catch{return""}}function ef(e,t){if(dA.has(e))return;let n=`${e}\0${fA(t)}`,r=zo&&zo.signature===n?zo.count+1:1;return zo={signature:n,count:r},r>=3?{repeats:r}:void 0}function tf(){zo=void 0}function nf(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 dA,zo,ec=u(()=>{dA=new Set(["think"])});function rf(e,t){switch(t){case"number":return/^\d+$/.test(e);case"string":return!0;default:return!1}}function hA(e,t,n){let r=t;for(;r<e.length;){let o=e[r];if(!o){r++;continue}if(o==="--")break;if(gA.test(o)){let s=o.includes("="),[i="",...c]=o.split("="),p=n.safeFlags[i];if(!p)return!1;if(p==="none"){if(s)return!1;r++;continue}if(p==="optional"){r++;continue}if(s){if(!rf(c.join("="),p))return!1;r++;continue}let f=e[r+1];if(f===void 0||!rf(f,p))return!1;r+=2;continue}if(n.allowPositional===!1)return!1;r++}return!0}function wA(e){if(!/\$\(|`|\$\{|>|</.test(e)&&!/(?<!&)&(?!&)/.test(e))return e.split(/\|\||&&|;|\|/).map(t=>t.trim()).filter(t=>t.length>0)}function kA(e){let t=e.some(r=>/^cd\b/.test(r)),n=e.some(r=>/^git\b/.test(r));return t&&n}function TA(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 vA(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"&&sf[`git ${n}`]?{name:`git ${n}`,rest:e.slice(2)}:af[r]?{name:r,rest:e.slice(2)}:{name:t,rest:e.slice(1)}}function SA(e){let t=TA(e),n=vA(t);if(!n)return!1;let{name:r,rest:o}=n;if(EA.has(r)&&o.some(i=>i.includes("$")||i.includes("`")))return!1;let s=sf[r]??IA[r]??af[r];return s?s.dangerous?.(o)?!1:hA(o,0,s):!!(bA.includes(r)||$A.includes(r))}function $i(e){let t=wA(e);return!t||t.length===0||kA(t)?!1:t.every(SA)}var gA,xA,yi,bi,tc,Ii,nc,of,yA,sf,bA,IA,af,$A,EA,rc=u(()=>{gA=/^-[a-zA-Z0-9_-]/;xA={"--all":"none","--branches":"none","--tags":"none","--remotes":"none"},yi={"--oneline":"none","--graph":"none","--decorate":"none","--no-decorate":"none","--date":"string","--relative-date":"none"},bi={"--max-count":"number","-n":"number"},tc={"--stat":"none","--numstat":"none","--shortstat":"none","--name-only":"none","--name-status":"none"},Ii={"--color":"none","--no-color":"none"},nc={"--patch":"none","-p":"none","--no-patch":"none","--no-ext-diff":"none","-s":"none"},of={"--author":"string","--committer":"string","--grep":"string"},yA={"-l":"none","--list":"none","-a":"none","-r":"none","-v":"none","-vv":"none","-i":"none"},sf={"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",...Ii}},"git diff":{safeFlags:{...tc,...Ii,...nc,"--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:{...yi,...bi,...tc,...Ii,...nc,...of,...xA,"--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:{...tc,...Ii,...nc,...yi,"--format":"string","--pretty":"string","--abbrev-commit":"none","--no-patch":"none","-q":"none"}},"git shortlog":{safeFlags:{...bi,"-s":"none","--summary":"none","-n":"none","--numbered":"none","-e":"none","--email":"none","-sn":"none","-ns":"none","--all":"none"}},"git reflog":{safeFlags:{...bi,...yi,...of,"--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:{...bi,"--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:{...yi}},"git worktree list":{safeFlags:{"--porcelain":"none","-v":"none","--verbose":"none","-z":"none"}},"git branch":{safeFlags:{...yA,"--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"}}},bA=["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"],IA={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))}},af={"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:{}}},$A=["cd","alias","history","arch","ip addr","ifconfig"];EA=new Set(["echo","printf"])});var ff={};Mt(ff,{APPROVAL_LABELS:()=>wi,APPROVAL_MODES:()=>Xr,MODE_MAX_TIER:()=>uf,TIER_RANK:()=>oc,createPermissionExtension:()=>Ho,criticalCommand:()=>mf,decideToolCall:()=>pf,describeToolCall:()=>lf,formatApprovalPrompt:()=>df,getApprovalMode:()=>MA,isApprovalMode:()=>PA,isReadOnlyCommand:()=>$i,resolveTier:()=>sc,setApprovalMode:()=>ac,setApprovalPrompt:()=>uc});function PA(e){return Xr.includes(e)}function sc(e){let t=AA[e];return t||(e.startsWith("mcp__")?"write":"exec")}function mf(e){for(let{pattern:t,reason:n}of RA)if(t.test(e))return n}function ac(e){ic=e}function MA(){return ic}function uc(e){cf=e}function pf(e,t,n){let r=typeof n?.command=="string"?n.command:"";if(t==="bash"||t==="powershell"){let s=mf(r);if(s)return{action:"deny",reason:`Refused in every mode: ${s}.`};if($i(r))return{action:"run"}}let o=sc(t);return oc[o]<=oc[uf[e]]?{action:"run"}:{action:"prompt",reason:`this is a ${o}-tier tool`}}function lf(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 df(e,t,n){let r=[`Allow tool: ${e}`];e.startsWith("mcp__")&&r.push("Origin: MCP server tool"),r.push(`Reason: ${n}`);let o=lf(e,t);return o!==e&&r.push(o),r.join(`
13
- `)}function Ho(e={}){return t=>{t.on("tool_call",async n=>{let r=ef(n.toolName,n.input);if(r)return{block:!0,reason:nf(n.toolName,r.repeats)};let o=ic,s=pf(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 ${sc(n.toolName)}-tier tool and no UI can approve it here (approval mode: ${o}).`};if(!await cf(`${n.toolName} wants to run`,df(n.toolName,n.input,s.reason)))return{block:!0,reason:`Blocked by the user (approval mode: ${o}).`}})}}var Xr,wi,oc,uf,AA,RA,ic,cf,Vo=u(()=>{ec();rc();rc();Xr=["suggest","auto-edit","full-auto"],wi={suggest:"suggest: ask before every edit and command","auto-edit":"auto-edit: edits run, commands ask","full-auto":"full-auto: nothing asks"};oc={read:0,write:1,exec:2},uf={suggest:"read","auto-edit":"write","full-auto":"exec"},AA={read:"read",grep:"read",find:"read",ls:"read",think:"read",ask:"read",todo:"read",context:"read",web_search:"read",web_fetch:"read",lsp:"read",workflow:"exec",goal:"read",enter_plan_mode:"read",exit_plan_mode:"read",edit:"write",write:"write",bash:"exec",powershell:"exec",task:"exec"};RA=[{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"}];ic="full-auto",cf=async()=>!1});function OA(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 LA(e){if(!e)return;let t=!1,n={...e};for(let r of CA){let o=n[r];if(typeof o!="string")continue;let s=OA(o);s!==o&&(n[r]=s,t=!0)}return t?n:void 0}function gf(){return e=>{e.on("context_with_system",async t=>{let n=t.messages[0];if(!n||n.role!=="system")return;let r=LA(n.sections);return r?{messages:t.messages.map(s=>s===n?{...n,sections:r}:s)}:void 0})}}var CA,hf=u(()=>{CA=["preamble","rules","docs","addendum"]});import{Type as Zr}from"@earendil-works/pi-ai";import{defineTool as xf}from"@earendil-works/pi-coding-agent";function yf(e){mc=e}var mc,bf,If,cc=u(()=>{bf=xf({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:Zr.Object({thoughts:Zr.String({description:"Private notes"})}),async execute(){return{content:[{type:"text",text:"noted"}],details:{recorded:!0}}}}),If=xf({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:Zr.Object({question:Zr.String(),options:Zr.Array(Zr.String(),{minItems:2})}),async execute(e,t){if(!mc)return{content:[{type:"text",text:"cancelled"}],details:{answer:"cancelled"}};let n=await mc(t.question,t.options);return{content:[{type:"text",text:n}],details:{answer:n}}}})});var on,yr=u(()=>{on={assign:0,create:0,clone:0,discard:0,update:0}});function br(e,t,n){return e>=t&&e<=n}function kf(e){return e===8205}function FA(e){return br(e,55296,56319)}function $f(e){return br(e,127462,127487)}function Tf(e){return br(e,65024,65039)}function vf(e){return br(e,768,879)||br(e,6832,6911)||br(e,7616,7679)||br(e,65056,65071)}function ki(e){return e>65535?2:1}function wf(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(vf(n)||Tf(n))t+=ki(n);else break}return t}function pc(e,t){let n=e.codePointAt(t),r=t+ki(n);for(r=wf(e,r);r<e.length-1&&kf(e.codePointAt(r));){let o=e.codePointAt(r+1);r+=1+ki(o),r=wf(e,r)}return $f(n)&&r<e.length&&$f(e.codePointAt(r))&&(r+=ki(e.codePointAt(r))),r}function Ef(e){return e>=768&&(FA(e)||vf(e)||Tf(e)||kf(e))}function Sf(e){let t=0,n=0;for(;n<e.length;)n=pc(e,n),t++;return t}function jA(e,t){let n=0,r=0;for(;r<e.length;)if(r=pc(e,r),++n>=t)return!0;return!1}function DA(e,t){let n=0,r=0;for(;r<e.length;)if(r=pc(e,r),++n>t)return!1;return!0}function Pf(e,t){if(t===0)return!0;if(e.length<t)return!1;let n=0;for(;;){if(Ef(e.charCodeAt(n)))return jA(e,t);if(++n>=t)return!0}}function Af(e,t){if(e.length<=t)return!0;let n=0;for(;;){if(Ef(e.charCodeAt(n)))return DA(e,t);if(++n>t)return!1}}var Rf=u(()=>{});var m={};Mt(m,{Counted:()=>QA,Entries:()=>nR,EntriesRegExp:()=>tR,Every:()=>JA,EveryAll:()=>YA,GraphemeCount:()=>zA,HasPropertyKey:()=>eR,IsArray:()=>Yo,IsBigInt:()=>Jo,IsBoolean:()=>Mf,IsClassInstance:()=>BA,IsConstructor:()=>NA,IsDeepEqual:()=>fc,IsEqual:()=>ue,IsFunction:()=>Of,IsGreaterEqualThan:()=>Lf,IsGreaterThan:()=>KA,IsInteger:()=>lc,IsLessEqualThan:()=>Cf,IsLessThan:()=>GA,IsMaxLength:()=>HA,IsMinLength:()=>VA,IsMultipleOf:()=>WA,IsNull:()=>vi,IsNumber:()=>Ei,IsObject:()=>Xo,IsObjectNotArray:()=>qA,IsString:()=>Si,IsSymbol:()=>UA,IsUndefined:()=>dc,IsUnsafePropertyKey:()=>jf,IsValueLike:()=>Ff,Keys:()=>Ti,ShiftLeft:()=>Pi,Some:()=>XA,SomeAll:()=>ZA,Symbols:()=>rR,Values:()=>oR});function Yo(e){return Array.isArray(e)}function Jo(e){return ue(typeof e,"bigint")}function Mf(e){return ue(typeof e,"boolean")}function NA(e){if(dc(e)||!Of(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function Of(e){return ue(typeof e,"function")}function lc(e){return Number.isInteger(e)}function vi(e){return ue(e,null)}function Ei(e){return Number.isFinite(e)}function qA(e){return Xo(e)&&!Yo(e)}function Xo(e){return ue(typeof e,"object")&&!vi(e)}function Si(e){return ue(typeof e,"string")}function UA(e){return ue(typeof e,"symbol")}function dc(e){return ue(e,void 0)}function ue(e,t){return e===t}function KA(e,t){return e>t}function GA(e,t){return e<t}function Cf(e,t){return e<=t}function Lf(e,t){return e>=t}function WA(e,t){if(Jo(e)||Jo(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!Ei(e)||lc(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 BA(e){if(!Xo(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return vi(t)?!1:ue(typeof t.constructor,"function")&&!(ue(t.constructor,globalThis.Object)||ue(t.constructor.name,"Object"))}function Ff(e){return Jo(e)||Mf(e)||vi(e)||Ei(e)||Si(e)||dc(e)}function zA(e){return Sf(e)}function HA(e,t){return Af(e,t)}function VA(e,t){return Pf(e,t)}function JA(e,t,n){return e.every((r,o)=>o<t||n(r,o))}function YA(e,t,n){let r=!0;return e.forEach((o,s)=>{s>=t&&!n(o,s)&&(r=!1)}),r}function XA(e,t){return e.some((n,r)=>t(n,r))}function ZA(e,t){let n=!1;return e.forEach((r,o)=>{t(r,o)&&(n=!0)}),n}function QA(e,t){return e.reduce((n,r,o)=>t(r,o)?++n:n,0)}function Pi(e,t,n){return ue(e.length,0)?n():t(e[0],e.slice(1))}function jf(e){return ue(e,"__proto__")||ue(e,"constructor")||ue(e,"prototype")}function eR(e,t){return jf(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function tR(e){return Ti(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function nR(e){return Object.entries(e)}function Ti(e){return Object.getOwnPropertyNames(e)}function rR(e){return Object.getOwnPropertySymbols(e)}function oR(e){return Object.values(e)}function sR(e,t){if(!Xo(t))return!1;let n=Ti(e);return ue(n.length,Ti(t).length)&&n.every(r=>fc(e[r],t[r]))}function iR(e,t){return Yo(t)&&ue(e.length,t.length)&&e.every((n,r)=>fc(e[r],t[r]))}function fc(e,t){return Yo(e)?iR(e,t):Xo(e)?sR(e,t):ue(e,t)}var Qr=u(()=>{Rf()});var Df=u(()=>{Qr()});var Vn={};Mt(Vn,{IsBigInt64Array:()=>$R,IsBigUint64Array:()=>wR,IsBoolean:()=>uR,IsDate:()=>TR,IsFloat32Array:()=>bR,IsFloat64Array:()=>IR,IsInt16Array:()=>gR,IsInt32Array:()=>xR,IsInt8Array:()=>lR,IsMap:()=>ER,IsNumber:()=>mR,IsRegExp:()=>kR,IsSet:()=>vR,IsString:()=>cR,IsTypeArray:()=>pR,IsUint16Array:()=>hR,IsUint32Array:()=>yR,IsUint8Array:()=>dR,IsUint8ClampedArray:()=>fR});function uR(e){return e instanceof Boolean}function mR(e){return e instanceof Number}function cR(e){return e instanceof String}function pR(e){return globalThis.ArrayBuffer.isView(e)}function lR(e){return e instanceof globalThis.Int8Array}function dR(e){return e instanceof globalThis.Uint8Array}function fR(e){return e instanceof globalThis.Uint8ClampedArray}function gR(e){return e instanceof globalThis.Int16Array}function hR(e){return e instanceof globalThis.Uint16Array}function xR(e){return e instanceof globalThis.Int32Array}function yR(e){return e instanceof globalThis.Uint32Array}function bR(e){return e instanceof globalThis.Float32Array}function IR(e){return e instanceof globalThis.Float64Array}function $R(e){return e instanceof globalThis.BigInt64Array}function wR(e){return e instanceof globalThis.BigUint64Array}function kR(e){return e instanceof globalThis.RegExp}function TR(e){return e instanceof globalThis.Date}function vR(e){return e instanceof globalThis.Set}function ER(e){return e instanceof globalThis.Map}var _f=u(()=>{});var Nf=u(()=>{Qr()});var M=u(()=>{Df();_f();Nf();Qr();Qr()});var sn={};Mt(sn,{Get:()=>RR,Reset:()=>PR,Set:()=>AR});function PR(){xn.immutableTypes=!1,xn.maxErrors=8,xn.maxInstantiationCount=128,xn.useAcceleration=!0,xn.exactOptionalPropertyTypes=!1,xn.enumerableKind=!1,xn.correctiveParse=!1,xn.unionPrioritySort=!0}function AR(e){for(let t of m.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(xn,t,{value:n})}}function RR(){return xn}var xn,qf=u(()=>{M();xn={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0}});var Ir=u(()=>{qf()});function Jn(e){return sn.Get().immutableTypes?Object.freeze(e):e}var Zo=u(()=>{Ir()});function MR(e,t){return on.assign+=1,Jn({...e,...t})}var Uf=u(()=>{yr();Zo()});function OR(e){return m.HasPropertyKey(e,"~kind")||m.HasPropertyKey(e,"~unsafe")}function CR(e){let t={};for(let n of m.Keys(e)){if(m.IsUnsafePropertyKey(n))continue;let r=Object.getOwnPropertyDescriptor(e,n);r.value=$r(r.value),m.IsEqual(r.enumerable,!0)?t[n]=r.value:Object.defineProperty(t,n,r)}return t}function LR(e){let t={};for(let n of m.Keys(e))m.IsUnsafePropertyKey(n)||(t[n]=$r(e[n]));for(let n of m.Symbols(e))t[n]=$r(e[n]);return t}function FR(e){return m.IsClassInstance(e)?e:OR(e)?CR(e):LR(e)}function jR(e){return e.map(t=>$r(t))}function DR(e){return e.slice()}function _R(e){return new RegExp(e.source,e.flags)}function NR(e){return new Map($r([...e.entries()]))}function qR(e){return new Set($r([...e.values()]))}function $r(e){return Vn.IsTypeArray(e)?DR(e):Vn.IsRegExp(e)?_R(e):Vn.IsMap(e)?NR(e):Vn.IsSet(e)?qR(e):m.IsArray(e)?jR(e):m.IsObject(e)?FR(e):e}function Qo(e){return on.clone+=1,$r(e)}var Ai=u(()=>{M();yr()});function UR(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 Kf(e,t){return{...e,...t}}function KR(e,t,n={}){on.create+=1;let r=Kf(t,n),o=sn.Get().enumerableKind?Kf(r,e):UR(r,e);return Jn(o)}var Gf=u(()=>{Ir();yr();Zo()});function GR(e,t){on.discard+=1;let n={};for(let r of m.Keys(e)){if(t.includes(r))continue;let o=Object.getOwnPropertyDescriptor(e,r);o.value=Qo(o.value),Object.defineProperty(n,r,o)}return Jn(n)}var Wf=u(()=>{M();yr();Zo();Ai()});function WR(e,t,n){on.update+=1;let r=sn.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 Jn(o)}var Bf=u(()=>{Ir();yr();Zo();Ai()});var d={};Mt(d,{Assign:()=>MR,Clone:()=>Qo,Create:()=>KR,Discard:()=>GR,Metrics:()=>on,Update:()=>WR});var zf=u(()=>{Uf();Ai();Gf();Wf();yr();Bf()});var S=u(()=>{zf()});function C(e,t){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.IsEqual(e["~kind"],t)}function _e(e){return m.IsObject(e)}var J=u(()=>{M()});function j(e,t,n){return d.Create({"~kind":"Deferred"},{type:"deferred",action:e,parameters:t,options:n},{})}function Yn(e){return C(e,"Deferred")}var ce=u(()=>{S();J()});function BR(e){return d.Update(e,{"~readonly":!0},{})}function es(e,t){return d.Update(BR(e),{},t)}function Hf(e,t,n,r){let o=k(e,t,n);return es(o,r)}var Ri=u(()=>{S();N()});function zR(e){return d.Update(e,{"~optional":!0},{})}function ts(e,t){return d.Update(zR(e),{},t)}function Vf(e,t,n,r){let o=k(e,t,n);return ts(o,r)}var Mi=u(()=>{S();N()});function qt(e,t){return d.Create({"~kind":"Array"},{type:"array",items:e},t)}function ke(e){return C(e,"Array")}function Oi(e){return d.Discard(e,["~kind","type","items"])}var gt=u(()=>{S();J()});function yn(e,t,n={}){return d.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},n)}function Ge(e){return C(e,"Constructor")}function Jf(e){return d.Discard(e,["~kind","type","parameters","instanceType"])}var Bt=u(()=>{S();J()});function bn(e,t,n={}){return d.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},n)}function We(e){return C(e,"Function")}function Yf(e){return d.Discard(e,["~kind","type","parameters","returnType"])}var zt=u(()=>{S();J()});function qn(e,t){return d.Create({"~kind":"Ref"},{$ref:e},t)}function Be(e){return C(e,"Ref")}var Ht=u(()=>{S();J()});function Xn(e,t){return d.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function eo(e){return C(e,"Generic")}var ns=u(()=>{S();J()});function to(e){return d.Create({"~kind":"Any"},{},e)}function Ee(e){return C(e,"Any")}var wt=u(()=>{S();J()});function ge(e){return d.Create({"~kind":"Never"},{not:{}},e)}function an(e){return C(e,"Never")}var Xf,Je=u(()=>{S();J();Xf="(?!)"});function In(e,t={}){return j("AddOptional",[e],t)}function wr(e,t={}){return ts(e,t)}var rs=u(()=>{ce();Mi()});function Zf(e){return wr(e)}function ut(e){return _e(e)&&m.HasPropertyKey(e,"~optional")}var Zn=u(()=>{M();J();rs()});function Qf(e){return m.Keys(e).filter(t=>!ut(e[t]))}function Ci(e){return m.Keys(e)}function Li(e){return m.Values(e)}var kr=u(()=>{M();Zn()});function W(e,t={}){let n=Qf(e),r=n.length>0?{required:n}:{};return d.Create({"~kind":"Object"},{type:"object",...r,properties:e},t)}function pe(e){return C(e,"Object")}function eg(e){return d.Discard(e,["~kind","type","properties","required"])}var fe=u(()=>{S();J();kr()});function Ye(e){return d.Create({"~kind":"Unknown"},{},e)}function Oe(e){return C(e,"Unknown")}var nt=u(()=>{S();J()});function $n(e,t,n){let r=m.Keys(e).reduce((o,s)=>({...o,[s]:d.Update(e[s],{},{$id:s})}),{});return d.Create({"~kind":"Cyclic"},{$defs:r,$ref:t},n)}function rt(e){return C(e,"Cyclic")}var kt=u(()=>{M();S();J()});function tg(e){return d.Update(e,{"~unsafe":null},{})}function Fi(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"~unsafe")&&m.IsNull(e["~unsafe"])}var ji=u(()=>{M();S()});var wn={};Mt(wn,{Match:()=>HR});function HR(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}var ng=u(()=>{});var no=u(()=>{ng()});function os(...e){let[t,n]=wn.Match(e,{2:(r,o)=>[r,o,o],1:r=>[r,Ye(),Ye()]});return d.Create({"~kind":"Infer"},{type:"infer",name:t,extends:n},{})}function Ce(e){return C(e,"Infer")}var Vt=u(()=>{no();S();J();nt()});function Tr(e,t,n,r={}){return d.Create({"~kind":"Dependent"},{if:e,then:t,else:n},r)}function Pe(e){return C(e,"Dependent")}function rg(e){return d.Discard(e,["~kind","if","then","else"])}var Ot=u(()=>{S();J()});function og(e){return m.IsObjectNotArray(e)}function sg(e){return m.Keys(e).filter(n=>isNaN(n)).reduce((n,r)=>[...n,e[r]],[])}var Di=u(()=>{M()});function ig(e){return m.IsString(e)||m.IsNumber(e)}function ag(e,t){let n=og(e)?sg(e):e;return d.Create({"~kind":"Enum"},{enum:n},t)}function ot(e){return C(e,"Enum")}var un=u(()=>{M();S();J();Di();Di()});function Tt(e,t={}){return d.Create({"~kind":"Intersect"},{allOf:e},t)}function ne(e){return C(e,"Intersect")}function ug(e){return d.Discard(e,["~kind","allOf"])}var Ne=u(()=>{S();J()});var mg=u(()=>{Ir();M()});var cg=u(()=>{mg()});var pg=u(()=>{cg()});function qe(){throw new Error("Unreachable")}var gc=u(()=>{});var kn=u(()=>{gc()});var lg,zq,Hq,Vq,Jq,dg,Yq,Xq,Zq,fg=u(()=>{kn();M();(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"})(lg||(lg={}));zq=BigInt("14695981039346656037"),[Hq,Vq]=[BigInt("1099511628211"),BigInt("18446744073709551616")],Jq=Array.from({length:256}).map((e,t)=>BigInt(t)),dg=new Float64Array(1),Yq=new DataView(dg.buffer),Xq=new Uint8Array(dg.buffer),Zq=new TextEncoder});var gg=u(()=>{fg()});var hc=u(()=>{});var hg=u(()=>{hc()});var xg=u(()=>{});var yg=u(()=>{});var bg=u(()=>{});var Ig=u(()=>{});var $g=u(()=>{});var wg=u(()=>{});var kg=u(()=>{});var Tg=u(()=>{});var vg=u(()=>{});var Eg=u(()=>{});var Sg=u(()=>{});var xc=u(()=>{});var Pg=u(()=>{});var Ag=u(()=>{});var Rg=u(()=>{});var Mg=u(()=>{});var Og=u(()=>{});var Cg=u(()=>{});var Lg=u(()=>{});var Fg=u(()=>{});var jg=u(()=>{});var Dg=u(()=>{});var _g=u(()=>{});var Ng=u(()=>{});var qg=u(()=>{});var Ug=u(()=>{});var Kg=u(()=>{});var Gg=u(()=>{});var Wg=u(()=>{});var Bg=u(()=>{});var zg=u(()=>{});var Hg=u(()=>{});var Vg=u(()=>{});var Jg=u(()=>{});var Yg=u(()=>{});var Xg=u(()=>{});var Zg=u(()=>{});var Qg=u(()=>{hg();xg();yg();bg();Ig();$g();hc();wg();kg();Tg();vg();Eg();Sg();xc();xc();Pg();Ag();Rg();Mg();Og();Cg();Lg();Fg();jg();Dg();_g();Ng();qg();Ug();Kg();Gg();Wg();Bg();zg();Hg();Vg();Jg();Yg();Xg();Zg()});var eh=u(()=>{Qg()});var ss=u(()=>{no();pg();gg();eh();S();Ir()});var nh=u(()=>{ss();ss();ss()});function Ni(e){return new as(e)}function rh(e,t){return Ni(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function oh(e,t){return Ni(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function _i(e){return _e(e)&&m.HasPropertyKey(e,"~codec")&&m.IsObject(e["~codec"])&&m.HasPropertyKey(e["~codec"],"encode")&&m.HasPropertyKey(e["~codec"],"decode")}var is,as,yc=u(()=>{nh();M();J();is=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,r=_i(n)?i=>this.decode(n["~codec"].decode(i)):this.decode,o=_i(n)?i=>n["~codec"].encode(t(i)):t,s={decode:r,encode:o};return d.Update(this.type,{"~codec":s},{})}},as=class{constructor(t){this.type=t}Decode(t){return new is(this.type,t)}}});function sh(e){return ro(e)}function vr(e){return _e(e)&&m.HasPropertyKey(e,"~immutable")}var us=u(()=>{M();J();ms()});function Tn(e,t={}){return j("AddReadonly",[e],t)}function Er(e,t={}){return es(e,t)}var cs=u(()=>{ce();Ri()});function ih(e){return Er(e)}function Sr(e){return _e(e)&&m.HasPropertyKey(e,"~readonly")}var ps=u(()=>{M();J();cs()});function XR(e,t){let n=bc(e)?[...e["~refine"],t]:[t];return d.Update(e,{"~refine":n},{})}function ah(...e){let[t,n,r]=wn.Match(e,{3:(o,s,i)=>[o,s,i],2:(o,s)=>[o,s,()=>"Refine Error"]});return XR(t,{check:n,error:r})}function ZR(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"check")&&m.HasPropertyKey(e,"error")&&m.IsFunction(e.check)&&m.IsFunction(e.error)}function bc(e){return _e(e)&&m.HasPropertyKey(e,"~refine")&&m.IsArray(e["~refine"])&&m.Every(e["~refine"],0,t=>ZR(t))}var Ic=u(()=>{no();S();M();J()});function ls(e){return d.Create({"~kind":"BigInt"},{type:"bigint"},e)}function vn(e){return C(e,"BigInt")}var uh,Pr=u(()=>{S();J();uh="-?(?:0|[1-9][0-9]*)n"});function qi(e){return d.Create({"~kind":"Boolean"},{type:"boolean"},e)}function Jt(e){return C(e,"Boolean")}var Qn=u(()=>{S();J()});function ds(e){return d.Create({"~kind":"Identifier"},{name:e})}function mh(e){return C(e,"Identifier")}var $c=u(()=>{S();J()});function Ar(e){return d.Create({"~kind":"Integer"},{type:"integer"},e)}function ht(e){return C(e,"Integer")}var Ui,En=u(()=>{S();J();Ui="-?(?:0|[1-9][0-9]*)"});function QR(e){return m.IsBigInt(e)?"bigint":m.IsBoolean(e)?"boolean":m.IsNumber(e)?"number":m.IsString(e)?"string":(()=>{throw new wc(e)})()}function re(e,t){return d.Create({"~kind":"Literal"},{type:QR(e),const:e},t)}function Ki(e){return m.IsBigInt(e)||m.IsBoolean(e)||m.IsNumber(e)||m.IsString(e)}function ch(e){return le(e)&&m.IsNumber(e.const)}function ph(e){return le(e)&&m.IsString(e.const)}function le(e){return C(e,"Literal")}var wc,Le=u(()=>{S();M();J();wc=class extends Error{constructor(t){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:t},writable:!1,configurable:!1,enumerable:!1})}}});function oo(e){return d.Create({"~kind":"Null"},{type:"null"},e)}function so(e){return C(e,"Null")}var io=u(()=>{S();J()});function Ct(e){return d.Create({"~kind":"Number"},{type:"number"},e)}function Fe(e){return C(e,"Number")}var Gi,xt=u(()=>{S();J();Gi="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?"});function ao(e){return d.Create({"~kind":"Symbol"},{type:"symbol"},e)}function er(e){return C(e,"Symbol")}var Rr=u(()=>{S();J()});function Mr(...e){let[t,n,r]=wn.Match(e,{3:(o,s,i)=>[o,s,i],2:(o,s)=>[o,s,s],1:o=>[o,Ye(),Ye()]});return d.Create({"~kind":"Parameter"},{name:t,extends:n,equals:r},{})}function lh(e){return C(e,"Parameter")}var kc=u(()=>{no();S();J();nt()});function Yt(e){return d.Create({"~kind":"String"},{type:"string"},e)}function yt(e){return C(e,"String")}var Wi,Xt=u(()=>{S();J();Wi=".*"});function X(e,t={}){return d.Create({"~kind":"Union"},{anyOf:e},t)}function F(e){return C(e,"Union")}function dh(e){return d.Discard(e,["~kind","anyOf"])}var Q=u(()=>{S();J()});function fs(e){let t=fh(e);return m.IsEqual(t.length,2)?t[0]:[]}var gs=u(()=>{M();Bi()});function eM(e){return!0}function gh(e){return m.ShiftLeft(e,(t,n)=>tM(t)?gh(n):!1,()=>!0)}function hh(e){return m.IsEqual(e.length,0)?!1:gh(e)}function tM(e){return F(e)?hh(e.anyOf):le(e)?eM(e.const):!1}function zi(e){return hh(e)}var Hi=u(()=>{M();Le();Q()});function Vi(e){return d.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}var Ji=u(()=>{S()});function xh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>xh(o,t,[...n,`${r}${t}`]),()=>n)}function nM(e,t){return m.IsEqual(e.length,0)?[`${t}`]:xh(e,t)}function yh(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>yh(e,o,[...n,...bh(e,r)]),()=>n)}function bh(e,t){return F(t)?yh(e,t.anyOf):le(t)?nM(e,t.const):qe()}function Ih(e,t){return m.ShiftLeft(t,(n,r)=>Ih(bh(e,n),r),()=>e)}function rM(e){return e.map(t=>re(t))}function oM(e){let t=Ih([],e),n=rM(t);return X(n)}function sM(e){return m.IsEqual(e.length,0)?qe():m.IsEqual(e.length,1)&&le(e[0])?e[0]:oM(e)}function Tc(e){let t=fs(e);return m.IsEqual(t.length,0)?Yt():zi(t)?sM(t):Vi(e)}function $h(e){let t=Tc(e);return Ae(t)?Yt():t}var Yi=u(()=>{M();kn();Le();Xt();vt();Q();gs();Hi();Ji()});function Et(e,t){let n="object",r={[e]:t};return d.Create({"~kind":"Record"},{type:n,patternProperties:r})}var tr=u(()=>{S()});function wh(e){return Et(mn,e)}var kh=u(()=>{Xe();tr()});function Th(e){return W({true:e,false:e})}var vh=u(()=>{fe()});function je(e,t={}){let[n,r,o]=[e,e.length,!1];return d.Create({"~kind":"Tuple"},{type:"array",additionalItems:o,items:n,minItems:r},t)}function ye(e){return C(e,"Tuple")}function Eh(e){return d.Discard(e,["~kind","type","items","minItems","additionalItems"])}var Ue=u(()=>{S();J()});function iM(e){return d.Discard(e,["~readonly"])}function vc(e,t){return d.Update(iM(e),{},t)}function Sh(e,t,n,r){let o=k(e,t,n);return vc(o,r)}var Ec=u(()=>{S();N()});function Ph(e,t={}){return j("RemoveReadonly",[e],t)}function Ah(e,t={}){return vc(e,t)}var Sc=u(()=>{ce();Ec()});function aM(e){return d.Discard(e,["~optional"])}function Pc(e,t){return d.Update(aM(e),{},t)}function Rh(e,t,n,r){let o=k(e,t,n);return Pc(o,r)}var Ac=u(()=>{S();N()});function Mh(e,t={}){return j("RemoveOptional",[e],t)}function Xi(e,t={}){return Pc(e,t)}var Zi=u(()=>{ce();Ac()});function Rc(e){return e.reduceRight((n,r,o)=>({[o]:r,...n}),{})}function Oh(e){let t=Rc(e.items);return W(t)}var Mc=u(()=>{fe()});function Oc(e){return pe(e)||ye(e)}function uM(e,t){return Sr(e)?!!Sr(t):!1}function mM(e,t){return ut(e)?!!ut(t):!1}function cM(e,t){let n=uM(e,t),r=mM(e,t),o=Te([e,t]),s=Ah(Xi(o));return n&&r?Er(wr(s)):n&&!r?Er(s):!n&&r?wr(s):s}function pM(e,t,n){return n in e?n in t?cM(e[n],t[n]):e[n]:n in t?t[n]:ge()}function lM(e,t){return[...new Set([...m.Keys(e),...m.Keys(t)])].reduce((o,s)=>({...o,[s]:pM(e,t,s)}),{})}function Ch(e){return pe(e)?e.properties:ye(e)?Rc(e.items):{}}function Lh(e,t){let n=Ch(e),r=Ch(t),o=lM(n,r);return W(o)}var Cc=u(()=>{M();ps();Zn();fe();Je();Ue();cs();rs();Sc();Zi();Mc();Y()});function dM(e,t){let n=ys(e,t);return m.IsEqual(n,xs)?e:m.IsEqual(n,Qi)||m.IsEqual(n,hs)?t:ge()}function fM(e,t){let n=Oc(e),r=Oc(t);return n&&r?Lh(e,t):n&&!r?e:!n&&r?t:dM(e,t)}function Fh(e,t){return an(e)||Ee(e)?e:Oe(e)||an(t)||Ee(t)?t:Oe(t)?e:fM(e,t)}var Lc=u(()=>{M();wt();Je();nt();bs();Cc()});function gM(e,t){return F(e)||F(t)}function hM(e,t){let n=Zt(e),r=Zt(t);return gM(n,r)?Te([n,r]):Fh(n,r)}function jh(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>jh(e,o,[...n,hM(r,e)]),()=>m.IsEqual(n.length,0)?[e]:n)}function Dh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Dh(o,t,[...n,...Is([r],t)]),()=>n)}function Is(e,t=[]){return m.ShiftLeft(e,(n,r)=>F(n)?Is(r,Dh(n.anyOf,t)):Is(r,jh(n,t)),()=>t)}var Fc=u(()=>{M();Q();Lc();Y();Y()});function xM(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[]:[e]}function _h(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>_h(o,t,[...n,...xM(r,t)]),()=>n)}function ea(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=_h(r,t);return St(o)}var jc=u(()=>{M();Q();Sn();Y();Y()});function cn(e,t,n){let r=Te([e,t]),o=ea(n,e);return St([r,o])}function bt(e,t=[]){return m.ShiftLeft(e,(n,r)=>bt(r,[...t,re(n)]),()=>St(t))}function Te(e){let t=Is(e),n=Dc(t);return St(n)}function mt(e){let t=$h(e);return Zt(t)}function St(e){let t=Dc(e);return nr(t)}function Zt(e){return Pe(e)?cn(e.if,e.then,e.else):ot(e)?bt(e.enum):ne(e)?Te(e.allOf):Ae(e)?mt(e.pattern):F(e)?St(e.anyOf):e}function nr(e){return m.IsEqual(e.length,1)?e[0]:m.IsEqual(e.length,0)?ge():X(e)}var Y=u(()=>{M();Ot();un();Ne();Le();Je();vt();Q();Fc();_c();jc();Yi()});function Nh(e,t){let n=bt(e);return rr(n,t)}var qh=u(()=>{$s();Y()});function Uh(e,t){return Et(or,t)}var Kh=u(()=>{Xe();tr()});function Gh(e,t){let n=Te(e);return rr(n,t)}var Wh=u(()=>{Y();$s()});function Bh(e,t){return m.IsString(e)||m.IsNumber(e)?W({[e]:t}):m.IsEqual(e,!1)?W({false:t}):m.IsEqual(e,!0)?W({true:t}):W({})}var zh=u(()=>{M();fe()});function Hh(e,t){return Et(uo,t)}var Vh=u(()=>{Xe();tr()});function Jh(e,t){return m.HasPropertyKey(e,"pattern")&&(m.IsString(e.pattern)||e.pattern instanceof RegExp)?Et(e.pattern.toString(),t):Et(mn,t)}var Yh=u(()=>{M();Xe();tr()});function Xh(e,t){let n=fs(e);return zi(n)?rr(mt(e),t):Et(e,t)}var Zh=u(()=>{$s();gs();Hi();Y();tr()});function yM(e){return F(e)?mo(e.anyOf):[e]}function mo(e,t=[]){return m.ShiftLeft(e,(n,r)=>mo(r,[...t,...yM(n)]),()=>t)}var ta=u(()=>{M();Q()});function bM(e){return e.some(t=>yt(t)||Fe(t)||ht(t))}function IM(e,t){return m.IsEqual(bM(e),!0)?Et(mn,t):void 0}function $M(e,t){return e.reduce((n,r)=>le(r)&&(m.IsString(r.const)||m.IsNumber(r.const))?{...n,[r.const]:t}:n,{})}function wM(e,t){let n=$M(e,t);return W(n)}function Qh(e,t){let n=mo(e),r=IM(n,t);return _e(r)?r:wM(n,t)}var ex=u(()=>{M();J();Le();xt();En();fe();Xt();Xe();ta();tr()});function rr(e,t){return Ee(e)?wh(t):Jt(e)?Th(t):ot(e)?Nh(e.enum,t):ht(e)?Uh(e,t):ne(e)?Gh(e.allOf,t):le(e)?Bh(e.const,t):Fe(e)?Hh(e,t):F(e)?Qh(e.anyOf,t):yt(e)?Jh(e,t):Ae(e)?Xh(e.pattern,t):W({})}var $s=u(()=>{wt();Qn();un();Ne();En();Le();xt();fe();Xt();vt();Q();kh();vh();qh();Kh();Wh();zh();Vh();Yh();Zh();ex()});function Nc(e,t,n){return H([e])?d.Update(rr(e,t),{},n):ra(e,t,n)}function tx(e,t,n,r,o){let s=k(e,t,n),i=k(e,t,r);return Nc(s,i,o)}var na=u(()=>{S();Xe();$s();N()});function ra(e,t,n={}){return j("Record",[e,t],n)}function oa(e,t,n={}){return Nc(e,t,n)}function nx(e,t){return Et(e,t)}function sa(e){return m.IsEqual(e,mn)?Yt():m.IsEqual(e,or)?Ar():m.IsEqual(e,uo)?Ct():Tc(e)}function Qt(e){return m.Keys(e.patternProperties)[0]}function co(e){let t=Qt(e);return sa(t)}function It(e){return e.patternProperties[Qt(e)]}function it(e){return C(e,"Record")}var or,uo,mn,Xe=u(()=>{S();M();J();En();xt();Xt();ce();Yi();tr();na();or=`^${Ui}$`,uo=`^${Gi}$`,mn=`^${Wi}$`});function Or(e){return d.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function sr(e){return C(e,"Rest")}var po=u(()=>{S();J()});var rx=u(()=>{});function ia(e){return d.Create({"~kind":"This"},{$ref:"#"},e)}function aa(e){return C(e,"This")}var ua=u(()=>{S();J()});function lo(e){return d.Create({"~kind":"Undefined"},{type:"undefined"},e)}function fo(e){return C(e,"Undefined")}var go=u(()=>{S();J()});function ma(e){return d.Create({"~kind":"Void"},{type:"void"},e)}function Pn(e){return C(e,"Void")}var Cr=u(()=>{S();J()});var ca=u(()=>{yc();us();Zn();ps();Ic();wt();gt();Pr();Qn();ho();Bt();kt();ce();un();zt();ns();$c();Ot();Vt();En();Ne();Le();Je();io();xt();nt();Rr();fe();kc();kr();Xe();Ht();po();J();rx();Xt();Rr();vt();ua();Ue();go();Q();nt();ji();Cr()});function TM(e,t){return m.IsEqual(e,"Array")?qt(t[0]):m.IsEqual(e,"Capitalize")?la(t[0]):m.IsEqual(e,"ConstructorParameters")?xa(t[0]):m.IsEqual(e,"Evaluate")?sb(t[0]):m.IsEqual(e,"Exclude")?ya(t[0],t[1]):m.IsEqual(e,"Extract")?ba(t[0],t[1]):m.IsEqual(e,"Index")?vs(t[0],t[1]):m.IsEqual(e,"InstanceType")?Ia(t[0]):m.IsEqual(e,"Lowercase")?da(t[0]):m.IsEqual(e,"NonNullable")?$a(t[0]):m.IsEqual(e,"Omit")?wa(t[0],t[1]):m.IsEqual(e,"Parameters")?ka(t[0]):m.IsEqual(e,"Partial")?Ta(t[0]):m.IsEqual(e,"Pick")?va(t[0],t[1]):m.IsEqual(e,"Readonly")?Ea(t[0]):m.IsEqual(e,"KeyOf")?Es(t[0]):m.IsEqual(e,"Record")?ra(t[0],t[1]):m.IsEqual(e,"Required")?Sa(t[0]):m.IsEqual(e,"ReturnType")?Pa(t[0]):m.IsEqual(e,"Uncapitalize")?fa(t[0]):m.IsEqual(e,"Uppercase")?ga(t[0]):Ts(qn(e),t)}function Lr(){throw Error("Unreachable")}function ux(e,t=[]){return m.ShiftLeft(e,(n,r)=>ux(r,[...t,n[1]]),()=>t)}function Un(e){return m.IsEqual(e.length,3)?[e[0],...ux(e[1])]:[]}function mx(e){return Mr(e[0],e[2],e[4])}function cx(e){return Mr(e[0],e[2],e[2])}function px(e){return Mr(e[0],Ye(),e[2])}function lx(e){return Mr(e,Ye(),Ye())}function dx(e){return Un(e)}function fx(e){return e[1]}function gx(e){return Un(e)}function hx(e){return e[1]}function xx(e){return TM(e[0],e[1])}function yx(e){return null}function bx(e){return Yt()}function Ix(e){return Ct()}function $x(e){return qi()}function wx(e){return lo()}function kx(e){return oo()}function Tx(e){return Ar()}function vx(e){return ls()}function Ex(e){return Ye()}function Sx(e){return to()}function Px(e){return W({})}function Ax(e){return ge()}function Rx(e){return ao()}function Mx(e){return ma()}function Ox(e){return ia()}function Cx(e){return re(BigInt(e))}function Lx(e){return re(m.IsEqual(e,"true"))}function Fx(e){return re(parseFloat(e))}function jx(e){return re(e)}function Dx(e){return e[1]}function _x(e){return re(e)}function Nx(e){return m.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function qx(e){return e[1]}function Ux(e){return pa(e)}function Kx(e){return m.IsEqual(e.length,6)?Tr(e[1],e[3],e[5]):Tr(e[1],e[3],Ye())}function Gx(e){return e.length>0}function Wx(e){return e.reduce((t,n)=>m.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function Bx(e){return m.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function zx(e){return m.IsArray(e)&&m.IsEqual(e.length,3)?e[1]:e}function Hx(e){return m.IsEqual(e.length,2)?e[1]:[]}function ox(e,t){return t.reduce((n,r)=>{let o=r;return m.IsEqual(o.length,1)?vs(n,o[0]):m.IsEqual(o.length,0)?qt(n):Lr()},e)}function sx(e,t){return m.IsEqual(t.length,3)?ha(e,t[0],t[1],t[2]):e}function vM(e,t){return m.IsArray(t)&&m.IsEqual(t.length,0)?e:Aa(e,t)}function Vx(e){let[t,n,r,o,s]=e;return vM(sx(t?Es(ox(n,r)):ox(n,r),o),s)}function qc(e,t){return m.IsEqual(t.length,3)?(()=>{let[n,r,o]=t,s=qc(r,o);if(m.IsEqual(n,"&"))return ne(s)?Tt([e,...s.allOf]):Tt([e,s]);if(m.IsEqual(n,"|"))return F(s)?X([e,...s.anyOf]):X([e,s]);Lr()})():e}function Jx(e){let[t,n]=e;return qc(t,n)}function Yx(e){let[t,n]=e;return qc(t,n)}function Xx(e){return ob(e[1])}function Zx(e){return e[1]}function Qx(e){return Xn(e[0],e[2])}function ey(e){return m.IsEqual(e.length,4)?os(e[1],e[3]):m.IsEqual(e.length,2)?os(e[1],Ye()):Lr()}function ty(e){return`${e}`}function ny(e){return ht(e[3])?or:Fe(e[3])?uo:er(e[3])?mn:yt(e[3])?mn:Lr()}function ry(e){return e.length>0}function oy(e){return e.length>0}function sy(e){let[t,n,r,o,s]=e;return{[n]:t&&r?Tn(In(s)):t&&!r?Tn(s):!t&&r?In(s):s}}function iy(e){return Un(e)}function ay(e){return e.reduce((t,n)=>m.HasPropertyKey(n,or)||m.HasPropertyKey(n,uo)||m.HasPropertyKey(n,mn)?[t[0],d.Assign(t[1],n)]:[d.Assign(t[0],n),t[1]],[{},{}])}function uy(e){return ay(e[1])}function my(e){let[t,n]=e,r=m.IsEqual(m.Keys(n).length,0)?{}:{patternProperties:n};return W(t,r)}function cy(e){return m.IsEqual(e.length,5)?Tn(In(e[4])):m.IsEqual(e.length,3)?e[2]:m.IsEqual(e.length,4)?m.IsEqual(e[2],"readonly")?Tn(e[3]):In(e[3]):Lr()}function py(e){if(!m.IsArray(e)||!m.IsEqual(e.length,3))return e;let[t,n,r]=e;return t&&r?Tn(In(n)):t&&!r?Tn(n):!t&&r?In(n):n}function ly(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function dy(e){return Un(e)}function fy(e){return je(e[1])}function gy(e){return Tn(In(e[4]))}function hy(e){return Tn(e[3])}function xy(e){return In(e[3])}function yy(e){return e[2]}function by(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function Iy(e){return Un(e)}function $y(e){return bn(e[1],e[4])}function wy(e){return yn(e[2],e[5])}function ix(e,t){return m.IsEqual(e,"remove")?Ph(t):m.IsEqual(e,"add")?Tn(t):t}function ky(e){return m.IsEqual(e.length,2)&&m.IsEqual(e[0],"-")?"remove":m.IsEqual(e.length,2)&&m.IsEqual(e[0],"+")||m.IsEqual(e.length,1)?"add":"none"}function ax(e,t){return m.IsEqual(e,"remove")?Mh(t):m.IsEqual(e,"add")?In(t):t}function Ty(e){return m.IsEqual(e.length,2)&&m.IsEqual(e[0],"-")?"remove":m.IsEqual(e.length,2)&&m.IsEqual(e[0],"+")||m.IsEqual(e.length,1)?"add":"none"}function vy(e){return m.IsEqual(e.length,2)?[e[1]]:[]}function Ey(e){return m.IsArray(e[6])&&m.IsEqual(e[6].length,1)?ws(ds(e[3]),e[5],e[6][0],ix(e[1],ax(e[8],e[10]))):ws(ds(e[3]),e[5],qn(e[3]),ix(e[1],ax(e[8],e[10])))}function Sy(e){return qn(e)}function Py(e){return BigInt(e)}function Ay(e){return parseFloat(e)}function Ry(e){return m.IsEqual(e,"true")}function My(e){return null}function Oy(e){return{[e[0]]:e[2]}}function Cy(e){return Un(e)}function EM(e){return e.reduce((t,n)=>d.Assign(t,n),{})}function Ly(e){return EM(e[1])}function Fy(e){return Un(e)}function jy(e){return e[1]}function Dy(e){return ls()}function _y(e){return Yt()}function Ny(e){return Ct()}function qy(e){return Ar()}function Uy(e){return ge()}function Ky(e){return re(e)}function Gy(e){return X(e[1])}function Wy(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function By(e){return[e[0],...e[1]]}function zy(e){return e[1]}function Hy(e){return Un(e)}function Vy(e){return m.IsEqual(e.length,2)?e[1]:[]}function Jy(e){let t=e[2],n=e[3],[r,o]=e[4],s=m.IsEqual(m.Keys(o).length,0)?{}:{patternProperties:o};return{[e[1]]:Xn(t,ks(n,r,s))}}function Yy(e){let t=e[2],[n,r]=e[3],o=m.IsEqual(m.Keys(r).length,0)?{}:{patternProperties:r};return{[e[1]]:ks(t,n,o)}}function Xy(e){return{[e[1]]:Xn(e[2],e[4])}}function Zy(e){return{[e[1]]:e[3]}}function Qy(e){return null}function eb(e){return Un(e)}function tb(e){return e[1]}function nb(e){let[t,n]=[e[0],e[1]];return ib(d.Assign(t,ay(n)[0]))}var rb=u(()=>{S();M();ca();xo()});var Kn=u(()=>{Qr()});function Ss(e){return ue(e.length,2)}function ee(e,t,n){return Ss(e)?t(e[0],e[1]):n()}var Lt=u(()=>{Kn()});function AM(e,t){return ue(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function Se(e,t){for(let n=0;n<e.length;n++){let r=AM(e[n],t);if(Ss(r))return r}return[]}var An=u(()=>{Lt();Kn()});function Uc(e,t){return Array.from({length:t-e+1},(n,r)=>String.fromCharCode(e+r))}var ab,Kc,Gc,yo,ub,bo,ir,Ra,mb,Ma,ct=u(()=>{ab=[...Uc(97,122),...Uc(65,90)],Kc="0",Gc=Uc(49,57),yo=[Kc,...Gc],ub=" ",bo=`
14
- `,ir="_",Ra=".",mb="$",Ma="-"});function lb(e){let t=e.indexOf(MM);return ue(t,-1)?"":e.slice(t+2)}function db(e){let t=e.indexOf(bo);return ue(t,-1)?"":e.slice(t)}function OM(e){return e.replace(/^[ \t\r\f\v]+/,"")}function Oa(e){let t=OM(e);return t.startsWith(pb)?Oa(lb(t.slice(2))):t.startsWith(cb)?Oa(db(t.slice(2))):t}function Ze(e){let t=e.trimStart();return t.startsWith(pb)?Ze(lb(t.slice(2))):t.startsWith(cb)?Ze(db(t.slice(2))):t}var cb,pb,MM,Rn=u(()=>{Kn();ct();cb="//",pb="/*",MM="*/"});function Ca(e,t){return ee(Se([e],t),(n,r)=>[n,r],()=>["",t])}var Wc=u(()=>{Lt();An()});function CM(e,t){return e.includes(t)}function Io(e,t,n,r=""){return ee(Se(e,n),(o,s)=>CM(t,o)?Io(e,t,s,r):Io(e,t,s,`${r}${o}`),()=>[r,n])}var Bc=u(()=>{Lt();An()});function LM(e){return Se(Gc,e)}function jM(e){return Io(FM,[ir],e)}function DM(e){return ee(Se([Kc],e),(t,n)=>[t,n],()=>ee(LM(e),(t,n)=>ee(jM(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[]))}function La(e){return DM(Ze(e))}var FM,Fa=u(()=>{Lt();Rn();An();Bc();ct();ct();ct();ct();FM=[...yo,ir]});function _M(e){return Ca(Ma,e)}function NM(e){return ee(_M(e),(t,n)=>ee(La(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function fb(e){return NM(Ze(e))}var zc=u(()=>{Lt();Rn();Wc();ct();Fa()});function qM(e){return ee(fb(e),(t,n)=>ee(Se(["n"],n),(r,o)=>[`${t}`,o],()=>[]),()=>[])}function Hc(e){return qM(e)}var gb=u(()=>{Lt();An();zc()});function Vc(e,t){return Se([e],t)}function h(e,t){return ue(e,"")?["",t]:e.startsWith(bo)?Vc(e,Oa(t)):e.startsWith(ub)?Vc(e,t):Vc(e,Ze(t))}var hb=u(()=>{Kn();Rn();Rn();An();ct();ct()});function UM(e){return Se(xb,e)}function yb(e,t=""){return ee(Se(KM,e),(n,r)=>yb(r,`${t}${n}`),()=>[t,e])}function GM(e){return ee(UM(e),(t,n)=>ee(yb(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Re(e){return GM(Ze(e))}var xb,KM,bb=u(()=>{Lt();Rn();An();ct();ct();ct();ct();xb=[...ab,ir,mb];KM=[...xb,...yo]});function BM(e){return Ss(Se([Ra],e))}function Ib(e){return ee(Io(WM,[ir],e),(t,n)=>ue(t,"")?[]:[t,n],()=>[])}function zM(e){return ee(Se([Ra],e),(t,n)=>ee(Ib(n),(r,o)=>[`0${t}${r}`,o],()=>[]),()=>[])}function HM(e){return ee(La(e),(t,n)=>ee(Se([Ra],n),(r,o)=>ee(Ib(o),(s,i)=>[`${t}${r}${s}`,i],()=>[`${t}`,o]),()=>[`${t}`,n]),()=>[])}function VM(e){return BM(e)?zM(e):HM(e)}function $b(e){return VM(Ze(e))}var WM,Jc=u(()=>{Kn();Lt();Rn();An();Bc();ct();ct();Fa();WM=[...yo,ir]});function JM(e){return Ca(Ma,e)}function YM(e){return ee(JM(e),(t,n)=>ee($b(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function ja(e){return YM(Ze(e))}var wb=u(()=>{Lt();Rn();Wc();ct();Jc()});var kb=u(()=>{Kn()});function XM(e){return ue(e,"")?[]:[e.slice(0,1),e.slice(1)]}function Tb(e,t){return Pi(e,(n,r)=>t.startsWith(n)?!0:Tb(r,t),()=>!1)}function ar(e,t,n=""){return ee(XM(t),(r,o)=>Tb(e,t)?[n,t]:ar(e,o,`${n}${r}`),()=>[])}var Da=u(()=>{Lt();Kn()});function ZM(e,t,n){return ee(Se([e],n),(r,o)=>ee(ar([t],o),(s,i)=>ee(Se([t],i),(c,p)=>[`${s}`,p],()=>[]),()=>[]),()=>[])}function QM(e,t,n){return ee(Se([e],n),(r,o)=>ee(ar([bo,t],o),(s,i)=>ee(Se([t],i),(c,p)=>[`${s}`,p],()=>[]),()=>[]),()=>[])}function vb(e,t,n,r){return n?ZM(e,t,Ze(r)):QM(e,t,Ze(r))}var Yc=u(()=>{Lt();Rn();ct();An();Da()});function eO(e,t){return Se(e,t)}function tO(e,t){return vb(e,e,!1,t)}function nO(e,t){return ee(eO(e,t),(n,r)=>tO(n,`${n}${r}`),()=>[])}function _a(e,t){return nO(e,Ze(t))}var Eb=u(()=>{Lt();An();Rn();Yc()});function Sb(e,t){return ee(ar(e,t),(n,r)=>ue(n,"")?[]:[n,r],()=>[])}var Pb=u(()=>{Kn();Lt();Da()});var Ab=u(()=>{gb();hb();bb();zc();wb();kb();Yc();Eb();Fa();Jc();Pb();Da()});var a,oO,sO,iO,aO,Ob,Cb,uO,Qc,Lb,mO,cO,pO,Fb,jb,Db,lO,dO,fO,_b,gO,hO,xO,yO,bO,Nb,IO,$O,wO,Xc,qb,ep,kO,TO,vO,EO,SO,PO,AO,Ub,RO,MO,OO,CO,Kb,Gb,Wb,Bb,Na,LO,FO,jO,DO,me,_O,NO,qO,UO,zb,Hb,Vb,Jb,qa,Yb,KO,tp,GO,WO,Rb,Xb,Zb,BO,zO,HO,VO,JO,YO,Mb,Qb,eI,tI,XO,ZO,QO,eC,tC,nC,rC,oC,sC,iC,aC,uC,mC,nI,rI,cC,oI,sI,pC,lC,np,dC,fC,gC,hC,xC,yC,bC,IC,iI,Zc,rp,fh,aI,$C,uI,wC,kC,TC,vC,EC,mI,cI,SC,op,PC,pI,Bi=u(()=>{rb();Ab();a=(e,t,n=()=>[])=>e.length===2?t(e):n(),oO=e=>a(a(Re(e),([t,n])=>a(h("extends",n),([r,o])=>a(me(o),([s,i])=>a(h("=",i),([c,p])=>a(me(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[mx(t),n]),sO=e=>a(a(Re(e),([t,n])=>a(h("extends",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[cx(t),n]),iO=e=>a(a(Re(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[px(t),n]),aO=e=>a(Re(e),([t,n])=>[lx(t),n]),Ob=e=>a(a(oO(e),([t,n])=>[t,n],()=>a(sO(e),([t,n])=>[t,n],()=>a(iO(e),([t,n])=>[t,n],()=>a(aO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Cb=(e,t=[])=>a(a(h(",",e),([n,r])=>a(Ob(r),([o,s])=>[[n,o],s])),([n,r])=>Cb(r,[...t,n]),()=>[t,e]),uO=e=>a(a(a(Ob(e),([t,n])=>a(Cb(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[dx(t),n]),Qc=e=>a(a(h("<",e),([t,n])=>a(uO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[fx(t),n]),Lb=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>Lb(r,[...t,n]),()=>[t,e]),mO=e=>a(a(a(me(e),([t,n])=>a(Lb(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[gx(t),n]),cO=e=>a(a(h("<",e),([t,n])=>a(mO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[hx(t),n]),pO=e=>a(a(Re(e),([t,n])=>a(cO(n),([r,o])=>[[t,r],o])),([t,n])=>[xx(t),n]),Fb=e=>a(a(a(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[yx(t),n]),jb=e=>a(h("string",e),([t,n])=>[bx(t),n]),Db=e=>a(h("number",e),([t,n])=>[Ix(t),n]),lO=e=>a(h("boolean",e),([t,n])=>[$x(t),n]),dO=e=>a(h("undefined",e),([t,n])=>[wx(t),n]),fO=e=>a(h("null",e),([t,n])=>[kx(t),n]),_b=e=>a(h("integer",e),([t,n])=>[Tx(t),n]),gO=e=>a(h("bigint",e),([t,n])=>[vx(t),n]),hO=e=>a(h("unknown",e),([t,n])=>[Ex(t),n]),xO=e=>a(h("any",e),([t,n])=>[Sx(t),n]),yO=e=>a(h("object",e),([t,n])=>[Px(t),n]),bO=e=>a(h("never",e),([t,n])=>[Ax(t),n]),Nb=e=>a(h("symbol",e),([t,n])=>[Rx(t),n]),IO=e=>a(h("void",e),([t,n])=>[Mx(t),n]),$O=e=>a(h("this",e),([t,n])=>[Ox(t),n]),wO=e=>a(a(h("${",e),([t,n])=>a(me(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Dx(t),n]),Xc=e=>a(ar(["${","`"],e),([t,n])=>[_x(t),n]),qb=e=>a(a(a(Xc(e),([t,n])=>a(wO(n),([r,o])=>a(qb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a(a(Xc(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a(a(Xc(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[Nx(t),n]),ep=e=>a(a(h("`",e),([t,n])=>a(qb(n),([r,o])=>a(h("`",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[qx(t),n]),kO=e=>a(ep(e),([t,n])=>[Ux(t),n]),TO=e=>a(a(a(h("if",e),([t,n])=>a(me(n),([r,o])=>a(h("then",o),([s,i])=>a(me(i),([c,p])=>a(h("else",p),([f,I])=>a(me(I),([$,A])=>[[t,r,s,c,f,$],A])))))),([t,n])=>[t,n],()=>a(a(h("if",e),([t,n])=>a(me(n),([r,o])=>a(h("then",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>[])),([t,n])=>[Kx(t),n]),vO=e=>a(Hc(e),([t,n])=>[Cx(t),n]),EO=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[Lx(t),n]),SO=e=>a(ja(e),([t,n])=>[Fx(t),n]),PO=e=>a(_a(["'",'"'],e),([t,n])=>[jx(t),n]),AO=e=>a(a(a(h("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Gx(t),n]),Ub=(e,t=[])=>a(a(a(h("[",e),([n,r])=>a(me(r),([o,s])=>a(h("]",s),([i,c])=>[[n,o,i],c]))),([n,r])=>[n,r],()=>a(a(h("[",e),([n,r])=>a(h("]",r),([o,s])=>[[n,o],s])),([n,r])=>[n,r],()=>[])),([n,r])=>Ub(r,[...t,n]),()=>[t,e]),RO=e=>a(Ub(e),([t,n])=>[Wx(t),n]),MO=e=>a(a(a(h("extends",e),([t,n])=>a(me(n),([r,o])=>a(h("?",o),([s,i])=>a(me(i),([c,p])=>a(h(":",p),([f,I])=>a(me(I),([$,A])=>[[t,r,s,c,f,$],A])))))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Bx(t),n]),OO=e=>a(a(a(h("(",e),([t,n])=>a(me(n),([r,o])=>a(h(")",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a(jb(e),([t,n])=>[t,n],()=>a(Db(e),([t,n])=>[t,n],()=>a(lO(e),([t,n])=>[t,n],()=>a(dO(e),([t,n])=>[t,n],()=>a(fO(e),([t,n])=>[t,n],()=>a(_b(e),([t,n])=>[t,n],()=>a(gO(e),([t,n])=>[t,n],()=>a(hO(e),([t,n])=>[t,n],()=>a(xO(e),([t,n])=>[t,n],()=>a(yO(e),([t,n])=>[t,n],()=>a(bO(e),([t,n])=>[t,n],()=>a(Nb(e),([t,n])=>[t,n],()=>a(IO(e),([t,n])=>[t,n],()=>a($O(e),([t,n])=>[t,n],()=>a(vO(e),([t,n])=>[t,n],()=>a(EO(e),([t,n])=>[t,n],()=>a(SO(e),([t,n])=>[t,n],()=>a(PO(e),([t,n])=>[t,n],()=>a(kO(e),([t,n])=>[t,n],()=>a(TO(e),([t,n])=>[t,n],()=>a(GO(e),([t,n])=>[t,n],()=>a(zO(e),([t,n])=>[t,n],()=>a(ZO(e),([t,n])=>[t,n],()=>a(XO(e),([t,n])=>[t,n],()=>a(nC(e),([t,n])=>[t,n],()=>a(pO(e),([t,n])=>[t,n],()=>a(rC(e),([t,n])=>[t,n],()=>[])))))))))))))))))))))))))))),([t,n])=>[zx(t),n]),CO=e=>a(a(a(h("with",e),([t,n])=>a(oI(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Hx(t),n]),Kb=e=>a(a(AO(e),([t,n])=>a(OO(n),([r,o])=>a(RO(o),([s,i])=>a(MO(i),([c,p])=>a(CO(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[Vx(t),n]),Gb=e=>a(a(a(h("&",e),([t,n])=>a(Kb(n),([r,o])=>a(Gb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Wb=e=>a(a(Kb(e),([t,n])=>a(Gb(n),([r,o])=>[[t,r],o])),([t,n])=>[Jx(t),n]),Bb=e=>a(a(a(h("|",e),([t,n])=>a(Wb(n),([r,o])=>a(Bb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Na=e=>a(a(Wb(e),([t,n])=>a(Bb(n),([r,o])=>[[t,r],o])),([t,n])=>[Yx(t),n]),LO=e=>a(a(h("readonly",e),([t,n])=>a(Na(n),([r,o])=>[[t,r],o])),([t,n])=>[Xx(t),n]),FO=e=>a(a(h("|",e),([t,n])=>a(Na(n),([r,o])=>[[t,r],o])),([t,n])=>[Zx(t),n]),jO=e=>a(a(Qc(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Qx(t),n]),DO=e=>a(a(a(h("infer",e),([t,n])=>a(Re(n),([r,o])=>a(h("extends",o),([s,i])=>a(Na(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(h("infer",e),([t,n])=>a(Re(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>[])),([t,n])=>[ey(t),n]),me=e=>a(a(DO(e),([t,n])=>[t,n],()=>a(FO(e),([t,n])=>[t,n],()=>a(LO(e),([t,n])=>[t,n],()=>a(Na(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),_O=e=>a(ja(e),([t,n])=>[ty(t),n]),NO=e=>a(Re(e),([t,n])=>[t,n]),qO=e=>a(_a(["'",'"'],e),([t,n])=>[t,n]),UO=e=>a(a(h("[",e),([t,n])=>a(Re(n),([r,o])=>a(h(":",o),([s,i])=>a(a(_b(i),([c,p])=>[c,p],()=>a(Db(i),([c,p])=>[c,p],()=>a(jb(i),([c,p])=>[c,p],()=>a(Nb(i),([c,p])=>[c,p],()=>[])))),([c,p])=>a(h("]",p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[ny(t),n]),zb=e=>a(a(_O(e),([t,n])=>[t,n],()=>a(NO(e),([t,n])=>[t,n],()=>a(qO(e),([t,n])=>[t,n],()=>a(UO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Hb=e=>a(a(a(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ry(t),n]),Vb=e=>a(a(a(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[oy(t),n]),Jb=e=>a(a(Hb(e),([t,n])=>a(zb(n),([r,o])=>a(Vb(o),([s,i])=>a(h(":",i),([c,p])=>a(me(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[sy(t),n]),qa=e=>a(a(a(h(",",e),([t,n])=>a(h(`
12
+ </file>${i}`}catch{return n}})}var $A,nc=u(()=>{$A=64*1024});function kA(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 i of Object.keys(o).sort())s[i]=n(o[i]);return s};try{return JSON.stringify(n(e))??""}catch{return""}}function of(e,t){if(IA.has(e))return;let n=`${e}\0${kA(t)}`,r=zo&&zo.signature===n?zo.count+1:1;return zo={signature:n,count:r},r>=3?{repeats:r}:void 0}function sf(){zo=void 0}function af(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 IA,zo,rc=u(()=>{IA=new Set(["think"])});function uf(e,t){switch(t){case"number":return/^\d+$/.test(e);case"string":return!0;default:return!1}}function vA(e,t,n){let r=t;for(;r<e.length;){let o=e[r];if(!o){r++;continue}if(o==="--")break;if(TA.test(o)){let s=o.includes("="),[i="",...c]=o.split("="),p=n.safeFlags[i];if(!p)return!1;if(p==="none"){if(s)return!1;r++;continue}if(p==="optional"){r++;continue}if(s){if(!uf(c.join("="),p))return!1;r++;continue}let f=e[r+1];if(f===void 0||!uf(f,p))return!1;r+=2;continue}if(n.allowPositional===!1)return!1;r++}return!0}function MA(e){if(!/\$\(|`|\$\{|>|</.test(e)&&!/(?<!&)&(?!&)/.test(e))return e.split(/\|\||&&|;|\|/).map(t=>t.trim()).filter(t=>t.length>0)}function OA(e){let t=e.some(r=>/^cd\b/.test(r)),n=e.some(r=>/^git\b/.test(r));return t&&n}function CA(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 LA(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"&&cf[`git ${n}`]?{name:`git ${n}`,rest:e.slice(2)}:pf[r]?{name:r,rest:e.slice(2)}:{name:t,rest:e.slice(1)}}function jA(e){let t=CA(e),n=LA(t);if(!n)return!1;let{name:r,rest:o}=n;if(FA.has(r)&&o.some(i=>i.includes("$")||i.includes("`")))return!1;let s=cf[r]??AA[r]??pf[r];return s?s.dangerous?.(o)?!1:vA(o,0,s):!!(PA.includes(r)||RA.includes(r))}function Ii(e){let t=MA(e);return!t||t.length===0||OA(t)?!1:t.every(jA)}var TA,EA,bi,wi,oc,$i,sc,mf,SA,cf,PA,AA,pf,RA,FA,ic=u(()=>{TA=/^-[a-zA-Z0-9_-]/;EA={"--all":"none","--branches":"none","--tags":"none","--remotes":"none"},bi={"--oneline":"none","--graph":"none","--decorate":"none","--no-decorate":"none","--date":"string","--relative-date":"none"},wi={"--max-count":"number","-n":"number"},oc={"--stat":"none","--numstat":"none","--shortstat":"none","--name-only":"none","--name-status":"none"},$i={"--color":"none","--no-color":"none"},sc={"--patch":"none","-p":"none","--no-patch":"none","--no-ext-diff":"none","-s":"none"},mf={"--author":"string","--committer":"string","--grep":"string"},SA={"-l":"none","--list":"none","-a":"none","-r":"none","-v":"none","-vv":"none","-i":"none"},cf={"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",...$i}},"git diff":{safeFlags:{...oc,...$i,...sc,"--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:{...bi,...wi,...oc,...$i,...sc,...mf,...EA,"--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:{...oc,...$i,...sc,...bi,"--format":"string","--pretty":"string","--abbrev-commit":"none","--no-patch":"none","-q":"none"}},"git shortlog":{safeFlags:{...wi,"-s":"none","--summary":"none","-n":"none","--numbered":"none","-e":"none","--email":"none","-sn":"none","-ns":"none","--all":"none"}},"git reflog":{safeFlags:{...wi,...bi,...mf,"--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:{...wi,"--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:{...bi}},"git worktree list":{safeFlags:{"--porcelain":"none","-v":"none","--verbose":"none","-z":"none"}},"git branch":{safeFlags:{...SA,"--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"}}},PA=["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"],AA={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))}},pf={"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:{}}},RA=["cd","alias","history","arch","ip addr","ifconfig"];FA=new Set(["echo","printf"])});var yf={};Mt(yf,{APPROVAL_LABELS:()=>ki,APPROVAL_MODES:()=>Xr,MODE_MAX_TIER:()=>lf,TIER_RANK:()=>ac,createPermissionExtension:()=>Ho,criticalCommand:()=>df,decideToolCall:()=>gf,describeToolCall:()=>hf,formatApprovalPrompt:()=>xf,getApprovalMode:()=>qA,isApprovalMode:()=>DA,isReadOnlyCommand:()=>Ii,resolveTier:()=>uc,setApprovalMode:()=>cc,setApprovalPrompt:()=>pc});function DA(e){return Xr.includes(e)}function uc(e){let t=_A[e];return t||(e.startsWith("mcp__")?"write":"exec")}function df(e){for(let{pattern:t,reason:n}of NA)if(t.test(e))return n}function cc(e){mc=e}function qA(){return mc}function pc(e){ff=e}function gf(e,t,n){let r=typeof n?.command=="string"?n.command:"";if(t==="bash"||t==="powershell"){let s=df(r);if(s)return{action:"deny",reason:`Refused in every mode: ${s}.`};if(Ii(r))return{action:"run"}}let o=uc(t);return ac[o]<=ac[lf[e]]?{action:"run"}:{action:"prompt",reason:`this is a ${o}-tier tool`}}function hf(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 xf(e,t,n){let r=[`Allow tool: ${e}`];e.startsWith("mcp__")&&r.push("Origin: MCP server tool"),r.push(`Reason: ${n}`);let o=hf(e,t);return o!==e&&r.push(o),r.join(`
13
+ `)}function Ho(e={}){return t=>{t.on("tool_call",async n=>{let r=of(n.toolName,n.input);if(r)return{block:!0,reason:af(n.toolName,r.repeats)};let o=mc,s=gf(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 ${uc(n.toolName)}-tier tool and no UI can approve it here (approval mode: ${o}).`};if(!await ff(`${n.toolName} wants to run`,xf(n.toolName,n.input,s.reason)))return{block:!0,reason:`Blocked by the user (approval mode: ${o}).`}})}}var Xr,ki,ac,lf,_A,NA,mc,ff,Vo=u(()=>{rc();ic();ic();Xr=["suggest","auto-edit","full-auto"],ki={suggest:"suggest: ask before every edit and command","auto-edit":"auto-edit: edits run, commands ask","full-auto":"full-auto: nothing asks"};ac={read:0,write:1,exec:2},lf={suggest:"read","auto-edit":"write","full-auto":"exec"},_A={read:"read",grep:"read",find:"read",ls:"read",think:"read",ask:"read",todo:"read",context:"read",web_search:"read",web_fetch:"read",lsp:"read",workflow:"exec",goal:"read",enter_plan_mode:"read",exit_plan_mode:"read",edit:"write",write:"write",bash:"exec",powershell:"exec",task:"exec"};NA=[{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"}];mc="full-auto",ff=async()=>!1});function UA(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 GA(e){if(!e)return;let t=!1,n={...e};for(let r of KA){let o=n[r];if(typeof o!="string")continue;let s=UA(o);s!==o&&(n[r]=s,t=!0)}return t?n:void 0}function bf(){return e=>{e.on("context_with_system",async t=>{let n=t.messages[0];if(!n||n.role!=="system")return;let r=GA(n.sections);return r?{messages:t.messages.map(s=>s===n?{...n,sections:r}:s)}:void 0})}}var KA,wf=u(()=>{KA=["preamble","rules","docs","addendum"]});import{Type as Zr}from"@earendil-works/pi-ai";import{defineTool as $f}from"@earendil-works/pi-coding-agent";function If(e){lc=e}var lc,kf,Tf,dc=u(()=>{kf=$f({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:Zr.Object({thoughts:Zr.String({description:"Private notes"})}),async execute(){return{content:[{type:"text",text:"noted"}],details:{recorded:!0}}}}),Tf=$f({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:Zr.Object({question:Zr.String(),options:Zr.Array(Zr.String(),{minItems:2})}),async execute(e,t){if(!lc)return{content:[{type:"text",text:"cancelled"}],details:{answer:"cancelled"}};let n=await lc(t.question,t.options);return{content:[{type:"text",text:n}],details:{answer:n}}}})});var sn,yr=u(()=>{sn={assign:0,create:0,clone:0,discard:0,update:0}});function br(e,t,n){return e>=t&&e<=n}function Sf(e){return e===8205}function WA(e){return br(e,55296,56319)}function vf(e){return br(e,127462,127487)}function Pf(e){return br(e,65024,65039)}function Af(e){return br(e,768,879)||br(e,6832,6911)||br(e,7616,7679)||br(e,65056,65071)}function Ti(e){return e>65535?2:1}function Ef(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(Af(n)||Pf(n))t+=Ti(n);else break}return t}function fc(e,t){let n=e.codePointAt(t),r=t+Ti(n);for(r=Ef(e,r);r<e.length-1&&Sf(e.codePointAt(r));){let o=e.codePointAt(r+1);r+=1+Ti(o),r=Ef(e,r)}return vf(n)&&r<e.length&&vf(e.codePointAt(r))&&(r+=Ti(e.codePointAt(r))),r}function Rf(e){return e>=768&&(WA(e)||Af(e)||Pf(e)||Sf(e))}function Mf(e){let t=0,n=0;for(;n<e.length;)n=fc(e,n),t++;return t}function BA(e,t){let n=0,r=0;for(;r<e.length;)if(r=fc(e,r),++n>=t)return!0;return!1}function zA(e,t){let n=0,r=0;for(;r<e.length;)if(r=fc(e,r),++n>t)return!1;return!0}function Of(e,t){if(t===0)return!0;if(e.length<t)return!1;let n=0;for(;;){if(Rf(e.charCodeAt(n)))return BA(e,t);if(++n>=t)return!0}}function Cf(e,t){if(e.length<=t)return!0;let n=0;for(;;){if(Rf(e.charCodeAt(n)))return zA(e,t);if(++n>t)return!1}}var Lf=u(()=>{});var m={};Mt(m,{Counted:()=>uR,Entries:()=>pR,EntriesRegExp:()=>cR,Every:()=>oR,EveryAll:()=>sR,GraphemeCount:()=>tR,HasPropertyKey:()=>mR,IsArray:()=>Yo,IsBigInt:()=>Jo,IsBoolean:()=>Ff,IsClassInstance:()=>eR,IsConstructor:()=>VA,IsDeepEqual:()=>xc,IsEqual:()=>ue,IsFunction:()=>jf,IsGreaterEqualThan:()=>_f,IsGreaterThan:()=>XA,IsInteger:()=>gc,IsLessEqualThan:()=>Df,IsLessThan:()=>ZA,IsMaxLength:()=>nR,IsMinLength:()=>rR,IsMultipleOf:()=>QA,IsNull:()=>Ei,IsNumber:()=>Si,IsObject:()=>Xo,IsObjectNotArray:()=>JA,IsString:()=>Pi,IsSymbol:()=>YA,IsUndefined:()=>hc,IsUnsafePropertyKey:()=>qf,IsValueLike:()=>Nf,Keys:()=>vi,ShiftLeft:()=>Ai,Some:()=>iR,SomeAll:()=>aR,Symbols:()=>lR,Values:()=>dR});function Yo(e){return Array.isArray(e)}function Jo(e){return ue(typeof e,"bigint")}function Ff(e){return ue(typeof e,"boolean")}function VA(e){if(hc(e)||!jf(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function jf(e){return ue(typeof e,"function")}function gc(e){return Number.isInteger(e)}function Ei(e){return ue(e,null)}function Si(e){return Number.isFinite(e)}function JA(e){return Xo(e)&&!Yo(e)}function Xo(e){return ue(typeof e,"object")&&!Ei(e)}function Pi(e){return ue(typeof e,"string")}function YA(e){return ue(typeof e,"symbol")}function hc(e){return ue(e,void 0)}function ue(e,t){return e===t}function XA(e,t){return e>t}function ZA(e,t){return e<t}function Df(e,t){return e<=t}function _f(e,t){return e>=t}function QA(e,t){if(Jo(e)||Jo(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!Si(e)||gc(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 eR(e){if(!Xo(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return Ei(t)?!1:ue(typeof t.constructor,"function")&&!(ue(t.constructor,globalThis.Object)||ue(t.constructor.name,"Object"))}function Nf(e){return Jo(e)||Ff(e)||Ei(e)||Si(e)||Pi(e)||hc(e)}function tR(e){return Mf(e)}function nR(e,t){return Cf(e,t)}function rR(e,t){return Of(e,t)}function oR(e,t,n){return e.every((r,o)=>o<t||n(r,o))}function sR(e,t,n){let r=!0;return e.forEach((o,s)=>{s>=t&&!n(o,s)&&(r=!1)}),r}function iR(e,t){return e.some((n,r)=>t(n,r))}function aR(e,t){let n=!1;return e.forEach((r,o)=>{t(r,o)&&(n=!0)}),n}function uR(e,t){return e.reduce((n,r,o)=>t(r,o)?++n:n,0)}function Ai(e,t,n){return ue(e.length,0)?n():t(e[0],e.slice(1))}function qf(e){return ue(e,"__proto__")||ue(e,"constructor")||ue(e,"prototype")}function mR(e,t){return qf(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function cR(e){return vi(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function pR(e){return Object.entries(e)}function vi(e){return Object.getOwnPropertyNames(e)}function lR(e){return Object.getOwnPropertySymbols(e)}function dR(e){return Object.values(e)}function fR(e,t){if(!Xo(t))return!1;let n=vi(e);return ue(n.length,vi(t).length)&&n.every(r=>xc(e[r],t[r]))}function gR(e,t){return Yo(t)&&ue(e.length,t.length)&&e.every((n,r)=>xc(e[r],t[r]))}function xc(e,t){return Yo(e)?gR(e,t):Xo(e)?fR(e,t):ue(e,t)}var Qr=u(()=>{Lf()});var Uf=u(()=>{Qr()});var Vn={};Mt(Vn,{IsBigInt64Array:()=>RR,IsBigUint64Array:()=>MR,IsBoolean:()=>xR,IsDate:()=>CR,IsFloat32Array:()=>PR,IsFloat64Array:()=>AR,IsInt16Array:()=>TR,IsInt32Array:()=>ER,IsInt8Array:()=>$R,IsMap:()=>FR,IsNumber:()=>yR,IsRegExp:()=>OR,IsSet:()=>LR,IsString:()=>bR,IsTypeArray:()=>wR,IsUint16Array:()=>vR,IsUint32Array:()=>SR,IsUint8Array:()=>IR,IsUint8ClampedArray:()=>kR});function xR(e){return e instanceof Boolean}function yR(e){return e instanceof Number}function bR(e){return e instanceof String}function wR(e){return globalThis.ArrayBuffer.isView(e)}function $R(e){return e instanceof globalThis.Int8Array}function IR(e){return e instanceof globalThis.Uint8Array}function kR(e){return e instanceof globalThis.Uint8ClampedArray}function TR(e){return e instanceof globalThis.Int16Array}function vR(e){return e instanceof globalThis.Uint16Array}function ER(e){return e instanceof globalThis.Int32Array}function SR(e){return e instanceof globalThis.Uint32Array}function PR(e){return e instanceof globalThis.Float32Array}function AR(e){return e instanceof globalThis.Float64Array}function RR(e){return e instanceof globalThis.BigInt64Array}function MR(e){return e instanceof globalThis.BigUint64Array}function OR(e){return e instanceof globalThis.RegExp}function CR(e){return e instanceof globalThis.Date}function LR(e){return e instanceof globalThis.Set}function FR(e){return e instanceof globalThis.Map}var Kf=u(()=>{});var Gf=u(()=>{Qr()});var O=u(()=>{Uf();Kf();Gf();Qr();Qr()});var an={};Mt(an,{Get:()=>NR,Reset:()=>DR,Set:()=>_R});function DR(){xn.immutableTypes=!1,xn.maxErrors=8,xn.maxInstantiationCount=128,xn.useAcceleration=!0,xn.exactOptionalPropertyTypes=!1,xn.enumerableKind=!1,xn.correctiveParse=!1,xn.unionPrioritySort=!0}function _R(e){for(let t of m.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(xn,t,{value:n})}}function NR(){return xn}var xn,Wf=u(()=>{O();xn={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0}});var wr=u(()=>{Wf()});function Jn(e){return an.Get().immutableTypes?Object.freeze(e):e}var Zo=u(()=>{wr()});function qR(e,t){return sn.assign+=1,Jn({...e,...t})}var Bf=u(()=>{yr();Zo()});function UR(e){return m.HasPropertyKey(e,"~kind")||m.HasPropertyKey(e,"~unsafe")}function KR(e){let t={};for(let n of m.Keys(e)){if(m.IsUnsafePropertyKey(n))continue;let r=Object.getOwnPropertyDescriptor(e,n);r.value=$r(r.value),m.IsEqual(r.enumerable,!0)?t[n]=r.value:Object.defineProperty(t,n,r)}return t}function GR(e){let t={};for(let n of m.Keys(e))m.IsUnsafePropertyKey(n)||(t[n]=$r(e[n]));for(let n of m.Symbols(e))t[n]=$r(e[n]);return t}function WR(e){return m.IsClassInstance(e)?e:UR(e)?KR(e):GR(e)}function BR(e){return e.map(t=>$r(t))}function zR(e){return e.slice()}function HR(e){return new RegExp(e.source,e.flags)}function VR(e){return new Map($r([...e.entries()]))}function JR(e){return new Set($r([...e.values()]))}function $r(e){return Vn.IsTypeArray(e)?zR(e):Vn.IsRegExp(e)?HR(e):Vn.IsMap(e)?VR(e):Vn.IsSet(e)?JR(e):m.IsArray(e)?BR(e):m.IsObject(e)?WR(e):e}function Qo(e){return sn.clone+=1,$r(e)}var Ri=u(()=>{O();yr()});function YR(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 zf(e,t){return{...e,...t}}function XR(e,t,n={}){sn.create+=1;let r=zf(t,n),o=an.Get().enumerableKind?zf(r,e):YR(r,e);return Jn(o)}var Hf=u(()=>{wr();yr();Zo()});function ZR(e,t){sn.discard+=1;let n={};for(let r of m.Keys(e)){if(t.includes(r))continue;let o=Object.getOwnPropertyDescriptor(e,r);o.value=Qo(o.value),Object.defineProperty(n,r,o)}return Jn(n)}var Vf=u(()=>{O();yr();Zo();Ri()});function QR(e,t,n){sn.update+=1;let r=an.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 Jn(o)}var Jf=u(()=>{wr();yr();Zo();Ri()});var d={};Mt(d,{Assign:()=>qR,Clone:()=>Qo,Create:()=>XR,Discard:()=>ZR,Metrics:()=>sn,Update:()=>QR});var Yf=u(()=>{Bf();Ri();Hf();Vf();yr();Jf()});var S=u(()=>{Yf()});function L(e,t){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.IsEqual(e["~kind"],t)}function _e(e){return m.IsObject(e)}var J=u(()=>{O()});function j(e,t,n){return d.Create({"~kind":"Deferred"},{type:"deferred",action:e,parameters:t,options:n},{})}function Yn(e){return L(e,"Deferred")}var ce=u(()=>{S();J()});function eM(e){return d.Update(e,{"~readonly":!0},{})}function es(e,t){return d.Update(eM(e),{},t)}function Xf(e,t,n,r){let o=T(e,t,n);return es(o,r)}var Mi=u(()=>{S();q()});function tM(e){return d.Update(e,{"~optional":!0},{})}function ts(e,t){return d.Update(tM(e),{},t)}function Zf(e,t,n,r){let o=T(e,t,n);return ts(o,r)}var Oi=u(()=>{S();q()});function qt(e,t){return d.Create({"~kind":"Array"},{type:"array",items:e},t)}function ke(e){return L(e,"Array")}function Ci(e){return d.Discard(e,["~kind","type","items"])}var gt=u(()=>{S();J()});function yn(e,t,n={}){return d.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},n)}function Ge(e){return L(e,"Constructor")}function Qf(e){return d.Discard(e,["~kind","type","parameters","instanceType"])}var Bt=u(()=>{S();J()});function bn(e,t,n={}){return d.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},n)}function We(e){return L(e,"Function")}function eg(e){return d.Discard(e,["~kind","type","parameters","returnType"])}var zt=u(()=>{S();J()});function qn(e,t){return d.Create({"~kind":"Ref"},{$ref:e},t)}function Be(e){return L(e,"Ref")}var Ht=u(()=>{S();J()});function Xn(e,t){return d.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function eo(e){return L(e,"Generic")}var ns=u(()=>{S();J()});function to(e){return d.Create({"~kind":"Any"},{},e)}function Ee(e){return L(e,"Any")}var It=u(()=>{S();J()});function ge(e){return d.Create({"~kind":"Never"},{not:{}},e)}function un(e){return L(e,"Never")}var tg,Je=u(()=>{S();J();tg="(?!)"});function wn(e,t={}){return j("AddOptional",[e],t)}function Ir(e,t={}){return ts(e,t)}var rs=u(()=>{ce();Oi()});function ng(e){return Ir(e)}function ut(e){return _e(e)&&m.HasPropertyKey(e,"~optional")}var Zn=u(()=>{O();J();rs()});function rg(e){return m.Keys(e).filter(t=>!ut(e[t]))}function Li(e){return m.Keys(e)}function Fi(e){return m.Values(e)}var kr=u(()=>{O();Zn()});function W(e,t={}){let n=rg(e),r=n.length>0?{required:n}:{};return d.Create({"~kind":"Object"},{type:"object",...r,properties:e},t)}function pe(e){return L(e,"Object")}function og(e){return d.Discard(e,["~kind","type","properties","required"])}var fe=u(()=>{S();J();kr()});function Ye(e){return d.Create({"~kind":"Unknown"},{},e)}function Oe(e){return L(e,"Unknown")}var nt=u(()=>{S();J()});function $n(e,t,n){let r=m.Keys(e).reduce((o,s)=>({...o,[s]:d.Update(e[s],{},{$id:s})}),{});return d.Create({"~kind":"Cyclic"},{$defs:r,$ref:t},n)}function rt(e){return L(e,"Cyclic")}var kt=u(()=>{O();S();J()});function sg(e){return d.Update(e,{"~unsafe":null},{})}function ji(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"~unsafe")&&m.IsNull(e["~unsafe"])}var Di=u(()=>{O();S()});var In={};Mt(In,{Match:()=>nM});function nM(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}var ig=u(()=>{});var no=u(()=>{ig()});function os(...e){let[t,n]=In.Match(e,{2:(r,o)=>[r,o,o],1:r=>[r,Ye(),Ye()]});return d.Create({"~kind":"Infer"},{type:"infer",name:t,extends:n},{})}function Ce(e){return L(e,"Infer")}var Vt=u(()=>{no();S();J();nt()});function Tr(e,t,n,r={}){return d.Create({"~kind":"Dependent"},{if:e,then:t,else:n},r)}function Pe(e){return L(e,"Dependent")}function ag(e){return d.Discard(e,["~kind","if","then","else"])}var Ot=u(()=>{S();J()});function ug(e){return m.IsObjectNotArray(e)}function mg(e){return m.Keys(e).filter(n=>isNaN(n)).reduce((n,r)=>[...n,e[r]],[])}var _i=u(()=>{O()});function cg(e){return m.IsString(e)||m.IsNumber(e)}function pg(e,t){let n=ug(e)?mg(e):e;return d.Create({"~kind":"Enum"},{enum:n},t)}function ot(e){return L(e,"Enum")}var mn=u(()=>{O();S();J();_i();_i()});function Tt(e,t={}){return d.Create({"~kind":"Intersect"},{allOf:e},t)}function oe(e){return L(e,"Intersect")}function lg(e){return d.Discard(e,["~kind","allOf"])}var Ne=u(()=>{S();J()});var dg=u(()=>{wr();O()});var fg=u(()=>{dg()});var gg=u(()=>{fg()});function qe(){throw new Error("Unreachable")}var yc=u(()=>{});var kn=u(()=>{yc()});var hg,d1,f1,g1,h1,xg,x1,y1,b1,yg=u(()=>{kn();O();(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"})(hg||(hg={}));d1=BigInt("14695981039346656037"),[f1,g1]=[BigInt("1099511628211"),BigInt("18446744073709551616")],h1=Array.from({length:256}).map((e,t)=>BigInt(t)),xg=new Float64Array(1),x1=new DataView(xg.buffer),y1=new Uint8Array(xg.buffer),b1=new TextEncoder});var bg=u(()=>{yg()});var bc=u(()=>{});var wg=u(()=>{bc()});var $g=u(()=>{});var Ig=u(()=>{});var kg=u(()=>{});var Tg=u(()=>{});var vg=u(()=>{});var Eg=u(()=>{});var Sg=u(()=>{});var Pg=u(()=>{});var Ag=u(()=>{});var Rg=u(()=>{});var Mg=u(()=>{});var wc=u(()=>{});var Og=u(()=>{});var Cg=u(()=>{});var Lg=u(()=>{});var Fg=u(()=>{});var jg=u(()=>{});var Dg=u(()=>{});var _g=u(()=>{});var Ng=u(()=>{});var qg=u(()=>{});var Ug=u(()=>{});var Kg=u(()=>{});var Gg=u(()=>{});var Wg=u(()=>{});var Bg=u(()=>{});var zg=u(()=>{});var Hg=u(()=>{});var Vg=u(()=>{});var Jg=u(()=>{});var Yg=u(()=>{});var Xg=u(()=>{});var Zg=u(()=>{});var Qg=u(()=>{});var eh=u(()=>{});var th=u(()=>{});var nh=u(()=>{});var rh=u(()=>{wg();$g();Ig();kg();Tg();vg();bc();Eg();Sg();Pg();Ag();Rg();Mg();wc();wc();Og();Cg();Lg();Fg();jg();Dg();_g();Ng();qg();Ug();Kg();Gg();Wg();Bg();zg();Hg();Vg();Jg();Yg();Xg();Zg();Qg();eh();th();nh()});var oh=u(()=>{rh()});var ss=u(()=>{no();gg();bg();oh();S();wr()});var ih=u(()=>{ss();ss();ss()});function qi(e){return new as(e)}function ah(e,t){return qi(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function uh(e,t){return qi(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function Ni(e){return _e(e)&&m.HasPropertyKey(e,"~codec")&&m.IsObject(e["~codec"])&&m.HasPropertyKey(e["~codec"],"encode")&&m.HasPropertyKey(e["~codec"],"decode")}var is,as,$c=u(()=>{ih();O();J();is=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,r=Ni(n)?i=>this.decode(n["~codec"].decode(i)):this.decode,o=Ni(n)?i=>n["~codec"].encode(t(i)):t,s={decode:r,encode:o};return d.Update(this.type,{"~codec":s},{})}},as=class{constructor(t){this.type=t}Decode(t){return new is(this.type,t)}}});function mh(e){return ro(e)}function vr(e){return _e(e)&&m.HasPropertyKey(e,"~immutable")}var us=u(()=>{O();J();ms()});function Tn(e,t={}){return j("AddReadonly",[e],t)}function Er(e,t={}){return es(e,t)}var cs=u(()=>{ce();Mi()});function ch(e){return Er(e)}function Sr(e){return _e(e)&&m.HasPropertyKey(e,"~readonly")}var ps=u(()=>{O();J();cs()});function iM(e,t){let n=Ic(e)?[...e["~refine"],t]:[t];return d.Update(e,{"~refine":n},{})}function ph(...e){let[t,n,r]=In.Match(e,{3:(o,s,i)=>[o,s,i],2:(o,s)=>[o,s,()=>"Refine Error"]});return iM(t,{check:n,error:r})}function aM(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"check")&&m.HasPropertyKey(e,"error")&&m.IsFunction(e.check)&&m.IsFunction(e.error)}function Ic(e){return _e(e)&&m.HasPropertyKey(e,"~refine")&&m.IsArray(e["~refine"])&&m.Every(e["~refine"],0,t=>aM(t))}var kc=u(()=>{no();S();O();J()});function ls(e){return d.Create({"~kind":"BigInt"},{type:"bigint"},e)}function vn(e){return L(e,"BigInt")}var lh,Pr=u(()=>{S();J();lh="-?(?:0|[1-9][0-9]*)n"});function Ui(e){return d.Create({"~kind":"Boolean"},{type:"boolean"},e)}function Jt(e){return L(e,"Boolean")}var Qn=u(()=>{S();J()});function ds(e){return d.Create({"~kind":"Identifier"},{name:e})}function dh(e){return L(e,"Identifier")}var Tc=u(()=>{S();J()});function Ar(e){return d.Create({"~kind":"Integer"},{type:"integer"},e)}function ht(e){return L(e,"Integer")}var Ki,En=u(()=>{S();J();Ki="-?(?:0|[1-9][0-9]*)"});function uM(e){return m.IsBigInt(e)?"bigint":m.IsBoolean(e)?"boolean":m.IsNumber(e)?"number":m.IsString(e)?"string":(()=>{throw new vc(e)})()}function se(e,t){return d.Create({"~kind":"Literal"},{type:uM(e),const:e},t)}function Gi(e){return m.IsBigInt(e)||m.IsBoolean(e)||m.IsNumber(e)||m.IsString(e)}function fh(e){return le(e)&&m.IsNumber(e.const)}function gh(e){return le(e)&&m.IsString(e.const)}function le(e){return L(e,"Literal")}var vc,Le=u(()=>{S();O();J();vc=class extends Error{constructor(t){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:t},writable:!1,configurable:!1,enumerable:!1})}}});function oo(e){return d.Create({"~kind":"Null"},{type:"null"},e)}function so(e){return L(e,"Null")}var io=u(()=>{S();J()});function Ct(e){return d.Create({"~kind":"Number"},{type:"number"},e)}function Fe(e){return L(e,"Number")}var Wi,xt=u(()=>{S();J();Wi="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?"});function ao(e){return d.Create({"~kind":"Symbol"},{type:"symbol"},e)}function er(e){return L(e,"Symbol")}var Rr=u(()=>{S();J()});function Mr(...e){let[t,n,r]=In.Match(e,{3:(o,s,i)=>[o,s,i],2:(o,s)=>[o,s,s],1:o=>[o,Ye(),Ye()]});return d.Create({"~kind":"Parameter"},{name:t,extends:n,equals:r},{})}function hh(e){return L(e,"Parameter")}var Ec=u(()=>{no();S();J();nt()});function Yt(e){return d.Create({"~kind":"String"},{type:"string"},e)}function yt(e){return L(e,"String")}var Bi,Xt=u(()=>{S();J();Bi=".*"});function X(e,t={}){return d.Create({"~kind":"Union"},{anyOf:e},t)}function F(e){return L(e,"Union")}function xh(e){return d.Discard(e,["~kind","anyOf"])}var Q=u(()=>{S();J()});function fs(e){let t=yh(e);return m.IsEqual(t.length,2)?t[0]:[]}var gs=u(()=>{O();zi()});function mM(e){return!0}function bh(e){return m.ShiftLeft(e,(t,n)=>cM(t)?bh(n):!1,()=>!0)}function wh(e){return m.IsEqual(e.length,0)?!1:bh(e)}function cM(e){return F(e)?wh(e.anyOf):le(e)?mM(e.const):!1}function Hi(e){return wh(e)}var Vi=u(()=>{O();Le();Q()});function Ji(e){return d.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}var Yi=u(()=>{S()});function $h(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>$h(o,t,[...n,`${r}${t}`]),()=>n)}function pM(e,t){return m.IsEqual(e.length,0)?[`${t}`]:$h(e,t)}function Ih(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>Ih(e,o,[...n,...kh(e,r)]),()=>n)}function kh(e,t){return F(t)?Ih(e,t.anyOf):le(t)?pM(e,t.const):qe()}function Th(e,t){return m.ShiftLeft(t,(n,r)=>Th(kh(e,n),r),()=>e)}function lM(e){return e.map(t=>se(t))}function dM(e){let t=Th([],e),n=lM(t);return X(n)}function fM(e){return m.IsEqual(e.length,0)?qe():m.IsEqual(e.length,1)&&le(e[0])?e[0]:dM(e)}function Sc(e){let t=fs(e);return m.IsEqual(t.length,0)?Yt():Hi(t)?fM(t):Ji(e)}function vh(e){let t=Sc(e);return Ae(t)?Yt():t}var Xi=u(()=>{O();kn();Le();Xt();vt();Q();gs();Vi();Yi()});function Et(e,t){let n="object",r={[e]:t};return d.Create({"~kind":"Record"},{type:n,patternProperties:r})}var tr=u(()=>{S()});function Eh(e){return Et(cn,e)}var Sh=u(()=>{Xe();tr()});function Ph(e){return W({true:e,false:e})}var Ah=u(()=>{fe()});function je(e,t={}){let[n,r,o]=[e,e.length,!1];return d.Create({"~kind":"Tuple"},{type:"array",additionalItems:o,items:n,minItems:r},t)}function be(e){return L(e,"Tuple")}function Rh(e){return d.Discard(e,["~kind","type","items","minItems","additionalItems"])}var Ue=u(()=>{S();J()});function gM(e){return d.Discard(e,["~readonly"])}function Pc(e,t){return d.Update(gM(e),{},t)}function Mh(e,t,n,r){let o=T(e,t,n);return Pc(o,r)}var Ac=u(()=>{S();q()});function Oh(e,t={}){return j("RemoveReadonly",[e],t)}function Ch(e,t={}){return Pc(e,t)}var Rc=u(()=>{ce();Ac()});function hM(e){return d.Discard(e,["~optional"])}function Mc(e,t){return d.Update(hM(e),{},t)}function Lh(e,t,n,r){let o=T(e,t,n);return Mc(o,r)}var Oc=u(()=>{S();q()});function Fh(e,t={}){return j("RemoveOptional",[e],t)}function Zi(e,t={}){return Mc(e,t)}var Qi=u(()=>{ce();Oc()});function Cc(e){return e.reduceRight((n,r,o)=>({[o]:r,...n}),{})}function jh(e){let t=Cc(e.items);return W(t)}var Lc=u(()=>{fe()});function Fc(e){return pe(e)||be(e)}function xM(e,t){return Sr(e)?!!Sr(t):!1}function yM(e,t){return ut(e)?!!ut(t):!1}function bM(e,t){let n=xM(e,t),r=yM(e,t),o=Te([e,t]),s=Ch(Zi(o));return n&&r?Er(Ir(s)):n&&!r?Er(s):!n&&r?Ir(s):s}function wM(e,t,n){return n in e?n in t?bM(e[n],t[n]):e[n]:n in t?t[n]:ge()}function $M(e,t){return[...new Set([...m.Keys(e),...m.Keys(t)])].reduce((o,s)=>({...o,[s]:wM(e,t,s)}),{})}function Dh(e){return pe(e)?e.properties:be(e)?Cc(e.items):{}}function _h(e,t){let n=Dh(e),r=Dh(t),o=$M(n,r);return W(o)}var jc=u(()=>{O();ps();Zn();fe();Je();Ue();cs();rs();Rc();Qi();Lc();Y()});function IM(e,t){let n=ys(e,t);return m.IsEqual(n,xs)?e:m.IsEqual(n,ea)||m.IsEqual(n,hs)?t:ge()}function kM(e,t){let n=Fc(e),r=Fc(t);return n&&r?_h(e,t):n&&!r?e:!n&&r?t:IM(e,t)}function Nh(e,t){return un(e)||Ee(e)?e:Oe(e)||un(t)||Ee(t)?t:Oe(t)?e:kM(e,t)}var Dc=u(()=>{O();It();Je();nt();bs();jc()});function TM(e,t){return F(e)||F(t)}function vM(e,t){let n=Zt(e),r=Zt(t);return TM(n,r)?Te([n,r]):Nh(n,r)}function qh(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>qh(e,o,[...n,vM(r,e)]),()=>m.IsEqual(n.length,0)?[e]:n)}function Uh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Uh(o,t,[...n,...ws([r],t)]),()=>n)}function ws(e,t=[]){return m.ShiftLeft(e,(n,r)=>F(n)?ws(r,Uh(n.anyOf,t)):ws(r,qh(n,t)),()=>t)}var _c=u(()=>{O();Q();Dc();Y();Y()});function EM(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[]:[e]}function Kh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Kh(o,t,[...n,...EM(r,t)]),()=>n)}function ta(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=Kh(r,t);return St(o)}var Nc=u(()=>{O();Q();Sn();Y();Y()});function pn(e,t,n){let r=Te([e,t]),o=ta(n,e);return St([r,o])}function bt(e,t=[]){return m.ShiftLeft(e,(n,r)=>bt(r,[...t,se(n)]),()=>St(t))}function Te(e){let t=ws(e),n=qc(t);return St(n)}function mt(e){let t=vh(e);return Zt(t)}function St(e){let t=qc(e);return nr(t)}function Zt(e){return Pe(e)?pn(e.if,e.then,e.else):ot(e)?bt(e.enum):oe(e)?Te(e.allOf):Ae(e)?mt(e.pattern):F(e)?St(e.anyOf):e}function nr(e){return m.IsEqual(e.length,1)?e[0]:m.IsEqual(e.length,0)?ge():X(e)}var Y=u(()=>{O();Ot();mn();Ne();Le();Je();vt();Q();_c();Uc();Nc();Xi()});function Gh(e,t){let n=bt(e);return rr(n,t)}var Wh=u(()=>{$s();Y()});function Bh(e,t){return Et(or,t)}var zh=u(()=>{Xe();tr()});function Hh(e,t){let n=Te(e);return rr(n,t)}var Vh=u(()=>{Y();$s()});function Jh(e,t){return m.IsString(e)||m.IsNumber(e)?W({[e]:t}):m.IsEqual(e,!1)?W({false:t}):m.IsEqual(e,!0)?W({true:t}):W({})}var Yh=u(()=>{O();fe()});function Xh(e,t){return Et(uo,t)}var Zh=u(()=>{Xe();tr()});function Qh(e,t){return m.HasPropertyKey(e,"pattern")&&(m.IsString(e.pattern)||e.pattern instanceof RegExp)?Et(e.pattern.toString(),t):Et(cn,t)}var ex=u(()=>{O();Xe();tr()});function tx(e,t){let n=fs(e);return Hi(n)?rr(mt(e),t):Et(e,t)}var nx=u(()=>{$s();gs();Vi();Y();tr()});function SM(e){return F(e)?mo(e.anyOf):[e]}function mo(e,t=[]){return m.ShiftLeft(e,(n,r)=>mo(r,[...t,...SM(n)]),()=>t)}var na=u(()=>{O();Q()});function PM(e){return e.some(t=>yt(t)||Fe(t)||ht(t))}function AM(e,t){return m.IsEqual(PM(e),!0)?Et(cn,t):void 0}function RM(e,t){return e.reduce((n,r)=>le(r)&&(m.IsString(r.const)||m.IsNumber(r.const))?{...n,[r.const]:t}:n,{})}function MM(e,t){let n=RM(e,t);return W(n)}function rx(e,t){let n=mo(e),r=AM(n,t);return _e(r)?r:MM(n,t)}var ox=u(()=>{O();J();Le();xt();En();fe();Xt();Xe();na();tr()});function rr(e,t){return Ee(e)?Eh(t):Jt(e)?Ph(t):ot(e)?Gh(e.enum,t):ht(e)?Bh(e,t):oe(e)?Hh(e.allOf,t):le(e)?Jh(e.const,t):Fe(e)?Xh(e,t):F(e)?rx(e.anyOf,t):yt(e)?Qh(e,t):Ae(e)?tx(e.pattern,t):W({})}var $s=u(()=>{It();Qn();mn();Ne();En();Le();xt();fe();Xt();vt();Q();Sh();Ah();Wh();zh();Vh();Yh();Zh();ex();nx();ox()});function Kc(e,t,n){return V([e])?d.Update(rr(e,t),{},n):oa(e,t,n)}function sx(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Kc(s,i,o)}var ra=u(()=>{S();Xe();$s();q()});function oa(e,t,n={}){return j("Record",[e,t],n)}function sa(e,t,n={}){return Kc(e,t,n)}function ix(e,t){return Et(e,t)}function ia(e){return m.IsEqual(e,cn)?Yt():m.IsEqual(e,or)?Ar():m.IsEqual(e,uo)?Ct():Sc(e)}function Qt(e){return m.Keys(e.patternProperties)[0]}function co(e){let t=Qt(e);return ia(t)}function wt(e){return e.patternProperties[Qt(e)]}function it(e){return L(e,"Record")}var or,uo,cn,Xe=u(()=>{S();O();J();En();xt();Xt();ce();Xi();tr();ra();or=`^${Ki}$`,uo=`^${Wi}$`,cn=`^${Bi}$`});function Or(e){return d.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function sr(e){return L(e,"Rest")}var po=u(()=>{S();J()});var ax=u(()=>{});function aa(e){return d.Create({"~kind":"This"},{$ref:"#"},e)}function ua(e){return L(e,"This")}var ma=u(()=>{S();J()});function lo(e){return d.Create({"~kind":"Undefined"},{type:"undefined"},e)}function fo(e){return L(e,"Undefined")}var go=u(()=>{S();J()});function ca(e){return d.Create({"~kind":"Void"},{type:"void"},e)}function Pn(e){return L(e,"Void")}var Cr=u(()=>{S();J()});var pa=u(()=>{$c();us();Zn();ps();kc();It();gt();Pr();Qn();ho();Bt();kt();ce();mn();zt();ns();Tc();Ot();Vt();En();Ne();Le();Je();io();xt();nt();Rr();fe();Ec();kr();Xe();Ht();po();J();ax();Xt();Rr();vt();ma();Ue();go();Q();nt();Di();Cr()});function CM(e,t){return m.IsEqual(e,"Array")?qt(t[0]):m.IsEqual(e,"Capitalize")?da(t[0]):m.IsEqual(e,"ConstructorParameters")?ya(t[0]):m.IsEqual(e,"Evaluate")?mb(t[0]):m.IsEqual(e,"Exclude")?ba(t[0],t[1]):m.IsEqual(e,"Extract")?wa(t[0],t[1]):m.IsEqual(e,"Index")?vs(t[0],t[1]):m.IsEqual(e,"InstanceType")?$a(t[0]):m.IsEqual(e,"Lowercase")?fa(t[0]):m.IsEqual(e,"NonNullable")?Ia(t[0]):m.IsEqual(e,"Omit")?ka(t[0],t[1]):m.IsEqual(e,"Parameters")?Ta(t[0]):m.IsEqual(e,"Partial")?va(t[0]):m.IsEqual(e,"Pick")?Ea(t[0],t[1]):m.IsEqual(e,"Readonly")?Sa(t[0]):m.IsEqual(e,"KeyOf")?Es(t[0]):m.IsEqual(e,"Record")?oa(t[0],t[1]):m.IsEqual(e,"Required")?Pa(t[0]):m.IsEqual(e,"ReturnType")?Aa(t[0]):m.IsEqual(e,"Uncapitalize")?ga(t[0]):m.IsEqual(e,"Uppercase")?ha(t[0]):Ts(qn(e),t)}function Lr(){throw Error("Unreachable")}function lx(e,t=[]){return m.ShiftLeft(e,(n,r)=>lx(r,[...t,n[1]]),()=>t)}function Un(e){return m.IsEqual(e.length,3)?[e[0],...lx(e[1])]:[]}function dx(e){return Mr(e[0],e[2],e[4])}function fx(e){return Mr(e[0],e[2],e[2])}function gx(e){return Mr(e[0],Ye(),e[2])}function hx(e){return Mr(e,Ye(),Ye())}function xx(e){return Un(e)}function yx(e){return e[1]}function bx(e){return Un(e)}function wx(e){return e[1]}function $x(e){return CM(e[0],e[1])}function Ix(e){return null}function kx(e){return Yt()}function Tx(e){return Ct()}function vx(e){return Ui()}function Ex(e){return lo()}function Sx(e){return oo()}function Px(e){return Ar()}function Ax(e){return ls()}function Rx(e){return Ye()}function Mx(e){return to()}function Ox(e){return W({})}function Cx(e){return ge()}function Lx(e){return ao()}function Fx(e){return ca()}function jx(e){return aa()}function Dx(e){return se(BigInt(e))}function _x(e){return se(m.IsEqual(e,"true"))}function Nx(e){return se(parseFloat(e))}function qx(e){return se(e)}function Ux(e){return e[1]}function Kx(e){return se(e)}function Gx(e){return m.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function Wx(e){return e[1]}function Bx(e){return la(e)}function zx(e){return m.IsEqual(e.length,6)?Tr(e[1],e[3],e[5]):Tr(e[1],e[3],Ye())}function Hx(e){return e.length>0}function Vx(e){return e.reduce((t,n)=>m.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function Jx(e){return m.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function Yx(e){return m.IsArray(e)&&m.IsEqual(e.length,3)?e[1]:e}function Xx(e){return m.IsEqual(e.length,2)?e[1]:[]}function ux(e,t){return t.reduce((n,r)=>{let o=r;return m.IsEqual(o.length,1)?vs(n,o[0]):m.IsEqual(o.length,0)?qt(n):Lr()},e)}function mx(e,t){return m.IsEqual(t.length,3)?xa(e,t[0],t[1],t[2]):e}function LM(e,t){return m.IsArray(t)&&m.IsEqual(t.length,0)?e:Ra(e,t)}function Zx(e){let[t,n,r,o,s]=e;return LM(mx(t?Es(ux(n,r)):ux(n,r),o),s)}function Gc(e,t){return m.IsEqual(t.length,3)?(()=>{let[n,r,o]=t,s=Gc(r,o);if(m.IsEqual(n,"&"))return oe(s)?Tt([e,...s.allOf]):Tt([e,s]);if(m.IsEqual(n,"|"))return F(s)?X([e,...s.anyOf]):X([e,s]);Lr()})():e}function Qx(e){let[t,n]=e;return Gc(t,n)}function ey(e){let[t,n]=e;return Gc(t,n)}function ty(e){return ub(e[1])}function ny(e){return e[1]}function ry(e){return Xn(e[0],e[2])}function oy(e){return m.IsEqual(e.length,4)?os(e[1],e[3]):m.IsEqual(e.length,2)?os(e[1],Ye()):Lr()}function sy(e){return`${e}`}function iy(e){return ht(e[3])?or:Fe(e[3])?uo:er(e[3])?cn:yt(e[3])?cn:Lr()}function ay(e){return e.length>0}function uy(e){return e.length>0}function my(e){let[t,n,r,o,s]=e;return{[n]:t&&r?Tn(wn(s)):t&&!r?Tn(s):!t&&r?wn(s):s}}function cy(e){return Un(e)}function py(e){return e.reduce((t,n)=>m.HasPropertyKey(n,or)||m.HasPropertyKey(n,uo)||m.HasPropertyKey(n,cn)?[t[0],d.Assign(t[1],n)]:[d.Assign(t[0],n),t[1]],[{},{}])}function ly(e){return py(e[1])}function dy(e){let[t,n]=e,r=m.IsEqual(m.Keys(n).length,0)?{}:{patternProperties:n};return W(t,r)}function fy(e){return m.IsEqual(e.length,5)?Tn(wn(e[4])):m.IsEqual(e.length,3)?e[2]:m.IsEqual(e.length,4)?m.IsEqual(e[2],"readonly")?Tn(e[3]):wn(e[3]):Lr()}function gy(e){if(!m.IsArray(e)||!m.IsEqual(e.length,3))return e;let[t,n,r]=e;return t&&r?Tn(wn(n)):t&&!r?Tn(n):!t&&r?wn(n):n}function hy(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function xy(e){return Un(e)}function yy(e){return je(e[1])}function by(e){return Tn(wn(e[4]))}function wy(e){return Tn(e[3])}function $y(e){return wn(e[3])}function Iy(e){return e[2]}function ky(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function Ty(e){return Un(e)}function vy(e){return bn(e[1],e[4])}function Ey(e){return yn(e[2],e[5])}function cx(e,t){return m.IsEqual(e,"remove")?Oh(t):m.IsEqual(e,"add")?Tn(t):t}function Sy(e){return m.IsEqual(e.length,2)&&m.IsEqual(e[0],"-")?"remove":m.IsEqual(e.length,2)&&m.IsEqual(e[0],"+")||m.IsEqual(e.length,1)?"add":"none"}function px(e,t){return m.IsEqual(e,"remove")?Fh(t):m.IsEqual(e,"add")?wn(t):t}function Py(e){return m.IsEqual(e.length,2)&&m.IsEqual(e[0],"-")?"remove":m.IsEqual(e.length,2)&&m.IsEqual(e[0],"+")||m.IsEqual(e.length,1)?"add":"none"}function Ay(e){return m.IsEqual(e.length,2)?[e[1]]:[]}function Ry(e){return m.IsArray(e[6])&&m.IsEqual(e[6].length,1)?Is(ds(e[3]),e[5],e[6][0],cx(e[1],px(e[8],e[10]))):Is(ds(e[3]),e[5],qn(e[3]),cx(e[1],px(e[8],e[10])))}function My(e){return qn(e)}function Oy(e){return BigInt(e)}function Cy(e){return parseFloat(e)}function Ly(e){return m.IsEqual(e,"true")}function Fy(e){return null}function jy(e){return{[e[0]]:e[2]}}function Dy(e){return Un(e)}function FM(e){return e.reduce((t,n)=>d.Assign(t,n),{})}function _y(e){return FM(e[1])}function Ny(e){return Un(e)}function qy(e){return e[1]}function Uy(e){return ls()}function Ky(e){return Yt()}function Gy(e){return Ct()}function Wy(e){return Ar()}function By(e){return ge()}function zy(e){return se(e)}function Hy(e){return X(e[1])}function Vy(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function Jy(e){return[e[0],...e[1]]}function Yy(e){return e[1]}function Xy(e){return Un(e)}function Zy(e){return m.IsEqual(e.length,2)?e[1]:[]}function Qy(e){let t=e[2],n=e[3],[r,o]=e[4],s=m.IsEqual(m.Keys(o).length,0)?{}:{patternProperties:o};return{[e[1]]:Xn(t,ks(n,r,s))}}function eb(e){let t=e[2],[n,r]=e[3],o=m.IsEqual(m.Keys(r).length,0)?{}:{patternProperties:r};return{[e[1]]:ks(t,n,o)}}function tb(e){return{[e[1]]:Xn(e[2],e[4])}}function nb(e){return{[e[1]]:e[3]}}function rb(e){return null}function ob(e){return Un(e)}function sb(e){return e[1]}function ib(e){let[t,n]=[e[0],e[1]];return cb(d.Assign(t,py(n)[0]))}var ab=u(()=>{S();O();pa();xo()});var Kn=u(()=>{Qr()});function Ss(e){return ue(e.length,2)}function te(e,t,n){return Ss(e)?t(e[0],e[1]):n()}var Lt=u(()=>{Kn()});function _M(e,t){return ue(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function Se(e,t){for(let n=0;n<e.length;n++){let r=_M(e[n],t);if(Ss(r))return r}return[]}var An=u(()=>{Lt();Kn()});function Wc(e,t){return Array.from({length:t-e+1},(n,r)=>String.fromCharCode(e+r))}var pb,Bc,zc,yo,lb,bo,ir,Ma,db,Oa,ct=u(()=>{pb=[...Wc(97,122),...Wc(65,90)],Bc="0",zc=Wc(49,57),yo=[Bc,...zc],lb=" ",bo=`
14
+ `,ir="_",Ma=".",db="$",Oa="-"});function hb(e){let t=e.indexOf(qM);return ue(t,-1)?"":e.slice(t+2)}function xb(e){let t=e.indexOf(bo);return ue(t,-1)?"":e.slice(t)}function UM(e){return e.replace(/^[ \t\r\f\v]+/,"")}function Ca(e){let t=UM(e);return t.startsWith(gb)?Ca(hb(t.slice(2))):t.startsWith(fb)?Ca(xb(t.slice(2))):t}function Ze(e){let t=e.trimStart();return t.startsWith(gb)?Ze(hb(t.slice(2))):t.startsWith(fb)?Ze(xb(t.slice(2))):t}var fb,gb,qM,Rn=u(()=>{Kn();ct();fb="//",gb="/*",qM="*/"});function La(e,t){return te(Se([e],t),(n,r)=>[n,r],()=>["",t])}var Hc=u(()=>{Lt();An()});function KM(e,t){return e.includes(t)}function wo(e,t,n,r=""){return te(Se(e,n),(o,s)=>KM(t,o)?wo(e,t,s,r):wo(e,t,s,`${r}${o}`),()=>[r,n])}var Vc=u(()=>{Lt();An()});function GM(e){return Se(zc,e)}function BM(e){return wo(WM,[ir],e)}function zM(e){return te(Se([Bc],e),(t,n)=>[t,n],()=>te(GM(e),(t,n)=>te(BM(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[]))}function Fa(e){return zM(Ze(e))}var WM,ja=u(()=>{Lt();Rn();An();Vc();ct();ct();ct();ct();WM=[...yo,ir]});function HM(e){return La(Oa,e)}function VM(e){return te(HM(e),(t,n)=>te(Fa(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function yb(e){return VM(Ze(e))}var Jc=u(()=>{Lt();Rn();Hc();ct();ja()});function JM(e){return te(yb(e),(t,n)=>te(Se(["n"],n),(r,o)=>[`${t}`,o],()=>[]),()=>[])}function Yc(e){return JM(e)}var bb=u(()=>{Lt();An();Jc()});function Xc(e,t){return Se([e],t)}function h(e,t){return ue(e,"")?["",t]:e.startsWith(bo)?Xc(e,Ca(t)):e.startsWith(lb)?Xc(e,t):Xc(e,Ze(t))}var wb=u(()=>{Kn();Rn();Rn();An();ct();ct()});function YM(e){return Se($b,e)}function Ib(e,t=""){return te(Se(XM,e),(n,r)=>Ib(r,`${t}${n}`),()=>[t,e])}function ZM(e){return te(YM(e),(t,n)=>te(Ib(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Re(e){return ZM(Ze(e))}var $b,XM,kb=u(()=>{Lt();Rn();An();ct();ct();ct();ct();$b=[...pb,ir,db];XM=[...$b,...yo]});function eO(e){return Ss(Se([Ma],e))}function Tb(e){return te(wo(QM,[ir],e),(t,n)=>ue(t,"")?[]:[t,n],()=>[])}function tO(e){return te(Se([Ma],e),(t,n)=>te(Tb(n),(r,o)=>[`0${t}${r}`,o],()=>[]),()=>[])}function nO(e){return te(Fa(e),(t,n)=>te(Se([Ma],n),(r,o)=>te(Tb(o),(s,i)=>[`${t}${r}${s}`,i],()=>[`${t}`,o]),()=>[`${t}`,n]),()=>[])}function rO(e){return eO(e)?tO(e):nO(e)}function vb(e){return rO(Ze(e))}var QM,Zc=u(()=>{Kn();Lt();Rn();An();Vc();ct();ct();ja();QM=[...yo,ir]});function oO(e){return La(Oa,e)}function sO(e){return te(oO(e),(t,n)=>te(vb(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Da(e){return sO(Ze(e))}var Eb=u(()=>{Lt();Rn();Hc();ct();Zc()});var Sb=u(()=>{Kn()});function iO(e){return ue(e,"")?[]:[e.slice(0,1),e.slice(1)]}function Pb(e,t){return Ai(e,(n,r)=>t.startsWith(n)?!0:Pb(r,t),()=>!1)}function ar(e,t,n=""){return te(iO(t),(r,o)=>Pb(e,t)?[n,t]:ar(e,o,`${n}${r}`),()=>[])}var _a=u(()=>{Lt();Kn()});function aO(e,t,n){return te(Se([e],n),(r,o)=>te(ar([t],o),(s,i)=>te(Se([t],i),(c,p)=>[`${s}`,p],()=>[]),()=>[]),()=>[])}function uO(e,t,n){return te(Se([e],n),(r,o)=>te(ar([bo,t],o),(s,i)=>te(Se([t],i),(c,p)=>[`${s}`,p],()=>[]),()=>[]),()=>[])}function Ab(e,t,n,r){return n?aO(e,t,Ze(r)):uO(e,t,Ze(r))}var Qc=u(()=>{Lt();Rn();ct();An();_a()});function mO(e,t){return Se(e,t)}function cO(e,t){return Ab(e,e,!1,t)}function pO(e,t){return te(mO(e,t),(n,r)=>cO(n,`${n}${r}`),()=>[])}function Na(e,t){return pO(e,Ze(t))}var Rb=u(()=>{Lt();An();Rn();Qc()});function Mb(e,t){return te(ar(e,t),(n,r)=>ue(n,"")?[]:[n,r],()=>[])}var Ob=u(()=>{Kn();Lt();_a()});var Cb=u(()=>{bb();wb();kb();Jc();Eb();Sb();Qc();Rb();ja();Zc();Ob();_a()});var a,dO,fO,gO,hO,jb,Db,xO,np,_b,yO,bO,wO,Nb,qb,Ub,$O,IO,kO,Kb,TO,vO,EO,SO,PO,Gb,AO,RO,MO,ep,Wb,rp,OO,CO,LO,FO,jO,DO,_O,Bb,NO,qO,UO,KO,zb,Hb,Vb,Jb,qa,GO,WO,BO,zO,me,HO,VO,JO,YO,Yb,Xb,Zb,Qb,Ua,ew,XO,op,ZO,QO,Lb,tw,nw,e0,t0,n0,r0,o0,s0,Fb,rw,ow,sw,i0,a0,u0,m0,c0,p0,l0,d0,f0,g0,h0,x0,y0,iw,aw,b0,uw,mw,w0,$0,sp,I0,k0,T0,v0,E0,S0,P0,A0,cw,tp,ip,yh,pw,R0,lw,M0,O0,C0,L0,F0,dw,fw,j0,ap,D0,gw,zi=u(()=>{ab();Cb();a=(e,t,n=()=>[])=>e.length===2?t(e):n(),dO=e=>a(a(Re(e),([t,n])=>a(h("extends",n),([r,o])=>a(me(o),([s,i])=>a(h("=",i),([c,p])=>a(me(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[dx(t),n]),fO=e=>a(a(Re(e),([t,n])=>a(h("extends",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[fx(t),n]),gO=e=>a(a(Re(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[gx(t),n]),hO=e=>a(Re(e),([t,n])=>[hx(t),n]),jb=e=>a(a(dO(e),([t,n])=>[t,n],()=>a(fO(e),([t,n])=>[t,n],()=>a(gO(e),([t,n])=>[t,n],()=>a(hO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Db=(e,t=[])=>a(a(h(",",e),([n,r])=>a(jb(r),([o,s])=>[[n,o],s])),([n,r])=>Db(r,[...t,n]),()=>[t,e]),xO=e=>a(a(a(jb(e),([t,n])=>a(Db(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[xx(t),n]),np=e=>a(a(h("<",e),([t,n])=>a(xO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[yx(t),n]),_b=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>_b(r,[...t,n]),()=>[t,e]),yO=e=>a(a(a(me(e),([t,n])=>a(_b(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[bx(t),n]),bO=e=>a(a(h("<",e),([t,n])=>a(yO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[wx(t),n]),wO=e=>a(a(Re(e),([t,n])=>a(bO(n),([r,o])=>[[t,r],o])),([t,n])=>[$x(t),n]),Nb=e=>a(a(a(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ix(t),n]),qb=e=>a(h("string",e),([t,n])=>[kx(t),n]),Ub=e=>a(h("number",e),([t,n])=>[Tx(t),n]),$O=e=>a(h("boolean",e),([t,n])=>[vx(t),n]),IO=e=>a(h("undefined",e),([t,n])=>[Ex(t),n]),kO=e=>a(h("null",e),([t,n])=>[Sx(t),n]),Kb=e=>a(h("integer",e),([t,n])=>[Px(t),n]),TO=e=>a(h("bigint",e),([t,n])=>[Ax(t),n]),vO=e=>a(h("unknown",e),([t,n])=>[Rx(t),n]),EO=e=>a(h("any",e),([t,n])=>[Mx(t),n]),SO=e=>a(h("object",e),([t,n])=>[Ox(t),n]),PO=e=>a(h("never",e),([t,n])=>[Cx(t),n]),Gb=e=>a(h("symbol",e),([t,n])=>[Lx(t),n]),AO=e=>a(h("void",e),([t,n])=>[Fx(t),n]),RO=e=>a(h("this",e),([t,n])=>[jx(t),n]),MO=e=>a(a(h("${",e),([t,n])=>a(me(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ux(t),n]),ep=e=>a(ar(["${","`"],e),([t,n])=>[Kx(t),n]),Wb=e=>a(a(a(ep(e),([t,n])=>a(MO(n),([r,o])=>a(Wb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a(a(ep(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a(a(ep(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[Gx(t),n]),rp=e=>a(a(h("`",e),([t,n])=>a(Wb(n),([r,o])=>a(h("`",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Wx(t),n]),OO=e=>a(rp(e),([t,n])=>[Bx(t),n]),CO=e=>a(a(a(h("if",e),([t,n])=>a(me(n),([r,o])=>a(h("then",o),([s,i])=>a(me(i),([c,p])=>a(h("else",p),([f,w])=>a(me(w),([$,P])=>[[t,r,s,c,f,$],P])))))),([t,n])=>[t,n],()=>a(a(h("if",e),([t,n])=>a(me(n),([r,o])=>a(h("then",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>[])),([t,n])=>[zx(t),n]),LO=e=>a(Yc(e),([t,n])=>[Dx(t),n]),FO=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[_x(t),n]),jO=e=>a(Da(e),([t,n])=>[Nx(t),n]),DO=e=>a(Na(["'",'"'],e),([t,n])=>[qx(t),n]),_O=e=>a(a(a(h("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Hx(t),n]),Bb=(e,t=[])=>a(a(a(h("[",e),([n,r])=>a(me(r),([o,s])=>a(h("]",s),([i,c])=>[[n,o,i],c]))),([n,r])=>[n,r],()=>a(a(h("[",e),([n,r])=>a(h("]",r),([o,s])=>[[n,o],s])),([n,r])=>[n,r],()=>[])),([n,r])=>Bb(r,[...t,n]),()=>[t,e]),NO=e=>a(Bb(e),([t,n])=>[Vx(t),n]),qO=e=>a(a(a(h("extends",e),([t,n])=>a(me(n),([r,o])=>a(h("?",o),([s,i])=>a(me(i),([c,p])=>a(h(":",p),([f,w])=>a(me(w),([$,P])=>[[t,r,s,c,f,$],P])))))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Jx(t),n]),UO=e=>a(a(a(h("(",e),([t,n])=>a(me(n),([r,o])=>a(h(")",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a(qb(e),([t,n])=>[t,n],()=>a(Ub(e),([t,n])=>[t,n],()=>a($O(e),([t,n])=>[t,n],()=>a(IO(e),([t,n])=>[t,n],()=>a(kO(e),([t,n])=>[t,n],()=>a(Kb(e),([t,n])=>[t,n],()=>a(TO(e),([t,n])=>[t,n],()=>a(vO(e),([t,n])=>[t,n],()=>a(EO(e),([t,n])=>[t,n],()=>a(SO(e),([t,n])=>[t,n],()=>a(PO(e),([t,n])=>[t,n],()=>a(Gb(e),([t,n])=>[t,n],()=>a(AO(e),([t,n])=>[t,n],()=>a(RO(e),([t,n])=>[t,n],()=>a(LO(e),([t,n])=>[t,n],()=>a(FO(e),([t,n])=>[t,n],()=>a(jO(e),([t,n])=>[t,n],()=>a(DO(e),([t,n])=>[t,n],()=>a(OO(e),([t,n])=>[t,n],()=>a(CO(e),([t,n])=>[t,n],()=>a(ZO(e),([t,n])=>[t,n],()=>a(t0(e),([t,n])=>[t,n],()=>a(a0(e),([t,n])=>[t,n],()=>a(i0(e),([t,n])=>[t,n],()=>a(p0(e),([t,n])=>[t,n],()=>a(wO(e),([t,n])=>[t,n],()=>a(l0(e),([t,n])=>[t,n],()=>[])))))))))))))))))))))))))))),([t,n])=>[Yx(t),n]),KO=e=>a(a(a(h("with",e),([t,n])=>a(uw(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Xx(t),n]),zb=e=>a(a(_O(e),([t,n])=>a(UO(n),([r,o])=>a(NO(o),([s,i])=>a(qO(i),([c,p])=>a(KO(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[Zx(t),n]),Hb=e=>a(a(a(h("&",e),([t,n])=>a(zb(n),([r,o])=>a(Hb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Vb=e=>a(a(zb(e),([t,n])=>a(Hb(n),([r,o])=>[[t,r],o])),([t,n])=>[Qx(t),n]),Jb=e=>a(a(a(h("|",e),([t,n])=>a(Vb(n),([r,o])=>a(Jb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),qa=e=>a(a(Vb(e),([t,n])=>a(Jb(n),([r,o])=>[[t,r],o])),([t,n])=>[ey(t),n]),GO=e=>a(a(h("readonly",e),([t,n])=>a(qa(n),([r,o])=>[[t,r],o])),([t,n])=>[ty(t),n]),WO=e=>a(a(h("|",e),([t,n])=>a(qa(n),([r,o])=>[[t,r],o])),([t,n])=>[ny(t),n]),BO=e=>a(a(np(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[ry(t),n]),zO=e=>a(a(a(h("infer",e),([t,n])=>a(Re(n),([r,o])=>a(h("extends",o),([s,i])=>a(qa(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(h("infer",e),([t,n])=>a(Re(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>[])),([t,n])=>[oy(t),n]),me=e=>a(a(zO(e),([t,n])=>[t,n],()=>a(WO(e),([t,n])=>[t,n],()=>a(GO(e),([t,n])=>[t,n],()=>a(qa(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),HO=e=>a(Da(e),([t,n])=>[sy(t),n]),VO=e=>a(Re(e),([t,n])=>[t,n]),JO=e=>a(Na(["'",'"'],e),([t,n])=>[t,n]),YO=e=>a(a(h("[",e),([t,n])=>a(Re(n),([r,o])=>a(h(":",o),([s,i])=>a(a(Kb(i),([c,p])=>[c,p],()=>a(Ub(i),([c,p])=>[c,p],()=>a(qb(i),([c,p])=>[c,p],()=>a(Gb(i),([c,p])=>[c,p],()=>[])))),([c,p])=>a(h("]",p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[iy(t),n]),Yb=e=>a(a(HO(e),([t,n])=>[t,n],()=>a(VO(e),([t,n])=>[t,n],()=>a(JO(e),([t,n])=>[t,n],()=>a(YO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Xb=e=>a(a(a(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ay(t),n]),Zb=e=>a(a(a(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[uy(t),n]),Qb=e=>a(a(Xb(e),([t,n])=>a(Yb(n),([r,o])=>a(Zb(o),([s,i])=>a(h(":",i),([c,p])=>a(me(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[my(t),n]),Ua=e=>a(a(a(h(",",e),([t,n])=>a(h(`
15
15
  `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h(";",e),([t,n])=>a(h(`
16
16
  `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h(",",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a(a(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a(a(h(`
17
- `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),Yb=(e,t=[])=>a(a(qa(e),([n,r])=>a(Jb(r),([o,s])=>[[n,o],s])),([n,r])=>Yb(r,[...t,n]),()=>[t,e]),KO=e=>a(a(a(Jb(e),([t,n])=>a(Yb(n),([r,o])=>a(a(qa(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[iy(t),n]),tp=e=>a(a(h("{",e),([t,n])=>a(KO(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[uy(t),n]),GO=e=>a(tp(e),([t,n])=>[my(t),n]),WO=e=>a(a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(h("readonly",i),([c,p])=>a(me(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[t,n],()=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(h("readonly",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[cy(t),n]),Rb=e=>a(a(WO(e),([t,n])=>[t,n],()=>a(a(Hb(e),([t,n])=>a(me(n),([r,o])=>a(Vb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])),([t,n])=>[py(t),n]),Xb=e=>a(a(a(h("...",e),([t,n])=>a(Rb(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(Rb(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[ly(t),n]),Zb=(e,t=[])=>a(a(h(",",e),([n,r])=>a(Xb(r),([o,s])=>[[n,o],s])),([n,r])=>Zb(r,[...t,n]),()=>[t,e]),BO=e=>a(a(a(Xb(e),([t,n])=>a(Zb(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[dy(t),n]),zO=e=>a(a(h("[",e),([t,n])=>a(BO(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[fy(t),n]),HO=e=>a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(h("readonly",i),([c,p])=>a(me(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[gy(t),n]),VO=e=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(h("readonly",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[hy(t),n]),JO=e=>a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[xy(t),n]),YO=e=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[yy(t),n]),Mb=e=>a(a(HO(e),([t,n])=>[t,n],()=>a(VO(e),([t,n])=>[t,n],()=>a(JO(e),([t,n])=>[t,n],()=>a(YO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Qb=e=>a(a(a(h("...",e),([t,n])=>a(Mb(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(Mb(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[by(t),n]),eI=(e,t=[])=>a(a(h(",",e),([n,r])=>a(Qb(r),([o,s])=>[[n,o],s])),([n,r])=>eI(r,[...t,n]),()=>[t,e]),tI=e=>a(a(a(Qb(e),([t,n])=>a(eI(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Iy(t),n]),XO=e=>a(a(h("(",e),([t,n])=>a(tI(n),([r,o])=>a(h(")",o),([s,i])=>a(h("=>",i),([c,p])=>a(me(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[$y(t),n]),ZO=e=>a(a(h("new",e),([t,n])=>a(h("(",n),([r,o])=>a(tI(o),([s,i])=>a(h(")",i),([c,p])=>a(h("=>",p),([f,I])=>a(me(I),([$,A])=>[[t,r,s,c,f,$],A])))))),([t,n])=>[wy(t),n]),QO=e=>a(a(a(h("+",e),([t,n])=>a(h("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("-",e),([t,n])=>a(h("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[ky(t),n]),eC=e=>a(a(a(h("+",e),([t,n])=>a(h("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("-",e),([t,n])=>a(h("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Ty(t),n]),tC=e=>a(a(a(h("as",e),([t,n])=>a(me(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[vy(t),n]),nC=e=>a(a(h("{",e),([t,n])=>a(QO(n),([r,o])=>a(h("[",o),([s,i])=>a(Re(i),([c,p])=>a(h("in",p),([f,I])=>a(me(I),([$,A])=>a(tC(A),([O,L])=>a(h("]",L),([K,V])=>a(eC(V),([G,oe])=>a(h(":",oe),([$e,De])=>a(me(De),([Qe,xe])=>a(Fb(xe),([se,v])=>a(h("}",v),([He,Gt])=>[[t,r,s,c,f,$,O,K,G,$e,Qe,se,He],Gt]))))))))))))),([t,n])=>[Ey(t),n]),rC=e=>a(Re(e),([t,n])=>[Sy(t),n]),oC=e=>a(Hc(e),([t,n])=>[Py(t),n]),sC=e=>a(ja(e),([t,n])=>[Ay(t),n]),iC=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[Ry(t),n]),aC=e=>a(_a(['"',"'"],e),([t,n])=>[t,n]),uC=e=>a(h("null",e),([t,n])=>[My(t),n]),mC=e=>a(h("undefined",e),([t,n])=>[void 0,n]),nI=e=>a(a(zb(e),([t,n])=>a(h(":",n),([r,o])=>a(np(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Oy(t),n]),rI=(e,t=[])=>a(a(qa(e),([n,r])=>a(nI(r),([o,s])=>[[n,o],s])),([n,r])=>rI(r,[...t,n]),()=>[t,e]),cC=e=>a(a(a(nI(e),([t,n])=>a(rI(n),([r,o])=>a(a(qa(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Cy(t),n]),oI=e=>a(a(h("{",e),([t,n])=>a(cC(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ly(t),n]),sI=(e,t=[])=>a(a(h(",",e),([n,r])=>a(np(r),([o,s])=>[[n,o],s])),([n,r])=>sI(r,[...t,n]),()=>[t,e]),pC=e=>a(a(a(np(e),([t,n])=>a(sI(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Fy(t),n]),lC=e=>a(a(h("[",e),([t,n])=>a(pC(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[jy(t),n]),np=e=>a(a(oC(e),([t,n])=>[t,n],()=>a(sC(e),([t,n])=>[t,n],()=>a(iC(e),([t,n])=>[t,n],()=>a(aC(e),([t,n])=>[t,n],()=>a(uC(e),([t,n])=>[t,n],()=>a(mC(e),([t,n])=>[t,n],()=>a(oI(e),([t,n])=>[t,n],()=>a(lC(e),([t,n])=>[t,n],()=>[])))))))),([t,n])=>[t,n]),dC=e=>a(h("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[Dy(t),n]),fC=e=>a(h(".*",e),([t,n])=>[_y(t),n]),gC=e=>a(h("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",e),([t,n])=>[Ny(t),n]),hC=e=>a(h("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[qy(t),n]),xC=e=>a(h("(?!)",e),([t,n])=>[Uy(t),n]),yC=e=>a(Sb(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[Ky(t),n]),bC=e=>a(a(dC(e),([t,n])=>[t,n],()=>a(fC(e),([t,n])=>[t,n],()=>a(gC(e),([t,n])=>[t,n],()=>a(hC(e),([t,n])=>[t,n],()=>a(xC(e),([t,n])=>[t,n],()=>a(IC(e),([t,n])=>[t,n],()=>a(yC(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),IC=e=>a(a(h("(",e),([t,n])=>a(rp(n),([r,o])=>a(h(")",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Gy(t),n]),iI=e=>a(a(a(Zc(e),([t,n])=>a(h("|",n),([r,o])=>a(iI(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a(a(Zc(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[]))),([t,n])=>[Wy(t),n]),Zc=e=>a(a(bC(e),([t,n])=>a(rp(n),([r,o])=>[[t,r],o])),([t,n])=>[By(t),n]),rp=e=>a(a(iI(e),([t,n])=>[t,n],()=>a(Zc(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),fh=e=>a(a(h("^",e),([t,n])=>a(rp(n),([r,o])=>a(h("$",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[zy(t),n]),aI=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>aI(r,[...t,n]),()=>[t,e]),$C=e=>a(a(a(me(e),([t,n])=>a(aI(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Hy(t),n]),uI=e=>a(a(a(h("extends",e),([t,n])=>a($C(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Vy(t),n]),wC=e=>a(a(h("interface",e),([t,n])=>a(Re(n),([r,o])=>a(Qc(o),([s,i])=>a(uI(i),([c,p])=>a(tp(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[Jy(t),n]),kC=e=>a(a(h("interface",e),([t,n])=>a(Re(n),([r,o])=>a(uI(o),([s,i])=>a(tp(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[Yy(t),n]),TC=e=>a(a(h("type",e),([t,n])=>a(Re(n),([r,o])=>a(Qc(o),([s,i])=>a(h("=",i),([c,p])=>a(me(p),([f,I])=>[[t,r,s,c,f],I]))))),([t,n])=>[Xy(t),n]),vC=e=>a(a(h("type",e),([t,n])=>a(Re(n),([r,o])=>a(h("=",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[Zy(t),n]),EC=e=>a(a(a(h("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Qy(t),n]),mI=e=>a(a(a(h(";",e),([t,n])=>a(h(`
17
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),ew=(e,t=[])=>a(a(Ua(e),([n,r])=>a(Qb(r),([o,s])=>[[n,o],s])),([n,r])=>ew(r,[...t,n]),()=>[t,e]),XO=e=>a(a(a(Qb(e),([t,n])=>a(ew(n),([r,o])=>a(a(Ua(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[cy(t),n]),op=e=>a(a(h("{",e),([t,n])=>a(XO(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[ly(t),n]),ZO=e=>a(op(e),([t,n])=>[dy(t),n]),QO=e=>a(a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(h("readonly",i),([c,p])=>a(me(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[t,n],()=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(h("readonly",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[fy(t),n]),Lb=e=>a(a(QO(e),([t,n])=>[t,n],()=>a(a(Xb(e),([t,n])=>a(me(n),([r,o])=>a(Zb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])),([t,n])=>[gy(t),n]),tw=e=>a(a(a(h("...",e),([t,n])=>a(Lb(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(Lb(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[hy(t),n]),nw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(tw(r),([o,s])=>[[n,o],s])),([n,r])=>nw(r,[...t,n]),()=>[t,e]),e0=e=>a(a(a(tw(e),([t,n])=>a(nw(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[xy(t),n]),t0=e=>a(a(h("[",e),([t,n])=>a(e0(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[yy(t),n]),n0=e=>a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(h("readonly",i),([c,p])=>a(me(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[by(t),n]),r0=e=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(h("readonly",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[wy(t),n]),o0=e=>a(a(Re(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[$y(t),n]),s0=e=>a(a(Re(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Iy(t),n]),Fb=e=>a(a(n0(e),([t,n])=>[t,n],()=>a(r0(e),([t,n])=>[t,n],()=>a(o0(e),([t,n])=>[t,n],()=>a(s0(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),rw=e=>a(a(a(h("...",e),([t,n])=>a(Fb(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(Fb(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[ky(t),n]),ow=(e,t=[])=>a(a(h(",",e),([n,r])=>a(rw(r),([o,s])=>[[n,o],s])),([n,r])=>ow(r,[...t,n]),()=>[t,e]),sw=e=>a(a(a(rw(e),([t,n])=>a(ow(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ty(t),n]),i0=e=>a(a(h("(",e),([t,n])=>a(sw(n),([r,o])=>a(h(")",o),([s,i])=>a(h("=>",i),([c,p])=>a(me(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[vy(t),n]),a0=e=>a(a(h("new",e),([t,n])=>a(h("(",n),([r,o])=>a(sw(o),([s,i])=>a(h(")",i),([c,p])=>a(h("=>",p),([f,w])=>a(me(w),([$,P])=>[[t,r,s,c,f,$],P])))))),([t,n])=>[Ey(t),n]),u0=e=>a(a(a(h("+",e),([t,n])=>a(h("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("-",e),([t,n])=>a(h("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Sy(t),n]),m0=e=>a(a(a(h("+",e),([t,n])=>a(h("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("-",e),([t,n])=>a(h("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[Py(t),n]),c0=e=>a(a(a(h("as",e),([t,n])=>a(me(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ay(t),n]),p0=e=>a(a(h("{",e),([t,n])=>a(u0(n),([r,o])=>a(h("[",o),([s,i])=>a(Re(i),([c,p])=>a(h("in",p),([f,w])=>a(me(w),([$,P])=>a(c0(P),([R,C])=>a(h("]",C),([U,z])=>a(m0(z),([G,ee])=>a(h(":",ee),([ye,De])=>a(me(De),([Qe,xe])=>a(Nb(xe),([ie,v])=>a(h("}",v),([He,Gt])=>[[t,r,s,c,f,$,R,U,G,ye,Qe,ie,He],Gt]))))))))))))),([t,n])=>[Ry(t),n]),l0=e=>a(Re(e),([t,n])=>[My(t),n]),d0=e=>a(Yc(e),([t,n])=>[Oy(t),n]),f0=e=>a(Da(e),([t,n])=>[Cy(t),n]),g0=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[Ly(t),n]),h0=e=>a(Na(['"',"'"],e),([t,n])=>[t,n]),x0=e=>a(h("null",e),([t,n])=>[Fy(t),n]),y0=e=>a(h("undefined",e),([t,n])=>[void 0,n]),iw=e=>a(a(Yb(e),([t,n])=>a(h(":",n),([r,o])=>a(sp(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[jy(t),n]),aw=(e,t=[])=>a(a(Ua(e),([n,r])=>a(iw(r),([o,s])=>[[n,o],s])),([n,r])=>aw(r,[...t,n]),()=>[t,e]),b0=e=>a(a(a(iw(e),([t,n])=>a(aw(n),([r,o])=>a(a(Ua(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Dy(t),n]),uw=e=>a(a(h("{",e),([t,n])=>a(b0(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[_y(t),n]),mw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(sp(r),([o,s])=>[[n,o],s])),([n,r])=>mw(r,[...t,n]),()=>[t,e]),w0=e=>a(a(a(sp(e),([t,n])=>a(mw(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ny(t),n]),$0=e=>a(a(h("[",e),([t,n])=>a(w0(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[qy(t),n]),sp=e=>a(a(d0(e),([t,n])=>[t,n],()=>a(f0(e),([t,n])=>[t,n],()=>a(g0(e),([t,n])=>[t,n],()=>a(h0(e),([t,n])=>[t,n],()=>a(x0(e),([t,n])=>[t,n],()=>a(y0(e),([t,n])=>[t,n],()=>a(uw(e),([t,n])=>[t,n],()=>a($0(e),([t,n])=>[t,n],()=>[])))))))),([t,n])=>[t,n]),I0=e=>a(h("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[Uy(t),n]),k0=e=>a(h(".*",e),([t,n])=>[Ky(t),n]),T0=e=>a(h("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",e),([t,n])=>[Gy(t),n]),v0=e=>a(h("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[Wy(t),n]),E0=e=>a(h("(?!)",e),([t,n])=>[By(t),n]),S0=e=>a(Mb(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[zy(t),n]),P0=e=>a(a(I0(e),([t,n])=>[t,n],()=>a(k0(e),([t,n])=>[t,n],()=>a(T0(e),([t,n])=>[t,n],()=>a(v0(e),([t,n])=>[t,n],()=>a(E0(e),([t,n])=>[t,n],()=>a(A0(e),([t,n])=>[t,n],()=>a(S0(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),A0=e=>a(a(h("(",e),([t,n])=>a(ip(n),([r,o])=>a(h(")",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Hy(t),n]),cw=e=>a(a(a(tp(e),([t,n])=>a(h("|",n),([r,o])=>a(cw(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a(a(tp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[]))),([t,n])=>[Vy(t),n]),tp=e=>a(a(P0(e),([t,n])=>a(ip(n),([r,o])=>[[t,r],o])),([t,n])=>[Jy(t),n]),ip=e=>a(a(cw(e),([t,n])=>[t,n],()=>a(tp(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),yh=e=>a(a(h("^",e),([t,n])=>a(ip(n),([r,o])=>a(h("$",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Yy(t),n]),pw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>pw(r,[...t,n]),()=>[t,e]),R0=e=>a(a(a(me(e),([t,n])=>a(pw(n),([r,o])=>a(a(h(",",o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Xy(t),n]),lw=e=>a(a(a(h("extends",e),([t,n])=>a(R0(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Zy(t),n]),M0=e=>a(a(h("interface",e),([t,n])=>a(Re(n),([r,o])=>a(np(o),([s,i])=>a(lw(i),([c,p])=>a(op(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[Qy(t),n]),O0=e=>a(a(h("interface",e),([t,n])=>a(Re(n),([r,o])=>a(lw(o),([s,i])=>a(op(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[eb(t),n]),C0=e=>a(a(h("type",e),([t,n])=>a(Re(n),([r,o])=>a(np(o),([s,i])=>a(h("=",i),([c,p])=>a(me(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[tb(t),n]),L0=e=>a(a(h("type",e),([t,n])=>a(Re(n),([r,o])=>a(h("=",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[nb(t),n]),F0=e=>a(a(a(h("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[rb(t),n]),dw=e=>a(a(a(h(";",e),([t,n])=>a(h(`
18
18
  `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a(a(h(`
19
- `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]),cI=(e,t=[])=>a(a(mI(e),([n,r])=>a(op(r),([o,s])=>[[n,o],s])),([n,r])=>cI(r,[...t,n]),()=>[t,e]),SC=e=>a(a(a(op(e),([t,n])=>a(cI(n),([r,o])=>a(a(mI(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[eb(t),n]),op=e=>a(a(EC(e),([t,n])=>a(a(wC(n),([r,o])=>[r,o],()=>a(kC(n),([r,o])=>[r,o],()=>a(TC(n),([r,o])=>[r,o],()=>a(vC(n),([r,o])=>[r,o],()=>[])))),([r,o])=>a(Fb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[tb(t),n]),PC=e=>a(a(op(e),([t,n])=>a(SC(n),([r,o])=>[[t,r],o])),([t,n])=>[nb(t),n]),pI=e=>a(a(PC(e),([t,n])=>[t,n],()=>a(jO(e),([t,n])=>[t,n],()=>a(me(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n])});function lI(e){let t=ep(`\`${e}\``);return m.IsEqual(t.length,2)?t[0]:qe()}var sp=u(()=>{kn();M();Bi()});function RC(e){return e.join("|")}function MC(e){return e.slice(1,e.length-1)}function OC(e,t,n){return ur(t,`${n}${e}`)}function CC(e,t){return ur(e,`${t}${uh}`)}function LC(e,t){return ur(e,`${t}${Ui}`)}function FC(e,t){return ur(e,`${t}${Gi}`)}function jC(e,t){return Ps(X([re("false"),re("true")]),e,t)}function DC(e,t){return ur(e,`${t}${Wi}`)}function _C(e,t,n){return ur(t,`${n}${MC(e)}`)}function NC(e,t,n){let r=As(e,{});return Ps(r,t,n)}function qC(e,t,n){let r=bt(e);return Ps(r,t,n)}function dI(e,t,n,r=[]){return m.ShiftLeft(e,(o,s)=>dI(s,t,n,[...r,Ps(o,[],"")]),()=>ur(t,`${n}(${RC(r)})`))}function Ps(e,t,n){return ot(e)?qC(e.enum,t,n):ht(e)?LC(t,n):le(e)?OC(e.const,t,n):vn(e)?CC(t,n):Jt(e)?jC(t,n):Fe(e)?FC(t,n):yt(e)?DC(t,n):Ae(e)?_C(e.pattern,t,n):gI(e)?NC(e.parameters[0],t,n):F(e)?dI(e.anyOf,t,n):Xf}function ur(e,t){return m.ShiftLeft(e,(n,r)=>Ps(n,r,t),()=>t)}function UC(e){return`^${ur(e,"")}$`}function fI(e){let t=UC(e);return Vi(t)}var ip=u(()=>{M();un();Le();Q();vt();Pr();Xt();xt();En();Qn();Je();Ji();Y();Ua()});function As(e,t){return H(e)?d.Update(fI(e),{},t):pa(e,t)}function hI(e,t,n,r){let o=Ut(e,t,n);return As(o,r)}var Ua=u(()=>{S();vt();ip();N()});function pa(e,t={}){return j("TemplateLiteral",[e],t)}function gI(e){return _e(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"TemplateLiteral")}function xI(e){return As(e,{})}function KC(e){let t=lI(e);return xI(t)}function yI(e,t={}){let n=m.IsString(e)?KC(e):xI(e);return d.Update(n,{},t)}function Ae(e){return C(e,"TemplateLiteral")}var vt=u(()=>{ss();M();J();ce();sp();Ua()});var B={};Mt(B,{ExtendsFalse:()=>z,ExtendsTrue:()=>R,ExtendsUnion:()=>ap,IsExtendsFalse:()=>GC,IsExtendsTrue:()=>II,IsExtendsTrueLike:()=>$o,IsExtendsUnion:()=>bI,Match:()=>we});function ap(e){return d.Create({"~kind":"ExtendsUnion"},{inferred:e})}function bI(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.HasPropertyKey(e,"inferred")&&m.IsEqual(e["~kind"],"ExtendsUnion")&&m.IsObject(e.inferred)}function R(e){return d.Create({"~kind":"ExtendsTrue"},{inferred:e})}function II(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.HasPropertyKey(e,"inferred")&&m.IsEqual(e["~kind"],"ExtendsTrue")&&m.IsObject(e.inferred)}function z(){return d.Create({"~kind":"ExtendsFalse"},{})}function GC(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.IsEqual(e["~kind"],"ExtendsFalse")}function $o(e){return bI(e)||II(e)}function we(e,t,n){return $o(e)?t(e.inferred):n()}var be=u(()=>{M();S()});function WC(e,t,n,r){return we(ae(e,n,r),o=>R(d.Assign(d.Assign(e,o),{[t]:n})),()=>z())}function BC(e,t){return R(e)}function zC(e,t,n,r,o){return we(ae(e,t,n),s=>we(ae(s,t,r),i=>R(i),()=>z()),()=>we(ae(e,t,o),s=>R(s),()=>z()))}function HC(e,t,n){let r=bt(n);return ae(e,t,r)}function $I(e,t,n){return m.ShiftLeft(n,(r,o)=>we(ae(e,t,r),s=>$I(s,t,o),()=>z()),()=>R(e))}function VC(e,t,n){let r=mt(n);return ae(e,t,r)}function wI(e,t,n){return m.ShiftLeft(n,(r,o)=>we(ae(e,t,r),s=>R(s),()=>wI(e,t,o)),()=>z())}function de(e,t,n){return Ee(n)?BC(e,t):Pe(n)?zC(e,t,n.if,n.then,n.else):ot(n)?HC(e,t,n.enum):Ce(n)?WC(e,n.name,t,n.extends):ne(n)?$I(e,t,n.allOf):Ae(n)?VC(e,t,n.pattern):F(n)?wI(e,t,n.anyOf):Oe(n)?R(e):z()}var pt=u(()=>{M();S();wt();Ot();un();Vt();Ne();vt();Q();nt();Pt();be();Y();Y()});function kI(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?R(e):Oe(n)?R(e):ap(e)}var TI=u(()=>{Vt();wt();nt();pt();be()});function JC(e,t){let n=vr(e),r=vr(t);return n&&r||!n&&r?!0:!(n&&!r)}function vI(e,t,n,r){return ke(r)?JC(t,r)?ae(e,n,r.items):z():de(e,t,r)}var EI=u(()=>{gt();us();pt();Pt();be()});function SI(e,t,n){return vn(n)?R(e):de(e,t,n)}var PI=u(()=>{Pr();pt();be()});function AI(e,t,n){return Jt(n)?R(e):de(e,t,n)}var RI=u(()=>{Qn();pt();be()});function YC(e,t,n,r,o){let s=Ce(r)?t:r,i=Ce(r)?r:t,c=ut(t),p=ut(r);return!c&&p?z():we(ae(e,s,i),f=>Rs(f,n,o),()=>z())}function XC(e,t,n,r){return m.ShiftLeft(r,(o,s)=>YC(e,t,n,o,s),()=>ut(t)?R(e):z())}function ZC(e,t,n){return m.ShiftLeft(t,(r,o)=>XC(e,r,o,n),()=>R(e))}function Rs(e,t,n){return ZC(e,t,n)}var up=u(()=>{M();Vt();Zn();Pt();be()});function Ka(e,t,n){return Pn(n)?R(e):ae(e,t,n)}var mp=u(()=>{Cr();Pt();be()});function MI(e,t,n,r){return Ee(r)?R(e):Oe(r)?R(e):Ge(r)?we(Rs(e,t,r.parameters),o=>Ka(o,n,r.instanceType),()=>z()):z()}var OI=u(()=>{wt();Bt();nt();be();up();mp()});function CI(e,t,n,r,o){return we(ae(e,t,o),()=>ae(e,n,o),()=>ae(e,r,o))}var LI=u(()=>{Pt();be()});function FI(e,t,n){let r=bt(t);return ae(e,r,n)}var jI=u(()=>{Pt();Y()});function DI(e,t,n,r){return Ee(r)?R(e):Oe(r)?R(e):We(r)?we(Rs(e,t,r.parameters),o=>Ka(o,n,r.returnType),()=>z()):z()}var _I=u(()=>{wt();zt();nt();be();up();mp()});function NI(e,t,n){return ht(n)?R(e):Fe(n)?R(e):de(e,t,n)}var qI=u(()=>{En();xt();pt();be()});function UI(e,t,n){let r=Te(t);return ae(e,r,n)}var KI=u(()=>{Pt();Ms()});function Ga(e,t,n){return t===n?R(e):z()}function QC(e,t,n){return le(n)?Ga(e,t,n.const):vn(n)?R(e):de(e,re(t),n)}function e0(e,t,n){return le(n)?Ga(e,t,n.const):Jt(n)?R(e):de(e,re(t),n)}function t0(e,t,n){return le(n)?Ga(e,t,n.const):Fe(n)?R(e):de(e,re(t),n)}function n0(e,t,n){return le(n)?Ga(e,t,n.const):yt(n)?R(e):de(e,re(t),n)}function GI(e,t,n){return m.IsBigInt(t.const)?QC(e,t.const,n):m.IsBoolean(t.const)?e0(e,t.const,n):m.IsNumber(t.const)?t0(e,t.const,n):m.IsString(t.const)?n0(e,t.const,n):qe()}var WI=u(()=>{M();gc();Le();Pr();Qn();xt();Xt();pt();be()});function BI(e,t,n){return Ce(n)?de(e,t,n):R(e)}var zI=u(()=>{Vt();pt();be()});function HI(e,t,n){return so(n)?R(e):de(e,t,n)}var VI=u(()=>{io();pt();be()});function JI(e,t,n){return Fe(n)?R(e):de(e,t,n)}var YI=u(()=>{xt();pt();be()});function r0(e,t,n){return ut(t)?ut(n)?R(e):z():R(e)}function o0(e,t,n){return Ce(n)&&an(n.extends)?z():we(ae(e,t,n),r=>r0(r,t,n),()=>z())}function s0(e,t){return e.reduce((n,r)=>r in t?$o(t[r])?{...n,...t[r].inferred}:qe():qe(),{})}function i0(e,t,n){let r={};for(let i of m.Keys(n))r[i]=i in t?o0({},t[i],n[i]):ut(n[i])?Ce(n[i])?R(d.Assign(e,{[n[i].name]:n[i].extends})):R(e):z();let o=m.Values(r).every(i=>$o(i)),s=o?s0(m.Keys(r),r):{};return o?R(s):z()}function a0(e,t,n){let r=i0(e,t,n);return $o(r)?R(d.Assign(e,r.inferred)):z()}function u0(e,t,n){return a0(e,t,n)}function m0(e,t){return m.Keys(t).reduce((n,r)=>({...n,[r]:m.HasPropertyKey(e,r)?F(n[r])?X([...n[r].anyOf,t[r]]):X([e[r],t[r]]):t[r]}),e)}function XI(e,t,n,r){return m.ShiftLeft(t,(o,s)=>we(ae({},e[o],n),i=>XI(e,s,n,m0(r,i)),()=>z()),()=>R(r))}function c0(e,t,n,r){let o=m.Keys(t);return XI(t,o,r,e)}function ZI(e,t,n){return it(n)?c0(e,t,Qt(n),It(n)):pe(n)?u0(e,t,n.properties):de(e,W(t),n)}var QI=u(()=>{kn();S();M();Zn();Vt();Je();fe();Xe();Q();Pt();pt();be()});function p0(e,t){return m.IsEqual(m.Keys(t).length,0)?R(e):z()}function l0(e,t,n,r,o){return ae(e,n,o)}function e$(e,t,n,r){return it(r)?l0(e,sa(t),n,sa(Qt(r)),It(r)):pe(r)?p0(e,r.properties):Ee(r)?R(e):Oe(r)?R(e):z()}var t$=u(()=>{M();wt();nt();fe();Xe();Pt();be()});function n$(e,t,n){return yt(n)?R(e):de(e,t,n)}var r$=u(()=>{Xt();pt();be()});function o$(e,t,n){return er(n)?R(e):de(e,t,n)}var s$=u(()=>{Rr();pt();be()});function i$(e,t,n){let r=mt(t);return ae(e,r,n)}var a$=u(()=>{Pt();Y()});function cp(e,t){return d.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function Os(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.HasPropertyKey(e,"name")&&m.HasPropertyKey(e,"type")&&m.IsEqual(e["~kind"],"Inferrable")&&m.IsString(e.name)&&m.IsObject(e.type)}function pp(e){return sr(e)?Ce(e.items)?ke(e.items.extends)?cp(e.items.name,e.items.extends.items):Oe(e.items.extends)?cp(e.items.name,e.items.extends):void 0:qe():void 0}function Wa(e){return Ce(e)?cp(e.name,e.extends):void 0}function lp(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>we(ae({},r,t),()=>lp(o,t,[...n,r]),()=>{}),()=>n)}function u$(e,t,n,r){let o=lp(n,r);return m.IsArray(o)?R(d.Assign(e,{[t]:je(o)})):z()}function Ba(e,t,n,r){let o=lp(n,r);return m.IsArray(o)?R(d.Assign(e,{[t]:X(o)})):z()}var dp=u(()=>{kn();S();M();gt();nt();Ue();Pt();Q();Vt();po();be()});function d0(e){return[...e].reverse()}function fp(e,t){return t?d0(e):e}function f0(e){let t=e.length>0?e[0]:void 0,n=_e(t)?pp(t):void 0;return _e(n)}function g0(e,t,n,r,o,s){return we(ae(e,n,o),i=>m$(i,t,r,s),()=>z())}function h0(e,t,n,r,o){let s=pp(r);return Os(s)?u$(e,s.name,fp(n,t),s.type):m.ShiftLeft(n,(i,c)=>g0(e,t,i,c,r,o),()=>z())}function x0(e,t,n,r){return m.ShiftLeft(r,(o,s)=>h0(e,t,n,o,s),()=>m.IsEqual(n.length,0)?R(e):z())}function m$(e,t,n,r){return x0(e,t,n,r)}function y0(e,t,n){let r=mr(e,Ie([],[]),n),o=f0(r);return m$(e,o,fp(t,o),fp(r,o))}function c$(e,t,n){let r=Wa(n);return Os(r)?Ba(e,r.name,t,r.type):m.ShiftLeft(t,(o,s)=>we(ae(e,o,n),i=>c$(i,s,n),()=>z()),()=>R(e))}function p$(e,t,n){let r=mr(e,Ie([],[]),t);return ye(n)?y0(e,r,n.items):ke(n)?c$(e,r,n.items):de(e,je(r),n)}var l$=u(()=>{M();J();gt();Ue();Pt();pt();be();N();N();dp()});function d$(e,t,n){return Pn(n)?R(e):fo(n)?R(e):de(e,t,n)}var f$=u(()=>{go();Cr();pt();be()});function g$(e,t,n){return m.ShiftLeft(n,(r,o)=>we(ae(e,t,r),s=>R(s),()=>g$(e,t,o)),()=>z())}function gp(e,t,n){return m.ShiftLeft(t,(r,o)=>we(g$(e,r,n),s=>gp(s,o,n),()=>z()),()=>R(e))}function h$(e,t,n){let r=Wa(n);return Os(r)?Ba(e,r.name,t,r.type):F(n)?gp(e,t,n.anyOf):gp(e,t,[n])}var x$=u(()=>{M();Q();Pt();be();dp()});function y$(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?R(e):Oe(n)?R(e):z()}var b$=u(()=>{wt();nt();Vt();pt();be()});function I$(e,t,n){return Pn(n)?R(e):de(e,t,n)}var $$=u(()=>{Cr();pt();be()});function ae(e,t,n){return Ee(t)?kI(e,t,n):ke(t)?vI(e,t,t.items,n):vn(t)?SI(e,t,n):Jt(t)?AI(e,t,n):Ge(t)?MI(e,t.parameters,t.instanceType,n):Pe(t)?CI(e,t.if,t.then,t.else,n):ot(t)?FI(e,t.enum,n):We(t)?DI(e,t.parameters,t.returnType,n):ht(t)?NI(e,t,n):ne(t)?UI(e,t.allOf,n):le(t)?GI(e,t,n):an(t)?BI(e,t,n):so(t)?HI(e,t,n):Fe(t)?JI(e,t,n):pe(t)?ZI(e,t.properties,n):it(t)?e$(e,Qt(t),It(t),n):yt(t)?n$(e,t,n):er(t)?o$(e,t,n):Ae(t)?i$(e,t.pattern,n):ye(t)?p$(e,t.items,n):fo(t)?d$(e,t,n):F(t)?h$(e,t.anyOf,n):Oe(t)?y$(e,t,n):Pn(t)?I$(e,t,n):z()}var Pt=u(()=>{TI();EI();PI();RI();OI();LI();jI();_I();qI();KI();WI();zI();VI();YI();QI();t$();r$();s$();a$();l$();f$();x$();b$();$$();wt();gt();Pr();Qn();Bt();Ot();un();zt();En();Ne();Le();Je();io();xt();fe();Xe();Xt();Rr();vt();Ue();go();nt();Q();Cr();be()});function b0(e,t){return Te([...e,W(t)])}function hp(e,t,n){return H(e)?d.Update(b0(e,t),{},n):ks(e,t,n)}function w$(e,t,n,r,o){let s=Ut(e,t,n),i=Cs(e,t,r);return hp(s,i,o)}var za=u(()=>{S();fe();Y();xo();N();N();N()});function ks(e,t,n={}){return j("Interface",[e,t],n)}function wo(e){return _e(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"Interface")}function k$(e,t,n={}){return hp(e,t,n)}var Ls=u(()=>{M();J();ce();za()});function I0(e,t,n){return e.includes(n)?!0:Fs([...e,n],t,t[n])}function T$(e,t,n){let r=Li(n);return Fr(e,t,r)}function Fr(e,t,n){return m.ShiftLeft(n,(r,o)=>Fs(e,t,r)?!0:Fr(e,t,o),()=>!1)}function Fs(e,t,n){return Be(n)?I0(e,t,n.$ref):ke(n)?Fs(e,t,n.items):Ge(n)?Fr(e,t,[...n.parameters,n.instanceType]):We(n)?Fr(e,t,[...n.parameters,n.returnType]):wo(n)?T$(e,t,n.parameters[1]):ne(n)?Fr(e,t,n.allOf):pe(n)?T$(e,t,n.properties):F(n)?Fr(e,t,n.anyOf):ye(n)?Fr(e,t,n.items):it(n)?Fs(e,t,It(n)):!1}function v$(e,t,n){return Fs(e,t,n)}var xp=u(()=>{M();gt();Bt();zt();Ne();fe();kr();Xe();Ue();Q();Ht();Ls()});function $0(e,t){return t.reduce((n,r)=>v$([r],e,e[r])?[...n,r]:n,[])}function E$(e){let t=Ci(e);return $0(e,t)}var yp=u(()=>{kr();xp()});function w0(e,t,n){return n.includes(t)?n:t in e?js(e,e[t],[...n,t]):qe()}function S$(e,t,n){let r=Li(t);return ko(e,r,n)}function ko(e,t,n){return t.reduce((r,o)=>js(e,o,r),n)}function js(e,t,n){return Be(t)?w0(e,t.$ref,n):ke(t)?js(e,t.items,n):Ge(t)?ko(e,[...t.parameters,t.instanceType],n):We(t)?ko(e,[...t.parameters,t.returnType],n):wo(t)?S$(e,t.parameters[1],n):ne(t)?ko(e,t.allOf,n):pe(t)?S$(e,t.properties,n):F(t)?ko(e,t.anyOf,n):ye(t)?ko(e,t.items,n):it(t)?js(e,It(t),n):n}function P$(e,t,n){return js(e,n,[t])}var bp=u(()=>{kn();gt();Bt();zt();Ne();fe();kr();Xe();Ue();Q();Ht();Ls()});function k0(e){return to()}function T0(e){return m.Keys(e).reduce((t,n)=>({...t,[n]:jr(e[n])}),{})}function Ds(e){return e.reduce((t,n)=>[...t,jr(n)],[])}function jr(e){return Be(e)?k0(e.$ref):ke(e)?qt(jr(e.items),Oi(e)):Ge(e)?yn(Ds(e.parameters),jr(e.instanceType)):We(e)?bn(Ds(e.parameters),jr(e.returnType)):ne(e)?Tt(Ds(e.allOf)):pe(e)?W(T0(e.properties)):it(e)?oa(co(e),jr(It(e))):F(e)?X(Ds(e.anyOf)):ye(e)?je(Ds(e.items)):e}function v0(e,t){return t in e?jr(e[t]):Ye()}function A$(e){return v0(e.$defs,e.$ref)}var R$=u(()=>{M();wt();gt();Bt();zt();Ne();fe();Xe();Ht();Ue();Q();nt()});function E0(e,t,n){let r=Ut(e,Ie([],[]),t),o=Cs({},Ie([],[]),n);return Te([...r,W(o)])}function S0(e,t){return m.Keys(e).filter(r=>t.includes(r)).reduce((r,o)=>{let s=e[o],i=wo(s)?E0(e,s.parameters[0],s.parameters[1]):s;return{...r,[o]:i}},{})}function M$(e,t,n){let r=P$(e,t,n),o=S0(e,r);return $n(o,t)}var Ip=u(()=>{M();kt();fe();bp();xo();N();N();N();Y()});function O$(e,t){return t in e?Be(e[t])?O$(e,e[t].$ref):e[t]:ge()}function Mn(e,t){return O$(e,t)}var Dr=u(()=>{Je();Ht()});var $p=u(()=>{yp();xp();bp();R$();Ip();Dr()});function C$(e){return rt(e)?A$(e):Fi(e)?Ye():e}function st(e,t,n){let r=C$(t),o=C$(n);return ae(e,r,o)}var L$=u(()=>{kt();nt();ji();Pt();$p()});var Sn=u(()=>{L$();be()});function ys(e,t){let n=[st({},e,t),st({},t,e)];return B.IsExtendsTrueLike(n[0])&&B.IsExtendsTrueLike(n[1])?hs:B.IsExtendsTrueLike(n[0])&&B.IsExtendsFalse(n[1])?xs:B.IsExtendsFalse(n[0])&&B.IsExtendsTrueLike(n[1])?Qi:Ha}var hs,Ha,xs,Qi,bs=u(()=>{Sn();hs=0,Ha=1,xs=2,Qi=3});function wp(e,t,n=[],r=t){return m.ShiftLeft(t,(o,s)=>{let i=ys(e,o);return m.IsEqual(i,xs)||m.IsEqual(i,hs)?r:m.IsEqual(i,Ha)?wp(e,s,[...n,o],r):wp(e,s,n,r)},()=>[...n,e])}function P0(e,t,n){let r=Zt(e);return Ee(r)?[r]:Oe(r)?[r]:an(r)?Va(t,n):pe(r)?Va(t,[...n,r]):Va(t,wp(r,n))}function Va(e,t=[]){return m.ShiftLeft(e,(n,r)=>P0(n,r,t),()=>t)}function Dc(e){let t=Va(e);return mo(t)}var _c=u(()=>{M();wt();Je();fe();nt();bs();ta();Y()});function kp(e,t){return d.Update(Zt(e),{},t)}function F$(e,t,n,r){let o=k(e,t,n);return kp(o,r)}var Ja=u(()=>{S();N();Y()});var Ms=u(()=>{_c();bs();Cc();Fc();Y();ta();Ja();Lc()});function _s(e,t=[]){return Yn(e)&&m.IsEqual(e.action,"Conditional")?Be(e.parameters[0])?_s(e.parameters[2],_s(e.parameters[3],[...t,e.parameters[0].$ref])):_s(e.parameters[2],_s(e.parameters[3],t)):Yn(e)&&m.IsEqual(e.action,"Mapped")&&Yn(e.parameters[1])&&m.IsEqual(e.parameters[1].action,"KeyOf")&&Be(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function A0(e,t){return e.reduce((n,r)=>[...n,t.includes(r.name)],[])}function _$(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>m.ShiftLeft(t,(s,i)=>_$(o,i,[...n,[s,r]]),()=>n),()=>n)}function R0(e){return Ae(e)?mt(e.pattern):ot(e)?bt(e.enum):e}function M0(e){let t=R0(e);return F(t)?[...t.anyOf]:[t]}function O0(e,t){return e.reduce((n,r)=>[...n,[...r,t]],[])}function j$(e,t){return t.reduce((n,r)=>[...n,...O0(e,r)],[])}function D$(e){return e.reduce((t,n)=>m.IsEqual(n[0],!0)?j$(t,M0(n[1])):j$(t,[n[1]]),[[]])}function N$(e,t,n){let r=_s(n),o=A0(e,r),s=_$(t,o);return Yn(n)&&m.IsEqual(n.action,"Conditional")||Yn(n)&&m.IsEqual(n.action,"Mapped")?D$(s):[t]}var q$=u(()=>{M();Q();ce();un();vt();Ht();Y();Y()});function C0(){return["(not-resolvable)",ge()]}function L0(){return["(not-generic)",ge()]}function F0(e,t,n){return[e,Xn(t,n)]}function j0(e,t,n){return t in e?U$(e,t,e[t],n):C0()}function U$(e,t,n,r){return eo(n)?F0(t,n.parameters,n.expression):Be(n)?j0(e,n.$ref,r):L0()}function K$(e,t,n){return U$(e,"(anonymous)",t,n)}var G$=u(()=>{ns();Ht();Je()});function D0(e,t,n){if(Ce(t)||To(t)||B.IsExtendsTrueLike(st({},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 W$(e,t,n,r,o){let s=k(e,t,o);return D0(n,s,r),d.Assign(e,{[n]:s})}function _0(e,t,n,r,o){let s=k(e,t,n.extends),i=k(e,t,n.equals);return m.ShiftLeft(o,(c,p)=>Tp(W$(e,t,n.name,s,c),t,r,p),()=>Tp(W$(e,t,n.name,s,i),t,r,[]))}function Tp(e,t,n,r){return m.ShiftLeft(n,(o,s)=>_0(e,t,o,s,r),()=>e)}function B$(e,t,n,r){return Tp(e,t,n,r)}var z$=u(()=>{M();S();N();Sn();Vt();ho()});function N0(){if(!m.IsLessThan(Ep,sn.Get().maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite")}function q0(){N0(),Ep++,vp++}function U0(){vp--,m.IsEqual(vp,0)&&(Ep=0)}function K0(e){return m.IsGreaterThan(e.callstack.length,0)?e.callstack[e.callstack.length-1]:""}function G0(e,t){return m.IsEqual(K0(e),t)}function W0(e,t,n,r,o,s){q0();try{let i=B$(e,t,r,s),c=k(i,Ie([...t.callstack,n.$ref],t.visited),o);return k(i,Ie([],[]),c)}finally{U0()}}function B0(e,t,n,r,o,s){return s.reduce((i,c)=>{let p=W0(e,t,n,r,o,c);return[...i,p]},[])}function z0(e,t,n,r,o,s){let i=N$(r,s,o),c=B0(e,t,n,r,o,i);return m.IsEqual(c.length,1)?c[0]:St(c)}function Ya(e,t,n,r){let o=Ut(e,t,r),s=K$(e,n,r),i=s[0],c=s[1];return eo(c)?G0(t,i)?Ts(qn(i),o):z0(e,t,qn(i),c.parameters,c.expression,o):Ts(n,o)}var vp,Ep,Sp=u(()=>{Ir();M();ho();Ht();ns();Ms();N();N();N();q$();G$();z$();vp=0,Ep=0});function Ts(e,t){return d.Create({"~kind":"Call"},{type:"call",target:e,arguments:t},{})}function H$(e,t){return Ya({},Ie([],[]),e,t)}function To(e){return C(e,"Call")}var ho=u(()=>{S();J();Sp();N()});function H0(e){return d.Discard(e,["~immutable"])}function V$(e,t){return d.Update(H0(e),{},t)}function J$(e,t,n,r){let o=k(e,t,n);return V$(o,r)}var Pp=u(()=>{S();N()});function Y$(e,t){return e(t)}var X$=u(()=>{});function Z$(e,t){return m.IsString(t)?re(Y$(e,t)):re(t)}var Q$=u(()=>{M();Le();X$()});function ew(e,t){let n=mt(t);return Gn(e,n)}var tw=u(()=>{Xa();Ms()});function nw(e,t){let n=t.map(r=>Gn(e,r));return X(n)}var rw=u(()=>{Q();Xa()});function Gn(e,t){return le(t)?Z$(e,t.const):Ae(t)?ew(e,t.pattern):F(t)?nw(e,t.anyOf):t}var Xa=u(()=>{Le();vt();Q();Q$();tw();rw()});function la(e,t={}){return j("Capitalize",[e],t)}function ow(e,t={}){return Ap(e,t)}var Za=u(()=>{ce();On()});function da(e,t={}){return j("Lowercase",[e],t)}function sw(e,t={}){return Rp(e,t)}var Qa=u(()=>{ce();On()});function fa(e,t={}){return j("Uncapitalize",[e],t)}function iw(e,t={}){return Mp(e,t)}var eu=u(()=>{ce();On()});function ga(e,t={}){return j("Uppercase",[e],t)}function aw(e,t={}){return Op(e,t)}var tu=u(()=>{ce();On()});function Ap(e,t){return H([e])?d.Update(Gn(V0,e),{},t):la(e,t)}function Rp(e,t){return H([e])?d.Update(Gn(J0,e),{},t):da(e,t)}function Mp(e,t){return H([e])?d.Update(Gn(Y0,e),{},t):fa(e,t)}function Op(e,t){return H([e])?d.Update(Gn(X0,e),{},t):ga(e,t)}function uw(e,t,n,r){let o=k(e,t,n);return Ap(o,r)}function mw(e,t,n,r){let o=k(e,t,n);return Rp(o,r)}function cw(e,t,n,r){let o=k(e,t,n);return Mp(o,r)}function pw(e,t,n,r){let o=k(e,t,n);return Op(o,r)}var V0,J0,Y0,X0,On=u(()=>{S();Xa();N();Za();Qa();eu();tu();V0=e=>e[0].toUpperCase()+e.slice(1),J0=e=>e.toLowerCase(),Y0=e=>e[0].toLowerCase()+e.slice(1),X0=e=>e.toUpperCase()});function ha(e,t,n,r,o={}){return j("Conditional",[e,t,n,r],o)}function lw(e,t,n,r,o={}){return Cp({},Ie([],[]),e,t,n,r,o)}var nu=u(()=>{ce();Lp();N()});function Z0(e,t,n,r,o,s){let i=st(e,n,r);return B.IsExtendsUnion(i)?X([k(i.inferred,t,o),k(e,t,s)]):B.IsExtendsTrue(i)?k(i.inferred,t,o):k(e,t,s)}function Cp(e,t,n,r,o,s,i){return H([n,r])?d.Update(Z0(e,t,n,r,o,s),{},i):ha(n,r,o,s,i)}function dw(e,t,n,r,o,s,i){let c=k(e,t,n),p=k(e,t,r);return Cp(e,t,c,p,o,s,i)}var Lp=u(()=>{S();Q();Sn();N();nu()});var Fp=u(()=>{Lp()});function xa(e,t={}){return j("ConstructorParameters",[e],t)}function fw(e,t={}){return jp(e,t)}var ru=u(()=>{ce();ou()});function Q0(e){let t=Ge(e)?e.parameters:[],n=mr({},Ie([],[]),t);return je(n)}function jp(e,t){return H([e])?d.Update(Q0(e),{},t):xa(e,t)}function gw(e,t,n,r){let o=k(e,t,n);return jp(o,r)}var ou=u(()=>{S();Bt();Ue();ru();N();N();N()});function ya(e,t,n={}){return j("Exclude",[e,t],n)}function hw(e,t,n={}){return Ns(e,t,n)}var su=u(()=>{ce();qs()});function Ns(e,t,n){return H([e,t])?d.Update(ea(e,t),{},n):ya(e,t,n)}function xw(e,t,n,r,o){let s=k(e,t,n),i=k(e,t,r);return Ns(s,i,o)}var qs=u(()=>{S();N();su();jc()});function ba(e,t,n={}){return j("Extract",[e,t],n)}function yw(e,t,n={}){return Dp(e,t,n)}var iu=u(()=>{ce();au()});function eL(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[e]:[]}function bw(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>bw(o,t,[...n,...eL(r,t)]),()=>n)}function Iw(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=bw(r,t);return St(o)}var $w=u(()=>{M();Q();Sn();Y();Y()});function Dp(e,t,n){return H([e,t])?d.Update(Iw(e,t),{},n):ba(e,t,n)}function ww(e,t,n,r,o){let s=k(e,t,n),i=k(e,t,r);return Dp(s,i,o)}var au=u(()=>{S();N();iu();$w()});function tL(e){return e.reduce((t,n)=>Ki(n)?[...t,re(n)]:t,[])}function vo(e){let t=tL(e);return X(t)}var Us=u(()=>{Le();Q()});function vs(e,t,n={}){return j("Index",[e,t],n)}function kw(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Np(e,r,n)}var _p=u(()=>{M();ce();Us();uu()});function Tw(e,t){let n=Mn(e,t);return Kt(n)}var vw=u(()=>{_r();Dr()});function Ew(e,t,n){let r=cn(e,t,n);return Kt(r)}var Sw=u(()=>{_r();Y()});function nL(e,t){let n=m.Keys(e).filter(I=>!m.HasPropertyKey(t,I)),r=m.Keys(t).filter(I=>!m.HasPropertyKey(e,I)),o=m.Keys(e).filter(I=>m.HasPropertyKey(t,I)),s=n.reduce((I,$)=>({...I,[$]:e[$]}),{}),i=r.reduce((I,$)=>({...I,[$]:t[$]}),{}),c=o.reduce((I,$)=>({...I,[$]:Te([e[$],t[$]])}),{}),p=d.Assign(s,i);return d.Assign(p,c)}function Pw(e){return e.reduce((t,n)=>nL(t,Kt(n)),{})}var Aw=u(()=>{S();M();_r();Y()});var Rw=u(()=>{});function Mw(e){let t=Oh(je(e));return Kt(t)}var Ow=u(()=>{Ue();Mc();_r()});function rL(e,t){return m.Keys(e).filter(o=>o in t).reduce((o,s)=>({...o,[s]:St([e[s],t[s]])}),{})}function Cw(e,t){return m.ShiftLeft(e,(n,r)=>Cw(r,rL(t,Kt(n))),()=>t)}function Lw(e){return m.ShiftLeft(e,(t,n)=>Cw(n,Kt(t)),()=>qe())}var Fw=u(()=>{M();kn();Y();_r()});function Kt(e){return rt(e)?Tw(e.$defs,e.$ref):Pe(e)?Ew(e.if,e.then,e.else):ne(e)?Pw(e.allOf):F(e)?Lw(e.anyOf):ye(e)?Mw(e.items):pe(e)?e.properties:{}}var _r=u(()=>{kt();Ot();Ne();fe();Ue();Q();vw();Sw();Aw();Rw();Ow();Fw()});function Eo(e){let t=Kt(e);return W(t)}var jw=u(()=>{fe();_r()});var Ks=u(()=>{jw()});function So(e){let t=`${e}`;return oL.test(t)?parseInt(t):e}var oL,Gs=u(()=>{oL=new RegExp("^(?:0|[1-9][0-9]*)$")});function sL(e){return re(So(e))}function Dw(e){return e.map(t=>_w(t))}function _w(e){return ne(e)?Tt(Dw(e.allOf)):F(e)?X(Dw(e.anyOf)):le(e)?sL(e.const):e}function Nw(e,t){let n=_w(t),r=st({},n,Ct());return B.IsExtendsTrueLike(r)?e:le(t)&&m.IsEqual(t.const,"length")?Ct():ge()}var qw=u(()=>{M();Ne();Q();Le();xt();Je();Sn();Gs()});function Uw(e,t){let n=Mn(e,t);return Ft(n)}var Kw=u(()=>{cr();Dr()});function Gw(e,t,n){let r=cn(e,t,n);return Ft(r)}var Ww=u(()=>{cr();Y()});function Bw(e){let t=bt(e);return Ft(t)}var zw=u(()=>{cr();Y()});function Hw(e){let t=Te(e);return Ft(t)}var Vw=u(()=>{Y();cr()});function Jw(e){return[`${e}`]}var Yw=u(()=>{});function Xw(e){let t=mt(e);return Ft(t)}var Zw=u(()=>{cr();Y()});function Qw(e){return e.reduce((t,n)=>[...t,...Ft(n)],[])}var ek=u(()=>{cr()});function Ft(e){return rt(e)?Uw(e.$defs,e.$ref):Pe(e)?Gw(e.if,e.then,e.else):ot(e)?Bw(e.enum):ne(e)?Hw(e.allOf):le(e)?Jw(e.const):Ae(e)?Xw(e.pattern):F(e)?Qw(e.anyOf):[]}var cr=u(()=>{kt();Ot();un();Ne();Le();vt();Q();Kw();Ww();zw();Vw();Yw();Zw();ek()});function Po(e){return Ft(e)}var mu=u(()=>{cr()});function Ws(e,t){return t.map(n=>Bs(e,n))}function Bs(e,t){return ke(t)?qt(Bs(e,t.items)):Ge(t)?yn(Ws(e,t.parameters),Bs(e,t.instanceType)):We(t)?bn(Ws(e,t.parameters),Bs(e,t.returnType)):ye(t)?je(Ws(e,t.items)):F(t)?X(Ws(e,t.anyOf)):ne(t)?Tt(Ws(e,t.allOf)):aa(t)?W(e):t}function tk(e,t){return Bs(e,t)}var nk=u(()=>{gt();Bt();zt();Ne();fe();Ue();ua();Q()});function iL(e,t){let n=t in e?e[t]:ge();return tk(e,n)}function rk(e,t){return t.reduce((n,r)=>[...n,iL(e,r)],[])}function aL(e,t){let n=Po(t),r=rk(e,n);return St(r)}function mL(e){return e.filter(n=>uL.test(n))}function cL(e){let t=Ci(e),n=mL(t),r=rk(e,n);return St(r)}function ok(e,t){return Fe(t)?cL(e):aL(e,t)}var uL,sk=u(()=>{xt();Je();kr();Y();mu();Xe();nk();uL=new RegExp(or)});function pL(e){return re(So(e))}function ik(e){return e.map(t=>qp(t))}function qp(e){return ne(e)?Tt(ik(e.allOf)):F(e)?X(ik(e.anyOf)):le(e)?pL(e.const):e}var ak=u(()=>{Q();Ne();Le();Gs()});function lL(e,t){return e.reduceRight((n,r,o)=>{let s=st({},re(o),t);return B.IsExtendsTrueLike(s)?[r,...n]:n},[])}function dL(e,t){let n=qp(t),r=lL(e,n);return nr(r)}function fL(e){return nr(e)}function uk(e,t){return le(t)&&m.IsEqual(t.const,"length")?re(e.length):Fe(t)||ht(t)?fL(e):dL(e,t)}var mk=u(()=>{M();Le();xt();En();Y();Sn();ak()});function ck(e,t){return ke(e)?Nw(e.items,t):pe(e)?ok(e.properties,t):ye(e)?uk(e.items,t):ge()}var pk=u(()=>{gt();Je();fe();Ue();qw();sk();mk()});function gL(e){return rt(e)||Pe(e)||ne(e)||F(e)?Eo(e):e}function Np(e,t,n){return H([e,t])?d.Update(ck(gL(e),t),{},n):vs(e,t,n)}function lk(e,t,n,r,o){let s=k(e,t,n),i=k(e,t,r);return Np(s,i,o)}var uu=u(()=>{S();kt();Ot();Ne();Q();N();_p();Ks();pk()});function Ia(e,t={}){return j("InstanceType",[e],t)}function dk(e,t={}){return Up(e,t)}var cu=u(()=>{ce();pu()});function hL(e){return Ge(e)?e.instanceType:ge()}function Up(e,t){return H([e])?d.Update(hL(e),{},t):Ia(e,t)}function fk(e,t,n,r={}){let o=k(e,t,n);return Up(o,r)}var pu=u(()=>{S();Bt();Je();cu();N()});function Es(e,t={}){return j("KeyOf",[e],t)}function gk(e,t={}){return Kp(e,t)}var lu=u(()=>{ce();du()});function hk(){return X([Ct(),Yt(),ao()])}var xk=u(()=>{xt();Xt();Rr();Q()});function yk(e){return Ct()}var bk=u(()=>{xt()});function xL(e){return e.reduce((n,r)=>Ki(r)?[...n,re(So(r))]:qe(),[])}function Ik(e){let t=m.Keys(e),n=xL(t);return nr(n)}var $k=u(()=>{kn();M();Le();Gs();Y()});function wk(e){return co(e)}var kk=u(()=>{Xe()});function Tk(e){let t=e.map((n,r)=>re(r));return nr(t)}var vk=u(()=>{Le();Y()});function Ek(e){return Ee(e)?hk():ke(e)?yk(e.items):pe(e)?Ik(e.properties):it(e)?wk(e):ye(e)?Tk(e.items):ge()}var Sk=u(()=>{wt();gt();Je();fe();Xe();Ue();xk();bk();$k();kk();vk()});function yL(e){return rt(e)||Pe(e)||ne(e)||F(e)?Eo(e):e}function Kp(e,t){return H([e])?d.Update(Ek(yL(e)),{},t):Es(e,t)}function Pk(e,t,n,r){let o=k(e,t,n);return Kp(o,r)}var du=u(()=>{S();kt();Ot();Ne();Q();lu();N();Ks();Sk()});function ws(e,t,n,r,o={}){return j("Mapped",[e,t,n,r],o)}function Ak(e,t,n,r,o={}){return Gp({},Ie([],[]),e,t,n,r,o)}var fu=u(()=>{ce();gu();N()});function bL(e){let t=mt(e);return hu(t)}function IL(e){return e.reduce((t,n)=>[...t,...hu(n)],[])}function $L(e){let t=bt(e);return hu(t)}function wL(e){return m.IsNumber(e)?[re(`${e}`)]:[re(e)]}function hu(e){return ot(e)?$L(e.enum):le(e)?wL(e.const):Ae(e)?bL(e.pattern):F(e)?IL(e.anyOf):[e]}function Rk(e){return hu(e)}var Mk=u(()=>{M();Le();un();vt();Q();Y();Y()});function kL(e){return Ae(e)?mt(e.pattern):e}function TL(e,t,n,r,o,s){let i=d.Assign(e,{[n.name]:r}),c=k(i,t,o),p=kL(c),f=k(i,t,s);return ch(p)||ph(p)?{[p.const]:f}:{}}function vL(e,t,n,r,o,s){return r.reduce((i,c)=>[...i,TL(e,t,n,c,o,s)],[])}function EL(e){return e.reduce((t,n)=>[...t,W(n)],[])}function Ok(e,t,n,r,o,s){let i=Rk(r),c=vL(e,t,n,i,o,s),p=EL(c);return Te(p)}var Ck=u(()=>{S();Le();fe();vt();N();Y();Y();Mk()});function Gp(e,t,n,r,o,s,i){return H([r])?d.Update(Ok(e,t,n,r,o,s),{},i):ws(n,r,o,s,i)}function Lk(e,t,n,r,o,s,i){let c=k(e,t,r);return Gp(e,t,n,c,o,s,i)}var gu=u(()=>{S();fu();N();Ck()});function SL(e,t,n){let r=d.Assign(e,t);return m.Keys(t).filter(s=>n.includes(s)).reduce((s,i)=>({...s,[i]:M$(r,i,t[i])}),{})}function PL(e,t,n){let r=d.Assign(e,t);return m.Keys(t).filter(s=>!n.includes(s)).reduce((s,i)=>({...s,[i]:k(r,Ie([],[]),t[i])}),{})}function AL(e,t,n){let r=E$(t),o=SL(e,t,r),s=PL(e,t,r),i={...o,...s};return d.Update(i,{},n)}function xu(e,t,n,r){return AL(e,n,r)}var yu=u(()=>{M();S();N();yp();Ip();N()});function $a(e,t={}){return j("NonNullable",[e],t)}function Fk(e,t={}){return Wp(e,t)}var bu=u(()=>{ce();Iu()});function RL(e){let t=X([oo(),lo()]);return Ns(e,t,{})}function Wp(e,t){return H([e])?d.Update(RL(e),{},t):$a(e,t)}function jk(e,t,n,r){let o=k(e,t,n);return Wp(o,r)}var Iu=u(()=>{S();io();go();Q();qs();bu();N()});function wa(e,t,n={}){return j("Omit",[e,t],n)}function Dk(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Bp(e,r,n)}var $u=u(()=>{M();ce();Us();wu()});function ku(e){let t=Eo(e);return pe(t)?t.properties:qe()}var zp=u(()=>{kn();fe();Ks()});function ML(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?r:{...r,[o]:e[o]},{})}function _k(e,t){let n=ku(e),r=Po(t),o=ML(n,r);return W(o)}var Nk=u(()=>{M();fe();mu();zp()});function Bp(e,t,n){return H([e,t])?d.Update(_k(e,t),{},n):wa(e,t,n)}function qk(e,t,n,r,o){let s=k(e,t,n),i=k(e,t,r);return Bp(s,i,o)}var wu=u(()=>{S();$u();N();Nk()});function ka(e,t={}){return j("Parameters",[e],t)}function Uk(e,t={}){return Hp(e,t)}var Tu=u(()=>{ce();vu()});function OL(e){let t=We(e)?e.parameters:[],n=mr({},Ie([],[]),t);return je(n)}function Hp(e,t){return H([e])?d.Update(OL(e),{},t):ka(e,t)}function Kk(e,t,n,r){let o=k(e,t,n);return Hp(o,r)}var vu=u(()=>{S();zt();Ue();Tu();N();N();N()});function Ta(e,t={}){return j("Partial",[e],t)}function Gk(e,t={}){return Vp(e,t)}var Eu=u(()=>{ce();Su()});function Wk(e,t){let n=Mn(e,t),r=Cn(n);return $n(d.Assign(e,{[t]:r}),t)}var Bk=u(()=>{S();kt();Ao();Dr()});function zk(e,t,n){let r=cn(e,t,n);return Cn(r)}var Hk=u(()=>{Ao();Y()});function Vk(e){let t=Te(e);return Cn(t)}var Jk=u(()=>{Ao();Y()});function Yk(e){let t=e.map(n=>Cn(n));return X(t)}var Xk=u(()=>{Q();Ao()});function Zk(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:wr(e[o])}),{});return W(t)}var Qk=u(()=>{M();fe();rs()});function Cn(e){return rt(e)?Wk(e.$defs,e.$ref):Pe(e)?zk(e.if,e.then,e.else):ne(e)?Vk(e.allOf):F(e)?Yk(e.anyOf):pe(e)?Zk(e.properties):W({})}var Ao=u(()=>{kt();Ot();Ne();fe();Q();Bk();Hk();Jk();Xk();Qk()});function Vp(e,t){return H([e])?d.Update(Cn(e),{},t):Ta(e,t)}function eT(e,t,n,r){let o=k(e,t,n);return Vp(o,r)}var Su=u(()=>{S();Eu();Ao();N()});function va(e,t,n={}){return j("Pick",[e,t],n)}function tT(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Jp(e,r,n)}var Pu=u(()=>{M();ce();Us();Au()});function CL(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?d.Assign(r,{[o]:e[o]}):r,{})}function nT(e,t){let n=ku(e),r=Po(t),o=CL(n,r);return W(o)}var rT=u(()=>{S();M();fe();mu();zp()});function Jp(e,t,n){return H([e,t])?d.Update(nT(e,t),{},n):va(e,t,n)}function oT(e,t,n,r,o){let s=k(e,t,n),i=k(e,t,r);return Jp(s,i,o)}var Au=u(()=>{S();Pu();N();rT()});function Ea(e,t={}){return j("ReadonlyObject",[e],t)}function Yp(e,t={}){return Xp(e,t)}var sT,Ru=u(()=>{ce();Mu();sT=Yp});function iT(e){return ro(qt(e))}var aT=u(()=>{gt();ms()});function uT(e,t){let n=Mn(e,t),r=Ln(n);return $n(d.Assign(e,{[t]:r}),t)}var mT=u(()=>{S();kt();Ro();Dr()});function cT(e,t,n){let r=cn(e,t,n);return Ln(r)}var pT=u(()=>{Ro();Y()});function lT(e){let t=Te(e);return Ln(t)}var dT=u(()=>{Ro();Y()});function fT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:Er(e[o])}),{});return W(t)}var gT=u(()=>{M();fe();cs()});function hT(e){return ro(je(e))}var xT=u(()=>{Ue();ms()});function yT(e){let t=e.map(n=>Ln(n));return X(t)}var bT=u(()=>{Q();Ro()});function Ln(e){return ke(e)?iT(e.items):rt(e)?uT(e.$defs,e.$ref):Pe(e)?cT(e.if,e.then,e.else):ne(e)?lT(e.allOf):pe(e)?fT(e.properties):ye(e)?hT(e.items):F(e)?yT(e.anyOf):e}var Ro=u(()=>{gt();kt();Ot();Ne();fe();Ue();Q();aT();mT();pT();dT();gT();xT();bT()});function Xp(e,t){return H([e])?d.Update(Ln(e),{},t):Ea(e)}function IT(e,t,n,r){let o=k(e,t,n);return Xp(o,r)}var Mu=u(()=>{S();Ru();Ro();N()});function $T(e,t,n,r){return t.visited.includes(r)?n:r in e?k(e,Ie(t.callstack,[...t.visited,r]),e[r]):n}var Zp=u(()=>{N();N()});function wT(e,t){let n=Mn(e,t),r=Fn(n);return $n(d.Assign(e,{[t]:r}),t)}var kT=u(()=>{S();kt();Mo();Dr()});function TT(e,t,n){let r=cn(e,t,n);return Fn(r)}var vT=u(()=>{Mo();Y()});function ET(e){let t=Te(e);return Fn(t)}var ST=u(()=>{Mo();Y()});function PT(e){let t=e.map(n=>Fn(n));return X(t)}var AT=u(()=>{Q();Mo()});function RT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:Xi(e[o])}),{});return W(t)}var MT=u(()=>{M();fe();Zi()});function Fn(e){return rt(e)?wT(e.$defs,e.$ref):Pe(e)?TT(e.if,e.then,e.else):ne(e)?ET(e.allOf):F(e)?PT(e.anyOf):pe(e)?RT(e.properties):W({})}var Mo=u(()=>{kt();Ot();Ne();fe();Q();kT();vT();ST();AT();MT()});function Sa(e,t={}){return j("Required",[e],t)}function OT(e,t={}){return Qp(e,t)}var Ou=u(()=>{ce();Cu()});function Qp(e,t){return H([e])?d.Update(Fn(e),{},t):Sa(e,t)}function CT(e,t,n,r){let o=k(e,t,n);return Qp(o,r)}var Cu=u(()=>{S();Mo();Ou();N()});function Pa(e,t={}){return j("ReturnType",[e],t)}function LT(e,t={}){return el(e,t)}var Lu=u(()=>{ce();Fu()});function LL(e){return We(e)?e.returnType:ge()}function el(e,t){return H([e])?d.Update(LL(e),{},t):Pa(e,t)}function FT(e,t,n,r={}){let o=k(e,t,n);return el(o,r)}var Fu=u(()=>{S();zt();Je();Lu();N()});function Aa(e,t){return j("With",[e,t],{})}function jT(e,t){return tl(e,t)}var ju=u(()=>{ce();Du()});function tl(e,t){return H([e])?d.Update(e,{},t):Aa(e,t)}function DT(e,t,n,r){let o=k(e,t,n);return tl(o,r)}var Du=u(()=>{S();N();ju()});function FL(e){return sr(e)?ye(e.items)?nl(e.items.items):Ce(e.items)?[e]:Be(e.items)?[e]:[ge()]:[e]}function nl(e){return e.reduce((n,r)=>[...n,...FL(r)],[])}var _T=u(()=>{Vt();Je();po();Ht();Ue()});var NT=u(()=>{_T()});function Ie(e,t){return{callstack:e,visited:t}}function H(e){return m.ShiftLeft(e,(t,n)=>Be(t)?!1:H(n),()=>!0)}function Cs(e,t,n){return m.Keys(n).reduce((r,o)=>({...r,[o]:k(e,t,n[o])}),{})}function mr(e,t,n){let r=Ut(e,t,n);return nl(r)}function Ut(e,t,n){return n.map(r=>k(e,t,r))}function jL(e,t){let n=ut(e)?ts(t,{}):t,r=Sr(e)?es(n,{}):n;return vr(e)?zs(r,{}):r}function DL(e,t,n,r,o){return m.IsEqual(n,"AddImmutable")?qT(e,t,r[0],o):m.IsEqual(n,"RemoveImmutable")?J$(e,t,r[0],o):m.IsEqual(n,"AddReadonly")?Hf(e,t,r[0],o):m.IsEqual(n,"RemoveReadonly")?Sh(e,t,r[0],o):m.IsEqual(n,"AddOptional")?Vf(e,t,r[0],o):m.IsEqual(n,"RemoveOptional")?Rh(e,t,r[0],o):m.IsEqual(n,"Capitalize")?uw(e,t,r[0],o):m.IsEqual(n,"Conditional")?dw(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"ConstructorParameters")?gw(e,t,r[0],o):m.IsEqual(n,"Evaluate")?F$(e,t,r[0],o):m.IsEqual(n,"Exclude")?xw(e,t,r[0],r[1],o):m.IsEqual(n,"Extract")?ww(e,t,r[0],r[1],o):m.IsEqual(n,"Index")?lk(e,t,r[0],r[1],o):m.IsEqual(n,"InstanceType")?fk(e,t,r[0],o):m.IsEqual(n,"Interface")?w$(e,t,r[0],r[1],o):m.IsEqual(n,"KeyOf")?Pk(e,t,r[0],o):m.IsEqual(n,"Lowercase")?mw(e,t,r[0],o):m.IsEqual(n,"Mapped")?Lk(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"Module")?xu(e,t,r[0],o):m.IsEqual(n,"NonNullable")?jk(e,t,r[0],o):m.IsEqual(n,"Pick")?oT(e,t,r[0],r[1],o):m.IsEqual(n,"Parameters")?Kk(e,t,r[0],o):m.IsEqual(n,"Partial")?eT(e,t,r[0],o):m.IsEqual(n,"Omit")?qk(e,t,r[0],r[1],o):m.IsEqual(n,"ReadonlyObject")?IT(e,t,r[0],o):m.IsEqual(n,"Record")?tx(e,t,r[0],r[1],o):m.IsEqual(n,"Required")?CT(e,t,r[0],o):m.IsEqual(n,"ReturnType")?FT(e,t,r[0],o):m.IsEqual(n,"TemplateLiteral")?hI(e,t,r[0],o):m.IsEqual(n,"Uncapitalize")?cw(e,t,r[0],o):m.IsEqual(n,"Uppercase")?pw(e,t,r[0],o):m.IsEqual(n,"With")?DT(e,t,r[0],r[1]):j(n,r,o)}function _L(e,t,n){let r=Be(n)?$T(e,t,n,n.$ref):ke(n)?qt(k(e,t,n.items),Oi(n)):To(n)?Ya(e,t,n.target,n.arguments):Ge(n)?yn(Ut(e,t,n.parameters),k(e,t,n.instanceType),Jf(n)):We(n)?bn(Ut(e,t,n.parameters),k(e,t,n.returnType),Yf(n)):Pe(n)?Tr(k(e,t,n.if),k(e,t,n.then),k(e,t,n.else),rg(n)):ne(n)?Tt(Ut(e,t,n.allOf),ug(n)):pe(n)?W(Cs(e,t,n.properties),eg(n)):it(n)?nx(Qt(n),k(e,t,It(n))):sr(n)?Or(k(e,t,n.items)):ye(n)?je(mr(e,t,n.items),Eh(n)):F(n)?X(Ut(e,t,n.anyOf),dh(n)):n;return jL(n,r)}function k(e,t,n){return Yn(n)?DL(e,t,n.action,n.parameters,n.options):_L(e,t,n)}function rl(e,t){return k(e,Ie([],[]),t)}var N=u(()=>{M();_u();Ri();Mi();gt();Bt();ce();zt();ho();Ot();Ne();fe();Xe();Ue();Q();Ht();po();_u();Pp();Ri();Ec();Mi();Ac();Zn();us();ps();Sp();On();Fp();ou();Ja();qs();au();uu();pu();za();du();On();gu();yu();Iu();wu();vu();Su();Au();Mu();na();Zp();Cu();Fu();Ua();On();On();Du();NT()});function NL(e){return d.Update(e,{"~immutable":!0},{})}function zs(e,t){return d.Update(NL(e),{},t)}function qT(e,t,n,r){let o=k(e,t,n);return zs(o,r)}var _u=u(()=>{S();N()});function ob(e,t={}){return j("AddImmutable",[e],t)}function ro(e,t={}){return zs(e,t)}var ms=u(()=>{ce();_u()});var UT=u(()=>{ce();Pp()});function sb(e,t={}){return j("Evaluate",[e],t)}function KT(e,t={}){return kp(e,t)}var ol=u(()=>{ce();Ja()});function ib(e,t={}){return j("Module",[e],t)}function GT(e,t={}){return xu({},Ie([],[]),e,t)}var sl=u(()=>{ce();N();yu()});var xo=u(()=>{ms();cs();rs();UT();Sc();Zi();Za();nu();ru();ol();su();iu();_p();cu();Ls();lu();Qa();fu();sl();bu();$u();Tu();Eu();Pu();Ru();Ou();Lu();eu();tu();ju()});var WT=u(()=>{ou()});var BT=u(()=>{Di()});var zT=u(()=>{qs()});var HT=u(()=>{au()});var VT=u(()=>{});var JT=u(()=>{Us();Gs();VT()});var YT=u(()=>{uu()});var XT=u(()=>{pu()});var ZT=u(()=>{za()});var QT=u(()=>{On()});var ev=u(()=>{du()});var tv=u(()=>{gu()});var nv=u(()=>{yu()});var rv=u(()=>{Iu()});var ov=u(()=>{wu()});var sv=u(()=>{vu()});var iv=u(()=>{gs();sp()});var av=u(()=>{Su()});var uv=u(()=>{Au()});var mv=u(()=>{M();bs()});var cv=u(()=>{mv()});var pv=u(()=>{Mu()});var lv=u(()=>{na()});var dv=u(()=>{Zp()});var fv=u(()=>{Cu()});var gv=u(()=>{Fu()});var hv=u(()=>{});var xv=u(()=>{M();gs()});var yv=u(()=>{Ji();Yi();ip();hv();Hi();xv()});var bv=u(()=>{Du()});var Iv=u(()=>{N();Fp();WT();$p();BT();Ms();zT();HT();JT();YT();XT();ZT();QT();ev();tv();nv();rv();Ks();ov();sv();iv();av();uv();cv();pv();lv();dv();fv();gv();yv();bv()});function $v(...e){let[t,n,r]=wn.Match(e,{2:(i,c)=>m.IsString(i)?[{},i,c]:[i,c,{}],3:(i,c,p)=>[i,c,p],1:i=>[{},i,{}]}),o=pI(n),s=m.IsArray(o)&&m.IsEqual(o.length,2)?k(t,Ie([],[]),o[0]):ge();return d.Update(s,{},r)}var wv=u(()=>{no();S();M();ca();N();N();Bi()});var il=u(()=>{wv()});var Z={};Mt(Z,{Any:()=>to,Array:()=>qt,BigInt:()=>ls,Boolean:()=>qi,Call:()=>H$,Capitalize:()=>ow,Codec:()=>Ni,Conditional:()=>lw,Constructor:()=>yn,ConstructorParameters:()=>fw,Cyclic:()=>$n,Decode:()=>rh,DecodeBuilder:()=>as,Dependent:()=>Tr,Encode:()=>oh,EncodeBuilder:()=>is,Enum:()=>ag,Evaluate:()=>KT,Exclude:()=>hw,Extends:()=>st,ExtendsResult:()=>B,Extract:()=>yw,Function:()=>bn,Generic:()=>Xn,Identifier:()=>ds,Immutable:()=>sh,Index:()=>kw,Infer:()=>os,InstanceType:()=>dk,Instantiate:()=>rl,Integer:()=>Ar,Interface:()=>k$,Intersect:()=>Tt,IsAny:()=>Ee,IsArray:()=>ke,IsBigInt:()=>vn,IsBoolean:()=>Jt,IsCall:()=>To,IsCodec:()=>_i,IsConstructor:()=>Ge,IsCyclic:()=>rt,IsDependent:()=>Pe,IsEnum:()=>ot,IsEnumValue:()=>ig,IsFunction:()=>We,IsGeneric:()=>eo,IsIdentifier:()=>mh,IsImmutable:()=>vr,IsInfer:()=>Ce,IsInteger:()=>ht,IsIntersect:()=>ne,IsKind:()=>C,IsLiteral:()=>le,IsNever:()=>an,IsNull:()=>so,IsNumber:()=>Fe,IsObject:()=>pe,IsOptional:()=>ut,IsParameter:()=>lh,IsReadonly:()=>Sr,IsRecord:()=>it,IsRef:()=>Be,IsRefine:()=>bc,IsRest:()=>sr,IsSchema:()=>_e,IsString:()=>yt,IsSymbol:()=>er,IsTemplateLiteral:()=>Ae,IsThis:()=>aa,IsTuple:()=>ye,IsUndefined:()=>fo,IsUnion:()=>F,IsUnknown:()=>Oe,IsUnsafe:()=>Fi,IsVoid:()=>Pn,KeyOf:()=>gk,Literal:()=>re,Lowercase:()=>sw,Mapped:()=>Ak,Module:()=>GT,Never:()=>ge,NonNullable:()=>Fk,Null:()=>oo,Number:()=>Ct,Object:()=>W,Omit:()=>Dk,Optional:()=>Zf,Parameter:()=>Mr,Parameters:()=>Uk,Partial:()=>Gk,Pick:()=>tT,Readonly:()=>ih,ReadonlyObject:()=>Yp,ReadonlyType:()=>sT,Record:()=>oa,RecordKey:()=>co,RecordPattern:()=>Qt,RecordValue:()=>It,Ref:()=>qn,Refine:()=>ah,Required:()=>OT,Rest:()=>Or,ReturnType:()=>LT,Script:()=>$v,String:()=>Yt,Symbol:()=>ao,TemplateLiteral:()=>yI,This:()=>ia,Tuple:()=>je,Uncapitalize:()=>iw,Undefined:()=>lo,Union:()=>X,Unknown:()=>Ye,Unsafe:()=>tg,Uppercase:()=>aw,Void:()=>ma,With:()=>jT});var al=u(()=>{N();Sn();il();Za();nu();ru();ol();su();iu();xo();cu();Ls();lu();Qa();fu();sl();bu();$u();Tu();Eu();Pu();Ru();Ou();Lu();eu();tu();ju();yc();us();Zn();ps();Ic();wt();gt();Pr();Qn();ho();Bt();kt();un();zt();ns();$c();Ot();Vt();En();Ne();Le();Je();io();xt();fe();kc();Xe();Ht();po();J();Xt();Rr();vt();ua();Ue();go();Q();nt();ji();Cr()});var Nr=u(()=>{xo();Iv();Sn();il();ca();al();al()});import{StringEnum as qL}from"@earendil-works/pi-ai";import{defineTool as UL}from"@earendil-works/pi-coding-agent";function kv(e){if(e.length===0)return"Todo list is empty.";let t=e.filter(o=>o.status==="completed").length,n=e.map(o=>`${KL[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(`
20
- `)}function WL(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(i=>i.content===r);if(!s)return{todos:o,error:`no task matches ${JSON.stringify(r)}`};if(t==="start"){for(let i of o)i.status==="in_progress"&&(i.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 BL(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 KL,GL,Nu,ul=u(()=>{Nr();KL={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"},GL=Z.Object({op:qL(["init","start","done","drop","view"],{description:"init replaces the list; start/done/drop move one task; view reads it"}),items:Z.Optional(Z.Array(Z.String(),{description:"Task labels for init. 5-10 words each, specific enough to execute without re-planning"})),task:Z.Optional(Z.String({description:"Exact label of the task to start, complete or drop"}))});Nu=UL({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:GL,async execute(e,t,n,r,o){let s=BL(o),{todos:i,error:c}=WL(s,t.op,t.items,t.task),p={op:t.op,todos:i,...c?{error:c}:{}};return{content:[{type:"text",text:c?`Error: ${c}
21
- ${kv(i)}`:kv(i)}],details:p,...c?{isError:!0}:{}}}})});import{StringEnum as zL}from"@earendil-works/pi-ai";import{defineTool as HL}from"@earendil-works/pi-coding-agent";function Ev(){return Wn.size===0?"":["<shared-notes>","Working notes recorded with the `context` tool. They survive compaction and are visible to every agent on this task.",...[...Wn].map(([t,n])=>`- ${t}: ${n}`),"</shared-notes>"].join(`
22
- `)}function VL(e,t,n){if(e==="list")return Wn.size===0?{text:"No notes."}:{text:[...Wn].map(([r,o])=>`${r} = ${o}`).join(`
23
- `)};if(!t)return{text:"Error: key is required",error:"key required"};if(t.length>vv)return{text:`Error: key longer than ${vv} characters`,error:"key too long"};if(e==="forget")return{text:Wn.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>Tv?`${n.slice(0,Tv)}\u2026`:n;return Wn.set(t,r),{text:`Recorded ${t} (${Wn.size} note${Wn.size===1?"":"s"} held)`}}return{text:`Error: unknown op ${JSON.stringify(e)}`,error:"unknown op"}}var Wn,Tv,vv,qu,Uu=u(()=>{Nr();Wn=new Map,Tv=2e3,vv=80;qu=HL({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:Z.Object({op:zL(["set","list","forget"],{description:"set writes a note, list reads all, forget removes one"}),key:Z.Optional(Z.String({description:"Short lookup key, e.g. 'auth-entrypoint'"})),value:Z.Optional(Z.String({description:"The fact to keep (for set)"}))}),async execute(e,t){let{text:n,error:r}=VL(t.op,t.key,t.value);return{content:[{type:"text",text:n}],details:{op:t.op,notes:Object.fromEntries(Wn)},...r?{isError:!0}:{}}}})});import{StringEnum as JL}from"@earendil-works/pi-ai";import{defineTool as YL}from"@earendil-works/pi-coding-agent";function Gu(e){if(!e||e.status==="cleared")return"No goal set.";let t=e.budget??Ku,n=[`${Av[e.status]} ${e.status}`,`${e.used}/${t} continuations`];return e.note&&n.push(e.note),`${n.join(" \xB7 ")}
24
- ${e.text}`}function Rv(e){if(!e||e.status==="cleared"||e.status==="done")return"";let t=e.budget??Ku,n=e.text.length>48?`${e.text.slice(0,47)}\u2026`:e.text;return`goal ${Av[e.status]} ${e.used}/${t} \xB7 ${n}`}function Mv(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(`
25
- `)}function Ov(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??Ku}.`].join(`
26
- `)}function Wu(){return Cv}function pn(e){Cv=e}function Bu(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??Ku;return e.used>=t?{action:"stop",reason:`budget exhausted (${t} continuations)`,close:!0}:{action:"continue"}}function ml(e,t,n,r,o){switch(t){case"view":return{goal:e};case"set":return n?.trim()?n.length>Sv?{goal:e,error:`text longer than ${Sv} 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 Oo(e){let t;for(let n of e.sessionManager.getBranch()){if(n.type==="custom"&&n.customType===pr){t=n.data;continue}if(n.type==="custom_message"&&n.customType===pr){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 pr,Pv,Sv,Ku,Av,Cv,XL,Lv,zu=u(()=>{Nr();pr="howtofix.goal",Pv="howtofix.goal.continue",Sv=400,Ku=25,Av={active:"\u25CF",paused:"\u2016",done:"\u2713",cleared:"\u25CB"};XL=Z.Object({op:JL(["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:Z.Optional(Z.String({description:"The goal, in one sentence, as the user would state it (for set)"})),budget:Z.Optional(Z.Number({description:"Optional cap on automatic continuations before the run stops"})),note:Z.Optional(Z.String({description:"Evidence that the goal is met (required for complete)"}))}),Lv=YL({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:XL,async execute(e,t,n,r,o){let s=Oo(o),{goal:i,error:c}=ml(s,t.op,t.text,t.budget,t.note);pn(i);let p=Gu(i);return{content:[{type:"text",text:c?`Error: ${c}
27
- ${p}`:p}],details:{op:t.op,goal:i},...c?{isError:!0}:{}}}})});import{existsSync as ll,mkdirSync as Fv,readFileSync as jv}from"node:fs";import{dirname as Dv,join as _v}from"node:path";import{defineTool as Nv}from"@earendil-works/pi-coding-agent";function Hu(){return{state:"inactive",wasActive:!1}}function ZL(e){return e?e.state==="pending"?{...e,state:"inactive"}:{...e}:Hu()}function qv(e){return e.state!=="inactive"?e:{...e,state:"pending"}}function QL(e){return e.state!=="pending"?e:{state:"active",wasActive:!0}}function eF(e){return e.state!=="inactive"?e:{state:"active",wasActive:!0}}function tF(e){return e.state!=="active"?e:{...e,state:"inactive"}}function Uv(e){return e.state==="inactive"?e:{...e,state:"inactive"}}function Vu(e){return e.state==="active"}function nF(e,t){return e===t}function rF(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(`
28
- `)}function oF(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 Ju(){return dt}function Kv(){return lt}function Gv(){return Vu(dt)}function Wv(){if(!(!lt||!ll(lt)))try{let e=jv(lt,"utf8");return e.trim()?e:void 0}catch{return}}function Bv(){return Wv()!==void 0}function zv(){return dt.state==="inactive"?"":dt.state==="pending"?"plan pending":Bv()?"plan \u25CF ready":"plan \u25CF planning"}function Hv(){return pl?_v(pl,"plan_mode.json"):void 0}function sF(){let e=Hv();if(e)try{Fv(Dv(e),{recursive:!0}),tt(e,JSON.stringify(dt))}catch{}}function iF(){let e=Hv();if(!e||!ll(e))return Hu();try{return ZL(JSON.parse(jv(e,"utf8")))}catch{return Hu()}}function aF(e){pl=e,lt=_v(e,"plan.md"),dt=iF()}function Co(e){return dt=e,sF(),dt}function Vv(){return e=>{e.on("tool_call",async t=>{if(!Vu(dt)||t.toolName!=="edit"&&t.toolName!=="write")return;let n=t.input?.path;if(typeof n=="string"&&!(!lt||nF(n,lt)))return{block:!0,reason:oF(lt)}})}}function Jv(){return e=>{e.on("session_start",async(t,n)=>{aF(n.sessionManager.getSessionDir())}),e.on("before_agent_start",async()=>{dt.state==="pending"&&Co(QL(dt))}),e.on("context_with_system",async t=>{if(!Vu(dt)||!lt)return;let n=t.messages[0];if(!n||n.role!=="system")return;let r=rF(lt,Bv()),o=`${typeof n.content=="string"?n.content:""}
29
-
30
- ${r}`;return{messages:t.messages.map(i=>i===n?{...n,content:o}:i)}})}}function uF(){if(lt){try{Fv(Dv(lt),{recursive:!0}),ll(lt)||tt(lt,"")}catch{return}return lt}}var lt,dt,pl,cl,Yv,Xv,dl=u(()=>{Nr();Hn();dt=Hu();cl=2e4;Yv=Nv({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:Z.Object({}),async execute(e,t,n,r,o){if(dt.state!=="inactive")return{content:[{type:"text",text:`Plan mode is already ${dt.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:{}};Co(eF(dt));let i=uF();return{content:[{type:"text",text:["Plan mode is active. Edits are blocked except for the plan file.",i?`Write your plan to ${i}.`:"Write your plan to the session plan file."].join(`
31
- `)}],details:{planFile:i}}}}),Xv=Nv({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:Z.Object({}),executionMode:"sequential",async execute(e,t,n,r,o){if(!Vu(dt))return{content:[{type:"text",text:"Plan mode is not active."}],details:{},isError:!0};let s=Wv();if(!s)return{content:[{type:"text",text:`No plan has been written yet. Write it to ${lt??"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 i=s.length>cl?`${s.slice(0,cl)}
32
- \u2026 (${s.length-cl} more characters)`:s;return await o.ui.confirm("Approve this plan?",i)?(Co(tF(dt)),{content:[{type:"text",text:"Plan approved. You may now implement it."}],details:{approved:!0,planFile:lt}}):{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 fl(){return{consecutiveFailures:0,tripped:!1}}function mF(e,t){return t==="manual"?!1:e.consecutiveFailures>=3}function cF(e,t){if(t)return e;let n=e.consecutiveFailures+1;return{consecutiveFailures:n,tripped:e.tripped||n>=3}}function pF(){return fl()}function lF(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 Zv(){return e=>{e.on("session_start",async()=>{lr=fl()}),e.on("session_compact",async()=>{lr=pF()}),e.on("session_compact_failed",async(t,n)=>{let r=lr;lr=cF(lr,t.aborted),!r.tripped&&lr.tripped&&n?.ui&&n.ui.notify(lF(lr),"warning")}),e.on("session_before_compact",async t=>{if(mF(lr,t.reason))return{cancel:!0}})}}var lr,Qv=u(()=>{lr=fl()});function Yu(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(`
33
- `):e==null?"":String(e)}function Xu(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 gl=u(()=>{});function dF(e){pn(Oo(e))}function eE(e){return`budget exhausted (${e.budget??"default"} continuations)`}function tE(){return e=>{e.on("session_start",async(t,n)=>{dF(n)}),e.on("context_with_system",async(t,n)=>{let r=Oo(n);if(pn(r),!r||r.status!=="active")return;let o=t.messages[0];if(!o||o.role!=="system")return;let s=`${Yu(o.content)}
34
-
35
- ${Mv(r)}`;return{messages:t.messages.map(c=>c===o?{...o,content:Xu(o.content,s)}:c)}}),e.on("agent_before_settle",async(t,n)=>{let r=Oo(n);if(pn(r),Bu(r).action==="stop"||!r||t.continue||!t.context.canContinue)return;let o={...r,used:r.used+1};if(e.appendEntry(pr,o),pn(o),Bu(o).action==="stop"){let s={...o,status:"done",note:eE(o)};e.appendEntry(pr,s),pn(s);return}return{entries:[{type:"custom_message",customType:Pv,content:Ov(o),display:!0}],continue:!0}}),e.on("agent_settled",async(t,n)=>{let r=Oo(n),o=Bu(r);if(r&&o.action==="stop"&&o.close){let s={...r,status:"done",note:eE(r)};e.appendEntry(pr,s),pn(s)}else pn(r)})}}var nE=u(()=>{gl();zu()});function Zu(){return e=>{e.on("context_with_system",async t=>{let n=Ev();if(!n)return;let r=t.messages[0];if(!r||r.role!=="system")return;let o=`${Yu(r.content)}
36
-
37
- ${n}`;return{messages:t.messages.map(i=>i===r?{...r,content:Xu(r.content,o)}:i)}})}}var hl=u(()=>{gl();Uu()});function gF(e){if(fF.test(e))return!0;let t=/^172\.(\d+)\./.exec(e);if(!t)return!1;let n=Number(t[1]);return n>=16&&n<=31}function bl(e){let t;try{t=new URL(e)}catch{return{ok:!1,reason:"not a URL"}}if(t.protocol!=="http:"&&t.protocol!=="https:")return{ok:!1,reason:`refused protocol ${t.protocol}`};let n=t.hostname.toLowerCase();return n==="localhost"||n.endsWith(".localhost")||n==="::1"||n==="[::1]"?{ok:!1,reason:"refused loopback host"}:gF(n)||n==="0.0.0.0"?{ok:!1,reason:"refused private address"}:{ok:!0,url:t}}function rE(e){let t=e.replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<noscript[\s\S]*?<\/noscript>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim();return t.length>xl?t.slice(0,xl):t}function hF(e){let t=[],n=/class="result__a"[^>]*href="([^"]+)"[^>]*>([\s\S]*?)<\/a>/gi,r;for(;(r=n.exec(e))&&t.length<yl;){let o=r[1]??"",s=rE(r[2]??""),i=o,c=/[?&]uddg=([^&]+)/.exec(o);if(c)try{i=decodeURIComponent(c[1])}catch{i=o}else o.startsWith("//")&&(i=`https:${o}`);let p=bl(i);!p.ok||!s||t.push({title:s,url:p.url.toString(),snippet:""})}return t}async function sE(e,t={}){let n=e.trim();if(!n)return{ok:!1,error:"empty query"};let r=t.fetchFn??fetch,o=t.timeoutMs??15e3,s={"user-agent":t.userAgent??oE,accept:"text/html, application/json"};try{if(t.braveKey){let f=`https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(n)}&count=${yl}`,I=await r(f,{headers:{...s,accept:"application/json","x-subscription-token":t.braveKey},signal:AbortSignal.timeout(o)});return I.ok?{ok:!0,hits:xF(await I.json()),provider:"brave"}:{ok:!1,error:`brave ${I.status}`}}let i=`https://html.duckduckgo.com/html/?q=${encodeURIComponent(n)}`,c=await r(i,{headers:s,signal:AbortSignal.timeout(o)});return c.ok?{ok:!0,hits:hF(await c.text()),provider:"ddg"}:{ok:!1,error:`search ${c.status}`}}catch(i){return{ok:!1,error:i instanceof Error?i.message:String(i)}}}function xF(e){let t=[];if(e&&typeof e=="object"&&"web"in e){let r=e.web;r&&typeof r=="object"&&"results"in r&&Array.isArray(r.results)&&(t=r.results)}let n=[];for(let r of t){if(!r||typeof r!="object"||!("url"in r)||!("title"in r))continue;let o=r.url,s=r.title;if(typeof o!="string"||typeof s!="string")continue;let i=bl(o);if(!i.ok)continue;let c="description"in r?r.description:void 0;if(n.push({title:s,url:i.url.toString(),snippet:typeof c=="string"?c:""}),n.length>=yl)break}return n}async function iE(e,t={}){let n=bl(e);if(!n.ok)return{ok:!1,error:n.reason};let r=t.fetchFn??fetch;try{let o=await r(n.url,{headers:{"user-agent":t.userAgent??oE,accept:"text/html, text/plain, application/json"},signal:AbortSignal.timeout(t.timeoutMs??2e4),redirect:"follow"});if(!o.ok)return{ok:!1,error:`HTTP ${o.status}`};let s=o.headers.get("content-type")??"",i=await o.text(),c=/html/i.test(s)?rE(i):i.slice(0,xl);return{ok:!0,url:o.url||n.url.toString(),contentType:s,text:c}}catch(o){return{ok:!1,error:o instanceof Error?o.message:String(o)}}}var fF,xl,yl,oE,aE=u(()=>{fF=/^(127\.|10\.|192\.168\.|169\.254\.|0\.|221\.|222\.|223\.)/;xl=8e4,yl=8;oE="HowToFix (https://howtofix.id)"});import{Type as Qu}from"@earendil-works/pi-ai";import{defineTool as uE}from"@earendil-works/pi-coding-agent";function yF(e){return e.length===0?"no results":e.map((t,n)=>`${n+1}. ${t.title}
19
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]),fw=(e,t=[])=>a(a(dw(e),([n,r])=>a(ap(r),([o,s])=>[[n,o],s])),([n,r])=>fw(r,[...t,n]),()=>[t,e]),j0=e=>a(a(a(ap(e),([t,n])=>a(fw(n),([r,o])=>a(a(dw(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ob(t),n]),ap=e=>a(a(F0(e),([t,n])=>a(a(M0(n),([r,o])=>[r,o],()=>a(O0(n),([r,o])=>[r,o],()=>a(C0(n),([r,o])=>[r,o],()=>a(L0(n),([r,o])=>[r,o],()=>[])))),([r,o])=>a(Nb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[sb(t),n]),D0=e=>a(a(ap(e),([t,n])=>a(j0(n),([r,o])=>[[t,r],o])),([t,n])=>[ib(t),n]),gw=e=>a(a(D0(e),([t,n])=>[t,n],()=>a(BO(e),([t,n])=>[t,n],()=>a(me(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n])});function hw(e){let t=rp(`\`${e}\``);return m.IsEqual(t.length,2)?t[0]:qe()}var up=u(()=>{kn();O();zi()});function N0(e){return e.join("|")}function q0(e){return e.slice(1,e.length-1)}function U0(e,t,n){return ur(t,`${n}${e}`)}function K0(e,t){return ur(e,`${t}${lh}`)}function G0(e,t){return ur(e,`${t}${Ki}`)}function W0(e,t){return ur(e,`${t}${Wi}`)}function B0(e,t){return Ps(X([se("false"),se("true")]),e,t)}function z0(e,t){return ur(e,`${t}${Bi}`)}function H0(e,t,n){return ur(t,`${n}${q0(e)}`)}function V0(e,t,n){let r=As(e,{});return Ps(r,t,n)}function J0(e,t,n){let r=bt(e);return Ps(r,t,n)}function xw(e,t,n,r=[]){return m.ShiftLeft(e,(o,s)=>xw(s,t,n,[...r,Ps(o,[],"")]),()=>ur(t,`${n}(${N0(r)})`))}function Ps(e,t,n){return ot(e)?J0(e.enum,t,n):ht(e)?G0(t,n):le(e)?U0(e.const,t,n):vn(e)?K0(t,n):Jt(e)?B0(t,n):Fe(e)?W0(t,n):yt(e)?z0(t,n):Ae(e)?H0(e.pattern,t,n):bw(e)?V0(e.parameters[0],t,n):F(e)?xw(e.anyOf,t,n):tg}function ur(e,t){return m.ShiftLeft(e,(n,r)=>Ps(n,r,t),()=>t)}function Y0(e){return`^${ur(e,"")}$`}function yw(e){let t=Y0(e);return Ji(t)}var mp=u(()=>{O();mn();Le();Q();vt();Pr();Xt();xt();En();Qn();Je();Yi();Y();Ka()});function As(e,t){return V(e)?d.Update(yw(e),{},t):la(e,t)}function ww(e,t,n,r){let o=Ut(e,t,n);return As(o,r)}var Ka=u(()=>{S();vt();mp();q()});function la(e,t={}){return j("TemplateLiteral",[e],t)}function bw(e){return _e(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"TemplateLiteral")}function $w(e){return As(e,{})}function X0(e){let t=hw(e);return $w(t)}function Iw(e,t={}){let n=m.IsString(e)?X0(e):$w(e);return d.Update(n,{},t)}function Ae(e){return L(e,"TemplateLiteral")}var vt=u(()=>{ss();O();J();ce();up();Ka()});var B={};Mt(B,{ExtendsFalse:()=>H,ExtendsTrue:()=>M,ExtendsUnion:()=>cp,IsExtendsFalse:()=>Z0,IsExtendsTrue:()=>Tw,IsExtendsTrueLike:()=>$o,IsExtendsUnion:()=>kw,Match:()=>Ie});function cp(e){return d.Create({"~kind":"ExtendsUnion"},{inferred:e})}function kw(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.HasPropertyKey(e,"inferred")&&m.IsEqual(e["~kind"],"ExtendsUnion")&&m.IsObject(e.inferred)}function M(e){return d.Create({"~kind":"ExtendsTrue"},{inferred:e})}function Tw(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.HasPropertyKey(e,"inferred")&&m.IsEqual(e["~kind"],"ExtendsTrue")&&m.IsObject(e.inferred)}function H(){return d.Create({"~kind":"ExtendsFalse"},{})}function Z0(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.IsEqual(e["~kind"],"ExtendsFalse")}function $o(e){return kw(e)||Tw(e)}function Ie(e,t,n){return $o(e)?t(e.inferred):n()}var we=u(()=>{O();S()});function Q0(e,t,n,r){return Ie(ae(e,n,r),o=>M(d.Assign(d.Assign(e,o),{[t]:n})),()=>H())}function eC(e,t){return M(e)}function tC(e,t,n,r,o){return Ie(ae(e,t,n),s=>Ie(ae(s,t,r),i=>M(i),()=>H()),()=>Ie(ae(e,t,o),s=>M(s),()=>H()))}function nC(e,t,n){let r=bt(n);return ae(e,t,r)}function vw(e,t,n){return m.ShiftLeft(n,(r,o)=>Ie(ae(e,t,r),s=>vw(s,t,o),()=>H()),()=>M(e))}function rC(e,t,n){let r=mt(n);return ae(e,t,r)}function Ew(e,t,n){return m.ShiftLeft(n,(r,o)=>Ie(ae(e,t,r),s=>M(s),()=>Ew(e,t,o)),()=>H())}function de(e,t,n){return Ee(n)?eC(e,t):Pe(n)?tC(e,t,n.if,n.then,n.else):ot(n)?nC(e,t,n.enum):Ce(n)?Q0(e,n.name,t,n.extends):oe(n)?vw(e,t,n.allOf):Ae(n)?rC(e,t,n.pattern):F(n)?Ew(e,t,n.anyOf):Oe(n)?M(e):H()}var pt=u(()=>{O();S();It();Ot();mn();Vt();Ne();vt();Q();nt();Pt();we();Y();Y()});function Sw(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?M(e):Oe(n)?M(e):cp(e)}var Pw=u(()=>{Vt();It();nt();pt();we()});function oC(e,t){let n=vr(e),r=vr(t);return n&&r||!n&&r?!0:!(n&&!r)}function Aw(e,t,n,r){return ke(r)?oC(t,r)?ae(e,n,r.items):H():de(e,t,r)}var Rw=u(()=>{gt();us();pt();Pt();we()});function Mw(e,t,n){return vn(n)?M(e):de(e,t,n)}var Ow=u(()=>{Pr();pt();we()});function Cw(e,t,n){return Jt(n)?M(e):de(e,t,n)}var Lw=u(()=>{Qn();pt();we()});function sC(e,t,n,r,o){let s=Ce(r)?t:r,i=Ce(r)?r:t,c=ut(t),p=ut(r);return!c&&p?H():Ie(ae(e,s,i),f=>Rs(f,n,o),()=>H())}function iC(e,t,n,r){return m.ShiftLeft(r,(o,s)=>sC(e,t,n,o,s),()=>ut(t)?M(e):H())}function aC(e,t,n){return m.ShiftLeft(t,(r,o)=>iC(e,r,o,n),()=>M(e))}function Rs(e,t,n){return aC(e,t,n)}var pp=u(()=>{O();Vt();Zn();Pt();we()});function Ga(e,t,n){return Pn(n)?M(e):ae(e,t,n)}var lp=u(()=>{Cr();Pt();we()});function Fw(e,t,n,r){return Ee(r)?M(e):Oe(r)?M(e):Ge(r)?Ie(Rs(e,t,r.parameters),o=>Ga(o,n,r.instanceType),()=>H()):H()}var jw=u(()=>{It();Bt();nt();we();pp();lp()});function Dw(e,t,n,r,o){return Ie(ae(e,t,o),()=>ae(e,n,o),()=>ae(e,r,o))}var _w=u(()=>{Pt();we()});function Nw(e,t,n){let r=bt(t);return ae(e,r,n)}var qw=u(()=>{Pt();Y()});function Uw(e,t,n,r){return Ee(r)?M(e):Oe(r)?M(e):We(r)?Ie(Rs(e,t,r.parameters),o=>Ga(o,n,r.returnType),()=>H()):H()}var Kw=u(()=>{It();zt();nt();we();pp();lp()});function Gw(e,t,n){return ht(n)?M(e):Fe(n)?M(e):de(e,t,n)}var Ww=u(()=>{En();xt();pt();we()});function Bw(e,t,n){let r=Te(t);return ae(e,r,n)}var zw=u(()=>{Pt();Ms()});function Wa(e,t,n){return t===n?M(e):H()}function uC(e,t,n){return le(n)?Wa(e,t,n.const):vn(n)?M(e):de(e,se(t),n)}function mC(e,t,n){return le(n)?Wa(e,t,n.const):Jt(n)?M(e):de(e,se(t),n)}function cC(e,t,n){return le(n)?Wa(e,t,n.const):Fe(n)?M(e):de(e,se(t),n)}function pC(e,t,n){return le(n)?Wa(e,t,n.const):yt(n)?M(e):de(e,se(t),n)}function Hw(e,t,n){return m.IsBigInt(t.const)?uC(e,t.const,n):m.IsBoolean(t.const)?mC(e,t.const,n):m.IsNumber(t.const)?cC(e,t.const,n):m.IsString(t.const)?pC(e,t.const,n):qe()}var Vw=u(()=>{O();yc();Le();Pr();Qn();xt();Xt();pt();we()});function Jw(e,t,n){return Ce(n)?de(e,t,n):M(e)}var Yw=u(()=>{Vt();pt();we()});function Xw(e,t,n){return so(n)?M(e):de(e,t,n)}var Zw=u(()=>{io();pt();we()});function Qw(e,t,n){return Fe(n)?M(e):de(e,t,n)}var e$=u(()=>{xt();pt();we()});function lC(e,t,n){return ut(t)?ut(n)?M(e):H():M(e)}function dC(e,t,n){return Ce(n)&&un(n.extends)?H():Ie(ae(e,t,n),r=>lC(r,t,n),()=>H())}function fC(e,t){return e.reduce((n,r)=>r in t?$o(t[r])?{...n,...t[r].inferred}:qe():qe(),{})}function gC(e,t,n){let r={};for(let i of m.Keys(n))r[i]=i in t?dC({},t[i],n[i]):ut(n[i])?Ce(n[i])?M(d.Assign(e,{[n[i].name]:n[i].extends})):M(e):H();let o=m.Values(r).every(i=>$o(i)),s=o?fC(m.Keys(r),r):{};return o?M(s):H()}function hC(e,t,n){let r=gC(e,t,n);return $o(r)?M(d.Assign(e,r.inferred)):H()}function xC(e,t,n){return hC(e,t,n)}function yC(e,t){return m.Keys(t).reduce((n,r)=>({...n,[r]:m.HasPropertyKey(e,r)?F(n[r])?X([...n[r].anyOf,t[r]]):X([e[r],t[r]]):t[r]}),e)}function t$(e,t,n,r){return m.ShiftLeft(t,(o,s)=>Ie(ae({},e[o],n),i=>t$(e,s,n,yC(r,i)),()=>H()),()=>M(r))}function bC(e,t,n,r){let o=m.Keys(t);return t$(t,o,r,e)}function n$(e,t,n){return it(n)?bC(e,t,Qt(n),wt(n)):pe(n)?xC(e,t,n.properties):de(e,W(t),n)}var r$=u(()=>{kn();S();O();Zn();Vt();Je();fe();Xe();Q();Pt();pt();we()});function wC(e,t){return m.IsEqual(m.Keys(t).length,0)?M(e):H()}function $C(e,t,n,r,o){return ae(e,n,o)}function o$(e,t,n,r){return it(r)?$C(e,ia(t),n,ia(Qt(r)),wt(r)):pe(r)?wC(e,r.properties):Ee(r)?M(e):Oe(r)?M(e):H()}var s$=u(()=>{O();It();nt();fe();Xe();Pt();we()});function i$(e,t,n){return yt(n)?M(e):de(e,t,n)}var a$=u(()=>{Xt();pt();we()});function u$(e,t,n){return er(n)?M(e):de(e,t,n)}var m$=u(()=>{Rr();pt();we()});function c$(e,t,n){let r=mt(t);return ae(e,r,n)}var p$=u(()=>{Pt();Y()});function dp(e,t){return d.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function Os(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.HasPropertyKey(e,"name")&&m.HasPropertyKey(e,"type")&&m.IsEqual(e["~kind"],"Inferrable")&&m.IsString(e.name)&&m.IsObject(e.type)}function fp(e){return sr(e)?Ce(e.items)?ke(e.items.extends)?dp(e.items.name,e.items.extends.items):Oe(e.items.extends)?dp(e.items.name,e.items.extends):void 0:qe():void 0}function Ba(e){return Ce(e)?dp(e.name,e.extends):void 0}function gp(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Ie(ae({},r,t),()=>gp(o,t,[...n,r]),()=>{}),()=>n)}function l$(e,t,n,r){let o=gp(n,r);return m.IsArray(o)?M(d.Assign(e,{[t]:je(o)})):H()}function za(e,t,n,r){let o=gp(n,r);return m.IsArray(o)?M(d.Assign(e,{[t]:X(o)})):H()}var hp=u(()=>{kn();S();O();gt();nt();Ue();Pt();Q();Vt();po();we()});function IC(e){return[...e].reverse()}function xp(e,t){return t?IC(e):e}function kC(e){let t=e.length>0?e[0]:void 0,n=_e(t)?fp(t):void 0;return _e(n)}function TC(e,t,n,r,o,s){return Ie(ae(e,n,o),i=>d$(i,t,r,s),()=>H())}function vC(e,t,n,r,o){let s=fp(r);return Os(s)?l$(e,s.name,xp(n,t),s.type):m.ShiftLeft(n,(i,c)=>TC(e,t,i,c,r,o),()=>H())}function EC(e,t,n,r){return m.ShiftLeft(r,(o,s)=>vC(e,t,n,o,s),()=>m.IsEqual(n.length,0)?M(e):H())}function d$(e,t,n,r){return EC(e,t,n,r)}function SC(e,t,n){let r=mr(e,$e([],[]),n),o=kC(r);return d$(e,o,xp(t,o),xp(r,o))}function f$(e,t,n){let r=Ba(n);return Os(r)?za(e,r.name,t,r.type):m.ShiftLeft(t,(o,s)=>Ie(ae(e,o,n),i=>f$(i,s,n),()=>H()),()=>M(e))}function g$(e,t,n){let r=mr(e,$e([],[]),t);return be(n)?SC(e,r,n.items):ke(n)?f$(e,r,n.items):de(e,je(r),n)}var h$=u(()=>{O();J();gt();Ue();Pt();pt();we();q();q();hp()});function x$(e,t,n){return Pn(n)?M(e):fo(n)?M(e):de(e,t,n)}var y$=u(()=>{go();Cr();pt();we()});function b$(e,t,n){return m.ShiftLeft(n,(r,o)=>Ie(ae(e,t,r),s=>M(s),()=>b$(e,t,o)),()=>H())}function yp(e,t,n){return m.ShiftLeft(t,(r,o)=>Ie(b$(e,r,n),s=>yp(s,o,n),()=>H()),()=>M(e))}function w$(e,t,n){let r=Ba(n);return Os(r)?za(e,r.name,t,r.type):F(n)?yp(e,t,n.anyOf):yp(e,t,[n])}var $$=u(()=>{O();Q();Pt();we();hp()});function I$(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?M(e):Oe(n)?M(e):H()}var k$=u(()=>{It();nt();Vt();pt();we()});function T$(e,t,n){return Pn(n)?M(e):de(e,t,n)}var v$=u(()=>{Cr();pt();we()});function ae(e,t,n){return Ee(t)?Sw(e,t,n):ke(t)?Aw(e,t,t.items,n):vn(t)?Mw(e,t,n):Jt(t)?Cw(e,t,n):Ge(t)?Fw(e,t.parameters,t.instanceType,n):Pe(t)?Dw(e,t.if,t.then,t.else,n):ot(t)?Nw(e,t.enum,n):We(t)?Uw(e,t.parameters,t.returnType,n):ht(t)?Gw(e,t,n):oe(t)?Bw(e,t.allOf,n):le(t)?Hw(e,t,n):un(t)?Jw(e,t,n):so(t)?Xw(e,t,n):Fe(t)?Qw(e,t,n):pe(t)?n$(e,t.properties,n):it(t)?o$(e,Qt(t),wt(t),n):yt(t)?i$(e,t,n):er(t)?u$(e,t,n):Ae(t)?c$(e,t.pattern,n):be(t)?g$(e,t.items,n):fo(t)?x$(e,t,n):F(t)?w$(e,t.anyOf,n):Oe(t)?I$(e,t,n):Pn(t)?T$(e,t,n):H()}var Pt=u(()=>{Pw();Rw();Ow();Lw();jw();_w();qw();Kw();Ww();zw();Vw();Yw();Zw();e$();r$();s$();a$();m$();p$();h$();y$();$$();k$();v$();It();gt();Pr();Qn();Bt();Ot();mn();zt();En();Ne();Le();Je();io();xt();fe();Xe();Xt();Rr();vt();Ue();go();nt();Q();Cr();we()});function PC(e,t){return Te([...e,W(t)])}function bp(e,t,n){return V(e)?d.Update(PC(e,t),{},n):ks(e,t,n)}function E$(e,t,n,r,o){let s=Ut(e,t,n),i=Cs(e,t,r);return bp(s,i,o)}var Ha=u(()=>{S();fe();Y();xo();q();q();q()});function ks(e,t,n={}){return j("Interface",[e,t],n)}function Io(e){return _e(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"Interface")}function S$(e,t,n={}){return bp(e,t,n)}var Ls=u(()=>{O();J();ce();Ha()});function AC(e,t,n){return e.includes(n)?!0:Fs([...e,n],t,t[n])}function P$(e,t,n){let r=Fi(n);return Fr(e,t,r)}function Fr(e,t,n){return m.ShiftLeft(n,(r,o)=>Fs(e,t,r)?!0:Fr(e,t,o),()=>!1)}function Fs(e,t,n){return Be(n)?AC(e,t,n.$ref):ke(n)?Fs(e,t,n.items):Ge(n)?Fr(e,t,[...n.parameters,n.instanceType]):We(n)?Fr(e,t,[...n.parameters,n.returnType]):Io(n)?P$(e,t,n.parameters[1]):oe(n)?Fr(e,t,n.allOf):pe(n)?P$(e,t,n.properties):F(n)?Fr(e,t,n.anyOf):be(n)?Fr(e,t,n.items):it(n)?Fs(e,t,wt(n)):!1}function A$(e,t,n){return Fs(e,t,n)}var wp=u(()=>{O();gt();Bt();zt();Ne();fe();kr();Xe();Ue();Q();Ht();Ls()});function RC(e,t){return t.reduce((n,r)=>A$([r],e,e[r])?[...n,r]:n,[])}function R$(e){let t=Li(e);return RC(e,t)}var $p=u(()=>{kr();wp()});function MC(e,t,n){return n.includes(t)?n:t in e?js(e,e[t],[...n,t]):qe()}function M$(e,t,n){let r=Fi(t);return ko(e,r,n)}function ko(e,t,n){return t.reduce((r,o)=>js(e,o,r),n)}function js(e,t,n){return Be(t)?MC(e,t.$ref,n):ke(t)?js(e,t.items,n):Ge(t)?ko(e,[...t.parameters,t.instanceType],n):We(t)?ko(e,[...t.parameters,t.returnType],n):Io(t)?M$(e,t.parameters[1],n):oe(t)?ko(e,t.allOf,n):pe(t)?M$(e,t.properties,n):F(t)?ko(e,t.anyOf,n):be(t)?ko(e,t.items,n):it(t)?js(e,wt(t),n):n}function O$(e,t,n){return js(e,n,[t])}var Ip=u(()=>{kn();gt();Bt();zt();Ne();fe();kr();Xe();Ue();Q();Ht();Ls()});function OC(e){return to()}function CC(e){return m.Keys(e).reduce((t,n)=>({...t,[n]:jr(e[n])}),{})}function Ds(e){return e.reduce((t,n)=>[...t,jr(n)],[])}function jr(e){return Be(e)?OC(e.$ref):ke(e)?qt(jr(e.items),Ci(e)):Ge(e)?yn(Ds(e.parameters),jr(e.instanceType)):We(e)?bn(Ds(e.parameters),jr(e.returnType)):oe(e)?Tt(Ds(e.allOf)):pe(e)?W(CC(e.properties)):it(e)?sa(co(e),jr(wt(e))):F(e)?X(Ds(e.anyOf)):be(e)?je(Ds(e.items)):e}function LC(e,t){return t in e?jr(e[t]):Ye()}function C$(e){return LC(e.$defs,e.$ref)}var L$=u(()=>{O();It();gt();Bt();zt();Ne();fe();Xe();Ht();Ue();Q();nt()});function FC(e,t,n){let r=Ut(e,$e([],[]),t),o=Cs({},$e([],[]),n);return Te([...r,W(o)])}function jC(e,t){return m.Keys(e).filter(r=>t.includes(r)).reduce((r,o)=>{let s=e[o],i=Io(s)?FC(e,s.parameters[0],s.parameters[1]):s;return{...r,[o]:i}},{})}function F$(e,t,n){let r=O$(e,t,n),o=jC(e,r);return $n(o,t)}var kp=u(()=>{O();kt();fe();Ip();xo();q();q();q();Y()});function j$(e,t){return t in e?Be(e[t])?j$(e,e[t].$ref):e[t]:ge()}function Mn(e,t){return j$(e,t)}var Dr=u(()=>{Je();Ht()});var Tp=u(()=>{$p();wp();Ip();L$();kp();Dr()});function D$(e){return rt(e)?C$(e):ji(e)?Ye():e}function st(e,t,n){let r=D$(t),o=D$(n);return ae(e,r,o)}var _$=u(()=>{kt();nt();Di();Pt();Tp()});var Sn=u(()=>{_$();we()});function ys(e,t){let n=[st({},e,t),st({},t,e)];return B.IsExtendsTrueLike(n[0])&&B.IsExtendsTrueLike(n[1])?hs:B.IsExtendsTrueLike(n[0])&&B.IsExtendsFalse(n[1])?xs:B.IsExtendsFalse(n[0])&&B.IsExtendsTrueLike(n[1])?ea:Va}var hs,Va,xs,ea,bs=u(()=>{Sn();hs=0,Va=1,xs=2,ea=3});function vp(e,t,n=[],r=t){return m.ShiftLeft(t,(o,s)=>{let i=ys(e,o);return m.IsEqual(i,xs)||m.IsEqual(i,hs)?r:m.IsEqual(i,Va)?vp(e,s,[...n,o],r):vp(e,s,n,r)},()=>[...n,e])}function DC(e,t,n){let r=Zt(e);return Ee(r)?[r]:Oe(r)?[r]:un(r)?Ja(t,n):pe(r)?Ja(t,[...n,r]):Ja(t,vp(r,n))}function Ja(e,t=[]){return m.ShiftLeft(e,(n,r)=>DC(n,r,t),()=>t)}function qc(e){let t=Ja(e);return mo(t)}var Uc=u(()=>{O();It();Je();fe();nt();bs();na();Y()});function Ep(e,t){return d.Update(Zt(e),{},t)}function N$(e,t,n,r){let o=T(e,t,n);return Ep(o,r)}var Ya=u(()=>{S();q();Y()});var Ms=u(()=>{Uc();bs();jc();_c();Y();na();Ya();Dc()});function _s(e,t=[]){return Yn(e)&&m.IsEqual(e.action,"Conditional")?Be(e.parameters[0])?_s(e.parameters[2],_s(e.parameters[3],[...t,e.parameters[0].$ref])):_s(e.parameters[2],_s(e.parameters[3],t)):Yn(e)&&m.IsEqual(e.action,"Mapped")&&Yn(e.parameters[1])&&m.IsEqual(e.parameters[1].action,"KeyOf")&&Be(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function _C(e,t){return e.reduce((n,r)=>[...n,t.includes(r.name)],[])}function K$(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>m.ShiftLeft(t,(s,i)=>K$(o,i,[...n,[s,r]]),()=>n),()=>n)}function NC(e){return Ae(e)?mt(e.pattern):ot(e)?bt(e.enum):e}function qC(e){let t=NC(e);return F(t)?[...t.anyOf]:[t]}function UC(e,t){return e.reduce((n,r)=>[...n,[...r,t]],[])}function q$(e,t){return t.reduce((n,r)=>[...n,...UC(e,r)],[])}function U$(e){return e.reduce((t,n)=>m.IsEqual(n[0],!0)?q$(t,qC(n[1])):q$(t,[n[1]]),[[]])}function G$(e,t,n){let r=_s(n),o=_C(e,r),s=K$(t,o);return Yn(n)&&m.IsEqual(n.action,"Conditional")||Yn(n)&&m.IsEqual(n.action,"Mapped")?U$(s):[t]}var W$=u(()=>{O();Q();ce();mn();vt();Ht();Y();Y()});function KC(){return["(not-resolvable)",ge()]}function GC(){return["(not-generic)",ge()]}function WC(e,t,n){return[e,Xn(t,n)]}function BC(e,t,n){return t in e?B$(e,t,e[t],n):KC()}function B$(e,t,n,r){return eo(n)?WC(t,n.parameters,n.expression):Be(n)?BC(e,n.$ref,r):GC()}function z$(e,t,n){return B$(e,"(anonymous)",t,n)}var H$=u(()=>{ns();Ht();Je()});function zC(e,t,n){if(Ce(t)||To(t)||B.IsExtendsTrueLike(st({},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 V$(e,t,n,r,o){let s=T(e,t,o);return zC(n,s,r),d.Assign(e,{[n]:s})}function HC(e,t,n,r,o){let s=T(e,t,n.extends),i=T(e,t,n.equals);return m.ShiftLeft(o,(c,p)=>Sp(V$(e,t,n.name,s,c),t,r,p),()=>Sp(V$(e,t,n.name,s,i),t,r,[]))}function Sp(e,t,n,r){return m.ShiftLeft(n,(o,s)=>HC(e,t,o,s,r),()=>e)}function J$(e,t,n,r){return Sp(e,t,n,r)}var Y$=u(()=>{O();S();q();Sn();Vt();ho()});function VC(){if(!m.IsLessThan(Ap,an.Get().maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite")}function JC(){VC(),Ap++,Pp++}function YC(){Pp--,m.IsEqual(Pp,0)&&(Ap=0)}function XC(e){return m.IsGreaterThan(e.callstack.length,0)?e.callstack[e.callstack.length-1]:""}function ZC(e,t){return m.IsEqual(XC(e),t)}function QC(e,t,n,r,o,s){JC();try{let i=J$(e,t,r,s),c=T(i,$e([...t.callstack,n.$ref],t.visited),o);return T(i,$e([],[]),c)}finally{YC()}}function eL(e,t,n,r,o,s){return s.reduce((i,c)=>{let p=QC(e,t,n,r,o,c);return[...i,p]},[])}function tL(e,t,n,r,o,s){let i=G$(r,s,o),c=eL(e,t,n,r,o,i);return m.IsEqual(c.length,1)?c[0]:St(c)}function Xa(e,t,n,r){let o=Ut(e,t,r),s=z$(e,n,r),i=s[0],c=s[1];return eo(c)?ZC(t,i)?Ts(qn(i),o):tL(e,t,qn(i),c.parameters,c.expression,o):Ts(n,o)}var Pp,Ap,Rp=u(()=>{wr();O();ho();Ht();ns();Ms();q();q();q();W$();H$();Y$();Pp=0,Ap=0});function Ts(e,t){return d.Create({"~kind":"Call"},{type:"call",target:e,arguments:t},{})}function X$(e,t){return Xa({},$e([],[]),e,t)}function To(e){return L(e,"Call")}var ho=u(()=>{S();J();Rp();q()});function nL(e){return d.Discard(e,["~immutable"])}function Z$(e,t){return d.Update(nL(e),{},t)}function Q$(e,t,n,r){let o=T(e,t,n);return Z$(o,r)}var Mp=u(()=>{S();q()});function eI(e,t){return e(t)}var tI=u(()=>{});function nI(e,t){return m.IsString(t)?se(eI(e,t)):se(t)}var rI=u(()=>{O();Le();tI()});function oI(e,t){let n=mt(t);return Gn(e,n)}var sI=u(()=>{Za();Ms()});function iI(e,t){let n=t.map(r=>Gn(e,r));return X(n)}var aI=u(()=>{Q();Za()});function Gn(e,t){return le(t)?nI(e,t.const):Ae(t)?oI(e,t.pattern):F(t)?iI(e,t.anyOf):t}var Za=u(()=>{Le();vt();Q();rI();sI();aI()});function da(e,t={}){return j("Capitalize",[e],t)}function uI(e,t={}){return Op(e,t)}var Qa=u(()=>{ce();On()});function fa(e,t={}){return j("Lowercase",[e],t)}function mI(e,t={}){return Cp(e,t)}var eu=u(()=>{ce();On()});function ga(e,t={}){return j("Uncapitalize",[e],t)}function cI(e,t={}){return Lp(e,t)}var tu=u(()=>{ce();On()});function ha(e,t={}){return j("Uppercase",[e],t)}function pI(e,t={}){return Fp(e,t)}var nu=u(()=>{ce();On()});function Op(e,t){return V([e])?d.Update(Gn(rL,e),{},t):da(e,t)}function Cp(e,t){return V([e])?d.Update(Gn(oL,e),{},t):fa(e,t)}function Lp(e,t){return V([e])?d.Update(Gn(sL,e),{},t):ga(e,t)}function Fp(e,t){return V([e])?d.Update(Gn(iL,e),{},t):ha(e,t)}function lI(e,t,n,r){let o=T(e,t,n);return Op(o,r)}function dI(e,t,n,r){let o=T(e,t,n);return Cp(o,r)}function fI(e,t,n,r){let o=T(e,t,n);return Lp(o,r)}function gI(e,t,n,r){let o=T(e,t,n);return Fp(o,r)}var rL,oL,sL,iL,On=u(()=>{S();Za();q();Qa();eu();tu();nu();rL=e=>e[0].toUpperCase()+e.slice(1),oL=e=>e.toLowerCase(),sL=e=>e[0].toLowerCase()+e.slice(1),iL=e=>e.toUpperCase()});function xa(e,t,n,r,o={}){return j("Conditional",[e,t,n,r],o)}function hI(e,t,n,r,o={}){return jp({},$e([],[]),e,t,n,r,o)}var ru=u(()=>{ce();Dp();q()});function aL(e,t,n,r,o,s){let i=st(e,n,r);return B.IsExtendsUnion(i)?X([T(i.inferred,t,o),T(e,t,s)]):B.IsExtendsTrue(i)?T(i.inferred,t,o):T(e,t,s)}function jp(e,t,n,r,o,s,i){return V([n,r])?d.Update(aL(e,t,n,r,o,s),{},i):xa(n,r,o,s,i)}function xI(e,t,n,r,o,s,i){let c=T(e,t,n),p=T(e,t,r);return jp(e,t,c,p,o,s,i)}var Dp=u(()=>{S();Q();Sn();q();ru()});var _p=u(()=>{Dp()});function ya(e,t={}){return j("ConstructorParameters",[e],t)}function yI(e,t={}){return Np(e,t)}var ou=u(()=>{ce();su()});function uL(e){let t=Ge(e)?e.parameters:[],n=mr({},$e([],[]),t);return je(n)}function Np(e,t){return V([e])?d.Update(uL(e),{},t):ya(e,t)}function bI(e,t,n,r){let o=T(e,t,n);return Np(o,r)}var su=u(()=>{S();Bt();Ue();ou();q();q();q()});function ba(e,t,n={}){return j("Exclude",[e,t],n)}function wI(e,t,n={}){return Ns(e,t,n)}var iu=u(()=>{ce();qs()});function Ns(e,t,n){return V([e,t])?d.Update(ta(e,t),{},n):ba(e,t,n)}function $I(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Ns(s,i,o)}var qs=u(()=>{S();q();iu();Nc()});function wa(e,t,n={}){return j("Extract",[e,t],n)}function II(e,t,n={}){return qp(e,t,n)}var au=u(()=>{ce();uu()});function mL(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[e]:[]}function kI(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>kI(o,t,[...n,...mL(r,t)]),()=>n)}function TI(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=kI(r,t);return St(o)}var vI=u(()=>{O();Q();Sn();Y();Y()});function qp(e,t,n){return V([e,t])?d.Update(TI(e,t),{},n):wa(e,t,n)}function EI(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return qp(s,i,o)}var uu=u(()=>{S();q();au();vI()});function cL(e){return e.reduce((t,n)=>Gi(n)?[...t,se(n)]:t,[])}function vo(e){let t=cL(e);return X(t)}var Us=u(()=>{Le();Q()});function vs(e,t,n={}){return j("Index",[e,t],n)}function SI(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Kp(e,r,n)}var Up=u(()=>{O();ce();Us();mu()});function PI(e,t){let n=Mn(e,t);return Kt(n)}var AI=u(()=>{_r();Dr()});function RI(e,t,n){let r=pn(e,t,n);return Kt(r)}var MI=u(()=>{_r();Y()});function pL(e,t){let n=m.Keys(e).filter(w=>!m.HasPropertyKey(t,w)),r=m.Keys(t).filter(w=>!m.HasPropertyKey(e,w)),o=m.Keys(e).filter(w=>m.HasPropertyKey(t,w)),s=n.reduce((w,$)=>({...w,[$]:e[$]}),{}),i=r.reduce((w,$)=>({...w,[$]:t[$]}),{}),c=o.reduce((w,$)=>({...w,[$]:Te([e[$],t[$]])}),{}),p=d.Assign(s,i);return d.Assign(p,c)}function OI(e){return e.reduce((t,n)=>pL(t,Kt(n)),{})}var CI=u(()=>{S();O();_r();Y()});var LI=u(()=>{});function FI(e){let t=jh(je(e));return Kt(t)}var jI=u(()=>{Ue();Lc();_r()});function lL(e,t){return m.Keys(e).filter(o=>o in t).reduce((o,s)=>({...o,[s]:St([e[s],t[s]])}),{})}function DI(e,t){return m.ShiftLeft(e,(n,r)=>DI(r,lL(t,Kt(n))),()=>t)}function _I(e){return m.ShiftLeft(e,(t,n)=>DI(n,Kt(t)),()=>qe())}var NI=u(()=>{O();kn();Y();_r()});function Kt(e){return rt(e)?PI(e.$defs,e.$ref):Pe(e)?RI(e.if,e.then,e.else):oe(e)?OI(e.allOf):F(e)?_I(e.anyOf):be(e)?FI(e.items):pe(e)?e.properties:{}}var _r=u(()=>{kt();Ot();Ne();fe();Ue();Q();AI();MI();CI();LI();jI();NI()});function Eo(e){let t=Kt(e);return W(t)}var qI=u(()=>{fe();_r()});var Ks=u(()=>{qI()});function So(e){let t=`${e}`;return dL.test(t)?parseInt(t):e}var dL,Gs=u(()=>{dL=new RegExp("^(?:0|[1-9][0-9]*)$")});function fL(e){return se(So(e))}function UI(e){return e.map(t=>KI(t))}function KI(e){return oe(e)?Tt(UI(e.allOf)):F(e)?X(UI(e.anyOf)):le(e)?fL(e.const):e}function GI(e,t){let n=KI(t),r=st({},n,Ct());return B.IsExtendsTrueLike(r)?e:le(t)&&m.IsEqual(t.const,"length")?Ct():ge()}var WI=u(()=>{O();Ne();Q();Le();xt();Je();Sn();Gs()});function BI(e,t){let n=Mn(e,t);return Ft(n)}var zI=u(()=>{cr();Dr()});function HI(e,t,n){let r=pn(e,t,n);return Ft(r)}var VI=u(()=>{cr();Y()});function JI(e){let t=bt(e);return Ft(t)}var YI=u(()=>{cr();Y()});function XI(e){let t=Te(e);return Ft(t)}var ZI=u(()=>{Y();cr()});function QI(e){return[`${e}`]}var ek=u(()=>{});function tk(e){let t=mt(e);return Ft(t)}var nk=u(()=>{cr();Y()});function rk(e){return e.reduce((t,n)=>[...t,...Ft(n)],[])}var ok=u(()=>{cr()});function Ft(e){return rt(e)?BI(e.$defs,e.$ref):Pe(e)?HI(e.if,e.then,e.else):ot(e)?JI(e.enum):oe(e)?XI(e.allOf):le(e)?QI(e.const):Ae(e)?tk(e.pattern):F(e)?rk(e.anyOf):[]}var cr=u(()=>{kt();Ot();mn();Ne();Le();vt();Q();zI();VI();YI();ZI();ek();nk();ok()});function Po(e){return Ft(e)}var cu=u(()=>{cr()});function Ws(e,t){return t.map(n=>Bs(e,n))}function Bs(e,t){return ke(t)?qt(Bs(e,t.items)):Ge(t)?yn(Ws(e,t.parameters),Bs(e,t.instanceType)):We(t)?bn(Ws(e,t.parameters),Bs(e,t.returnType)):be(t)?je(Ws(e,t.items)):F(t)?X(Ws(e,t.anyOf)):oe(t)?Tt(Ws(e,t.allOf)):ua(t)?W(e):t}function sk(e,t){return Bs(e,t)}var ik=u(()=>{gt();Bt();zt();Ne();fe();Ue();ma();Q()});function gL(e,t){let n=t in e?e[t]:ge();return sk(e,n)}function ak(e,t){return t.reduce((n,r)=>[...n,gL(e,r)],[])}function hL(e,t){let n=Po(t),r=ak(e,n);return St(r)}function yL(e){return e.filter(n=>xL.test(n))}function bL(e){let t=Li(e),n=yL(t),r=ak(e,n);return St(r)}function uk(e,t){return Fe(t)?bL(e):hL(e,t)}var xL,mk=u(()=>{xt();Je();kr();Y();cu();Xe();ik();xL=new RegExp(or)});function wL(e){return se(So(e))}function ck(e){return e.map(t=>Gp(t))}function Gp(e){return oe(e)?Tt(ck(e.allOf)):F(e)?X(ck(e.anyOf)):le(e)?wL(e.const):e}var pk=u(()=>{Q();Ne();Le();Gs()});function $L(e,t){return e.reduceRight((n,r,o)=>{let s=st({},se(o),t);return B.IsExtendsTrueLike(s)?[r,...n]:n},[])}function IL(e,t){let n=Gp(t),r=$L(e,n);return nr(r)}function kL(e){return nr(e)}function lk(e,t){return le(t)&&m.IsEqual(t.const,"length")?se(e.length):Fe(t)||ht(t)?kL(e):IL(e,t)}var dk=u(()=>{O();Le();xt();En();Y();Sn();pk()});function fk(e,t){return ke(e)?GI(e.items,t):pe(e)?uk(e.properties,t):be(e)?lk(e.items,t):ge()}var gk=u(()=>{gt();Je();fe();Ue();WI();mk();dk()});function TL(e){return rt(e)||Pe(e)||oe(e)||F(e)?Eo(e):e}function Kp(e,t,n){return V([e,t])?d.Update(fk(TL(e),t),{},n):vs(e,t,n)}function hk(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Kp(s,i,o)}var mu=u(()=>{S();kt();Ot();Ne();Q();q();Up();Ks();gk()});function $a(e,t={}){return j("InstanceType",[e],t)}function xk(e,t={}){return Wp(e,t)}var pu=u(()=>{ce();lu()});function vL(e){return Ge(e)?e.instanceType:ge()}function Wp(e,t){return V([e])?d.Update(vL(e),{},t):$a(e,t)}function yk(e,t,n,r={}){let o=T(e,t,n);return Wp(o,r)}var lu=u(()=>{S();Bt();Je();pu();q()});function Es(e,t={}){return j("KeyOf",[e],t)}function bk(e,t={}){return Bp(e,t)}var du=u(()=>{ce();fu()});function wk(){return X([Ct(),Yt(),ao()])}var $k=u(()=>{xt();Xt();Rr();Q()});function Ik(e){return Ct()}var kk=u(()=>{xt()});function EL(e){return e.reduce((n,r)=>Gi(r)?[...n,se(So(r))]:qe(),[])}function Tk(e){let t=m.Keys(e),n=EL(t);return nr(n)}var vk=u(()=>{kn();O();Le();Gs();Y()});function Ek(e){return co(e)}var Sk=u(()=>{Xe()});function Pk(e){let t=e.map((n,r)=>se(r));return nr(t)}var Ak=u(()=>{Le();Y()});function Rk(e){return Ee(e)?wk():ke(e)?Ik(e.items):pe(e)?Tk(e.properties):it(e)?Ek(e):be(e)?Pk(e.items):ge()}var Mk=u(()=>{It();gt();Je();fe();Xe();Ue();$k();kk();vk();Sk();Ak()});function SL(e){return rt(e)||Pe(e)||oe(e)||F(e)?Eo(e):e}function Bp(e,t){return V([e])?d.Update(Rk(SL(e)),{},t):Es(e,t)}function Ok(e,t,n,r){let o=T(e,t,n);return Bp(o,r)}var fu=u(()=>{S();kt();Ot();Ne();Q();du();q();Ks();Mk()});function Is(e,t,n,r,o={}){return j("Mapped",[e,t,n,r],o)}function Ck(e,t,n,r,o={}){return zp({},$e([],[]),e,t,n,r,o)}var gu=u(()=>{ce();hu();q()});function PL(e){let t=mt(e);return xu(t)}function AL(e){return e.reduce((t,n)=>[...t,...xu(n)],[])}function RL(e){let t=bt(e);return xu(t)}function ML(e){return m.IsNumber(e)?[se(`${e}`)]:[se(e)]}function xu(e){return ot(e)?RL(e.enum):le(e)?ML(e.const):Ae(e)?PL(e.pattern):F(e)?AL(e.anyOf):[e]}function Lk(e){return xu(e)}var Fk=u(()=>{O();Le();mn();vt();Q();Y();Y()});function OL(e){return Ae(e)?mt(e.pattern):e}function CL(e,t,n,r,o,s){let i=d.Assign(e,{[n.name]:r}),c=T(i,t,o),p=OL(c),f=T(i,t,s);return fh(p)||gh(p)?{[p.const]:f}:{}}function LL(e,t,n,r,o,s){return r.reduce((i,c)=>[...i,CL(e,t,n,c,o,s)],[])}function FL(e){return e.reduce((t,n)=>[...t,W(n)],[])}function jk(e,t,n,r,o,s){let i=Lk(r),c=LL(e,t,n,i,o,s),p=FL(c);return Te(p)}var Dk=u(()=>{S();Le();fe();vt();q();Y();Y();Fk()});function zp(e,t,n,r,o,s,i){return V([r])?d.Update(jk(e,t,n,r,o,s),{},i):Is(n,r,o,s,i)}function _k(e,t,n,r,o,s,i){let c=T(e,t,r);return zp(e,t,n,c,o,s,i)}var hu=u(()=>{S();gu();q();Dk()});function jL(e,t,n){let r=d.Assign(e,t);return m.Keys(t).filter(s=>n.includes(s)).reduce((s,i)=>({...s,[i]:F$(r,i,t[i])}),{})}function DL(e,t,n){let r=d.Assign(e,t);return m.Keys(t).filter(s=>!n.includes(s)).reduce((s,i)=>({...s,[i]:T(r,$e([],[]),t[i])}),{})}function _L(e,t,n){let r=R$(t),o=jL(e,t,r),s=DL(e,t,r),i={...o,...s};return d.Update(i,{},n)}function yu(e,t,n,r){return _L(e,n,r)}var bu=u(()=>{O();S();q();$p();kp();q()});function Ia(e,t={}){return j("NonNullable",[e],t)}function Nk(e,t={}){return Hp(e,t)}var wu=u(()=>{ce();$u()});function NL(e){let t=X([oo(),lo()]);return Ns(e,t,{})}function Hp(e,t){return V([e])?d.Update(NL(e),{},t):Ia(e,t)}function qk(e,t,n,r){let o=T(e,t,n);return Hp(o,r)}var $u=u(()=>{S();io();go();Q();qs();wu();q()});function ka(e,t,n={}){return j("Omit",[e,t],n)}function Uk(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Vp(e,r,n)}var Iu=u(()=>{O();ce();Us();ku()});function Tu(e){let t=Eo(e);return pe(t)?t.properties:qe()}var Jp=u(()=>{kn();fe();Ks()});function qL(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?r:{...r,[o]:e[o]},{})}function Kk(e,t){let n=Tu(e),r=Po(t),o=qL(n,r);return W(o)}var Gk=u(()=>{O();fe();cu();Jp()});function Vp(e,t,n){return V([e,t])?d.Update(Kk(e,t),{},n):ka(e,t,n)}function Wk(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Vp(s,i,o)}var ku=u(()=>{S();Iu();q();Gk()});function Ta(e,t={}){return j("Parameters",[e],t)}function Bk(e,t={}){return Yp(e,t)}var vu=u(()=>{ce();Eu()});function UL(e){let t=We(e)?e.parameters:[],n=mr({},$e([],[]),t);return je(n)}function Yp(e,t){return V([e])?d.Update(UL(e),{},t):Ta(e,t)}function zk(e,t,n,r){let o=T(e,t,n);return Yp(o,r)}var Eu=u(()=>{S();zt();Ue();vu();q();q();q()});function va(e,t={}){return j("Partial",[e],t)}function Hk(e,t={}){return Xp(e,t)}var Su=u(()=>{ce();Pu()});function Vk(e,t){let n=Mn(e,t),r=Cn(n);return $n(d.Assign(e,{[t]:r}),t)}var Jk=u(()=>{S();kt();Ao();Dr()});function Yk(e,t,n){let r=pn(e,t,n);return Cn(r)}var Xk=u(()=>{Ao();Y()});function Zk(e){let t=Te(e);return Cn(t)}var Qk=u(()=>{Ao();Y()});function eT(e){let t=e.map(n=>Cn(n));return X(t)}var tT=u(()=>{Q();Ao()});function nT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:Ir(e[o])}),{});return W(t)}var rT=u(()=>{O();fe();rs()});function Cn(e){return rt(e)?Vk(e.$defs,e.$ref):Pe(e)?Yk(e.if,e.then,e.else):oe(e)?Zk(e.allOf):F(e)?eT(e.anyOf):pe(e)?nT(e.properties):W({})}var Ao=u(()=>{kt();Ot();Ne();fe();Q();Jk();Xk();Qk();tT();rT()});function Xp(e,t){return V([e])?d.Update(Cn(e),{},t):va(e,t)}function oT(e,t,n,r){let o=T(e,t,n);return Xp(o,r)}var Pu=u(()=>{S();Su();Ao();q()});function Ea(e,t,n={}){return j("Pick",[e,t],n)}function sT(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Zp(e,r,n)}var Au=u(()=>{O();ce();Us();Ru()});function KL(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?d.Assign(r,{[o]:e[o]}):r,{})}function iT(e,t){let n=Tu(e),r=Po(t),o=KL(n,r);return W(o)}var aT=u(()=>{S();O();fe();cu();Jp()});function Zp(e,t,n){return V([e,t])?d.Update(iT(e,t),{},n):Ea(e,t,n)}function uT(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Zp(s,i,o)}var Ru=u(()=>{S();Au();q();aT()});function Sa(e,t={}){return j("ReadonlyObject",[e],t)}function Qp(e,t={}){return el(e,t)}var mT,Mu=u(()=>{ce();Ou();mT=Qp});function cT(e){return ro(qt(e))}var pT=u(()=>{gt();ms()});function lT(e,t){let n=Mn(e,t),r=Ln(n);return $n(d.Assign(e,{[t]:r}),t)}var dT=u(()=>{S();kt();Ro();Dr()});function fT(e,t,n){let r=pn(e,t,n);return Ln(r)}var gT=u(()=>{Ro();Y()});function hT(e){let t=Te(e);return Ln(t)}var xT=u(()=>{Ro();Y()});function yT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:Er(e[o])}),{});return W(t)}var bT=u(()=>{O();fe();cs()});function wT(e){return ro(je(e))}var $T=u(()=>{Ue();ms()});function IT(e){let t=e.map(n=>Ln(n));return X(t)}var kT=u(()=>{Q();Ro()});function Ln(e){return ke(e)?cT(e.items):rt(e)?lT(e.$defs,e.$ref):Pe(e)?fT(e.if,e.then,e.else):oe(e)?hT(e.allOf):pe(e)?yT(e.properties):be(e)?wT(e.items):F(e)?IT(e.anyOf):e}var Ro=u(()=>{gt();kt();Ot();Ne();fe();Ue();Q();pT();dT();gT();xT();bT();$T();kT()});function el(e,t){return V([e])?d.Update(Ln(e),{},t):Sa(e)}function TT(e,t,n,r){let o=T(e,t,n);return el(o,r)}var Ou=u(()=>{S();Mu();Ro();q()});function vT(e,t,n,r){return t.visited.includes(r)?n:r in e?T(e,$e(t.callstack,[...t.visited,r]),e[r]):n}var tl=u(()=>{q();q()});function ET(e,t){let n=Mn(e,t),r=Fn(n);return $n(d.Assign(e,{[t]:r}),t)}var ST=u(()=>{S();kt();Mo();Dr()});function PT(e,t,n){let r=pn(e,t,n);return Fn(r)}var AT=u(()=>{Mo();Y()});function RT(e){let t=Te(e);return Fn(t)}var MT=u(()=>{Mo();Y()});function OT(e){let t=e.map(n=>Fn(n));return X(t)}var CT=u(()=>{Q();Mo()});function LT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:Zi(e[o])}),{});return W(t)}var FT=u(()=>{O();fe();Qi()});function Fn(e){return rt(e)?ET(e.$defs,e.$ref):Pe(e)?PT(e.if,e.then,e.else):oe(e)?RT(e.allOf):F(e)?OT(e.anyOf):pe(e)?LT(e.properties):W({})}var Mo=u(()=>{kt();Ot();Ne();fe();Q();ST();AT();MT();CT();FT()});function Pa(e,t={}){return j("Required",[e],t)}function jT(e,t={}){return nl(e,t)}var Cu=u(()=>{ce();Lu()});function nl(e,t){return V([e])?d.Update(Fn(e),{},t):Pa(e,t)}function DT(e,t,n,r){let o=T(e,t,n);return nl(o,r)}var Lu=u(()=>{S();Mo();Cu();q()});function Aa(e,t={}){return j("ReturnType",[e],t)}function _T(e,t={}){return rl(e,t)}var Fu=u(()=>{ce();ju()});function GL(e){return We(e)?e.returnType:ge()}function rl(e,t){return V([e])?d.Update(GL(e),{},t):Aa(e,t)}function NT(e,t,n,r={}){let o=T(e,t,n);return rl(o,r)}var ju=u(()=>{S();zt();Je();Fu();q()});function Ra(e,t){return j("With",[e,t],{})}function qT(e,t){return ol(e,t)}var Du=u(()=>{ce();_u()});function ol(e,t){return V([e])?d.Update(e,{},t):Ra(e,t)}function UT(e,t,n,r){let o=T(e,t,n);return ol(o,r)}var _u=u(()=>{S();q();Du()});function WL(e){return sr(e)?be(e.items)?sl(e.items.items):Ce(e.items)?[e]:Be(e.items)?[e]:[ge()]:[e]}function sl(e){return e.reduce((n,r)=>[...n,...WL(r)],[])}var KT=u(()=>{Vt();Je();po();Ht();Ue()});var GT=u(()=>{KT()});function $e(e,t){return{callstack:e,visited:t}}function V(e){return m.ShiftLeft(e,(t,n)=>Be(t)?!1:V(n),()=>!0)}function Cs(e,t,n){return m.Keys(n).reduce((r,o)=>({...r,[o]:T(e,t,n[o])}),{})}function mr(e,t,n){let r=Ut(e,t,n);return sl(r)}function Ut(e,t,n){return n.map(r=>T(e,t,r))}function BL(e,t){let n=ut(e)?ts(t,{}):t,r=Sr(e)?es(n,{}):n;return vr(e)?zs(r,{}):r}function zL(e,t,n,r,o){return m.IsEqual(n,"AddImmutable")?WT(e,t,r[0],o):m.IsEqual(n,"RemoveImmutable")?Q$(e,t,r[0],o):m.IsEqual(n,"AddReadonly")?Xf(e,t,r[0],o):m.IsEqual(n,"RemoveReadonly")?Mh(e,t,r[0],o):m.IsEqual(n,"AddOptional")?Zf(e,t,r[0],o):m.IsEqual(n,"RemoveOptional")?Lh(e,t,r[0],o):m.IsEqual(n,"Capitalize")?lI(e,t,r[0],o):m.IsEqual(n,"Conditional")?xI(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"ConstructorParameters")?bI(e,t,r[0],o):m.IsEqual(n,"Evaluate")?N$(e,t,r[0],o):m.IsEqual(n,"Exclude")?$I(e,t,r[0],r[1],o):m.IsEqual(n,"Extract")?EI(e,t,r[0],r[1],o):m.IsEqual(n,"Index")?hk(e,t,r[0],r[1],o):m.IsEqual(n,"InstanceType")?yk(e,t,r[0],o):m.IsEqual(n,"Interface")?E$(e,t,r[0],r[1],o):m.IsEqual(n,"KeyOf")?Ok(e,t,r[0],o):m.IsEqual(n,"Lowercase")?dI(e,t,r[0],o):m.IsEqual(n,"Mapped")?_k(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"Module")?yu(e,t,r[0],o):m.IsEqual(n,"NonNullable")?qk(e,t,r[0],o):m.IsEqual(n,"Pick")?uT(e,t,r[0],r[1],o):m.IsEqual(n,"Parameters")?zk(e,t,r[0],o):m.IsEqual(n,"Partial")?oT(e,t,r[0],o):m.IsEqual(n,"Omit")?Wk(e,t,r[0],r[1],o):m.IsEqual(n,"ReadonlyObject")?TT(e,t,r[0],o):m.IsEqual(n,"Record")?sx(e,t,r[0],r[1],o):m.IsEqual(n,"Required")?DT(e,t,r[0],o):m.IsEqual(n,"ReturnType")?NT(e,t,r[0],o):m.IsEqual(n,"TemplateLiteral")?ww(e,t,r[0],o):m.IsEqual(n,"Uncapitalize")?fI(e,t,r[0],o):m.IsEqual(n,"Uppercase")?gI(e,t,r[0],o):m.IsEqual(n,"With")?UT(e,t,r[0],r[1]):j(n,r,o)}function HL(e,t,n){let r=Be(n)?vT(e,t,n,n.$ref):ke(n)?qt(T(e,t,n.items),Ci(n)):To(n)?Xa(e,t,n.target,n.arguments):Ge(n)?yn(Ut(e,t,n.parameters),T(e,t,n.instanceType),Qf(n)):We(n)?bn(Ut(e,t,n.parameters),T(e,t,n.returnType),eg(n)):Pe(n)?Tr(T(e,t,n.if),T(e,t,n.then),T(e,t,n.else),ag(n)):oe(n)?Tt(Ut(e,t,n.allOf),lg(n)):pe(n)?W(Cs(e,t,n.properties),og(n)):it(n)?ix(Qt(n),T(e,t,wt(n))):sr(n)?Or(T(e,t,n.items)):be(n)?je(mr(e,t,n.items),Rh(n)):F(n)?X(Ut(e,t,n.anyOf),xh(n)):n;return BL(n,r)}function T(e,t,n){return Yn(n)?zL(e,t,n.action,n.parameters,n.options):HL(e,t,n)}function il(e,t){return T(e,$e([],[]),t)}var q=u(()=>{O();Nu();Mi();Oi();gt();Bt();ce();zt();ho();Ot();Ne();fe();Xe();Ue();Q();Ht();po();Nu();Mp();Mi();Ac();Oi();Oc();Zn();us();ps();Rp();On();_p();su();Ya();qs();uu();mu();lu();Ha();fu();On();hu();bu();$u();ku();Eu();Pu();Ru();Ou();ra();tl();Lu();ju();Ka();On();On();_u();GT()});function VL(e){return d.Update(e,{"~immutable":!0},{})}function zs(e,t){return d.Update(VL(e),{},t)}function WT(e,t,n,r){let o=T(e,t,n);return zs(o,r)}var Nu=u(()=>{S();q()});function ub(e,t={}){return j("AddImmutable",[e],t)}function ro(e,t={}){return zs(e,t)}var ms=u(()=>{ce();Nu()});var BT=u(()=>{ce();Mp()});function mb(e,t={}){return j("Evaluate",[e],t)}function zT(e,t={}){return Ep(e,t)}var al=u(()=>{ce();Ya()});function cb(e,t={}){return j("Module",[e],t)}function HT(e,t={}){return yu({},$e([],[]),e,t)}var ul=u(()=>{ce();q();bu()});var xo=u(()=>{ms();cs();rs();BT();Rc();Qi();Qa();ru();ou();al();iu();au();Up();pu();Ls();du();eu();gu();ul();wu();Iu();vu();Su();Au();Mu();Cu();Fu();tu();nu();Du()});var VT=u(()=>{su()});var JT=u(()=>{_i()});var YT=u(()=>{qs()});var XT=u(()=>{uu()});var ZT=u(()=>{});var QT=u(()=>{Us();Gs();ZT()});var ev=u(()=>{mu()});var tv=u(()=>{lu()});var nv=u(()=>{Ha()});var rv=u(()=>{On()});var ov=u(()=>{fu()});var sv=u(()=>{hu()});var iv=u(()=>{bu()});var av=u(()=>{$u()});var uv=u(()=>{ku()});var mv=u(()=>{Eu()});var cv=u(()=>{gs();up()});var pv=u(()=>{Pu()});var lv=u(()=>{Ru()});var dv=u(()=>{O();bs()});var fv=u(()=>{dv()});var gv=u(()=>{Ou()});var hv=u(()=>{ra()});var xv=u(()=>{tl()});var yv=u(()=>{Lu()});var bv=u(()=>{ju()});var wv=u(()=>{});var $v=u(()=>{O();gs()});var Iv=u(()=>{Yi();Xi();mp();wv();Vi();$v()});var kv=u(()=>{_u()});var Tv=u(()=>{q();_p();VT();Tp();JT();Ms();YT();XT();QT();ev();tv();nv();rv();ov();sv();iv();av();Ks();uv();mv();cv();pv();lv();fv();gv();hv();xv();yv();bv();Iv();kv()});function vv(...e){let[t,n,r]=In.Match(e,{2:(i,c)=>m.IsString(i)?[{},i,c]:[i,c,{}],3:(i,c,p)=>[i,c,p],1:i=>[{},i,{}]}),o=gw(n),s=m.IsArray(o)&&m.IsEqual(o.length,2)?T(t,$e([],[]),o[0]):ge();return d.Update(s,{},r)}var Ev=u(()=>{no();S();O();pa();q();q();zi()});var ml=u(()=>{Ev()});var Z={};Mt(Z,{Any:()=>to,Array:()=>qt,BigInt:()=>ls,Boolean:()=>Ui,Call:()=>X$,Capitalize:()=>uI,Codec:()=>qi,Conditional:()=>hI,Constructor:()=>yn,ConstructorParameters:()=>yI,Cyclic:()=>$n,Decode:()=>ah,DecodeBuilder:()=>as,Dependent:()=>Tr,Encode:()=>uh,EncodeBuilder:()=>is,Enum:()=>pg,Evaluate:()=>zT,Exclude:()=>wI,Extends:()=>st,ExtendsResult:()=>B,Extract:()=>II,Function:()=>bn,Generic:()=>Xn,Identifier:()=>ds,Immutable:()=>mh,Index:()=>SI,Infer:()=>os,InstanceType:()=>xk,Instantiate:()=>il,Integer:()=>Ar,Interface:()=>S$,Intersect:()=>Tt,IsAny:()=>Ee,IsArray:()=>ke,IsBigInt:()=>vn,IsBoolean:()=>Jt,IsCall:()=>To,IsCodec:()=>Ni,IsConstructor:()=>Ge,IsCyclic:()=>rt,IsDependent:()=>Pe,IsEnum:()=>ot,IsEnumValue:()=>cg,IsFunction:()=>We,IsGeneric:()=>eo,IsIdentifier:()=>dh,IsImmutable:()=>vr,IsInfer:()=>Ce,IsInteger:()=>ht,IsIntersect:()=>oe,IsKind:()=>L,IsLiteral:()=>le,IsNever:()=>un,IsNull:()=>so,IsNumber:()=>Fe,IsObject:()=>pe,IsOptional:()=>ut,IsParameter:()=>hh,IsReadonly:()=>Sr,IsRecord:()=>it,IsRef:()=>Be,IsRefine:()=>Ic,IsRest:()=>sr,IsSchema:()=>_e,IsString:()=>yt,IsSymbol:()=>er,IsTemplateLiteral:()=>Ae,IsThis:()=>ua,IsTuple:()=>be,IsUndefined:()=>fo,IsUnion:()=>F,IsUnknown:()=>Oe,IsUnsafe:()=>ji,IsVoid:()=>Pn,KeyOf:()=>bk,Literal:()=>se,Lowercase:()=>mI,Mapped:()=>Ck,Module:()=>HT,Never:()=>ge,NonNullable:()=>Nk,Null:()=>oo,Number:()=>Ct,Object:()=>W,Omit:()=>Uk,Optional:()=>ng,Parameter:()=>Mr,Parameters:()=>Bk,Partial:()=>Hk,Pick:()=>sT,Readonly:()=>ch,ReadonlyObject:()=>Qp,ReadonlyType:()=>mT,Record:()=>sa,RecordKey:()=>co,RecordPattern:()=>Qt,RecordValue:()=>wt,Ref:()=>qn,Refine:()=>ph,Required:()=>jT,Rest:()=>Or,ReturnType:()=>_T,Script:()=>vv,String:()=>Yt,Symbol:()=>ao,TemplateLiteral:()=>Iw,This:()=>aa,Tuple:()=>je,Uncapitalize:()=>cI,Undefined:()=>lo,Union:()=>X,Unknown:()=>Ye,Unsafe:()=>sg,Uppercase:()=>pI,Void:()=>ca,With:()=>qT});var cl=u(()=>{q();Sn();ml();Qa();ru();ou();al();iu();au();xo();pu();Ls();du();eu();gu();ul();wu();Iu();vu();Su();Au();Mu();Cu();Fu();tu();nu();Du();$c();us();Zn();ps();kc();It();gt();Pr();Qn();ho();Bt();kt();mn();zt();ns();Tc();Ot();Vt();En();Ne();Le();Je();io();xt();fe();Ec();Xe();Ht();po();J();Xt();Rr();vt();ma();Ue();go();Q();nt();Di();Cr()});var Nr=u(()=>{xo();Tv();Sn();ml();pa();cl();cl()});import{StringEnum as JL}from"@earendil-works/pi-ai";import{defineTool as YL}from"@earendil-works/pi-coding-agent";function Sv(e){if(e.length===0)return"Todo list is empty.";let t=e.filter(o=>o.status==="completed").length,n=e.map(o=>`${XL[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(`
20
+ `)}function QL(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(i=>i.content===r);if(!s)return{todos:o,error:`no task matches ${JSON.stringify(r)}`};if(t==="start"){for(let i of o)i.status==="in_progress"&&(i.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 eF(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 XL,ZL,qu,pl=u(()=>{Nr();XL={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"},ZL=Z.Object({op:JL(["init","start","done","drop","view"],{description:"init replaces the list; start/done/drop move one task; view reads it"}),items:Z.Optional(Z.Array(Z.String(),{description:"Task labels for init. 5-10 words each, specific enough to execute without re-planning"})),task:Z.Optional(Z.String({description:"Exact label of the task to start, complete or drop"}))});qu=YL({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:ZL,async execute(e,t,n,r,o){let s=eF(o),{todos:i,error:c}=QL(s,t.op,t.items,t.task),p={op:t.op,todos:i,...c?{error:c}:{}};return{content:[{type:"text",text:c?`Error: ${c}
21
+ ${Sv(i)}`:Sv(i)}],details:p,...c?{isError:!0}:{}}}})});import{StringEnum as tF}from"@earendil-works/pi-ai";import{defineTool as nF}from"@earendil-works/pi-coding-agent";function Rv(){return Wn.size===0?"":["<shared-notes>","Working notes recorded with the `context` tool. They survive compaction and are visible to every agent on this task.",...[...Wn].map(([t,n])=>`- ${t}: ${n}`),"</shared-notes>"].join(`
22
+ `)}function rF(e,t,n){if(e==="list")return Wn.size===0?{text:"No notes."}:{text:[...Wn].map(([r,o])=>`${r} = ${o}`).join(`
23
+ `)};if(!t)return{text:"Error: key is required",error:"key required"};if(t.length>Av)return{text:`Error: key longer than ${Av} characters`,error:"key too long"};if(e==="forget")return{text:Wn.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>Pv?`${n.slice(0,Pv)}\u2026`:n;return Wn.set(t,r),{text:`Recorded ${t} (${Wn.size} note${Wn.size===1?"":"s"} held)`}}return{text:`Error: unknown op ${JSON.stringify(e)}`,error:"unknown op"}}var Wn,Pv,Av,Uu,Ku=u(()=>{Nr();Wn=new Map,Pv=2e3,Av=80;Uu=nF({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:Z.Object({op:tF(["set","list","forget"],{description:"set writes a note, list reads all, forget removes one"}),key:Z.Optional(Z.String({description:"Short lookup key, e.g. 'auth-entrypoint'"})),value:Z.Optional(Z.String({description:"The fact to keep (for set)"}))}),async execute(e,t){let{text:n,error:r}=rF(t.op,t.key,t.value);return{content:[{type:"text",text:n}],details:{op:t.op,notes:Object.fromEntries(Wn)},...r?{isError:!0}:{}}}})});import{StringEnum as oF}from"@earendil-works/pi-ai";import{defineTool as sF}from"@earendil-works/pi-coding-agent";function Wu(e){if(!e||e.status==="cleared")return"No goal set.";let t=e.budget??Gu,n=[`${Cv[e.status]} ${e.status}`,`${e.used}/${t} continuations`];return e.note&&n.push(e.note),`${n.join(" \xB7 ")}
24
+ ${e.text}`}function Lv(e){if(!e||e.status==="cleared"||e.status==="done")return"";let t=e.budget??Gu,n=e.text.length>48?`${e.text.slice(0,47)}\u2026`:e.text;return`goal ${Cv[e.status]} ${e.used}/${t} \xB7 ${n}`}function Fv(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(`
25
+ `)}function jv(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??Gu}.`].join(`
26
+ `)}function Bu(){return Dv}function ln(e){Dv=e}function zu(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??Gu;return e.used>=t?{action:"stop",reason:`budget exhausted (${t} continuations)`,close:!0}:{action:"continue"}}function ll(e,t,n,r,o){switch(t){case"view":return{goal:e};case"set":return n?.trim()?n.length>Mv?{goal:e,error:`text longer than ${Mv} 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 Oo(e){let t;for(let n of e.sessionManager.getBranch()){if(n.type==="custom"&&n.customType===pr){t=n.data;continue}if(n.type==="custom_message"&&n.customType===pr){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 pr,Ov,Mv,Gu,Cv,Dv,iF,_v,Hu=u(()=>{Nr();pr="howtofix.goal",Ov="howtofix.goal.continue",Mv=400,Gu=25,Cv={active:"\u25CF",paused:"\u2016",done:"\u2713",cleared:"\u25CB"};iF=Z.Object({op:oF(["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:Z.Optional(Z.String({description:"The goal, in one sentence, as the user would state it (for set)"})),budget:Z.Optional(Z.Number({description:"Optional cap on automatic continuations before the run stops"})),note:Z.Optional(Z.String({description:"Evidence that the goal is met (required for complete)"}))}),_v=sF({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:iF,async execute(e,t,n,r,o){let s=Oo(o),{goal:i,error:c}=ll(s,t.op,t.text,t.budget,t.note);ln(i);let p=Wu(i);return{content:[{type:"text",text:c?`Error: ${c}
27
+ ${p}`:p}],details:{op:t.op,goal:i},...c?{isError:!0}:{}}}})});import{existsSync as gl,mkdirSync as Nv,readFileSync as qv}from"node:fs";import{dirname as Uv,join as Kv}from"node:path";import{defineTool as Gv}from"@earendil-works/pi-coding-agent";function Vu(){return{state:"inactive",wasActive:!1}}function aF(e){return e?e.state==="pending"?{...e,state:"inactive"}:{...e}:Vu()}function Wv(e){return e.state!=="inactive"?e:{...e,state:"pending"}}function uF(e){return e.state!=="pending"?e:{state:"active",wasActive:!0}}function mF(e){return e.state!=="inactive"?e:{state:"active",wasActive:!0}}function cF(e){return e.state!=="active"?e:{...e,state:"inactive"}}function Bv(e){return e.state==="inactive"?e:{...e,state:"inactive"}}function Ju(e){return e.state==="active"}function pF(e,t){return e===t}function lF(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(`
28
+ `)}function dF(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 Yu(){return dt}function zv(){return lt}function Hv(){return Ju(dt)}function Vv(){if(!(!lt||!gl(lt)))try{let e=qv(lt,"utf8");return e.trim()?e:void 0}catch{return}}function Jv(){return Vv()!==void 0}function Yv(){return dt.state==="inactive"?"":dt.state==="pending"?"plan pending":Jv()?"plan \u25CF ready":"plan \u25CF planning"}function Xv(){return fl?Kv(fl,"plan_mode.json"):void 0}function fF(){let e=Xv();if(e)try{Nv(Uv(e),{recursive:!0}),tt(e,JSON.stringify(dt))}catch{}}function gF(){let e=Xv();if(!e||!gl(e))return Vu();try{return aF(JSON.parse(qv(e,"utf8")))}catch{return Vu()}}function hF(e){fl=e,lt=Kv(e,"plan.md"),dt=gF()}function Co(e){return dt=e,fF(),dt}function Zv(){return e=>{e.on("tool_call",async t=>{if(!Ju(dt)||t.toolName!=="edit"&&t.toolName!=="write")return;let n=t.input?.path;if(typeof n=="string"&&!(!lt||pF(n,lt)))return{block:!0,reason:dF(lt)}})}}function Qv(){return e=>{e.on("session_start",async(t,n)=>{hF(n.sessionManager.getSessionDir())}),e.on("before_agent_start",async()=>{dt.state==="pending"&&Co(uF(dt))}),e.on("context_with_system",async t=>{if(!Ju(dt)||!lt)return;let n=t.messages[0];if(!n||n.role!=="system")return;let r=lF(lt,Jv()),o=`${typeof n.content=="string"?n.content:""}
29
+
30
+ ${r}`;return{messages:t.messages.map(i=>i===n?{...n,content:o}:i)}})}}function xF(){if(lt){try{Nv(Uv(lt),{recursive:!0}),gl(lt)||tt(lt,"")}catch{return}return lt}}var lt,dt,fl,dl,eE,tE,hl=u(()=>{Nr();Hn();dt=Vu();dl=2e4;eE=Gv({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:Z.Object({}),async execute(e,t,n,r,o){if(dt.state!=="inactive")return{content:[{type:"text",text:`Plan mode is already ${dt.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:{}};Co(mF(dt));let i=xF();return{content:[{type:"text",text:["Plan mode is active. Edits are blocked except for the plan file.",i?`Write your plan to ${i}.`:"Write your plan to the session plan file."].join(`
31
+ `)}],details:{planFile:i}}}}),tE=Gv({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:Z.Object({}),executionMode:"sequential",async execute(e,t,n,r,o){if(!Ju(dt))return{content:[{type:"text",text:"Plan mode is not active."}],details:{},isError:!0};let s=Vv();if(!s)return{content:[{type:"text",text:`No plan has been written yet. Write it to ${lt??"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 i=s.length>dl?`${s.slice(0,dl)}
32
+ \u2026 (${s.length-dl} more characters)`:s;return await o.ui.confirm("Approve this plan?",i)?(Co(cF(dt)),{content:[{type:"text",text:"Plan approved. You may now implement it."}],details:{approved:!0,planFile:lt}}):{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 xl(){return{consecutiveFailures:0,tripped:!1}}function yF(e,t){return t==="manual"?!1:e.consecutiveFailures>=3}function bF(e,t){if(t)return e;let n=e.consecutiveFailures+1;return{consecutiveFailures:n,tripped:e.tripped||n>=3}}function wF(){return xl()}function $F(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 nE(){return e=>{e.on("session_start",async()=>{lr=xl()}),e.on("session_compact",async()=>{lr=wF()}),e.on("session_compact_failed",async(t,n)=>{let r=lr;lr=bF(lr,t.aborted),!r.tripped&&lr.tripped&&n?.ui&&n.ui.notify($F(lr),"warning")}),e.on("session_before_compact",async t=>{if(yF(lr,t.reason))return{cancel:!0}})}}var lr,rE=u(()=>{lr=xl()});function Xu(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(`
33
+ `):e==null?"":String(e)}function Zu(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 yl=u(()=>{});function IF(e){ln(Oo(e))}function oE(e){return`budget exhausted (${e.budget??"default"} continuations)`}function sE(){return e=>{e.on("session_start",async(t,n)=>{IF(n)}),e.on("context_with_system",async(t,n)=>{let r=Oo(n);if(ln(r),!r||r.status!=="active")return;let o=t.messages[0];if(!o||o.role!=="system")return;let s=`${Xu(o.content)}
34
+
35
+ ${Fv(r)}`;return{messages:t.messages.map(c=>c===o?{...o,content:Zu(o.content,s)}:c)}}),e.on("agent_before_settle",async(t,n)=>{let r=Oo(n);if(ln(r),zu(r).action==="stop"||!r||t.continue||!t.context.canContinue)return;let o={...r,used:r.used+1};if(e.appendEntry(pr,o),ln(o),zu(o).action==="stop"){let s={...o,status:"done",note:oE(o)};e.appendEntry(pr,s),ln(s);return}return{entries:[{type:"custom_message",customType:Ov,content:jv(o),display:!0}],continue:!0}}),e.on("agent_settled",async(t,n)=>{let r=Oo(n),o=zu(r);if(r&&o.action==="stop"&&o.close){let s={...r,status:"done",note:oE(r)};e.appendEntry(pr,s),ln(s)}else ln(r)})}}var iE=u(()=>{yl();Hu()});function Qu(){return e=>{e.on("context_with_system",async t=>{let n=Rv();if(!n)return;let r=t.messages[0];if(!r||r.role!=="system")return;let o=`${Xu(r.content)}
36
+
37
+ ${n}`;return{messages:t.messages.map(i=>i===r?{...r,content:Zu(r.content,o)}:i)}})}}var bl=u(()=>{yl();Ku()});function TF(e){if(kF.test(e))return!0;let t=/^172\.(\d+)\./.exec(e);if(!t)return!1;let n=Number(t[1]);return n>=16&&n<=31}function Il(e){let t;try{t=new URL(e)}catch{return{ok:!1,reason:"not a URL"}}if(t.protocol!=="http:"&&t.protocol!=="https:")return{ok:!1,reason:`refused protocol ${t.protocol}`};let n=t.hostname.toLowerCase();return n==="localhost"||n.endsWith(".localhost")||n==="::1"||n==="[::1]"?{ok:!1,reason:"refused loopback host"}:TF(n)||n==="0.0.0.0"?{ok:!1,reason:"refused private address"}:{ok:!0,url:t}}function aE(e){let t=e.replace(/<script[\s\S]*?<\/script>/gi," ").replace(/<style[\s\S]*?<\/style>/gi," ").replace(/<noscript[\s\S]*?<\/noscript>/gi," ").replace(/<[^>]+>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/\s+/g," ").trim();return t.length>wl?t.slice(0,wl):t}function vF(e){let t=[],n=/class="result__a"[^>]*href="([^"]+)"[^>]*>([\s\S]*?)<\/a>/gi,r;for(;(r=n.exec(e))&&t.length<$l;){let o=r[1]??"",s=aE(r[2]??""),i=o,c=/[?&]uddg=([^&]+)/.exec(o);if(c)try{i=decodeURIComponent(c[1])}catch{i=o}else o.startsWith("//")&&(i=`https:${o}`);let p=Il(i);!p.ok||!s||t.push({title:s,url:p.url.toString(),snippet:""})}return t}async function mE(e,t={}){let n=e.trim();if(!n)return{ok:!1,error:"empty query"};let r=t.fetchFn??fetch,o=t.timeoutMs??15e3,s={"user-agent":t.userAgent??uE,accept:"text/html, application/json"};try{if(t.braveKey){let f=`https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(n)}&count=${$l}`,w=await r(f,{headers:{...s,accept:"application/json","x-subscription-token":t.braveKey},signal:AbortSignal.timeout(o)});return w.ok?{ok:!0,hits:EF(await w.json()),provider:"brave"}:{ok:!1,error:`brave ${w.status}`}}let i=`https://html.duckduckgo.com/html/?q=${encodeURIComponent(n)}`,c=await r(i,{headers:s,signal:AbortSignal.timeout(o)});return c.ok?{ok:!0,hits:vF(await c.text()),provider:"ddg"}:{ok:!1,error:`search ${c.status}`}}catch(i){return{ok:!1,error:i instanceof Error?i.message:String(i)}}}function EF(e){let t=[];if(e&&typeof e=="object"&&"web"in e){let r=e.web;r&&typeof r=="object"&&"results"in r&&Array.isArray(r.results)&&(t=r.results)}let n=[];for(let r of t){if(!r||typeof r!="object"||!("url"in r)||!("title"in r))continue;let o=r.url,s=r.title;if(typeof o!="string"||typeof s!="string")continue;let i=Il(o);if(!i.ok)continue;let c="description"in r?r.description:void 0;if(n.push({title:s,url:i.url.toString(),snippet:typeof c=="string"?c:""}),n.length>=$l)break}return n}async function cE(e,t={}){let n=Il(e);if(!n.ok)return{ok:!1,error:n.reason};let r=t.fetchFn??fetch;try{let o=await r(n.url,{headers:{"user-agent":t.userAgent??uE,accept:"text/html, text/plain, application/json"},signal:AbortSignal.timeout(t.timeoutMs??2e4),redirect:"follow"});if(!o.ok)return{ok:!1,error:`HTTP ${o.status}`};let s=o.headers.get("content-type")??"",i=await o.text(),c=/html/i.test(s)?aE(i):i.slice(0,wl);return{ok:!0,url:o.url||n.url.toString(),contentType:s,text:c}}catch(o){return{ok:!1,error:o instanceof Error?o.message:String(o)}}}var kF,wl,$l,uE,pE=u(()=>{kF=/^(127\.|10\.|192\.168\.|169\.254\.|0\.|221\.|222\.|223\.)/;wl=8e4,$l=8;uE="HowToFix (https://howtofix.id)"});import{Type as em}from"@earendil-works/pi-ai";import{defineTool as lE}from"@earendil-works/pi-coding-agent";function SF(e){return e.length===0?"no results":e.map((t,n)=>`${n+1}. ${t.title}
38
38
  ${t.url}${t.snippet?`
39
39
  ${t.snippet}`:""}`).join(`
40
- `)}var em,tm,Il=u(()=>{aE();em=uE({name:"web_search",label:"web_search",description:"Search the public web. Use for current docs, changelogs, error messages, and anything not in this repo. Returns titles, URLs, and snippets. Follow a URL with web_fetch.",promptSnippet:"web_search: search the public web",parameters:Qu.Object({query:Qu.String({description:"Search query"})}),async execute(e,t){let n=await sE(t.query,{braveKey:process.env.BRAVE_API_KEY});return n.ok?{content:[{type:"text",text:yF(n.hits)}],details:{count:n.hits.length,provider:n.provider}}:{content:[{type:"text",text:n.error}],details:{error:n.error},isError:!0}}}),tm=uE({name:"web_fetch",label:"web_fetch",description:"Fetch a public http(s) URL and return its text. HTML is stripped to visible text. Local, loopback, and private addresses are refused.",promptSnippet:"web_fetch: read a public URL as text",parameters:Qu.Object({url:Qu.String({description:"http(s) URL"})}),async execute(e,t){let n=await iE(t.url);return n.ok?{content:[{type:"text",text:n.text}],details:{url:n.url,contentType:n.contentType,chars:n.text.length}}:{content:[{type:"text",text:n.error}],details:{error:n.error},isError:!0}}})});import{spawn as bF}from"node:child_process";import{existsSync as mE,readFileSync as IF}from"node:fs";import{delimiter as $F,isAbsolute as wF,join as cE}from"node:path";import{fileURLToPath as kF,pathToFileURL as qr}from"node:url";function pE(e){let t=JSON.stringify(e);return`Content-Length: ${Buffer.byteLength(t,"utf8")}\r
40
+ `)}var tm,nm,kl=u(()=>{pE();tm=lE({name:"web_search",label:"web_search",description:"Search the public web. Use for current docs, changelogs, error messages, and anything not in this repo. Returns titles, URLs, and snippets. Follow a URL with web_fetch.",promptSnippet:"web_search: search the public web",parameters:em.Object({query:em.String({description:"Search query"})}),async execute(e,t){let n=await mE(t.query,{braveKey:process.env.BRAVE_API_KEY});return n.ok?{content:[{type:"text",text:SF(n.hits)}],details:{count:n.hits.length,provider:n.provider}}:{content:[{type:"text",text:n.error}],details:{error:n.error},isError:!0}}}),nm=lE({name:"web_fetch",label:"web_fetch",description:"Fetch a public http(s) URL and return its text. HTML is stripped to visible text. Local, loopback, and private addresses are refused.",promptSnippet:"web_fetch: read a public URL as text",parameters:em.Object({url:em.String({description:"http(s) URL"})}),async execute(e,t){let n=await cE(t.url);return n.ok?{content:[{type:"text",text:n.text}],details:{url:n.url,contentType:n.contentType,chars:n.text.length}}:{content:[{type:"text",text:n.error}],details:{error:n.error},isError:!0}}})});import{spawn as PF}from"node:child_process";import{existsSync as dE,readFileSync as AF}from"node:fs";import{delimiter as RF,isAbsolute as MF,join as fE}from"node:path";import{fileURLToPath as OF,pathToFileURL as qr}from"node:url";function gE(e){let t=JSON.stringify(e);return`Content-Length: ${Buffer.byteLength(t,"utf8")}\r
41
41
  \r
42
- ${t}`}function TF(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`\r
42
+ ${t}`}function CF(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`\r
43
43
  \r
44
- `,n);if(r===-1)break;let o=e.subarray(n,r).toString("utf8"),s=/Content-Length:\s*(\d+)/i.exec(o);if(!s)break;let i=Number(s[1]),c=r+4,p=c+i;if(p>e.length)break;t.push(JSON.parse(e.subarray(c,p).toString("utf8"))),n=p}return{messages:t,rest:e.subarray(n)}}function EF(e){return vF.find(t=>t.match(e))}async function SF(e,t){let n=Ur.get(e.command);if(n)return await n.ready,n.client;let r=bF(e.command,e.args,{cwd:t,stdio:["pipe","pipe","ignore"]}),o=r.stdin,s=r.stdout;if(!o||!s)throw r.kill(),new Error(`${e.command}: stdio pipes unavailable`);let i=new $l({stdin:o,stdout:s,root:t});r.on("error",()=>{let p=Ur.get(e.command);p?.child===r&&Ur.delete(e.command),p?.client.dispose()});let c=i.initialize().catch(p=>{throw Ur.delete(e.command),r.kill(),p});return Ur.set(e.command,{client:i,child:r,ready:c}),await c,i}function wl(){for(let[e,t]of Ur)Ur.delete(e),t.client.dispose(),t.child.kill()}function lE(e){let t=e.uri;try{t=kF(e.uri)}catch{}let n=e.range?.start;return n?`${t}:${n.line+1}:${n.character+1}`:t}function dE(e,t=0){let n=[];for(let r of e){let o=(r.selectionRange??r.range)?.start.line;n.push(`${" ".repeat(t)}${r.name}${o===void 0?"":` :${o+1}`}`),r.children&&n.push(...dE(r.children,t+1))}return n}async function fE(e){try{let t=EF(e.file);if(!t)return{ok:!1,error:`no language server configured for ${e.file}`};if((e.action==="definition"||e.action==="references"||e.action==="hover")&&(e.line===void 0||!Number.isInteger(e.line)||e.line<1))return{ok:!1,error:`line required (1-based) for ${e.action}`};if(!(t.command.includes("/")?mE(t.command):(process.env.PATH??"").split($F).some(f=>mE(cE(f,t.command)))))return{ok:!1,error:`${t.command} is not on PATH. Install it to use lsp on ${e.file}.`};let o=wF(e.file)?e.file:cE(e.root,e.file),s=IF(o,"utf8"),i=await SF(t,e.root);await i.ensureOpen(o,s,t.languageId);let c=(e.line??1)-1,p=0;if(e.symbol){let f=(s.split(`
45
- `)[c]??"").indexOf(e.symbol);f>=0&&(p=f)}switch(e.action){case"definition":{let f=await i.definition(o,c,p);return f?{ok:!0,text:lE(f),count:1}:{ok:!0,text:"no definition found",count:0}}case"references":{let I=(await i.references(o,c,p)).map(lE);return{ok:!0,text:I.length>0?I.join(`
46
- `):"no references found",count:I.length}}case"hover":{let f=(await i.hover(o,c,p))?.trim();return{ok:!0,text:f||"no hover at that position"}}case"symbols":{let f=dE(await i.documentSymbols(o));return{ok:!0,text:f.length>0?f.join(`
47
- `):"no symbols in this file",count:f.length}}case"diagnostics":{let I=(await i.diagnostics(o)).map($=>`${$.range.start.line+1}:${$.range.start.character+1} ${PF[$.severity??3]??"info"} ${$.message}`);return{ok:!0,text:I.length>0?I.join(`
48
- `):"no diagnostics",count:I.length}}}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}var $l,vF,Ur,PF,kl=u(()=>{$l=class{constructor(t){this.io=t;t.stdout.on("data",n=>{this.buffer=Buffer.concat([this.buffer,n]);let{messages:r,rest:o}=TF(this.buffer);this.buffer=o;for(let s of r)this.dispatch(s)})}io;nextId=1;pending=new Map;buffer=Buffer.alloc(0);opened=new Set;diagnosticsByUri=new Map;diagnosticsWaiters=new Map;dispatch(t){if(t.method==="textDocument/publishDiagnostics"){let r=t.params;if(r?.uri){let o=Array.isArray(r.diagnostics)?r.diagnostics:[];this.diagnosticsByUri.set(r.uri,o);let s=this.diagnosticsWaiters.get(r.uri);if(s){this.diagnosticsWaiters.delete(r.uri);for(let i of s)i(o)}}return}if(t.id===void 0)return;let n=this.pending.get(Number(t.id));n&&(this.pending.delete(Number(t.id)),t.error?n.reject(new Error(t.error.message)):n.resolve(t.result))}request(t,n,r=1e4){let o=this.nextId++,s=pE({jsonrpc:"2.0",id:o,method:t,params:n}),{promise:i,resolve:c,reject:p}=Promise.withResolvers(),f=setTimeout(()=>{this.pending.delete(o),p(new Error(`lsp ${t} timed out`))},r);return this.pending.set(o,{resolve:I=>{clearTimeout(f),c(I)},reject:I=>{clearTimeout(f),p(I)}}),this.io.stdin.write(s),i}notify(t,n){this.io.stdin.write(pE({jsonrpc:"2.0",method:t,params:n}))}async initialize(){await this.request("initialize",{processId:null,rootUri:qr(this.io.root).toString(),capabilities:{textDocument:{hover:{},definition:{},references:{},documentSymbol:{},publishDiagnostics:{}}}}),this.notify("initialized",{})}async hover(t,n,r){return(await this.request("textDocument/hover",{textDocument:{uri:qr(t).toString()},position:{line:n,character:r}}))?.contents?.value}async definition(t,n,r){let o=await this.request("textDocument/definition",{textDocument:{uri:qr(t).toString()},position:{line:n,character:r}});return Array.isArray(o)?o[0]:o??void 0}async references(t,n,r){let o=await this.request("textDocument/references",{textDocument:{uri:qr(t).toString()},position:{line:n,character:r},context:{includeDeclaration:!0}});return Array.isArray(o)?o:[]}async documentSymbols(t){let n=await this.request("textDocument/documentSymbol",{textDocument:{uri:qr(t).toString()}});return Array.isArray(n)?n:[]}diagnostics(t,n=2e3){let r=qr(t).toString(),o=this.diagnosticsByUri.get(r);if(o)return Promise.resolve(o);let{promise:s,resolve:i}=Promise.withResolvers(),c=setTimeout(()=>{let f=this.diagnosticsWaiters.get(r);if(f){this.diagnosticsWaiters.delete(r);for(let I of f)I(this.diagnosticsByUri.get(r)??[])}},n),p=this.diagnosticsWaiters.get(r)??[];return p.push(f=>{clearTimeout(c),i(f)}),this.diagnosticsWaiters.set(r,p),s}async ensureOpen(t,n,r){let o=qr(t).toString();this.opened.has(o)||(this.notify("textDocument/didOpen",{textDocument:{uri:o,languageId:r,version:1,text:n}}),this.opened.add(o))}dispose(){for(let[t,n]of this.pending)n.reject(new Error("lsp client disposed")),this.pending.delete(t);for(let[t,n]of this.diagnosticsWaiters){let r=this.diagnosticsByUri.get(t)??[];this.diagnosticsWaiters.delete(t);for(let o of n)o(r)}}},vF=[{command:"typescript-language-server",args:["--stdio"],languageId:"typescript",match:e=>/\.(ts|tsx|js|jsx|mts|cts)$/.test(e)},{command:"rust-analyzer",args:[],languageId:"rust",match:e=>e.endsWith(".rs")},{command:"gopls",args:[],languageId:"go",match:e=>e.endsWith(".go")},{command:"pylsp",args:[],languageId:"python",match:e=>e.endsWith(".py")}];Ur=new Map;process.on("exit",wl);PF={1:"error",2:"warning",3:"info",4:"hint"}});import{StringEnum as AF}from"@earendil-works/pi-ai";import{defineTool as RF}from"@earendil-works/pi-coding-agent";var nm,Tl=u(()=>{Nr();kl();nm=RF({name:"lsp",label:"lsp",description:"Language-server query: definition, references, hover, symbols, or diagnostics for a file. Line is 1-based. Does not edit. If the server binary is missing the result says so \u2014 do not pretend grep is a substitute without telling the user.",promptSnippet:"lsp: definition, references, hover, symbols, diagnostics",parameters:Z.Object({action:AF(["diagnostics","definition","references","hover","symbols"],{description:"Which language-server query to run"}),file:Z.String({description:"File to query, relative to the project root"}),line:Z.Optional(Z.Number({description:"1-based line (definition, references, hover)"})),symbol:Z.Optional(Z.String({description:"Substring to locate on that line when column is omitted"}))}),async execute(e,t,n,r,o){let s=await fE({action:t.action,file:t.file,line:t.line,symbol:t.symbol,root:o.cwd});return s.ok?{content:[{type:"text",text:s.text}],details:{action:t.action,count:s.count}}:{content:[{type:"text",text:s.error}],details:{error:s.error},isError:!0}}})});import{mkdirSync as MF,readdirSync as OF,readFileSync as CF}from"node:fs";import{join as gE}from"node:path";import{createAgentSession as LF,DefaultResourceLoader as FF,SessionManager as jF}from"@earendil-works/pi-coding-agent";function rm(e){MF(Jr,{recursive:!0}),tt(gE(Jr,`${e.id}.json`),JSON.stringify({...e,session:void 0},null,1))}function El(){let e;try{e=OF(Jr)}catch{return}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(CF(gE(Jr,t),"utf8"));if(n.status!=="parked"||en.some(r=>r.id===n.id))continue;en.push({...n,mail:n.mail??[]})}catch{}}function Sl(){return El(),en.length===0?"no agents":en.map(e=>`${e.id} ${e.agent} ${e.status} requests=${e.requests} ${e.task}`).join(`
49
- `)}function Pl(e){El();let t=en.find(n=>n.id===e);return t?`${t.agent}#${t.id} ${t.status}
50
- ${t.result??t.task}`:`no agent ${e}`}async function om(e){let t=Kr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}`);let n=e.worktree||e.cwd||process.cwd(),r=new FF({cwd:n,agentDir:Ve,additionalSkillPaths:[hr(n)],extensionFactories:[Ho({interactive:!1}),Zu()]});await r.reload();let{session:o}=await LF({cwd:n,agentDir:Ve,sessionManager:jF.inMemory(n),resourceLoader:r,tools:t.tools,customTools:[qu,Nu,em,tm,nm],thinkingLevel:e.effort});return o}async function xE(e,t){El();let n=en.find(o=>o.id===e);if(!n)return`no agent ${e}`;let r=n.session??await om(n);if(n.session=r,n.status==="running"||r.isStreaming)return n.mail.push(t),rm(n),`queued for ${e}`;if(n.requests>=hE)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 rm(n),`${e} ${n.status}`}async function yE(e){let t=Kr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}. known: ${[...Kr.keys()].join(", ")}`);let n={id:`${Date.now().toString(36)}-${en.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 en.push(n),rm(n),n}async function NF(e,t){let n=Kr.get(e.agent);if(!n)return;let r=e.session??await om(e);e.session=r;try{let o=e.mail.splice(0).join(`
44
+ `,n);if(r===-1)break;let o=e.subarray(n,r).toString("utf8"),s=/Content-Length:\s*(\d+)/i.exec(o);if(!s)break;let i=Number(s[1]),c=r+4,p=c+i;if(p>e.length)break;t.push(JSON.parse(e.subarray(c,p).toString("utf8"))),n=p}return{messages:t,rest:e.subarray(n)}}function FF(e){return LF.find(t=>t.match(e))}async function jF(e,t){let n=Ur.get(e.command);if(n)return await n.ready,n.client;let r=PF(e.command,e.args,{cwd:t,stdio:["pipe","pipe","ignore"]}),o=r.stdin,s=r.stdout;if(!o||!s)throw r.kill(),new Error(`${e.command}: stdio pipes unavailable`);let i=new Tl({stdin:o,stdout:s,root:t});r.on("error",()=>{let p=Ur.get(e.command);p?.child===r&&Ur.delete(e.command),p?.client.dispose()});let c=i.initialize().catch(p=>{throw Ur.delete(e.command),r.kill(),p});return Ur.set(e.command,{client:i,child:r,ready:c}),await c,i}function vl(){for(let[e,t]of Ur)Ur.delete(e),t.client.dispose(),t.child.kill()}function hE(e){let t=e.uri;try{t=OF(e.uri)}catch{}let n=e.range?.start;return n?`${t}:${n.line+1}:${n.character+1}`:t}function xE(e,t=0){let n=[];for(let r of e){let o=(r.selectionRange??r.range)?.start.line;n.push(`${" ".repeat(t)}${r.name}${o===void 0?"":` :${o+1}`}`),r.children&&n.push(...xE(r.children,t+1))}return n}async function yE(e){try{let t=FF(e.file);if(!t)return{ok:!1,error:`no language server configured for ${e.file}`};if((e.action==="definition"||e.action==="references"||e.action==="hover")&&(e.line===void 0||!Number.isInteger(e.line)||e.line<1))return{ok:!1,error:`line required (1-based) for ${e.action}`};if(!(t.command.includes("/")?dE(t.command):(process.env.PATH??"").split(RF).some(f=>dE(fE(f,t.command)))))return{ok:!1,error:`${t.command} is not on PATH. Install it to use lsp on ${e.file}.`};let o=MF(e.file)?e.file:fE(e.root,e.file),s=AF(o,"utf8"),i=await jF(t,e.root);await i.ensureOpen(o,s,t.languageId);let c=(e.line??1)-1,p=0;if(e.symbol){let f=(s.split(`
45
+ `)[c]??"").indexOf(e.symbol);f>=0&&(p=f)}switch(e.action){case"definition":{let f=await i.definition(o,c,p);return f?{ok:!0,text:hE(f),count:1}:{ok:!0,text:"no definition found",count:0}}case"references":{let w=(await i.references(o,c,p)).map(hE);return{ok:!0,text:w.length>0?w.join(`
46
+ `):"no references found",count:w.length}}case"hover":{let f=(await i.hover(o,c,p))?.trim();return{ok:!0,text:f||"no hover at that position"}}case"symbols":{let f=xE(await i.documentSymbols(o));return{ok:!0,text:f.length>0?f.join(`
47
+ `):"no symbols in this file",count:f.length}}case"diagnostics":{let w=(await i.diagnostics(o)).map($=>`${$.range.start.line+1}:${$.range.start.character+1} ${DF[$.severity??3]??"info"} ${$.message}`);return{ok:!0,text:w.length>0?w.join(`
48
+ `):"no diagnostics",count:w.length}}}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}var Tl,LF,Ur,DF,El=u(()=>{Tl=class{constructor(t){this.io=t;t.stdout.on("data",n=>{this.buffer=Buffer.concat([this.buffer,n]);let{messages:r,rest:o}=CF(this.buffer);this.buffer=o;for(let s of r)this.dispatch(s)})}io;nextId=1;pending=new Map;buffer=Buffer.alloc(0);opened=new Set;diagnosticsByUri=new Map;diagnosticsWaiters=new Map;dispatch(t){if(t.method==="textDocument/publishDiagnostics"){let r=t.params;if(r?.uri){let o=Array.isArray(r.diagnostics)?r.diagnostics:[];this.diagnosticsByUri.set(r.uri,o);let s=this.diagnosticsWaiters.get(r.uri);if(s){this.diagnosticsWaiters.delete(r.uri);for(let i of s)i(o)}}return}if(t.id===void 0)return;let n=this.pending.get(Number(t.id));n&&(this.pending.delete(Number(t.id)),t.error?n.reject(new Error(t.error.message)):n.resolve(t.result))}request(t,n,r=1e4){let o=this.nextId++,s=gE({jsonrpc:"2.0",id:o,method:t,params:n}),{promise:i,resolve:c,reject:p}=Promise.withResolvers(),f=setTimeout(()=>{this.pending.delete(o),p(new Error(`lsp ${t} timed out`))},r);return this.pending.set(o,{resolve:w=>{clearTimeout(f),c(w)},reject:w=>{clearTimeout(f),p(w)}}),this.io.stdin.write(s),i}notify(t,n){this.io.stdin.write(gE({jsonrpc:"2.0",method:t,params:n}))}async initialize(){await this.request("initialize",{processId:null,rootUri:qr(this.io.root).toString(),capabilities:{textDocument:{hover:{},definition:{},references:{},documentSymbol:{},publishDiagnostics:{}}}}),this.notify("initialized",{})}async hover(t,n,r){return(await this.request("textDocument/hover",{textDocument:{uri:qr(t).toString()},position:{line:n,character:r}}))?.contents?.value}async definition(t,n,r){let o=await this.request("textDocument/definition",{textDocument:{uri:qr(t).toString()},position:{line:n,character:r}});return Array.isArray(o)?o[0]:o??void 0}async references(t,n,r){let o=await this.request("textDocument/references",{textDocument:{uri:qr(t).toString()},position:{line:n,character:r},context:{includeDeclaration:!0}});return Array.isArray(o)?o:[]}async documentSymbols(t){let n=await this.request("textDocument/documentSymbol",{textDocument:{uri:qr(t).toString()}});return Array.isArray(n)?n:[]}diagnostics(t,n=2e3){let r=qr(t).toString(),o=this.diagnosticsByUri.get(r);if(o)return Promise.resolve(o);let{promise:s,resolve:i}=Promise.withResolvers(),c=setTimeout(()=>{let f=this.diagnosticsWaiters.get(r);if(f){this.diagnosticsWaiters.delete(r);for(let w of f)w(this.diagnosticsByUri.get(r)??[])}},n),p=this.diagnosticsWaiters.get(r)??[];return p.push(f=>{clearTimeout(c),i(f)}),this.diagnosticsWaiters.set(r,p),s}async ensureOpen(t,n,r){let o=qr(t).toString();this.opened.has(o)||(this.notify("textDocument/didOpen",{textDocument:{uri:o,languageId:r,version:1,text:n}}),this.opened.add(o))}dispose(){for(let[t,n]of this.pending)n.reject(new Error("lsp client disposed")),this.pending.delete(t);for(let[t,n]of this.diagnosticsWaiters){let r=this.diagnosticsByUri.get(t)??[];this.diagnosticsWaiters.delete(t);for(let o of n)o(r)}}},LF=[{command:"typescript-language-server",args:["--stdio"],languageId:"typescript",match:e=>/\.(ts|tsx|js|jsx|mts|cts)$/.test(e)},{command:"rust-analyzer",args:[],languageId:"rust",match:e=>e.endsWith(".rs")},{command:"gopls",args:[],languageId:"go",match:e=>e.endsWith(".go")},{command:"pylsp",args:[],languageId:"python",match:e=>e.endsWith(".py")}];Ur=new Map;process.on("exit",vl);DF={1:"error",2:"warning",3:"info",4:"hint"}});import{StringEnum as _F}from"@earendil-works/pi-ai";import{defineTool as NF}from"@earendil-works/pi-coding-agent";var rm,Sl=u(()=>{Nr();El();rm=NF({name:"lsp",label:"lsp",description:"Language-server query: definition, references, hover, symbols, or diagnostics for a file. Line is 1-based. Does not edit. If the server binary is missing the result says so \u2014 do not pretend grep is a substitute without telling the user.",promptSnippet:"lsp: definition, references, hover, symbols, diagnostics",parameters:Z.Object({action:_F(["diagnostics","definition","references","hover","symbols"],{description:"Which language-server query to run"}),file:Z.String({description:"File to query, relative to the project root"}),line:Z.Optional(Z.Number({description:"1-based line (definition, references, hover)"})),symbol:Z.Optional(Z.String({description:"Substring to locate on that line when column is omitted"}))}),async execute(e,t,n,r,o){let s=await yE({action:t.action,file:t.file,line:t.line,symbol:t.symbol,root:o.cwd});return s.ok?{content:[{type:"text",text:s.text}],details:{action:t.action,count:s.count}}:{content:[{type:"text",text:s.error}],details:{error:s.error},isError:!0}}})});import{mkdirSync as qF,readdirSync as UF,readFileSync as KF}from"node:fs";import{join as bE}from"node:path";import{createAgentSession as GF,DefaultResourceLoader as WF,SessionManager as BF}from"@earendil-works/pi-coding-agent";function om(e){qF(Jr,{recursive:!0}),tt(bE(Jr,`${e.id}.json`),JSON.stringify({...e,session:void 0},null,1))}function Al(){let e;try{e=UF(Jr)}catch{return}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(KF(bE(Jr,t),"utf8"));if(n.status!=="parked"||en.some(r=>r.id===n.id))continue;en.push({...n,mail:n.mail??[]})}catch{}}function Rl(){return Al(),en.length===0?"no agents":en.map(e=>`${e.id} ${e.agent} ${e.status} requests=${e.requests} ${e.task}`).join(`
49
+ `)}function Ml(e){Al();let t=en.find(n=>n.id===e);return t?`${t.agent}#${t.id} ${t.status}
50
+ ${t.result??t.task}`:`no agent ${e}`}async function sm(e){let t=Kr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}`);let n=e.worktree||e.cwd||process.cwd(),r=new WF({cwd:n,agentDir:Ve,additionalSkillPaths:[hr(n)],extensionFactories:[Ho({interactive:!1}),Qu()]});await r.reload();let{session:o}=await GF({cwd:n,agentDir:Ve,sessionManager:BF.inMemory(n),resourceLoader:r,tools:t.tools,customTools:[Uu,qu,tm,nm,rm],thinkingLevel:e.effort});return o}async function $E(e,t){Al();let n=en.find(o=>o.id===e);if(!n)return`no agent ${e}`;let r=n.session??await sm(n);if(n.session=r,n.status==="running"||r.isStreaming)return n.mail.push(t),om(n),`queued for ${e}`;if(n.requests>=wE)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 om(n),`${e} ${n.status}`}async function IE(e){let t=Kr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}. known: ${[...Kr.keys()].join(", ")}`);let n={id:`${Date.now().toString(36)}-${en.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 en.push(n),om(n),n}async function VF(e,t){let n=Kr.get(e.agent);if(!n)return;let r=e.session??await sm(e);e.session=r;try{let o=e.mail.splice(0).join(`
51
51
  `);for(await r.prompt(`${n.prompt}
52
52
 
53
53
  Task:
54
54
  ${e.task}${o?`
55
55
 
56
56
  Messages:
57
- ${o}`:""}`),e.requests+=1;e.mail.length>0&&e.requests<hE;)await r.followUp(e.mail.splice(0).join(`
58
- `)),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{rm(e)}}async function bE(e){let t=()=>en.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 NF(r,e)}};if(await Promise.all(Array.from({length:_F},n)),e?.aborted)throw new Error("aborted")}var vl,DF,Kr,en,_F,hE,Hs=u(()=>{Nn();Uu();hl();Vo();ul();Il();Tl();Hn();vl=["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."],DF=`You are a software architect planning an implementation. Your job is to explore the codebase and return a plan, not to write code.
57
+ ${o}`:""}`),e.requests+=1;e.mail.length>0&&e.requests<wE;)await r.followUp(e.mail.splice(0).join(`
58
+ `)),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{om(e)}}async function kE(e){let t=()=>en.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 VF(r,e)}};if(await Promise.all(Array.from({length:HF},n)),e?.aborted)throw new Error("aborted")}var Pl,zF,Kr,en,HF,wE,Hs=u(()=>{Nn();Ku();bl();Vo();pl();kl();Sl();Hn();Pl=["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."],zF=`You are a software architect planning an implementation. Your job is to explore the codebase and return a plan, not to write code.
59
59
 
60
60
  ## Read-only, by construction
61
61
  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.
@@ -73,75 +73,77 @@ End your reply with exactly this section, listing the 3-5 files most critical to
73
73
  - path/to/file.ts
74
74
  - path/to/file.ts
75
75
 
76
- 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.`,Kr=new Map([["scout",{name:"scout",description:"read-only lookup",tools:["read","grep","find","ls","context","web_search","web_fetch","lsp"],prompt:["Inspect only what the task needs. Do not edit.",...vl].join(`
77
- `),effort:"low"}],["architect",{name:"architect",description:"designs an implementation plan",tools:["read","grep","find","ls","context","web_search","web_fetch","lsp"],prompt:DF,effort:"high"}],["task",{name:"task",description:"implements the assignment",tools:["read","bash","edit","write","grep","find","ls","context","todo","web_search","web_fetch","lsp"],prompt:["Do the assignment, then report files changed.",...vl].join(`
78
- `),effort:"medium"}],["reviewer",{name:"reviewer",description:"finds concrete issues",tools:["read","grep","find","ls","context","web_search","web_fetch","lsp"],prompt:["Return issues with file evidence. Do not edit.",...vl].join(`
79
- `),effort:"medium"}]]),en=[],_F=3,hE=8});import{execFile as qF}from"node:child_process";import{promisify as UF}from"node:util";import{tmpdir as KF}from"node:os";import{join as GF}from"node:path";async function tn(e,t){try{let{stdout:n}=await WF("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 sm(e){return(await tn(e,["rev-parse","--is-inside-work-tree"])).output==="true"}async function IE(e){return(await tn(e,["status","--porcelain"])).output.length>0}async function $E(e,t){let n=await tn(e,["add","-A"]);if(!n.ok)return n;let r=await tn(e,["commit","-m",t]);return r.ok?{ok:!0,output:(await tn(e,["log","-1","--oneline"])).output||r.output}:r}async function wE(e){let t=await tn(e,["reset","--soft","HEAD~1"]);return t.ok?{ok:!0,output:(await tn(e,["log","-1","--oneline"])).output||"reset to the previous commit"}:t}async function kE(e){let t=(await tn(e,["diff"])).output,n=(await tn(e,["diff","--cached"])).output;return[t,n].filter(Boolean).join(`
80
- `)}function TE(e,t=60){let n=e.split(`
76
+ 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.`,Kr=new Map([["scout",{name:"scout",description:"read-only lookup",tools:["read","grep","find","ls","context","web_search","web_fetch","lsp"],prompt:["Inspect only what the task needs. Do not edit.",...Pl].join(`
77
+ `),effort:"low"}],["architect",{name:"architect",description:"designs an implementation plan",tools:["read","grep","find","ls","context","web_search","web_fetch","lsp"],prompt:zF,effort:"high"}],["task",{name:"task",description:"implements the assignment",tools:["read","bash","edit","write","grep","find","ls","context","todo","web_search","web_fetch","lsp"],prompt:["Do the assignment, then report files changed.",...Pl].join(`
78
+ `),effort:"medium"}],["reviewer",{name:"reviewer",description:"finds concrete issues",tools:["read","grep","find","ls","context","web_search","web_fetch","lsp"],prompt:["Return issues with file evidence. Do not edit.",...Pl].join(`
79
+ `),effort:"medium"}]]),en=[],HF=3,wE=8});import{execFile as JF}from"node:child_process";import{promisify as YF}from"node:util";import{tmpdir as XF}from"node:os";import{join as ZF}from"node:path";async function tn(e,t){try{let{stdout:n}=await QF("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 im(e){return(await tn(e,["rev-parse","--is-inside-work-tree"])).output==="true"}async function TE(e){return(await tn(e,["status","--porcelain"])).output.length>0}async function vE(e,t){let n=await tn(e,["add","-A"]);if(!n.ok)return n;let r=await tn(e,["commit","-m",t]);return r.ok?{ok:!0,output:(await tn(e,["log","-1","--oneline"])).output||r.output}:r}async function EE(e){let t=await tn(e,["reset","--soft","HEAD~1"]);return t.ok?{ok:!0,output:(await tn(e,["log","-1","--oneline"])).output||"reset to the previous commit"}:t}async function SE(e){let t=(await tn(e,["diff"])).output,n=(await tn(e,["diff","--cached"])).output;return[t,n].filter(Boolean).join(`
80
+ `)}function PE(e,t=60){let n=e.split(`
81
81
  `);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(`
82
- `)}async function vE(e,t){if(!await sm(e))return null;let n=t.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,40)||"agent",r=GF(KF(),`howtofix-wt-${process.pid}-${Date.now()}-${n}`);return(await tn(e,["worktree","add","--detach",r,"HEAD"])).ok?{path:r,async remove(){await tn(e,["worktree","remove","--force",r]),await tn(e,["worktree","prune"])}}:null}var WF,Al=u(()=>{WF=UF(qF)});function EE(e){return e===null?"null":Array.isArray(e)?"array":Number.isInteger(e)?"integer":typeof e}function BF(e,t){let n=EE(e);return t==="number"?n==="number"||n==="integer":t==="integer"?n==="integer":n===t}function zF(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(!Gr(n)&&!Array.isArray(n))return;n=n[o]}return Gr(n)?n:void 0}function dr(e,t,n,r,o){if(!Gr(t))return;if(t.$ref!==void 0){let i=zF(n,t.$ref);i&&dr(e,i,n,r,o);return}if(Array.isArray(t.allOf))for(let i of t.allOf)dr(e,i,n,r,o);for(let i of["anyOf","oneOf"]){let c=t[i];if(!Array.isArray(c)||c.length===0)continue;let p=c.filter(f=>{let I=[];return dr(e,f,n,r,I),I.length===0}).length;i==="anyOf"&&p===0&&o.push({path:r,message:"does not match any allowed shape"}),i==="oneOf"&&p!==1&&o.push({path:r,message:`must match exactly one shape (matched ${p})`})}let s=t.type;if(s!==void 0){let i=Array.isArray(s)?s.map(String):[String(s)];if(!i.some(c=>BF(e,c))){o.push({path:r,message:`expected ${i.join(" or ")}, got ${EE(e)}`});return}}if(Array.isArray(t.enum)&&!t.enum.some(i=>JSON.stringify(i)===JSON.stringify(e))&&o.push({path:r,message:`must be one of ${t.enum.map(i=>JSON.stringify(i)).join(", ")}`}),Gr(e)){let i=Gr(t.properties)?t.properties:{};if(Array.isArray(t.required))for(let c of t.required.map(String))c in e||o.push({path:r?`${r}.${c}`:c,message:"is required"});for(let[c,p]of Object.entries(i))c in e&&dr(e[c],p,n,r?`${r}.${c}`:c,o);if(t.additionalProperties===!1)for(let c of Object.keys(e))c in i||o.push({path:r?`${r}.${c}`:c,message:"is not an allowed property"});else if(Gr(t.additionalProperties))for(let[c,p]of Object.entries(e))c in i||dr(p,t.additionalProperties,n,r?`${r}.${c}`:c,o)}if(Array.isArray(e)&&t.items!==void 0){let i=t.items;Array.isArray(i)?e.forEach((c,p)=>{p<i.length&&dr(c,i[p],n,`${r}[${p}]`,o)}):e.forEach((c,p)=>dr(c,i,n,`${r}[${p}]`,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 SE(e,t){if(!Gr(t))return[];let n=[];return dr(e,t,t,"",n),n}function PE(e){return e.map(t=>`- ${t.path||"(root)"}: ${t.message}`).join(`
83
- `)}function AE(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 i=o[s];if(i!=="{"&&i!=="[")continue;let c=i==="{"?"}":"]",p=0,f=!1,I=!1;for(let $=s;$<o.length;$++){let A=o[$];if(f){I?I=!1:A==="\\"?I=!0:A==='"'&&(f=!1);continue}if(A==='"')f=!0;else if(A===i)p++;else if(A===c&&(p--,p===0))try{return JSON.parse(o.slice(s,$+1))}catch{break}}}}}var Gr,RE=u(()=>{Gr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)});import*as ME from"node:os";async function JF(e,t=OE,n=CE){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 YF(){let e=ME.availableParallelism?.()??4;return Math.max(1,Math.min(16,e-2))}function XF(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 LE(e){let t=e.lifetimeCap??HF,n=e.fanoutCap??VF,r=XF(e.concurrency??YF()),o=0,s=0,i="",c=K=>e.onEvent?.(K),p=new Map,f=()=>e.onProgress?.([...p.values()]),I=async(K,V)=>{let G=V??{},oe=typeof G.label=="string"?G.label:`agent-${o+1}`,$e=typeof G.phase=="string"?G.phase:i,De=typeof G.agentType=="string"?G.agentType:"task",Qe=typeof G.effort=="string"?G.effort:void 0,xe=typeof G.model=="string"?G.model:void 0,se=typeof G.isolation=="string"?G.isolation:void 0,v=G.schema;if(e.budgetTotal!=null&&s>=e.budgetTotal)throw new ze(`budget exhausted: spent ${s} of ${e.budgetTotal} output tokens`);if(o>=t)throw new ze(`lifetime cap reached: ${t} agent calls in one run`);o++;let He=o;if(e.isPaused?.()&&!await JF(e,OE,CE))return null;let Gt=await r();try{if(e.signal?.aborted)return null;c({kind:"agent_start",label:oe,phase:$e,ordinal:o}),p.set(He,{label:oe,phase:$e,agentType:De,status:"running",outputTokens:0,...xe?{model:xe}:{},startedAt:Date.now()}),f();let gn=(nn,Wt,Ke)=>{let Dt=p.get(He);Dt&&(Dt.status=nn,Dt.outputTokens=Wt.outputTokens,Dt.endedAt=Date.now(),Wt.toolCalls!==void 0&&(Dt.toolCalls=Wt.toolCalls),Wt.model!==void 0&&(Dt.model=Wt.model),Ke&&(Dt.detail=Ke)),c({kind:"agent_end",label:oe,ok:nn==="ok",outputTokens:Wt.outputTokens}),f()},_o=v===void 0?1:2;for(let nn=0;nn<_o;nn++){let Wt=nn===0?String(K):void 0,Ke=await A(Wt??ZF(String(K),$),{label:oe,phase:$e,agentType:De,effort:Qe,model:xe,isolation:se});if(Ke===null)return gn("failed",{text:"",outputTokens:0}),null;if(s+=Ke.outputTokens,v===void 0)return gn("ok",Ke,Rl(Ke.text)),Ke.text;let Dt=AE(Ke.text),No=Dt===void 0?[{path:"",message:"reply was not JSON"}]:SE(Dt,v);if(No.length===0)return gn("ok",Ke,Rl(Ke.text)),Dt;if($=PE(No),nn===_o-1)return gn("failed",Ke,`schema: ${Rl($)}`),null}return null}finally{Gt()}},$="",A=async(K,V)=>{try{return await e.invoke({prompt:K,...V})}catch{return null}};return{agent:(K,V)=>I(K,V),parallel:async K=>{if(K.length>n)throw new ze(`fan-out cap exceeded: ${K.length} items (max ${n})`);return await Promise.all(K.map(async G=>{try{return await G()}catch{return null}}))},pipeline:async(K,...V)=>{if(K.length>n)throw new ze(`fan-out cap exceeded: ${K.length} items (max ${n})`);return await Promise.all(K.map(async(oe,$e)=>{let De=oe;for(let Qe of V)try{De=await Qe(De,oe,$e)}catch{return null}return De}))},phase:K=>{i=String(K),c({kind:"phase",title:i})},log:K=>c({kind:"log",message:String(K)}),args:e.args,budget:{total:e.budgetTotal??null,spent:()=>s,remaining:()=>e.budgetTotal==null?1/0:Math.max(0,e.budgetTotal-s)}}}function ZF(e,t){return`${e}
82
+ `)}async function AE(e,t){if(!await im(e))return null;let n=t.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,40)||"agent",r=ZF(XF(),`howtofix-wt-${process.pid}-${Date.now()}-${n}`);return(await tn(e,["worktree","add","--detach",r,"HEAD"])).ok?{path:r,async remove(){await tn(e,["worktree","remove","--force",r]),await tn(e,["worktree","prune"])}}:null}var QF,Ol=u(()=>{QF=YF(JF)});function RE(e){return e===null?"null":Array.isArray(e)?"array":Number.isInteger(e)?"integer":typeof e}function ej(e,t){let n=RE(e);return t==="number"?n==="number"||n==="integer":t==="integer"?n==="integer":n===t}function tj(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(!Gr(n)&&!Array.isArray(n))return;n=n[o]}return Gr(n)?n:void 0}function dr(e,t,n,r,o){if(!Gr(t))return;if(t.$ref!==void 0){let i=tj(n,t.$ref);i&&dr(e,i,n,r,o);return}if(Array.isArray(t.allOf))for(let i of t.allOf)dr(e,i,n,r,o);for(let i of["anyOf","oneOf"]){let c=t[i];if(!Array.isArray(c)||c.length===0)continue;let p=c.filter(f=>{let w=[];return dr(e,f,n,r,w),w.length===0}).length;i==="anyOf"&&p===0&&o.push({path:r,message:"does not match any allowed shape"}),i==="oneOf"&&p!==1&&o.push({path:r,message:`must match exactly one shape (matched ${p})`})}let s=t.type;if(s!==void 0){let i=Array.isArray(s)?s.map(String):[String(s)];if(!i.some(c=>ej(e,c))){o.push({path:r,message:`expected ${i.join(" or ")}, got ${RE(e)}`});return}}if(Array.isArray(t.enum)&&!t.enum.some(i=>JSON.stringify(i)===JSON.stringify(e))&&o.push({path:r,message:`must be one of ${t.enum.map(i=>JSON.stringify(i)).join(", ")}`}),Gr(e)){let i=Gr(t.properties)?t.properties:{};if(Array.isArray(t.required))for(let c of t.required.map(String))c in e||o.push({path:r?`${r}.${c}`:c,message:"is required"});for(let[c,p]of Object.entries(i))c in e&&dr(e[c],p,n,r?`${r}.${c}`:c,o);if(t.additionalProperties===!1)for(let c of Object.keys(e))c in i||o.push({path:r?`${r}.${c}`:c,message:"is not an allowed property"});else if(Gr(t.additionalProperties))for(let[c,p]of Object.entries(e))c in i||dr(p,t.additionalProperties,n,r?`${r}.${c}`:c,o)}if(Array.isArray(e)&&t.items!==void 0){let i=t.items;Array.isArray(i)?e.forEach((c,p)=>{p<i.length&&dr(c,i[p],n,`${r}[${p}]`,o)}):e.forEach((c,p)=>dr(c,i,n,`${r}[${p}]`,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 ME(e,t){if(!Gr(t))return[];let n=[];return dr(e,t,t,"",n),n}function OE(e){return e.map(t=>`- ${t.path||"(root)"}: ${t.message}`).join(`
83
+ `)}function CE(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 i=o[s];if(i!=="{"&&i!=="[")continue;let c=i==="{"?"}":"]",p=0,f=!1,w=!1;for(let $=s;$<o.length;$++){let P=o[$];if(f){w?w=!1:P==="\\"?w=!0:P==='"'&&(f=!1);continue}if(P==='"')f=!0;else if(P===i)p++;else if(P===c&&(p--,p===0))try{return JSON.parse(o.slice(s,$+1))}catch{break}}}}}var Gr,LE=u(()=>{Gr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)});import*as FE from"node:os";async function oj(e,t=jE,n=DE){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 sj(){let e=FE.availableParallelism?.()??4;return Math.max(1,Math.min(16,e-2))}function ij(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 _E(e){let t=e.lifetimeCap??nj,n=e.fanoutCap??rj,r=ij(e.concurrency??sj()),o=0,s=0,i="",c=U=>e.onEvent?.(U),p=new Map,f=()=>e.onProgress?.([...p.values()]),w=async(U,z)=>{let G=z??{},ee=typeof G.label=="string"?G.label:`agent-${o+1}`,ye=typeof G.phase=="string"?G.phase:i,De=typeof G.agentType=="string"?G.agentType:"task",Qe=typeof G.effort=="string"?G.effort:void 0,xe=typeof G.model=="string"?G.model:void 0,ie=typeof G.isolation=="string"?G.isolation:void 0,v=G.schema;if(e.budgetTotal!=null&&s>=e.budgetTotal)throw new ze(`budget exhausted: spent ${s} of ${e.budgetTotal} output tokens`);if(o>=t)throw new ze(`lifetime cap reached: ${t} agent calls in one run`);o++;let He=o;if(e.isPaused?.()&&!await oj(e,jE,DE))return null;let Gt=await r();try{if(e.signal?.aborted)return null;c({kind:"agent_start",label:ee,phase:ye,ordinal:o}),p.set(He,{label:ee,phase:ye,agentType:De,status:"running",outputTokens:0,...xe?{model:xe}:{},startedAt:Date.now()}),f();let gn=(rn,Wt,Ke)=>{let Dt=p.get(He);Dt&&(Dt.status=rn,Dt.outputTokens=Wt.outputTokens,Dt.endedAt=Date.now(),Wt.toolCalls!==void 0&&(Dt.toolCalls=Wt.toolCalls),Wt.model!==void 0&&(Dt.model=Wt.model),Ke&&(Dt.detail=Ke)),c({kind:"agent_end",label:ee,ok:rn==="ok",outputTokens:Wt.outputTokens}),f()},_o=v===void 0?1:2;for(let rn=0;rn<_o;rn++){let Wt=rn===0?String(U):void 0,Ke=await P(Wt??aj(String(U),$),{label:ee,phase:ye,agentType:De,effort:Qe,model:xe,isolation:ie});if(Ke===null)return gn("failed",{text:"",outputTokens:0}),null;if(s+=Ke.outputTokens,v===void 0)return gn("ok",Ke,Cl(Ke.text)),Ke.text;let Dt=CE(Ke.text),No=Dt===void 0?[{path:"",message:"reply was not JSON"}]:ME(Dt,v);if(No.length===0)return gn("ok",Ke,Cl(Ke.text)),Dt;if($=OE(No),rn===_o-1)return gn("failed",Ke,`schema: ${Cl($)}`),null}return null}finally{Gt()}},$="",P=async(U,z)=>{try{return await e.invoke({prompt:U,...z})}catch{return null}};return{agent:(U,z)=>w(U,z),parallel:async U=>{if(U.length>n)throw new ze(`fan-out cap exceeded: ${U.length} items (max ${n})`);return await Promise.all(U.map(async G=>{try{return await G()}catch{return null}}))},pipeline:async(U,...z)=>{if(U.length>n)throw new ze(`fan-out cap exceeded: ${U.length} items (max ${n})`);return await Promise.all(U.map(async(ee,ye)=>{let De=ee;for(let Qe of z)try{De=await Qe(De,ee,ye)}catch{return null}return De}))},phase:U=>{i=String(U),c({kind:"phase",title:i})},log:U=>c({kind:"log",message:String(U)}),args:e.args,budget:{total:e.budgetTotal??null,spent:()=>s,remaining:()=>e.budgetTotal==null?1/0:Math.max(0,e.budgetTotal-s)}}}function aj(e,t){return`${e}
84
84
 
85
85
  Your previous reply did not satisfy the required schema:
86
86
  ${t}
87
87
 
88
- Reply with ONLY a corrected JSON value.`}function Rl(e,t=80){let n=e.split(`
89
- `).map(r=>r.trim()).find(r=>r.length>0)??"";return n.length>t?`${n.slice(0,t)}\u2026`:n}var HF,VF,OE,CE,ze,FE=u(()=>{RE();HF=1e3,VF=4096,OE=100,CE=300*1e3;ze=class extends Error{constructor(t){super(t),this.name="WorkflowError"}}});import{parseColor as Bn,styleText as QF}from"@earendil-works/pi-tui";function ej(e,t){return QF(e,t,im)}function te(e,t,n){return ej(e,{...n,fg:t})}var im,D,jE,Vs=u(()=>{im="truecolor",D={text:Bn("#e6e6e6"),mute:Bn("#8b8b8b"),dim:Bn("#5c5c5c"),user:Bn("#d0d0d0"),accent:Bn("#c4b5fd"),tool:Bn("#6ee7b7"),bad:Bn("#f0a8a4"),warn:Bn("#e6b15a"),line:Bn("#3a3a3a")};jE={heading:e=>te(e,D.text,{bold:!0}),link:e=>te(e,D.accent,{underline:!0}),linkUrl:e=>te(e,D.mute),code:e=>te(e,D.text),codeBlock:e=>te(e,D.text),codeBlockBorder:e=>te(e,D.line),quote:e=>te(e,D.mute,{italic:!0}),quoteBorder:e=>te(e,D.line),hr:e=>te(e,D.line),listBullet:e=>te(e,D.mute),bold:e=>te(e,D.text,{bold:!0}),italic:e=>te(e,D.text,{italic:!0}),strikethrough:e=>te(e,D.mute,{strikethrough:!0}),underline:e=>te(e,D.text,{underline:!0})}});import{truncateToWidth as Ys,visibleWidth as ln}from"@earendil-works/pi-tui";function fr(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 NE(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 Cl(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function um(e,t,n="left"){if(t<=0)return"";let r=ln(e);if(r>t)return Ys(e,t);let o=" ".repeat(t-r);return n==="right"?o+e:e+o}function Ll(e,t,n,r=1){if(n<=0)return"";let o=ln(t);if(o>=n)return Ys(t,n);let s=n-o-r;if(s<=0)return um(t,n,"right");let i=ln(e)>s?Ys(e,s):e,c=" ".repeat(n-ln(i)-o);return i+c+t}function Ml(e,t,n){let r=Lo(e,Math.max(0,n-2)),o=Math.max(1,n-1-ln(r)),s=he("border","\u250C\u2500 ")+he("accent",r)+he("border",` ${"\u2500".repeat(o)}\u2510`),i=he("border",`\u2514${"\u2500".repeat(n+2)}\u2518`),c=he("border","\u2502"),p=t.map(f=>`${c} ${um(f,n)} ${c}`);return[s,...p,i]}function rj(e,t,n,r){let o=r?.gap??1,s=r?.leftWidth??Js(Math.round(n*.38),28,44),i=n-s-o,c=Math.max(e.rows.length,t.rows.length),p=A=>{let O=[...A];for(;O.length<c;)O.push("");return O},f=Ml(e.title,p(e.rows),s-4),I=Ml(t.title,p(t.rows),i-4),$=" ".repeat(o);return f.map((A,O)=>A+$+(I[O]??um("",i)))}function qE(e,t,n){switch(e){case"running":return he(t||n?"accent":"muted","\u25CF");case"failed":return he("error","\u2717");default:return he("success","\u2713")}}function UE(e,t,n,r=Date.now(),o=0){return t?r-o<am?he("success","\u2713",!0):he("success","\u2713"):he(n?"accent":"dim",String(e))}function Fo(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||_E;n.includes(s)||n.push(s)}return n.map((o,s)=>{let i=e.steps.filter(L=>(L.phase||_E)===o).map(L=>({...L,phaseIndex:s})),c=i.filter(L=>L.status!=="running").length,p=i.filter(L=>L.status==="failed").length,f=i.reduce((L,K)=>{let V=K.endedAt??t;return Math.max(L,V-K.startedAt)},0),I=-1;for(let L=0;L<i.length;L++){let K=i[L];K.status==="running"&&(I<0||K.startedAt>=i[I].startedAt)&&(I=L)}let $=r.get(o),A=i.length>0&&c===i.length&&p===0,O=A?i.reduce((L,K)=>Math.max(L,K.endedAt??0),0):0;return{title:o,...$?{detail:$}:{},agents:i,done:c,failed:p,outputTokens:i.reduce((L,K)=>L+K.outputTokens,0),elapsedMs:f,allDone:A,finishedAt:O,anchor:I}})}function Fl(e){return e.steps.reduce((t,n)=>t+n.outputTokens,0)}function oj(e){return e.steps.reduce((t,n)=>t+(n.toolCalls??0),0)}function KE(e,t=Date.now()){return Math.max(0,(e.endedAt??t)-e.startedAt)}function sj(e){return e.steps.length>tj||Fl(e)>nj}function ij(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 GE(e,t=Date.now()){let n=Fo(e,t),r=e.steps.length,o=e.steps.filter(f=>f.status!=="running").length,s=e.steps.filter(f=>f.status==="failed").length,i=[e.name],c=n.find(f=>f.anchor>=0);c?i.push(`${c.title} ${c.done}/${c.agents.length}`):n.length>0&&i.push(`${n[n.length-1].title} done`),i.push(`${o}/${r} agents`),i.push(`${Cl(Fl(e))} tok`),i.push(fr(KE(e,t))),s>0&&i.push(`${s} failed`);let p=i.join(" \xB7 ");return sj(e)?`large workflow \xB7 ${p}`:p}function BE(e,t){if(e.status==="running"&&e.outputTokens===0)return[`idle ${fr(t-e.startedAt)}`,"idle"];let n=Cl(e.outputTokens),r=e.toolCalls??0,o=fr((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=Js(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 lj(e,t,n,r,o){let s=`${e.done}/${e.agents.length}`,i=n?he("accent","\u276F"):" ",c=UE(t+1,e.allDone,n,o,e.finishedAt),p=Math.max(0,r-4-ln(s)),f=ln(e.title)>p?Ys(e.title,p,"\u2026"):e.title,I=e.allDone&&o-e.finishedAt<am,$=he(I&&!n?"success":n?"accent":"text",f),A=`${i}${c} ${$}`,O=he(n?"accent":"muted",s);return Ll(A,O,r,1)}function dj(e,t,n,r,o,s){let i=t?he("accent","\u276F"):" ",c=qE(e.status,t,n),p=he(t?"accent":"text",um(e.label,r)),f=`${i}${c} ${p}`,I=Math.max(0,o-ln(f)-1),$=BE(e,s).find(O=>ln(O)<=I)??"",A=he(t?"accent":pj(e)?"dim":"muted",$);return Ll(f,A,o,1)}function fj(e,t,n,r){let o=[];return e.forEach((s,i)=>{let p=`${UE(i+1,s.allDone,i===n,r,s.finishedAt)} ${he(i===n?"accent":"text",s.title)} ${he("muted",`${s.done}/${s.agents.length}`)}`;o.push(Lo(p,t));let{slice:f,more:I}=Ol(s.agents,0,WE);f.forEach(($,A)=>{let O=qE($.status,!1,A===s.anchor),L=BE($,r)[0]??"";o.push(Lo(` ${O} ${he("text",$.label)} ${he("muted",L)}`,t))}),I>0&&o.push(Lo(` ${he("dim",`\u2026+${I} more`)}`,t))}),o}function gj(e,t,n){let r=n?.now??Date.now(),o=Fo(e,r),s=e.steps,i=s.filter(He=>He.status!=="running").length,c=s.filter(He=>He.status==="failed").length,p=[`${i}/${s.length} agents`,`${Cl(Fl(e))} tok`,`${oj(e)} tools`,fr(KE(e,r)),...c>0?[`${c} failed`]:[]].join(" \xB7 "),f=[Ll(he("accent",e.name,!0),he("muted",p),t,2),...e.description?[he("muted",Lo(e.description,t))]:[]],I=n?.footer?[he("muted",Lo(n.footerText??hj(),t))]:[];if(o.length===0)return[...f,...Ml("Phases",["(no agents yet)"],Math.max(0,t-4)),...I];let $=Js(n?.selectedPhase??ij(o),0,Math.max(0,o.length-1)),A=Js(Math.round(t*.38),28,44),O=t-A-1-4;if(t<mj||O<cj)return[...f,...fj(o,t,$,r),...I];let L=o[$],{slice:K,start:V,more:G}=Ol(o,$,aj),oe=K.map((He,Gt)=>lj(He,V+Gt,V+Gt===$,A-4,r));G>0&&oe.push(he("dim",`\u2026+${G} more`));let $e=n?.filter?n.filter(L.agents):L.agents,De=$e.length?Js(Math.max(...$e.map(He=>ln(He.label))),6,uj):6,{slice:Qe,more:xe}=Ol($e,0,n?.agentWindow??WE),se=Qe.map((He,Gt)=>dj(He,!1,Gt===L.anchor,De,O,r));xe>0&&se.push(he("dim",`\u2026+${xe} more`));let v=rj({title:"Phases",rows:oe},{title:`${L.title} \xB7 ${$e.length} agents${n?.filterLabel??""}`,rows:se},t,{leftWidth:A,gap:1});return[...f,...v,...I]}function zE(e,t=[],n=96,r,o){let s=gj(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}:{}}),i=new Set(t);if(o?.drill){let p=Fo(e,e.endedAt??Date.now()),f=p[Math.max(0,Math.min(p.length-1,r??0))];for(let I of f?.agents??[])i.add(I.label)}if(i.size===0)return s;let c=[];for(let p of e.steps)if(i.has(p.label)){for(let f of p.tasks??[]){let I=f.status==="completed"?"[x]":f.status==="in_progress"?"[>]":"[ ]";c.push(` ${he("muted",I)} ${he("text",f.content)}`)}p.detail&&c.push(` ${he("dim",p.detail)}`)}return c.length===0?s:[...s.slice(0,-1),...c,s[s.length-1]]}function hj(){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 DE,he,tj,nj,am,Js,Lo,_E,WE,aj,uj,mj,cj,pj,Xs=u(()=>{Vs();DE={text:D.text,muted:D.mute,dim:D.dim,accent:D.accent,success:D.tool,error:D.bad,border:D.line},he=(e,t,n=!1)=>n?te(t,DE[e],{bold:!0}):te(t,DE[e]),tj=25,nj=15e5,am=420;Js=(e,t,n)=>Math.max(t,Math.min(n,e)),Lo=(e,t)=>ln(e)>t?Ys(e,Math.max(0,t),"\u2026"):e;_E="Workflow";WE=16,aj=12,uj=18,mj=72,cj=24;pj=e=>e.status==="running"&&e.outputTokens===0});import{readFileSync as xj}from"node:fs";import{basename as yj}from"node:path";import{StringEnum as bj}from"@earendil-works/pi-ai";import{defineTool as Ij}from"@earendil-works/pi-coding-agent";function VE(e){HE=e}function wj(e){let t=e.replace(/^(?:\s+|\/\/[^\n]*\n|\/\*[\s\S]*?\*\/)*/,""),n=/^export\s+const\s+meta\s*=\s*/.exec(t);if(!n)throw new ze("a workflow script must start with `export const meta = { name, description }`");let r=e.length-t.length,o=n[0].length,s=0,i=null,c=-1;for(let O=o;O<t.length;O++){let L=t[O];if(i){L==="\\"?O++:L===i&&(i=null);continue}if(L==='"'||L==="'"||L==="`")i=L;else if(L==="{"||L==="[")s++;else if((L==="}"||L==="]")&&(s--,s===0)){c=O+1;break}}if(c===-1)throw new ze("meta is not a closed literal object");let p=t.slice(o,c),f=e.slice(r+c).replace(/^\s*;/,"");if(/^\s*(import|export)\b/m.test(f))throw new ze("a workflow body must not contain import or export declarations");if(/\bimport\s*\(/.test(f))throw new ze("a workflow body must not use dynamic import()");let I;try{I=new Function(`"use strict"; return (${p});`)()}catch(O){throw new ze(`meta must be a literal object: ${O instanceof Error?O.message:String(O)}`)}if(typeof I!="object"||I===null)throw new ze("meta must be an object");let $=I;if(typeof $.name!="string"||!$.name.trim())throw new ze("meta.name is required");if(typeof $.description!="string"||!$.description.trim())throw new ze("meta.description is required");let A=Array.isArray($.phases)?$.phases.filter(O=>typeof O=="object"&&O!==null).map(O=>({title:String(O.title??""),...typeof O.detail=="string"?{detail:O.detail}:{}})).filter(O=>O.title):void 0;return{meta:{name:$.name,description:$.description,...typeof $.whenToUse=="string"?{whenToUse:$.whenToUse}:{},...A?{phases:A}:{}},body:f}}function kj(e){let t=["agent","parallel","pipeline","phase","log","args","budget"],n=`"use strict"; return (async () => {
88
+ Reply with ONLY a corrected JSON value.`}function Cl(e,t=80){let n=e.split(`
89
+ `).map(r=>r.trim()).find(r=>r.length>0)??"";return n.length>t?`${n.slice(0,t)}\u2026`:n}var nj,rj,jE,DE,ze,NE=u(()=>{LE();nj=1e3,rj=4096,jE=100,DE=300*1e3;ze=class extends Error{constructor(t){super(t),this.name="WorkflowError"}}});import{parseColor as Bn,styleText as uj}from"@earendil-works/pi-tui";function mj(e,t){return uj(e,t,am)}function ne(e,t,n){return mj(e,{...n,fg:t})}var am,_,qE,Vs=u(()=>{am="truecolor",_={text:Bn("#e6e6e6"),mute:Bn("#8b8b8b"),dim:Bn("#5c5c5c"),user:Bn("#d0d0d0"),accent:Bn("#c4b5fd"),tool:Bn("#6ee7b7"),bad:Bn("#f0a8a4"),warn:Bn("#e6b15a"),line:Bn("#3a3a3a")};qE={heading:e=>ne(e,_.text,{bold:!0}),link:e=>ne(e,_.accent,{underline:!0}),linkUrl:e=>ne(e,_.mute),code:e=>ne(e,_.text),codeBlock:e=>ne(e,_.text),codeBlockBorder:e=>ne(e,_.line),quote:e=>ne(e,_.mute,{italic:!0}),quoteBorder:e=>ne(e,_.line),hr:e=>ne(e,_.line),listBullet:e=>ne(e,_.mute),bold:e=>ne(e,_.text,{bold:!0}),italic:e=>ne(e,_.text,{italic:!0}),strikethrough:e=>ne(e,_.mute,{strikethrough:!0}),underline:e=>ne(e,_.text,{underline:!0})}});import{truncateToWidth as Ys,visibleWidth as dn}from"@earendil-works/pi-tui";function fr(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 GE(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 jl(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function mm(e,t,n="left"){if(t<=0)return"";let r=dn(e);if(r>t)return Ys(e,t);let o=" ".repeat(t-r);return n==="right"?o+e:e+o}function Dl(e,t,n,r=1){if(n<=0)return"";let o=dn(t);if(o>=n)return Ys(t,n);let s=n-o-r;if(s<=0)return mm(t,n,"right");let i=dn(e)>s?Ys(e,s):e,c=" ".repeat(n-dn(i)-o);return i+c+t}function Ll(e,t,n){let r=Lo(e,Math.max(0,n-2)),o=Math.max(1,n-1-dn(r)),s=he("border","\u250C\u2500 ")+he("accent",r)+he("border",` ${"\u2500".repeat(o)}\u2510`),i=he("border",`\u2514${"\u2500".repeat(n+2)}\u2518`),c=he("border","\u2502"),p=t.map(f=>`${c} ${mm(f,n)} ${c}`);return[s,...p,i]}function lj(e,t,n,r){let o=r?.gap??1,s=r?.leftWidth??Js(Math.round(n*.38),28,44),i=n-s-o,c=Math.max(e.rows.length,t.rows.length),p=P=>{let R=[...P];for(;R.length<c;)R.push("");return R},f=Ll(e.title,p(e.rows),s-4),w=Ll(t.title,p(t.rows),i-4),$=" ".repeat(o);return f.map((P,R)=>P+$+(w[R]??mm("",i)))}function WE(e,t,n){switch(e){case"running":return he(t||n?"accent":"muted","\u25CF");case"failed":return he("error","\u2717");default:return he("success","\u2713")}}function BE(e,t,n,r=Date.now(),o=0){return t?r-o<um?he("success","\u2713",!0):he("success","\u2713"):he(n?"accent":"dim",String(e))}function Fo(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||KE;n.includes(s)||n.push(s)}return n.map((o,s)=>{let i=e.steps.filter(C=>(C.phase||KE)===o).map(C=>({...C,phaseIndex:s})),c=i.filter(C=>C.status!=="running").length,p=i.filter(C=>C.status==="failed").length,f=i.reduce((C,U)=>{let z=U.endedAt??t;return Math.max(C,z-U.startedAt)},0),w=-1;for(let C=0;C<i.length;C++){let U=i[C];U.status==="running"&&(w<0||U.startedAt>=i[w].startedAt)&&(w=C)}let $=r.get(o),P=i.length>0&&c===i.length&&p===0,R=P?i.reduce((C,U)=>Math.max(C,U.endedAt??0),0):0;return{title:o,...$?{detail:$}:{},agents:i,done:c,failed:p,outputTokens:i.reduce((C,U)=>C+U.outputTokens,0),elapsedMs:f,allDone:P,finishedAt:R,anchor:w}})}function _l(e){return e.steps.reduce((t,n)=>t+n.outputTokens,0)}function dj(e){return e.steps.reduce((t,n)=>t+(n.toolCalls??0),0)}function zE(e,t=Date.now()){return Math.max(0,(e.endedAt??t)-e.startedAt)}function fj(e){return e.steps.length>cj||_l(e)>pj}function gj(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 HE(e,t=Date.now()){let n=Fo(e,t),r=e.steps.length,o=e.steps.filter(f=>f.status!=="running").length,s=e.steps.filter(f=>f.status==="failed").length,i=[e.name],c=n.find(f=>f.anchor>=0);c?i.push(`${c.title} ${c.done}/${c.agents.length}`):n.length>0&&i.push(`${n[n.length-1].title} done`),i.push(`${o}/${r} agents`),i.push(`${jl(_l(e))} tok`),i.push(fr(zE(e,t))),s>0&&i.push(`${s} failed`);let p=i.join(" \xB7 ");return fj(e)?`large workflow \xB7 ${p}`:p}function JE(e,t){if(e.status==="running"&&e.outputTokens===0)return[`idle ${fr(t-e.startedAt)}`,"idle"];let n=jl(e.outputTokens),r=e.toolCalls??0,o=fr((e.endedAt??t)-e.startedAt);return[`${n} tok \xB7 ${r} tools \xB7 ${o}`,`${n} tok \xB7 ${r} tools`,`${n} tok`]}function Fl(e,t,n){if(e.length<=n)return{slice:e,start:0,more:0};let r=Math.max(1,n-1),o=Js(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 $j(e,t,n,r,o){let s=`${e.done}/${e.agents.length}`,i=n?he("accent","\u276F"):" ",c=BE(t+1,e.allDone,n,o,e.finishedAt),p=Math.max(0,r-4-dn(s)),f=dn(e.title)>p?Ys(e.title,p,"\u2026"):e.title,w=e.allDone&&o-e.finishedAt<um,$=he(w&&!n?"success":n?"accent":"text",f),P=`${i}${c} ${$}`,R=he(n?"accent":"muted",s);return Dl(P,R,r,1)}function Ij(e,t,n,r,o,s){let i=t?he("accent","\u276F"):" ",c=WE(e.status,t,n),p=he(t?"accent":"text",mm(e.label,r)),f=`${i}${c} ${p}`,w=Math.max(0,o-dn(f)-1),$=JE(e,s).find(R=>dn(R)<=w)??"",P=he(t?"accent":wj(e)?"dim":"muted",$);return Dl(f,P,o,1)}function kj(e,t,n,r){let o=[];return e.forEach((s,i)=>{let p=`${BE(i+1,s.allDone,i===n,r,s.finishedAt)} ${he(i===n?"accent":"text",s.title)} ${he("muted",`${s.done}/${s.agents.length}`)}`;o.push(Lo(p,t));let{slice:f,more:w}=Fl(s.agents,0,VE);f.forEach(($,P)=>{let R=WE($.status,!1,P===s.anchor),C=JE($,r)[0]??"";o.push(Lo(` ${R} ${he("text",$.label)} ${he("muted",C)}`,t))}),w>0&&o.push(Lo(` ${he("dim",`\u2026+${w} more`)}`,t))}),o}function Tj(e,t,n){let r=n?.now??Date.now(),o=Fo(e,r),s=e.steps,i=s.filter(He=>He.status!=="running").length,c=s.filter(He=>He.status==="failed").length,p=[`${i}/${s.length} agents`,`${jl(_l(e))} tok`,`${dj(e)} tools`,fr(zE(e,r)),...c>0?[`${c} failed`]:[]].join(" \xB7 "),f=[Dl(he("accent",e.name,!0),he("muted",p),t,2),...e.description?[he("muted",Lo(e.description,t))]:[]],w=n?.footer?[he("muted",Lo(n.footerText??vj(),t))]:[];if(o.length===0)return[...f,...Ll("Phases",["(no agents yet)"],Math.max(0,t-4)),...w];let $=Js(n?.selectedPhase??gj(o),0,Math.max(0,o.length-1)),P=Js(Math.round(t*.38),28,44),R=t-P-1-4;if(t<yj||R<bj)return[...f,...kj(o,t,$,r),...w];let C=o[$],{slice:U,start:z,more:G}=Fl(o,$,hj),ee=U.map((He,Gt)=>$j(He,z+Gt,z+Gt===$,P-4,r));G>0&&ee.push(he("dim",`\u2026+${G} more`));let ye=n?.filter?n.filter(C.agents):C.agents,De=ye.length?Js(Math.max(...ye.map(He=>dn(He.label))),6,xj):6,{slice:Qe,more:xe}=Fl(ye,0,n?.agentWindow??VE),ie=Qe.map((He,Gt)=>Ij(He,!1,Gt===C.anchor,De,R,r));xe>0&&ie.push(he("dim",`\u2026+${xe} more`));let v=lj({title:"Phases",rows:ee},{title:`${C.title} \xB7 ${ye.length} agents${n?.filterLabel??""}`,rows:ie},t,{leftWidth:P,gap:1});return[...f,...v,...w]}function YE(e,t=[],n=96,r,o){let s=Tj(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}:{}}),i=new Set(t);if(o?.drill){let p=Fo(e,e.endedAt??Date.now()),f=p[Math.max(0,Math.min(p.length-1,r??0))];for(let w of f?.agents??[])i.add(w.label)}if(i.size===0)return s;let c=[];for(let p of e.steps)if(i.has(p.label)){for(let f of p.tasks??[]){let w=f.status==="completed"?"[x]":f.status==="in_progress"?"[>]":"[ ]";c.push(` ${he("muted",w)} ${he("text",f.content)}`)}p.detail&&c.push(` ${he("dim",p.detail)}`)}return c.length===0?s:[...s.slice(0,-1),...c,s[s.length-1]]}function vj(){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 UE,he,cj,pj,um,Js,Lo,KE,VE,hj,xj,yj,bj,wj,Xs=u(()=>{Vs();UE={text:_.text,muted:_.mute,dim:_.dim,accent:_.accent,success:_.tool,error:_.bad,border:_.line},he=(e,t,n=!1)=>n?ne(t,UE[e],{bold:!0}):ne(t,UE[e]),cj=25,pj=15e5,um=420;Js=(e,t,n)=>Math.max(t,Math.min(n,e)),Lo=(e,t)=>dn(e)>t?Ys(e,Math.max(0,t),"\u2026"):e;KE="Workflow";VE=16,hj=12,xj=18,yj=72,bj=24;wj=e=>e.status==="running"&&e.outputTokens===0});import{readFileSync as Ej}from"node:fs";import{basename as Sj}from"node:path";import{StringEnum as Pj}from"@earendil-works/pi-ai";import{defineTool as Aj}from"@earendil-works/pi-coding-agent";function ZE(e){XE=e}function Mj(e){let t=e.replace(/^(?:\s+|\/\/[^\n]*\n|\/\*[\s\S]*?\*\/)*/,""),n=/^export\s+const\s+meta\s*=\s*/.exec(t);if(!n)throw new ze("a workflow script must start with `export const meta = { name, description }`");let r=e.length-t.length,o=n[0].length,s=0,i=null,c=-1;for(let R=o;R<t.length;R++){let C=t[R];if(i){C==="\\"?R++:C===i&&(i=null);continue}if(C==='"'||C==="'"||C==="`")i=C;else if(C==="{"||C==="[")s++;else if((C==="}"||C==="]")&&(s--,s===0)){c=R+1;break}}if(c===-1)throw new ze("meta is not a closed literal object");let p=t.slice(o,c),f=e.slice(r+c).replace(/^\s*;/,"");if(/^\s*(import|export)\b/m.test(f))throw new ze("a workflow body must not contain import or export declarations");if(/\bimport\s*\(/.test(f))throw new ze("a workflow body must not use dynamic import()");let w;try{w=new Function(`"use strict"; return (${p});`)()}catch(R){throw new ze(`meta must be a literal object: ${R instanceof Error?R.message:String(R)}`)}if(typeof w!="object"||w===null)throw new ze("meta must be an object");let $=w;if(typeof $.name!="string"||!$.name.trim())throw new ze("meta.name is required");if(typeof $.description!="string"||!$.description.trim())throw new ze("meta.description is required");let P=Array.isArray($.phases)?$.phases.filter(R=>typeof R=="object"&&R!==null).map(R=>({title:String(R.title??""),...typeof R.detail=="string"?{detail:R.detail}:{}})).filter(R=>R.title):void 0;return{meta:{name:$.name,description:$.description,...typeof $.whenToUse=="string"?{whenToUse:$.whenToUse}:{},...P?{phases:P}:{}},body:f}}function Oj(e){let t=["agent","parallel","pipeline","phase","log","args","budget"],n=`"use strict"; return (async () => {
90
90
  ${e}
91
- })();`,r;try{r=new Function(...t,n)}catch(o){throw new ze(`workflow did not compile: ${o instanceof Error?o.message:String(o)}`)}return r}function Tj(e){return e.getLastAssistantText()?.trim()??""}function vj(){return async({prompt:e,agentType:t,effort:n,model:r,isolation:o})=>{let s=Kr.get(t)??Kr.get("task");if(!s)throw new ze(`no agent named ${t}`);let i=o==="worktree"?await vE(process.cwd(),t):null,c=await om({agent:s.name,effort:n??s.effort,...i?{worktree:i.path}:{}});try{await c.prompt(`${s.prompt}
91
+ })();`,r;try{r=new Function(...t,n)}catch(o){throw new ze(`workflow did not compile: ${o instanceof Error?o.message:String(o)}`)}return r}function Cj(e){return e.getLastAssistantText()?.trim()??""}function Lj(){return async({prompt:e,agentType:t,effort:n,model:r,isolation:o})=>{let s=Kr.get(t)??Kr.get("task");if(!s)throw new ze(`no agent named ${t}`);let i=o==="worktree"?await AE(process.cwd(),t):null,c=await sm({agent:s.name,effort:n??s.effort,...i?{worktree:i.path}:{}});try{await c.prompt(`${s.prompt}
92
92
 
93
93
  Task:
94
- ${e}`);let p=c.getSessionStats(),f=r??Ej(c);return{text:Tj(c),outputTokens:p.tokens.output,toolCalls:p.toolCalls,...f?{model:f}:{}}}finally{c.dispose(),await i?.remove()}}}function Ej(e){return e.model?.id??e.model?.name}function JE(e){let t=()=>e??HE;return Ij({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:Sj,executionMode:"sequential",async execute(n,r,o,s,i){let c=r.path?xj(r.path,"utf8"):r.code??"";if(!c.trim())throw new ze("provide code or path");let{meta:p,body:f}=wj(c);if(r.path){let xe=yj(r.path).replace(/\.(js|mjs|cjs|ts)$/,"");if(xe!==p.name)throw new ze(`meta.name "${p.name}" must match the script filename "${xe}"`)}let I=kj(f),$=Date.now(),A=[],O=0,L=0,K=(xe,se)=>({name:p.name,...p.description?{description:p.description}:{},ok:xe,agents:L,outputTokens:O,startedAt:$,phases:p.phases??[],steps:A,...se?{error:se}:{}}),V=(xe,se)=>{i.ui.setStatus(jl,se?void 0:GE(xe)),s?.({content:[],details:K(!1)})},G=xe=>{L=xe.length,O=xe.reduce((se,v)=>se+v.outputTokens,0),A.splice(0,A.length,...xe.map(se=>({label:se.label,phase:se.phase,agent:se.agentType,status:se.status,outputTokens:se.outputTokens,startedAt:se.startedAt,...se.toolCalls!==void 0?{toolCalls:se.toolCalls}:{},...se.model?{model:se.model}:{},...se.endedAt?{endedAt:se.endedAt}:{},...se.detail?{detail:se.detail}:{},...se.tasks?{tasks:se.tasks}:{}}))),V({name:p.name,...p.description?{description:p.description}:{},phases:p.phases??[],steps:A,startedAt:$},!1)},oe=vj(),$e=LE({invoke:r.agent?Pj(oe,r.agent):oe,budgetTotal:r.budget??null,onProgress:G,...o?{signal:o}:{},...t()?.isPaused?{isPaused:t().isPaused}:{}}),De=new AbortController,Qe=setTimeout(()=>De.abort(),$j);o&&o.addEventListener("abort",()=>De.abort(),{once:!0}),t()?.onStop?.(()=>De.abort());try{let xe=await Promise.race([I($e.agent,$e.parallel,$e.pipeline,$e.phase,$e.log,$e.args,$e.budget),new Promise((v,He)=>De.signal.addEventListener("abort",()=>He(new ze("workflow timed out or was aborted"))))]),se=Date.now();return i.ui.setStatus(jl,void 0),{content:[{type:"text",text:`${p.name}: ${L} agent call(s), ${O} output tokens in ${fr(se-$)}
94
+ ${e}`);let p=c.getSessionStats(),f=r??Fj(c);return{text:Cj(c),outputTokens:p.tokens.output,toolCalls:p.toolCalls,...f?{model:f}:{}}}finally{c.dispose(),await i?.remove()}}}function Fj(e){return e.model?.id??e.model?.name}function QE(e){let t=()=>e??XE;return Aj({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:jj,executionMode:"sequential",async execute(n,r,o,s,i){let c=r.path?Ej(r.path,"utf8"):r.code??"";if(!c.trim())throw new ze("provide code or path");let{meta:p,body:f}=Mj(c);if(r.path){let xe=Sj(r.path).replace(/\.(js|mjs|cjs|ts)$/,"");if(xe!==p.name)throw new ze(`meta.name "${p.name}" must match the script filename "${xe}"`)}let w=Oj(f),$=Date.now(),P=[],R=0,C=0,U=(xe,ie)=>({name:p.name,...p.description?{description:p.description}:{},ok:xe,agents:C,outputTokens:R,startedAt:$,phases:p.phases??[],steps:P,...ie?{error:ie}:{}}),z=(xe,ie)=>{i.ui.setStatus(Nl,ie?void 0:HE(xe)),s?.({content:[],details:U(!1)})},G=xe=>{C=xe.length,R=xe.reduce((ie,v)=>ie+v.outputTokens,0),P.splice(0,P.length,...xe.map(ie=>({label:ie.label,phase:ie.phase,agent:ie.agentType,status:ie.status,outputTokens:ie.outputTokens,startedAt:ie.startedAt,...ie.toolCalls!==void 0?{toolCalls:ie.toolCalls}:{},...ie.model?{model:ie.model}:{},...ie.endedAt?{endedAt:ie.endedAt}:{},...ie.detail?{detail:ie.detail}:{},...ie.tasks?{tasks:ie.tasks}:{}}))),z({name:p.name,...p.description?{description:p.description}:{},phases:p.phases??[],steps:P,startedAt:$},!1)},ee=Lj(),ye=_E({invoke:r.agent?Dj(ee,r.agent):ee,budgetTotal:r.budget??null,onProgress:G,...o?{signal:o}:{},...t()?.isPaused?{isPaused:t().isPaused}:{}}),De=new AbortController,Qe=setTimeout(()=>De.abort(),Rj);o&&o.addEventListener("abort",()=>De.abort(),{once:!0}),t()?.onStop?.(()=>De.abort());try{let xe=await Promise.race([w(ye.agent,ye.parallel,ye.pipeline,ye.phase,ye.log,ye.args,ye.budget),new Promise((v,He)=>De.signal.addEventListener("abort",()=>He(new ze("workflow timed out or was aborted"))))]),ie=Date.now();return i.ui.setStatus(Nl,void 0),{content:[{type:"text",text:`${p.name}: ${C} agent call(s), ${R} output tokens in ${fr(ie-$)}
95
95
 
96
- ${Aj(xe)}`}],details:{...K(!0),endedAt:se}}}catch(xe){let se=xe instanceof Error?xe.message:String(xe);return i.ui.setStatus(jl,void 0),{content:[{type:"text",text:`${p.name} failed after ${L} agent call(s): ${se}`}],details:{...K(!1,se),endedAt:Date.now()},isError:!0}}finally{clearTimeout(Qe),t()?.onStop?.(null)}}})}function Pj(e,t){return n=>e({...n,agentType:t})}function Aj(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var jl,HE,$j,Sj,Dl=u(()=>{Nr();Hs();Al();FE();Xs();jl="workflow",HE=null;$j=600*1e3;Sj=Z.Object({code:Z.Optional(Z.String({description:"The workflow script source"})),path:Z.Optional(Z.String({description:"Path to a workflow script, instead of code"})),agent:Z.Optional(bj(["scout","task","reviewer"],{description:"Default agent profile for calls"})),budget:Z.Optional(Z.Number({description:"Output-token ceiling for the whole run"}))})});import{Type as At}from"@earendil-works/pi-ai";import{defineTool as Rj}from"@earendil-works/pi-coding-agent";var YE,XE=u(()=>{Hs();Hs();YE=Rj({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:At.Object({agent:At.Optional(At.String()),effort:At.Optional(At.String()),task:At.Optional(At.String()),tasks:At.Optional(At.Array(At.Object({agent:At.Optional(At.String()),effort:At.Optional(At.String()),task:At.String()})))}),executionMode:"parallel",async execute(e,t,n,r,o){let s=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}],i=[];for(let p of s)p.task.trim()&&(i.push(await yE({...p,cwd:o?.cwd})),r?.({content:[],details:{agents:i.map(f=>({id:f.id,agent:f.agent,status:f.status}))}}));if(i.length===0)throw new Error("task or tasks is required");return await bE(n),{content:[{type:"text",text:i.map(p=>`## ${p.agent}#${p.id} ${p.status}
96
+ ${_j(xe)}`}],details:{...U(!0),endedAt:ie}}}catch(xe){let ie=xe instanceof Error?xe.message:String(xe);return i.ui.setStatus(Nl,void 0),{content:[{type:"text",text:`${p.name} failed after ${C} agent call(s): ${ie}`}],details:{...U(!1,ie),endedAt:Date.now()},isError:!0}}finally{clearTimeout(Qe),t()?.onStop?.(null)}}})}function Dj(e,t){return n=>e({...n,agentType:t})}function _j(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var Nl,XE,Rj,jj,ql=u(()=>{Nr();Hs();Ol();NE();Xs();Nl="workflow",XE=null;Rj=600*1e3;jj=Z.Object({code:Z.Optional(Z.String({description:"The workflow script source"})),path:Z.Optional(Z.String({description:"Path to a workflow script, instead of code"})),agent:Z.Optional(Pj(["scout","task","reviewer"],{description:"Default agent profile for calls"})),budget:Z.Optional(Z.Number({description:"Output-token ceiling for the whole run"}))})});import{Type as At}from"@earendil-works/pi-ai";import{defineTool as Nj}from"@earendil-works/pi-coding-agent";var eS,tS=u(()=>{Hs();Hs();eS=Nj({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:At.Object({agent:At.Optional(At.String()),effort:At.Optional(At.String()),task:At.Optional(At.String()),tasks:At.Optional(At.Array(At.Object({agent:At.Optional(At.String()),effort:At.Optional(At.String()),task:At.String()})))}),executionMode:"parallel",async execute(e,t,n,r,o){let s=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}],i=[];for(let p of s)p.task.trim()&&(i.push(await IE({...p,cwd:o?.cwd})),r?.({content:[],details:{agents:i.map(f=>({id:f.id,agent:f.agent,status:f.status}))}}));if(i.length===0)throw new Error("task or tasks is required");return await kE(n),{content:[{type:"text",text:i.map(p=>`## ${p.agent}#${p.id} ${p.status}
97
97
  ${p.result??""}`).join(`
98
98
 
99
- `)}],details:{agents:i.map(p=>({id:p.id,status:p.status}))}}}})});function ZE(){return e=>{e.on("session_start",()=>{let t=new Set(e.getActiveTools());for(let n of Mj)e.getAllTools().some(r=>r.name===n)&&t.add(n);e.setActiveTools([...t])})}}var Mj,QE=u(()=>{Mj=["grep","find","ls"]});var eS={};Mt(eS,{BUILD_ENTRY:()=>cm,openSession:()=>qj});import{join as Oj}from"node:path";import{createAgentSession as Cj,createCodemodeExtension as Lj,createMcpExtension as Fj,DefaultResourceLoader as jj,SessionManager as mm,SettingsManager as Dj}from"@earendil-works/pi-coding-agent";function Nj(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 qj(e){let t=Dj.create(e.cwd,Ve,{projectTrusted:!0}),n=e.sessionPath?mm.open(e.sessionPath):e.noSession?mm.inMemory(e.cwd):e.continueSession?mm.continueRecent(e.cwd):mm.create(e.cwd),r=(()=>{try{let I=n.getEntries().find($=>$.type==="custom"&&$.customType===cm)?.data?.version;return!I||I===Nt?void 0:`this session was written by HowToFix ${I}; you are running ${Nt}`}catch{return}})(),o=new jj({cwd:e.cwd,agentDir:Ve,settingsManager:t,appendSystemPrompt:[Ed],additionalSkillPaths:[hr(e.cwd)],extensionFactories:[Vv(),Ho(),gf(),Zu(),tE(),Jv(),Zv(),Lj(),Fj(),ZE()]});await o.reload();let s=await Cj({cwd:e.cwd,agentDir:Ve,settingsManager:t,sessionManager:n,resourceLoader:o,excludeTools:_j().exclude,customTools:[YE,bf,If,Nu,qu,Lv,Yv,Xv,JE(),em,tm,nm],thinkingLevel:e.thinking}),i=s.session.model;if(e.model){let f=await s.session.modelRuntime.getAvailable(),I=Nj(f,e.model);if(!I)throw s.session.dispose(),new Error(`unknown model '${e.model}'`);(i?.id!==I.id||i.provider!==I.provider)&&(await s.session.setModel(I),i=s.session.model)}if(!e.noSession&&n.getEntries().every(f=>f.type!=="custom"||f.customType!==cm))try{n.appendCustomEntry(cm,{version:Nt})}catch{}let c=i?`${i.provider}/${i.id}`:"no model",p=[Sd(s.modelFallbackMessage)].filter(f=>!!f);return i||p.push(`no model configured. run \`howtofix\` and use /login, or edit ${Oj(Ve,"models.json")}`),{session:s.session,dispose:()=>{wl(),s.session.dispose()},modelLabel:c,note:[r,...p].filter(Boolean).join(`
100
- `)||void 0}}var cm,_j,tS=u(()=>{Ko();hf();Nn();Vo();cc();ul();Uu();zu();dl();Qv();nE();hl();Dl();XE();QE();Il();Tl();kl();cm="howtofix.build",_j=()=>({exclude:process.platform==="win32"?[]:["powershell"]})});import{spawn as Uj}from"node:child_process";function Kj(e,t,n=2e3){return new Promise(r=>{let o=!1,s=f=>{o||(o=!0,clearTimeout(c),r(f))},i;try{i=Uj(e,[...t],{stdio:["ignore","pipe","ignore"]})}catch{s({ok:!1,stdout:""});return}let c=setTimeout(()=>{i.kill("SIGKILL"),s({ok:!1,stdout:""})},n),p=[];i.stdout?.on("data",f=>p.push(f)),i.on("error",()=>s({ok:!1,stdout:""})),i.on("close",f=>{s({ok:f===0,stdout:Buffer.concat(p).toString("utf8")})})})}function _l(){return process.env.XDG_SESSION_TYPE==="wayland"||(process.env.WAYLAND_DISPLAY?.length??0)>0}async function Gj(){let e=[];process.platform==="darwin"?e.push({command:"pbpaste",args:[]}):process.platform==="win32"?e.push({command:"powershell.exe",args:["-NoProfile","-Command","Get-Clipboard -Raw"]}):(_l()&&(e.push({command:"wl-paste",args:["--no-newline","--type","text/plain;charset=utf-8"]}),e.push({command:"wl-paste",args:["--no-newline","--type","text/plain"]}),e.push({command:"wl-paste",args:["--no-newline"]})),((process.env.DISPLAY?.length??0)>0||!_l())&&(e.push({command:"xclip",args:["-selection","clipboard","-o"]}),e.push({command:"xsel",args:["--clipboard","--output"]})),e.push({command:"termux-clipboard-get",args:[]}));for(let t of e){let n=await Kj(t.command,t.args);if(n.ok&&n.stdout.length>0)return n.stdout}}async function nS(){let e;try{let{getNativeClipboard:r}=await import("@earendil-works/pi-tui");e=r()}catch{e=void 0}if(e)try{let r=await e.getText();if(typeof r=="string"&&r.length>0)return{ok:!0,text:r}}catch{}let t=await Gj();return t!==void 0?{ok:!0,text:t}:{ok:!1,reason:`no clipboard tool could read it \u2014 ${_l()?"install wl-clipboard (wl-paste)":process.platform==="darwin"?"pbpaste should be present on macOS":"install xclip or xsel, or run under a display"}`}}function rS(){return process.platform!=="win32"}var oS=u(()=>{});import{mixColors as Wj,styleText as sS}from"@earendil-works/pi-tui";function Zs(e,t,n){let r=cS(n);return r>=1?t:r<=0?e:Wj(e,t,r)}function ql(e,t,n,r){return!Wr||e<=Nl?t:e>=uS?r:Zs(n,r,(e-Nl)/(uS-Nl))}function pS(e,t){return!Wr||t<=0||e<0?1:1-(1-cS(e/t))**3}function lS(e,t){return Wr&&e>=0&&e<t}function Kl(e,t,n=zj,r=400){return!Wr||n<=0||e<0||e>=r?t:Math.min(t,Math.floor(e/n)+1)}function dS(e,t,n=Date.now(),r=1400){if(!Wr||r<=0)return e;let o=n%r/r;return Zs(e,t,o<.5?o*2:(1-o)*2)}function Hj(e,t){let n=Math.abs(e-t);return n>=iS?0:Math.ceil((1-n/iS)*mS)/mS}function fS(e,t,n=Date.now()){let r=t.charMs??Bj;if(!Wr||e.length===0||r<=0)return sS(e,{fg:t.base},im);let o=e.length+aS*2,s=n/r%o-aS,i=(A,O)=>sS(A,{fg:Zs(t.base,t.bright,O)},im),c="",p=0,f=null,I=0,$=0;for(let A of e){let O=Hj($,s);f===null?f=O:O!==f&&(c+=i(e.slice(p,I),f),p=I,f=O),I+=A.length,$+=1}return c+i(e.slice(p),f??0)}var Wr,Bj,iS,aS,Nl,uS,mS,cS,pm,Ul,zj,Gl=u(()=>{Vs();Wr=process.env.HOWTOFIX_NO_MOTION!=="1",Bj=45,iS=5,aS=8,Nl=1e4,uS=6e4,mS=3,cS=e=>e<0?0:e>1?1:e;pm=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,!Wr)return this.value=this.target,this.velocity=0,this.value;n>250&&(this.velocity=0);let o=150,s=2*Math.sqrt(o),i=Math.max(1,Math.ceil(r/.008)),c=r/i;for(let p=0;p<i;p+=1)this.velocity+=(this.target-this.value)*o*c-this.velocity*s*c,this.value+=this.velocity*c;return this.moving||(this.value=this.target,this.velocity=0),this.value}};Ul=260,zj=45});import{execFile as Vj,execFileSync as Jj}from"node:child_process";import{promisify as Yj}from"node:util";import{createHash as hS}from"node:crypto";import{copyFileSync as Xj,existsSync as Wl,mkdirSync as lm,readFileSync as Zj,statSync as Qj}from"node:fs";import{dirname as xS,join as jn,resolve as yS}from"node:path";function tD(e){let t=yS(e);for(;;){if(Wl(jn(t,".git")))return!0;let n=xS(t);if(n===t)return!1;t=n}}async function dn(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 nD("git",t,{cwd:e.root,env:n,encoding:"utf8",maxBuffer:8*1024*1024});return r.trim()}function rD(e){return hS("sha1").update(e).digest("hex").slice(0,16)}function bS(e){let t=yS(e).replace(/\/+$/,"")||"/",n=jn(eD,rD(t)),r=jn(n,"git"),o={root:t,gitDir:r,metaFile:jn(n,"checkpoints.json"),disabled:!1};return!Wl(jn(r,"HEAD"))&&!tD(t)?(o.disabled=!0,o):(lm(n,{recursive:!0}),Wl(jn(r,"HEAD"))||(lm(r,{recursive:!0}),Jj("git",["init","--quiet","--initial-branch=howtofix"],{env:{...process.env,GIT_DIR:r},stdio:["ignore","ignore","pipe"]})),oD(t,r),o)}function oD(e,t){let n=jn(e,".git","info","exclude");try{if(!Qj(n).isFile())return;lm(jn(t,"info"),{recursive:!0}),Xj(n,jn(t,"info","exclude"))}catch{}}function zl(e){try{let t=JSON.parse(Zj(e.metaFile,"utf8"));if(t?.version===1&&t.sessions)return t}catch{}return{version:1,sessions:{}}}function IS(e,t){lm(xS(e.metaFile),{recursive:!0}),tt(e.metaFile,`${JSON.stringify(t,null,1)}
101
- `)}function Hl(e,t){return e.disabled?[]:[...zl(e).sessions[t]??[]].sort((n,r)=>n.at-r.at)}async function $S(e,t,n){if(e.disabled)return null;let r;try{await dn(e,["add","-A","--ignore-errors","--"]),r=await dn(e,["write-tree"])}catch{return null}let s=Hl(e,t).find(A=>A.tree===r),i=Date.now(),c=`${i.toString(36)}-${hS("sha1").update(`${r}:${i}`).digest("hex").slice(0,6)}`,p=s?.commit;if(!p){let A=["howtofix checkpoint",`session ${t}`,`created ${new Date(i).toISOString()}`,`prompt ${n.slice(0,200)}`].join(`
102
- `);p=await dn(e,["commit-tree",r,"-m",A]),await dn(e,["update-ref",`${Bl}/${c}`,p])}let f={id:c,tree:r,commit:p,prompt:n,at:i},I=zl(e),$=[...I.sessions[t]??[],f];for(let A of $.slice(0,Math.max(0,$.length-gS)))try{await dn(e,["update-ref","-d",`${Bl}/${A.id}`])}catch{}return I.sessions[t]=$.slice(-gS),IS(e,I),f}async function wS(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 dn(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 dn(e,["clean","-fd"]);for(let o of r.split(`
103
- `)){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 kS(e,t){if(e.disabled)return[];try{await dn(e,["add","-A","--ignore-errors","--"]);let n=await dn(e,["write-tree"]);return n===t.tree?[]:(await dn(e,["diff-tree","-r","--name-status","--no-commit-id",t.tree,n])).split(`
104
- `).filter(Boolean).map(o=>{let[s,...i]=o.split(" ");return`${s?.[0]??"?"} ${i.at(-1)??""}`})}catch{return[]}}async function TS(e,t){if(e.disabled)return;let n=zl(e);for(let r of n.sessions[t]??[])try{await dn(e,["update-ref","-d",`${Bl}/${r.id}`])}catch{}delete n.sessions[t],IS(e,n)}var eD,Bl,gS,nD,vS=u(()=>{Nn();Hn();eD=jn(Ve,"rewind"),Bl="refs/howtofix",gS=100;nD=Yj(Vj)});function Xl(e=90){let t=Math.floor(Date.now()/e)%Vl.length;return Vl[t]??Vl[0]}function Br(e,t){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,Math.max(1,t-1))}\u2026`:n}function Me(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 sD(e,t=160){if(!e||typeof e!="object")return"";try{let n=JSON.stringify(e);return n&&n!=="{}"?Br(n,t):""}catch{return""}}function iD(e,t){switch(e){case"read":{let n=Me(t,"path")??"",r=[Me(t,"offset"),Me(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 Me(t,"path")??"";case"bash":case"powershell":return Me(t,"command")??"";case"grep":{let n=Me(t,"pattern")??"",r=Me(t,"path");return r?`${n} in ${r}`:n}case"find":case"glob":{let n=Me(t,"pattern")??Me(t,"glob")??"",r=Me(t,"path");return r?`${n} in ${r}`:n}case"ls":return Me(t,"path")??".";case"task":return Me(t,"agent")??"task";case"ask":return Me(t,"question")??"";case"web_search":return Me(t,"query")??"";case"web_fetch":return Me(t,"url")??"";case"lsp":{let n=Me(t,"action")??"lsp",r=Me(t,"file")??"",o=Me(t,"line");return o?`${n} ${r}:${o}`:`${n} ${r}`}case"think":return"private";case"todo":{let n=Me(t,"op")??"view",r=Me(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=Me(t,"op")??"list",r=Me(t,"key");return r?`${n} ${r}`:n}case"workflow":{let n=Me(t,"path");if(n)return n;let r=Me(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(`
105
- `)[0]??"";return s.length>40?`${s.slice(0,40)}\u2026`:s}default:return sD(t)}}function jo(e,t,n=100){let r=e.charAt(0).toUpperCase()+e.slice(1),o=Br(iD(e,t),n);return o?`${ES} ${r}(${o})`:`${ES} ${r}`}function aD(e){let t=0,n=0;for(let r of e.split(`
106
- `))r.startsWith("+")&&!r.startsWith("+++")?t+=1:r.startsWith("-")&&!r.startsWith("---")&&(n+=1);return{additions:t,removals:n}}function Zl(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 ei(e){let t=e?.details;return t&&typeof t=="object"?t:{}}function Ql(e){let t=e?.structuredContent;return t&&typeof t=="object"?t:{}}function SS(e){let t=e.exit_code;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function PS(e){return e.trim().split(`
107
- `).find(t=>t.trim())??""}function uD(e,t){let n=typeof e.output=="string"?e.output:t.replace(/\n*Command exited with code \d+\s*$/,""),r=Qs(n);return r>0?` (${r} line${r===1?"":"s"})`:""}function Qs(e){let t=e.trim();return t?t.split(`
108
- `).length:0}function fm(e,t,n){let r=Zl(t),o=ei(t),s=Ql(t);if(n){let i=SS(s);if(i!==void 0&&(e==="bash"||e==="powershell"))return`exit ${i}`;let c=r.trim().split(`
109
- `).find(p=>p.trim());return Br(c??"failed",120)}switch(e){case"read":{let i=o.truncation,c=Qs(r.replace(/\n*\[[^\]]*\]\s*$/,"")),p=c===0?"empty":`${c} line${c===1?"":"s"}`;return i?.truncated?`${p} (truncated from ${i.totalLines??"?"})`:p}case"edit":{let i=typeof o.diff=="string"?o.diff:"";if(!i)return"applied";let{additions:c,removals:p}=aD(i);return`+${c} / -${p}`}case"write":{let i=Qs(r);return i>0?`written (${i} lines)`:"written"}case"bash":case"powershell":{let i=SS(s);if(i===void 0)return r.trim()?Br(PS(r),120):"done";let c=uD(s,r);return i===0?`exit 0${c}`:`exit ${i}`}case"grep":{let i=Qs(r);return i===0?"no matches":`${i} match${i===1?"":"es"}`}case"web_search":{let i=typeof o.count=="number"?o.count:Qs(r);return i===0?"no results":`${i} result${i===1?"":"s"}`}case"web_fetch":return`${typeof o.chars=="number"?o.chars:r.length} chars`;case"lsp":{let i=typeof o.count=="number"?o.count:void 0;return typeof o.error=="string"?Br(o.error,120):i===void 0?Br(PS(r),120):`${i} location${i===1?"":"s"}`}case"todo":{let i=o.todos??[];if(!Array.isArray(i)||i.length===0)return"list cleared";let c=i.filter(f=>f.status==="completed").length,p=i.filter(f=>f.status==="pending"||f.status==="in_progress").length;return`${c}/${i.length} done, ${p} open`}case"context":{let i=o.notes,c=i?Object.keys(i).length:0;return c===0?"no notes":`${c} note${c===1?"":"s"} held`}case"workflow":{let i=typeof o.agents=="number"?o.agents:0,c=typeof o.outputTokens=="number"?o.outputTokens:0,p=Array.isArray(o.steps)?o.steps.filter(I=>I.status==="failed").length:0;if(typeof o.error=="string")return`failed after ${i} agent(s)`;let f=typeof o.startedAt=="number"&&typeof o.endedAt=="number"?`, ${fr(o.endedAt-o.startedAt)}`:"";return`${i} agent(s), ${c} tokens${f}${p>0?`, ${p} failed`:""}`}default:{let i=r.trim().split(`
110
- `).find(c=>c.trim());return i?Br(i,120):"done"}}}function AS(e,t){let n=ei(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
111
- `).filter(r=>r.length>0).slice(0,12);if(e==="bash"||e==="powershell"){let r=Ql(t);return(typeof r.output=="string"?r.output:Zl(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
112
- `).filter(i=>i.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 i=s.status==="running"?"\u25B8":s.status==="failed"?"\xD7":"\u2713",c=s.phase?`${s.phase} \xB7 `:"";return`${i} ${c}${s.label??"agent"}`}).slice(-6):[]}function RS(e,t){let n=ei(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
113
- `).filter(c=>c.length>0).slice(0,dm);let r=Ql(t),s=(typeof r.output=="string"?r.output:Zl(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
114
- `),i=s.slice(0,dm);return s.length>dm&&i.push(`\u2026 ${s.length-dm} more line(s)`),i}var ES,Jl,Yl,Vl,dm,ed=u(()=>{Xs();ES="\u25CF",Jl="\u2514",Yl="\u22EF",Vl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];dm=400});import{Markdown as mD,wrapTextWithAnsi as cD}from"@earendil-works/pi-tui";function MS(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 pD(e){return e.content.filter(t=>t.type==="toolCall").map(t=>({name:t.name,arguments:t.arguments}))}function hm(e){let t=[];for(let n of e)if(n.role==="user"){let r=MS(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=MS(n.content).trim(),o=pD(n);r?t.push({id:`a-${n.timestamp}`,kind:n.stopReason==="error"?"error":"assistant",title:n.errorMessage?"failed":"fix",body:n.errorMessage?`${n.errorMessage}
115
-
116
- ${r}`:r}):n.errorMessage&&t.push({id:`e-${n.timestamp}`,kind:"error",title:"failed",body:n.errorMessage}),o.forEach((s,i)=>{t.push({id:`c-${n.timestamp}-${i}`,kind:"tool",title:"tool",body:jo(s.name,s.arguments)})})}else n.role==="toolResult"&&t.push({id:`r-${n.toolCallId}`,kind:"result",title:n.toolName,body:fm(n.toolName,{content:n.content},n.isError)});return t}function OS(e,t,n){return cD(e,Math.max(8,t)).map(r=>te(r,n))}function lD(e){let t=e.body||" ",n=ti.get(e.id);if(n)return n.text!==t&&(n.component.setText(t),n.text=t),n.component;let r=new mD(t,0,0,jE);return ti.set(e.id,{text:t,component:r}),r}var ti,td,gm,CS=u(()=>{Gl();Vs();ed();ti=new Map;td=class{constructor(t){this.item=t}item;invalidate(){}shade(t){let n=Date.now()-(this.item.born??0);return Zs(D.dim,t,pS(n,Ul))}render(t){let n=this.item.body;if(this.item.kind==="user")return["",...OS(`> ${n}`,t,this.shade(D.user))];if(this.item.kind==="tool")return[te(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?[te(` ${Jl} ${n}`,o?D.bad:D.mute)]:[]];let s=[];this.item.call&&s.push(te(this.item.call,this.shade(D.tool)));let i=` ${Jl} ${n}`;if(s.push(te(i,o?D.bad:this.shade(D.mute))),this.item.expanded===!0&&(this.item.full?.length??0)>0){let I=te(` ${this.item.full.length} line(s) \xB7 ctrl+e to collapse`,D.dim);s.push(te(` ${Yl}`,D.dim));for(let $ of this.item.full){let A=$.startsWith("+")?D.tool:$.startsWith("-")?D.bad:D.dim;s.push(te(` ${$}`,A))}return s.push(I),s}let p=this.item.detail??[],f=Kl(Date.now()-(this.item.born??0),p.length);for(let I of p.slice(0,f)){let $=I.startsWith("+")?D.tool:I.startsWith("-")?D.bad:D.dim;s.push(te(` ${I}`,this.shade($)))}return(this.item.full?.length??0)>0&&s.push(te(` ${Yl} ${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["",...OS(n,t,this.shade(o))]}return["",...lD(this.item).render(Math.max(8,t-2))]}},gm=class{items=[];status="";scrollOffset=0;scrollAnchor;settledOffset=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 lS(r,Ul)?!0:(n.detail?.length??0)>Kl(r,n.detail?.length??0)})}render(t){if(ti.size>this.items.length){let o=new Set(this.items.map(s=>s.id));for(let s of ti.keys())o.has(s)||ti.delete(s)}let n=[];for(let o of this.items)o.born??=Date.now(),n.push(...new td(o).render(t));this.status&&n.push(te(this.status,D.mute));let r=this.viewportHeight;if(r>0&&n.length>r){let o=n.length-r;this.scrollOffset!==this.settledOffset&&(this.scrollAnchor=void 0);let s=this.scrollAnchor,i;if(s!==void 0){let c=n.length-s;c>=0&&c<=o?i=c:i=Math.max(0,Math.min(this.scrollOffset,o))}else i=Math.max(0,Math.min(this.scrollOffset,o));return s===void 0&&(this.scrollOffset=i),this.settledOffset=this.scrollOffset,i===0?this.scrollAnchor=void 0:this.scrollAnchor===void 0&&(this.scrollAnchor=n.length-i),n.slice(o-i,o-i+r)}return n}}});function ft(e,t){return`${t}${e}${FS}`}function fD(e){return e>=85?dD:e>=70?DS:jS}function _S(e,t,n,r){let o=ft(`[${e}]`,nd),s=ft(`${gD} ${t}`,Dn),i=ft(n,DS),c=r?` ${ft("git:(",LS)}${ft(r.replace(/^git:\(/,"").replace(/\)$/,""),nd)}${ft(")",LS)}`:"";return`${o}${ft(" \u2502 ",Dn)}${s}${ft(" \u2502 ",Dn)}${i}${c}`}function NS(e,t,n){if(!t)return e;let r=n===void 0?t:`${t} ${ft(NE(n),Dn)}`;return`${ft(r,nd)} ${ft("\u2502",Dn)} ${e}`}function qS(e,t){let n=Number.isFinite(e)?Math.min(100,Math.max(0,e)):0,r=Math.round(n/10),o=fD(n),s=`${o}${"\u2588".repeat(r)}${Dn}${"\u2591".repeat(10-r)}${FS}`,i=ft(`${Math.round(n)}%`,o),c=t?`${ft(" \u2502 ",Dn)}${t}`:"";return`${ft("Context",Dn)} ${s} ${i}${c}`}function US(e,t,n){let r=n===null?"":ft(` ${n}ms`,Dn);return`${ft("Cubence",Dn)} ${ft(t?`${t} ${e}`:e,jS)}${r}`}var FS,Dn,dD,jS,DS,LS,nd,gD,rd=u(()=>{Xs();FS="\x1B[0m",Dn="\x1B[2m",dD="\x1B[31m",jS="\x1B[32m",DS="\x1B[33m",LS="\x1B[35m",nd="\x1B[36m";gD="\u2726"});import{mkdirSync as hD,readFileSync as GS}from"node:fs";import{homedir as xD}from"node:os";import{dirname as yD,join as bD}from"node:path";function KS(e){return e/1e6}function $D(){try{let e=JSON.parse(GS(bD(xD(),".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 wD(){try{let e=JSON.parse(GS(od,"utf8"));return!e.data||typeof e.cachedAt!="number"?void 0:{data:e.data,cachedAt:e.cachedAt}}catch{return}}function ni(e){let t=`$${e.balanceDollar.toFixed(2)}`,n=e.hasSubscription?`5h $${e.fiveHourUsedDollar.toFixed(2)}/$${e.fiveHourLimitDollar.toFixed(2)} bal`:"";return US(t,n,e.latencyMs)}async function WS(){let e=wD();if(e&&Date.now()-e.cachedAt<ID)return ni(e.data);let t=$D();if(!t)return e?ni(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?ni(e.data):void 0;let o=await r.json(),s=o.subscription_window?.five_hour?.limit??0,i={balanceDollar:o.normal_balance?.amount_dollar??0,hasSubscription:s>0,fiveHourUsedDollar:KS(o.subscription_window?.five_hour?.used??0),fiveHourLimitDollar:KS(s),latencyMs:Date.now()-n};return hD(yD(od),{recursive:!0}),tt(od,JSON.stringify({data:i,cachedAt:Date.now()})),ni(i)}catch{return e?ni(e.data):void 0}}var od,ID,BS=u(()=>{Nn();rd();Hn();od=_m,ID=18e4});function zS(){return{}}function HS(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 kD(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 VS(e,t,n=Date.now()){return e.prompt?`? ${e.prompt}`:e.note?`* ${e.note}`:e.run?`${t} ${e.run.label} \xB7 ${kD(n-e.run.since)}`:e.tally?e.tally:""}var JS=u(()=>{});import{spawn as TD}from"node:child_process";function vD(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 YS(e,t=process.platform){let n=vD(t);return n?new Promise(r=>{try{let o=TD(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 XS=u(()=>{});function ED(e){return[Dm,hr(e)]}function ZS(e,t){let n=e.trim(),r=/^\/skill:([^\s]+)(?:\s+([\s\S]*))?$/.exec(n)??/^\/skill\s+([^\s]+)(?:\s+([\s\S]*))?$/.exec(n);if(!r)return;let o=r[1]??"";if(!t.includes(o))return;let s=(r[2]??"").trim();return s?`/skill:${o} ${s}`:`/skill:${o}`}function QS(e){if(e.length===0){let[t,n]=ED(process.cwd());return["no skills loaded.",`put a SKILL.md in ${t}`,`or in ${n}`,"invoke with /skill:<name>"].join(`
99
+ `)}],details:{agents:i.map(p=>({id:p.id,status:p.status}))}}}})});function nS(){return e=>{e.on("session_start",()=>{let t=new Set(e.getActiveTools());for(let n of qj)e.getAllTools().some(r=>r.name===n)&&t.add(n);e.setActiveTools([...t])})}}var qj,rS=u(()=>{qj=["grep","find","ls"]});var oS={};Mt(oS,{BUILD_ENTRY:()=>pm,openSession:()=>Jj});import{join as Uj}from"node:path";import{createAgentSession as Kj,createCodemodeExtension as Gj,createMcpExtension as Wj,DefaultResourceLoader as Bj,SessionManager as cm,SettingsManager as zj}from"@earendil-works/pi-coding-agent";function Vj(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 Jj(e){let t=zj.create(e.cwd,Ve,{projectTrusted:!0}),n=e.sessionPath?cm.open(e.sessionPath):e.noSession?cm.inMemory(e.cwd):e.continueSession?cm.continueRecent(e.cwd):cm.create(e.cwd),r=(()=>{try{let w=n.getEntries().find($=>$.type==="custom"&&$.customType===pm)?.data?.version;return!w||w===Nt?void 0:`this session was written by HowToFix ${w}; you are running ${Nt}`}catch{return}})(),o=new Bj({cwd:e.cwd,agentDir:Ve,settingsManager:t,appendSystemPrompt:[Rd],additionalSkillPaths:[hr(e.cwd)],extensionFactories:[Zv(),Ho(),bf(),Qu(),sE(),Qv(),nE(),Gj(),Wj(),nS()]});await o.reload();let s=await Kj({cwd:e.cwd,agentDir:Ve,settingsManager:t,sessionManager:n,resourceLoader:o,excludeTools:Hj().exclude,customTools:[eS,kf,Tf,qu,Uu,_v,eE,tE,QE(),tm,nm,rm],thinkingLevel:e.thinking}),i=s.session.model;if(e.model){let f=await s.session.modelRuntime.getAvailable(),w=Vj(f,e.model);if(!w)throw s.session.dispose(),new Error(`unknown model '${e.model}'`);(i?.id!==w.id||i.provider!==w.provider)&&(await s.session.setModel(w),i=s.session.model)}if(!e.noSession&&n.getEntries().every(f=>f.type!=="custom"||f.customType!==pm))try{n.appendCustomEntry(pm,{version:Nt})}catch{}let c=i?`${i.provider}/${i.id}`:"no model",p=[Md(s.modelFallbackMessage)].filter(f=>!!f);return i||p.push(`no model configured. run \`howtofix\` and use /login, or edit ${Uj(Ve,"models.json")}`),{session:s.session,dispose:()=>{vl(),s.session.dispose()},modelLabel:c,note:[r,...p].filter(Boolean).join(`
100
+ `)||void 0}}var pm,Hj,sS=u(()=>{Ko();wf();Nn();Vo();dc();pl();Ku();Hu();hl();rE();iE();bl();ql();tS();rS();kl();Sl();El();pm="howtofix.build",Hj=()=>({exclude:process.platform==="win32"?[]:["powershell"]})});import{spawn as Yj}from"node:child_process";function Xj(e,t,n=2e3){return new Promise(r=>{let o=!1,s=f=>{o||(o=!0,clearTimeout(c),r(f))},i;try{i=Yj(e,[...t],{stdio:["ignore","pipe","ignore"]})}catch{s({ok:!1,stdout:""});return}let c=setTimeout(()=>{i.kill("SIGKILL"),s({ok:!1,stdout:""})},n),p=[];i.stdout?.on("data",f=>p.push(f)),i.on("error",()=>s({ok:!1,stdout:""})),i.on("close",f=>{s({ok:f===0,stdout:Buffer.concat(p).toString("utf8")})})})}function Ul(){return process.env.XDG_SESSION_TYPE==="wayland"||(process.env.WAYLAND_DISPLAY?.length??0)>0}async function Zj(){let e=[];process.platform==="darwin"?e.push({command:"pbpaste",args:[]}):process.platform==="win32"?e.push({command:"powershell.exe",args:["-NoProfile","-Command","Get-Clipboard -Raw"]}):(Ul()&&(e.push({command:"wl-paste",args:["--no-newline","--type","text/plain;charset=utf-8"]}),e.push({command:"wl-paste",args:["--no-newline","--type","text/plain"]}),e.push({command:"wl-paste",args:["--no-newline"]})),((process.env.DISPLAY?.length??0)>0||!Ul())&&(e.push({command:"xclip",args:["-selection","clipboard","-o"]}),e.push({command:"xsel",args:["--clipboard","--output"]})),e.push({command:"termux-clipboard-get",args:[]}));for(let t of e){let n=await Xj(t.command,t.args);if(n.ok&&n.stdout.length>0)return n.stdout}}async function iS(){let e;try{let{getNativeClipboard:r}=await import("@earendil-works/pi-tui");e=r()}catch{e=void 0}if(e)try{let r=await e.getText();if(typeof r=="string"&&r.length>0)return{ok:!0,text:r}}catch{}let t=await Zj();return t!==void 0?{ok:!0,text:t}:{ok:!1,reason:`no clipboard tool could read it \u2014 ${Ul()?"install wl-clipboard (wl-paste)":process.platform==="darwin"?"pbpaste should be present on macOS":"install xclip or xsel, or run under a display"}`}}function aS(){return process.platform!=="win32"}var uS=u(()=>{});import{mixColors as Qj,styleText as mS}from"@earendil-works/pi-tui";function Zs(e,t,n){let r=fS(n);return r>=1?t:r<=0?e:Qj(e,t,r)}function Gl(e,t,n,r){return!Wr||e<=Kl?t:e>=lS?r:Zs(n,r,(e-Kl)/(lS-Kl))}function gS(e,t){return!Wr||t<=0||e<0?1:1-(1-fS(e/t))**3}function hS(e,t){return Wr&&e>=0&&e<t}function Bl(e,t,n=tD,r=400){return!Wr||n<=0||e<0||e>=r?t:Math.min(t,Math.floor(e/n)+1)}function xS(e,t,n=Date.now(),r=1400){if(!Wr||r<=0)return e;let o=n%r/r;return Zs(e,t,o<.5?o*2:(1-o)*2)}function nD(e,t){let n=Math.abs(e-t);return n>=cS?0:Math.ceil((1-n/cS)*dS)/dS}function yS(e,t,n=Date.now()){let r=t.charMs??eD;if(!Wr||e.length===0||r<=0)return mS(e,{fg:t.base},am);let o=e.length+pS*2,s=n/r%o-pS,i=(P,R)=>mS(P,{fg:Zs(t.base,t.bright,R)},am),c="",p=0,f=null,w=0,$=0;for(let P of e){let R=nD($,s);f===null?f=R:R!==f&&(c+=i(e.slice(p,w),f),p=w,f=R),w+=P.length,$+=1}return c+i(e.slice(p),f??0)}var Wr,eD,cS,pS,Kl,lS,dS,fS,lm,Wl,tD,zl=u(()=>{Vs();Wr=process.env.HOWTOFIX_NO_MOTION!=="1",eD=45,cS=5,pS=8,Kl=1e4,lS=6e4,dS=3,fS=e=>e<0?0:e>1?1:e;lm=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,!Wr)return this.value=this.target,this.velocity=0,this.value;n>250&&(this.velocity=0);let o=150,s=2*Math.sqrt(o),i=Math.max(1,Math.ceil(r/.008)),c=r/i;for(let p=0;p<i;p+=1)this.velocity+=(this.target-this.value)*o*c-this.velocity*s*c,this.value+=this.velocity*c;return this.moving||(this.value=this.target,this.velocity=0),this.value}};Wl=260,tD=45});import{execFile as rD,execFileSync as oD}from"node:child_process";import{promisify as sD}from"node:util";import{createHash as wS}from"node:crypto";import{copyFileSync as iD,existsSync as Hl,mkdirSync as dm,readFileSync as aD,statSync as uD}from"node:fs";import{dirname as $S,join as jn,resolve as IS}from"node:path";function cD(e){let t=IS(e);for(;;){if(Hl(jn(t,".git")))return!0;let n=$S(t);if(n===t)return!1;t=n}}async function fn(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 pD("git",t,{cwd:e.root,env:n,encoding:"utf8",maxBuffer:8*1024*1024});return r.trim()}function lD(e){return wS("sha1").update(e).digest("hex").slice(0,16)}function kS(e){let t=IS(e).replace(/\/+$/,"")||"/",n=jn(mD,lD(t)),r=jn(n,"git"),o={root:t,gitDir:r,metaFile:jn(n,"checkpoints.json"),disabled:!1};return!Hl(jn(r,"HEAD"))&&!cD(t)?(o.disabled=!0,o):(dm(n,{recursive:!0}),Hl(jn(r,"HEAD"))||(dm(r,{recursive:!0}),oD("git",["init","--quiet","--initial-branch=howtofix"],{env:{...process.env,GIT_DIR:r},stdio:["ignore","ignore","pipe"]})),dD(t,r),o)}function dD(e,t){let n=jn(e,".git","info","exclude");try{if(!uD(n).isFile())return;dm(jn(t,"info"),{recursive:!0}),iD(n,jn(t,"info","exclude"))}catch{}}function Jl(e){try{let t=JSON.parse(aD(e.metaFile,"utf8"));if(t?.version===1&&t.sessions)return t}catch{}return{version:1,sessions:{}}}function TS(e,t){dm($S(e.metaFile),{recursive:!0}),tt(e.metaFile,`${JSON.stringify(t,null,1)}
101
+ `)}function Yl(e,t){return e.disabled?[]:[...Jl(e).sessions[t]??[]].sort((n,r)=>n.at-r.at)}async function vS(e,t,n){if(e.disabled)return null;let r;try{await fn(e,["add","-A","--ignore-errors","--"]),r=await fn(e,["write-tree"])}catch{return null}let s=Yl(e,t).find(P=>P.tree===r),i=Date.now(),c=`${i.toString(36)}-${wS("sha1").update(`${r}:${i}`).digest("hex").slice(0,6)}`,p=s?.commit;if(!p){let P=["howtofix checkpoint",`session ${t}`,`created ${new Date(i).toISOString()}`,`prompt ${n.slice(0,200)}`].join(`
102
+ `);p=await fn(e,["commit-tree",r,"-m",P]),await fn(e,["update-ref",`${Vl}/${c}`,p])}let f={id:c,tree:r,commit:p,prompt:n,at:i},w=Jl(e),$=[...w.sessions[t]??[],f];for(let P of $.slice(0,Math.max(0,$.length-bS)))try{await fn(e,["update-ref","-d",`${Vl}/${P.id}`])}catch{}return w.sessions[t]=$.slice(-bS),TS(e,w),f}async function ES(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 fn(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 fn(e,["clean","-fd"]);for(let o of r.split(`
103
+ `)){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 SS(e,t){if(e.disabled)return[];try{await fn(e,["add","-A","--ignore-errors","--"]);let n=await fn(e,["write-tree"]);return n===t.tree?[]:(await fn(e,["diff-tree","-r","--name-status","--no-commit-id",t.tree,n])).split(`
104
+ `).filter(Boolean).map(o=>{let[s,...i]=o.split(" ");return`${s?.[0]??"?"} ${i.at(-1)??""}`})}catch{return[]}}async function PS(e,t){if(e.disabled)return;let n=Jl(e);for(let r of n.sessions[t]??[])try{await fn(e,["update-ref","-d",`${Vl}/${r.id}`])}catch{}delete n.sessions[t],TS(e,n)}var mD,Vl,bS,pD,AS=u(()=>{Nn();Hn();mD=jn(Ve,"rewind"),Vl="refs/howtofix",bS=100;pD=sD(rD)});function ed(e=90){let t=Math.floor(Date.now()/e)%Xl.length;return Xl[t]??Xl[0]}function Br(e,t){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,Math.max(1,t-1))}\u2026`:n}function Me(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 fD(e,t=160){if(!e||typeof e!="object")return"";try{let n=JSON.stringify(e);return n&&n!=="{}"?Br(n,t):""}catch{return""}}function gD(e,t){switch(e){case"read":{let n=Me(t,"path")??"",r=[Me(t,"offset"),Me(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 Me(t,"path")??"";case"bash":case"powershell":return Me(t,"command")??"";case"grep":{let n=Me(t,"pattern")??"",r=Me(t,"path");return r?`${n} in ${r}`:n}case"find":case"glob":{let n=Me(t,"pattern")??Me(t,"glob")??"",r=Me(t,"path");return r?`${n} in ${r}`:n}case"ls":return Me(t,"path")??".";case"task":return Me(t,"agent")??"task";case"ask":return Me(t,"question")??"";case"web_search":return Me(t,"query")??"";case"web_fetch":return Me(t,"url")??"";case"lsp":{let n=Me(t,"action")??"lsp",r=Me(t,"file")??"",o=Me(t,"line");return o?`${n} ${r}:${o}`:`${n} ${r}`}case"think":return"private";case"todo":{let n=Me(t,"op")??"view",r=Me(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=Me(t,"op")??"list",r=Me(t,"key");return r?`${n} ${r}`:n}case"workflow":{let n=Me(t,"path");if(n)return n;let r=Me(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(`
105
+ `)[0]??"";return s.length>40?`${s.slice(0,40)}\u2026`:s}default:return fD(t)}}function jo(e,t,n=100){let r=e.charAt(0).toUpperCase()+e.slice(1),o=Br(gD(e,t),n);return o?`${RS} ${r}(${o})`:`${RS} ${r}`}function hD(e){let t=0,n=0;for(let r of e.split(`
106
+ `))r.startsWith("+")&&!r.startsWith("+++")?t+=1:r.startsWith("-")&&!r.startsWith("---")&&(n+=1);return{additions:t,removals:n}}function td(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 ei(e){let t=e?.details;return t&&typeof t=="object"?t:{}}function nd(e){let t=e?.structuredContent;return t&&typeof t=="object"?t:{}}function MS(e){let t=e.exit_code;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function OS(e){return e.trim().split(`
107
+ `).find(t=>t.trim())??""}function xD(e,t){let n=typeof e.output=="string"?e.output:t.replace(/\n*Command exited with code \d+\s*$/,""),r=Qs(n);return r>0?` (${r} line${r===1?"":"s"})`:""}function Qs(e){let t=e.trim();return t?t.split(`
108
+ `).length:0}function gm(e,t,n){let r=td(t),o=ei(t),s=nd(t);if(n){let i=MS(s);if(i!==void 0&&(e==="bash"||e==="powershell"))return`exit ${i}`;let c=r.trim().split(`
109
+ `).find(p=>p.trim());return Br(c??"failed",120)}switch(e){case"read":{let i=o.truncation,c=Qs(r.replace(/\n*\[[^\]]*\]\s*$/,"")),p=c===0?"empty":`${c} line${c===1?"":"s"}`;return i?.truncated?`${p} (truncated from ${i.totalLines??"?"})`:p}case"edit":{let i=typeof o.diff=="string"?o.diff:"";if(!i)return"applied";let{additions:c,removals:p}=hD(i);return`+${c} / -${p}`}case"write":{let i=Qs(r);return i>0?`written (${i} lines)`:"written"}case"bash":case"powershell":{let i=MS(s);if(i===void 0)return r.trim()?Br(OS(r),120):"done";let c=xD(s,r);return i===0?`exit 0${c}`:`exit ${i}`}case"grep":{let i=Qs(r);return i===0?"no matches":`${i} match${i===1?"":"es"}`}case"web_search":{let i=typeof o.count=="number"?o.count:Qs(r);return i===0?"no results":`${i} result${i===1?"":"s"}`}case"web_fetch":return`${typeof o.chars=="number"?o.chars:r.length} chars`;case"lsp":{let i=typeof o.count=="number"?o.count:void 0;return typeof o.error=="string"?Br(o.error,120):i===void 0?Br(OS(r),120):`${i} location${i===1?"":"s"}`}case"todo":{let i=o.todos??[];if(!Array.isArray(i)||i.length===0)return"list cleared";let c=i.filter(f=>f.status==="completed").length,p=i.filter(f=>f.status==="pending"||f.status==="in_progress").length;return`${c}/${i.length} done, ${p} open`}case"context":{let i=o.notes,c=i?Object.keys(i).length:0;return c===0?"no notes":`${c} note${c===1?"":"s"} held`}case"workflow":{let i=typeof o.agents=="number"?o.agents:0,c=typeof o.outputTokens=="number"?o.outputTokens:0,p=Array.isArray(o.steps)?o.steps.filter(w=>w.status==="failed").length:0;if(typeof o.error=="string")return`failed after ${i} agent(s)`;let f=typeof o.startedAt=="number"&&typeof o.endedAt=="number"?`, ${fr(o.endedAt-o.startedAt)}`:"";return`${i} agent(s), ${c} tokens${f}${p>0?`, ${p} failed`:""}`}default:{let i=r.trim().split(`
110
+ `).find(c=>c.trim());return i?Br(i,120):"done"}}}function CS(e,t){let n=ei(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
111
+ `).filter(r=>r.length>0).slice(0,12);if(e==="bash"||e==="powershell"){let r=nd(t);return(typeof r.output=="string"?r.output:td(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
112
+ `).filter(i=>i.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 i=s.status==="running"?"\u25B8":s.status==="failed"?"\xD7":"\u2713",c=s.phase?`${s.phase} \xB7 `:"";return`${i} ${c}${s.label??"agent"}`}).slice(-6):[]}function LS(e,t){let n=ei(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
113
+ `).filter(c=>c.length>0).slice(0,fm);let r=nd(t),s=(typeof r.output=="string"?r.output:td(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
114
+ `),i=s.slice(0,fm);return s.length>fm&&i.push(`\u2026 ${s.length-fm} more line(s)`),i}var RS,Zl,Ql,Xl,fm,rd=u(()=>{Xs();RS="\u25CF",Zl="\u2514",Ql="\u22EF",Xl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];fm=400});import{Markdown as yD,wrapTextWithAnsi as bD}from"@earendil-works/pi-tui";function FS(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 wD(e){return e.content.filter(t=>t.type==="toolCall").map(t=>({name:t.name,arguments:t.arguments}))}function xm(e){let t=[];for(let n of e)if(n.role==="user"){let r=FS(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=FS(n.content).trim(),o=wD(n);r?t.push({id:`a-${n.timestamp}`,kind:n.stopReason==="error"?"error":"assistant",title:n.errorMessage?"failed":"fix",body:n.errorMessage?`${n.errorMessage}
115
+
116
+ ${r}`:r}):n.errorMessage&&t.push({id:`e-${n.timestamp}`,kind:"error",title:"failed",body:n.errorMessage}),o.forEach((s,i)=>{t.push({id:`c-${n.timestamp}-${i}`,kind:"tool",title:"tool",body:jo(s.name,s.arguments)})})}else n.role==="toolResult"&&t.push({id:`r-${n.toolCallId}`,kind:"result",title:n.toolName,body:gm(n.toolName,{content:n.content},n.isError)});return t}function jS(e,t,n){return bD(e,Math.max(8,t)).map(r=>ne(r,n))}function $D(e){let t=e.body||" ",n=ti.get(e.id);if(n)return n.text!==t&&(n.component.setText(t),n.text=t),n.component;let r=new yD(t,0,0,qE);return ti.set(e.id,{text:t,component:r}),r}var ti,od,hm,DS=u(()=>{zl();Vs();rd();ti=new Map;od=class{constructor(t){this.item=t}item;invalidate(){}shade(t){let n=Date.now()-(this.item.born??0);return Zs(_.dim,t,gS(n,Wl))}render(t){let n=this.item.body;if(this.item.kind==="user")return["",...jS(`> ${n}`,t,this.shade(_.user))];if(this.item.kind==="tool")return[ne(n,this.shade(_.tool))];if(this.item.kind==="result"){let o=n.startsWith("exit ")&&n!=="exit 0";if(this.item.panel)return["",...this.item.panel(t),...n?[ne(` ${Zl} ${n}`,o?_.bad:_.mute)]:[]];let s=[];this.item.call&&s.push(ne(this.item.call,this.shade(_.tool)));let i=` ${Zl} ${n}`;if(s.push(ne(i,o?_.bad:this.shade(_.mute))),this.item.expanded===!0&&(this.item.full?.length??0)>0){let w=ne(` ${this.item.full.length} line(s) \xB7 ctrl+e to collapse`,_.dim);s.push(ne(` ${Ql}`,_.dim));for(let $ of this.item.full){let P=$.startsWith("+")?_.tool:$.startsWith("-")?_.bad:_.dim;s.push(ne(` ${$}`,P))}return s.push(w),s}let p=this.item.detail??[],f=Bl(Date.now()-(this.item.born??0),p.length);for(let w of p.slice(0,f)){let $=w.startsWith("+")?_.tool:w.startsWith("-")?_.bad:_.dim;s.push(ne(` ${w}`,this.shade($)))}return(this.item.full?.length??0)>0&&s.push(ne(` ${Ql} ${this.item.full.length} line(s) \xB7 ctrl+e to expand`,_.dim)),s}if(this.item.kind==="error"||this.item.kind==="note"){let o=this.item.kind==="error"?_.bad:_.mute;return["",...jS(n,t,this.shade(o))]}return["",...$D(this.item).render(Math.max(8,t-2))]}},hm=class{items=[];status="";scrollOffset=0;scrollAnchor;settledOffset=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 hS(r,Wl)?!0:(n.detail?.length??0)>Bl(r,n.detail?.length??0)})}render(t){if(ti.size>this.items.length){let o=new Set(this.items.map(s=>s.id));for(let s of ti.keys())o.has(s)||ti.delete(s)}let n=[];for(let o of this.items)o.born??=Date.now(),n.push(...new od(o).render(t));this.status&&n.push(ne(this.status,_.mute));let r=this.viewportHeight;if(r>0&&n.length>r){let o=n.length-r;this.scrollOffset!==this.settledOffset&&(this.scrollAnchor=void 0);let s=this.scrollAnchor,i;if(s!==void 0){let c=n.length-s;c>=0&&c<=o?i=c:i=Math.max(0,Math.min(this.scrollOffset,o))}else i=Math.max(0,Math.min(this.scrollOffset,o));return s===void 0&&(this.scrollOffset=i),this.settledOffset=this.scrollOffset,i===0?this.scrollAnchor=void 0:this.scrollAnchor===void 0&&(this.scrollAnchor=n.length-i),n.slice(o-i,o-i+r)}return n}}});function ft(e,t){return`${t}${e}${NS}`}function kD(e){return e>=85?ID:e>=70?US:qS}function KS(e,t,n,r){let o=ft(`[${e}]`,sd),s=ft(`${TD} ${t}`,Dn),i=ft(n,US),c=r?` ${ft("git:(",_S)}${ft(r.replace(/^git:\(/,"").replace(/\)$/,""),sd)}${ft(")",_S)}`:"";return`${o}${ft(" \u2502 ",Dn)}${s}${ft(" \u2502 ",Dn)}${i}${c}`}function GS(e,t,n){if(!t)return e;let r=n===void 0?t:`${t} ${ft(GE(n),Dn)}`;return`${ft(r,sd)} ${ft("\u2502",Dn)} ${e}`}function WS(e,t){let n=Number.isFinite(e)?Math.min(100,Math.max(0,e)):0,r=Math.round(n/10),o=kD(n),s=`${o}${"\u2588".repeat(r)}${Dn}${"\u2591".repeat(10-r)}${NS}`,i=ft(`${Math.round(n)}%`,o),c=t?`${ft(" \u2502 ",Dn)}${t}`:"";return`${ft("Context",Dn)} ${s} ${i}${c}`}function BS(e,t,n){let r=n===null?"":ft(` ${n}ms`,Dn);return`${ft("Cubence",Dn)} ${ft(t?`${t} ${e}`:e,qS)}${r}`}var NS,Dn,ID,qS,US,_S,sd,TD,id=u(()=>{Xs();NS="\x1B[0m",Dn="\x1B[2m",ID="\x1B[31m",qS="\x1B[32m",US="\x1B[33m",_S="\x1B[35m",sd="\x1B[36m";TD="\u2726"});import{mkdirSync as vD,readFileSync as HS}from"node:fs";import{homedir as ED}from"node:os";import{dirname as SD,join as PD}from"node:path";function zS(e){return e/1e6}function RD(){try{let e=JSON.parse(HS(PD(ED(),".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 MD(){try{let e=JSON.parse(HS(ad,"utf8"));return!e.data||typeof e.cachedAt!="number"?void 0:{data:e.data,cachedAt:e.cachedAt}}catch{return}}function ni(e){let t=`$${e.balanceDollar.toFixed(2)}`,n=e.hasSubscription?`5h $${e.fiveHourUsedDollar.toFixed(2)}/$${e.fiveHourLimitDollar.toFixed(2)} bal`:"";return BS(t,n,e.latencyMs)}async function VS(){let e=MD();if(e&&Date.now()-e.cachedAt<AD)return ni(e.data);let t=RD();if(!t)return e?ni(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?ni(e.data):void 0;let o=await r.json(),s=o.subscription_window?.five_hour?.limit??0,i={balanceDollar:o.normal_balance?.amount_dollar??0,hasSubscription:s>0,fiveHourUsedDollar:zS(o.subscription_window?.five_hour?.used??0),fiveHourLimitDollar:zS(s),latencyMs:Date.now()-n};return vD(SD(ad),{recursive:!0}),tt(ad,JSON.stringify({data:i,cachedAt:Date.now()})),ni(i)}catch{return e?ni(e.data):void 0}}var ad,AD,JS=u(()=>{Nn();id();Hn();ad=Um,AD=18e4});import{createHash as OD,randomBytes as XS}from"node:crypto";import{createServer as CD}from"node:http";function ud(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function DD(){return ud(XS(32))}function _D(e){return ud(OD("sha256").update(e).digest())}function ND(){return ud(XS(16))}async function ym(e,t,n,r){let o=await e(t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(n),signal:r}),s={};try{s=await o.json()}catch{}return{status:o.status,body:s}}function QS(e){let t=e.data,n=[e.token,e.api_key,e.apiKey,e.key,t?.token,t?.api_key,t?.apiKey,t?.key];for(let r of n)if(typeof r=="string"&&r.trim().startsWith("sk-"))return r.trim()}function bm(e,t){let n=e.message??e.error;return typeof n=="string"&&n.trim()?n.trim():t}async function eP(e){let t=e.fetchImpl??fetch,n=(e.panelUrl??LD).replace(/\/+$/,""),r=e.timeoutMs??FD,o={...e,panel:n,fetchImpl:t,timeoutMs:r},s=await UD(o);if(s.ok||s.terminal)return s.result;let i=await KD(o);return i.ok?i:{ok:!1,message:`${s.result.ok?"":s.result.message}; ${i.message}. howtofix.id does not offer a browser login a local client can complete yet \u2014 run /connect and paste a token from ${n}/keys instead.`}}async function UD(e){let t=DD(),n=ND(),r;try{r=await(e.loopback??qD)();let o=`http://127.0.0.1:${r.port}${ZS}`,s=await ym(e.fetchImpl,`${e.panel}/api/oauth/device/start`,{redirect_uri:o,code_challenge:_D(t),code_challenge_method:"S256",state:n},e.signal);if(s.status===404)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel has no loopback login endpoint"}};if(s.status>=400)return{ok:!1,terminal:!1,result:{ok:!1,message:bm(s.body,`the panel refused the login (${s.status})`)}};let i=typeof s.body.authorize_url=="string"?s.body.authorize_url:"";if(!i)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel did not say where to send the browser"}};e.onProgress({kind:"browser",url:i});let c=await GD(r.waitForCode(n,e.signal),e.timeoutMs),p=await ym(e.fetchImpl,`${e.panel}/api/oauth/device/token`,{flow_token:s.body.flow_token,code:c,code_verifier:t},e.signal);if(p.status>=400)return{ok:!1,terminal:!0,result:{ok:!1,message:bm(p.body,`the panel refused the exchange (${p.status})`)}};let f=QS(p.body);return f?{ok:!0,result:{ok:!0,token:f}}:{ok:!1,terminal:!0,result:{ok:!1,message:"the panel did not return an API key"}}}catch(o){let s=o instanceof Error?o.message:String(o);return{ok:!1,terminal:s==="cancelled",result:{ok:!1,message:s}}}finally{r?.close()}}async function KD(e){let t=e.pollIntervalMs??jD;try{let n=await ym(e.fetchImpl,`${e.panel}/api/oauth/device`,{},e.signal);if(n.status===404)return{ok:!1,message:"the panel has no device-code endpoint"};if(n.status>=400)return{ok:!1,message:bm(n.body,`the panel refused the request (${n.status})`)};let r=typeof n.body.device_code=="string"?n.body.device_code:"",o=typeof n.body.user_code=="string"?n.body.user_code:"",s=typeof n.body.verification_uri=="string"?n.body.verification_uri:`${e.panel}/oauth/device`;if(!r||!o)return{ok:!1,message:"the panel did not return a code to show"};e.onProgress({kind:"code",code:o,url:s});let i=Date.now()+e.timeoutMs;for(;Date.now()<i;){await YS(t,e.signal);let c=await ym(e.fetchImpl,`${e.panel}/api/oauth/device/poll`,{device_code:r},e.signal);if(c.status===404)return{ok:!1,message:"the panel has no device-code poll endpoint"};let p=typeof c.body.status=="string"?c.body.status:"";if(p==="pending")continue;if(p==="slow_down"){await YS(t,e.signal);continue}if(p==="denied")return{ok:!1,message:"the sign-in was refused in the browser"};if(p==="expired")return{ok:!1,message:"the code expired; run /connect again"};let f=QS(c.body);if(f)return{ok:!0,token:f};if(c.status>=400)return{ok:!1,message:bm(c.body,`the panel refused the poll (${c.status})`)}}return{ok:!1,message:"the code was not approved in time"}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function GD(e,t){return new Promise((n,r)=>{let o=setTimeout(()=>r(new Error("the sign-in was not finished in time")),t);e.then(s=>{clearTimeout(o),n(s)},s=>{clearTimeout(o),r(s)})})}function YS(e,t){return new Promise((n,r)=>{let o=setTimeout(n,e);t?.addEventListener("abort",()=>{clearTimeout(o),r(new Error("cancelled"))},{once:!0})})}var LD,FD,jD,ZS,qD,tP=u(()=>{LD="https://howtofix.id",FD=300*1e3,jD=3e3,ZS="/callback";qD=()=>new Promise((e,t)=>{let n=CD();n.once("error",t),n.listen(0,"127.0.0.1",()=>{let{port:r}=n.address();e({port:r,close:()=>n.close(),waitForCode:(o,s)=>new Promise((i,c)=>{let p=($,P)=>{let R=new URL($.url??"/","http://127.0.0.1");if(R.pathname!==ZS){P.writeHead(404).end("not found");return}let C=(ee,ye)=>P.writeHead(200,{"content-type":"text/html; charset=utf-8"}).end(`<!doctype html><meta charset="utf-8"><h2>${ee}</h2><p>${ye}</p>`),U=R.searchParams.get("error")??"",z=R.searchParams.get("code")??"",G=R.searchParams.get("state")??"";if(U){C("Sign-in was refused","You can close this tab."),f(new Error(`the browser reported: ${U}`));return}if(!z||G!==o){C("This callback did not belong to the login","You can close this tab."),f(new Error("the callback carried the wrong state"));return}C("Signed in","You can close this tab and go back to HowToFix."),f(void 0,z)},f=($,P)=>{n.off("request",p),s?.removeEventListener("abort",w),$?c($):i(P)},w=()=>f(new Error("cancelled"));s?.addEventListener("abort",w,{once:!0}),n.on("request",p)})})})})});function nP(){return{}}function rP(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 WD(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 oP(e,t,n=Date.now()){return e.prompt?`? ${e.prompt}`:e.note?`* ${e.note}`:e.run?`${t} ${e.run.label} \xB7 ${WD(n-e.run.since)}`:e.tally?e.tally:""}var sP=u(()=>{});import{spawn as BD}from"node:child_process";function zD(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 wm(e,t=process.platform){let n=zD(t);return n?new Promise(r=>{try{let o=BD(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 iP=u(()=>{});function HD(e){return[qm,hr(e)]}function aP(e,t){let n=e.trim(),r=/^\/skill:([^\s]+)(?:\s+([\s\S]*))?$/.exec(n)??/^\/skill\s+([^\s]+)(?:\s+([\s\S]*))?$/.exec(n);if(!r)return;let o=r[1]??"";if(!t.includes(o))return;let s=(r[2]??"").trim();return s?`/skill:${o} ${s}`:`/skill:${o}`}function uP(e){if(e.length===0){let[t,n]=HD(process.cwd());return["no skills loaded.",`put a SKILL.md in ${t}`,`or in ${n}`,"invoke with /skill:<name>"].join(`
117
117
  `)}return e.map(t=>{let n=t.disableModelInvocation?" (invoke only)":"";return`${t.name}${n}
118
118
  ${t.description}
119
119
  ${t.filePath}`}).join(`
120
- `)}var eP=u(()=>{Nn()});import{mkdirSync as SD}from"node:fs";import{join as PD}from"node:path";import{matchesKey as xm}from"@earendil-works/pi-tui";function nP(){return{selectedPhase:0,filter:"all",paused:!1,expanded:!1,follow:!0}}function rP(e){if(xm(e,"up"))return"up";if(xm(e,"down"))return"down";if(xm(e,"enter"))return"enter";if(xm(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 tP(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 AD(e){let t=sd.indexOf(e);return sd[(t+1)%sd.length]}function oP(e,t,n){switch(t){case"up":return tP(e,n,-1);case"down":return tP(e,n,1);case"enter":return{...e,expanded:!e.expanded};case"filter":return{...e,filter:AD(e.filter)};case"pause":return{...e,paused:!e.paused};default:return e}}function sP(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 iP(e){return e==="all"?"":` \xB7 ${e}`}function uP(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 RD(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 mP(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=RD(e.name);if(!n)return{ok:!1,reason:`"${e.name}" is not a usable filename, so the script was not written`};let r=PD(t,`${n}.js`);try{SD(t,{recursive:!0}),tt(r,e.code)}catch(o){return{ok:!1,reason:o instanceof Error?o.message:String(o)}}return{ok:!0,path:r}}var sd,aP,cP=u(()=>{Hn();sd=["all","running","failed","done"];aP="ctrl+f"});function pP(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 lP=u(()=>{});var EP={};Mt(EP,{Dock:()=>$m,Hud:()=>bm,PinnedBlock:()=>Im,approvalDetail:()=>TP,orderModelsForDefault:()=>wP,pickerPanel:()=>kP,runWorkbench:()=>t_,workflowPanel:()=>vP,workflowPanelFromRun:()=>oi,workflowRunOf:()=>wm});import{execFile as MD}from"node:child_process";import{promisify as OD}from"node:util";import{existsSync as CD,mkdirSync as LD,readFileSync as FD}from"node:fs";import{basename as jD,join as dP,resolve as DD}from"node:path";import{copyToClipboard as _D,SessionManager as ND}from"@earendil-works/pi-coding-agent";import{CombinedAutocompleteProvider as fP,Container as qD,Editor as UD,matchesKey as jt,ProcessTerminal as KD,ScrollView as GD,KeybindingsManager as yP,setKeybindings as bP,TUI_KEYBINDINGS as IP,SelectList as WD,TuiAltScreen as BD,truncateToWidth as ri,VStack as zD,visibleWidth as ym,wrapTextWithAnsi as HD}from"@earendil-works/pi-tui";import{TreeSelectorComponent as VD,initTheme as JD}from"@earendil-works/pi-coding-agent";import{getKeybindings as gP}from"@earendil-works/pi-tui";function YD(e){if(typeof e!="object"||e===null)return;let t=e[$P];return typeof t=="function"?t.call(e):void 0}async function xP(e){try{let{stdout:t}=await ud("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}),n=t.trim();if(!n||n==="HEAD")return"";let{stdout:r}=await ud("git",["-C",e,"status","--porcelain"],{encoding:"utf8"});return`git:(${n}${r.trim()?"*":""})`}catch{return null}}function wP(e){let t=n=>{if(ZD.test(n))return 100;let r=XD.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 kP(e,t,n,r=!1,o=[]){let s=Math.max(24,n),i=s-4,c=(V,G)=>{let oe=ym(V)>i?ri(V,i,"\u2026"):V,$e=`${oe}${" ".repeat(Math.max(0,i-ym(oe)))}`;return`\u2502 ${G?G($e):$e} \u2502`},p="\u2500".repeat(s-2),f=[c(` ${t}`),...e.render(i).map(V=>c(V))],I=o.flatMap(V=>V===""?[""]:HD(V,i)),$=I.length>0?[c(""),...I.map(V=>c(V,G=>te(G,D.mute)))]:[];if(!r)return["",`\u250C${p}\u2510`,...f,...$,`\u2514${p}\u2518`];let A=dS(D.line,D.warn,Date.now(),1400),O=te("\u2502",A),L=(V,G)=>te(`${V}${p}${G}`,A),K=[...f,...$].map(V=>`${O}${V.slice(1,-1)}${O}`);return["",L("\u250C","\u2510"),...K,L("\u2514","\u2518")]}function TP(e,t){let n=t.split(`
121
- `).filter(Boolean),r=n.filter(i=>i.startsWith("Reason:")),o=n.filter(i=>!i.startsWith("Reason:")&&!i.startsWith("Allow tool:"));return[...e.endsWith(" wants to run")?[]:[e],...r,...o.length>0?["",...o]:[]]}function Do(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 ad(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"],["sync","re-sync models from howtofix.id"],["usage","show the account's quota and what it has spent"],["update","install the newest release"],["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"],["skills","list loaded skills"],["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 wm(e,t){if(e!=="workflow")return;let n=ei(t);if(!(typeof n.name!="string"||!Array.isArray(n.steps)))return n}function vP(e,t){let n=wm(e,t);return n?oi(n):void 0}function oi(e,t,n=!1){return r=>zE(e,[],r,t?.selectedPhase,t?QD(e,t,n):void 0)}function QD(e,t,n){return{filter:r=>sP(r,t.filter),footerText:uP(t,e.endedAt===void 0,n),filterLabel:iP(t.filter),drill:t.expanded}}function e_(){let e=new yP(IP,{"tui.altScreen.pageUp":[],"tui.altScreen.pageDown":[],"tui.altScreen.halfPageUp":[],"tui.altScreen.halfPageDown":[],"tui.altScreen.top":[],"tui.altScreen.bottom":[]});bP(e)}async function t_(e){let t=new KD,n=new BD(t,!0,void 0,{mouse:!0}),r=new gm,o=new bm(e.cwd,e.modelLabel),s=l=>{let g=Date.now();(async()=>{try{let y=gn(),x=await $S(y,v.getSessionStats().sessionId,l);x&&g>=Wt&&(_o=x,Wt=g)}catch{}})()},i=(l=!1)=>{!l&&!o.live||xP(e.cwd).then(g=>{g!==null&&(o.git=g,_())})},c=new UD(n,hP,{paddingX:1}),p=new Map,f=(l,g)=>{g===void 0?p.delete(l):typeof g=="function"?p.set(l,g):p.set(l,()=>g)},I=()=>Math.max(20,t.columns),$,A=0,O=nP(),L,K=null,V=!1,G,oe=!1,$e,De=()=>{!L||!V||f("workflow",l=>oi(L,O,oe)(l))},Qe=()=>{L&&(G=L.name),V=!1,oe=!1,f("workflow",void 0)};VE({onStop:l=>{K=l},isPaused:()=>O.paused});let xe=l=>{if(G===l.name)return;$=l;let g=l.endedAt??Date.now();A=Math.max(A,g+am),L=l,V=!0,f("workflow",y=>oi(l,O,oe)(y))},se=new $m(c,o),v=e.session,He=!1,Gt,gn=()=>Gt??=bS(e.cwd),_o,nn="",Wt=0,Ke,Dt=()=>{let l=new Set(["session_info","usage","label","context_edit","custom","model_change","thinking_level_change"]),g=[],y=x=>{for(let w of x)l.has(w.entry.type)||g.push(w.entry.id),y(w.children)};return y(v.sessionManager.getTree()),g},No=!1,PP=()=>{if(No)return;No=!0;let l=gP().getResolvedBindings();bP(new yP(IP,{...l,"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"]}))},md=!1,AP=()=>{md||(md=!0,JD())},cd=()=>{let l=v.sessionManager.getTree();if(l.length===0){E("rewind","nothing to rewind to yet");return}gn().disabled&&E("rewind","conversation rewind only \u2014 this directory is not a git repository"),AP(),PP();let g=Math.max(8,Math.floor(t.rows*.6)),y=new VD(l,v.sessionManager.getLeafId(),g*2,x=>{km(),RP(x)},()=>km());if(!y.getTreeList().getSelectedNode()){E("rewind","nothing to rewind to yet");return}Ke=y,Ke.focused=!0,f("rewind",x=>Ke?.render(x)??[]),_()},km=()=>{Ke=void 0,f("rewind",void 0),_()},RP=async l=>{let g=gn(),x=v.getUserMessagesForForking().findIndex(b=>b.entryId===l),w=x>=0?Hl(g,v.getSessionStats().sessionId)[x]:void 0,q=w?(await kS(g,w)).length:0;if(q===0){await pd(l,void 0,"conversation");return}_t(`Rewind to this point? ${q} file(s) differ`,[{value:"both",label:"conversation and code",description:`drop the messages after this point and restore ${q} 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 ${q} file(s), keep the conversation`}],b=>{pd(l,w,b)})},pd=async(l,g,y)=>{let x=[];if((y==="both"||y==="conversation")&&!v.isStreaming)try{let w=await v.navigateTree(l);if(w.cancelled){E("rewind","conversation rewind cancelled");return}x.push("conversation rewound"),r.items=hm(v.state.messages),w.editorText&&(c.setText(w.editorText),x.push("prompt restored to the editor"))}catch(w){hn(`conversation rewind failed: ${w instanceof Error?w.message:String(w)}`);return}if((y==="both"||y==="code")&&g){let w=await wS(gn(),g);if(!w.ok){hn(`code rewind failed: ${w.output}`);return}x.push(w.output),w.removed.length>0&&x.push(`removed ${w.removed.length} file(s)`),i()}E("rewind",x.join(`
122
- `)||"nothing to do"),_()};i(!0),s("session start"),e.note&&r.items.push({id:"note",kind:"note",title:"note",body:e.note}),r.items.push(...hm(v.state.messages)),o.percent=Do(v),o.abandonAnimations(),o.thinking=v.thinkingLevel,c.setAutocompleteProvider(new fP(ad(v),e.cwd)),WS().then(l=>{l&&(o.cubence=l,n.requestRender())});let ld=async l=>{let{checkForUpdate:g,installUpdate:y}=await Promise.resolve().then(()=>(xi(),hi)),x=await g(l.current);if(!x.available){l.install&&E("update",x.message);return}if(!l.install){E("update",`${x.message}. run /update to install it.`);return}ie("note",`installing HowToFix ${x.latest}\u2026`);let w=await y({version:x.latest});ie("note",void 0),E("update",w.message),_()};e.update&&ld(e.update);let _n=null,dd="",fd=!1,gd=[],qo,Tm=()=>{},_=()=>{Tm(),n.requestRender()},ie=(l,g)=>{o.activity=HS(o.activity,l,g)},si=new Map,vm=new Set,MP=()=>[...si].map(([l,g])=>`${vm.has(l)?"!":"\u2713"} ${l} \xD7${g}`).join(" | "),OP=()=>{let l=MP();ie("tally",l||void 0)},_t=(l,g,y,x,w=!1,q=[])=>{let b=new WD(g,8,hP.selectList);b.onSelect=T=>{_n=null,qo=void 0,y(T.value)},b.onCancel=()=>{_n=null,qo=void 0,x?.(),_()},qo=()=>b.onCancel?.(),dd=l,fd=w,gd=q,_n=b,_()},E=(l,g)=>{r.items.push({id:`cmd-${Date.now()}-${r.items.length}`,kind:"note",title:l,body:g}),ie("tally",void 0),_()},hn=l=>{r.items.push({id:`err-${Date.now()}-${r.items.length}`,kind:"error",title:"failed",body:l}),ie("tally",void 0),_()};uc((l,g)=>{let{promise:y,resolve:x}=Promise.withResolvers();return _t(l,[{value:"allow",label:"allow"},{value:"deny",label:"deny"}],w=>x(w==="allow"),()=>x(!1),!0,TP(l,g)),y});let Em=new Map,hd=l=>{let g=pP({select:(y,x)=>{let{promise:w,resolve:q}=Promise.withResolvers();return _t(y,x.map(b=>({value:b,label:b})),q,()=>q(void 0)),w},confirm:(y,x)=>{let{promise:w,resolve:q}=Promise.withResolvers();return _t(`${y} \u2014 ${x}`,[{value:"yes",label:"yes"},{value:"no",label:"no"}],b=>q(b==="yes"),()=>q(!1)),w},input:y=>{let{promise:x,resolve:w}=Promise.withResolvers();return ie("prompt",y),_(),fn=q=>{fn=void 0,ie("prompt",void 0),w(q),_()},x},notify:(y,x)=>{x==="error"?hn(y):E("mcp",y)},setStatus:(y,x)=>{x===void 0?Em.delete(y):Em.set(y,x),ie("note",[...Em.values()].join(" | ")||void 0),_()},setWidget:(y,x)=>{f(y,x),_()}});l.bindExtensions({uiContext:g,mode:"print",onError:y=>hn(`${y.event}: ${y.error}`)}).catch(y=>hn(y instanceof Error?y.message:String(y)))};hd(v);let zr=new qD,CP={invalidate:()=>r.invalidate(),render:l=>{let g=zr.render(Math.max(20,l)).length;return r.viewportHeight=Math.max(1,Math.max(8,t.rows)-g),r.render(l)},handleMouse:l=>{if(Td(l))return Om(),{handled:!0};let g=l.type==="wheel"?l.wheelDelta??0:0;if(g!==0)return r.scrollOffset=Math.max(0,r.scrollOffset-g*3),_(),{handled:!0}}},LP=new GD(CP,{follow:"none",overscroll:"contain"}),ii=new zD([{component:LP,grow:1,shrink:1},{component:zr,grow:0,shrink:0,basis:"auto"}]),xd="",FP=()=>`${_n?"picker":"dock"}|${[...p.keys()].join(",")}`;Tm=()=>{let l=FP();if(l===xd)return;xd=l,zr.clear();for(let y of p.values())zr.addChild(new Im(y));let g=_n;if(g){let y=dd,x=fd,w=gd;zr.addChild({render:q=>kP(g,y,q,x,w),invalidate:()=>{}})}else zr.addChild(se);ii.invalidate()},Tm();let yd={focused:!1,invalidate(){r.invalidate(),se.invalidate(),_n?.invalidate(),ii.invalidate()},[$P]:()=>YD(ii),render:l=>ii.render(l),handleMouse(l){if(Td(l))return Om(),{handled:!0}},handleInput(l){c.handleInput(l)}};n.setLayoutRoot(yd),n.setFocus(yd);let $t=0,zn="",Sm=!1,gr=!1,Pm,Hr="",bd=0,Uo=!1,ai=Date.now(),ui=!1,mi=new Map,Id=l=>{if(l.type==="agent_start"||l.type==="turn_start")l.type==="agent_start"&&tf(),o.live||o.beginRun(),zn="",gr=!1,Uo=!1,ai=Date.now(),Hr="";else if(l.type==="message_update"&&l.assistantMessageEvent.type==="thinking_delta"){gr=!0,Hr===""&&(bd=Date.now()),Hr+=l.assistantMessageEvent.delta;let g=`think-${$t}`,y=r.items.find(w=>w.id===g),x=Hr.split(`
120
+ `)}var mP=u(()=>{Nn()});import{mkdirSync as VD}from"node:fs";import{join as JD}from"node:path";import{matchesKey as $m}from"@earendil-works/pi-tui";function pP(){return{selectedPhase:0,filter:"all",paused:!1,expanded:!1,follow:!0}}function lP(e){if($m(e,"up"))return"up";if($m(e,"down"))return"down";if($m(e,"enter"))return"enter";if($m(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 cP(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 YD(e){let t=md.indexOf(e);return md[(t+1)%md.length]}function dP(e,t,n){switch(t){case"up":return cP(e,n,-1);case"down":return cP(e,n,1);case"enter":return{...e,expanded:!e.expanded};case"filter":return{...e,filter:YD(e.filter)};case"pause":return{...e,paused:!e.paused};default:return e}}function fP(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 gP(e){return e==="all"?"":` \xB7 ${e}`}function xP(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 XD(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 yP(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=XD(e.name);if(!n)return{ok:!1,reason:`"${e.name}" is not a usable filename, so the script was not written`};let r=JD(t,`${n}.js`);try{VD(t,{recursive:!0}),tt(r,e.code)}catch(o){return{ok:!1,reason:o instanceof Error?o.message:String(o)}}return{ok:!0,path:r}}var md,hP,bP=u(()=>{Hn();md=["all","running","failed","done"];hP="ctrl+f"});function wP(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 $P=u(()=>{});var FP={};Mt(FP,{Dock:()=>vm,Hud:()=>km,PinnedBlock:()=>Tm,approvalDetail:()=>CP,orderModelsForDefault:()=>MP,pickerPanel:()=>OP,runWorkbench:()=>I_,workflowPanel:()=>LP,workflowPanelFromRun:()=>oi,workflowRunOf:()=>Em});import{execFile as ZD}from"node:child_process";import{promisify as QD}from"node:util";import{existsSync as e_,mkdirSync as t_,readFileSync as n_}from"node:fs";import{basename as r_,join as IP,resolve as o_}from"node:path";import{copyToClipboard as s_,SessionManager as i_}from"@earendil-works/pi-coding-agent";import{CombinedAutocompleteProvider as kP,Container as a_,Editor as u_,matchesKey as jt,ProcessTerminal as m_,ScrollView as c_,KeybindingsManager as SP,setKeybindings as PP,TUI_KEYBINDINGS as AP,SelectList as p_,TuiAltScreen as l_,truncateToWidth as ri,VStack as d_,visibleWidth as Im,wrapTextWithAnsi as f_}from"@earendil-works/pi-tui";import{TreeSelectorComponent as g_,initTheme as h_}from"@earendil-works/pi-coding-agent";import{getKeybindings as TP}from"@earendil-works/pi-tui";function x_(e){if(typeof e!="object"||e===null)return;let t=e[RP];return typeof t=="function"?t.call(e):void 0}async function EP(e){try{let{stdout:t}=await ld("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}),n=t.trim();if(!n||n==="HEAD")return"";let{stdout:r}=await ld("git",["-C",e,"status","--porcelain"],{encoding:"utf8"});return`git:(${n}${r.trim()?"*":""})`}catch{return null}}function MP(e){let t=n=>{if(b_.test(n))return 100;let r=y_.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 OP(e,t,n,r=!1,o=[]){let s=Math.max(24,n),i=s-4,c=(z,G)=>{let ee=Im(z)>i?ri(z,i,"\u2026"):z,ye=`${ee}${" ".repeat(Math.max(0,i-Im(ee)))}`;return`\u2502 ${G?G(ye):ye} \u2502`},p="\u2500".repeat(s-2),f=[c(` ${t}`),...e.render(i).map(z=>c(z))],w=o.flatMap(z=>z===""?[""]:f_(z,i)),$=w.length>0?[c(""),...w.map(z=>c(z,G=>ne(G,_.mute)))]:[];if(!r)return["",`\u250C${p}\u2510`,...f,...$,`\u2514${p}\u2518`];let P=xS(_.line,_.warn,Date.now(),1400),R=ne("\u2502",P),C=(z,G)=>ne(`${z}${p}${G}`,P),U=[...f,...$].map(z=>`${R}${z.slice(1,-1)}${R}`);return["",C("\u250C","\u2510"),...U,C("\u2514","\u2518")]}function CP(e,t){let n=t.split(`
121
+ `).filter(Boolean),r=n.filter(i=>i.startsWith("Reason:")),o=n.filter(i=>!i.startsWith("Reason:")&&!i.startsWith("Allow tool:"));return[...e.endsWith(" wants to run")?[]:[e],...r,...o.length>0?["",...o]:[]]}function Do(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 pd(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","sign in to howtofix.id (browser, or paste a token)"],["sync","re-sync models from howtofix.id"],["usage","show the account's quota and what it has spent"],["update","install the newest release"],["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"],["skills","list loaded skills"],["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 Em(e,t){if(e!=="workflow")return;let n=ei(t);if(!(typeof n.name!="string"||!Array.isArray(n.steps)))return n}function LP(e,t){let n=Em(e,t);return n?oi(n):void 0}function oi(e,t,n=!1){return r=>YE(e,[],r,t?.selectedPhase,t?w_(e,t,n):void 0)}function w_(e,t,n){return{filter:r=>fP(r,t.filter),footerText:xP(t,e.endedAt===void 0,n),filterLabel:gP(t.filter),drill:t.expanded}}function $_(){let e=new SP(AP,{"tui.altScreen.pageUp":[],"tui.altScreen.pageDown":[],"tui.altScreen.halfPageUp":[],"tui.altScreen.halfPageDown":[],"tui.altScreen.top":[],"tui.altScreen.bottom":[]});PP(e)}async function I_(e){let t=new m_,n=new l_(t,!0,void 0,{mouse:!0}),r=new hm,o=new km(e.cwd,e.modelLabel),s=l=>{let g=Date.now();(async()=>{try{let y=gn(),x=await vS(y,v.getSessionStats().sessionId,l);x&&g>=Wt&&(_o=x,Wt=g)}catch{}})()},i=(l=!1)=>{!l&&!o.live||EP(e.cwd).then(g=>{g!==null&&(o.git=g,N())})},c=new u_(n,vP,{paddingX:1}),p=new Map,f=(l,g)=>{g===void 0?p.delete(l):typeof g=="function"?p.set(l,g):p.set(l,()=>g)},w=()=>Math.max(20,t.columns),$,P=0,R=pP(),C,U=null,z=!1,G,ee=!1,ye,De=()=>{!C||!z||f("workflow",l=>oi(C,R,ee)(l))},Qe=()=>{C&&(G=C.name),z=!1,ee=!1,f("workflow",void 0)};ZE({onStop:l=>{U=l},isPaused:()=>R.paused});let xe=l=>{if(G===l.name)return;$=l;let g=l.endedAt??Date.now();P=Math.max(P,g+um),C=l,z=!0,f("workflow",y=>oi(l,R,ee)(y))},ie=new vm(c,o),v=e.session,He=!1,Gt,gn=()=>Gt??=kS(e.cwd),_o,rn="",Wt=0,Ke,Dt=()=>{let l=new Set(["session_info","usage","label","context_edit","custom","model_change","thinking_level_change"]),g=[],y=x=>{for(let I of x)l.has(I.entry.type)||g.push(I.entry.id),y(I.children)};return y(v.sessionManager.getTree()),g},No=!1,DP=()=>{if(No)return;No=!0;let l=TP().getResolvedBindings();PP(new SP(AP,{...l,"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"]}))},dd=!1,_P=()=>{dd||(dd=!0,h_())},fd=()=>{let l=v.sessionManager.getTree();if(l.length===0){E("rewind","nothing to rewind to yet");return}gn().disabled&&E("rewind","conversation rewind only \u2014 this directory is not a git repository"),_P(),DP();let g=Math.max(8,Math.floor(t.rows*.6)),y=new g_(l,v.sessionManager.getLeafId(),g*2,x=>{Sm(),NP(x)},()=>Sm());if(!y.getTreeList().getSelectedNode()){E("rewind","nothing to rewind to yet");return}Ke=y,Ke.focused=!0,f("rewind",x=>Ke?.render(x)??[]),N()},Sm=()=>{Ke=void 0,f("rewind",void 0),N()},NP=async l=>{let g=gn(),x=v.getUserMessagesForForking().findIndex(b=>b.entryId===l),I=x>=0?Yl(g,v.getSessionStats().sessionId)[x]:void 0,K=I?(await SS(g,I)).length:0;if(K===0){await gd(l,void 0,"conversation");return}_t(`Rewind to this point? ${K} file(s) differ`,[{value:"both",label:"conversation and code",description:`drop the messages after this point and restore ${K} 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 ${K} file(s), keep the conversation`}],b=>{gd(l,I,b)})},gd=async(l,g,y)=>{let x=[];if((y==="both"||y==="conversation")&&!v.isStreaming)try{let I=await v.navigateTree(l);if(I.cancelled){E("rewind","conversation rewind cancelled");return}x.push("conversation rewound"),r.items=xm(v.state.messages),I.editorText&&(c.setText(I.editorText),x.push("prompt restored to the editor"))}catch(I){hn(`conversation rewind failed: ${I instanceof Error?I.message:String(I)}`);return}if((y==="both"||y==="code")&&g){let I=await ES(gn(),g);if(!I.ok){hn(`code rewind failed: ${I.output}`);return}x.push(I.output),I.removed.length>0&&x.push(`removed ${I.removed.length} file(s)`),i()}E("rewind",x.join(`
122
+ `)||"nothing to do"),N()};i(!0),s("session start"),e.note&&r.items.push({id:"note",kind:"note",title:"note",body:e.note}),r.items.push(...xm(v.state.messages)),o.percent=Do(v),o.abandonAnimations(),o.thinking=v.thinkingLevel,c.setAutocompleteProvider(new kP(pd(v),e.cwd)),VS().then(l=>{l&&(o.cubence=l,n.requestRender())});let hd=async l=>{let{checkForUpdate:g,installUpdate:y}=await Promise.resolve().then(()=>(yi(),xi)),x=await g(l.current);if(!x.available){l.install&&E("update",x.message);return}if(!l.install){E("update",`${x.message}. run /update to install it.`);return}re("note",`installing HowToFix ${x.latest}\u2026`);let I=await y({version:x.latest});re("note",void 0),E("update",I.message),N()};e.update&&hd(e.update);let _n=null,xd="",yd=!1,bd=[],qo,Pm=()=>{},N=()=>{Pm(),n.requestRender()},re=(l,g)=>{o.activity=rP(o.activity,l,g)},si=new Map,Am=new Set,qP=()=>[...si].map(([l,g])=>`${Am.has(l)?"!":"\u2713"} ${l} \xD7${g}`).join(" | "),UP=()=>{let l=qP();re("tally",l||void 0)},_t=(l,g,y,x,I=!1,K=[])=>{let b=new p_(g,8,vP.selectList);b.onSelect=k=>{_n=null,qo=void 0,y(k.value)},b.onCancel=()=>{_n=null,qo=void 0,x?.(),N()},qo=()=>b.onCancel?.(),xd=l,yd=I,bd=K,_n=b,N()},E=(l,g)=>{r.items.push({id:`cmd-${Date.now()}-${r.items.length}`,kind:"note",title:l,body:g}),re("tally",void 0),N()},hn=l=>{r.items.push({id:`err-${Date.now()}-${r.items.length}`,kind:"error",title:"failed",body:l}),re("tally",void 0),N()};pc((l,g)=>{let{promise:y,resolve:x}=Promise.withResolvers();return _t(l,[{value:"allow",label:"allow"},{value:"deny",label:"deny"}],I=>x(I==="allow"),()=>x(!1),!0,CP(l,g)),y});let Rm=new Map,wd=l=>{let g=wP({select:(y,x)=>{let{promise:I,resolve:K}=Promise.withResolvers();return _t(y,x.map(b=>({value:b,label:b})),K,()=>K(void 0)),I},confirm:(y,x)=>{let{promise:I,resolve:K}=Promise.withResolvers();return _t(`${y} \u2014 ${x}`,[{value:"yes",label:"yes"},{value:"no",label:"no"}],b=>K(b==="yes"),()=>K(!1)),I},input:y=>{let{promise:x,resolve:I}=Promise.withResolvers();return re("prompt",y),N(),nn=K=>{nn=void 0,re("prompt",void 0),I(K),N()},x},notify:(y,x)=>{x==="error"?hn(y):E("mcp",y)},setStatus:(y,x)=>{x===void 0?Rm.delete(y):Rm.set(y,x),re("note",[...Rm.values()].join(" | ")||void 0),N()},setWidget:(y,x)=>{f(y,x),N()}});l.bindExtensions({uiContext:g,mode:"print",onError:y=>hn(`${y.event}: ${y.error}`)}).catch(y=>hn(y instanceof Error?y.message:String(y)))};wd(v);let zr=new a_,KP={invalidate:()=>r.invalidate(),render:l=>{let g=zr.render(Math.max(20,l)).length;return r.viewportHeight=Math.max(1,Math.max(8,t.rows)-g),r.render(l)},handleMouse:l=>{if(Pd(l))return jm(),{handled:!0};let g=l.type==="wheel"?l.wheelDelta??0:0;if(g!==0)return r.scrollOffset=Math.max(0,r.scrollOffset-g*3),N(),{handled:!0}}},GP=new c_(KP,{follow:"none",overscroll:"contain"}),ii=new d_([{component:GP,grow:1,shrink:1},{component:zr,grow:0,shrink:0,basis:"auto"}]),$d="",WP=()=>`${_n?"picker":"dock"}|${[...p.keys()].join(",")}`;Pm=()=>{let l=WP();if(l===$d)return;$d=l,zr.clear();for(let y of p.values())zr.addChild(new Tm(y));let g=_n;if(g){let y=xd,x=yd,I=bd;zr.addChild({render:K=>OP(g,y,K,x,I),invalidate:()=>{}})}else zr.addChild(ie);ii.invalidate()},Pm();let Id={focused:!1,invalidate(){r.invalidate(),ie.invalidate(),_n?.invalidate(),ii.invalidate()},[RP]:()=>x_(ii),render:l=>ii.render(l),handleMouse(l){if(Pd(l))return jm(),{handled:!0}},handleInput(l){c.handleInput(l)}};n.setLayoutRoot(Id),n.setFocus(Id);let $t=0,zn="",Mm=!1,gr=!1,Om,Hr="",kd=0,Uo=!1,ai=Date.now(),ui=!1,mi=new Map,Td=l=>{if(l.type==="agent_start"||l.type==="turn_start")l.type==="agent_start"&&sf(),o.live||o.beginRun(),zn="",gr=!1,Uo=!1,ai=Date.now(),Hr="";else if(l.type==="message_update"&&l.assistantMessageEvent.type==="thinking_delta"){gr=!0,Hr===""&&(kd=Date.now()),Hr+=l.assistantMessageEvent.delta;let g=`think-${$t}`,y=r.items.find(I=>I.id===g),x=Hr.split(`
123
123
  `).slice(-6).join(`
124
- `);y?y.body=x:r.items.push({id:g,kind:"note",title:"thinking",body:x})}else if(l.type==="message_update"&&l.assistantMessageEvent.type==="thinking_end"){let g=`think-${$t}`,y=r.items.find(x=>x.id===g);if(y){let x=Math.max(1,Math.round((Date.now()-bd)/1e3));y.title="thought",y.body=`${x}s \xB7 ${Hr.length} chars of reasoning`}Hr=""}else if(l.type==="message_update"&&l.assistantMessageEvent.type==="text_delta"){gr=!0,zn+=l.assistantMessageEvent.delta;let g=`live-${$t}`,y=r.items.find(x=>x.id===g);y?y.body=zn:r.items.push({id:g,kind:"assistant",title:"HowToFix",body:zn})}else if(l.type==="tool_execution_start"){mi.set(l.toolCallId,l.args),gr=!1,Uo=!1,ai=Date.now();let g=`tool-${l.toolCallId}`,y=jo(l.toolName,l.args),x=r.items.find(w=>w.id===g);if(x?(x.kind="tool",x.title=l.toolName,x.body=y,x.live=!0):r.items.push({id:g,kind:"tool",title:l.toolName,body:y,live:!0}),Pm=l.toolName,l.toolName==="task"){let w=en.filter(q=>q.status==="queued"||q.status==="running");ie("note",w.map(q=>`${q.agent} ${q.status}`).join(" | ")||"agent running")}}else if(l.type==="tool_execution_update"){let g=vP(l.toolName,l.partialResult);if(g){let y=`tool-${l.toolCallId}`,x=r.items.find(q=>q.id===y);x?x.panel=g:r.items.push({id:y,kind:"tool",title:l.toolName,body:jo(l.toolName,mi.get(l.toolCallId)),panel:g,live:!0});let w=wm(l.toolName,l.partialResult);w&&G!==w.name&&xe(w),_()}}else if(l.type==="tool_execution_end"){o.percent=Do(v);let g=r.items.find(P=>P.id===`tool-${l.toolCallId}`);g&&(g.live=!1,g.body=jo(l.toolName,mi.get(l.toolCallId))),mi.delete(l.toolCallId),Pm=void 0,gr=!0,Uo=!1,si.set(l.toolName,(si.get(l.toolName)??0)+1),l.isError&&vm.add(l.toolName),OP();let y=AS(l.toolName,l.result),x=RS(l.toolName,l.result),w=wm(l.toolName,l.result),q=w?oi(w):void 0;w&&G!==w.name&&xe(w);let b=r.items.find(P=>P.id===`tool-${l.toolCallId}`),T=fm(l.toolName,l.result,l.isError);b?(b.kind="result",b.call=b.body,b.body=T,b.live=!1,y.length>0&&(b.detail=y),x.length>0&&(b.full=x),q&&(b.panel=q)):r.items.push({id:`tool-${l.toolCallId}`,kind:"result",title:l.toolName,body:T,...y.length>0?{detail:y}:{},...x.length>0?{full:x}:{},...q?{panel:q}:{}}),(l.toolName==="bash"||l.toolName==="powershell"||l.toolName==="edit"||l.toolName==="write")&&i()}else if(l.type==="compaction_start"){gr=!0;let g=l.reason==="manual"?"on request":"context is nearly full",y=r.items.find(q=>q.id===`compact-${$t}`),x="compacting context",w=`${g} \xB7 summarizing the older turns`;y?(y.title=x,y.body=w):r.items.push({id:`compact-${$t}`,kind:"note",title:x,body:w,live:!0}),ie("note","compacting context")}else if(l.type==="compaction_end"){let g=r.items.find(q=>q.id===`compact-${$t}`),y=l.result,x="compacted",w;if(l.aborted)w="cancelled";else if(l.errorMessage)w=`failed: ${l.errorMessage}`;else if(y){let q=Math.round(y.tokensBefore/1e3),b=y.estimatedTokensAfter!==void 0?Math.round(y.estimatedTokensAfter/1e3):void 0,T=y.estimatedTokensAfter!==void 0?y.tokensBefore-y.estimatedTokensAfter:void 0,P=T!==void 0&&T<2e3;w=b!==void 0?`${q}k \u2192 ${b}k tokens \xB7 older turns summarized${P?`
125
- this freed almost nothing \u2014 the window may be too small for this work`:""}`:`${q}k tokens \xB7 older turns summarized`}else w="nothing to compact";g?(g.title=x,g.body=w,g.live=!1):r.items.push({id:`compact-${$t}`,kind:"note",title:x,body:w}),o.percent=Do(v),ie("note",void 0)}else if(l.type==="message_end"&&l.message.role==="assistant"){let g=r.items.find(y=>y.id===`live-${$t}`);g&&(g.id=`done-${$t}`),$t+=1,zn="",o.percent=Do(v)}else if(l.type==="agent_settled"){if(o.live=!1,s(nn),nn="",ie("run",void 0),Sm){let g=r.items.find(y=>y.id===`live-${$t}`);g?(g.id=`stopped-${$t}`,g.title="stopped",g.body=zn.trim()||"(no output)",g.live=!1):r.items.push({id:`stopped-${$t}`,kind:"note",title:"stopped",body:"run cancelled"}),$t+=1,zn="",E("stopped","run cancelled by Esc"),Sm=!1}o.percent=Do(v),xP(e.cwd).then(g=>{g!==null&&(o.git=g,_())}),c.disableSubmit=!1}else l.type==="thinking_level_changed"?o.thinking=l.level:l.type==="auto_retry_start"&&ie("note",`retry ${l.attempt}/${l.maxAttempts}`);_()},Am=v.subscribe(Id),$d=setInterval(()=>{let l=$!==void 0&&Date.now()<A;if((ui||v.isStreaming||o.settling()||r.entering()||_n||l)&&_(),(ui||v.isStreaming)&&!gr&&!Uo&&Date.now()-ai>r_){Uo=!0;let g=Pm,y=Math.round((Date.now()-ai)/1e3);ie("note",g?`${g} has been running for ${y}s \u2014 it may be blocked; esc cancels`:`no answer yet after ${y}s \u2014 the provider may be stalled; ctrl+c cancels`),_()}},n_);$d.unref?.();let wd=async l=>{qo?.(),qo=void 0,Am(),Gt&&TS(Gt,v.getSessionStats().sessionId),_o=void 0,Wt=0,v.dispose(),v=l.session,$t=0,zn="",r.items=[],r.scrollOffset=0,l.note&&r.items.push({id:"note",kind:"note",title:"note",body:l.note}),r.items.push(...hm(v.state.messages)),o.model=l.modelLabel.split("/").at(-1)||"no-model",o.thinking=v.thinkingLevel,o.percent=Do(v),o.abandonAnimations(),ie("tally",void 0),ie("run",void 0),c.setAutocompleteProvider(new fP(ad(v),e.cwd)),c.disableSubmit=!1,hd(v),Am=v.subscribe(Id),_()},ci=()=>{He||(He=!0,clearInterval($d),Am(),v.dispose(),n.stop(),process.stdout.write("\x1B[0m"),process.exit(0))},kd=l=>{r.items.push({id:`you-${Date.now()}`,kind:"user",title:"you",body:l}),ie("tally",void 0),si.clear(),vm.clear(),ie("run","thinking"),o.beginRun(),_(),c.disableSubmit=!1;let g=Zm(l,e.cwd);nn=l,ui=!0;let y=v.isStreaming?v.prompt(g,{streamingBehavior:"steer"}):v.prompt(g);ui=!1,y.catch(x=>hn(x instanceof Error?x.message:String(x)))},Rm=l=>{let g=l.trim();if(g){if(fn){let y=fn;fn=void 0,c.setText(""),y(g);return}if(c.setText(""),c.addToHistory(g),g.startsWith("!")){let y=g.slice(1).trim();if(!y)return;r.items.push({id:`sh-${Date.now()}`,kind:"tool",title:"$",body:y}),ie("run","shell"),_(),v.executeBash(y,x=>{ie("run",`shell \xB7 ${x.length} bytes`),_()}).then(x=>{let w=x.output.trim();r.items.push({id:`sh-out-${Date.now()}`,kind:x.exitCode===0?"result":"error",title:`exit ${x.exitCode??"?"}`,body:w||"(no output)"}),ie("tally",void 0),_()}).catch(x=>hn(x instanceof Error?x.message:String(x)));return}if(g.startsWith("/")){jP(g);return}kd(g)}};c.onSubmit=Rm;let Mm=0,Om=()=>{nS().then(l=>{l.ok?c.insertTextAtCursor(l.text):E("paste",l.reason),_()}).catch(l=>{E("paste",`could not read the clipboard: ${l instanceof Error?l.message:String(l)}`),_()})},Td=l=>rS()&&l.type==="press"&&l.button==="right";n.addInputListener(l=>{if(Ke){if(jt(l,"escape"))return km(),{consume:!0};let y=gP(),x=y.matches(l,"tui.select.up"),w=y.matches(l,"tui.select.down");if(x||w){let b=Ke.getTreeList().getSelectedNode()?.entry.id,T=Dt(),P=b===void 0?-1:T.indexOf(b);if(x?P===0:P===T.length-1)return _(),{consume:!0}}return Ke.handleInput(l),_(),{consume:!0}}if(V&&L&&jt(l,"escape"))return oe?(oe=!1,E("workflow","panel keys off \u2014 the editor has the keyboard")):O.expanded?(O.expanded=!1,E("workflow","collapsed the drill-in")):(Qe(),E("workflow","panel unpinned; the run is still in the transcript")),De(),_(),{consume:!0};if(_n)return _n.handleInput(l),_(),{consume:!0};if(jt(l,"escape")){if(v.isStreaming)return Sm=!0,v.abort(),ie("note","stopping"),_(),{consume:!0};let y=Date.now();if(c.getText().length===0&&y-Mm<600)return Mm=0,cd(),{consume:!0};Mm=y;return}if(jt(l,"ctrl+c"))return v.isStreaming?(v.abort(),ie("note","stopping"),_()):c.getText().length>0?(c.setText(""),ie("note","draft cleared \u2014 ctrl+c again quits"),_()):ci(),{consume:!0};if(jt(l,"ctrl+d")&&c.getText().length===0)return ci(),{consume:!0};let g=Math.max(1,r.viewportHeight-1);if(jt(l,"pageUp"))return r.scrollOffset+=g,_(),{consume:!0};if(jt(l,"pageDown"))return r.scrollOffset=Math.max(0,r.scrollOffset-g),_(),{consume:!0};if(jt(l,"home"))return r.scrollOffset=Number.MAX_SAFE_INTEGER,_(),{consume:!0};if(jt(l,"end"))return r.scrollOffset=0,_(),{consume:!0};if(jt(l,"ctrl+v"))return Om(),{consume:!0};if(jt(l,"ctrl+l"))return r.scrollOffset=0,n.scrollToBottom(),_(),{consume:!0};if(jt(l,"ctrl+e")){let y=[...r.items].reverse().find(x=>(x.full?.length??0)>0);return y?(y.expanded=y.expanded!==!0,_(),{consume:!0}):(E("expand","nothing to expand in this transcript yet"),{consume:!0})}if(jt(l,"ctrl+o")&&!v.isStreaming)return r.items=[{id:"cleared",kind:"note",title:"bench",body:"screen cleared. session history is still stored."}],_(),{consume:!0};if(jt(l,aP)&&V&&L)return oe=!oe,E("workflow",oe?"panel keys active \u2014 Esc gives the keyboard back":"panel keys off \u2014 the editor has the keyboard"),De(),_(),{consume:!0};if(oe&&V&&L){let y=rP(l);if(y){let x=Fo(L,Date.now());if(y==="stop")return K?(K(),K=null,E("workflow","stopping the run \u2014 in-flight agents resolve as null")):E("workflow","the run has already finished"),{consume:!0};if(y==="save"){let w=mP($e,Nm);return E("workflow",w.ok?`saved ${w.path}`:w.reason),_(),{consume:!0}}return Object.assign(O,oP(O,y,x)),De(),_(),{consume:!0}}}});let Cm=l=>{let g=y=>{ie("prompt",`API key for ${y}. Paste it, then press enter.`),_();let x=fn;fn=w=>{fn=x;let q=w.trim();if(!q){ie("prompt",void 0),_();return}v.modelRuntime.setRuntimeApiKey(y,q).then(()=>E("login",`saved API key for ${y}`),b=>E("login",b instanceof Error?b.message:String(b)))}};if(l){g(l);return}v.modelRuntime.getAvailable().then(y=>{let x=[...new Set(y.map(w=>w.provider))].sort();if(x.length===0){E("login","no providers are configured; pass one explicitly, e.g. /login nrimo");return}_t("Login",x.map(w=>({value:w,label:w})),g)},y=>E("login",y instanceof Error?y.message:String(y)))},vd=async(l,g)=>{let y=dP(Ve,"models.json"),x,w=!1;try{x=JSON.parse(FD(y,"utf8"))}catch(rn){if(!(rn instanceof Error&&"code"in rn&&rn.code==="ENOENT"))return`could not read ${y}; the models were not added`;x={providers:{}},w=!0}(!x.providers||typeof x.providers!="object")&&(x.providers={});let q=x.providers[l];q||(q=Km(),x.providers[l]=q,w=!0);let b=Array.isArray(q.models)?q.models:[],T=zm(b,g),P=fi(Bm(b,g));q.models=P.models;try{LD(Ve,{recursive:!0}),tt(y,`${JSON.stringify(x,null,2)}
126
- `)}catch{return`could not write ${y}; the models were not added`}let U=!1;try{await v.modelRuntime.refresh(),U=!0}catch{U=!1}let ve=P.changed>0?`, repaired ${P.changed}`:"",et=U?"":"; restart the CLI to see them all",Rt=w?` (created ${y})`:"";return T===0?`all ${g.length} models were already configured${ve}${Rt}${et}`:`added ${T} model(s) to "${l}"${ve}${Rt}${et}`},Lm=l=>{(async()=>{if(!l){let T=await YS(li);E("connect",["connect your howtofix.id account:",` 1. ${T?"the token page is opening in your browser":`open ${li}`}`," 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 a local client can receive, so the","token is how this CLI signs in. The token is verified before it is","stored."].join(`
127
- `)),_();return}if(!Wm(l)){E("connect","that does not look like a howtofix token; the Console issues tokens that start with sk-");return}ie("note",`connecting to howtofix.id (${di(l)})`),_();let g=await gi(l);if(!g.ok){ie("note",void 0),E("connect",g.message),_();return}await v.modelRuntime.setRuntimeApiKey("howtofix",l);let y=await vd("howtofix",g.models),x=!!v.model&&v.model?.provider!==void 0&&o.model!=="unknown",w,q;if(!x)try{let T=(await v.modelRuntime.getAvailable()).filter(ve=>xr(ve.provider)),U=wP(T.map(ve=>ve.id)).slice(0,4);for(let ve of U){if(!(await Hm(ve,l)).ok)continue;let Rt=T.find(rn=>rn.id===ve);if(Rt){await v.setModel(Rt),o.model=Rt.id,w=`${Rt.provider}/${Rt.id}`;break}}w||(q=U.length>0?`none of the first ${U.length} models answered (${U[0]} did not)`:"the account lists no chat model")}catch(T){q=T instanceof Error?T.message:String(T)}ie("note",void 0);let b=await Wo(l);E("connect",[`connected ${di(l)} \u2014 ${g.message}`,y,Fm("howtofix",b),w?`using ${w} (change it with /model)`:`pick a model with /model, then send a prompt${q?` (auto-select failed: ${q})`:""}`].join(`
128
- `)),_()})().catch(g=>{ie("note",void 0),E("connect",g instanceof Error?g.message:String(g)),_()})},Fm=(l,g)=>{let y=[`${l} account`];if(!g.ok)return[...y,` ${g.message}`].join(`
129
- `);if(g.unlimited)y.push(" quota no limit on this token");else{let x=w=>`${w.toFixed(2)} ${g.unit}`;g.limit!==void 0&&y.push(` granted ${x(g.limit)}`),g.used!==void 0&&y.push(` spent ${x(g.used)}`),g.remaining!==void 0&&y.push(` remaining ${x(g.remaining)}`)}return y.join(`
130
- `)},jP=async l=>{let[g,...y]=l.slice(1).split(/\s+/),x=y.join(" ");if(g==="quit"||g==="exit"){ci();return}if(g==="help"){E("help",ad(v).map(b=>`/${b.name} ${b.description??""}`).join(`
131
- `));return}if(g==="init"){let b=dP(e.cwd,"AGENTS.md");if(CD(b)&&x!=="force"){E("init",`AGENTS.md already exists at ${b}. run /init force to overwrite.`);return}tt(b,Pd),E("init",`wrote ${b}; asking the agent to fill it in`),await v.prompt("Read AGENTS.md, then fill it in with the real build, test, and layout facts of this repo. Keep it short.");return}if(g==="login"){Cm(x);return}if(g==="connect"){if(x.trim()){Lm(x.trim());return}Lm(""),ie("prompt","paste your howtofix.id token, then press enter"),_();let b=fn;fn=T=>{fn=b,ie("prompt",void 0),Lm(T.trim())};return}if(g==="sync"){let b=new Set((await v.modelRuntime.getAvailable()).map(rn=>rn.provider).filter(rn=>xr(rn))),T=Yr.find(rn=>b.has(rn));if(!T){E("sync","no howtofix.id account is connected; run /connect first");return}ie("note",`re-syncing ${T} from howtofix.id`),_();let U=(await v.modelRuntime.getAuth(T))?.auth?.apiKey;if(!U){ie("note",void 0),E("sync",`${T} has no usable key; run /connect to sign in again`),_();return}let ve=await gi(U);if(!ve.ok){ie("note",void 0),E("sync",ve.message),_();return}let et=await vd(T,ve.models),Rt=await Wo(U);ie("note",void 0),E("sync",`${et}
132
- ${Fm(T,Rt)}`),await v.modelRuntime.refresh(),_();return}if(g==="usage"){let b=new Set((await v.modelRuntime.getAvailable()).map(et=>et.provider).filter(et=>xr(et))),T=Yr.find(et=>b.has(et));if(!T){E("usage","no howtofix.id account is connected; run /connect first");return}ie("note","asking howtofix.id for the account usage"),_();let U=(await v.modelRuntime.getAuth(T))?.auth?.apiKey;if(!U){ie("note",void 0),E("usage",`${T} has no usable key; run /connect to sign in again`),_();return}let ve=await Wo(U);ie("note",void 0),E("usage",Fm(T,ve)),_();return}if(g==="logout"){let b=await v.modelRuntime.getAvailable(),T=[...new Set(b.map(P=>P.provider))].sort();if(T.length===0){E("logout","no providers are configured");return}_t("Logout",T.map(P=>({value:P,label:P})),P=>{v.modelRuntime.logout(P).then(()=>E("logout",`logged out ${P}`),U=>E("logout",U instanceof Error?U.message:String(U)))});return}if(g==="providers"){let b=await v.modelRuntime.getAvailable(),T=[...new Set(b.map(P=>P.provider))].sort();T.sort((P,U)=>Number(xr(U))-Number(xr(P))),_t("Providers",T.map(P=>({value:P,label:P})),P=>{let U=v.modelRuntime.getModels(P);if(U.length===0){Cm(P);return}_t(P,U.map(ve=>({value:ve.id,label:ve.id})),ve=>{let et=U.find(Rt=>Rt.id===ve);et&&v.setModel(et).then(()=>{o.model=et.id,E("providers",`${P}/${et.id}`)},()=>Cm(P))})});return}if(g==="name"){if(!x){E("name","usage: /name <session name>");return}v.setSessionName(x),E("name",`session name: ${x}`);return}if(g==="update"){await ld({current:Nt,install:!0});return}if(g==="stats"){let b=v.getSessionStats(),T=v.getContextUsage(),P=U=>Number.isFinite(U)?String(U):"\u2014";E("stats",[`session ${b.sessionId}`,b.sessionFile?`file ${b.sessionFile}`:"not persisted",`messages ${P(b.totalMessages)} (user ${P(b.userMessages)}, assistant ${P(b.assistantMessages)}, tools ${P(b.toolCalls)})`,`tokens in ${P(b.tokens.input)} out ${P(b.tokens.output)} cache ${P(b.tokens.cacheRead)}/${P(b.tokens.cacheWrite)}`,`cost $${Number.isFinite(b.cost)?b.cost.toFixed(4):"\u2014"}`,T?`context ${T.percent===null||!Number.isFinite(T.percent)?"?":`${Math.round(T.percent)}%`} of ${T.contextWindow}`:"context unknown"].join(`
133
- `));return}if(g==="diff"){let b=async et=>{try{let{stdout:Rt}=await ud("git",et,{cwd:e.cwd,encoding:"utf8"});return Rt.trim()}catch{return""}},T=await b(["diff","--stat"])+`
134
-
135
- `+await b(["diff","--","."]),[P="",U=""]=T.split(`
136
-
137
- `,2),ve=TE(U);E("diff",[P.trim(),ve].filter(Boolean).join(`
138
-
139
- `)||"working tree clean");return}if(g==="copy"){let b=[...v.state.messages].reverse().find(U=>U.role==="assistant"),P=(Array.isArray(b?.content)?b.content:[]).filter(U=>U.type==="text").map(U=>U.text).join("");if(!P){E("copy","nothing to copy");return}try{await _D(P),E("copy",`copied ${P.length} characters`)}catch(U){E("copy",U instanceof Error?U.message:String(U))}return}if(g==="export"){let b=r.items.filter(U=>U.body.trim().length>0);if(b.length===0){E("export","nothing to export yet \u2014 the transcript is empty");return}let T=DD(e.cwd,x||`howtofix-session-${Date.now()}.md`),P=[`# ${at} session`,"",`model ${o.model}`,""];for(let U of b)P.push(`## ${U.title||U.kind}`,"",U.body,"");try{tt(T,P.join(`
140
- `))}catch(U){E("export",`could not write ${T}: ${U instanceof Error?U.message:String(U)}`);return}E("export",`wrote ${T}`);return}if(g==="agents"){let[b="",...T]=x.split(/\s+/).filter(Boolean),P=T.join(" ").trim();if(b&&P){E("agents",await xE(b,P));return}E("agents",b?Pl(b):Sl());return}if(g==="new"){let b=await e.reopen({noSession:!1});await wd(b),E("new","started a new session");return}if(g==="resume"){let b=await ND.list(e.cwd);if(b.length===0){E("resume","no saved sessions for this folder");return}_t("Resume session",b.slice(0,30).map(T=>({value:T.path,label:T.name||`${T.id.slice(0,8)} ${T.firstMessage.slice(0,40)}`,description:`${T.modified.toISOString().slice(0,16)} ${T.messageCount} messages`})),T=>{e.reopen({sessionPath:T}).then(wd,P=>hn(P instanceof Error?P.message:String(P)))});return}if(g==="model"){let b=await v.modelRuntime.getAvailable(),T=x?b.find(P=>`${P.provider}/${P.id}`===x||P.id===x):void 0;if(!x){_t("Select model",b.map(P=>({value:`${P.provider}/${P.id}`,label:P.id,description:P.provider})),P=>{let U=b.find(ve=>`${ve.provider}/${ve.id}`===P);U&&v.setModel(U).then(()=>{o.model=U.id,E("model",`model ${P}`)})});return}if(!T){E("model",`unknown model ${x}`);return}await v.setModel(T),o.model=T.id,E("model",`model ${T.provider}/${T.id}`);return}if(g==="thinking"){if(!x){_t("Thinking level",id.map(b=>({value:b,label:b})),b=>{v.setThinkingLevel(b),o.thinking=b,E("thinking",`thinking ${b}`)});return}if(!id.includes(x)){E("thinking",`thinking: ${id.join(", ")}`);return}v.setThinkingLevel(x),o.thinking=x,E("thinking",`thinking ${x}`);return}if(g==="compact"){try{await v.compact(x||void 0),E("compact","session compacted")}catch(b){E("compact",b instanceof Error?b.message:String(b))}return}if(g==="approval"){let b=T=>{ac(T),E("approval",wi[T])};if(!x){_t("Approval mode",Xr.map(T=>({value:T,label:T,description:wi[T]})),T=>b(T));return}if(!Xr.includes(x)){E("approval",`modes: ${Xr.join(", ")}`);return}b(x);return}if(g==="tools"){let b=v.getActiveToolNames().sort();E("tools",b.length?b.join(`
141
- `):"no tools enabled");return}if(g==="rewind"){cd();return}if(g==="undo"){if(!await sm(e.cwd)){E("undo","not a git repository");return}let b=await wE(e.cwd);E("undo",b.ok?`undone: ${b.output}`:`undo failed: ${b.output}`),i(!0);return}if(g==="commit"){if(!sm(e.cwd)){E("commit","not a git repository");return}if(!await IE(e.cwd)){E("commit","nothing to commit");return}let b=x||`howtofix: session update ${new Date().toISOString().slice(0,16)}`,T=await $E(e.cwd,b);E("commit",T.ok?T.output:`commit failed: ${T.output}`),i(!0);return}if(g==="review"){if(!(await kE(e.cwd)).trim()){E("review","no changes to review");return}Rm("Review the uncommitted changes. Report concrete issues with file evidence. Do not edit files.");return}if(g==="workflow"){if(x.trim()==="clear"){Qe(),E("workflow","cleared the pinned workflow panel");return}if(!L){E("workflow","no workflow run in this session yet");return}let b=Fo(L,Date.now()),T=b[O.selectedPhase];E("workflow",[`panel ${V?"pinned above the editor":"unpinned"}`,`phase ${O.selectedPhase+1}/${b.length}: ${T?.title??"(none)"}`,`filter: ${O.filter}${O.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(`
142
- `));return}if(g==="plan"){if(Gv()||Ju().state==="pending"){Co(Uv(Ju())),E("plan","plan mode off \u2014 edits are allowed again");return}Co(qv(Ju())),E("plan",`plan mode armed \u2014 send your next prompt to start planning
143
- plan file: ${Kv()??"(unknown)"}`);return}if(g==="goal"){let b=x.trim();if(!b){E("goal",Gu(Wu()));return}let{goal:T,error:P}=ml(Wu(),"set",b,void 0,void 0);if(P){hn(P);return}pn(T),await v.sendCustomMessage({customType:pr,content:b,display:!1,details:T}),E("goal",`goal set
144
- ${Gu(T)}`);return}if(g==="session"){let b=v.model;E("session",b?`${b.provider}/${b.id}`:"no model");return}if(g==="skills"){E("skills",QS(v.resourceLoader.getSkills().skills));return}let w=ZS(l,v.resourceLoader.getSkills().skills.map(b=>b.name));if(w){kd(w);return}let q=v.extensionRunner.getCommand(g??"");if(q){try{await q.handler(x,v.extensionRunner.createCommandContext())}catch(b){hn(b instanceof Error?b.message:String(b))}return}E("command",`/${g??""} is not available in this screen yet`)};yf((l,g)=>{let{promise:y,resolve:x}=Promise.withResolvers();return _t(l,g.map(w=>({value:w,label:w})),x,()=>x("cancelled")),y}),process.on("SIGTERM",ci),t.setTitle(`${at} ${Nt}`),e_(),n.start(),n.requestRender(!0),e.initialPrompt&&Rm(e.initialPrompt),await new Promise(()=>{})}var hP,id,$P,ud,bm,Im,$m,XD,ZD,fn,n_,r_,SP=u(()=>{Ko();oS();Gl();vS();Qm();CS();Vs();BS();rd();Hs();cc();ed();JS();Xs();Dl();Vm();XS();Nn();eP();cP();Al();Vo();ec();zu();dl();lP();Hn();hP={borderColor:()=>"",selectList:{selectedPrefix:e=>te(e,D.accent),selectedText:e=>te(e,D.text,{bold:!0}),description:e=>te(e,D.mute),scrollInfo:e=>te(e,D.dim),noMatch:e=>te(e,D.mute)}},id=["off","minimal","low","medium","high","xhigh","max"],$P=Symbol.for("@earendil-works/pi-tui/layout-node");ud=OD(MD);bm=class{folder;model;git;percent=0;meter=new pm(0);activity=zS();live=!1;activitySince=Date.now();thinking="medium";cubence="";constructor(t,n){this.folder=jD(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=_S(this.model,this.thinking,this.folder,this.git),s=[ri(`${NS(o,this.live?Xl():"",this.live?this.waitedMs():void 0)} ${qS(r,this.cubence)}`,t)],i=zv();i&&s.push(ri(te(i,D.warn),t));let c=Rv(Wu());c&&s.push(ri(te(c,D.accent),t));let p=VS(this.activity,Xl(),n),f=this.live?fS(p,{base:ql(this.waitedMs(),D.mute,D.warn,D.bad),bright:D.text,charMs:45},n):te(p,ql(this.waitedMs(),D.mute,D.warn,D.bad));return s.push(ri(f,t)),s}},Im=class{constructor(t){this.draw=t}draw;render(t){return this.draw(t)}invalidate(){}},$m=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(c=>ym(c)>0),o=r.length>0?r:[""],s="\u2500".repeat(Math.max(0,t-2)),i=o.map(c=>{let p=Math.max(0,n-ym(c));return`\u2502 ${c}${" ".repeat(p)} \u2502`});return[`\u250C${s}\u2510`,...i,`\u2514${s}\u2518`,...this.hud.render(t)]}handleInput(t){this.editor.handleInput(t)}},XD=["deepseek","qwen","claude","gpt-5","gpt-4","gemini","glm","mimo","kimi","llama"],ZD=/(image|embedding|embed|whisper|tts|audio|video|rerank|moderation|dall-e|stable-diffusion|sora)/i;n_=1e3/30,r_=45e3});Ko();var Ad={off:!0,minimal:!0,low:!0,medium:!0,high:!0,xhigh:!0,max:!0},Rd={suggest:!0,"auto-edit":!0,"full-auto":!0};function pi(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 Md(e){let t={print:!1,continueSession:!1,noSession:!1,help:!1,version:!1,update:!1,checkUpdate:!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==="--update")t.update=!0;else if(s==="--check-update")t.checkUpdate=!0;else if(s==="-r"||s==="--resume")t.continueSession=!0;else if(s==="--session"||s.startsWith("--session="))t.sessionPath=pi(r,o,"--session");else if(s==="-m"||s==="--model"||s.startsWith("--model="))t.model=pi(r,o,"--model");else if(s==="--thinking"||s.startsWith("--thinking="))t.thinking=pi(r,o,"--thinking");else if(s==="--approval"||s.startsWith("--approval="))t.approval=pi(r,o,"--approval");else{if(s.startsWith("-"))throw new Error(`unknown option ${s}`);n.push(s)}}if(t.thinking&&!Ad[t.thinking])throw new Error(`thinking must be one of: ${Object.keys(Ad).join(", ")}`);if(t.approval&&!Rd[t.approval])throw new Error(`approval must be one of: ${Object.keys(Rd).join(", ")}`);if(t.prompt=n.join(" ").trim(),t.update&&t.checkUpdate)throw new Error("--update installs; --check-update only looks. pick one");if((t.update||t.checkUpdate)&&(t.print||t.continueSession||t.sessionPath||t.prompt))throw new Error("--update and --check-update act on the installation, not a session; they take no prompt");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}function jm(){return`${at} ${Nt}
124
+ `);y?y.body=x:r.items.push({id:g,kind:"note",title:"thinking",body:x})}else if(l.type==="message_update"&&l.assistantMessageEvent.type==="thinking_end"){let g=`think-${$t}`,y=r.items.find(x=>x.id===g);if(y){let x=Math.max(1,Math.round((Date.now()-kd)/1e3));y.title="thought",y.body=`${x}s \xB7 ${Hr.length} chars of reasoning`}Hr=""}else if(l.type==="message_update"&&l.assistantMessageEvent.type==="text_delta"){gr=!0,zn+=l.assistantMessageEvent.delta;let g=`live-${$t}`,y=r.items.find(x=>x.id===g);y?y.body=zn:r.items.push({id:g,kind:"assistant",title:"HowToFix",body:zn})}else if(l.type==="tool_execution_start"){mi.set(l.toolCallId,l.args),gr=!1,Uo=!1,ai=Date.now();let g=`tool-${l.toolCallId}`,y=jo(l.toolName,l.args),x=r.items.find(I=>I.id===g);if(x?(x.kind="tool",x.title=l.toolName,x.body=y,x.live=!0):r.items.push({id:g,kind:"tool",title:l.toolName,body:y,live:!0}),Om=l.toolName,l.toolName==="task"){let I=en.filter(K=>K.status==="queued"||K.status==="running");re("note",I.map(K=>`${K.agent} ${K.status}`).join(" | ")||"agent running")}}else if(l.type==="tool_execution_update"){let g=LP(l.toolName,l.partialResult);if(g){let y=`tool-${l.toolCallId}`,x=r.items.find(K=>K.id===y);x?x.panel=g:r.items.push({id:y,kind:"tool",title:l.toolName,body:jo(l.toolName,mi.get(l.toolCallId)),panel:g,live:!0});let I=Em(l.toolName,l.partialResult);I&&G!==I.name&&xe(I),N()}}else if(l.type==="tool_execution_end"){o.percent=Do(v);let g=r.items.find(A=>A.id===`tool-${l.toolCallId}`);g&&(g.live=!1,g.body=jo(l.toolName,mi.get(l.toolCallId))),mi.delete(l.toolCallId),Om=void 0,gr=!0,Uo=!1,si.set(l.toolName,(si.get(l.toolName)??0)+1),l.isError&&Am.add(l.toolName),UP();let y=CS(l.toolName,l.result),x=LS(l.toolName,l.result),I=Em(l.toolName,l.result),K=I?oi(I):void 0;I&&G!==I.name&&xe(I);let b=r.items.find(A=>A.id===`tool-${l.toolCallId}`),k=gm(l.toolName,l.result,l.isError);b?(b.kind="result",b.call=b.body,b.body=k,b.live=!1,y.length>0&&(b.detail=y),x.length>0&&(b.full=x),K&&(b.panel=K)):r.items.push({id:`tool-${l.toolCallId}`,kind:"result",title:l.toolName,body:k,...y.length>0?{detail:y}:{},...x.length>0?{full:x}:{},...K?{panel:K}:{}}),(l.toolName==="bash"||l.toolName==="powershell"||l.toolName==="edit"||l.toolName==="write")&&i()}else if(l.type==="compaction_start"){gr=!0;let g=l.reason==="manual"?"on request":"context is nearly full",y=r.items.find(K=>K.id===`compact-${$t}`),x="compacting context",I=`${g} \xB7 summarizing the older turns`;y?(y.title=x,y.body=I):r.items.push({id:`compact-${$t}`,kind:"note",title:x,body:I,live:!0}),re("note","compacting context")}else if(l.type==="compaction_end"){let g=r.items.find(K=>K.id===`compact-${$t}`),y=l.result,x="compacted",I;if(l.aborted)I="cancelled";else if(l.errorMessage)I=`failed: ${l.errorMessage}`;else if(y){let K=Math.round(y.tokensBefore/1e3),b=y.estimatedTokensAfter!==void 0?Math.round(y.estimatedTokensAfter/1e3):void 0,k=y.estimatedTokensAfter!==void 0?y.tokensBefore-y.estimatedTokensAfter:void 0,A=k!==void 0&&k<2e3;I=b!==void 0?`${K}k \u2192 ${b}k tokens \xB7 older turns summarized${A?`
125
+ this freed almost nothing \u2014 the window may be too small for this work`:""}`:`${K}k tokens \xB7 older turns summarized`}else I="nothing to compact";g?(g.title=x,g.body=I,g.live=!1):r.items.push({id:`compact-${$t}`,kind:"note",title:x,body:I}),o.percent=Do(v),re("note",void 0)}else if(l.type==="message_end"&&l.message.role==="assistant"){let g=r.items.find(y=>y.id===`live-${$t}`);g&&(g.id=`done-${$t}`),$t+=1,zn="",o.percent=Do(v)}else if(l.type==="agent_settled"){if(o.live=!1,s(rn),rn="",re("run",void 0),Mm){let g=r.items.find(y=>y.id===`live-${$t}`);g?(g.id=`stopped-${$t}`,g.title="stopped",g.body=zn.trim()||"(no output)",g.live=!1):r.items.push({id:`stopped-${$t}`,kind:"note",title:"stopped",body:"run cancelled"}),$t+=1,zn="",E("stopped","run cancelled by Esc"),Mm=!1}o.percent=Do(v),EP(e.cwd).then(g=>{g!==null&&(o.git=g,N())}),c.disableSubmit=!1}else l.type==="thinking_level_changed"?o.thinking=l.level:l.type==="auto_retry_start"&&re("note",`retry ${l.attempt}/${l.maxAttempts}`);N()},Cm=v.subscribe(Td),vd=setInterval(()=>{let l=$!==void 0&&Date.now()<P;if((ui||v.isStreaming||o.settling()||r.entering()||_n||l)&&N(),(ui||v.isStreaming)&&!gr&&!Uo&&Date.now()-ai>T_){Uo=!0;let g=Om,y=Math.round((Date.now()-ai)/1e3);re("note",g?`${g} has been running for ${y}s \u2014 it may be blocked; esc cancels`:`no answer yet after ${y}s \u2014 the provider may be stalled; ctrl+c cancels`),N()}},k_);vd.unref?.();let Ed=async l=>{qo?.(),qo=void 0,Cm(),Gt&&PS(Gt,v.getSessionStats().sessionId),_o=void 0,Wt=0,v.dispose(),v=l.session,$t=0,zn="",r.items=[],r.scrollOffset=0,l.note&&r.items.push({id:"note",kind:"note",title:"note",body:l.note}),r.items.push(...xm(v.state.messages)),o.model=l.modelLabel.split("/").at(-1)||"no-model",o.thinking=v.thinkingLevel,o.percent=Do(v),o.abandonAnimations(),re("tally",void 0),re("run",void 0),c.setAutocompleteProvider(new kP(pd(v),e.cwd)),c.disableSubmit=!1,wd(v),Cm=v.subscribe(Td),N()},ci=()=>{He||(He=!0,clearInterval(vd),Cm(),v.dispose(),n.stop(),process.stdout.write("\x1B[0m"),process.exit(0))},Sd=l=>{r.items.push({id:`you-${Date.now()}`,kind:"user",title:"you",body:l}),re("tally",void 0),si.clear(),Am.clear(),re("run","thinking"),o.beginRun(),N(),c.disableSubmit=!1;let g=tc(l,e.cwd);rn=l,ui=!0;let y=v.isStreaming?v.prompt(g,{streamingBehavior:"steer"}):v.prompt(g);ui=!1,y.catch(x=>hn(x instanceof Error?x.message:String(x)))},Lm=l=>{let g=l.trim();if(g){if(nn){let y=nn;nn=void 0,c.setText(""),y(g);return}if(c.setText(""),c.addToHistory(g),g.startsWith("!")){let y=g.slice(1).trim();if(!y)return;r.items.push({id:`sh-${Date.now()}`,kind:"tool",title:"$",body:y}),re("run","shell"),N(),v.executeBash(y,x=>{re("run",`shell \xB7 ${x.length} bytes`),N()}).then(x=>{let I=x.output.trim();r.items.push({id:`sh-out-${Date.now()}`,kind:x.exitCode===0?"result":"error",title:`exit ${x.exitCode??"?"}`,body:I||"(no output)"}),re("tally",void 0),N()}).catch(x=>hn(x instanceof Error?x.message:String(x)));return}if(g.startsWith("/")){BP(g);return}Sd(g)}};c.onSubmit=Lm;let Fm=0,jm=()=>{iS().then(l=>{l.ok?c.insertTextAtCursor(l.text):E("paste",l.reason),N()}).catch(l=>{E("paste",`could not read the clipboard: ${l instanceof Error?l.message:String(l)}`),N()})},Pd=l=>aS()&&l.type==="press"&&l.button==="right";n.addInputListener(l=>{if(Ke){if(jt(l,"escape"))return Sm(),{consume:!0};let y=TP(),x=y.matches(l,"tui.select.up"),I=y.matches(l,"tui.select.down");if(x||I){let b=Ke.getTreeList().getSelectedNode()?.entry.id,k=Dt(),A=b===void 0?-1:k.indexOf(b);if(x?A===0:A===k.length-1)return N(),{consume:!0}}return Ke.handleInput(l),N(),{consume:!0}}if(z&&C&&jt(l,"escape"))return ee?(ee=!1,E("workflow","panel keys off \u2014 the editor has the keyboard")):R.expanded?(R.expanded=!1,E("workflow","collapsed the drill-in")):(Qe(),E("workflow","panel unpinned; the run is still in the transcript")),De(),N(),{consume:!0};if(_n)return _n.handleInput(l),N(),{consume:!0};if(jt(l,"escape")){if(v.isStreaming)return Mm=!0,v.abort(),re("note","stopping"),N(),{consume:!0};let y=Date.now();if(c.getText().length===0&&y-Fm<600)return Fm=0,fd(),{consume:!0};Fm=y;return}if(jt(l,"ctrl+c"))return v.isStreaming?(v.abort(),re("note","stopping"),N()):c.getText().length>0?(c.setText(""),re("note","draft cleared \u2014 ctrl+c again quits"),N()):ci(),{consume:!0};if(jt(l,"ctrl+d")&&c.getText().length===0)return ci(),{consume:!0};let g=Math.max(1,r.viewportHeight-1);if(jt(l,"pageUp"))return r.scrollOffset+=g,N(),{consume:!0};if(jt(l,"pageDown"))return r.scrollOffset=Math.max(0,r.scrollOffset-g),N(),{consume:!0};if(jt(l,"home"))return r.scrollOffset=Number.MAX_SAFE_INTEGER,N(),{consume:!0};if(jt(l,"end"))return r.scrollOffset=0,N(),{consume:!0};if(jt(l,"ctrl+v"))return jm(),{consume:!0};if(jt(l,"ctrl+l"))return r.scrollOffset=0,n.scrollToBottom(),N(),{consume:!0};if(jt(l,"ctrl+e")){let y=[...r.items].reverse().find(x=>(x.full?.length??0)>0);return y?(y.expanded=y.expanded!==!0,N(),{consume:!0}):(E("expand","nothing to expand in this transcript yet"),{consume:!0})}if(jt(l,"ctrl+o")&&!v.isStreaming)return r.items=[{id:"cleared",kind:"note",title:"bench",body:"screen cleared. session history is still stored."}],N(),{consume:!0};if(jt(l,hP)&&z&&C)return ee=!ee,E("workflow",ee?"panel keys active \u2014 Esc gives the keyboard back":"panel keys off \u2014 the editor has the keyboard"),De(),N(),{consume:!0};if(ee&&z&&C){let y=lP(l);if(y){let x=Fo(C,Date.now());if(y==="stop")return U?(U(),U=null,E("workflow","stopping the run \u2014 in-flight agents resolve as null")):E("workflow","the run has already finished"),{consume:!0};if(y==="save"){let I=yP(ye,Km);return E("workflow",I.ok?`saved ${I.path}`:I.reason),N(),{consume:!0}}return Object.assign(R,dP(R,y,x)),De(),N(),{consume:!0}}}});let Dm=l=>{let g=y=>{re("prompt",`API key for ${y}. Paste it, then press enter.`),N();let x=nn;nn=I=>{nn=x;let K=I.trim();if(!K){re("prompt",void 0),N();return}v.modelRuntime.setRuntimeApiKey(y,K).then(()=>E("login",`saved API key for ${y}`),b=>E("login",b instanceof Error?b.message:String(b)))}};if(l){g(l);return}v.modelRuntime.getAvailable().then(y=>{let x=[...new Set(y.map(I=>I.provider))].sort();if(x.length===0){E("login","no providers are configured; pass one explicitly, e.g. /login nrimo");return}_t("Login",x.map(I=>({value:I,label:I})),g)},y=>E("login",y instanceof Error?y.message:String(y)))},Ad=async(l,g)=>{let y=IP(Ve,"models.json"),x,I=!1;try{x=JSON.parse(n_(y,"utf8"))}catch(on){if(!(on instanceof Error&&"code"in on&&on.code==="ENOENT"))return`could not read ${y}; the models were not added`;x={providers:{}},I=!0}(!x.providers||typeof x.providers!="object")&&(x.providers={});let K=x.providers[l];K||(K=Bm(),x.providers[l]=K,I=!0);let b=Array.isArray(K.models)?K.models:[],k=Jm(b,g),A=gi(Vm(b,g));K.models=A.models;try{t_(Ve,{recursive:!0}),tt(y,`${JSON.stringify(x,null,2)}
126
+ `)}catch{return`could not write ${y}; the models were not added`}let D=!1;try{await v.modelRuntime.refresh(),D=!0}catch{D=!1}let ve=A.changed>0?`, repaired ${A.changed}`:"",et=D?"":"; restart the CLI to see them all",Rt=I?` (created ${y})`:"";return k===0?`all ${g.length} models were already configured${ve}${Rt}${et}`:`added ${k} model(s) to "${l}"${ve}${Rt}${et}`},pi=l=>{(async()=>{if(!l){let k=await eP({onProgress:D=>{D.kind==="browser"?(wm(D.url),E("connect",["finish signing in to howtofix.id:"," a browser window is opening \u2014 approve the sign-in there",` if it did not open, visit ${D.url}`].join(`
127
+ `))):(wm(D.url),E("connect",["finish signing in to howtofix.id:",` 1. go to ${D.url}`,` 2. enter the code: ${D.code}`," waiting\u2026"].join(`
128
+ `))),N()}});if(k.ok){re("prompt",void 0),nn=void 0,pi(k.token);return}let A=await wm(di);E("connect",[`browser sign-in: ${k.message}`,"","connect with a token instead:",` 1. ${A?"the keys page is opening in your browser":`open ${di}`}`," 2. sign in if asked, then create a key (starts with sk-)"," 3. run /connect <token>"," or /connect again, and paste the key when asked"].join(`
129
+ `)),N();return}if(!Hm(l)){E("connect","that does not look like a howtofix token; the Console issues tokens that start with sk-");return}re("note",`connecting to howtofix.id (${fi(l)})`),N();let g=await hi(l);if(!g.ok){re("note",void 0),E("connect",g.message),N();return}await v.modelRuntime.setRuntimeApiKey("howtofix",l);let y=await Ad("howtofix",g.models),x=!!v.model&&v.model?.provider!==void 0&&o.model!=="unknown",I,K;if(!x)try{let k=(await v.modelRuntime.getAvailable()).filter(ve=>xr(ve.provider)),D=MP(k.map(ve=>ve.id)).slice(0,4);for(let ve of D){if(!(await Ym(ve,l)).ok)continue;let Rt=k.find(on=>on.id===ve);if(Rt){await v.setModel(Rt),o.model=Rt.id,I=`${Rt.provider}/${Rt.id}`;break}}I||(K=D.length>0?`none of the first ${D.length} models answered (${D[0]} did not)`:"the account lists no chat model")}catch(k){K=k instanceof Error?k.message:String(k)}re("note",void 0);let b=await Wo(l);E("connect",[`connected ${fi(l)} \u2014 ${g.message}`,y,_m("howtofix",b),I?`using ${I} (change it with /model)`:`pick a model with /model, then send a prompt${K?` (auto-select failed: ${K})`:""}`].join(`
130
+ `)),N()})().catch(g=>{re("note",void 0),E("connect",g instanceof Error?g.message:String(g)),N()})},_m=(l,g)=>{let y=[`${l} account`];if(!g.ok)return[...y,` ${g.message}`].join(`
131
+ `);if(g.unlimited)y.push(" quota no limit on this token");else{let x=I=>`${I.toFixed(2)} ${g.unit}`;g.limit!==void 0&&y.push(` granted ${x(g.limit)}`),g.used!==void 0&&y.push(` spent ${x(g.used)}`),g.remaining!==void 0&&y.push(` remaining ${x(g.remaining)}`)}return y.join(`
132
+ `)},BP=async l=>{let[g,...y]=l.slice(1).split(/\s+/),x=y.join(" ");if(g==="quit"||g==="exit"){ci();return}if(g==="help"){E("help",pd(v).map(b=>`/${b.name} ${b.description??""}`).join(`
133
+ `));return}if(g==="init"){let b=IP(e.cwd,"AGENTS.md");if(e_(b)&&x!=="force"){E("init",`AGENTS.md already exists at ${b}. run /init force to overwrite.`);return}tt(b,Od),E("init",`wrote ${b}; asking the agent to fill it in`),await v.prompt("Read AGENTS.md, then fill it in with the real build, test, and layout facts of this repo. Keep it short.");return}if(g==="login"){Dm(x);return}if(g==="connect"){if(x.trim()){pi(x.trim());return}pi(""),re("prompt","paste your howtofix.id token, then press enter"),N();let b=nn;nn=k=>{nn=b,re("prompt",void 0),pi(k.trim())};return}if(g==="sync"){let b=new Set((await v.modelRuntime.getAvailable()).map(on=>on.provider).filter(on=>xr(on))),k=Yr.find(on=>b.has(on));if(!k){E("sync","no howtofix.id account is connected; run /connect first");return}re("note",`re-syncing ${k} from howtofix.id`),N();let D=(await v.modelRuntime.getAuth(k))?.auth?.apiKey;if(!D){re("note",void 0),E("sync",`${k} has no usable key; run /connect to sign in again`),N();return}let ve=await hi(D);if(!ve.ok){re("note",void 0),E("sync",ve.message),N();return}let et=await Ad(k,ve.models),Rt=await Wo(D);re("note",void 0),E("sync",`${et}
134
+ ${_m(k,Rt)}`),await v.modelRuntime.refresh(),N();return}if(g==="usage"){let b=new Set((await v.modelRuntime.getAvailable()).map(et=>et.provider).filter(et=>xr(et))),k=Yr.find(et=>b.has(et));if(!k){E("usage","no howtofix.id account is connected; run /connect first");return}re("note","asking howtofix.id for the account usage"),N();let D=(await v.modelRuntime.getAuth(k))?.auth?.apiKey;if(!D){re("note",void 0),E("usage",`${k} has no usable key; run /connect to sign in again`),N();return}let ve=await Wo(D);re("note",void 0),E("usage",_m(k,ve)),N();return}if(g==="logout"){let b=await v.modelRuntime.getAvailable(),k=[...new Set(b.map(A=>A.provider))].sort();if(k.length===0){E("logout","no providers are configured");return}_t("Logout",k.map(A=>({value:A,label:A})),A=>{v.modelRuntime.logout(A).then(()=>E("logout",`logged out ${A}`),D=>E("logout",D instanceof Error?D.message:String(D)))});return}if(g==="providers"){let b=await v.modelRuntime.getAvailable(),k=[...new Set(b.map(A=>A.provider))].sort();k.sort((A,D)=>Number(xr(D))-Number(xr(A))),_t("Providers",k.map(A=>({value:A,label:A})),A=>{let D=v.modelRuntime.getModels(A);if(D.length===0){Dm(A);return}_t(A,D.map(ve=>({value:ve.id,label:ve.id})),ve=>{let et=D.find(Rt=>Rt.id===ve);et&&v.setModel(et).then(()=>{o.model=et.id,E("providers",`${A}/${et.id}`)},()=>Dm(A))})});return}if(g==="name"){if(!x){E("name","usage: /name <session name>");return}v.setSessionName(x),E("name",`session name: ${x}`);return}if(g==="update"){await hd({current:Nt,install:!0});return}if(g==="stats"){let b=v.getSessionStats(),k=v.getContextUsage(),A=D=>Number.isFinite(D)?String(D):"\u2014";E("stats",[`session ${b.sessionId}`,b.sessionFile?`file ${b.sessionFile}`:"not persisted",`messages ${A(b.totalMessages)} (user ${A(b.userMessages)}, assistant ${A(b.assistantMessages)}, tools ${A(b.toolCalls)})`,`tokens in ${A(b.tokens.input)} out ${A(b.tokens.output)} cache ${A(b.tokens.cacheRead)}/${A(b.tokens.cacheWrite)}`,`cost $${Number.isFinite(b.cost)?b.cost.toFixed(4):"\u2014"}`,k?`context ${k.percent===null||!Number.isFinite(k.percent)?"?":`${Math.round(k.percent)}%`} of ${k.contextWindow}`:"context unknown"].join(`
135
+ `));return}if(g==="diff"){let b=async et=>{try{let{stdout:Rt}=await ld("git",et,{cwd:e.cwd,encoding:"utf8"});return Rt.trim()}catch{return""}},k=await b(["diff","--stat"])+`
136
+
137
+ `+await b(["diff","--","."]),[A="",D=""]=k.split(`
138
+
139
+ `,2),ve=PE(D);E("diff",[A.trim(),ve].filter(Boolean).join(`
140
+
141
+ `)||"working tree clean");return}if(g==="copy"){let b=[...v.state.messages].reverse().find(D=>D.role==="assistant"),A=(Array.isArray(b?.content)?b.content:[]).filter(D=>D.type==="text").map(D=>D.text).join("");if(!A){E("copy","nothing to copy");return}try{await s_(A),E("copy",`copied ${A.length} characters`)}catch(D){E("copy",D instanceof Error?D.message:String(D))}return}if(g==="export"){let b=r.items.filter(D=>D.body.trim().length>0);if(b.length===0){E("export","nothing to export yet \u2014 the transcript is empty");return}let k=o_(e.cwd,x||`howtofix-session-${Date.now()}.md`),A=[`# ${at} session`,"",`model ${o.model}`,""];for(let D of b)A.push(`## ${D.title||D.kind}`,"",D.body,"");try{tt(k,A.join(`
142
+ `))}catch(D){E("export",`could not write ${k}: ${D instanceof Error?D.message:String(D)}`);return}E("export",`wrote ${k}`);return}if(g==="agents"){let[b="",...k]=x.split(/\s+/).filter(Boolean),A=k.join(" ").trim();if(b&&A){E("agents",await $E(b,A));return}E("agents",b?Ml(b):Rl());return}if(g==="new"){let b=await e.reopen({noSession:!1});await Ed(b),E("new","started a new session");return}if(g==="resume"){let b=await i_.list(e.cwd);if(b.length===0){E("resume","no saved sessions for this folder");return}_t("Resume session",b.slice(0,30).map(k=>({value:k.path,label:k.name||`${k.id.slice(0,8)} ${k.firstMessage.slice(0,40)}`,description:`${k.modified.toISOString().slice(0,16)} ${k.messageCount} messages`})),k=>{e.reopen({sessionPath:k}).then(Ed,A=>hn(A instanceof Error?A.message:String(A)))});return}if(g==="model"){let b=await v.modelRuntime.getAvailable(),k=x?b.find(A=>`${A.provider}/${A.id}`===x||A.id===x):void 0;if(!x){_t("Select model",b.map(A=>({value:`${A.provider}/${A.id}`,label:A.id,description:A.provider})),A=>{let D=b.find(ve=>`${ve.provider}/${ve.id}`===A);D&&v.setModel(D).then(()=>{o.model=D.id,E("model",`model ${A}`)})});return}if(!k){E("model",`unknown model ${x}`);return}await v.setModel(k),o.model=k.id,E("model",`model ${k.provider}/${k.id}`);return}if(g==="thinking"){if(!x){_t("Thinking level",cd.map(b=>({value:b,label:b})),b=>{v.setThinkingLevel(b),o.thinking=b,E("thinking",`thinking ${b}`)});return}if(!cd.includes(x)){E("thinking",`thinking: ${cd.join(", ")}`);return}v.setThinkingLevel(x),o.thinking=x,E("thinking",`thinking ${x}`);return}if(g==="compact"){try{await v.compact(x||void 0),E("compact","session compacted")}catch(b){E("compact",b instanceof Error?b.message:String(b))}return}if(g==="approval"){let b=k=>{cc(k),E("approval",ki[k])};if(!x){_t("Approval mode",Xr.map(k=>({value:k,label:k,description:ki[k]})),k=>b(k));return}if(!Xr.includes(x)){E("approval",`modes: ${Xr.join(", ")}`);return}b(x);return}if(g==="tools"){let b=v.getActiveToolNames().sort();E("tools",b.length?b.join(`
143
+ `):"no tools enabled");return}if(g==="rewind"){fd();return}if(g==="undo"){if(!await im(e.cwd)){E("undo","not a git repository");return}let b=await EE(e.cwd);E("undo",b.ok?`undone: ${b.output}`:`undo failed: ${b.output}`),i(!0);return}if(g==="commit"){if(!im(e.cwd)){E("commit","not a git repository");return}if(!await TE(e.cwd)){E("commit","nothing to commit");return}let b=x||`howtofix: session update ${new Date().toISOString().slice(0,16)}`,k=await vE(e.cwd,b);E("commit",k.ok?k.output:`commit failed: ${k.output}`),i(!0);return}if(g==="review"){if(!(await SE(e.cwd)).trim()){E("review","no changes to review");return}Lm("Review the uncommitted changes. Report concrete issues with file evidence. Do not edit files.");return}if(g==="workflow"){if(x.trim()==="clear"){Qe(),E("workflow","cleared the pinned workflow panel");return}if(!C){E("workflow","no workflow run in this session yet");return}let b=Fo(C,Date.now()),k=b[R.selectedPhase];E("workflow",[`panel ${z?"pinned above the editor":"unpinned"}`,`phase ${R.selectedPhase+1}/${b.length}: ${k?.title??"(none)"}`,`filter: ${R.filter}${R.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(`
144
+ `));return}if(g==="plan"){if(Hv()||Yu().state==="pending"){Co(Bv(Yu())),E("plan","plan mode off \u2014 edits are allowed again");return}Co(Wv(Yu())),E("plan",`plan mode armed \u2014 send your next prompt to start planning
145
+ plan file: ${zv()??"(unknown)"}`);return}if(g==="goal"){let b=x.trim();if(!b){E("goal",Wu(Bu()));return}let{goal:k,error:A}=ll(Bu(),"set",b,void 0,void 0);if(A){hn(A);return}ln(k),await v.sendCustomMessage({customType:pr,content:b,display:!1,details:k}),E("goal",`goal set
146
+ ${Wu(k)}`);return}if(g==="session"){let b=v.model;E("session",b?`${b.provider}/${b.id}`:"no model");return}if(g==="skills"){E("skills",uP(v.resourceLoader.getSkills().skills));return}let I=aP(l,v.resourceLoader.getSkills().skills.map(b=>b.name));if(I){Sd(I);return}let K=v.extensionRunner.getCommand(g??"");if(K){try{await K.handler(x,v.extensionRunner.createCommandContext())}catch(b){hn(b instanceof Error?b.message:String(b))}return}E("command",`/${g??""} is not available in this screen yet`)};If((l,g)=>{let{promise:y,resolve:x}=Promise.withResolvers();return _t(l,g.map(I=>({value:I,label:I})),x,()=>x("cancelled")),y}),process.on("SIGTERM",ci),t.setTitle(`${at} ${Nt}`),$_(),n.start(),n.requestRender(!0),e.initialPrompt&&Lm(e.initialPrompt),await new Promise(()=>{})}var vP,cd,RP,ld,km,Tm,vm,y_,b_,nn,k_,T_,jP=u(()=>{Ko();uS();zl();AS();nc();DS();Vs();JS();tP();id();Hs();dc();rd();sP();Xs();ql();Xm();iP();Nn();mP();bP();Ol();Vo();rc();Hu();hl();$P();Hn();vP={borderColor:()=>"",selectList:{selectedPrefix:e=>ne(e,_.accent),selectedText:e=>ne(e,_.text,{bold:!0}),description:e=>ne(e,_.mute),scrollInfo:e=>ne(e,_.dim),noMatch:e=>ne(e,_.mute)}},cd=["off","minimal","low","medium","high","xhigh","max"],RP=Symbol.for("@earendil-works/pi-tui/layout-node");ld=QD(ZD);km=class{folder;model;git;percent=0;meter=new lm(0);activity=nP();live=!1;activitySince=Date.now();thinking="medium";cubence="";constructor(t,n){this.folder=r_(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=KS(this.model,this.thinking,this.folder,this.git),s=[ri(`${GS(o,this.live?ed():"",this.live?this.waitedMs():void 0)} ${WS(r,this.cubence)}`,t)],i=Yv();i&&s.push(ri(ne(i,_.warn),t));let c=Lv(Bu());c&&s.push(ri(ne(c,_.accent),t));let p=oP(this.activity,ed(),n),f=this.live?yS(p,{base:Gl(this.waitedMs(),_.mute,_.warn,_.bad),bright:_.text,charMs:45},n):ne(p,Gl(this.waitedMs(),_.mute,_.warn,_.bad));return s.push(ri(f,t)),s}},Tm=class{constructor(t){this.draw=t}draw;render(t){return this.draw(t)}invalidate(){}},vm=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(c=>Im(c)>0),o=r.length>0?r:[""],s="\u2500".repeat(Math.max(0,t-2)),i=o.map(c=>{let p=Math.max(0,n-Im(c));return`\u2502 ${c}${" ".repeat(p)} \u2502`});return[`\u250C${s}\u2510`,...i,`\u2514${s}\u2518`,...this.hud.render(t)]}handleInput(t){this.editor.handleInput(t)}},y_=["deepseek","qwen","claude","gpt-5","gpt-4","gemini","glm","mimo","kimi","llama"],b_=/(image|embedding|embed|whisper|tts|audio|video|rerank|moderation|dall-e|stable-diffusion|sora)/i;k_=1e3/30,T_=45e3});Ko();var Cd={off:!0,minimal:!0,low:!0,medium:!0,high:!0,xhigh:!0,max:!0},Ld={suggest:!0,"auto-edit":!0,"full-auto":!0};function li(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 Fd(e){let t={print:!1,continueSession:!1,noSession:!1,help:!1,version:!1,update:!1,checkUpdate:!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==="--update")t.update=!0;else if(s==="--check-update")t.checkUpdate=!0;else if(s==="-r"||s==="--resume")t.continueSession=!0;else if(s==="--session"||s.startsWith("--session="))t.sessionPath=li(r,o,"--session");else if(s==="-m"||s==="--model"||s.startsWith("--model="))t.model=li(r,o,"--model");else if(s==="--thinking"||s.startsWith("--thinking="))t.thinking=li(r,o,"--thinking");else if(s==="--approval"||s.startsWith("--approval="))t.approval=li(r,o,"--approval");else{if(s.startsWith("-"))throw new Error(`unknown option ${s}`);n.push(s)}}if(t.thinking&&!Cd[t.thinking])throw new Error(`thinking must be one of: ${Object.keys(Cd).join(", ")}`);if(t.approval&&!Ld[t.approval])throw new Error(`approval must be one of: ${Object.keys(Ld).join(", ")}`);if(t.prompt=n.join(" ").trim(),t.update&&t.checkUpdate)throw new Error("--update installs; --check-update only looks. pick one");if((t.update||t.checkUpdate)&&(t.print||t.continueSession||t.sessionPath||t.prompt))throw new Error("--update and --check-update act on the installation, not a session; they take no prompt");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}function Nm(){return`${at} ${Nt}
145
147
  coding agent. layout is a workbench, not a chat log.
146
148
 
147
149
  usage:
@@ -186,9 +188,9 @@ a line starting with ! runs in the project shell.
186
188
 
187
189
  an npm install checks for a newer release at startup and can install it itself;
188
190
  /update does it on demand. config and sessions live in ~/.howtofix/agent.
189
- connect your howtofix.id account
190
- with /connect (it opens the token page), or /login for another provider's key.
191
- `}Ko();Nn();function o_(){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 s_(){process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e})}async function i_(){s_(),qm();let e=o_();if("error"in e){console.error(`${at}: ${e.error}`),process.exitCode=1;return}let t=e.cwd,{repairGatewayModels:n,ensureGatewaySettings:r}=await Promise.resolve().then(()=>(Vm(),qd)),{AGENT_DIR:o}=await Promise.resolve().then(()=>(Nn(),Od)),s=n(o);s>0&&console.error(`${at}: repaired ${s} howtofix model(s) that the gateway would have rejected`),r(o)&&console.error(`${at}: set httpIdleTimeoutMs in settings.json so a stalled provider recovers instead of hanging`);let i;try{i=Md(process.argv.slice(2))}catch(G){let oe=G instanceof Error?G.message:String(G);console.error(`${at}: ${oe}
192
- ${jm()}`),process.exitCode=2;return}if(i.help){console.log(jm());return}if(i.version){console.log(`${at} ${Nt}`);return}if(i.update||i.checkUpdate){let{PACKAGE_NAME:G,checkForUpdate:oe,installUpdate:$e,isInstalledCopy:De}=await Promise.resolve().then(()=>(xi(),hi)),Qe=await oe(Nt);if(!Qe.latest){console.error(`${at}: ${Qe.message}`),process.exitCode=i.update?1:0;return}if(console.log(Qe.message),i.checkUpdate||!Qe.available)return;if(!De()){console.error(`${at}: this copy was not installed by npm, so npm cannot replace it. install it with: npm install -g ${G}`),process.exitCode=1;return}let xe=await $e({version:Qe.latest});console.log(xe.message),xe.ok||(process.exitCode=1);return}if(i.print&&!i.prompt){console.error(`${at}: --print needs a prompt`),process.exitCode=2;return}let{expandFileReferences:c}=await Promise.resolve().then(()=>(Qm(),Qd)),{isApprovalMode:p,setApprovalMode:f}=await Promise.resolve().then(()=>(Vo(),ff)),{openSession:I}=await Promise.resolve().then(()=>(tS(),eS));f(i.approval&&p(i.approval)?i.approval:"full-auto");let $=G=>I({cwd:t,model:i.model,thinking:i.thinking,continueSession:G.continueSession??!1,noSession:G.noSession??!1,sessionPath:G.sessionPath}),A=await $({continueSession:i.continueSession,sessionPath:i.sessionPath,noSession:i.noSession||i.print});if(i.print){A.note&&console.error(A.note);try{await A.session.prompt(c(i.prompt,t));let G=A.session.getLastAssistantText()??"";process.stdout.write(G.endsWith(`
191
+ /connect signs in to howtofix.id in your browser, and falls back to a pasted
192
+ token; /login takes another provider's key.
193
+ `}Ko();Nn();function v_(){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 E_(){process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e})}async function S_(){E_(),Gm();let e=v_();if("error"in e){console.error(`${at}: ${e.error}`),process.exitCode=1;return}let t=e.cwd,{repairGatewayModels:n,ensureGatewaySettings:r}=await Promise.resolve().then(()=>(Xm(),Wd)),{AGENT_DIR:o}=await Promise.resolve().then(()=>(Nn(),jd)),s=n(o);s>0&&console.error(`${at}: repaired ${s} howtofix model(s) that the gateway would have rejected`),r(o)&&console.error(`${at}: set httpIdleTimeoutMs in settings.json so a stalled provider recovers instead of hanging`);let i;try{i=Fd(process.argv.slice(2))}catch(G){let ee=G instanceof Error?G.message:String(G);console.error(`${at}: ${ee}
194
+ ${Nm()}`),process.exitCode=2;return}if(i.help){console.log(Nm());return}if(i.version){console.log(`${at} ${Nt}`);return}if(i.update||i.checkUpdate){let{PACKAGE_NAME:G,checkForUpdate:ee,installUpdate:ye,isInstalledCopy:De}=await Promise.resolve().then(()=>(yi(),xi)),Qe=await ee(Nt);if(!Qe.latest){console.error(`${at}: ${Qe.message}`),process.exitCode=i.update?1:0;return}if(console.log(Qe.message),i.checkUpdate||!Qe.available)return;if(!De()){console.error(`${at}: this copy was not installed by npm, so npm cannot replace it. install it with: npm install -g ${G}`),process.exitCode=1;return}let xe=await ye({version:Qe.latest});console.log(xe.message),xe.ok||(process.exitCode=1);return}if(i.print&&!i.prompt){console.error(`${at}: --print needs a prompt`),process.exitCode=2;return}let{expandFileReferences:c}=await Promise.resolve().then(()=>(nc(),rf)),{isApprovalMode:p,setApprovalMode:f}=await Promise.resolve().then(()=>(Vo(),yf)),{openSession:w}=await Promise.resolve().then(()=>(sS(),oS));f(i.approval&&p(i.approval)?i.approval:"full-auto");let $=G=>w({cwd:t,model:i.model,thinking:i.thinking,continueSession:G.continueSession??!1,noSession:G.noSession??!1,sessionPath:G.sessionPath}),P=await $({continueSession:i.continueSession,sessionPath:i.sessionPath,noSession:i.noSession||i.print});if(i.print){P.note&&console.error(P.note);try{await P.session.prompt(c(i.prompt,t));let G=P.session.getLastAssistantText()??"";process.stdout.write(G.endsWith(`
193
195
  `)?G:`${G}
194
- `);let oe=A.session.state.messages.at(-1);oe?.role==="assistant"&&((oe.stopReason==="error"||oe.stopReason==="aborted"||oe.errorMessage)&&(process.exitCode=1),process.exitCode===1&&oe.errorMessage&&console.error(`${at}: ${oe.errorMessage}`))}finally{A.dispose()}return}if(!process.stdin.isTTY||!process.stdout.isTTY){console.error(`${at}: interactive mode needs a terminal. use --print for pipes.`),A.dispose(),process.exitCode=2;return}let{runWorkbench:O}=await Promise.resolve().then(()=>(SP(),EP)),{autoUpdateEnabled:L,isInstalledCopy:K}=await Promise.resolve().then(()=>(xi(),hi)),V=K()&&L(`${o}/settings.json`);await O({cwd:t,modelLabel:A.modelLabel,session:A.session,initialPrompt:i.prompt||void 0,note:A.note,update:V?{current:Nt,install:!0}:void 0,reopen:$})}i_().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`${at}: ${t}`),process.exitCode=1});
196
+ `);let ee=P.session.state.messages.at(-1);ee?.role==="assistant"&&((ee.stopReason==="error"||ee.stopReason==="aborted"||ee.errorMessage)&&(process.exitCode=1),process.exitCode===1&&ee.errorMessage&&console.error(`${at}: ${ee.errorMessage}`))}finally{P.dispose()}return}if(!process.stdin.isTTY||!process.stdout.isTTY){console.error(`${at}: interactive mode needs a terminal. use --print for pipes.`),P.dispose(),process.exitCode=2;return}let{runWorkbench:R}=await Promise.resolve().then(()=>(jP(),FP)),{autoUpdateEnabled:C,isInstalledCopy:U}=await Promise.resolve().then(()=>(yi(),xi)),z=U()&&C(`${o}/settings.json`);await R({cwd:t,modelLabel:P.modelLabel,session:P.session,initialPrompt:i.prompt||void 0,note:P.note,update:z?{current:Nt,install:!0}:void 0,reopen:$})}S_().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`${at}: ${t}`),process.exitCode=1});