howtofixcli 0.4.29 → 0.4.31

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 +92 -91
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -1,61 +1,62 @@
1
1
  #!/usr/bin/env node
2
- var JP=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)JP(e,n,{get:t[n],enumerable:!0})};function Cd(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,Od,Ld,Go=u(()=>{at="HowToFix",Nt="0.4.29",Od=["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
- `);Ld=["# Project notes","","## What this is","","## Commands","- build:","- test:","","## Conventions","-",""].join(`
6
- `)});var _d={};Mt(_d,{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 YP}from"node:os";import{join as Vr,resolve as XP}from"node:path";function ZP(){let e=(process.env.HOWTOFIX_HOME??process.env.HOME??"").trim();return XP(e||YP())}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(ZP(),".howtofix","agent"),qm=Vr(Ve,"skills");Jr=Vr(Ve,"agents"),Um=Vr(Ve,"cubence-cache.json"),Km=Vr(Ve,"workflows")});import{closeSync as QP,fsyncSync as eR,openSync as tR,renameSync as Nd,rmSync as Wm,writeSync as nR}from"node:fs";import{dirname as rR,join as oR}from"node:path";function tt(e,t){let n=oR(rR(e),`.${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.tmp`),r=tR(n,"w");try{nR(r,t),eR(r)}finally{QP(r)}try{Nd(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{Nd(n,e)}catch(i){throw Wm(n,{force:!0}),i}}}var Hn=u(()=>{});var zd={};Mt(zd,{DEFAULT_CONTEXT_WINDOW:()=>Gd,HOWTOFIX_BASE_URL:()=>Wo,HOWTOFIX_CONSOLE_URL:()=>gi,HOWTOFIX_MODEL_COMPAT:()=>zm,HOWTOFIX_PROVIDERS:()=>Yr,HTTP_IDLE_TIMEOUT_MS:()=>Kd,UNLIMITED_SENTINEL:()=>Bd,applyCompat:()=>xi,checkAccount:()=>yi,checkUsage:()=>Bo,countNewModels:()=>Jm,ensureGatewaySettings:()=>uR,isHowtofixProvider:()=>xr,looksLikeToken:()=>Hm,maskToken:()=>hi,mergeModels:()=>Vm,newProviderEntry:()=>Bm,parseModelIds:()=>Wd,probeModel:()=>Ym,repairGatewayModels:()=>aR});import{existsSync as sR,mkdirSync as iR,readFileSync as qd}from"node:fs";import{join as Ud}from"node:path";function Bm(){return{baseUrl:Wo,api:"openai-completions"}}function aR(e){let t=Ud(e,"models.json"),n;try{n=JSON.parse(qd(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=xi(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 uR(e){let t=Ud(e,"settings.json"),n={};try{let r=qd(t,"utf8"),o=JSON.parse(r);o&&typeof o=="object"&&!Array.isArray(o)&&(n=o)}catch{if(sR(t))return!1}if("httpIdleTimeoutMs"in n)return!1;n.httpIdleTimeoutMs=Kd;try{iR(e,{recursive:!0}),tt(t,`${JSON.stringify(n,null,2)}
8
- `)}catch{return!1}return!0}function hi(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 Wd(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 mR(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 Bo(e,t){let n=(t?.baseUrl??Wo).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 mR(r,i).catch(()=>"USD"),p=new AbortController,f=setTimeout(()=>p.abort(),o),w={Authorization:`Bearer ${s}`};try{let[I,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(I.status===401||I.status===403)return{ok:!1,unlimited:!1,unit:c,message:"the gateway rejected that token when asking for the balance"};if(!I.ok)return{ok:!1,unlimited:!1,unit:c,message:`the balance endpoint answered ${I.status}`};let A=await I.json();if(A.error?.message)return{ok:!1,unlimited:!1,unit:c,message:A.error.message};let C=Number(A.hard_limit_usd??A.soft_limit_usd??0);if(C>=Bd)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(I){let P=I instanceof Error&&I.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:Gd,compat:{...zm}}));return r}function xi(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??Wo).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 yi(e,t){let n=(t?.baseUrl??Wo).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=Wd(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 Wo,gi,Yr,Kd,zm,Gd,Bd,Xm=u(()=>{Hn();Wo="https://api.howtofix.id/v1",gi="https://howtofix.id/keys",Yr=["howtofix","howtofix-free"];Kd=9e4;zm={supportsDeveloperRole:!1},Gd=128e3;Bd=1e8});var bi={};Mt(bi,{CHECK_TIMEOUT_MS:()=>Yd,INSTALL_TIMEOUT_MS:()=>Xd,LOCK_TIMEOUT_MS:()=>Qm,PACKAGE_NAME:()=>zo,acquireUpdateLock:()=>nf,autoUpdateEnabled:()=>bR,checkForUpdate:()=>hR,compareVersions:()=>Zd,installUpdate:()=>xR,isInstalledCopy:()=>yR,isNewer:()=>Qd,latestVersion:()=>of,releaseUpdateLock:()=>rf});import{execFile as cR}from"node:child_process";import{existsSync as pR,mkdirSync as lR,readFileSync as dR,realpathSync as fR,statSync as Hd,unlinkSync as Jd,writeFileSync as gR}from"node:fs";import{homedir as ec}from"node:os";import{join as Vd,sep as Zm}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 Qd(e,t){return e.includes("-")?!1:Zd(e,t)>0}function tf(){let t=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||Vd(ec(),".howtofix","agent");try{lR(t,{recursive:!0})}catch{}return Vd(t,"update.lock")}function nf(e=Date.now()){let t=tf();try{if(pR(t)){if(e-Hd(t).mtimeMs<Qm)return!1;let r=Hd(t).mtimeMs;if(e-r<Qm)return!1;Jd(t)}return gR(t,String(process.pid),{mode:384}),!0}catch{return!0}}function rf(){try{Jd(tf())}catch{}}async function of(e){let n=await(e?.runner??ef)("npm",["view",`${zo}@latest`,"version","--prefer-online"],{cwd:ec(),timeoutMs:e?.timeoutMs??Yd});if(n.code!==0)return;let r=n.stdout.trim().split(`
9
- `).pop()?.trim()??"";return/^\d+\.\d+/.test(r)?r:void 0}async function hR(e,t){let n=await of(t);return n?Qd(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 xR(e){let t=e?.runner??ef;if(!nf())return{ok:!1,message:"another HowToFix is already installing an update"};try{let n=e?.version?`${zo}@${e.version}`:`${zo}@latest`,r=await t("npm",["install","-g",n],{cwd:ec(),timeoutMs:e?.timeoutMs??Xd});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{rf()}}function yR(e=process.argv[1]){if(!e)return!1;let t=e;try{t=fR(e)}catch{}return t.includes(`${Zm}node_modules${Zm}${zo}${Zm}`)}function bR(e){try{return JSON.parse(dR(e,"utf8")).autoUpdate!==!1}catch{return!0}}var zo,Yd,Xd,Qm,ef,wi=u(()=>{zo="howtofixcli",Yd=5e3,Xd=12e4,Qm=600*1e3;ef=(e,t,n)=>new Promise(r=>{cR(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 sf={};Mt(sf,{expandFileReferences:()=>tc});import{readFileSync as wR,statSync as IR}from"node:fs";import{isAbsolute as $R,resolve as kR}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=$R(s)?s:kR(t,s);try{let p=IR(c);if(!p.isFile()||p.size===0||p.size>TR)return n;let f=wR(c);return f.includes(0)?n:`${r}<file name="${c}">
11
- ${f.toString("utf8").trimEnd()}
12
- </file>${i}`}catch{return n}})}var TR,nc=u(()=>{TR=64*1024});function ER(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 af(e,t){if(vR.has(e))return;let n=`${e}\0${ER(t)}`,r=Ho&&Ho.signature===n?Ho.count+1:1;return Ho={signature:n,count:r},r>=3?{repeats:r}:void 0}function uf(){Ho=void 0}function mf(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 vR,Ho,rc=u(()=>{vR=new Set(["think"])});function cf(e,t){switch(t){case"number":return/^\d+$/.test(e);case"string":return!0;default:return!1}}function PR(e,t,n){let r=t;for(;r<e.length;){let o=e[r];if(!o){r++;continue}if(o==="--")break;if(SR.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(!cf(c.join("="),p))return!1;r++;continue}let f=e[r+1];if(f===void 0||!cf(f,p))return!1;r+=2;continue}if(n.allowPositional===!1)return!1;r++}return!0}function LR(e){if(!/\$\(|`|\$\{|>|</.test(e)&&!/(?<!&)&(?!&)/.test(e))return e.split(/\|\||&&|;|\|/).map(t=>t.trim()).filter(t=>t.length>0)}function FR(e){let t=e.some(r=>/^cd\b/.test(r)),n=e.some(r=>/^git\b/.test(r));return t&&n}function jR(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 DR(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"&&lf[`git ${n}`]?{name:`git ${n}`,rest:e.slice(2)}:df[r]?{name:r,rest:e.slice(2)}:{name:t,rest:e.slice(1)}}function NR(e){let t=jR(e),n=DR(t);if(!n)return!1;let{name:r,rest:o}=n;if(_R.has(r)&&o.some(i=>i.includes("$")||i.includes("`")))return!1;let s=lf[r]??OR[r]??df[r];return s?s.dangerous?.(o)?!1:PR(o,0,s):!!(MR.includes(r)||CR.includes(r))}function Ti(e){let t=LR(e);return!t||t.length===0||FR(t)?!1:t.every(NR)}var SR,RR,Ii,$i,oc,ki,sc,pf,AR,lf,MR,OR,df,CR,_R,ic=u(()=>{SR=/^-[a-zA-Z0-9_-]/;RR={"--all":"none","--branches":"none","--tags":"none","--remotes":"none"},Ii={"--oneline":"none","--graph":"none","--decorate":"none","--no-decorate":"none","--date":"string","--relative-date":"none"},$i={"--max-count":"number","-n":"number"},oc={"--stat":"none","--numstat":"none","--shortstat":"none","--name-only":"none","--name-status":"none"},ki={"--color":"none","--no-color":"none"},sc={"--patch":"none","-p":"none","--no-patch":"none","--no-ext-diff":"none","-s":"none"},pf={"--author":"string","--committer":"string","--grep":"string"},AR={"-l":"none","--list":"none","-a":"none","-r":"none","-v":"none","-vv":"none","-i":"none"},lf={"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",...ki}},"git diff":{safeFlags:{...oc,...ki,...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:{...Ii,...$i,...oc,...ki,...sc,...pf,...RR,"--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,...ki,...sc,...Ii,"--format":"string","--pretty":"string","--abbrev-commit":"none","--no-patch":"none","-q":"none"}},"git shortlog":{safeFlags:{...$i,"-s":"none","--summary":"none","-n":"none","--numbered":"none","-e":"none","--email":"none","-sn":"none","-ns":"none","--all":"none"}},"git reflog":{safeFlags:{...$i,...Ii,...pf,"--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:{...$i,"--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:{...Ii}},"git worktree list":{safeFlags:{"--porcelain":"none","-v":"none","--verbose":"none","-z":"none"}},"git branch":{safeFlags:{...AR,"--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"}}},MR=["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"],OR={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))}},df={"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:{}}},CR=["cd","alias","history","arch","ip addr","ifconfig"];_R=new Set(["echo","printf"])});var wf={};Mt(wf,{APPROVAL_LABELS:()=>vi,APPROVAL_MODES:()=>Xr,MODE_MAX_TIER:()=>ff,TIER_RANK:()=>ac,createPermissionExtension:()=>Vo,criticalCommand:()=>gf,decideToolCall:()=>xf,describeToolCall:()=>yf,formatApprovalPrompt:()=>bf,getApprovalMode:()=>GR,isApprovalMode:()=>qR,isReadOnlyCommand:()=>Ti,resolveTier:()=>uc,setApprovalMode:()=>cc,setApprovalPrompt:()=>pc});function qR(e){return Xr.includes(e)}function uc(e){let t=UR[e];return t||(e.startsWith("mcp__")?"write":"exec")}function gf(e){for(let{pattern:t,reason:n}of KR)if(t.test(e))return n}function cc(e){mc=e}function GR(){return mc}function pc(e){hf=e}function xf(e,t,n){let r=typeof n?.command=="string"?n.command:"";if(t==="bash"||t==="powershell"){let s=gf(r);if(s)return{action:"deny",reason:`Refused in every mode: ${s}.`};if(Ti(r))return{action:"run"}}let o=uc(t);return ac[o]<=ac[ff[e]]?{action:"run"}:{action:"prompt",reason:`this is a ${o}-tier tool`}}function yf(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 bf(e,t,n){let r=[`Allow tool: ${e}`];e.startsWith("mcp__")&&r.push("Origin: MCP server tool"),r.push(`Reason: ${n}`);let o=yf(e,t);return o!==e&&r.push(o),r.join(`
13
- `)}function Vo(e={}){return t=>{t.on("tool_call",async n=>{let r=af(n.toolName,n.input);if(r)return{block:!0,reason:mf(n.toolName,r.repeats)};let o=mc,s=xf(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 hf(`${n.toolName} wants to run`,bf(n.toolName,n.input,s.reason)))return{block:!0,reason:`Blocked by the user (approval mode: ${o}).`}})}}var Xr,vi,ac,ff,UR,KR,mc,hf,Jo=u(()=>{rc();ic();ic();Xr=["suggest","auto-edit","full-auto"],vi={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},ff={suggest:"read","auto-edit":"write","full-auto":"exec"},UR={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"};KR=[{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",hf=async()=>!1});function WR(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 zR(e){if(!e)return;let t=!1,n={...e};for(let r of BR){let o=n[r];if(typeof o!="string")continue;let s=WR(o);s!==o&&(n[r]=s,t=!0)}return t?n:void 0}function If(){return e=>{e.on("context_with_system",async t=>{let n=t.messages[0];if(!n||n.role!=="system")return;let r=zR(n.sections);return r?{messages:t.messages.map(s=>s===n?{...n,sections:r}:s)}:void 0})}}var BR,$f=u(()=>{BR=["preamble","rules","docs","addendum"]});import{Type as Zr}from"@earendil-works/pi-ai";import{defineTool as kf}from"@earendil-works/pi-coding-agent";function Tf(e){lc=e}var lc,vf,Ef,dc=u(()=>{vf=kf({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}}}}),Ef=kf({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 Rf(e){return e===8205}function HR(e){return br(e,55296,56319)}function Sf(e){return br(e,127462,127487)}function Af(e){return br(e,65024,65039)}function Mf(e){return br(e,768,879)||br(e,6832,6911)||br(e,7616,7679)||br(e,65056,65071)}function Ei(e){return e>65535?2:1}function Pf(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(Mf(n)||Af(n))t+=Ei(n);else break}return t}function fc(e,t){let n=e.codePointAt(t),r=t+Ei(n);for(r=Pf(e,r);r<e.length-1&&Rf(e.codePointAt(r));){let o=e.codePointAt(r+1);r+=1+Ei(o),r=Pf(e,r)}return Sf(n)&&r<e.length&&Sf(e.codePointAt(r))&&(r+=Ei(e.codePointAt(r))),r}function Of(e){return e>=768&&(HR(e)||Mf(e)||Af(e)||Rf(e))}function Cf(e){let t=0,n=0;for(;n<e.length;)n=fc(e,n),t++;return t}function VR(e,t){let n=0,r=0;for(;r<e.length;)if(r=fc(e,r),++n>=t)return!0;return!1}function JR(e,t){let n=0,r=0;for(;r<e.length;)if(r=fc(e,r),++n>t)return!1;return!0}function Lf(e,t){if(t===0)return!0;if(e.length<t)return!1;let n=0;for(;;){if(Of(e.charCodeAt(n)))return VR(e,t);if(++n>=t)return!0}}function Ff(e,t){if(e.length<=t)return!0;let n=0;for(;;){if(Of(e.charCodeAt(n)))return JR(e,t);if(++n>t)return!1}}var jf=u(()=>{});var m={};Mt(m,{Counted:()=>pA,Entries:()=>fA,EntriesRegExp:()=>dA,Every:()=>aA,EveryAll:()=>uA,GraphemeCount:()=>oA,HasPropertyKey:()=>lA,IsArray:()=>Xo,IsBigInt:()=>Yo,IsBoolean:()=>Df,IsClassInstance:()=>rA,IsConstructor:()=>XR,IsDeepEqual:()=>xc,IsEqual:()=>ue,IsFunction:()=>_f,IsGreaterEqualThan:()=>qf,IsGreaterThan:()=>eA,IsInteger:()=>gc,IsLessEqualThan:()=>Nf,IsLessThan:()=>tA,IsMaxLength:()=>sA,IsMinLength:()=>iA,IsMultipleOf:()=>nA,IsNull:()=>Pi,IsNumber:()=>Ri,IsObject:()=>Zo,IsObjectNotArray:()=>ZR,IsString:()=>Ai,IsSymbol:()=>QR,IsUndefined:()=>hc,IsUnsafePropertyKey:()=>Kf,IsValueLike:()=>Uf,Keys:()=>Si,ShiftLeft:()=>Mi,Some:()=>mA,SomeAll:()=>cA,Symbols:()=>gA,Values:()=>hA});function Xo(e){return Array.isArray(e)}function Yo(e){return ue(typeof e,"bigint")}function Df(e){return ue(typeof e,"boolean")}function XR(e){if(hc(e)||!_f(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function _f(e){return ue(typeof e,"function")}function gc(e){return Number.isInteger(e)}function Pi(e){return ue(e,null)}function Ri(e){return Number.isFinite(e)}function ZR(e){return Zo(e)&&!Xo(e)}function Zo(e){return ue(typeof e,"object")&&!Pi(e)}function Ai(e){return ue(typeof e,"string")}function QR(e){return ue(typeof e,"symbol")}function hc(e){return ue(e,void 0)}function ue(e,t){return e===t}function eA(e,t){return e>t}function tA(e,t){return e<t}function Nf(e,t){return e<=t}function qf(e,t){return e>=t}function nA(e,t){if(Yo(e)||Yo(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!Ri(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 rA(e){if(!Zo(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return Pi(t)?!1:ue(typeof t.constructor,"function")&&!(ue(t.constructor,globalThis.Object)||ue(t.constructor.name,"Object"))}function Uf(e){return Yo(e)||Df(e)||Pi(e)||Ri(e)||Ai(e)||hc(e)}function oA(e){return Cf(e)}function sA(e,t){return Ff(e,t)}function iA(e,t){return Lf(e,t)}function aA(e,t,n){return e.every((r,o)=>o<t||n(r,o))}function uA(e,t,n){let r=!0;return e.forEach((o,s)=>{s>=t&&!n(o,s)&&(r=!1)}),r}function mA(e,t){return e.some((n,r)=>t(n,r))}function cA(e,t){let n=!1;return e.forEach((r,o)=>{t(r,o)&&(n=!0)}),n}function pA(e,t){return e.reduce((n,r,o)=>t(r,o)?++n:n,0)}function Mi(e,t,n){return ue(e.length,0)?n():t(e[0],e.slice(1))}function Kf(e){return ue(e,"__proto__")||ue(e,"constructor")||ue(e,"prototype")}function lA(e,t){return Kf(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function dA(e){return Si(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function fA(e){return Object.entries(e)}function Si(e){return Object.getOwnPropertyNames(e)}function gA(e){return Object.getOwnPropertySymbols(e)}function hA(e){return Object.values(e)}function xA(e,t){if(!Zo(t))return!1;let n=Si(e);return ue(n.length,Si(t).length)&&n.every(r=>xc(e[r],t[r]))}function yA(e,t){return Xo(t)&&ue(e.length,t.length)&&e.every((n,r)=>xc(e[r],t[r]))}function xc(e,t){return Xo(e)?yA(e,t):Zo(e)?xA(e,t):ue(e,t)}var Qr=u(()=>{jf()});var Gf=u(()=>{Qr()});var Vn={};Mt(Vn,{IsBigInt64Array:()=>CA,IsBigUint64Array:()=>LA,IsBoolean:()=>wA,IsDate:()=>jA,IsFloat32Array:()=>MA,IsFloat64Array:()=>OA,IsInt16Array:()=>SA,IsInt32Array:()=>RA,IsInt8Array:()=>TA,IsMap:()=>_A,IsNumber:()=>IA,IsRegExp:()=>FA,IsSet:()=>DA,IsString:()=>$A,IsTypeArray:()=>kA,IsUint16Array:()=>PA,IsUint32Array:()=>AA,IsUint8Array:()=>vA,IsUint8ClampedArray:()=>EA});function wA(e){return e instanceof Boolean}function IA(e){return e instanceof Number}function $A(e){return e instanceof String}function kA(e){return globalThis.ArrayBuffer.isView(e)}function TA(e){return e instanceof globalThis.Int8Array}function vA(e){return e instanceof globalThis.Uint8Array}function EA(e){return e instanceof globalThis.Uint8ClampedArray}function SA(e){return e instanceof globalThis.Int16Array}function PA(e){return e instanceof globalThis.Uint16Array}function RA(e){return e instanceof globalThis.Int32Array}function AA(e){return e instanceof globalThis.Uint32Array}function MA(e){return e instanceof globalThis.Float32Array}function OA(e){return e instanceof globalThis.Float64Array}function CA(e){return e instanceof globalThis.BigInt64Array}function LA(e){return e instanceof globalThis.BigUint64Array}function FA(e){return e instanceof globalThis.RegExp}function jA(e){return e instanceof globalThis.Date}function DA(e){return e instanceof globalThis.Set}function _A(e){return e instanceof globalThis.Map}var Wf=u(()=>{});var Bf=u(()=>{Qr()});var O=u(()=>{Gf();Wf();Bf();Qr();Qr()});var an={};Mt(an,{Get:()=>KA,Reset:()=>qA,Set:()=>UA});function qA(){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 UA(e){for(let t of m.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(xn,t,{value:n})}}function KA(){return xn}var xn,zf=u(()=>{O();xn={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0}});var wr=u(()=>{zf()});function Jn(e){return an.Get().immutableTypes?Object.freeze(e):e}var Qo=u(()=>{wr()});function GA(e,t){return sn.assign+=1,Jn({...e,...t})}var Hf=u(()=>{yr();Qo()});function WA(e){return m.HasPropertyKey(e,"~kind")||m.HasPropertyKey(e,"~unsafe")}function BA(e){let t={};for(let n of m.Keys(e)){if(m.IsUnsafePropertyKey(n))continue;let r=Object.getOwnPropertyDescriptor(e,n);r.value=Ir(r.value),m.IsEqual(r.enumerable,!0)?t[n]=r.value:Object.defineProperty(t,n,r)}return t}function zA(e){let t={};for(let n of m.Keys(e))m.IsUnsafePropertyKey(n)||(t[n]=Ir(e[n]));for(let n of m.Symbols(e))t[n]=Ir(e[n]);return t}function HA(e){return m.IsClassInstance(e)?e:WA(e)?BA(e):zA(e)}function VA(e){return e.map(t=>Ir(t))}function JA(e){return e.slice()}function YA(e){return new RegExp(e.source,e.flags)}function XA(e){return new Map(Ir([...e.entries()]))}function ZA(e){return new Set(Ir([...e.values()]))}function Ir(e){return Vn.IsTypeArray(e)?JA(e):Vn.IsRegExp(e)?YA(e):Vn.IsMap(e)?XA(e):Vn.IsSet(e)?ZA(e):m.IsArray(e)?VA(e):m.IsObject(e)?HA(e):e}function es(e){return sn.clone+=1,Ir(e)}var Oi=u(()=>{O();yr()});function QA(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 Vf(e,t){return{...e,...t}}function eM(e,t,n={}){sn.create+=1;let r=Vf(t,n),o=an.Get().enumerableKind?Vf(r,e):QA(r,e);return Jn(o)}var Jf=u(()=>{wr();yr();Qo()});function tM(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=es(o.value),Object.defineProperty(n,r,o)}return Jn(n)}var Yf=u(()=>{O();yr();Qo();Oi()});function nM(e,t,n){sn.update+=1;let r=an.Get(),o=es(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 Xf=u(()=>{wr();yr();Qo();Oi()});var d={};Mt(d,{Assign:()=>GA,Clone:()=>es,Create:()=>eM,Discard:()=>tM,Metrics:()=>sn,Update:()=>nM});var Zf=u(()=>{Hf();Oi();Jf();Yf();yr();Xf()});var S=u(()=>{Zf()});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 rM(e){return d.Update(e,{"~readonly":!0},{})}function ts(e,t){return d.Update(rM(e),{},t)}function Qf(e,t,n,r){let o=T(e,t,n);return ts(o,r)}var Ci=u(()=>{S();q()});function oM(e){return d.Update(e,{"~optional":!0},{})}function ns(e,t){return d.Update(oM(e),{},t)}function eg(e,t,n,r){let o=T(e,t,n);return ns(o,r)}var Li=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 Fi(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 tg(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 ng(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 rs=u(()=>{S();J()});function to(e){return d.Create({"~kind":"Any"},{},e)}function Ee(e){return L(e,"Any")}var $t=u(()=>{S();J()});function ge(e){return d.Create({"~kind":"Never"},{not:{}},e)}function un(e){return L(e,"Never")}var rg,Je=u(()=>{S();J();rg="(?!)"});function wn(e,t={}){return j("AddOptional",[e],t)}function $r(e,t={}){return ns(e,t)}var os=u(()=>{ce();Li()});function og(e){return $r(e)}function ut(e){return _e(e)&&m.HasPropertyKey(e,"~optional")}var Zn=u(()=>{O();J();os()});function sg(e){return m.Keys(e).filter(t=>!ut(e[t]))}function ji(e){return m.Keys(e)}function Di(e){return m.Values(e)}var kr=u(()=>{O();Zn()});function W(e,t={}){let n=sg(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 ig(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 In(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 ag(e){return d.Update(e,{"~unsafe":null},{})}function _i(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"~unsafe")&&m.IsNull(e["~unsafe"])}var Ni=u(()=>{O();S()});var $n={};Mt($n,{Match:()=>sM});function sM(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}var ug=u(()=>{});var no=u(()=>{ug()});function ss(...e){let[t,n]=$n.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 mg(e){return d.Discard(e,["~kind","if","then","else"])}var Ot=u(()=>{S();J()});function cg(e){return m.IsObjectNotArray(e)}function pg(e){return m.Keys(e).filter(n=>isNaN(n)).reduce((n,r)=>[...n,e[r]],[])}var qi=u(()=>{O()});function lg(e){return m.IsString(e)||m.IsNumber(e)}function dg(e,t){let n=cg(e)?pg(e):e;return d.Create({"~kind":"Enum"},{enum:n},t)}function ot(e){return L(e,"Enum")}var mn=u(()=>{O();S();J();qi();qi()});function Tt(e,t={}){return d.Create({"~kind":"Intersect"},{allOf:e},t)}function oe(e){return L(e,"Intersect")}function fg(e){return d.Discard(e,["~kind","allOf"])}var Ne=u(()=>{S();J()});var gg=u(()=>{wr();O()});var hg=u(()=>{gg()});var xg=u(()=>{hg()});function qe(){throw new Error("Unreachable")}var yc=u(()=>{});var kn=u(()=>{yc()});var yg,EU,SU,PU,RU,bg,AU,MU,OU,wg=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"})(yg||(yg={}));EU=BigInt("14695981039346656037"),[SU,PU]=[BigInt("1099511628211"),BigInt("18446744073709551616")],RU=Array.from({length:256}).map((e,t)=>BigInt(t)),bg=new Float64Array(1),AU=new DataView(bg.buffer),MU=new Uint8Array(bg.buffer),OU=new TextEncoder});var Ig=u(()=>{wg()});var bc=u(()=>{});var $g=u(()=>{bc()});var kg=u(()=>{});var Tg=u(()=>{});var vg=u(()=>{});var Eg=u(()=>{});var Sg=u(()=>{});var Pg=u(()=>{});var Rg=u(()=>{});var Ag=u(()=>{});var Mg=u(()=>{});var Og=u(()=>{});var Cg=u(()=>{});var wc=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(()=>{});var oh=u(()=>{});var sh=u(()=>{$g();kg();Tg();vg();Eg();Sg();bc();Pg();Rg();Ag();Mg();Og();Cg();wc();wc();Lg();Fg();jg();Dg();_g();Ng();qg();Ug();Kg();Gg();Wg();Bg();zg();Hg();Vg();Jg();Yg();Xg();Zg();Qg();eh();th();nh();rh();oh()});var ih=u(()=>{sh()});var is=u(()=>{no();xg();Ig();ih();S();wr()});var uh=u(()=>{is();is();is()});function Ki(e){return new us(e)}function mh(e,t){return Ki(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function ch(e,t){return Ki(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function Ui(e){return _e(e)&&m.HasPropertyKey(e,"~codec")&&m.IsObject(e["~codec"])&&m.HasPropertyKey(e["~codec"],"encode")&&m.HasPropertyKey(e["~codec"],"decode")}var as,us,Ic=u(()=>{uh();O();J();as=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,r=Ui(n)?i=>this.decode(n["~codec"].decode(i)):this.decode,o=Ui(n)?i=>n["~codec"].encode(t(i)):t,s={decode:r,encode:o};return d.Update(this.type,{"~codec":s},{})}},us=class{constructor(t){this.type=t}Decode(t){return new as(this.type,t)}}});function ph(e){return ro(e)}function vr(e){return _e(e)&&m.HasPropertyKey(e,"~immutable")}var ms=u(()=>{O();J();cs()});function Tn(e,t={}){return j("AddReadonly",[e],t)}function Er(e,t={}){return ts(e,t)}var ps=u(()=>{ce();Ci()});function lh(e){return Er(e)}function Sr(e){return _e(e)&&m.HasPropertyKey(e,"~readonly")}var ls=u(()=>{O();J();ps()});function mM(e,t){let n=$c(e)?[...e["~refine"],t]:[t];return d.Update(e,{"~refine":n},{})}function dh(...e){let[t,n,r]=$n.Match(e,{3:(o,s,i)=>[o,s,i],2:(o,s)=>[o,s,()=>"Refine Error"]});return mM(t,{check:n,error:r})}function cM(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"check")&&m.HasPropertyKey(e,"error")&&m.IsFunction(e.check)&&m.IsFunction(e.error)}function $c(e){return _e(e)&&m.HasPropertyKey(e,"~refine")&&m.IsArray(e["~refine"])&&m.Every(e["~refine"],0,t=>cM(t))}var kc=u(()=>{no();S();O();J()});function ds(e){return d.Create({"~kind":"BigInt"},{type:"bigint"},e)}function vn(e){return L(e,"BigInt")}var fh,Pr=u(()=>{S();J();fh="-?(?:0|[1-9][0-9]*)n"});function Gi(e){return d.Create({"~kind":"Boolean"},{type:"boolean"},e)}function Jt(e){return L(e,"Boolean")}var Qn=u(()=>{S();J()});function fs(e){return d.Create({"~kind":"Identifier"},{name:e})}function gh(e){return L(e,"Identifier")}var Tc=u(()=>{S();J()});function Rr(e){return d.Create({"~kind":"Integer"},{type:"integer"},e)}function ht(e){return L(e,"Integer")}var Wi,En=u(()=>{S();J();Wi="-?(?:0|[1-9][0-9]*)"});function pM(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:pM(e),const:e},t)}function Bi(e){return m.IsBigInt(e)||m.IsBoolean(e)||m.IsNumber(e)||m.IsString(e)}function hh(e){return le(e)&&m.IsNumber(e.const)}function xh(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 zi,xt=u(()=>{S();J();zi="-?(?: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 Ar=u(()=>{S();J()});function Mr(...e){let[t,n,r]=$n.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 yh(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 Hi,Xt=u(()=>{S();J();Hi=".*"});function X(e,t={}){return d.Create({"~kind":"Union"},{anyOf:e},t)}function F(e){return L(e,"Union")}function bh(e){return d.Discard(e,["~kind","anyOf"])}var Q=u(()=>{S();J()});function gs(e){let t=wh(e);return m.IsEqual(t.length,2)?t[0]:[]}var hs=u(()=>{O();Vi()});function lM(e){return!0}function Ih(e){return m.ShiftLeft(e,(t,n)=>dM(t)?Ih(n):!1,()=>!0)}function $h(e){return m.IsEqual(e.length,0)?!1:Ih(e)}function dM(e){return F(e)?$h(e.anyOf):le(e)?lM(e.const):!1}function Ji(e){return $h(e)}var Yi=u(()=>{O();Le();Q()});function Xi(e){return d.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}var Zi=u(()=>{S()});function kh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>kh(o,t,[...n,`${r}${t}`]),()=>n)}function fM(e,t){return m.IsEqual(e.length,0)?[`${t}`]:kh(e,t)}function Th(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>Th(e,o,[...n,...vh(e,r)]),()=>n)}function vh(e,t){return F(t)?Th(e,t.anyOf):le(t)?fM(e,t.const):qe()}function Eh(e,t){return m.ShiftLeft(t,(n,r)=>Eh(vh(e,n),r),()=>e)}function gM(e){return e.map(t=>se(t))}function hM(e){let t=Eh([],e),n=gM(t);return X(n)}function xM(e){return m.IsEqual(e.length,0)?qe():m.IsEqual(e.length,1)&&le(e[0])?e[0]:hM(e)}function Sc(e){let t=gs(e);return m.IsEqual(t.length,0)?Yt():Ji(t)?xM(t):Xi(e)}function Sh(e){let t=Sc(e);return Re(t)?Yt():t}var Qi=u(()=>{O();kn();Le();Xt();vt();Q();hs();Yi();Zi()});function Et(e,t){let n="object",r={[e]:t};return d.Create({"~kind":"Record"},{type:n,patternProperties:r})}var tr=u(()=>{S()});function Ph(e){return Et(cn,e)}var Rh=u(()=>{Xe();tr()});function Ah(e){return W({true:e,false:e})}var Mh=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 Oh(e){return d.Discard(e,["~kind","type","items","minItems","additionalItems"])}var Ue=u(()=>{S();J()});function yM(e){return d.Discard(e,["~readonly"])}function Pc(e,t){return d.Update(yM(e),{},t)}function Ch(e,t,n,r){let o=T(e,t,n);return Pc(o,r)}var Rc=u(()=>{S();q()});function Lh(e,t={}){return j("RemoveReadonly",[e],t)}function Fh(e,t={}){return Pc(e,t)}var Ac=u(()=>{ce();Rc()});function bM(e){return d.Discard(e,["~optional"])}function Mc(e,t){return d.Update(bM(e),{},t)}function jh(e,t,n,r){let o=T(e,t,n);return Mc(o,r)}var Oc=u(()=>{S();q()});function Dh(e,t={}){return j("RemoveOptional",[e],t)}function ea(e,t={}){return Mc(e,t)}var ta=u(()=>{ce();Oc()});function Cc(e){return e.reduceRight((n,r,o)=>({[o]:r,...n}),{})}function _h(e){let t=Cc(e.items);return W(t)}var Lc=u(()=>{fe()});function Fc(e){return pe(e)||be(e)}function wM(e,t){return Sr(e)?!!Sr(t):!1}function IM(e,t){return ut(e)?!!ut(t):!1}function $M(e,t){let n=wM(e,t),r=IM(e,t),o=Te([e,t]),s=Fh(ea(o));return n&&r?Er($r(s)):n&&!r?Er(s):!n&&r?$r(s):s}function kM(e,t,n){return n in e?n in t?$M(e[n],t[n]):e[n]:n in t?t[n]:ge()}function TM(e,t){return[...new Set([...m.Keys(e),...m.Keys(t)])].reduce((o,s)=>({...o,[s]:kM(e,t,s)}),{})}function Nh(e){return pe(e)?e.properties:be(e)?Cc(e.items):{}}function qh(e,t){let n=Nh(e),r=Nh(t),o=TM(n,r);return W(o)}var jc=u(()=>{O();ls();Zn();fe();Je();Ue();ps();os();Ac();ta();Lc();Y()});function vM(e,t){let n=bs(e,t);return m.IsEqual(n,ys)?e:m.IsEqual(n,na)||m.IsEqual(n,xs)?t:ge()}function EM(e,t){let n=Fc(e),r=Fc(t);return n&&r?qh(e,t):n&&!r?e:!n&&r?t:vM(e,t)}function Uh(e,t){return un(e)||Ee(e)?e:Oe(e)||un(t)||Ee(t)?t:Oe(t)?e:EM(e,t)}var Dc=u(()=>{O();$t();Je();nt();ws();jc()});function SM(e,t){return F(e)||F(t)}function PM(e,t){let n=Zt(e),r=Zt(t);return SM(n,r)?Te([n,r]):Uh(n,r)}function Kh(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>Kh(e,o,[...n,PM(r,e)]),()=>m.IsEqual(n.length,0)?[e]:n)}function Gh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Gh(o,t,[...n,...Is([r],t)]),()=>n)}function Is(e,t=[]){return m.ShiftLeft(e,(n,r)=>F(n)?Is(r,Gh(n.anyOf,t)):Is(r,Kh(n,t)),()=>t)}var _c=u(()=>{O();Q();Dc();Y();Y()});function RM(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[]:[e]}function Wh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Wh(o,t,[...n,...RM(r,t)]),()=>n)}function ra(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=Wh(r,t);return St(o)}var Nc=u(()=>{O();Q();Sn();Y();Y()});function pn(e,t,n){let r=Te([e,t]),o=ra(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=Is(e),n=qc(t);return St(n)}function mt(e){let t=Sh(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):Re(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();Qi()});function Bh(e,t){let n=bt(e);return rr(n,t)}var zh=u(()=>{$s();Y()});function Hh(e,t){return Et(or,t)}var Vh=u(()=>{Xe();tr()});function Jh(e,t){let n=Te(e);return rr(n,t)}var Yh=u(()=>{Y();$s()});function Xh(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(()=>{O();fe()});function Qh(e,t){return Et(uo,t)}var ex=u(()=>{Xe();tr()});function tx(e,t){return m.HasPropertyKey(e,"pattern")&&(m.IsString(e.pattern)||e.pattern instanceof RegExp)?Et(e.pattern.toString(),t):Et(cn,t)}var nx=u(()=>{O();Xe();tr()});function rx(e,t){let n=gs(e);return Ji(n)?rr(mt(e),t):Et(e,t)}var ox=u(()=>{$s();hs();Yi();Y();tr()});function AM(e){return F(e)?mo(e.anyOf):[e]}function mo(e,t=[]){return m.ShiftLeft(e,(n,r)=>mo(r,[...t,...AM(n)]),()=>t)}var oa=u(()=>{O();Q()});function MM(e){return e.some(t=>yt(t)||Fe(t)||ht(t))}function OM(e,t){return m.IsEqual(MM(e),!0)?Et(cn,t):void 0}function CM(e,t){return e.reduce((n,r)=>le(r)&&(m.IsString(r.const)||m.IsNumber(r.const))?{...n,[r.const]:t}:n,{})}function LM(e,t){let n=CM(e,t);return W(n)}function sx(e,t){let n=mo(e),r=OM(n,t);return _e(r)?r:LM(n,t)}var ix=u(()=>{O();J();Le();xt();En();fe();Xt();Xe();oa();tr()});function rr(e,t){return Ee(e)?Ph(t):Jt(e)?Ah(t):ot(e)?Bh(e.enum,t):ht(e)?Hh(e,t):oe(e)?Jh(e.allOf,t):le(e)?Xh(e.const,t):Fe(e)?Qh(e,t):F(e)?sx(e.anyOf,t):yt(e)?tx(e,t):Re(e)?rx(e.pattern,t):W({})}var $s=u(()=>{$t();Qn();mn();Ne();En();Le();xt();fe();Xt();vt();Q();Rh();Mh();zh();Vh();Yh();Zh();ex();nx();ox();ix()});function Kc(e,t,n){return V([e])?d.Update(rr(e,t),{},n):ia(e,t,n)}function ax(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Kc(s,i,o)}var sa=u(()=>{S();Xe();$s();q()});function ia(e,t,n={}){return j("Record",[e,t],n)}function aa(e,t,n={}){return Kc(e,t,n)}function ux(e,t){return Et(e,t)}function ua(e){return m.IsEqual(e,cn)?Yt():m.IsEqual(e,or)?Rr():m.IsEqual(e,uo)?Ct():Sc(e)}function Qt(e){return m.Keys(e.patternProperties)[0]}function co(e){let t=Qt(e);return ua(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();Qi();tr();sa();or=`^${Wi}$`,uo=`^${zi}$`,cn=`^${Hi}$`});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 mx=u(()=>{});function ma(e){return d.Create({"~kind":"This"},{$ref:"#"},e)}function ca(e){return L(e,"This")}var pa=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 la(e){return d.Create({"~kind":"Void"},{type:"void"},e)}function Pn(e){return L(e,"Void")}var Cr=u(()=>{S();J()});var da=u(()=>{Ic();ms();Zn();ls();kc();$t();gt();Pr();Qn();ho();Bt();kt();ce();mn();zt();rs();Tc();Ot();Vt();En();Ne();Le();Je();io();xt();nt();Ar();fe();Ec();kr();Xe();Ht();po();J();mx();Xt();Ar();vt();pa();Ue();go();Q();nt();Ni();Cr()});function jM(e,t){return m.IsEqual(e,"Array")?qt(t[0]):m.IsEqual(e,"Capitalize")?ga(t[0]):m.IsEqual(e,"ConstructorParameters")?wa(t[0]):m.IsEqual(e,"Evaluate")?pb(t[0]):m.IsEqual(e,"Exclude")?Ia(t[0],t[1]):m.IsEqual(e,"Extract")?$a(t[0],t[1]):m.IsEqual(e,"Index")?Es(t[0],t[1]):m.IsEqual(e,"InstanceType")?ka(t[0]):m.IsEqual(e,"Lowercase")?ha(t[0]):m.IsEqual(e,"NonNullable")?Ta(t[0]):m.IsEqual(e,"Omit")?va(t[0],t[1]):m.IsEqual(e,"Parameters")?Ea(t[0]):m.IsEqual(e,"Partial")?Sa(t[0]):m.IsEqual(e,"Pick")?Pa(t[0],t[1]):m.IsEqual(e,"Readonly")?Ra(t[0]):m.IsEqual(e,"KeyOf")?Ss(t[0]):m.IsEqual(e,"Record")?ia(t[0],t[1]):m.IsEqual(e,"Required")?Aa(t[0]):m.IsEqual(e,"ReturnType")?Ma(t[0]):m.IsEqual(e,"Uncapitalize")?xa(t[0]):m.IsEqual(e,"Uppercase")?ya(t[0]):vs(qn(e),t)}function Lr(){throw Error("Unreachable")}function fx(e,t=[]){return m.ShiftLeft(e,(n,r)=>fx(r,[...t,n[1]]),()=>t)}function Un(e){return m.IsEqual(e.length,3)?[e[0],...fx(e[1])]:[]}function gx(e){return Mr(e[0],e[2],e[4])}function hx(e){return Mr(e[0],e[2],e[2])}function xx(e){return Mr(e[0],Ye(),e[2])}function yx(e){return Mr(e,Ye(),Ye())}function bx(e){return Un(e)}function wx(e){return e[1]}function Ix(e){return Un(e)}function $x(e){return e[1]}function kx(e){return jM(e[0],e[1])}function Tx(e){return null}function vx(e){return Yt()}function Ex(e){return Ct()}function Sx(e){return Gi()}function Px(e){return lo()}function Rx(e){return oo()}function Ax(e){return Rr()}function Mx(e){return ds()}function Ox(e){return Ye()}function Cx(e){return to()}function Lx(e){return W({})}function Fx(e){return ge()}function jx(e){return ao()}function Dx(e){return la()}function _x(e){return ma()}function Nx(e){return se(BigInt(e))}function qx(e){return se(m.IsEqual(e,"true"))}function Ux(e){return se(parseFloat(e))}function Kx(e){return se(e)}function Gx(e){return e[1]}function Wx(e){return se(e)}function Bx(e){return m.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function zx(e){return e[1]}function Hx(e){return fa(e)}function Vx(e){return m.IsEqual(e.length,6)?Tr(e[1],e[3],e[5]):Tr(e[1],e[3],Ye())}function Jx(e){return e.length>0}function Yx(e){return e.reduce((t,n)=>m.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function Xx(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 Qx(e){return m.IsEqual(e.length,2)?e[1]:[]}function cx(e,t){return t.reduce((n,r)=>{let o=r;return m.IsEqual(o.length,1)?Es(n,o[0]):m.IsEqual(o.length,0)?qt(n):Lr()},e)}function px(e,t){return m.IsEqual(t.length,3)?ba(e,t[0],t[1],t[2]):e}function DM(e,t){return m.IsArray(t)&&m.IsEqual(t.length,0)?e:Oa(e,t)}function ey(e){let[t,n,r,o,s]=e;return DM(px(t?Ss(cx(n,r)):cx(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 ty(e){let[t,n]=e;return Gc(t,n)}function ny(e){let[t,n]=e;return Gc(t,n)}function ry(e){return cb(e[1])}function oy(e){return e[1]}function sy(e){return Xn(e[0],e[2])}function iy(e){return m.IsEqual(e.length,4)?ss(e[1],e[3]):m.IsEqual(e.length,2)?ss(e[1],Ye()):Lr()}function ay(e){return`${e}`}function uy(e){return ht(e[3])?or:Fe(e[3])?uo:er(e[3])?cn:yt(e[3])?cn:Lr()}function my(e){return e.length>0}function cy(e){return e.length>0}function py(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 ly(e){return Un(e)}function dy(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 fy(e){return dy(e[1])}function gy(e){let[t,n]=e,r=m.IsEqual(m.Keys(n).length,0)?{}:{patternProperties:n};return W(t,r)}function hy(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 xy(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 yy(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function by(e){return Un(e)}function wy(e){return je(e[1])}function Iy(e){return Tn(wn(e[4]))}function $y(e){return Tn(e[3])}function ky(e){return wn(e[3])}function Ty(e){return e[2]}function vy(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function Ey(e){return Un(e)}function Sy(e){return bn(e[1],e[4])}function Py(e){return yn(e[2],e[5])}function lx(e,t){return m.IsEqual(e,"remove")?Lh(t):m.IsEqual(e,"add")?Tn(t):t}function Ry(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 dx(e,t){return m.IsEqual(e,"remove")?Dh(t):m.IsEqual(e,"add")?wn(t):t}function Ay(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 My(e){return m.IsEqual(e.length,2)?[e[1]]:[]}function Oy(e){return m.IsArray(e[6])&&m.IsEqual(e[6].length,1)?ks(fs(e[3]),e[5],e[6][0],lx(e[1],dx(e[8],e[10]))):ks(fs(e[3]),e[5],qn(e[3]),lx(e[1],dx(e[8],e[10])))}function Cy(e){return qn(e)}function Ly(e){return BigInt(e)}function Fy(e){return parseFloat(e)}function jy(e){return m.IsEqual(e,"true")}function Dy(e){return null}function _y(e){return{[e[0]]:e[2]}}function Ny(e){return Un(e)}function _M(e){return e.reduce((t,n)=>d.Assign(t,n),{})}function qy(e){return _M(e[1])}function Uy(e){return Un(e)}function Ky(e){return e[1]}function Gy(e){return ds()}function Wy(e){return Yt()}function By(e){return Ct()}function zy(e){return Rr()}function Hy(e){return ge()}function Vy(e){return se(e)}function Jy(e){return X(e[1])}function Yy(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function Xy(e){return[e[0],...e[1]]}function Zy(e){return e[1]}function Qy(e){return Un(e)}function eb(e){return m.IsEqual(e.length,2)?e[1]:[]}function tb(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,Ts(n,r,s))}}function nb(e){let t=e[2],[n,r]=e[3],o=m.IsEqual(m.Keys(r).length,0)?{}:{patternProperties:r};return{[e[1]]:Ts(t,n,o)}}function rb(e){return{[e[1]]:Xn(e[2],e[4])}}function ob(e){return{[e[1]]:e[3]}}function sb(e){return null}function ib(e){return Un(e)}function ab(e){return e[1]}function ub(e){let[t,n]=[e[0],e[1]];return lb(d.Assign(t,dy(n)[0]))}var mb=u(()=>{S();O();da();xo()});var Kn=u(()=>{Qr()});function Ps(e){return ue(e.length,2)}function te(e,t,n){return Ps(e)?t(e[0],e[1]):n()}var Lt=u(()=>{Kn()});function UM(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=UM(e[n],t);if(Ps(r))return r}return[]}var Rn=u(()=>{Lt();Kn()});function Wc(e,t){return Array.from({length:t-e+1},(n,r)=>String.fromCharCode(e+r))}var db,Bc,zc,yo,fb,bo,ir,Ca,gb,La,ct=u(()=>{db=[...Wc(97,122),...Wc(65,90)],Bc="0",zc=Wc(49,57),yo=[Bc,...zc],fb=" ",bo=`
14
- `,ir="_",Ca=".",gb="$",La="-"});function yb(e){let t=e.indexOf(GM);return ue(t,-1)?"":e.slice(t+2)}function bb(e){let t=e.indexOf(bo);return ue(t,-1)?"":e.slice(t)}function WM(e){return e.replace(/^[ \t\r\f\v]+/,"")}function Fa(e){let t=WM(e);return t.startsWith(xb)?Fa(yb(t.slice(2))):t.startsWith(hb)?Fa(bb(t.slice(2))):t}function Ze(e){let t=e.trimStart();return t.startsWith(xb)?Ze(yb(t.slice(2))):t.startsWith(hb)?Ze(bb(t.slice(2))):t}var hb,xb,GM,An=u(()=>{Kn();ct();hb="//",xb="/*",GM="*/"});function ja(e,t){return te(Se([e],t),(n,r)=>[n,r],()=>["",t])}var Hc=u(()=>{Lt();Rn()});function BM(e,t){return e.includes(t)}function wo(e,t,n,r=""){return te(Se(e,n),(o,s)=>BM(t,o)?wo(e,t,s,r):wo(e,t,s,`${r}${o}`),()=>[r,n])}var Vc=u(()=>{Lt();Rn()});function zM(e){return Se(zc,e)}function VM(e){return wo(HM,[ir],e)}function JM(e){return te(Se([Bc],e),(t,n)=>[t,n],()=>te(zM(e),(t,n)=>te(VM(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[]))}function Da(e){return JM(Ze(e))}var HM,_a=u(()=>{Lt();An();Rn();Vc();ct();ct();ct();ct();HM=[...yo,ir]});function YM(e){return ja(La,e)}function XM(e){return te(YM(e),(t,n)=>te(Da(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function wb(e){return XM(Ze(e))}var Jc=u(()=>{Lt();An();Hc();ct();_a()});function ZM(e){return te(wb(e),(t,n)=>te(Se(["n"],n),(r,o)=>[`${t}`,o],()=>[]),()=>[])}function Yc(e){return ZM(e)}var Ib=u(()=>{Lt();Rn();Jc()});function Xc(e,t){return Se([e],t)}function h(e,t){return ue(e,"")?["",t]:e.startsWith(bo)?Xc(e,Fa(t)):e.startsWith(fb)?Xc(e,t):Xc(e,Ze(t))}var $b=u(()=>{Kn();An();An();Rn();ct();ct()});function QM(e){return Se(kb,e)}function Tb(e,t=""){return te(Se(eO,e),(n,r)=>Tb(r,`${t}${n}`),()=>[t,e])}function tO(e){return te(QM(e),(t,n)=>te(Tb(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Ae(e){return tO(Ze(e))}var kb,eO,vb=u(()=>{Lt();An();Rn();ct();ct();ct();ct();kb=[...db,ir,gb];eO=[...kb,...yo]});function rO(e){return Ps(Se([Ca],e))}function Eb(e){return te(wo(nO,[ir],e),(t,n)=>ue(t,"")?[]:[t,n],()=>[])}function oO(e){return te(Se([Ca],e),(t,n)=>te(Eb(n),(r,o)=>[`0${t}${r}`,o],()=>[]),()=>[])}function sO(e){return te(Da(e),(t,n)=>te(Se([Ca],n),(r,o)=>te(Eb(o),(s,i)=>[`${t}${r}${s}`,i],()=>[`${t}`,o]),()=>[`${t}`,n]),()=>[])}function iO(e){return rO(e)?oO(e):sO(e)}function Sb(e){return iO(Ze(e))}var nO,Zc=u(()=>{Kn();Lt();An();Rn();Vc();ct();ct();_a();nO=[...yo,ir]});function aO(e){return ja(La,e)}function uO(e){return te(aO(e),(t,n)=>te(Sb(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Na(e){return uO(Ze(e))}var Pb=u(()=>{Lt();An();Hc();ct();Zc()});var Rb=u(()=>{Kn()});function mO(e){return ue(e,"")?[]:[e.slice(0,1),e.slice(1)]}function Ab(e,t){return Mi(e,(n,r)=>t.startsWith(n)?!0:Ab(r,t),()=>!1)}function ar(e,t,n=""){return te(mO(t),(r,o)=>Ab(e,t)?[n,t]:ar(e,o,`${n}${r}`),()=>[])}var qa=u(()=>{Lt();Kn()});function cO(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 pO(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 Mb(e,t,n,r){return n?cO(e,t,Ze(r)):pO(e,t,Ze(r))}var Qc=u(()=>{Lt();An();ct();Rn();qa()});function lO(e,t){return Se(e,t)}function dO(e,t){return Mb(e,e,!1,t)}function fO(e,t){return te(lO(e,t),(n,r)=>dO(n,`${n}${r}`),()=>[])}function Ua(e,t){return fO(e,Ze(t))}var Ob=u(()=>{Lt();Rn();An();Qc()});function Cb(e,t){return te(ar(e,t),(n,r)=>ue(n,"")?[]:[n,r],()=>[])}var Lb=u(()=>{Kn();Lt();qa()});var Fb=u(()=>{Ib();$b();vb();Jc();Pb();Rb();Qc();Ob();_a();Zc();Lb();qa()});var a,hO,xO,yO,bO,_b,Nb,wO,np,qb,IO,$O,kO,Ub,Kb,Gb,TO,vO,EO,Wb,SO,PO,RO,AO,MO,Bb,OO,CO,LO,ep,zb,rp,FO,jO,DO,_O,NO,qO,UO,Hb,KO,GO,WO,BO,Vb,Jb,Yb,Xb,Ka,zO,HO,VO,JO,me,YO,XO,ZO,QO,Zb,Qb,ew,tw,Ga,nw,e0,op,t0,n0,jb,rw,ow,r0,o0,s0,i0,a0,u0,Db,sw,iw,aw,m0,c0,p0,l0,d0,f0,g0,h0,x0,y0,b0,w0,I0,uw,mw,$0,cw,pw,k0,T0,sp,v0,E0,S0,P0,R0,A0,M0,O0,lw,tp,ip,wh,dw,C0,fw,L0,F0,j0,D0,_0,gw,hw,N0,ap,q0,xw,Vi=u(()=>{mb();Fb();a=(e,t,n=()=>[])=>e.length===2?t(e):n(),hO=e=>a(a(Ae(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])=>[gx(t),n]),xO=e=>a(a(Ae(e),([t,n])=>a(h("extends",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[hx(t),n]),yO=e=>a(a(Ae(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[xx(t),n]),bO=e=>a(Ae(e),([t,n])=>[yx(t),n]),_b=e=>a(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],()=>[])))),([t,n])=>[t,n]),Nb=(e,t=[])=>a(a(h(",",e),([n,r])=>a(_b(r),([o,s])=>[[n,o],s])),([n,r])=>Nb(r,[...t,n]),()=>[t,e]),wO=e=>a(a(a(_b(e),([t,n])=>a(Nb(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]),np=e=>a(a(h("<",e),([t,n])=>a(wO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[wx(t),n]),qb=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>qb(r,[...t,n]),()=>[t,e]),IO=e=>a(a(a(me(e),([t,n])=>a(qb(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])=>[Ix(t),n]),$O=e=>a(a(h("<",e),([t,n])=>a(IO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[$x(t),n]),kO=e=>a(a(Ae(e),([t,n])=>a($O(n),([r,o])=>[[t,r],o])),([t,n])=>[kx(t),n]),Ub=e=>a(a(a(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Tx(t),n]),Kb=e=>a(h("string",e),([t,n])=>[vx(t),n]),Gb=e=>a(h("number",e),([t,n])=>[Ex(t),n]),TO=e=>a(h("boolean",e),([t,n])=>[Sx(t),n]),vO=e=>a(h("undefined",e),([t,n])=>[Px(t),n]),EO=e=>a(h("null",e),([t,n])=>[Rx(t),n]),Wb=e=>a(h("integer",e),([t,n])=>[Ax(t),n]),SO=e=>a(h("bigint",e),([t,n])=>[Mx(t),n]),PO=e=>a(h("unknown",e),([t,n])=>[Ox(t),n]),RO=e=>a(h("any",e),([t,n])=>[Cx(t),n]),AO=e=>a(h("object",e),([t,n])=>[Lx(t),n]),MO=e=>a(h("never",e),([t,n])=>[Fx(t),n]),Bb=e=>a(h("symbol",e),([t,n])=>[jx(t),n]),OO=e=>a(h("void",e),([t,n])=>[Dx(t),n]),CO=e=>a(h("this",e),([t,n])=>[_x(t),n]),LO=e=>a(a(h("${",e),([t,n])=>a(me(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Gx(t),n]),ep=e=>a(ar(["${","`"],e),([t,n])=>[Wx(t),n]),zb=e=>a(a(a(ep(e),([t,n])=>a(LO(n),([r,o])=>a(zb(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])=>[Bx(t),n]),rp=e=>a(a(h("`",e),([t,n])=>a(zb(n),([r,o])=>a(h("`",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[zx(t),n]),FO=e=>a(rp(e),([t,n])=>[Hx(t),n]),jO=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),([I,P])=>[[t,r,s,c,f,I],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])=>[Vx(t),n]),DO=e=>a(Yc(e),([t,n])=>[Nx(t),n]),_O=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[qx(t),n]),NO=e=>a(Na(e),([t,n])=>[Ux(t),n]),qO=e=>a(Ua(["'",'"'],e),([t,n])=>[Kx(t),n]),UO=e=>a(a(a(h("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Jx(t),n]),Hb=(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])=>Hb(r,[...t,n]),()=>[t,e]),KO=e=>a(Hb(e),([t,n])=>[Yx(t),n]),GO=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),([I,P])=>[[t,r,s,c,f,I],P])))))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Xx(t),n]),WO=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(Kb(e),([t,n])=>[t,n],()=>a(Gb(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(Wb(e),([t,n])=>[t,n],()=>a(SO(e),([t,n])=>[t,n],()=>a(PO(e),([t,n])=>[t,n],()=>a(RO(e),([t,n])=>[t,n],()=>a(AO(e),([t,n])=>[t,n],()=>a(MO(e),([t,n])=>[t,n],()=>a(Bb(e),([t,n])=>[t,n],()=>a(OO(e),([t,n])=>[t,n],()=>a(CO(e),([t,n])=>[t,n],()=>a(DO(e),([t,n])=>[t,n],()=>a(_O(e),([t,n])=>[t,n],()=>a(NO(e),([t,n])=>[t,n],()=>a(qO(e),([t,n])=>[t,n],()=>a(FO(e),([t,n])=>[t,n],()=>a(jO(e),([t,n])=>[t,n],()=>a(t0(e),([t,n])=>[t,n],()=>a(o0(e),([t,n])=>[t,n],()=>a(c0(e),([t,n])=>[t,n],()=>a(m0(e),([t,n])=>[t,n],()=>a(f0(e),([t,n])=>[t,n],()=>a(kO(e),([t,n])=>[t,n],()=>a(g0(e),([t,n])=>[t,n],()=>[])))))))))))))))))))))))))))),([t,n])=>[Zx(t),n]),BO=e=>a(a(a(h("with",e),([t,n])=>a(cw(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Qx(t),n]),Vb=e=>a(a(UO(e),([t,n])=>a(WO(n),([r,o])=>a(KO(o),([s,i])=>a(GO(i),([c,p])=>a(BO(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[ey(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]),Yb=e=>a(a(Vb(e),([t,n])=>a(Jb(n),([r,o])=>[[t,r],o])),([t,n])=>[ty(t),n]),Xb=e=>a(a(a(h("|",e),([t,n])=>a(Yb(n),([r,o])=>a(Xb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Ka=e=>a(a(Yb(e),([t,n])=>a(Xb(n),([r,o])=>[[t,r],o])),([t,n])=>[ny(t),n]),zO=e=>a(a(h("readonly",e),([t,n])=>a(Ka(n),([r,o])=>[[t,r],o])),([t,n])=>[ry(t),n]),HO=e=>a(a(h("|",e),([t,n])=>a(Ka(n),([r,o])=>[[t,r],o])),([t,n])=>[oy(t),n]),VO=e=>a(a(np(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[sy(t),n]),JO=e=>a(a(a(h("infer",e),([t,n])=>a(Ae(n),([r,o])=>a(h("extends",o),([s,i])=>a(Ka(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(h("infer",e),([t,n])=>a(Ae(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>[])),([t,n])=>[iy(t),n]),me=e=>a(a(JO(e),([t,n])=>[t,n],()=>a(HO(e),([t,n])=>[t,n],()=>a(zO(e),([t,n])=>[t,n],()=>a(Ka(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),YO=e=>a(Na(e),([t,n])=>[ay(t),n]),XO=e=>a(Ae(e),([t,n])=>[t,n]),ZO=e=>a(Ua(["'",'"'],e),([t,n])=>[t,n]),QO=e=>a(a(h("[",e),([t,n])=>a(Ae(n),([r,o])=>a(h(":",o),([s,i])=>a(a(Wb(i),([c,p])=>[c,p],()=>a(Gb(i),([c,p])=>[c,p],()=>a(Kb(i),([c,p])=>[c,p],()=>a(Bb(i),([c,p])=>[c,p],()=>[])))),([c,p])=>a(h("]",p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[uy(t),n]),Zb=e=>a(a(YO(e),([t,n])=>[t,n],()=>a(XO(e),([t,n])=>[t,n],()=>a(ZO(e),([t,n])=>[t,n],()=>a(QO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Qb=e=>a(a(a(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[my(t),n]),ew=e=>a(a(a(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[cy(t),n]),tw=e=>a(a(Qb(e),([t,n])=>a(Zb(n),([r,o])=>a(ew(o),([s,i])=>a(h(":",i),([c,p])=>a(me(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[py(t),n]),Ga=e=>a(a(a(h(",",e),([t,n])=>a(h(`
2
+ var QP=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)QP(e,n,{get:t[n],enumerable:!0})};function Ld(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,Cd,Fd,Go=u(()=>{at="HowToFix",Nt="0.4.31",Cd=["You are HowToFix, a coding agent. The user wants the fix, not a tour of the problem.",'NEVER report a check you did not run. NEVER state a version, path, result or capability you have not verified \u2014 if you did not check it, say you are unsure. "Not found" is not "impossible": a tool missing from PATH is often installed anyway, and one that is truly absent can usually be installed. Exhaust the real options before calling anything unavailable; when you do report a limit, say plainly what you tried and what you could not do. Unexercised behaviour is not evidence.',"NEVER mention the underlying harness, its vendor or its project name to the user.","Lead with the diagnosis in one or two sentences, then change the code. SHOULD prefer the smallest correct change over a rewrite. Name the file and the reason in a short line; do not narrate tool calls.","Fix the problem that was asked for. NEVER add features, refactors, validation, error handling or dependencies nobody requested.","Something reported broken: reproduce it first, confirm the fix after. Cannot reproduce it? Say so \u2014 NEVER edit code and call it fixed.","Tests describe intended behaviour. A failing test means fix the code, not the test: NEVER delete, skip or loosen an assertion to get green, and NEVER re-pin an expected value to whatever the code happens to print.","Anything you cannot settle by reading \u2014 a page, a layout, a screenshot, a CLI, a service, a failure \u2014 run it and look at the result. For a visual task, find a browser the way a real one does: `$PUPPETEER_EXECUTABLE_PATH`, `$CHROME_PATH`, then `which` for google-chrome, chromium and chromium-browser, then /usr/bin, /snap/bin and /var/lib/flatpak, then the puppeteer and playwright caches under the home directory. Still empty? `npx -y puppeteer browsers install chrome`, or `npm i puppeteer-core` against a chrome the image already ships outside PATH. Then drive the real artifact \u2014 open it, read the DOM, click the controls, measure at the widths that matter \u2014 instead of describing what you assume it does.","Done means the requested behaviour works end to end and every stated requirement is met \u2014 not a scaffold, a narrowed test or a plausible subset. Genuinely out of reach? Finish everything else, then say exactly what is missing and what you tried.","Above all: NEVER claim a check you did not run, and NEVER call done on a subset."].join(`
5
+ `);Fd=["# Project notes","","## What this is","","## Commands","- build:","- test:","","## Conventions","-",""].join(`
6
+ `)});var Nd={};Mt(Nd,{AGENTS_STORE_DIR:()=>Jr,AGENT_DIR:()=>_e,CUBENCE_CACHE_PATH:()=>Um,USER_SKILLS_DIR:()=>qm,WORKFLOWS_DIR:()=>Km,pinAgentDir:()=>Gm,projectSkillsDir:()=>hr});import{homedir as eR}from"node:os";import{join as Vr,resolve as tR}from"node:path";function nR(){let e=(process.env.HOWTOFIX_HOME??process.env.HOME??"").trim();return tR(e||eR())}function hr(e){return Vr(e,".howtofix","skills")}function Gm(){process.env.PI_CODING_AGENT_DIR=_e}var _e,qm,Jr,Um,Km,xn=u(()=>{_e=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||Vr(nR(),".howtofix","agent"),qm=Vr(_e,"skills");Jr=Vr(_e,"agents"),Um=Vr(_e,"cubence-cache.json"),Km=Vr(_e,"workflows")});import{closeSync as rR,fsyncSync as oR,openSync as sR,renameSync as qd,rmSync as Wm,writeSync as iR}from"node:fs";import{dirname as aR,join as uR}from"node:path";function tt(e,t){let n=uR(aR(e),`.${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}.tmp`),r=sR(n,"w");try{iR(r,t),oR(r)}finally{rR(r)}try{qd(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{qd(n,e)}catch(i){throw Wm(n,{force:!0}),i}}}var Hn=u(()=>{});var Hd={};Mt(Hd,{DEFAULT_CONTEXT_WINDOW:()=>Wd,HOWTOFIX_BASE_URL:()=>Wo,HOWTOFIX_CONSOLE_URL:()=>gi,HOWTOFIX_MODEL_COMPAT:()=>zm,HOWTOFIX_PROVIDERS:()=>Yr,HTTP_IDLE_TIMEOUT_MS:()=>Gd,UNLIMITED_SENTINEL:()=>zd,applyCompat:()=>xi,checkAccount:()=>yi,checkUsage:()=>Bo,countNewModels:()=>Jm,ensureGatewaySettings:()=>lR,isHowtofixProvider:()=>xr,looksLikeToken:()=>Hm,maskToken:()=>hi,mergeModels:()=>Vm,newProviderEntry:()=>Bm,parseModelIds:()=>Bd,probeModel:()=>Ym,repairGatewayModels:()=>pR});import{existsSync as mR,mkdirSync as cR,readFileSync as Ud}from"node:fs";import{join as Kd}from"node:path";function Bm(){return{baseUrl:Wo,api:"openai-completions"}}function pR(e){let t=Kd(e,"models.json"),n;try{n=JSON.parse(Ud(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=xi(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 lR(e){let t=Kd(e,"settings.json"),n={};try{let r=Ud(t,"utf8"),o=JSON.parse(r);o&&typeof o=="object"&&!Array.isArray(o)&&(n=o)}catch{if(mR(t))return!1}if("httpIdleTimeoutMs"in n)return!1;n.httpIdleTimeoutMs=Gd;try{cR(e,{recursive:!0}),tt(t,`${JSON.stringify(n,null,2)}
8
+ `)}catch{return!1}return!0}function hi(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 Bd(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 dR(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 Bo(e,t){let n=(t?.baseUrl??Wo).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 dR(r,i).catch(()=>"USD"),p=new AbortController,d=setTimeout(()=>p.abort(),o),b={Authorization:`Bearer ${s}`};try{let[I,P]=await Promise.all([r(`${n}/dashboard/billing/subscription`,{headers:b,signal:p.signal}),r(`${n}/dashboard/billing/usage`,{headers:b,signal:p.signal})]);if(I.status===401||I.status===403)return{ok:!1,unlimited:!1,unit:c,message:"the gateway rejected that token when asking for the balance"};if(!I.ok)return{ok:!1,unlimited:!1,unit:c,message:`the balance endpoint answered ${I.status}`};let A=await I.json();if(A.error?.message)return{ok:!1,unlimited:!1,unit:c,message:A.error.message};let C=Number(A.hard_limit_usd??A.soft_limit_usd??0);if(C>=zd)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(I){let P=I instanceof Error&&I.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(d)}}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:Wd,compat:{...zm}}));return r}function xi(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??Wo).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 d=await p.text().catch(()=>"");return{ok:!1,detail:/"message"\s*:\s*"([^"]{0,80})/.exec(d)?.[1]??`HTTP ${p.status}`}}catch(p){return{ok:!1,detail:p instanceof Error&&p.name==="AbortError"?"timed out":"unreachable"}}finally{clearTimeout(c)}}async function yi(e,t){let n=(t?.baseUrl??Wo).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 d=Bd(await p.json());return d.length===0?{ok:!1,models:[],message:"the token works but the gateway listed no models"}:{ok:!0,models:d,message:`${d.length} models available to this token`}}catch(p){let d=p instanceof Error&&p.name==="AbortError";return{ok:!1,models:[],message:d?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(c)}}var Wo,gi,Yr,Gd,zm,Wd,zd,Xm=u(()=>{Hn();Wo="https://api.howtofix.id/v1",gi="https://howtofix.id/keys",Yr=["howtofix","howtofix-free"];Gd=9e4;zm={supportsDeveloperRole:!1},Wd=128e3;zd=1e8});var bi={};Mt(bi,{CHECK_TIMEOUT_MS:()=>Xd,INSTALL_TIMEOUT_MS:()=>Zd,LOCK_TIMEOUT_MS:()=>Qm,PACKAGE_NAME:()=>zo,acquireUpdateLock:()=>rf,autoUpdateEnabled:()=>kR,checkForUpdate:()=>wR,compareVersions:()=>Qd,installUpdate:()=>IR,isInstalledCopy:()=>$R,isNewer:()=>ef,latestVersion:()=>sf,releaseUpdateLock:()=>of});import{execFile as fR}from"node:child_process";import{existsSync as gR,mkdirSync as hR,readFileSync as xR,realpathSync as yR,statSync as Vd,unlinkSync as Yd,writeFileSync as bR}from"node:fs";import{homedir as ec}from"node:os";import{join as Jd,sep as Zm}from"node:path";function Qd(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 ef(e,t){return e.includes("-")?!1:Qd(e,t)>0}function nf(){let t=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||Jd(ec(),".howtofix","agent");try{hR(t,{recursive:!0})}catch{}return Jd(t,"update.lock")}function rf(e=Date.now()){let t=nf();try{if(gR(t)){if(e-Vd(t).mtimeMs<Qm)return!1;let r=Vd(t).mtimeMs;if(e-r<Qm)return!1;Yd(t)}return bR(t,String(process.pid),{mode:384}),!0}catch{return!0}}function of(){try{Yd(nf())}catch{}}async function sf(e){let n=await(e?.runner??tf)("npm",["view",`${zo}@latest`,"version","--prefer-online"],{cwd:ec(),timeoutMs:e?.timeoutMs??Xd});if(n.code!==0)return;let r=n.stdout.trim().split(`
9
+ `).pop()?.trim()??"";return/^\d+\.\d+/.test(r)?r:void 0}async function wR(e,t){let n=await sf(t);return n?ef(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 IR(e){let t=e?.runner??tf;if(!rf())return{ok:!1,message:"another HowToFix is already installing an update"};try{let n=e?.version?`${zo}@${e.version}`:`${zo}@latest`,r=await t("npm",["install","-g",n],{cwd:ec(),timeoutMs:e?.timeoutMs??Zd});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{of()}}function $R(e=process.argv[1]){if(!e)return!1;let t=e;try{t=yR(e)}catch{}return t.includes(`${Zm}node_modules${Zm}${zo}${Zm}`)}function kR(e){try{return JSON.parse(xR(e,"utf8")).autoUpdate!==!1}catch{return!0}}var zo,Xd,Zd,Qm,tf,wi=u(()=>{zo="howtofixcli",Xd=5e3,Zd=12e4,Qm=600*1e3;tf=(e,t,n)=>new Promise(r=>{fR(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 af={};Mt(af,{expandFileReferences:()=>tc});import{readFileSync as TR,statSync as vR}from"node:fs";import{isAbsolute as ER,resolve as SR}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=ER(s)?s:SR(t,s);try{let p=vR(c);if(!p.isFile()||p.size===0||p.size>PR)return n;let d=TR(c);return d.includes(0)?n:`${r}<file name="${c}">
11
+ ${d.toString("utf8").trimEnd()}
12
+ </file>${i}`}catch{return n}})}var PR,nc=u(()=>{PR=64*1024});function AR(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 uf(e,t){if(RR.has(e))return;let n=`${e}\0${AR(t)}`,r=Ho&&Ho.signature===n?Ho.count+1:1;return Ho={signature:n,count:r},r>=3?{repeats:r}:void 0}function mf(){Ho=void 0}function cf(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 RR,Ho,rc=u(()=>{RR=new Set(["think"])});function pf(e,t){switch(t){case"number":return/^\d+$/.test(e);case"string":return!0;default:return!1}}function OR(e,t,n){let r=t;for(;r<e.length;){let o=e[r];if(!o){r++;continue}if(o==="--")break;if(MR.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(!pf(c.join("="),p))return!1;r++;continue}let d=e[r+1];if(d===void 0||!pf(d,p))return!1;r+=2;continue}if(n.allowPositional===!1)return!1;r++}return!0}function _R(e){if(!/\$\(|`|\$\{|>|</.test(e)&&!/(?<!&)&(?!&)/.test(e))return e.split(/\|\||&&|;|\|/).map(t=>t.trim()).filter(t=>t.length>0)}function NR(e){let t=e.some(r=>/^cd\b/.test(r)),n=e.some(r=>/^git\b/.test(r));return t&&n}function qR(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 UR(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"&&df[`git ${n}`]?{name:`git ${n}`,rest:e.slice(2)}:ff[r]?{name:r,rest:e.slice(2)}:{name:t,rest:e.slice(1)}}function GR(e){let t=qR(e),n=UR(t);if(!n)return!1;let{name:r,rest:o}=n;if(KR.has(r)&&o.some(i=>i.includes("$")||i.includes("`")))return!1;let s=df[r]??jR[r]??ff[r];return s?s.dangerous?.(o)?!1:OR(o,0,s):!!(FR.includes(r)||DR.includes(r))}function Ti(e){let t=_R(e);return!t||t.length===0||NR(t)?!1:t.every(GR)}var MR,CR,Ii,$i,oc,ki,sc,lf,LR,df,FR,jR,ff,DR,KR,ic=u(()=>{MR=/^-[a-zA-Z0-9_-]/;CR={"--all":"none","--branches":"none","--tags":"none","--remotes":"none"},Ii={"--oneline":"none","--graph":"none","--decorate":"none","--no-decorate":"none","--date":"string","--relative-date":"none"},$i={"--max-count":"number","-n":"number"},oc={"--stat":"none","--numstat":"none","--shortstat":"none","--name-only":"none","--name-status":"none"},ki={"--color":"none","--no-color":"none"},sc={"--patch":"none","-p":"none","--no-patch":"none","--no-ext-diff":"none","-s":"none"},lf={"--author":"string","--committer":"string","--grep":"string"},LR={"-l":"none","--list":"none","-a":"none","-r":"none","-v":"none","-vv":"none","-i":"none"},df={"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",...ki}},"git diff":{safeFlags:{...oc,...ki,...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:{...Ii,...$i,...oc,...ki,...sc,...lf,...CR,"--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,...ki,...sc,...Ii,"--format":"string","--pretty":"string","--abbrev-commit":"none","--no-patch":"none","-q":"none"}},"git shortlog":{safeFlags:{...$i,"-s":"none","--summary":"none","-n":"none","--numbered":"none","-e":"none","--email":"none","-sn":"none","-ns":"none","--all":"none"}},"git reflog":{safeFlags:{...$i,...Ii,...lf,"--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:{...$i,"--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:{...Ii}},"git worktree list":{safeFlags:{"--porcelain":"none","-v":"none","--verbose":"none","-z":"none"}},"git branch":{safeFlags:{...LR,"--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"}}},FR=["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"],jR={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))}},ff={"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:{}}},DR=["cd","alias","history","arch","ip addr","ifconfig"];KR=new Set(["echo","printf"])});var If={};Mt(If,{APPROVAL_LABELS:()=>vi,APPROVAL_MODES:()=>Xr,MODE_MAX_TIER:()=>gf,TIER_RANK:()=>ac,createPermissionExtension:()=>Vo,criticalCommand:()=>hf,decideToolCall:()=>yf,describeToolCall:()=>bf,formatApprovalPrompt:()=>wf,getApprovalMode:()=>HR,isApprovalMode:()=>WR,isReadOnlyCommand:()=>Ti,resolveTier:()=>uc,setApprovalMode:()=>cc,setApprovalPrompt:()=>pc});function WR(e){return Xr.includes(e)}function uc(e){let t=BR[e];return t||(e.startsWith("mcp__")?"write":"exec")}function hf(e){for(let{pattern:t,reason:n}of zR)if(t.test(e))return n}function cc(e){mc=e}function HR(){return mc}function pc(e){xf=e}function yf(e,t,n){let r=typeof n?.command=="string"?n.command:"";if(t==="bash"||t==="powershell"){let s=hf(r);if(s)return{action:"deny",reason:`Refused in every mode: ${s}.`};if(Ti(r))return{action:"run"}}let o=uc(t);return ac[o]<=ac[gf[e]]?{action:"run"}:{action:"prompt",reason:`this is a ${o}-tier tool`}}function bf(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 wf(e,t,n){let r=[`Allow tool: ${e}`];e.startsWith("mcp__")&&r.push("Origin: MCP server tool"),r.push(`Reason: ${n}`);let o=bf(e,t);return o!==e&&r.push(o),r.join(`
13
+ `)}function Vo(e={}){return t=>{t.on("tool_call",async n=>{let r=uf(n.toolName,n.input);if(r)return{block:!0,reason:cf(n.toolName,r.repeats)};let o=mc,s=yf(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 xf(`${n.toolName} wants to run`,wf(n.toolName,n.input,s.reason)))return{block:!0,reason:`Blocked by the user (approval mode: ${o}).`}})}}var Xr,vi,ac,gf,BR,zR,mc,xf,Jo=u(()=>{rc();ic();ic();Xr=["suggest","auto-edit","full-auto"],vi={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},gf={suggest:"read","auto-edit":"write","full-auto":"exec"},BR={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"};zR=[{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",xf=async()=>!1});import{existsSync as VR,readFileSync as JR}from"node:fs";import{join as YR}from"node:path";function ZR(e){try{if(!VR(e))return;let t=JR(e,"utf8").trim();return!t||Buffer.byteLength(t,"utf8")>XR?void 0:t}catch{return}}function kf(e){let t=[e],n=ZR($f);return n&&t.push(`# Standing instructions from ${$f}
14
+ ${n}`),t}var $f,XR,Tf=u(()=>{xn();$f=YR(_e,"APPEND_SYSTEM.md"),XR=16*1024});function QR(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 tA(e){if(!e)return;let t=!1,n={...e};for(let r of eA){let o=n[r];if(typeof o!="string")continue;let s=QR(o);s!==o&&(n[r]=s,t=!0)}return t?n:void 0}function vf(){return e=>{e.on("context_with_system",async t=>{let n=t.messages[0];if(!n||n.role!=="system")return;let r=tA(n.sections);return r?{messages:t.messages.map(s=>s===n?{...n,sections:r}:s)}:void 0})}}var eA,Ef=u(()=>{eA=["preamble","rules","docs","addendum"]});import{Type as Zr}from"@earendil-works/pi-ai";import{defineTool as Sf}from"@earendil-works/pi-coding-agent";function Pf(e){lc=e}var lc,Rf,Af,dc=u(()=>{Rf=Sf({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}}}}),Af=Sf({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 Cf(e){return e===8205}function nA(e){return br(e,55296,56319)}function Mf(e){return br(e,127462,127487)}function Lf(e){return br(e,65024,65039)}function Ff(e){return br(e,768,879)||br(e,6832,6911)||br(e,7616,7679)||br(e,65056,65071)}function Ei(e){return e>65535?2:1}function Of(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(Ff(n)||Lf(n))t+=Ei(n);else break}return t}function fc(e,t){let n=e.codePointAt(t),r=t+Ei(n);for(r=Of(e,r);r<e.length-1&&Cf(e.codePointAt(r));){let o=e.codePointAt(r+1);r+=1+Ei(o),r=Of(e,r)}return Mf(n)&&r<e.length&&Mf(e.codePointAt(r))&&(r+=Ei(e.codePointAt(r))),r}function jf(e){return e>=768&&(nA(e)||Ff(e)||Lf(e)||Cf(e))}function Df(e){let t=0,n=0;for(;n<e.length;)n=fc(e,n),t++;return t}function rA(e,t){let n=0,r=0;for(;r<e.length;)if(r=fc(e,r),++n>=t)return!0;return!1}function oA(e,t){let n=0,r=0;for(;r<e.length;)if(r=fc(e,r),++n>t)return!1;return!0}function _f(e,t){if(t===0)return!0;if(e.length<t)return!1;let n=0;for(;;){if(jf(e.charCodeAt(n)))return rA(e,t);if(++n>=t)return!0}}function Nf(e,t){if(e.length<=t)return!0;let n=0;for(;;){if(jf(e.charCodeAt(n)))return oA(e,t);if(++n>t)return!1}}var qf=u(()=>{});var m={};Mt(m,{Counted:()=>wA,Entries:()=>kA,EntriesRegExp:()=>$A,Every:()=>hA,EveryAll:()=>xA,GraphemeCount:()=>dA,HasPropertyKey:()=>IA,IsArray:()=>Xo,IsBigInt:()=>Yo,IsBoolean:()=>Uf,IsClassInstance:()=>lA,IsConstructor:()=>iA,IsDeepEqual:()=>xc,IsEqual:()=>ue,IsFunction:()=>Kf,IsGreaterEqualThan:()=>Wf,IsGreaterThan:()=>mA,IsInteger:()=>gc,IsLessEqualThan:()=>Gf,IsLessThan:()=>cA,IsMaxLength:()=>fA,IsMinLength:()=>gA,IsMultipleOf:()=>pA,IsNull:()=>Pi,IsNumber:()=>Ri,IsObject:()=>Zo,IsObjectNotArray:()=>aA,IsString:()=>Ai,IsSymbol:()=>uA,IsUndefined:()=>hc,IsUnsafePropertyKey:()=>zf,IsValueLike:()=>Bf,Keys:()=>Si,ShiftLeft:()=>Mi,Some:()=>yA,SomeAll:()=>bA,Symbols:()=>TA,Values:()=>vA});function Xo(e){return Array.isArray(e)}function Yo(e){return ue(typeof e,"bigint")}function Uf(e){return ue(typeof e,"boolean")}function iA(e){if(hc(e)||!Kf(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function Kf(e){return ue(typeof e,"function")}function gc(e){return Number.isInteger(e)}function Pi(e){return ue(e,null)}function Ri(e){return Number.isFinite(e)}function aA(e){return Zo(e)&&!Xo(e)}function Zo(e){return ue(typeof e,"object")&&!Pi(e)}function Ai(e){return ue(typeof e,"string")}function uA(e){return ue(typeof e,"symbol")}function hc(e){return ue(e,void 0)}function ue(e,t){return e===t}function mA(e,t){return e>t}function cA(e,t){return e<t}function Gf(e,t){return e<=t}function Wf(e,t){return e>=t}function pA(e,t){if(Yo(e)||Yo(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!Ri(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 lA(e){if(!Zo(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return Pi(t)?!1:ue(typeof t.constructor,"function")&&!(ue(t.constructor,globalThis.Object)||ue(t.constructor.name,"Object"))}function Bf(e){return Yo(e)||Uf(e)||Pi(e)||Ri(e)||Ai(e)||hc(e)}function dA(e){return Df(e)}function fA(e,t){return Nf(e,t)}function gA(e,t){return _f(e,t)}function hA(e,t,n){return e.every((r,o)=>o<t||n(r,o))}function xA(e,t,n){let r=!0;return e.forEach((o,s)=>{s>=t&&!n(o,s)&&(r=!1)}),r}function yA(e,t){return e.some((n,r)=>t(n,r))}function bA(e,t){let n=!1;return e.forEach((r,o)=>{t(r,o)&&(n=!0)}),n}function wA(e,t){return e.reduce((n,r,o)=>t(r,o)?++n:n,0)}function Mi(e,t,n){return ue(e.length,0)?n():t(e[0],e.slice(1))}function zf(e){return ue(e,"__proto__")||ue(e,"constructor")||ue(e,"prototype")}function IA(e,t){return zf(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function $A(e){return Si(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function kA(e){return Object.entries(e)}function Si(e){return Object.getOwnPropertyNames(e)}function TA(e){return Object.getOwnPropertySymbols(e)}function vA(e){return Object.values(e)}function EA(e,t){if(!Zo(t))return!1;let n=Si(e);return ue(n.length,Si(t).length)&&n.every(r=>xc(e[r],t[r]))}function SA(e,t){return Xo(t)&&ue(e.length,t.length)&&e.every((n,r)=>xc(e[r],t[r]))}function xc(e,t){return Xo(e)?SA(e,t):Zo(e)?EA(e,t):ue(e,t)}var Qr=u(()=>{qf()});var Hf=u(()=>{Qr()});var Vn={};Mt(Vn,{IsBigInt64Array:()=>KA,IsBigUint64Array:()=>GA,IsBoolean:()=>RA,IsDate:()=>BA,IsFloat32Array:()=>qA,IsFloat64Array:()=>UA,IsInt16Array:()=>jA,IsInt32Array:()=>_A,IsInt8Array:()=>CA,IsMap:()=>HA,IsNumber:()=>AA,IsRegExp:()=>WA,IsSet:()=>zA,IsString:()=>MA,IsTypeArray:()=>OA,IsUint16Array:()=>DA,IsUint32Array:()=>NA,IsUint8Array:()=>LA,IsUint8ClampedArray:()=>FA});function RA(e){return e instanceof Boolean}function AA(e){return e instanceof Number}function MA(e){return e instanceof String}function OA(e){return globalThis.ArrayBuffer.isView(e)}function CA(e){return e instanceof globalThis.Int8Array}function LA(e){return e instanceof globalThis.Uint8Array}function FA(e){return e instanceof globalThis.Uint8ClampedArray}function jA(e){return e instanceof globalThis.Int16Array}function DA(e){return e instanceof globalThis.Uint16Array}function _A(e){return e instanceof globalThis.Int32Array}function NA(e){return e instanceof globalThis.Uint32Array}function qA(e){return e instanceof globalThis.Float32Array}function UA(e){return e instanceof globalThis.Float64Array}function KA(e){return e instanceof globalThis.BigInt64Array}function GA(e){return e instanceof globalThis.BigUint64Array}function WA(e){return e instanceof globalThis.RegExp}function BA(e){return e instanceof globalThis.Date}function zA(e){return e instanceof globalThis.Set}function HA(e){return e instanceof globalThis.Map}var Vf=u(()=>{});var Jf=u(()=>{Qr()});var O=u(()=>{Hf();Vf();Jf();Qr();Qr()});var an={};Mt(an,{Get:()=>XA,Reset:()=>JA,Set:()=>YA});function JA(){yn.immutableTypes=!1,yn.maxErrors=8,yn.maxInstantiationCount=128,yn.useAcceleration=!0,yn.exactOptionalPropertyTypes=!1,yn.enumerableKind=!1,yn.correctiveParse=!1,yn.unionPrioritySort=!0}function YA(e){for(let t of m.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(yn,t,{value:n})}}function XA(){return yn}var yn,Yf=u(()=>{O();yn={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0}});var wr=u(()=>{Yf()});function Jn(e){return an.Get().immutableTypes?Object.freeze(e):e}var Qo=u(()=>{wr()});function ZA(e,t){return sn.assign+=1,Jn({...e,...t})}var Xf=u(()=>{yr();Qo()});function QA(e){return m.HasPropertyKey(e,"~kind")||m.HasPropertyKey(e,"~unsafe")}function eM(e){let t={};for(let n of m.Keys(e)){if(m.IsUnsafePropertyKey(n))continue;let r=Object.getOwnPropertyDescriptor(e,n);r.value=Ir(r.value),m.IsEqual(r.enumerable,!0)?t[n]=r.value:Object.defineProperty(t,n,r)}return t}function tM(e){let t={};for(let n of m.Keys(e))m.IsUnsafePropertyKey(n)||(t[n]=Ir(e[n]));for(let n of m.Symbols(e))t[n]=Ir(e[n]);return t}function nM(e){return m.IsClassInstance(e)?e:QA(e)?eM(e):tM(e)}function rM(e){return e.map(t=>Ir(t))}function oM(e){return e.slice()}function sM(e){return new RegExp(e.source,e.flags)}function iM(e){return new Map(Ir([...e.entries()]))}function aM(e){return new Set(Ir([...e.values()]))}function Ir(e){return Vn.IsTypeArray(e)?oM(e):Vn.IsRegExp(e)?sM(e):Vn.IsMap(e)?iM(e):Vn.IsSet(e)?aM(e):m.IsArray(e)?rM(e):m.IsObject(e)?nM(e):e}function es(e){return sn.clone+=1,Ir(e)}var Oi=u(()=>{O();yr()});function uM(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 mM(e,t,n={}){sn.create+=1;let r=Zf(t,n),o=an.Get().enumerableKind?Zf(r,e):uM(r,e);return Jn(o)}var Qf=u(()=>{wr();yr();Qo()});function cM(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=es(o.value),Object.defineProperty(n,r,o)}return Jn(n)}var eg=u(()=>{O();yr();Qo();Oi()});function pM(e,t,n){sn.update+=1;let r=an.Get(),o=es(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 tg=u(()=>{wr();yr();Qo();Oi()});var f={};Mt(f,{Assign:()=>ZA,Clone:()=>es,Create:()=>mM,Discard:()=>cM,Metrics:()=>sn,Update:()=>pM});var ng=u(()=>{Xf();Oi();Qf();eg();yr();tg()});var S=u(()=>{ng()});function L(e,t){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.IsEqual(e["~kind"],t)}function Ne(e){return m.IsObject(e)}var J=u(()=>{O()});function j(e,t,n){return f.Create({"~kind":"Deferred"},{type:"deferred",action:e,parameters:t,options:n},{})}function Yn(e){return L(e,"Deferred")}var ce=u(()=>{S();J()});function lM(e){return f.Update(e,{"~readonly":!0},{})}function ts(e,t){return f.Update(lM(e),{},t)}function rg(e,t,n,r){let o=T(e,t,n);return ts(o,r)}var Ci=u(()=>{S();q()});function dM(e){return f.Update(e,{"~optional":!0},{})}function ns(e,t){return f.Update(dM(e),{},t)}function og(e,t,n,r){let o=T(e,t,n);return ns(o,r)}var Li=u(()=>{S();q()});function qt(e,t){return f.Create({"~kind":"Array"},{type:"array",items:e},t)}function ke(e){return L(e,"Array")}function Fi(e){return f.Discard(e,["~kind","type","items"])}var gt=u(()=>{S();J()});function bn(e,t,n={}){return f.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},n)}function We(e){return L(e,"Constructor")}function sg(e){return f.Discard(e,["~kind","type","parameters","instanceType"])}var Bt=u(()=>{S();J()});function wn(e,t,n={}){return f.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},n)}function Be(e){return L(e,"Function")}function ig(e){return f.Discard(e,["~kind","type","parameters","returnType"])}var zt=u(()=>{S();J()});function qn(e,t){return f.Create({"~kind":"Ref"},{$ref:e},t)}function ze(e){return L(e,"Ref")}var Ht=u(()=>{S();J()});function Xn(e,t){return f.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function eo(e){return L(e,"Generic")}var rs=u(()=>{S();J()});function to(e){return f.Create({"~kind":"Any"},{},e)}function Ee(e){return L(e,"Any")}var $t=u(()=>{S();J()});function ge(e){return f.Create({"~kind":"Never"},{not:{}},e)}function un(e){return L(e,"Never")}var ag,Je=u(()=>{S();J();ag="(?!)"});function In(e,t={}){return j("AddOptional",[e],t)}function $r(e,t={}){return ns(e,t)}var os=u(()=>{ce();Li()});function ug(e){return $r(e)}function ut(e){return Ne(e)&&m.HasPropertyKey(e,"~optional")}var Zn=u(()=>{O();J();os()});function mg(e){return m.Keys(e).filter(t=>!ut(e[t]))}function ji(e){return m.Keys(e)}function Di(e){return m.Values(e)}var kr=u(()=>{O();Zn()});function W(e,t={}){let n=mg(e),r=n.length>0?{required:n}:{};return f.Create({"~kind":"Object"},{type:"object",...r,properties:e},t)}function pe(e){return L(e,"Object")}function cg(e){return f.Discard(e,["~kind","type","properties","required"])}var fe=u(()=>{S();J();kr()});function Ye(e){return f.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]:f.Update(e[s],{},{$id:s})}),{});return f.Create({"~kind":"Cyclic"},{$defs:r,$ref:t},n)}function rt(e){return L(e,"Cyclic")}var kt=u(()=>{O();S();J()});function pg(e){return f.Update(e,{"~unsafe":null},{})}function _i(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"~unsafe")&&m.IsNull(e["~unsafe"])}var Ni=u(()=>{O();S()});var kn={};Mt(kn,{Match:()=>fM});function fM(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}var lg=u(()=>{});var no=u(()=>{lg()});function ss(...e){let[t,n]=kn.Match(e,{2:(r,o)=>[r,o,o],1:r=>[r,Ye(),Ye()]});return f.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 f.Create({"~kind":"Dependent"},{if:e,then:t,else:n},r)}function Pe(e){return L(e,"Dependent")}function dg(e){return f.Discard(e,["~kind","if","then","else"])}var Ot=u(()=>{S();J()});function fg(e){return m.IsObjectNotArray(e)}function gg(e){return m.Keys(e).filter(n=>isNaN(n)).reduce((n,r)=>[...n,e[r]],[])}var qi=u(()=>{O()});function hg(e){return m.IsString(e)||m.IsNumber(e)}function xg(e,t){let n=fg(e)?gg(e):e;return f.Create({"~kind":"Enum"},{enum:n},t)}function ot(e){return L(e,"Enum")}var mn=u(()=>{O();S();J();qi();qi()});function Tt(e,t={}){return f.Create({"~kind":"Intersect"},{allOf:e},t)}function oe(e){return L(e,"Intersect")}function yg(e){return f.Discard(e,["~kind","allOf"])}var qe=u(()=>{S();J()});var bg=u(()=>{wr();O()});var wg=u(()=>{bg()});var Ig=u(()=>{wg()});function Ue(){throw new Error("Unreachable")}var yc=u(()=>{});var Tn=u(()=>{yc()});var $g,NU,qU,UU,KU,kg,GU,WU,BU,Tg=u(()=>{Tn();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"})($g||($g={}));NU=BigInt("14695981039346656037"),[qU,UU]=[BigInt("1099511628211"),BigInt("18446744073709551616")],KU=Array.from({length:256}).map((e,t)=>BigInt(t)),kg=new Float64Array(1),GU=new DataView(kg.buffer),WU=new Uint8Array(kg.buffer),BU=new TextEncoder});var vg=u(()=>{Tg()});var bc=u(()=>{});var Eg=u(()=>{bc()});var Sg=u(()=>{});var Pg=u(()=>{});var Rg=u(()=>{});var Ag=u(()=>{});var Mg=u(()=>{});var Og=u(()=>{});var Cg=u(()=>{});var Lg=u(()=>{});var Fg=u(()=>{});var jg=u(()=>{});var Dg=u(()=>{});var wc=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(()=>{});var oh=u(()=>{});var sh=u(()=>{});var ih=u(()=>{});var ah=u(()=>{});var uh=u(()=>{});var mh=u(()=>{Eg();Sg();Pg();Rg();Ag();Mg();bc();Og();Cg();Lg();Fg();jg();Dg();wc();wc();_g();Ng();qg();Ug();Kg();Gg();Wg();Bg();zg();Hg();Vg();Jg();Yg();Xg();Zg();Qg();eh();th();nh();rh();oh();sh();ih();ah();uh()});var ch=u(()=>{mh()});var is=u(()=>{no();Ig();vg();ch();S();wr()});var lh=u(()=>{is();is();is()});function Ki(e){return new us(e)}function dh(e,t){return Ki(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function fh(e,t){return Ki(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function Ui(e){return Ne(e)&&m.HasPropertyKey(e,"~codec")&&m.IsObject(e["~codec"])&&m.HasPropertyKey(e["~codec"],"encode")&&m.HasPropertyKey(e["~codec"],"decode")}var as,us,Ic=u(()=>{lh();O();J();as=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,r=Ui(n)?i=>this.decode(n["~codec"].decode(i)):this.decode,o=Ui(n)?i=>n["~codec"].encode(t(i)):t,s={decode:r,encode:o};return f.Update(this.type,{"~codec":s},{})}},us=class{constructor(t){this.type=t}Decode(t){return new as(this.type,t)}}});function gh(e){return ro(e)}function vr(e){return Ne(e)&&m.HasPropertyKey(e,"~immutable")}var ms=u(()=>{O();J();cs()});function vn(e,t={}){return j("AddReadonly",[e],t)}function Er(e,t={}){return ts(e,t)}var ps=u(()=>{ce();Ci()});function hh(e){return Er(e)}function Sr(e){return Ne(e)&&m.HasPropertyKey(e,"~readonly")}var ls=u(()=>{O();J();ps()});function yM(e,t){let n=$c(e)?[...e["~refine"],t]:[t];return f.Update(e,{"~refine":n},{})}function xh(...e){let[t,n,r]=kn.Match(e,{3:(o,s,i)=>[o,s,i],2:(o,s)=>[o,s,()=>"Refine Error"]});return yM(t,{check:n,error:r})}function bM(e){return m.IsObjectNotArray(e)&&m.HasPropertyKey(e,"check")&&m.HasPropertyKey(e,"error")&&m.IsFunction(e.check)&&m.IsFunction(e.error)}function $c(e){return Ne(e)&&m.HasPropertyKey(e,"~refine")&&m.IsArray(e["~refine"])&&m.Every(e["~refine"],0,t=>bM(t))}var kc=u(()=>{no();S();O();J()});function ds(e){return f.Create({"~kind":"BigInt"},{type:"bigint"},e)}function En(e){return L(e,"BigInt")}var yh,Pr=u(()=>{S();J();yh="-?(?:0|[1-9][0-9]*)n"});function Gi(e){return f.Create({"~kind":"Boolean"},{type:"boolean"},e)}function Jt(e){return L(e,"Boolean")}var Qn=u(()=>{S();J()});function fs(e){return f.Create({"~kind":"Identifier"},{name:e})}function bh(e){return L(e,"Identifier")}var Tc=u(()=>{S();J()});function Rr(e){return f.Create({"~kind":"Integer"},{type:"integer"},e)}function ht(e){return L(e,"Integer")}var Wi,Sn=u(()=>{S();J();Wi="-?(?:0|[1-9][0-9]*)"});function wM(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 f.Create({"~kind":"Literal"},{type:wM(e),const:e},t)}function Bi(e){return m.IsBigInt(e)||m.IsBoolean(e)||m.IsNumber(e)||m.IsString(e)}function wh(e){return le(e)&&m.IsNumber(e.const)}function Ih(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 f.Create({"~kind":"Null"},{type:"null"},e)}function so(e){return L(e,"Null")}var io=u(()=>{S();J()});function Ct(e){return f.Create({"~kind":"Number"},{type:"number"},e)}function Fe(e){return L(e,"Number")}var zi,xt=u(()=>{S();J();zi="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?"});function ao(e){return f.Create({"~kind":"Symbol"},{type:"symbol"},e)}function er(e){return L(e,"Symbol")}var Ar=u(()=>{S();J()});function Mr(...e){let[t,n,r]=kn.Match(e,{3:(o,s,i)=>[o,s,i],2:(o,s)=>[o,s,s],1:o=>[o,Ye(),Ye()]});return f.Create({"~kind":"Parameter"},{name:t,extends:n,equals:r},{})}function $h(e){return L(e,"Parameter")}var Ec=u(()=>{no();S();J();nt()});function Yt(e){return f.Create({"~kind":"String"},{type:"string"},e)}function yt(e){return L(e,"String")}var Hi,Xt=u(()=>{S();J();Hi=".*"});function X(e,t={}){return f.Create({"~kind":"Union"},{anyOf:e},t)}function F(e){return L(e,"Union")}function kh(e){return f.Discard(e,["~kind","anyOf"])}var Q=u(()=>{S();J()});function gs(e){let t=Th(e);return m.IsEqual(t.length,2)?t[0]:[]}var hs=u(()=>{O();Vi()});function IM(e){return!0}function vh(e){return m.ShiftLeft(e,(t,n)=>$M(t)?vh(n):!1,()=>!0)}function Eh(e){return m.IsEqual(e.length,0)?!1:vh(e)}function $M(e){return F(e)?Eh(e.anyOf):le(e)?IM(e.const):!1}function Ji(e){return Eh(e)}var Yi=u(()=>{O();Le();Q()});function Xi(e){return f.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}var Zi=u(()=>{S()});function Sh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Sh(o,t,[...n,`${r}${t}`]),()=>n)}function kM(e,t){return m.IsEqual(e.length,0)?[`${t}`]:Sh(e,t)}function Ph(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>Ph(e,o,[...n,...Rh(e,r)]),()=>n)}function Rh(e,t){return F(t)?Ph(e,t.anyOf):le(t)?kM(e,t.const):Ue()}function Ah(e,t){return m.ShiftLeft(t,(n,r)=>Ah(Rh(e,n),r),()=>e)}function TM(e){return e.map(t=>se(t))}function vM(e){let t=Ah([],e),n=TM(t);return X(n)}function EM(e){return m.IsEqual(e.length,0)?Ue():m.IsEqual(e.length,1)&&le(e[0])?e[0]:vM(e)}function Sc(e){let t=gs(e);return m.IsEqual(t.length,0)?Yt():Ji(t)?EM(t):Xi(e)}function Mh(e){let t=Sc(e);return Re(t)?Yt():t}var Qi=u(()=>{O();Tn();Le();Xt();vt();Q();hs();Yi();Zi()});function Et(e,t){let n="object",r={[e]:t};return f.Create({"~kind":"Record"},{type:n,patternProperties:r})}var tr=u(()=>{S()});function Oh(e){return Et(cn,e)}var Ch=u(()=>{Xe();tr()});function Lh(e){return W({true:e,false:e})}var Fh=u(()=>{fe()});function je(e,t={}){let[n,r,o]=[e,e.length,!1];return f.Create({"~kind":"Tuple"},{type:"array",additionalItems:o,items:n,minItems:r},t)}function be(e){return L(e,"Tuple")}function jh(e){return f.Discard(e,["~kind","type","items","minItems","additionalItems"])}var Ke=u(()=>{S();J()});function SM(e){return f.Discard(e,["~readonly"])}function Pc(e,t){return f.Update(SM(e),{},t)}function Dh(e,t,n,r){let o=T(e,t,n);return Pc(o,r)}var Rc=u(()=>{S();q()});function _h(e,t={}){return j("RemoveReadonly",[e],t)}function Nh(e,t={}){return Pc(e,t)}var Ac=u(()=>{ce();Rc()});function PM(e){return f.Discard(e,["~optional"])}function Mc(e,t){return f.Update(PM(e),{},t)}function qh(e,t,n,r){let o=T(e,t,n);return Mc(o,r)}var Oc=u(()=>{S();q()});function Uh(e,t={}){return j("RemoveOptional",[e],t)}function ea(e,t={}){return Mc(e,t)}var ta=u(()=>{ce();Oc()});function Cc(e){return e.reduceRight((n,r,o)=>({[o]:r,...n}),{})}function Kh(e){let t=Cc(e.items);return W(t)}var Lc=u(()=>{fe()});function Fc(e){return pe(e)||be(e)}function RM(e,t){return Sr(e)?!!Sr(t):!1}function AM(e,t){return ut(e)?!!ut(t):!1}function MM(e,t){let n=RM(e,t),r=AM(e,t),o=Te([e,t]),s=Nh(ea(o));return n&&r?Er($r(s)):n&&!r?Er(s):!n&&r?$r(s):s}function OM(e,t,n){return n in e?n in t?MM(e[n],t[n]):e[n]:n in t?t[n]:ge()}function CM(e,t){return[...new Set([...m.Keys(e),...m.Keys(t)])].reduce((o,s)=>({...o,[s]:OM(e,t,s)}),{})}function Gh(e){return pe(e)?e.properties:be(e)?Cc(e.items):{}}function Wh(e,t){let n=Gh(e),r=Gh(t),o=CM(n,r);return W(o)}var jc=u(()=>{O();ls();Zn();fe();Je();Ke();ps();os();Ac();ta();Lc();Y()});function LM(e,t){let n=bs(e,t);return m.IsEqual(n,ys)?e:m.IsEqual(n,na)||m.IsEqual(n,xs)?t:ge()}function FM(e,t){let n=Fc(e),r=Fc(t);return n&&r?Wh(e,t):n&&!r?e:!n&&r?t:LM(e,t)}function Bh(e,t){return un(e)||Ee(e)?e:Oe(e)||un(t)||Ee(t)?t:Oe(t)?e:FM(e,t)}var Dc=u(()=>{O();$t();Je();nt();ws();jc()});function jM(e,t){return F(e)||F(t)}function DM(e,t){let n=Zt(e),r=Zt(t);return jM(n,r)?Te([n,r]):Bh(n,r)}function zh(e,t,n=[]){return m.ShiftLeft(t,(r,o)=>zh(e,o,[...n,DM(r,e)]),()=>m.IsEqual(n.length,0)?[e]:n)}function Hh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Hh(o,t,[...n,...Is([r],t)]),()=>n)}function Is(e,t=[]){return m.ShiftLeft(e,(n,r)=>F(n)?Is(r,Hh(n.anyOf,t)):Is(r,zh(n,t)),()=>t)}var _c=u(()=>{O();Q();Dc();Y();Y()});function _M(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[]:[e]}function Vh(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>Vh(o,t,[...n,..._M(r,t)]),()=>n)}function ra(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=Vh(r,t);return St(o)}var Nc=u(()=>{O();Q();Pn();Y();Y()});function pn(e,t,n){let r=Te([e,t]),o=ra(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=Is(e),n=qc(t);return St(n)}function mt(e){let t=Mh(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):Re(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();qe();Le();Je();vt();Q();_c();Uc();Nc();Qi()});function Jh(e,t){let n=bt(e);return rr(n,t)}var Yh=u(()=>{$s();Y()});function Xh(e,t){return Et(or,t)}var Zh=u(()=>{Xe();tr()});function Qh(e,t){let n=Te(e);return rr(n,t)}var ex=u(()=>{Y();$s()});function tx(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 nx=u(()=>{O();fe()});function rx(e,t){return Et(uo,t)}var ox=u(()=>{Xe();tr()});function sx(e,t){return m.HasPropertyKey(e,"pattern")&&(m.IsString(e.pattern)||e.pattern instanceof RegExp)?Et(e.pattern.toString(),t):Et(cn,t)}var ix=u(()=>{O();Xe();tr()});function ax(e,t){let n=gs(e);return Ji(n)?rr(mt(e),t):Et(e,t)}var ux=u(()=>{$s();hs();Yi();Y();tr()});function NM(e){return F(e)?mo(e.anyOf):[e]}function mo(e,t=[]){return m.ShiftLeft(e,(n,r)=>mo(r,[...t,...NM(n)]),()=>t)}var oa=u(()=>{O();Q()});function qM(e){return e.some(t=>yt(t)||Fe(t)||ht(t))}function UM(e,t){return m.IsEqual(qM(e),!0)?Et(cn,t):void 0}function KM(e,t){return e.reduce((n,r)=>le(r)&&(m.IsString(r.const)||m.IsNumber(r.const))?{...n,[r.const]:t}:n,{})}function GM(e,t){let n=KM(e,t);return W(n)}function mx(e,t){let n=mo(e),r=UM(n,t);return Ne(r)?r:GM(n,t)}var cx=u(()=>{O();J();Le();xt();Sn();fe();Xt();Xe();oa();tr()});function rr(e,t){return Ee(e)?Oh(t):Jt(e)?Lh(t):ot(e)?Jh(e.enum,t):ht(e)?Xh(e,t):oe(e)?Qh(e.allOf,t):le(e)?tx(e.const,t):Fe(e)?rx(e,t):F(e)?mx(e.anyOf,t):yt(e)?sx(e,t):Re(e)?ax(e.pattern,t):W({})}var $s=u(()=>{$t();Qn();mn();qe();Sn();Le();xt();fe();Xt();vt();Q();Ch();Fh();Yh();Zh();ex();nx();ox();ix();ux();cx()});function Kc(e,t,n){return V([e])?f.Update(rr(e,t),{},n):ia(e,t,n)}function px(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Kc(s,i,o)}var sa=u(()=>{S();Xe();$s();q()});function ia(e,t,n={}){return j("Record",[e,t],n)}function aa(e,t,n={}){return Kc(e,t,n)}function lx(e,t){return Et(e,t)}function ua(e){return m.IsEqual(e,cn)?Yt():m.IsEqual(e,or)?Rr():m.IsEqual(e,uo)?Ct():Sc(e)}function Qt(e){return m.Keys(e.patternProperties)[0]}function co(e){let t=Qt(e);return ua(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();Sn();xt();Xt();ce();Qi();tr();sa();or=`^${Wi}$`,uo=`^${zi}$`,cn=`^${Hi}$`});function Or(e){return f.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function sr(e){return L(e,"Rest")}var po=u(()=>{S();J()});var dx=u(()=>{});function ma(e){return f.Create({"~kind":"This"},{$ref:"#"},e)}function ca(e){return L(e,"This")}var pa=u(()=>{S();J()});function lo(e){return f.Create({"~kind":"Undefined"},{type:"undefined"},e)}function fo(e){return L(e,"Undefined")}var go=u(()=>{S();J()});function la(e){return f.Create({"~kind":"Void"},{type:"void"},e)}function Rn(e){return L(e,"Void")}var Cr=u(()=>{S();J()});var da=u(()=>{Ic();ms();Zn();ls();kc();$t();gt();Pr();Qn();ho();Bt();kt();ce();mn();zt();rs();Tc();Ot();Vt();Sn();qe();Le();Je();io();xt();nt();Ar();fe();Ec();kr();Xe();Ht();po();J();dx();Xt();Ar();vt();pa();Ke();go();Q();nt();Ni();Cr()});function BM(e,t){return m.IsEqual(e,"Array")?qt(t[0]):m.IsEqual(e,"Capitalize")?ga(t[0]):m.IsEqual(e,"ConstructorParameters")?wa(t[0]):m.IsEqual(e,"Evaluate")?gb(t[0]):m.IsEqual(e,"Exclude")?Ia(t[0],t[1]):m.IsEqual(e,"Extract")?$a(t[0],t[1]):m.IsEqual(e,"Index")?Es(t[0],t[1]):m.IsEqual(e,"InstanceType")?ka(t[0]):m.IsEqual(e,"Lowercase")?ha(t[0]):m.IsEqual(e,"NonNullable")?Ta(t[0]):m.IsEqual(e,"Omit")?va(t[0],t[1]):m.IsEqual(e,"Parameters")?Ea(t[0]):m.IsEqual(e,"Partial")?Sa(t[0]):m.IsEqual(e,"Pick")?Pa(t[0],t[1]):m.IsEqual(e,"Readonly")?Ra(t[0]):m.IsEqual(e,"KeyOf")?Ss(t[0]):m.IsEqual(e,"Record")?ia(t[0],t[1]):m.IsEqual(e,"Required")?Aa(t[0]):m.IsEqual(e,"ReturnType")?Ma(t[0]):m.IsEqual(e,"Uncapitalize")?xa(t[0]):m.IsEqual(e,"Uppercase")?ya(t[0]):vs(qn(e),t)}function Lr(){throw Error("Unreachable")}function yx(e,t=[]){return m.ShiftLeft(e,(n,r)=>yx(r,[...t,n[1]]),()=>t)}function Un(e){return m.IsEqual(e.length,3)?[e[0],...yx(e[1])]:[]}function bx(e){return Mr(e[0],e[2],e[4])}function wx(e){return Mr(e[0],e[2],e[2])}function Ix(e){return Mr(e[0],Ye(),e[2])}function $x(e){return Mr(e,Ye(),Ye())}function kx(e){return Un(e)}function Tx(e){return e[1]}function vx(e){return Un(e)}function Ex(e){return e[1]}function Sx(e){return BM(e[0],e[1])}function Px(e){return null}function Rx(e){return Yt()}function Ax(e){return Ct()}function Mx(e){return Gi()}function Ox(e){return lo()}function Cx(e){return oo()}function Lx(e){return Rr()}function Fx(e){return ds()}function jx(e){return Ye()}function Dx(e){return to()}function _x(e){return W({})}function Nx(e){return ge()}function qx(e){return ao()}function Ux(e){return la()}function Kx(e){return ma()}function Gx(e){return se(BigInt(e))}function Wx(e){return se(m.IsEqual(e,"true"))}function Bx(e){return se(parseFloat(e))}function zx(e){return se(e)}function Hx(e){return e[1]}function Vx(e){return se(e)}function Jx(e){return m.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function Yx(e){return e[1]}function Xx(e){return fa(e)}function Zx(e){return m.IsEqual(e.length,6)?Tr(e[1],e[3],e[5]):Tr(e[1],e[3],Ye())}function Qx(e){return e.length>0}function ey(e){return e.reduce((t,n)=>m.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function ty(e){return m.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function ny(e){return m.IsArray(e)&&m.IsEqual(e.length,3)?e[1]:e}function ry(e){return m.IsEqual(e.length,2)?e[1]:[]}function fx(e,t){return t.reduce((n,r)=>{let o=r;return m.IsEqual(o.length,1)?Es(n,o[0]):m.IsEqual(o.length,0)?qt(n):Lr()},e)}function gx(e,t){return m.IsEqual(t.length,3)?ba(e,t[0],t[1],t[2]):e}function zM(e,t){return m.IsArray(t)&&m.IsEqual(t.length,0)?e:Oa(e,t)}function oy(e){let[t,n,r,o,s]=e;return zM(gx(t?Ss(fx(n,r)):fx(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 sy(e){let[t,n]=e;return Gc(t,n)}function iy(e){let[t,n]=e;return Gc(t,n)}function ay(e){return fb(e[1])}function uy(e){return e[1]}function my(e){return Xn(e[0],e[2])}function cy(e){return m.IsEqual(e.length,4)?ss(e[1],e[3]):m.IsEqual(e.length,2)?ss(e[1],Ye()):Lr()}function py(e){return`${e}`}function ly(e){return ht(e[3])?or:Fe(e[3])?uo:er(e[3])?cn:yt(e[3])?cn:Lr()}function dy(e){return e.length>0}function fy(e){return e.length>0}function gy(e){let[t,n,r,o,s]=e;return{[n]:t&&r?vn(In(s)):t&&!r?vn(s):!t&&r?In(s):s}}function hy(e){return Un(e)}function xy(e){return e.reduce((t,n)=>m.HasPropertyKey(n,or)||m.HasPropertyKey(n,uo)||m.HasPropertyKey(n,cn)?[t[0],f.Assign(t[1],n)]:[f.Assign(t[0],n),t[1]],[{},{}])}function yy(e){return xy(e[1])}function by(e){let[t,n]=e,r=m.IsEqual(m.Keys(n).length,0)?{}:{patternProperties:n};return W(t,r)}function wy(e){return m.IsEqual(e.length,5)?vn(In(e[4])):m.IsEqual(e.length,3)?e[2]:m.IsEqual(e.length,4)?m.IsEqual(e[2],"readonly")?vn(e[3]):In(e[3]):Lr()}function Iy(e){if(!m.IsArray(e)||!m.IsEqual(e.length,3))return e;let[t,n,r]=e;return t&&r?vn(In(n)):t&&!r?vn(n):!t&&r?In(n):n}function $y(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function ky(e){return Un(e)}function Ty(e){return je(e[1])}function vy(e){return vn(In(e[4]))}function Ey(e){return vn(e[3])}function Sy(e){return In(e[3])}function Py(e){return e[2]}function Ry(e){return m.IsEqual(e.length,2)?Or(e[1]):m.IsEqual(e.length,1)?e[0]:Lr()}function Ay(e){return Un(e)}function My(e){return wn(e[1],e[4])}function Oy(e){return bn(e[2],e[5])}function hx(e,t){return m.IsEqual(e,"remove")?_h(t):m.IsEqual(e,"add")?vn(t):t}function Cy(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 xx(e,t){return m.IsEqual(e,"remove")?Uh(t):m.IsEqual(e,"add")?In(t):t}function Ly(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 Fy(e){return m.IsEqual(e.length,2)?[e[1]]:[]}function jy(e){return m.IsArray(e[6])&&m.IsEqual(e[6].length,1)?ks(fs(e[3]),e[5],e[6][0],hx(e[1],xx(e[8],e[10]))):ks(fs(e[3]),e[5],qn(e[3]),hx(e[1],xx(e[8],e[10])))}function Dy(e){return qn(e)}function _y(e){return BigInt(e)}function Ny(e){return parseFloat(e)}function qy(e){return m.IsEqual(e,"true")}function Uy(e){return null}function Ky(e){return{[e[0]]:e[2]}}function Gy(e){return Un(e)}function HM(e){return e.reduce((t,n)=>f.Assign(t,n),{})}function Wy(e){return HM(e[1])}function By(e){return Un(e)}function zy(e){return e[1]}function Hy(e){return ds()}function Vy(e){return Yt()}function Jy(e){return Ct()}function Yy(e){return Rr()}function Xy(e){return ge()}function Zy(e){return se(e)}function Qy(e){return X(e[1])}function eb(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function tb(e){return[e[0],...e[1]]}function nb(e){return e[1]}function rb(e){return Un(e)}function ob(e){return m.IsEqual(e.length,2)?e[1]:[]}function sb(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,Ts(n,r,s))}}function ib(e){let t=e[2],[n,r]=e[3],o=m.IsEqual(m.Keys(r).length,0)?{}:{patternProperties:r};return{[e[1]]:Ts(t,n,o)}}function ab(e){return{[e[1]]:Xn(e[2],e[4])}}function ub(e){return{[e[1]]:e[3]}}function mb(e){return null}function cb(e){return Un(e)}function pb(e){return e[1]}function lb(e){let[t,n]=[e[0],e[1]];return hb(f.Assign(t,xy(n)[0]))}var db=u(()=>{S();O();da();xo()});var Kn=u(()=>{Qr()});function Ps(e){return ue(e.length,2)}function ne(e,t,n){return Ps(e)?t(e[0],e[1]):n()}var Lt=u(()=>{Kn()});function YM(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=YM(e[n],t);if(Ps(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 xb,Bc,zc,yo,yb,bo,ir,Ca,bb,La,ct=u(()=>{xb=[...Wc(97,122),...Wc(65,90)],Bc="0",zc=Wc(49,57),yo=[Bc,...zc],yb=" ",bo=`
15
+ `,ir="_",Ca=".",bb="$",La="-"});function $b(e){let t=e.indexOf(ZM);return ue(t,-1)?"":e.slice(t+2)}function kb(e){let t=e.indexOf(bo);return ue(t,-1)?"":e.slice(t)}function QM(e){return e.replace(/^[ \t\r\f\v]+/,"")}function Fa(e){let t=QM(e);return t.startsWith(Ib)?Fa($b(t.slice(2))):t.startsWith(wb)?Fa(kb(t.slice(2))):t}function Ze(e){let t=e.trimStart();return t.startsWith(Ib)?Ze($b(t.slice(2))):t.startsWith(wb)?Ze(kb(t.slice(2))):t}var wb,Ib,ZM,Mn=u(()=>{Kn();ct();wb="//",Ib="/*",ZM="*/"});function ja(e,t){return ne(Se([e],t),(n,r)=>[n,r],()=>["",t])}var Hc=u(()=>{Lt();An()});function eO(e,t){return e.includes(t)}function wo(e,t,n,r=""){return ne(Se(e,n),(o,s)=>eO(t,o)?wo(e,t,s,r):wo(e,t,s,`${r}${o}`),()=>[r,n])}var Vc=u(()=>{Lt();An()});function tO(e){return Se(zc,e)}function rO(e){return wo(nO,[ir],e)}function oO(e){return ne(Se([Bc],e),(t,n)=>[t,n],()=>ne(tO(e),(t,n)=>ne(rO(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[]))}function Da(e){return oO(Ze(e))}var nO,_a=u(()=>{Lt();Mn();An();Vc();ct();ct();ct();ct();nO=[...yo,ir]});function sO(e){return ja(La,e)}function iO(e){return ne(sO(e),(t,n)=>ne(Da(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Tb(e){return iO(Ze(e))}var Jc=u(()=>{Lt();Mn();Hc();ct();_a()});function aO(e){return ne(Tb(e),(t,n)=>ne(Se(["n"],n),(r,o)=>[`${t}`,o],()=>[]),()=>[])}function Yc(e){return aO(e)}var vb=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,Fa(t)):e.startsWith(yb)?Xc(e,t):Xc(e,Ze(t))}var Eb=u(()=>{Kn();Mn();Mn();An();ct();ct()});function uO(e){return Se(Sb,e)}function Pb(e,t=""){return ne(Se(mO,e),(n,r)=>Pb(r,`${t}${n}`),()=>[t,e])}function cO(e){return ne(uO(e),(t,n)=>ne(Pb(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Ae(e){return cO(Ze(e))}var Sb,mO,Rb=u(()=>{Lt();Mn();An();ct();ct();ct();ct();Sb=[...xb,ir,bb];mO=[...Sb,...yo]});function lO(e){return Ps(Se([Ca],e))}function Ab(e){return ne(wo(pO,[ir],e),(t,n)=>ue(t,"")?[]:[t,n],()=>[])}function dO(e){return ne(Se([Ca],e),(t,n)=>ne(Ab(n),(r,o)=>[`0${t}${r}`,o],()=>[]),()=>[])}function fO(e){return ne(Da(e),(t,n)=>ne(Se([Ca],n),(r,o)=>ne(Ab(o),(s,i)=>[`${t}${r}${s}`,i],()=>[`${t}`,o]),()=>[`${t}`,n]),()=>[])}function gO(e){return lO(e)?dO(e):fO(e)}function Mb(e){return gO(Ze(e))}var pO,Zc=u(()=>{Kn();Lt();Mn();An();Vc();ct();ct();_a();pO=[...yo,ir]});function hO(e){return ja(La,e)}function xO(e){return ne(hO(e),(t,n)=>ne(Mb(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function Na(e){return xO(Ze(e))}var Ob=u(()=>{Lt();Mn();Hc();ct();Zc()});var Cb=u(()=>{Kn()});function yO(e){return ue(e,"")?[]:[e.slice(0,1),e.slice(1)]}function Lb(e,t){return Mi(e,(n,r)=>t.startsWith(n)?!0:Lb(r,t),()=>!1)}function ar(e,t,n=""){return ne(yO(t),(r,o)=>Lb(e,t)?[n,t]:ar(e,o,`${n}${r}`),()=>[])}var qa=u(()=>{Lt();Kn()});function bO(e,t,n){return ne(Se([e],n),(r,o)=>ne(ar([t],o),(s,i)=>ne(Se([t],i),(c,p)=>[`${s}`,p],()=>[]),()=>[]),()=>[])}function wO(e,t,n){return ne(Se([e],n),(r,o)=>ne(ar([bo,t],o),(s,i)=>ne(Se([t],i),(c,p)=>[`${s}`,p],()=>[]),()=>[]),()=>[])}function Fb(e,t,n,r){return n?bO(e,t,Ze(r)):wO(e,t,Ze(r))}var Qc=u(()=>{Lt();Mn();ct();An();qa()});function IO(e,t){return Se(e,t)}function $O(e,t){return Fb(e,e,!1,t)}function kO(e,t){return ne(IO(e,t),(n,r)=>$O(n,`${n}${r}`),()=>[])}function Ua(e,t){return kO(e,Ze(t))}var jb=u(()=>{Lt();An();Mn();Qc()});function Db(e,t){return ne(ar(e,t),(n,r)=>ue(n,"")?[]:[n,r],()=>[])}var _b=u(()=>{Kn();Lt();qa()});var Nb=u(()=>{vb();Eb();Rb();Jc();Ob();Cb();Qc();jb();_a();Zc();_b();qa()});var a,vO,EO,SO,PO,Kb,Gb,RO,np,Wb,AO,MO,OO,Bb,zb,Hb,CO,LO,FO,Vb,jO,DO,_O,NO,qO,Jb,UO,KO,GO,ep,Yb,rp,WO,BO,zO,HO,VO,JO,YO,Xb,XO,ZO,QO,e0,Zb,Qb,ew,tw,Ka,t0,n0,r0,o0,me,s0,i0,a0,u0,nw,rw,ow,sw,Ga,iw,m0,op,c0,p0,qb,aw,uw,l0,d0,f0,g0,h0,x0,Ub,mw,cw,pw,y0,b0,w0,I0,$0,k0,T0,v0,E0,S0,P0,R0,A0,lw,dw,M0,fw,gw,O0,C0,sp,L0,F0,j0,D0,_0,N0,q0,U0,hw,tp,ip,Th,xw,K0,yw,G0,W0,B0,z0,H0,bw,ww,V0,ap,J0,Iw,Vi=u(()=>{db();Nb();a=(e,t,n=()=>[])=>e.length===2?t(e):n(),vO=e=>a(a(Ae(e),([t,n])=>a(h("extends",n),([r,o])=>a(me(o),([s,i])=>a(h("=",i),([c,p])=>a(me(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[bx(t),n]),EO=e=>a(a(Ae(e),([t,n])=>a(h("extends",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[wx(t),n]),SO=e=>a(a(Ae(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ix(t),n]),PO=e=>a(Ae(e),([t,n])=>[$x(t),n]),Kb=e=>a(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],()=>[])))),([t,n])=>[t,n]),Gb=(e,t=[])=>a(a(h(",",e),([n,r])=>a(Kb(r),([o,s])=>[[n,o],s])),([n,r])=>Gb(r,[...t,n]),()=>[t,e]),RO=e=>a(a(a(Kb(e),([t,n])=>a(Gb(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])=>[kx(t),n]),np=e=>a(a(h("<",e),([t,n])=>a(RO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Tx(t),n]),Wb=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>Wb(r,[...t,n]),()=>[t,e]),AO=e=>a(a(a(me(e),([t,n])=>a(Wb(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])=>[vx(t),n]),MO=e=>a(a(h("<",e),([t,n])=>a(AO(n),([r,o])=>a(h(">",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ex(t),n]),OO=e=>a(a(Ae(e),([t,n])=>a(MO(n),([r,o])=>[[t,r],o])),([t,n])=>[Sx(t),n]),Bb=e=>a(a(a(h(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Px(t),n]),zb=e=>a(h("string",e),([t,n])=>[Rx(t),n]),Hb=e=>a(h("number",e),([t,n])=>[Ax(t),n]),CO=e=>a(h("boolean",e),([t,n])=>[Mx(t),n]),LO=e=>a(h("undefined",e),([t,n])=>[Ox(t),n]),FO=e=>a(h("null",e),([t,n])=>[Cx(t),n]),Vb=e=>a(h("integer",e),([t,n])=>[Lx(t),n]),jO=e=>a(h("bigint",e),([t,n])=>[Fx(t),n]),DO=e=>a(h("unknown",e),([t,n])=>[jx(t),n]),_O=e=>a(h("any",e),([t,n])=>[Dx(t),n]),NO=e=>a(h("object",e),([t,n])=>[_x(t),n]),qO=e=>a(h("never",e),([t,n])=>[Nx(t),n]),Jb=e=>a(h("symbol",e),([t,n])=>[qx(t),n]),UO=e=>a(h("void",e),([t,n])=>[Ux(t),n]),KO=e=>a(h("this",e),([t,n])=>[Kx(t),n]),GO=e=>a(a(h("${",e),([t,n])=>a(me(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Hx(t),n]),ep=e=>a(ar(["${","`"],e),([t,n])=>[Vx(t),n]),Yb=e=>a(a(a(ep(e),([t,n])=>a(GO(n),([r,o])=>a(Yb(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])=>[Jx(t),n]),rp=e=>a(a(h("`",e),([t,n])=>a(Yb(n),([r,o])=>a(h("`",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Yx(t),n]),WO=e=>a(rp(e),([t,n])=>[Xx(t),n]),BO=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),([d,b])=>a(me(b),([I,P])=>[[t,r,s,c,d,I],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]),zO=e=>a(Yc(e),([t,n])=>[Gx(t),n]),HO=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[Wx(t),n]),VO=e=>a(Na(e),([t,n])=>[Bx(t),n]),JO=e=>a(Ua(["'",'"'],e),([t,n])=>[zx(t),n]),YO=e=>a(a(a(h("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Qx(t),n]),Xb=(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])=>Xb(r,[...t,n]),()=>[t,e]),XO=e=>a(Xb(e),([t,n])=>[ey(t),n]),ZO=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),([d,b])=>a(me(b),([I,P])=>[[t,r,s,c,d,I],P])))))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ty(t),n]),QO=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(zb(e),([t,n])=>[t,n],()=>a(Hb(e),([t,n])=>[t,n],()=>a(CO(e),([t,n])=>[t,n],()=>a(LO(e),([t,n])=>[t,n],()=>a(FO(e),([t,n])=>[t,n],()=>a(Vb(e),([t,n])=>[t,n],()=>a(jO(e),([t,n])=>[t,n],()=>a(DO(e),([t,n])=>[t,n],()=>a(_O(e),([t,n])=>[t,n],()=>a(NO(e),([t,n])=>[t,n],()=>a(qO(e),([t,n])=>[t,n],()=>a(Jb(e),([t,n])=>[t,n],()=>a(UO(e),([t,n])=>[t,n],()=>a(KO(e),([t,n])=>[t,n],()=>a(zO(e),([t,n])=>[t,n],()=>a(HO(e),([t,n])=>[t,n],()=>a(VO(e),([t,n])=>[t,n],()=>a(JO(e),([t,n])=>[t,n],()=>a(WO(e),([t,n])=>[t,n],()=>a(BO(e),([t,n])=>[t,n],()=>a(c0(e),([t,n])=>[t,n],()=>a(d0(e),([t,n])=>[t,n],()=>a(b0(e),([t,n])=>[t,n],()=>a(y0(e),([t,n])=>[t,n],()=>a(k0(e),([t,n])=>[t,n],()=>a(OO(e),([t,n])=>[t,n],()=>a(T0(e),([t,n])=>[t,n],()=>[])))))))))))))))))))))))))))),([t,n])=>[ny(t),n]),e0=e=>a(a(a(h("with",e),([t,n])=>a(fw(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ry(t),n]),Zb=e=>a(a(YO(e),([t,n])=>a(QO(n),([r,o])=>a(XO(o),([s,i])=>a(ZO(i),([c,p])=>a(e0(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[oy(t),n]),Qb=e=>a(a(a(h("&",e),([t,n])=>a(Zb(n),([r,o])=>a(Qb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),ew=e=>a(a(Zb(e),([t,n])=>a(Qb(n),([r,o])=>[[t,r],o])),([t,n])=>[sy(t),n]),tw=e=>a(a(a(h("|",e),([t,n])=>a(ew(n),([r,o])=>a(tw(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Ka=e=>a(a(ew(e),([t,n])=>a(tw(n),([r,o])=>[[t,r],o])),([t,n])=>[iy(t),n]),t0=e=>a(a(h("readonly",e),([t,n])=>a(Ka(n),([r,o])=>[[t,r],o])),([t,n])=>[ay(t),n]),n0=e=>a(a(h("|",e),([t,n])=>a(Ka(n),([r,o])=>[[t,r],o])),([t,n])=>[uy(t),n]),r0=e=>a(a(np(e),([t,n])=>a(h("=",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[my(t),n]),o0=e=>a(a(a(h("infer",e),([t,n])=>a(Ae(n),([r,o])=>a(h("extends",o),([s,i])=>a(Ka(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[t,n],()=>a(a(h("infer",e),([t,n])=>a(Ae(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>[])),([t,n])=>[cy(t),n]),me=e=>a(a(o0(e),([t,n])=>[t,n],()=>a(n0(e),([t,n])=>[t,n],()=>a(t0(e),([t,n])=>[t,n],()=>a(Ka(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),s0=e=>a(Na(e),([t,n])=>[py(t),n]),i0=e=>a(Ae(e),([t,n])=>[t,n]),a0=e=>a(Ua(["'",'"'],e),([t,n])=>[t,n]),u0=e=>a(a(h("[",e),([t,n])=>a(Ae(n),([r,o])=>a(h(":",o),([s,i])=>a(a(Vb(i),([c,p])=>[c,p],()=>a(Hb(i),([c,p])=>[c,p],()=>a(zb(i),([c,p])=>[c,p],()=>a(Jb(i),([c,p])=>[c,p],()=>[])))),([c,p])=>a(h("]",p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[ly(t),n]),nw=e=>a(a(s0(e),([t,n])=>[t,n],()=>a(i0(e),([t,n])=>[t,n],()=>a(a0(e),([t,n])=>[t,n],()=>a(u0(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),rw=e=>a(a(a(h("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[dy(t),n]),ow=e=>a(a(a(h("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[fy(t),n]),sw=e=>a(a(rw(e),([t,n])=>a(nw(n),([r,o])=>a(ow(o),([s,i])=>a(h(":",i),([c,p])=>a(me(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[gy(t),n]),Ga=e=>a(a(a(h(",",e),([t,n])=>a(h(`
15
16
  `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(h(";",e),([t,n])=>a(h(`
16
17
  `,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]),nw=(e,t=[])=>a(a(Ga(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(Ga(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ly(t),n]),op=e=>a(a(h("{",e),([t,n])=>a(e0(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[fy(t),n]),t0=e=>a(op(e),([t,n])=>[gy(t),n]),n0=e=>a(a(a(Ae(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(Ae(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(Ae(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(Ae(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[hy(t),n]),jb=e=>a(a(n0(e),([t,n])=>[t,n],()=>a(a(Qb(e),([t,n])=>a(me(n),([r,o])=>a(ew(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])),([t,n])=>[xy(t),n]),rw=e=>a(a(a(h("...",e),([t,n])=>a(jb(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(jb(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[yy(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]),r0=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])=>[by(t),n]),o0=e=>a(a(h("[",e),([t,n])=>a(r0(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[wy(t),n]),s0=e=>a(a(Ae(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])=>[Iy(t),n]),i0=e=>a(a(Ae(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])=>[$y(t),n]),a0=e=>a(a(Ae(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])=>[ky(t),n]),u0=e=>a(a(Ae(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ty(t),n]),Db=e=>a(a(s0(e),([t,n])=>[t,n],()=>a(i0(e),([t,n])=>[t,n],()=>a(a0(e),([t,n])=>[t,n],()=>a(u0(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),sw=e=>a(a(a(h("...",e),([t,n])=>a(Db(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(Db(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[vy(t),n]),iw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(sw(r),([o,s])=>[[n,o],s])),([n,r])=>iw(r,[...t,n]),()=>[t,e]),aw=e=>a(a(a(sw(e),([t,n])=>a(iw(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])=>[Ey(t),n]),m0=e=>a(a(h("(",e),([t,n])=>a(aw(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])=>[Sy(t),n]),c0=e=>a(a(h("new",e),([t,n])=>a(h("(",n),([r,o])=>a(aw(o),([s,i])=>a(h(")",i),([c,p])=>a(h("=>",p),([f,w])=>a(me(w),([I,P])=>[[t,r,s,c,f,I],P])))))),([t,n])=>[Py(t),n]),p0=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])=>[Ry(t),n]),l0=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])=>[Ay(t),n]),d0=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])=>[My(t),n]),f0=e=>a(a(h("{",e),([t,n])=>a(p0(n),([r,o])=>a(h("[",o),([s,i])=>a(Ae(i),([c,p])=>a(h("in",p),([f,w])=>a(me(w),([I,P])=>a(d0(P),([A,C])=>a(h("]",C),([U,z])=>a(l0(z),([G,ee])=>a(h(":",ee),([ye,De])=>a(me(De),([Qe,xe])=>a(Ub(xe),([ie,v])=>a(h("}",v),([He,Gt])=>[[t,r,s,c,f,I,A,U,G,ye,Qe,ie,He],Gt]))))))))))))),([t,n])=>[Oy(t),n]),g0=e=>a(Ae(e),([t,n])=>[Cy(t),n]),h0=e=>a(Yc(e),([t,n])=>[Ly(t),n]),x0=e=>a(Na(e),([t,n])=>[Fy(t),n]),y0=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[jy(t),n]),b0=e=>a(Ua(['"',"'"],e),([t,n])=>[t,n]),w0=e=>a(h("null",e),([t,n])=>[Dy(t),n]),I0=e=>a(h("undefined",e),([t,n])=>[void 0,n]),uw=e=>a(a(Zb(e),([t,n])=>a(h(":",n),([r,o])=>a(sp(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[_y(t),n]),mw=(e,t=[])=>a(a(Ga(e),([n,r])=>a(uw(r),([o,s])=>[[n,o],s])),([n,r])=>mw(r,[...t,n]),()=>[t,e]),$0=e=>a(a(a(uw(e),([t,n])=>a(mw(n),([r,o])=>a(a(Ga(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]),cw=e=>a(a(h("{",e),([t,n])=>a($0(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[qy(t),n]),pw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(sp(r),([o,s])=>[[n,o],s])),([n,r])=>pw(r,[...t,n]),()=>[t,e]),k0=e=>a(a(a(sp(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])=>[Uy(t),n]),T0=e=>a(a(h("[",e),([t,n])=>a(k0(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ky(t),n]),sp=e=>a(a(h0(e),([t,n])=>[t,n],()=>a(x0(e),([t,n])=>[t,n],()=>a(y0(e),([t,n])=>[t,n],()=>a(b0(e),([t,n])=>[t,n],()=>a(w0(e),([t,n])=>[t,n],()=>a(I0(e),([t,n])=>[t,n],()=>a(cw(e),([t,n])=>[t,n],()=>a(T0(e),([t,n])=>[t,n],()=>[])))))))),([t,n])=>[t,n]),v0=e=>a(h("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[Gy(t),n]),E0=e=>a(h(".*",e),([t,n])=>[Wy(t),n]),S0=e=>a(h("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",e),([t,n])=>[By(t),n]),P0=e=>a(h("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[zy(t),n]),R0=e=>a(h("(?!)",e),([t,n])=>[Hy(t),n]),A0=e=>a(Cb(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[Vy(t),n]),M0=e=>a(a(v0(e),([t,n])=>[t,n],()=>a(E0(e),([t,n])=>[t,n],()=>a(S0(e),([t,n])=>[t,n],()=>a(P0(e),([t,n])=>[t,n],()=>a(R0(e),([t,n])=>[t,n],()=>a(O0(e),([t,n])=>[t,n],()=>a(A0(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),O0=e=>a(a(h("(",e),([t,n])=>a(ip(n),([r,o])=>a(h(")",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Jy(t),n]),lw=e=>a(a(a(tp(e),([t,n])=>a(h("|",n),([r,o])=>a(lw(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])=>[Yy(t),n]),tp=e=>a(a(M0(e),([t,n])=>a(ip(n),([r,o])=>[[t,r],o])),([t,n])=>[Xy(t),n]),ip=e=>a(a(lw(e),([t,n])=>[t,n],()=>a(tp(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),wh=e=>a(a(h("^",e),([t,n])=>a(ip(n),([r,o])=>a(h("$",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Zy(t),n]),dw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>dw(r,[...t,n]),()=>[t,e]),C0=e=>a(a(a(me(e),([t,n])=>a(dw(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])=>[Qy(t),n]),fw=e=>a(a(a(h("extends",e),([t,n])=>a(C0(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[eb(t),n]),L0=e=>a(a(h("interface",e),([t,n])=>a(Ae(n),([r,o])=>a(np(o),([s,i])=>a(fw(i),([c,p])=>a(op(p),([f,w])=>[[t,r,s,c,f],w]))))),([t,n])=>[tb(t),n]),F0=e=>a(a(h("interface",e),([t,n])=>a(Ae(n),([r,o])=>a(fw(o),([s,i])=>a(op(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[nb(t),n]),j0=e=>a(a(h("type",e),([t,n])=>a(Ae(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])=>[rb(t),n]),D0=e=>a(a(h("type",e),([t,n])=>a(Ae(n),([r,o])=>a(h("=",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[ob(t),n]),_0=e=>a(a(a(h("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[sb(t),n]),gw=e=>a(a(a(h(";",e),([t,n])=>a(h(`
18
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),iw=(e,t=[])=>a(a(Ga(e),([n,r])=>a(sw(r),([o,s])=>[[n,o],s])),([n,r])=>iw(r,[...t,n]),()=>[t,e]),m0=e=>a(a(a(sw(e),([t,n])=>a(iw(n),([r,o])=>a(a(Ga(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]),op=e=>a(a(h("{",e),([t,n])=>a(m0(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[yy(t),n]),c0=e=>a(op(e),([t,n])=>[by(t),n]),p0=e=>a(a(a(Ae(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(h("readonly",i),([c,p])=>a(me(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[t,n],()=>a(a(Ae(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(Ae(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(Ae(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[wy(t),n]),qb=e=>a(a(p0(e),([t,n])=>[t,n],()=>a(a(rw(e),([t,n])=>a(me(n),([r,o])=>a(ow(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>[])),([t,n])=>[Iy(t),n]),aw=e=>a(a(a(h("...",e),([t,n])=>a(qb(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(qb(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[$y(t),n]),uw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(aw(r),([o,s])=>[[n,o],s])),([n,r])=>uw(r,[...t,n]),()=>[t,e]),l0=e=>a(a(a(aw(e),([t,n])=>a(uw(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])=>[ky(t),n]),d0=e=>a(a(h("[",e),([t,n])=>a(l0(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ty(t),n]),f0=e=>a(a(Ae(e),([t,n])=>a(h("?",n),([r,o])=>a(h(":",o),([s,i])=>a(h("readonly",i),([c,p])=>a(me(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[vy(t),n]),g0=e=>a(a(Ae(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])=>[Ey(t),n]),h0=e=>a(a(Ae(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])=>[Sy(t),n]),x0=e=>a(a(Ae(e),([t,n])=>a(h(":",n),([r,o])=>a(me(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Py(t),n]),Ub=e=>a(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],()=>[])))),([t,n])=>[t,n]),mw=e=>a(a(a(h("...",e),([t,n])=>a(Ub(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a(a(Ub(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[Ry(t),n]),cw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(mw(r),([o,s])=>[[n,o],s])),([n,r])=>cw(r,[...t,n]),()=>[t,e]),pw=e=>a(a(a(mw(e),([t,n])=>a(cw(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])=>[Ay(t),n]),y0=e=>a(a(h("(",e),([t,n])=>a(pw(n),([r,o])=>a(h(")",o),([s,i])=>a(h("=>",i),([c,p])=>a(me(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[My(t),n]),b0=e=>a(a(h("new",e),([t,n])=>a(h("(",n),([r,o])=>a(pw(o),([s,i])=>a(h(")",i),([c,p])=>a(h("=>",p),([d,b])=>a(me(b),([I,P])=>[[t,r,s,c,d,I],P])))))),([t,n])=>[Oy(t),n]),w0=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])=>[Cy(t),n]),I0=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])=>[Ly(t),n]),$0=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])=>[Fy(t),n]),k0=e=>a(a(h("{",e),([t,n])=>a(w0(n),([r,o])=>a(h("[",o),([s,i])=>a(Ae(i),([c,p])=>a(h("in",p),([d,b])=>a(me(b),([I,P])=>a($0(P),([A,C])=>a(h("]",C),([U,z])=>a(I0(z),([G,ee])=>a(h(":",ee),([ye,De])=>a(me(De),([Qe,xe])=>a(Bb(xe),([ie,v])=>a(h("}",v),([Ve,Gt])=>[[t,r,s,c,d,I,A,U,G,ye,Qe,ie,Ve],Gt]))))))))))))),([t,n])=>[jy(t),n]),T0=e=>a(Ae(e),([t,n])=>[Dy(t),n]),v0=e=>a(Yc(e),([t,n])=>[_y(t),n]),E0=e=>a(Na(e),([t,n])=>[Ny(t),n]),S0=e=>a(a(h("true",e),([t,n])=>[t,n],()=>a(h("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[qy(t),n]),P0=e=>a(Ua(['"',"'"],e),([t,n])=>[t,n]),R0=e=>a(h("null",e),([t,n])=>[Uy(t),n]),A0=e=>a(h("undefined",e),([t,n])=>[void 0,n]),lw=e=>a(a(nw(e),([t,n])=>a(h(":",n),([r,o])=>a(sp(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Ky(t),n]),dw=(e,t=[])=>a(a(Ga(e),([n,r])=>a(lw(r),([o,s])=>[[n,o],s])),([n,r])=>dw(r,[...t,n]),()=>[t,e]),M0=e=>a(a(a(lw(e),([t,n])=>a(dw(n),([r,o])=>a(a(Ga(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Gy(t),n]),fw=e=>a(a(h("{",e),([t,n])=>a(M0(n),([r,o])=>a(h("}",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Wy(t),n]),gw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(sp(r),([o,s])=>[[n,o],s])),([n,r])=>gw(r,[...t,n]),()=>[t,e]),O0=e=>a(a(a(sp(e),([t,n])=>a(gw(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])=>[By(t),n]),C0=e=>a(a(h("[",e),([t,n])=>a(O0(n),([r,o])=>a(h("]",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[zy(t),n]),sp=e=>a(a(v0(e),([t,n])=>[t,n],()=>a(E0(e),([t,n])=>[t,n],()=>a(S0(e),([t,n])=>[t,n],()=>a(P0(e),([t,n])=>[t,n],()=>a(R0(e),([t,n])=>[t,n],()=>a(A0(e),([t,n])=>[t,n],()=>a(fw(e),([t,n])=>[t,n],()=>a(C0(e),([t,n])=>[t,n],()=>[])))))))),([t,n])=>[t,n]),L0=e=>a(h("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[Hy(t),n]),F0=e=>a(h(".*",e),([t,n])=>[Vy(t),n]),j0=e=>a(h("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",e),([t,n])=>[Jy(t),n]),D0=e=>a(h("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[Yy(t),n]),_0=e=>a(h("(?!)",e),([t,n])=>[Xy(t),n]),N0=e=>a(Db(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[Zy(t),n]),q0=e=>a(a(L0(e),([t,n])=>[t,n],()=>a(F0(e),([t,n])=>[t,n],()=>a(j0(e),([t,n])=>[t,n],()=>a(D0(e),([t,n])=>[t,n],()=>a(_0(e),([t,n])=>[t,n],()=>a(U0(e),([t,n])=>[t,n],()=>a(N0(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),U0=e=>a(a(h("(",e),([t,n])=>a(ip(n),([r,o])=>a(h(")",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[Qy(t),n]),hw=e=>a(a(a(tp(e),([t,n])=>a(h("|",n),([r,o])=>a(hw(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])=>[eb(t),n]),tp=e=>a(a(q0(e),([t,n])=>a(ip(n),([r,o])=>[[t,r],o])),([t,n])=>[tb(t),n]),ip=e=>a(a(hw(e),([t,n])=>[t,n],()=>a(tp(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Th=e=>a(a(h("^",e),([t,n])=>a(ip(n),([r,o])=>a(h("$",o),([s,i])=>[[t,r,s],i]))),([t,n])=>[nb(t),n]),xw=(e,t=[])=>a(a(h(",",e),([n,r])=>a(me(r),([o,s])=>[[n,o],s])),([n,r])=>xw(r,[...t,n]),()=>[t,e]),K0=e=>a(a(a(me(e),([t,n])=>a(xw(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])=>[rb(t),n]),yw=e=>a(a(a(h("extends",e),([t,n])=>a(K0(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ob(t),n]),G0=e=>a(a(h("interface",e),([t,n])=>a(Ae(n),([r,o])=>a(np(o),([s,i])=>a(yw(i),([c,p])=>a(op(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[sb(t),n]),W0=e=>a(a(h("interface",e),([t,n])=>a(Ae(n),([r,o])=>a(yw(o),([s,i])=>a(op(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[ib(t),n]),B0=e=>a(a(h("type",e),([t,n])=>a(Ae(n),([r,o])=>a(np(o),([s,i])=>a(h("=",i),([c,p])=>a(me(p),([d,b])=>[[t,r,s,c,d],b]))))),([t,n])=>[ab(t),n]),z0=e=>a(a(h("type",e),([t,n])=>a(Ae(n),([r,o])=>a(h("=",o),([s,i])=>a(me(i),([c,p])=>[[t,r,s,c],p])))),([t,n])=>[ub(t),n]),H0=e=>a(a(a(h("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[mb(t),n]),bw=e=>a(a(a(h(";",e),([t,n])=>a(h(`
18
19
  `,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]),hw=(e,t=[])=>a(a(gw(e),([n,r])=>a(ap(r),([o,s])=>[[n,o],s])),([n,r])=>hw(r,[...t,n]),()=>[t,e]),N0=e=>a(a(a(ap(e),([t,n])=>a(hw(n),([r,o])=>a(a(gw(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ib(t),n]),ap=e=>a(a(_0(e),([t,n])=>a(a(L0(n),([r,o])=>[r,o],()=>a(F0(n),([r,o])=>[r,o],()=>a(j0(n),([r,o])=>[r,o],()=>a(D0(n),([r,o])=>[r,o],()=>[])))),([r,o])=>a(Ub(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[ab(t),n]),q0=e=>a(a(ap(e),([t,n])=>a(N0(n),([r,o])=>[[t,r],o])),([t,n])=>[ub(t),n]),xw=e=>a(a(q0(e),([t,n])=>[t,n],()=>a(VO(e),([t,n])=>[t,n],()=>a(me(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n])});function yw(e){let t=rp(`\`${e}\``);return m.IsEqual(t.length,2)?t[0]:qe()}var up=u(()=>{kn();O();Vi()});function K0(e){return e.join("|")}function G0(e){return e.slice(1,e.length-1)}function W0(e,t,n){return ur(t,`${n}${e}`)}function B0(e,t){return ur(e,`${t}${fh}`)}function z0(e,t){return ur(e,`${t}${Wi}`)}function H0(e,t){return ur(e,`${t}${zi}`)}function V0(e,t){return Rs(X([se("false"),se("true")]),e,t)}function J0(e,t){return ur(e,`${t}${Hi}`)}function Y0(e,t,n){return ur(t,`${n}${G0(e)}`)}function X0(e,t,n){let r=As(e,{});return Rs(r,t,n)}function Z0(e,t,n){let r=bt(e);return Rs(r,t,n)}function bw(e,t,n,r=[]){return m.ShiftLeft(e,(o,s)=>bw(s,t,n,[...r,Rs(o,[],"")]),()=>ur(t,`${n}(${K0(r)})`))}function Rs(e,t,n){return ot(e)?Z0(e.enum,t,n):ht(e)?z0(t,n):le(e)?W0(e.const,t,n):vn(e)?B0(t,n):Jt(e)?V0(t,n):Fe(e)?H0(t,n):yt(e)?J0(t,n):Re(e)?Y0(e.pattern,t,n):Iw(e)?X0(e.parameters[0],t,n):F(e)?bw(e.anyOf,t,n):rg}function ur(e,t){return m.ShiftLeft(e,(n,r)=>Rs(n,r,t),()=>t)}function Q0(e){return`^${ur(e,"")}$`}function ww(e){let t=Q0(e);return Xi(t)}var mp=u(()=>{O();mn();Le();Q();vt();Pr();Xt();xt();En();Qn();Je();Zi();Y();Wa()});function As(e,t){return V(e)?d.Update(ww(e),{},t):fa(e,t)}function $w(e,t,n,r){let o=Ut(e,t,n);return As(o,r)}var Wa=u(()=>{S();vt();mp();q()});function fa(e,t={}){return j("TemplateLiteral",[e],t)}function Iw(e){return _e(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"TemplateLiteral")}function kw(e){return As(e,{})}function eC(e){let t=yw(e);return kw(t)}function Tw(e,t={}){let n=m.IsString(e)?eC(e):kw(e);return d.Update(n,{},t)}function Re(e){return L(e,"TemplateLiteral")}var vt=u(()=>{is();O();J();ce();up();Wa()});var B={};Mt(B,{ExtendsFalse:()=>H,ExtendsTrue:()=>M,ExtendsUnion:()=>cp,IsExtendsFalse:()=>tC,IsExtendsTrue:()=>Ew,IsExtendsTrueLike:()=>Io,IsExtendsUnion:()=>vw,Match:()=>$e});function cp(e){return d.Create({"~kind":"ExtendsUnion"},{inferred:e})}function vw(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 Ew(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 tC(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.IsEqual(e["~kind"],"ExtendsFalse")}function Io(e){return vw(e)||Ew(e)}function $e(e,t,n){return Io(e)?t(e.inferred):n()}var we=u(()=>{O();S()});function nC(e,t,n,r){return $e(ae(e,n,r),o=>M(d.Assign(d.Assign(e,o),{[t]:n})),()=>H())}function rC(e,t){return M(e)}function oC(e,t,n,r,o){return $e(ae(e,t,n),s=>$e(ae(s,t,r),i=>M(i),()=>H()),()=>$e(ae(e,t,o),s=>M(s),()=>H()))}function sC(e,t,n){let r=bt(n);return ae(e,t,r)}function Sw(e,t,n){return m.ShiftLeft(n,(r,o)=>$e(ae(e,t,r),s=>Sw(s,t,o),()=>H()),()=>M(e))}function iC(e,t,n){let r=mt(n);return ae(e,t,r)}function Pw(e,t,n){return m.ShiftLeft(n,(r,o)=>$e(ae(e,t,r),s=>M(s),()=>Pw(e,t,o)),()=>H())}function de(e,t,n){return Ee(n)?rC(e,t):Pe(n)?oC(e,t,n.if,n.then,n.else):ot(n)?sC(e,t,n.enum):Ce(n)?nC(e,n.name,t,n.extends):oe(n)?Sw(e,t,n.allOf):Re(n)?iC(e,t,n.pattern):F(n)?Pw(e,t,n.anyOf):Oe(n)?M(e):H()}var pt=u(()=>{O();S();$t();Ot();mn();Vt();Ne();vt();Q();nt();Pt();we();Y();Y()});function Rw(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?M(e):Oe(n)?M(e):cp(e)}var Aw=u(()=>{Vt();$t();nt();pt();we()});function aC(e,t){let n=vr(e),r=vr(t);return n&&r||!n&&r?!0:!(n&&!r)}function Mw(e,t,n,r){return ke(r)?aC(t,r)?ae(e,n,r.items):H():de(e,t,r)}var Ow=u(()=>{gt();ms();pt();Pt();we()});function Cw(e,t,n){return vn(n)?M(e):de(e,t,n)}var Lw=u(()=>{Pr();pt();we()});function Fw(e,t,n){return Jt(n)?M(e):de(e,t,n)}var jw=u(()=>{Qn();pt();we()});function uC(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():$e(ae(e,s,i),f=>Ms(f,n,o),()=>H())}function mC(e,t,n,r){return m.ShiftLeft(r,(o,s)=>uC(e,t,n,o,s),()=>ut(t)?M(e):H())}function cC(e,t,n){return m.ShiftLeft(t,(r,o)=>mC(e,r,o,n),()=>M(e))}function Ms(e,t,n){return cC(e,t,n)}var pp=u(()=>{O();Vt();Zn();Pt();we()});function Ba(e,t,n){return Pn(n)?M(e):ae(e,t,n)}var lp=u(()=>{Cr();Pt();we()});function Dw(e,t,n,r){return Ee(r)?M(e):Oe(r)?M(e):Ge(r)?$e(Ms(e,t,r.parameters),o=>Ba(o,n,r.instanceType),()=>H()):H()}var _w=u(()=>{$t();Bt();nt();we();pp();lp()});function Nw(e,t,n,r,o){return $e(ae(e,t,o),()=>ae(e,n,o),()=>ae(e,r,o))}var qw=u(()=>{Pt();we()});function Uw(e,t,n){let r=bt(t);return ae(e,r,n)}var Kw=u(()=>{Pt();Y()});function Gw(e,t,n,r){return Ee(r)?M(e):Oe(r)?M(e):We(r)?$e(Ms(e,t,r.parameters),o=>Ba(o,n,r.returnType),()=>H()):H()}var Ww=u(()=>{$t();zt();nt();we();pp();lp()});function Bw(e,t,n){return ht(n)?M(e):Fe(n)?M(e):de(e,t,n)}var zw=u(()=>{En();xt();pt();we()});function Hw(e,t,n){let r=Te(t);return ae(e,r,n)}var Vw=u(()=>{Pt();Os()});function za(e,t,n){return t===n?M(e):H()}function pC(e,t,n){return le(n)?za(e,t,n.const):vn(n)?M(e):de(e,se(t),n)}function lC(e,t,n){return le(n)?za(e,t,n.const):Jt(n)?M(e):de(e,se(t),n)}function dC(e,t,n){return le(n)?za(e,t,n.const):Fe(n)?M(e):de(e,se(t),n)}function fC(e,t,n){return le(n)?za(e,t,n.const):yt(n)?M(e):de(e,se(t),n)}function Jw(e,t,n){return m.IsBigInt(t.const)?pC(e,t.const,n):m.IsBoolean(t.const)?lC(e,t.const,n):m.IsNumber(t.const)?dC(e,t.const,n):m.IsString(t.const)?fC(e,t.const,n):qe()}var Yw=u(()=>{O();yc();Le();Pr();Qn();xt();Xt();pt();we()});function Xw(e,t,n){return Ce(n)?de(e,t,n):M(e)}var Zw=u(()=>{Vt();pt();we()});function Qw(e,t,n){return so(n)?M(e):de(e,t,n)}var eI=u(()=>{io();pt();we()});function tI(e,t,n){return Fe(n)?M(e):de(e,t,n)}var nI=u(()=>{xt();pt();we()});function gC(e,t,n){return ut(t)?ut(n)?M(e):H():M(e)}function hC(e,t,n){return Ce(n)&&un(n.extends)?H():$e(ae(e,t,n),r=>gC(r,t,n),()=>H())}function xC(e,t){return e.reduce((n,r)=>r in t?Io(t[r])?{...n,...t[r].inferred}:qe():qe(),{})}function yC(e,t,n){let r={};for(let i of m.Keys(n))r[i]=i in t?hC({},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=>Io(i)),s=o?xC(m.Keys(r),r):{};return o?M(s):H()}function bC(e,t,n){let r=yC(e,t,n);return Io(r)?M(d.Assign(e,r.inferred)):H()}function wC(e,t,n){return bC(e,t,n)}function IC(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 rI(e,t,n,r){return m.ShiftLeft(t,(o,s)=>$e(ae({},e[o],n),i=>rI(e,s,n,IC(r,i)),()=>H()),()=>M(r))}function $C(e,t,n,r){let o=m.Keys(t);return rI(t,o,r,e)}function oI(e,t,n){return it(n)?$C(e,t,Qt(n),wt(n)):pe(n)?wC(e,t,n.properties):de(e,W(t),n)}var sI=u(()=>{kn();S();O();Zn();Vt();Je();fe();Xe();Q();Pt();pt();we()});function kC(e,t){return m.IsEqual(m.Keys(t).length,0)?M(e):H()}function TC(e,t,n,r,o){return ae(e,n,o)}function iI(e,t,n,r){return it(r)?TC(e,ua(t),n,ua(Qt(r)),wt(r)):pe(r)?kC(e,r.properties):Ee(r)?M(e):Oe(r)?M(e):H()}var aI=u(()=>{O();$t();nt();fe();Xe();Pt();we()});function uI(e,t,n){return yt(n)?M(e):de(e,t,n)}var mI=u(()=>{Xt();pt();we()});function cI(e,t,n){return er(n)?M(e):de(e,t,n)}var pI=u(()=>{Ar();pt();we()});function lI(e,t,n){let r=mt(t);return ae(e,r,n)}var dI=u(()=>{Pt();Y()});function dp(e,t){return d.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function Cs(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 Ha(e){return Ce(e)?dp(e.name,e.extends):void 0}function gp(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>$e(ae({},r,t),()=>gp(o,t,[...n,r]),()=>{}),()=>n)}function fI(e,t,n,r){let o=gp(n,r);return m.IsArray(o)?M(d.Assign(e,{[t]:je(o)})):H()}function Va(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 vC(e){return[...e].reverse()}function xp(e,t){return t?vC(e):e}function EC(e){let t=e.length>0?e[0]:void 0,n=_e(t)?fp(t):void 0;return _e(n)}function SC(e,t,n,r,o,s){return $e(ae(e,n,o),i=>gI(i,t,r,s),()=>H())}function PC(e,t,n,r,o){let s=fp(r);return Cs(s)?fI(e,s.name,xp(n,t),s.type):m.ShiftLeft(n,(i,c)=>SC(e,t,i,c,r,o),()=>H())}function RC(e,t,n,r){return m.ShiftLeft(r,(o,s)=>PC(e,t,n,o,s),()=>m.IsEqual(n.length,0)?M(e):H())}function gI(e,t,n,r){return RC(e,t,n,r)}function AC(e,t,n){let r=mr(e,Ie([],[]),n),o=EC(r);return gI(e,o,xp(t,o),xp(r,o))}function hI(e,t,n){let r=Ha(n);return Cs(r)?Va(e,r.name,t,r.type):m.ShiftLeft(t,(o,s)=>$e(ae(e,o,n),i=>hI(i,s,n),()=>H()),()=>M(e))}function xI(e,t,n){let r=mr(e,Ie([],[]),t);return be(n)?AC(e,r,n.items):ke(n)?hI(e,r,n.items):de(e,je(r),n)}var yI=u(()=>{O();J();gt();Ue();Pt();pt();we();q();q();hp()});function bI(e,t,n){return Pn(n)?M(e):fo(n)?M(e):de(e,t,n)}var wI=u(()=>{go();Cr();pt();we()});function II(e,t,n){return m.ShiftLeft(n,(r,o)=>$e(ae(e,t,r),s=>M(s),()=>II(e,t,o)),()=>H())}function yp(e,t,n){return m.ShiftLeft(t,(r,o)=>$e(II(e,r,n),s=>yp(s,o,n),()=>H()),()=>M(e))}function $I(e,t,n){let r=Ha(n);return Cs(r)?Va(e,r.name,t,r.type):F(n)?yp(e,t,n.anyOf):yp(e,t,[n])}var kI=u(()=>{O();Q();Pt();we();hp()});function TI(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?M(e):Oe(n)?M(e):H()}var vI=u(()=>{$t();nt();Vt();pt();we()});function EI(e,t,n){return Pn(n)?M(e):de(e,t,n)}var SI=u(()=>{Cr();pt();we()});function ae(e,t,n){return Ee(t)?Rw(e,t,n):ke(t)?Mw(e,t,t.items,n):vn(t)?Cw(e,t,n):Jt(t)?Fw(e,t,n):Ge(t)?Dw(e,t.parameters,t.instanceType,n):Pe(t)?Nw(e,t.if,t.then,t.else,n):ot(t)?Uw(e,t.enum,n):We(t)?Gw(e,t.parameters,t.returnType,n):ht(t)?Bw(e,t,n):oe(t)?Hw(e,t.allOf,n):le(t)?Jw(e,t,n):un(t)?Xw(e,t,n):so(t)?Qw(e,t,n):Fe(t)?tI(e,t,n):pe(t)?oI(e,t.properties,n):it(t)?iI(e,Qt(t),wt(t),n):yt(t)?uI(e,t,n):er(t)?cI(e,t,n):Re(t)?lI(e,t.pattern,n):be(t)?xI(e,t.items,n):fo(t)?bI(e,t,n):F(t)?$I(e,t.anyOf,n):Oe(t)?TI(e,t,n):Pn(t)?EI(e,t,n):H()}var Pt=u(()=>{Aw();Ow();Lw();jw();_w();qw();Kw();Ww();zw();Vw();Yw();Zw();eI();nI();sI();aI();mI();pI();dI();yI();wI();kI();vI();SI();$t();gt();Pr();Qn();Bt();Ot();mn();zt();En();Ne();Le();Je();io();xt();fe();Xe();Xt();Ar();vt();Ue();go();nt();Q();Cr();we()});function MC(e,t){return Te([...e,W(t)])}function bp(e,t,n){return V(e)?d.Update(MC(e,t),{},n):Ts(e,t,n)}function PI(e,t,n,r,o){let s=Ut(e,t,n),i=Ls(e,t,r);return bp(s,i,o)}var Ja=u(()=>{S();fe();Y();xo();q();q();q()});function Ts(e,t,n={}){return j("Interface",[e,t],n)}function $o(e){return _e(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"Interface")}function RI(e,t,n={}){return bp(e,t,n)}var Fs=u(()=>{O();J();ce();Ja()});function OC(e,t,n){return e.includes(n)?!0:js([...e,n],t,t[n])}function AI(e,t,n){let r=Di(n);return Fr(e,t,r)}function Fr(e,t,n){return m.ShiftLeft(n,(r,o)=>js(e,t,r)?!0:Fr(e,t,o),()=>!1)}function js(e,t,n){return Be(n)?OC(e,t,n.$ref):ke(n)?js(e,t,n.items):Ge(n)?Fr(e,t,[...n.parameters,n.instanceType]):We(n)?Fr(e,t,[...n.parameters,n.returnType]):$o(n)?AI(e,t,n.parameters[1]):oe(n)?Fr(e,t,n.allOf):pe(n)?AI(e,t,n.properties):F(n)?Fr(e,t,n.anyOf):be(n)?Fr(e,t,n.items):it(n)?js(e,t,wt(n)):!1}function MI(e,t,n){return js(e,t,n)}var wp=u(()=>{O();gt();Bt();zt();Ne();fe();kr();Xe();Ue();Q();Ht();Fs()});function CC(e,t){return t.reduce((n,r)=>MI([r],e,e[r])?[...n,r]:n,[])}function OI(e){let t=ji(e);return CC(e,t)}var Ip=u(()=>{kr();wp()});function LC(e,t,n){return n.includes(t)?n:t in e?Ds(e,e[t],[...n,t]):qe()}function CI(e,t,n){let r=Di(t);return ko(e,r,n)}function ko(e,t,n){return t.reduce((r,o)=>Ds(e,o,r),n)}function Ds(e,t,n){return Be(t)?LC(e,t.$ref,n):ke(t)?Ds(e,t.items,n):Ge(t)?ko(e,[...t.parameters,t.instanceType],n):We(t)?ko(e,[...t.parameters,t.returnType],n):$o(t)?CI(e,t.parameters[1],n):oe(t)?ko(e,t.allOf,n):pe(t)?CI(e,t.properties,n):F(t)?ko(e,t.anyOf,n):be(t)?ko(e,t.items,n):it(t)?Ds(e,wt(t),n):n}function LI(e,t,n){return Ds(e,n,[t])}var $p=u(()=>{kn();gt();Bt();zt();Ne();fe();kr();Xe();Ue();Q();Ht();Fs()});function FC(e){return to()}function jC(e){return m.Keys(e).reduce((t,n)=>({...t,[n]:jr(e[n])}),{})}function _s(e){return e.reduce((t,n)=>[...t,jr(n)],[])}function jr(e){return Be(e)?FC(e.$ref):ke(e)?qt(jr(e.items),Fi(e)):Ge(e)?yn(_s(e.parameters),jr(e.instanceType)):We(e)?bn(_s(e.parameters),jr(e.returnType)):oe(e)?Tt(_s(e.allOf)):pe(e)?W(jC(e.properties)):it(e)?aa(co(e),jr(wt(e))):F(e)?X(_s(e.anyOf)):be(e)?je(_s(e.items)):e}function DC(e,t){return t in e?jr(e[t]):Ye()}function FI(e){return DC(e.$defs,e.$ref)}var jI=u(()=>{O();$t();gt();Bt();zt();Ne();fe();Xe();Ht();Ue();Q();nt()});function _C(e,t,n){let r=Ut(e,Ie([],[]),t),o=Ls({},Ie([],[]),n);return Te([...r,W(o)])}function NC(e,t){return m.Keys(e).filter(r=>t.includes(r)).reduce((r,o)=>{let s=e[o],i=$o(s)?_C(e,s.parameters[0],s.parameters[1]):s;return{...r,[o]:i}},{})}function DI(e,t,n){let r=LI(e,t,n),o=NC(e,r);return In(o,t)}var kp=u(()=>{O();kt();fe();$p();xo();q();q();q();Y()});function _I(e,t){return t in e?Be(e[t])?_I(e,e[t].$ref):e[t]:ge()}function Mn(e,t){return _I(e,t)}var Dr=u(()=>{Je();Ht()});var Tp=u(()=>{Ip();wp();$p();jI();kp();Dr()});function NI(e){return rt(e)?FI(e):_i(e)?Ye():e}function st(e,t,n){let r=NI(t),o=NI(n);return ae(e,r,o)}var qI=u(()=>{kt();nt();Ni();Pt();Tp()});var Sn=u(()=>{qI();we()});function bs(e,t){let n=[st({},e,t),st({},t,e)];return B.IsExtendsTrueLike(n[0])&&B.IsExtendsTrueLike(n[1])?xs:B.IsExtendsTrueLike(n[0])&&B.IsExtendsFalse(n[1])?ys:B.IsExtendsFalse(n[0])&&B.IsExtendsTrueLike(n[1])?na:Ya}var xs,Ya,ys,na,ws=u(()=>{Sn();xs=0,Ya=1,ys=2,na=3});function vp(e,t,n=[],r=t){return m.ShiftLeft(t,(o,s)=>{let i=bs(e,o);return m.IsEqual(i,ys)||m.IsEqual(i,xs)?r:m.IsEqual(i,Ya)?vp(e,s,[...n,o],r):vp(e,s,n,r)},()=>[...n,e])}function qC(e,t,n){let r=Zt(e);return Ee(r)?[r]:Oe(r)?[r]:un(r)?Xa(t,n):pe(r)?Xa(t,[...n,r]):Xa(t,vp(r,n))}function Xa(e,t=[]){return m.ShiftLeft(e,(n,r)=>qC(n,r,t),()=>t)}function qc(e){let t=Xa(e);return mo(t)}var Uc=u(()=>{O();$t();Je();fe();nt();ws();oa();Y()});function Ep(e,t){return d.Update(Zt(e),{},t)}function UI(e,t,n,r){let o=T(e,t,n);return Ep(o,r)}var Za=u(()=>{S();q();Y()});var Os=u(()=>{Uc();ws();jc();_c();Y();oa();Za();Dc()});function Ns(e,t=[]){return Yn(e)&&m.IsEqual(e.action,"Conditional")?Be(e.parameters[0])?Ns(e.parameters[2],Ns(e.parameters[3],[...t,e.parameters[0].$ref])):Ns(e.parameters[2],Ns(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 UC(e,t){return e.reduce((n,r)=>[...n,t.includes(r.name)],[])}function WI(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>m.ShiftLeft(t,(s,i)=>WI(o,i,[...n,[s,r]]),()=>n),()=>n)}function KC(e){return Re(e)?mt(e.pattern):ot(e)?bt(e.enum):e}function GC(e){let t=KC(e);return F(t)?[...t.anyOf]:[t]}function WC(e,t){return e.reduce((n,r)=>[...n,[...r,t]],[])}function KI(e,t){return t.reduce((n,r)=>[...n,...WC(e,r)],[])}function GI(e){return e.reduce((t,n)=>m.IsEqual(n[0],!0)?KI(t,GC(n[1])):KI(t,[n[1]]),[[]])}function BI(e,t,n){let r=Ns(n),o=UC(e,r),s=WI(t,o);return Yn(n)&&m.IsEqual(n.action,"Conditional")||Yn(n)&&m.IsEqual(n.action,"Mapped")?GI(s):[t]}var zI=u(()=>{O();Q();ce();mn();vt();Ht();Y();Y()});function BC(){return["(not-resolvable)",ge()]}function zC(){return["(not-generic)",ge()]}function HC(e,t,n){return[e,Xn(t,n)]}function VC(e,t,n){return t in e?HI(e,t,e[t],n):BC()}function HI(e,t,n,r){return eo(n)?HC(t,n.parameters,n.expression):Be(n)?VC(e,n.$ref,r):zC()}function VI(e,t,n){return HI(e,"(anonymous)",t,n)}var JI=u(()=>{rs();Ht();Je()});function JC(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 YI(e,t,n,r,o){let s=T(e,t,o);return JC(n,s,r),d.Assign(e,{[n]:s})}function YC(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(YI(e,t,n.name,s,c),t,r,p),()=>Sp(YI(e,t,n.name,s,i),t,r,[]))}function Sp(e,t,n,r){return m.ShiftLeft(n,(o,s)=>YC(e,t,o,s,r),()=>e)}function XI(e,t,n,r){return Sp(e,t,n,r)}var ZI=u(()=>{O();S();q();Sn();Vt();ho()});function XC(){if(!m.IsLessThan(Rp,an.Get().maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite")}function ZC(){XC(),Rp++,Pp++}function QC(){Pp--,m.IsEqual(Pp,0)&&(Rp=0)}function eL(e){return m.IsGreaterThan(e.callstack.length,0)?e.callstack[e.callstack.length-1]:""}function tL(e,t){return m.IsEqual(eL(e),t)}function nL(e,t,n,r,o,s){ZC();try{let i=XI(e,t,r,s),c=T(i,Ie([...t.callstack,n.$ref],t.visited),o);return T(i,Ie([],[]),c)}finally{QC()}}function rL(e,t,n,r,o,s){return s.reduce((i,c)=>{let p=nL(e,t,n,r,o,c);return[...i,p]},[])}function oL(e,t,n,r,o,s){let i=BI(r,s,o),c=rL(e,t,n,r,o,i);return m.IsEqual(c.length,1)?c[0]:St(c)}function Qa(e,t,n,r){let o=Ut(e,t,r),s=VI(e,n,r),i=s[0],c=s[1];return eo(c)?tL(t,i)?vs(qn(i),o):oL(e,t,qn(i),c.parameters,c.expression,o):vs(n,o)}var Pp,Rp,Ap=u(()=>{wr();O();ho();Ht();rs();Os();q();q();q();zI();JI();ZI();Pp=0,Rp=0});function vs(e,t){return d.Create({"~kind":"Call"},{type:"call",target:e,arguments:t},{})}function QI(e,t){return Qa({},Ie([],[]),e,t)}function To(e){return L(e,"Call")}var ho=u(()=>{S();J();Ap();q()});function sL(e){return d.Discard(e,["~immutable"])}function e$(e,t){return d.Update(sL(e),{},t)}function t$(e,t,n,r){let o=T(e,t,n);return e$(o,r)}var Mp=u(()=>{S();q()});function n$(e,t){return e(t)}var r$=u(()=>{});function o$(e,t){return m.IsString(t)?se(n$(e,t)):se(t)}var s$=u(()=>{O();Le();r$()});function i$(e,t){let n=mt(t);return Gn(e,n)}var a$=u(()=>{eu();Os()});function u$(e,t){let n=t.map(r=>Gn(e,r));return X(n)}var m$=u(()=>{Q();eu()});function Gn(e,t){return le(t)?o$(e,t.const):Re(t)?i$(e,t.pattern):F(t)?u$(e,t.anyOf):t}var eu=u(()=>{Le();vt();Q();s$();a$();m$()});function ga(e,t={}){return j("Capitalize",[e],t)}function c$(e,t={}){return Op(e,t)}var tu=u(()=>{ce();On()});function ha(e,t={}){return j("Lowercase",[e],t)}function p$(e,t={}){return Cp(e,t)}var nu=u(()=>{ce();On()});function xa(e,t={}){return j("Uncapitalize",[e],t)}function l$(e,t={}){return Lp(e,t)}var ru=u(()=>{ce();On()});function ya(e,t={}){return j("Uppercase",[e],t)}function d$(e,t={}){return Fp(e,t)}var ou=u(()=>{ce();On()});function Op(e,t){return V([e])?d.Update(Gn(iL,e),{},t):ga(e,t)}function Cp(e,t){return V([e])?d.Update(Gn(aL,e),{},t):ha(e,t)}function Lp(e,t){return V([e])?d.Update(Gn(uL,e),{},t):xa(e,t)}function Fp(e,t){return V([e])?d.Update(Gn(mL,e),{},t):ya(e,t)}function f$(e,t,n,r){let o=T(e,t,n);return Op(o,r)}function g$(e,t,n,r){let o=T(e,t,n);return Cp(o,r)}function h$(e,t,n,r){let o=T(e,t,n);return Lp(o,r)}function x$(e,t,n,r){let o=T(e,t,n);return Fp(o,r)}var iL,aL,uL,mL,On=u(()=>{S();eu();q();tu();nu();ru();ou();iL=e=>e[0].toUpperCase()+e.slice(1),aL=e=>e.toLowerCase(),uL=e=>e[0].toLowerCase()+e.slice(1),mL=e=>e.toUpperCase()});function ba(e,t,n,r,o={}){return j("Conditional",[e,t,n,r],o)}function y$(e,t,n,r,o={}){return jp({},Ie([],[]),e,t,n,r,o)}var su=u(()=>{ce();Dp();q()});function cL(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(cL(e,t,n,r,o,s),{},i):ba(n,r,o,s,i)}function b$(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();su()});var _p=u(()=>{Dp()});function wa(e,t={}){return j("ConstructorParameters",[e],t)}function w$(e,t={}){return Np(e,t)}var iu=u(()=>{ce();au()});function pL(e){let t=Ge(e)?e.parameters:[],n=mr({},Ie([],[]),t);return je(n)}function Np(e,t){return V([e])?d.Update(pL(e),{},t):wa(e,t)}function I$(e,t,n,r){let o=T(e,t,n);return Np(o,r)}var au=u(()=>{S();Bt();Ue();iu();q();q();q()});function Ia(e,t,n={}){return j("Exclude",[e,t],n)}function $$(e,t,n={}){return qs(e,t,n)}var uu=u(()=>{ce();Us()});function qs(e,t,n){return V([e,t])?d.Update(ra(e,t),{},n):Ia(e,t,n)}function k$(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return qs(s,i,o)}var Us=u(()=>{S();q();uu();Nc()});function $a(e,t,n={}){return j("Extract",[e,t],n)}function T$(e,t,n={}){return qp(e,t,n)}var mu=u(()=>{ce();cu()});function lL(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[e]:[]}function v$(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>v$(o,t,[...n,...lL(r,t)]),()=>n)}function E$(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=v$(r,t);return St(o)}var S$=u(()=>{O();Q();Sn();Y();Y()});function qp(e,t,n){return V([e,t])?d.Update(E$(e,t),{},n):$a(e,t,n)}function P$(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return qp(s,i,o)}var cu=u(()=>{S();q();mu();S$()});function dL(e){return e.reduce((t,n)=>Bi(n)?[...t,se(n)]:t,[])}function vo(e){let t=dL(e);return X(t)}var Ks=u(()=>{Le();Q()});function Es(e,t,n={}){return j("Index",[e,t],n)}function R$(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Kp(e,r,n)}var Up=u(()=>{O();ce();Ks();pu()});function A$(e,t){let n=Mn(e,t);return Kt(n)}var M$=u(()=>{_r();Dr()});function O$(e,t,n){let r=pn(e,t,n);return Kt(r)}var C$=u(()=>{_r();Y()});function fL(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,I)=>({...w,[I]:e[I]}),{}),i=r.reduce((w,I)=>({...w,[I]:t[I]}),{}),c=o.reduce((w,I)=>({...w,[I]:Te([e[I],t[I]])}),{}),p=d.Assign(s,i);return d.Assign(p,c)}function L$(e){return e.reduce((t,n)=>fL(t,Kt(n)),{})}var F$=u(()=>{S();O();_r();Y()});var j$=u(()=>{});function D$(e){let t=_h(je(e));return Kt(t)}var _$=u(()=>{Ue();Lc();_r()});function gL(e,t){return m.Keys(e).filter(o=>o in t).reduce((o,s)=>({...o,[s]:St([e[s],t[s]])}),{})}function N$(e,t){return m.ShiftLeft(e,(n,r)=>N$(r,gL(t,Kt(n))),()=>t)}function q$(e){return m.ShiftLeft(e,(t,n)=>N$(n,Kt(t)),()=>qe())}var U$=u(()=>{O();kn();Y();_r()});function Kt(e){return rt(e)?A$(e.$defs,e.$ref):Pe(e)?O$(e.if,e.then,e.else):oe(e)?L$(e.allOf):F(e)?q$(e.anyOf):be(e)?D$(e.items):pe(e)?e.properties:{}}var _r=u(()=>{kt();Ot();Ne();fe();Ue();Q();M$();C$();F$();j$();_$();U$()});function Eo(e){let t=Kt(e);return W(t)}var K$=u(()=>{fe();_r()});var Gs=u(()=>{K$()});function So(e){let t=`${e}`;return hL.test(t)?parseInt(t):e}var hL,Ws=u(()=>{hL=new RegExp("^(?:0|[1-9][0-9]*)$")});function xL(e){return se(So(e))}function G$(e){return e.map(t=>W$(t))}function W$(e){return oe(e)?Tt(G$(e.allOf)):F(e)?X(G$(e.anyOf)):le(e)?xL(e.const):e}function B$(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 z$=u(()=>{O();Ne();Q();Le();xt();Je();Sn();Ws()});function H$(e,t){let n=Mn(e,t);return Ft(n)}var V$=u(()=>{cr();Dr()});function J$(e,t,n){let r=pn(e,t,n);return Ft(r)}var Y$=u(()=>{cr();Y()});function X$(e){let t=bt(e);return Ft(t)}var Z$=u(()=>{cr();Y()});function Q$(e){let t=Te(e);return Ft(t)}var ek=u(()=>{Y();cr()});function tk(e){return[`${e}`]}var nk=u(()=>{});function rk(e){let t=mt(e);return Ft(t)}var ok=u(()=>{cr();Y()});function sk(e){return e.reduce((t,n)=>[...t,...Ft(n)],[])}var ik=u(()=>{cr()});function Ft(e){return rt(e)?H$(e.$defs,e.$ref):Pe(e)?J$(e.if,e.then,e.else):ot(e)?X$(e.enum):oe(e)?Q$(e.allOf):le(e)?tk(e.const):Re(e)?rk(e.pattern):F(e)?sk(e.anyOf):[]}var cr=u(()=>{kt();Ot();mn();Ne();Le();vt();Q();V$();Y$();Z$();ek();nk();ok();ik()});function Po(e){return Ft(e)}var lu=u(()=>{cr()});function Bs(e,t){return t.map(n=>zs(e,n))}function zs(e,t){return ke(t)?qt(zs(e,t.items)):Ge(t)?yn(Bs(e,t.parameters),zs(e,t.instanceType)):We(t)?bn(Bs(e,t.parameters),zs(e,t.returnType)):be(t)?je(Bs(e,t.items)):F(t)?X(Bs(e,t.anyOf)):oe(t)?Tt(Bs(e,t.allOf)):ca(t)?W(e):t}function ak(e,t){return zs(e,t)}var uk=u(()=>{gt();Bt();zt();Ne();fe();Ue();pa();Q()});function yL(e,t){let n=t in e?e[t]:ge();return ak(e,n)}function mk(e,t){return t.reduce((n,r)=>[...n,yL(e,r)],[])}function bL(e,t){let n=Po(t),r=mk(e,n);return St(r)}function IL(e){return e.filter(n=>wL.test(n))}function $L(e){let t=ji(e),n=IL(t),r=mk(e,n);return St(r)}function ck(e,t){return Fe(t)?$L(e):bL(e,t)}var wL,pk=u(()=>{xt();Je();kr();Y();lu();Xe();uk();wL=new RegExp(or)});function kL(e){return se(So(e))}function lk(e){return e.map(t=>Gp(t))}function Gp(e){return oe(e)?Tt(lk(e.allOf)):F(e)?X(lk(e.anyOf)):le(e)?kL(e.const):e}var dk=u(()=>{Q();Ne();Le();Ws()});function TL(e,t){return e.reduceRight((n,r,o)=>{let s=st({},se(o),t);return B.IsExtendsTrueLike(s)?[r,...n]:n},[])}function vL(e,t){let n=Gp(t),r=TL(e,n);return nr(r)}function EL(e){return nr(e)}function fk(e,t){return le(t)&&m.IsEqual(t.const,"length")?se(e.length):Fe(t)||ht(t)?EL(e):vL(e,t)}var gk=u(()=>{O();Le();xt();En();Y();Sn();dk()});function hk(e,t){return ke(e)?B$(e.items,t):pe(e)?ck(e.properties,t):be(e)?fk(e.items,t):ge()}var xk=u(()=>{gt();Je();fe();Ue();z$();pk();gk()});function SL(e){return rt(e)||Pe(e)||oe(e)||F(e)?Eo(e):e}function Kp(e,t,n){return V([e,t])?d.Update(hk(SL(e),t),{},n):Es(e,t,n)}function yk(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Kp(s,i,o)}var pu=u(()=>{S();kt();Ot();Ne();Q();q();Up();Gs();xk()});function ka(e,t={}){return j("InstanceType",[e],t)}function bk(e,t={}){return Wp(e,t)}var du=u(()=>{ce();fu()});function PL(e){return Ge(e)?e.instanceType:ge()}function Wp(e,t){return V([e])?d.Update(PL(e),{},t):ka(e,t)}function wk(e,t,n,r={}){let o=T(e,t,n);return Wp(o,r)}var fu=u(()=>{S();Bt();Je();du();q()});function Ss(e,t={}){return j("KeyOf",[e],t)}function Ik(e,t={}){return Bp(e,t)}var gu=u(()=>{ce();hu()});function $k(){return X([Ct(),Yt(),ao()])}var kk=u(()=>{xt();Xt();Ar();Q()});function Tk(e){return Ct()}var vk=u(()=>{xt()});function RL(e){return e.reduce((n,r)=>Bi(r)?[...n,se(So(r))]:qe(),[])}function Ek(e){let t=m.Keys(e),n=RL(t);return nr(n)}var Sk=u(()=>{kn();O();Le();Ws();Y()});function Pk(e){return co(e)}var Rk=u(()=>{Xe()});function Ak(e){let t=e.map((n,r)=>se(r));return nr(t)}var Mk=u(()=>{Le();Y()});function Ok(e){return Ee(e)?$k():ke(e)?Tk(e.items):pe(e)?Ek(e.properties):it(e)?Pk(e):be(e)?Ak(e.items):ge()}var Ck=u(()=>{$t();gt();Je();fe();Xe();Ue();kk();vk();Sk();Rk();Mk()});function AL(e){return rt(e)||Pe(e)||oe(e)||F(e)?Eo(e):e}function Bp(e,t){return V([e])?d.Update(Ok(AL(e)),{},t):Ss(e,t)}function Lk(e,t,n,r){let o=T(e,t,n);return Bp(o,r)}var hu=u(()=>{S();kt();Ot();Ne();Q();gu();q();Gs();Ck()});function ks(e,t,n,r,o={}){return j("Mapped",[e,t,n,r],o)}function Fk(e,t,n,r,o={}){return zp({},Ie([],[]),e,t,n,r,o)}var xu=u(()=>{ce();yu();q()});function ML(e){let t=mt(e);return bu(t)}function OL(e){return e.reduce((t,n)=>[...t,...bu(n)],[])}function CL(e){let t=bt(e);return bu(t)}function LL(e){return m.IsNumber(e)?[se(`${e}`)]:[se(e)]}function bu(e){return ot(e)?CL(e.enum):le(e)?LL(e.const):Re(e)?ML(e.pattern):F(e)?OL(e.anyOf):[e]}function jk(e){return bu(e)}var Dk=u(()=>{O();Le();mn();vt();Q();Y();Y()});function FL(e){return Re(e)?mt(e.pattern):e}function jL(e,t,n,r,o,s){let i=d.Assign(e,{[n.name]:r}),c=T(i,t,o),p=FL(c),f=T(i,t,s);return hh(p)||xh(p)?{[p.const]:f}:{}}function DL(e,t,n,r,o,s){return r.reduce((i,c)=>[...i,jL(e,t,n,c,o,s)],[])}function _L(e){return e.reduce((t,n)=>[...t,W(n)],[])}function _k(e,t,n,r,o,s){let i=jk(r),c=DL(e,t,n,i,o,s),p=_L(c);return Te(p)}var Nk=u(()=>{S();Le();fe();vt();q();Y();Y();Dk()});function zp(e,t,n,r,o,s,i){return V([r])?d.Update(_k(e,t,n,r,o,s),{},i):ks(n,r,o,s,i)}function qk(e,t,n,r,o,s,i){let c=T(e,t,r);return zp(e,t,n,c,o,s,i)}var yu=u(()=>{S();xu();q();Nk()});function NL(e,t,n){let r=d.Assign(e,t);return m.Keys(t).filter(s=>n.includes(s)).reduce((s,i)=>({...s,[i]:DI(r,i,t[i])}),{})}function qL(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,Ie([],[]),t[i])}),{})}function UL(e,t,n){let r=OI(t),o=NL(e,t,r),s=qL(e,t,r),i={...o,...s};return d.Update(i,{},n)}function wu(e,t,n,r){return UL(e,n,r)}var Iu=u(()=>{O();S();q();Ip();kp();q()});function Ta(e,t={}){return j("NonNullable",[e],t)}function Uk(e,t={}){return Hp(e,t)}var $u=u(()=>{ce();ku()});function KL(e){let t=X([oo(),lo()]);return qs(e,t,{})}function Hp(e,t){return V([e])?d.Update(KL(e),{},t):Ta(e,t)}function Kk(e,t,n,r){let o=T(e,t,n);return Hp(o,r)}var ku=u(()=>{S();io();go();Q();Us();$u();q()});function va(e,t,n={}){return j("Omit",[e,t],n)}function Gk(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Vp(e,r,n)}var Tu=u(()=>{O();ce();Ks();vu()});function Eu(e){let t=Eo(e);return pe(t)?t.properties:qe()}var Jp=u(()=>{kn();fe();Gs()});function GL(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?r:{...r,[o]:e[o]},{})}function Wk(e,t){let n=Eu(e),r=Po(t),o=GL(n,r);return W(o)}var Bk=u(()=>{O();fe();lu();Jp()});function Vp(e,t,n){return V([e,t])?d.Update(Wk(e,t),{},n):va(e,t,n)}function zk(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Vp(s,i,o)}var vu=u(()=>{S();Tu();q();Bk()});function Ea(e,t={}){return j("Parameters",[e],t)}function Hk(e,t={}){return Yp(e,t)}var Su=u(()=>{ce();Pu()});function WL(e){let t=We(e)?e.parameters:[],n=mr({},Ie([],[]),t);return je(n)}function Yp(e,t){return V([e])?d.Update(WL(e),{},t):Ea(e,t)}function Vk(e,t,n,r){let o=T(e,t,n);return Yp(o,r)}var Pu=u(()=>{S();zt();Ue();Su();q();q();q()});function Sa(e,t={}){return j("Partial",[e],t)}function Jk(e,t={}){return Xp(e,t)}var Ru=u(()=>{ce();Au()});function Yk(e,t){let n=Mn(e,t),r=Cn(n);return In(d.Assign(e,{[t]:r}),t)}var Xk=u(()=>{S();kt();Ro();Dr()});function Zk(e,t,n){let r=pn(e,t,n);return Cn(r)}var Qk=u(()=>{Ro();Y()});function eT(e){let t=Te(e);return Cn(t)}var tT=u(()=>{Ro();Y()});function nT(e){let t=e.map(n=>Cn(n));return X(t)}var rT=u(()=>{Q();Ro()});function oT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:$r(e[o])}),{});return W(t)}var sT=u(()=>{O();fe();os()});function Cn(e){return rt(e)?Yk(e.$defs,e.$ref):Pe(e)?Zk(e.if,e.then,e.else):oe(e)?eT(e.allOf):F(e)?nT(e.anyOf):pe(e)?oT(e.properties):W({})}var Ro=u(()=>{kt();Ot();Ne();fe();Q();Xk();Qk();tT();rT();sT()});function Xp(e,t){return V([e])?d.Update(Cn(e),{},t):Sa(e,t)}function iT(e,t,n,r){let o=T(e,t,n);return Xp(o,r)}var Au=u(()=>{S();Ru();Ro();q()});function Pa(e,t,n={}){return j("Pick",[e,t],n)}function aT(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Zp(e,r,n)}var Mu=u(()=>{O();ce();Ks();Ou()});function BL(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?d.Assign(r,{[o]:e[o]}):r,{})}function uT(e,t){let n=Eu(e),r=Po(t),o=BL(n,r);return W(o)}var mT=u(()=>{S();O();fe();lu();Jp()});function Zp(e,t,n){return V([e,t])?d.Update(uT(e,t),{},n):Pa(e,t,n)}function cT(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Zp(s,i,o)}var Ou=u(()=>{S();Mu();q();mT()});function Ra(e,t={}){return j("ReadonlyObject",[e],t)}function Qp(e,t={}){return el(e,t)}var pT,Cu=u(()=>{ce();Lu();pT=Qp});function lT(e){return ro(qt(e))}var dT=u(()=>{gt();cs()});function fT(e,t){let n=Mn(e,t),r=Ln(n);return In(d.Assign(e,{[t]:r}),t)}var gT=u(()=>{S();kt();Ao();Dr()});function hT(e,t,n){let r=pn(e,t,n);return Ln(r)}var xT=u(()=>{Ao();Y()});function yT(e){let t=Te(e);return Ln(t)}var bT=u(()=>{Ao();Y()});function wT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:Er(e[o])}),{});return W(t)}var IT=u(()=>{O();fe();ps()});function $T(e){return ro(je(e))}var kT=u(()=>{Ue();cs()});function TT(e){let t=e.map(n=>Ln(n));return X(t)}var vT=u(()=>{Q();Ao()});function Ln(e){return ke(e)?lT(e.items):rt(e)?fT(e.$defs,e.$ref):Pe(e)?hT(e.if,e.then,e.else):oe(e)?yT(e.allOf):pe(e)?wT(e.properties):be(e)?$T(e.items):F(e)?TT(e.anyOf):e}var Ao=u(()=>{gt();kt();Ot();Ne();fe();Ue();Q();dT();gT();xT();bT();IT();kT();vT()});function el(e,t){return V([e])?d.Update(Ln(e),{},t):Ra(e)}function ET(e,t,n,r){let o=T(e,t,n);return el(o,r)}var Lu=u(()=>{S();Cu();Ao();q()});function ST(e,t,n,r){return t.visited.includes(r)?n:r in e?T(e,Ie(t.callstack,[...t.visited,r]),e[r]):n}var tl=u(()=>{q();q()});function PT(e,t){let n=Mn(e,t),r=Fn(n);return In(d.Assign(e,{[t]:r}),t)}var RT=u(()=>{S();kt();Mo();Dr()});function AT(e,t,n){let r=pn(e,t,n);return Fn(r)}var MT=u(()=>{Mo();Y()});function OT(e){let t=Te(e);return Fn(t)}var CT=u(()=>{Mo();Y()});function LT(e){let t=e.map(n=>Fn(n));return X(t)}var FT=u(()=>{Q();Mo()});function jT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:ea(e[o])}),{});return W(t)}var DT=u(()=>{O();fe();ta()});function Fn(e){return rt(e)?PT(e.$defs,e.$ref):Pe(e)?AT(e.if,e.then,e.else):oe(e)?OT(e.allOf):F(e)?LT(e.anyOf):pe(e)?jT(e.properties):W({})}var Mo=u(()=>{kt();Ot();Ne();fe();Q();RT();MT();CT();FT();DT()});function Aa(e,t={}){return j("Required",[e],t)}function _T(e,t={}){return nl(e,t)}var Fu=u(()=>{ce();ju()});function nl(e,t){return V([e])?d.Update(Fn(e),{},t):Aa(e,t)}function NT(e,t,n,r){let o=T(e,t,n);return nl(o,r)}var ju=u(()=>{S();Mo();Fu();q()});function Ma(e,t={}){return j("ReturnType",[e],t)}function qT(e,t={}){return rl(e,t)}var Du=u(()=>{ce();_u()});function zL(e){return We(e)?e.returnType:ge()}function rl(e,t){return V([e])?d.Update(zL(e),{},t):Ma(e,t)}function UT(e,t,n,r={}){let o=T(e,t,n);return rl(o,r)}var _u=u(()=>{S();zt();Je();Du();q()});function Oa(e,t){return j("With",[e,t],{})}function KT(e,t){return ol(e,t)}var Nu=u(()=>{ce();qu()});function ol(e,t){return V([e])?d.Update(e,{},t):Oa(e,t)}function GT(e,t,n,r){let o=T(e,t,n);return ol(o,r)}var qu=u(()=>{S();q();Nu()});function HL(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,...HL(r)],[])}var WT=u(()=>{Vt();Je();po();Ht();Ue()});var BT=u(()=>{WT()});function Ie(e,t){return{callstack:e,visited:t}}function V(e){return m.ShiftLeft(e,(t,n)=>Be(t)?!1:V(n),()=>!0)}function Ls(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 VL(e,t){let n=ut(e)?ns(t,{}):t,r=Sr(e)?ts(n,{}):n;return vr(e)?Hs(r,{}):r}function JL(e,t,n,r,o){return m.IsEqual(n,"AddImmutable")?zT(e,t,r[0],o):m.IsEqual(n,"RemoveImmutable")?t$(e,t,r[0],o):m.IsEqual(n,"AddReadonly")?Qf(e,t,r[0],o):m.IsEqual(n,"RemoveReadonly")?Ch(e,t,r[0],o):m.IsEqual(n,"AddOptional")?eg(e,t,r[0],o):m.IsEqual(n,"RemoveOptional")?jh(e,t,r[0],o):m.IsEqual(n,"Capitalize")?f$(e,t,r[0],o):m.IsEqual(n,"Conditional")?b$(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"ConstructorParameters")?I$(e,t,r[0],o):m.IsEqual(n,"Evaluate")?UI(e,t,r[0],o):m.IsEqual(n,"Exclude")?k$(e,t,r[0],r[1],o):m.IsEqual(n,"Extract")?P$(e,t,r[0],r[1],o):m.IsEqual(n,"Index")?yk(e,t,r[0],r[1],o):m.IsEqual(n,"InstanceType")?wk(e,t,r[0],o):m.IsEqual(n,"Interface")?PI(e,t,r[0],r[1],o):m.IsEqual(n,"KeyOf")?Lk(e,t,r[0],o):m.IsEqual(n,"Lowercase")?g$(e,t,r[0],o):m.IsEqual(n,"Mapped")?qk(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"Module")?wu(e,t,r[0],o):m.IsEqual(n,"NonNullable")?Kk(e,t,r[0],o):m.IsEqual(n,"Pick")?cT(e,t,r[0],r[1],o):m.IsEqual(n,"Parameters")?Vk(e,t,r[0],o):m.IsEqual(n,"Partial")?iT(e,t,r[0],o):m.IsEqual(n,"Omit")?zk(e,t,r[0],r[1],o):m.IsEqual(n,"ReadonlyObject")?ET(e,t,r[0],o):m.IsEqual(n,"Record")?ax(e,t,r[0],r[1],o):m.IsEqual(n,"Required")?NT(e,t,r[0],o):m.IsEqual(n,"ReturnType")?UT(e,t,r[0],o):m.IsEqual(n,"TemplateLiteral")?$w(e,t,r[0],o):m.IsEqual(n,"Uncapitalize")?h$(e,t,r[0],o):m.IsEqual(n,"Uppercase")?x$(e,t,r[0],o):m.IsEqual(n,"With")?GT(e,t,r[0],r[1]):j(n,r,o)}function YL(e,t,n){let r=Be(n)?ST(e,t,n,n.$ref):ke(n)?qt(T(e,t,n.items),Fi(n)):To(n)?Qa(e,t,n.target,n.arguments):Ge(n)?yn(Ut(e,t,n.parameters),T(e,t,n.instanceType),tg(n)):We(n)?bn(Ut(e,t,n.parameters),T(e,t,n.returnType),ng(n)):Pe(n)?Tr(T(e,t,n.if),T(e,t,n.then),T(e,t,n.else),mg(n)):oe(n)?Tt(Ut(e,t,n.allOf),fg(n)):pe(n)?W(Ls(e,t,n.properties),ig(n)):it(n)?ux(Qt(n),T(e,t,wt(n))):sr(n)?Or(T(e,t,n.items)):be(n)?je(mr(e,t,n.items),Oh(n)):F(n)?X(Ut(e,t,n.anyOf),bh(n)):n;return VL(n,r)}function T(e,t,n){return Yn(n)?JL(e,t,n.action,n.parameters,n.options):YL(e,t,n)}function il(e,t){return T(e,Ie([],[]),t)}var q=u(()=>{O();Uu();Ci();Li();gt();Bt();ce();zt();ho();Ot();Ne();fe();Xe();Ue();Q();Ht();po();Uu();Mp();Ci();Rc();Li();Oc();Zn();ms();ls();Ap();On();_p();au();Za();Us();cu();pu();fu();Ja();hu();On();yu();Iu();ku();vu();Pu();Au();Ou();Lu();sa();tl();ju();_u();Wa();On();On();qu();BT()});function XL(e){return d.Update(e,{"~immutable":!0},{})}function Hs(e,t){return d.Update(XL(e),{},t)}function zT(e,t,n,r){let o=T(e,t,n);return Hs(o,r)}var Uu=u(()=>{S();q()});function cb(e,t={}){return j("AddImmutable",[e],t)}function ro(e,t={}){return Hs(e,t)}var cs=u(()=>{ce();Uu()});var HT=u(()=>{ce();Mp()});function pb(e,t={}){return j("Evaluate",[e],t)}function VT(e,t={}){return Ep(e,t)}var al=u(()=>{ce();Za()});function lb(e,t={}){return j("Module",[e],t)}function JT(e,t={}){return wu({},Ie([],[]),e,t)}var ul=u(()=>{ce();q();Iu()});var xo=u(()=>{cs();ps();os();HT();Ac();ta();tu();su();iu();al();uu();mu();Up();du();Fs();gu();nu();xu();ul();$u();Tu();Su();Ru();Mu();Cu();Fu();Du();ru();ou();Nu()});var YT=u(()=>{au()});var XT=u(()=>{qi()});var ZT=u(()=>{Us()});var QT=u(()=>{cu()});var ev=u(()=>{});var tv=u(()=>{Ks();Ws();ev()});var nv=u(()=>{pu()});var rv=u(()=>{fu()});var ov=u(()=>{Ja()});var sv=u(()=>{On()});var iv=u(()=>{hu()});var av=u(()=>{yu()});var uv=u(()=>{Iu()});var mv=u(()=>{ku()});var cv=u(()=>{vu()});var pv=u(()=>{Pu()});var lv=u(()=>{hs();up()});var dv=u(()=>{Au()});var fv=u(()=>{Ou()});var gv=u(()=>{O();ws()});var hv=u(()=>{gv()});var xv=u(()=>{Lu()});var yv=u(()=>{sa()});var bv=u(()=>{tl()});var wv=u(()=>{ju()});var Iv=u(()=>{_u()});var $v=u(()=>{});var kv=u(()=>{O();hs()});var Tv=u(()=>{Zi();Qi();mp();$v();Yi();kv()});var vv=u(()=>{qu()});var Ev=u(()=>{q();_p();YT();Tp();XT();Os();ZT();QT();tv();nv();rv();ov();sv();iv();av();uv();mv();Gs();cv();pv();lv();dv();fv();hv();xv();yv();bv();wv();Iv();Tv();vv()});function Sv(...e){let[t,n,r]=$n.Match(e,{2:(i,c)=>m.IsString(i)?[{},i,c]:[i,c,{}],3:(i,c,p)=>[i,c,p],1:i=>[{},i,{}]}),o=xw(n),s=m.IsArray(o)&&m.IsEqual(o.length,2)?T(t,Ie([],[]),o[0]):ge();return d.Update(s,{},r)}var Pv=u(()=>{no();S();O();da();q();q();Vi()});var ml=u(()=>{Pv()});var Z={};Mt(Z,{Any:()=>to,Array:()=>qt,BigInt:()=>ds,Boolean:()=>Gi,Call:()=>QI,Capitalize:()=>c$,Codec:()=>Ki,Conditional:()=>y$,Constructor:()=>yn,ConstructorParameters:()=>w$,Cyclic:()=>In,Decode:()=>mh,DecodeBuilder:()=>us,Dependent:()=>Tr,Encode:()=>ch,EncodeBuilder:()=>as,Enum:()=>dg,Evaluate:()=>VT,Exclude:()=>$$,Extends:()=>st,ExtendsResult:()=>B,Extract:()=>T$,Function:()=>bn,Generic:()=>Xn,Identifier:()=>fs,Immutable:()=>ph,Index:()=>R$,Infer:()=>ss,InstanceType:()=>bk,Instantiate:()=>il,Integer:()=>Rr,Interface:()=>RI,Intersect:()=>Tt,IsAny:()=>Ee,IsArray:()=>ke,IsBigInt:()=>vn,IsBoolean:()=>Jt,IsCall:()=>To,IsCodec:()=>Ui,IsConstructor:()=>Ge,IsCyclic:()=>rt,IsDependent:()=>Pe,IsEnum:()=>ot,IsEnumValue:()=>lg,IsFunction:()=>We,IsGeneric:()=>eo,IsIdentifier:()=>gh,IsImmutable:()=>vr,IsInfer:()=>Ce,IsInteger:()=>ht,IsIntersect:()=>oe,IsKind:()=>L,IsLiteral:()=>le,IsNever:()=>un,IsNull:()=>so,IsNumber:()=>Fe,IsObject:()=>pe,IsOptional:()=>ut,IsParameter:()=>yh,IsReadonly:()=>Sr,IsRecord:()=>it,IsRef:()=>Be,IsRefine:()=>$c,IsRest:()=>sr,IsSchema:()=>_e,IsString:()=>yt,IsSymbol:()=>er,IsTemplateLiteral:()=>Re,IsThis:()=>ca,IsTuple:()=>be,IsUndefined:()=>fo,IsUnion:()=>F,IsUnknown:()=>Oe,IsUnsafe:()=>_i,IsVoid:()=>Pn,KeyOf:()=>Ik,Literal:()=>se,Lowercase:()=>p$,Mapped:()=>Fk,Module:()=>JT,Never:()=>ge,NonNullable:()=>Uk,Null:()=>oo,Number:()=>Ct,Object:()=>W,Omit:()=>Gk,Optional:()=>og,Parameter:()=>Mr,Parameters:()=>Hk,Partial:()=>Jk,Pick:()=>aT,Readonly:()=>lh,ReadonlyObject:()=>Qp,ReadonlyType:()=>pT,Record:()=>aa,RecordKey:()=>co,RecordPattern:()=>Qt,RecordValue:()=>wt,Ref:()=>qn,Refine:()=>dh,Required:()=>_T,Rest:()=>Or,ReturnType:()=>qT,Script:()=>Sv,String:()=>Yt,Symbol:()=>ao,TemplateLiteral:()=>Tw,This:()=>ma,Tuple:()=>je,Uncapitalize:()=>l$,Undefined:()=>lo,Union:()=>X,Unknown:()=>Ye,Unsafe:()=>ag,Uppercase:()=>d$,Void:()=>la,With:()=>KT});var cl=u(()=>{q();Sn();ml();tu();su();iu();al();uu();mu();xo();du();Fs();gu();nu();xu();ul();$u();Tu();Su();Ru();Mu();Cu();Fu();Du();ru();ou();Nu();Ic();ms();Zn();ls();kc();$t();gt();Pr();Qn();ho();Bt();kt();mn();zt();rs();Tc();Ot();Vt();En();Ne();Le();Je();io();xt();fe();Ec();Xe();Ht();po();J();Xt();Ar();vt();pa();Ue();go();Q();nt();Ni();Cr()});var Nr=u(()=>{xo();Ev();Sn();ml();da();cl();cl()});import{StringEnum as ZL}from"@earendil-works/pi-ai";import{defineTool as QL}from"@earendil-works/pi-coding-agent";function Rv(e){if(e.length===0)return"Todo list is empty.";let t=e.filter(o=>o.status==="completed").length,n=e.map(o=>`${eF[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 nF(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 rF(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 eF,tF,Ku,pl=u(()=>{Nr();eF={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"},tF=Z.Object({op:ZL(["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"}))});Ku=QL({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:tF,async execute(e,t,n,r,o){let s=rF(o),{todos:i,error:c}=nF(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
- ${Rv(i)}`:Rv(i)}],details:p,...c?{isError:!0}:{}}}})});import{StringEnum as oF}from"@earendil-works/pi-ai";import{defineTool as sF}from"@earendil-works/pi-coding-agent";function Ov(){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 iF(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>Mv)return{text:`Error: key longer than ${Mv} 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>Av?`${n.slice(0,Av)}\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,Av,Mv,Gu,Wu=u(()=>{Nr();Wn=new Map,Av=2e3,Mv=80;Gu=sF({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:oF(["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}=iF(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 aF}from"@earendil-works/pi-ai";import{defineTool as uF}from"@earendil-works/pi-coding-agent";function zu(e){if(!e||e.status==="cleared")return"No goal set.";let t=e.budget??Bu,n=[`${Fv[e.status]} ${e.status}`,`${e.used}/${t} continuations`];return e.note&&n.push(e.note),`${n.join(" \xB7 ")}
24
- ${e.text}`}function jv(e){if(!e||e.status==="cleared"||e.status==="done")return"";let t=e.budget??Bu,n=e.text.length>48?`${e.text.slice(0,47)}\u2026`:e.text;return`goal ${Fv[e.status]} ${e.used}/${t} \xB7 ${n}`}function Dv(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 _v(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??Bu}.`].join(`
26
- `)}function Hu(){return Nv}function ln(e){Nv=e}function Vu(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??Bu;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>Cv?{goal:e,error:`text longer than ${Cv} 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,Lv,Cv,Bu,Fv,Nv,mF,qv,Ju=u(()=>{Nr();pr="howtofix.goal",Lv="howtofix.goal.continue",Cv=400,Bu=25,Fv={active:"\u25CF",paused:"\u2016",done:"\u2713",cleared:"\u25CB"};mF=Z.Object({op:aF(["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)"}))}),qv=uF({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:mF,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=zu(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 Uv,readFileSync as Kv}from"node:fs";import{dirname as Gv,join as Wv}from"node:path";import{defineTool as Bv}from"@earendil-works/pi-coding-agent";function Yu(){return{state:"inactive",wasActive:!1}}function cF(e){return e?e.state==="pending"?{...e,state:"inactive"}:{...e}:Yu()}function zv(e){return e.state!=="inactive"?e:{...e,state:"pending"}}function pF(e){return e.state!=="pending"?e:{state:"active",wasActive:!0}}function lF(e){return e.state!=="inactive"?e:{state:"active",wasActive:!0}}function dF(e){return e.state!=="active"?e:{...e,state:"inactive"}}function Hv(e){return e.state==="inactive"?e:{...e,state:"inactive"}}function Xu(e){return e.state==="active"}function fF(e,t){return e===t}function gF(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 hF(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 Zu(){return dt}function Vv(){return lt}function Jv(){return Xu(dt)}function Yv(){if(!(!lt||!gl(lt)))try{let e=Kv(lt,"utf8");return e.trim()?e:void 0}catch{return}}function Xv(){return Yv()!==void 0}function Zv(){return dt.state==="inactive"?"":dt.state==="pending"?"plan pending":Xv()?"plan \u25CF ready":"plan \u25CF planning"}function Qv(){return fl?Wv(fl,"plan_mode.json"):void 0}function xF(){let e=Qv();if(e)try{Uv(Gv(e),{recursive:!0}),tt(e,JSON.stringify(dt))}catch{}}function yF(){let e=Qv();if(!e||!gl(e))return Yu();try{return cF(JSON.parse(Kv(e,"utf8")))}catch{return Yu()}}function bF(e){fl=e,lt=Wv(e,"plan.md"),dt=yF()}function Co(e){return dt=e,xF(),dt}function eE(){return e=>{e.on("tool_call",async t=>{if(!Xu(dt)||t.toolName!=="edit"&&t.toolName!=="write")return;let n=t.input?.path;if(typeof n=="string"&&!(!lt||fF(n,lt)))return{block:!0,reason:hF(lt)}})}}function tE(){return e=>{e.on("session_start",async(t,n)=>{bF(n.sessionManager.getSessionDir())}),e.on("before_agent_start",async()=>{dt.state==="pending"&&Co(pF(dt))}),e.on("context_with_system",async t=>{if(!Xu(dt)||!lt)return;let n=t.messages[0];if(!n||n.role!=="system")return;let r=gF(lt,Xv()),o=`${typeof n.content=="string"?n.content:""}
29
-
30
- ${r}`;return{messages:t.messages.map(i=>i===n?{...n,content:o}:i)}})}}function wF(){if(lt){try{Uv(Gv(lt),{recursive:!0}),gl(lt)||tt(lt,"")}catch{return}return lt}}var lt,dt,fl,dl,nE,rE,hl=u(()=>{Nr();Hn();dt=Yu();dl=2e4;nE=Bv({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(lF(dt));let i=wF();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}}}}),rE=Bv({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(!Xu(dt))return{content:[{type:"text",text:"Plan mode is not active."}],details:{},isError:!0};let s=Yv();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(dF(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 IF(e,t){return t==="manual"?!1:e.consecutiveFailures>=3}function $F(e,t){if(t)return e;let n=e.consecutiveFailures+1;return{consecutiveFailures:n,tripped:e.tripped||n>=3}}function kF(){return xl()}function TF(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 oE(){return e=>{e.on("session_start",async()=>{lr=xl()}),e.on("session_compact",async()=>{lr=kF()}),e.on("session_compact_failed",async(t,n)=>{let r=lr;lr=$F(lr,t.aborted),!r.tripped&&lr.tripped&&n?.ui&&n.ui.notify(TF(lr),"warning")}),e.on("session_before_compact",async t=>{if(IF(lr,t.reason))return{cancel:!0}})}}var lr,sE=u(()=>{lr=xl()});function Qu(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 em(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 vF(e){ln(Oo(e))}function iE(e){return`budget exhausted (${e.budget??"default"} continuations)`}function aE(){return e=>{e.on("session_start",async(t,n)=>{vF(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=`${Qu(o.content)}
34
-
35
- ${Dv(r)}`;return{messages:t.messages.map(c=>c===o?{...o,content:em(o.content,s)}:c)}}),e.on("agent_before_settle",async(t,n)=>{let r=Oo(n);if(ln(r),Vu(r).action==="stop"||!r||t.continue||!t.context.canContinue)return;let o={...r,used:r.used+1};if(e.appendEntry(pr,o),ln(o),Vu(o).action==="stop"){let s={...o,status:"done",note:iE(o)};e.appendEntry(pr,s),ln(s);return}return{entries:[{type:"custom_message",customType:Lv,content:_v(o),display:!0}],continue:!0}}),e.on("agent_settled",async(t,n)=>{let r=Oo(n),o=Vu(r);if(r&&o.action==="stop"&&o.close){let s={...r,status:"done",note:iE(r)};e.appendEntry(pr,s),ln(s)}else ln(r)})}}var uE=u(()=>{yl();Ju()});function tm(){return e=>{e.on("context_with_system",async t=>{let n=Ov();if(!n)return;let r=t.messages[0];if(!r||r.role!=="system")return;let o=`${Qu(r.content)}
36
-
37
- ${n}`;return{messages:t.messages.map(i=>i===r?{...r,content:em(r.content,o)}:i)}})}}var bl=u(()=>{yl();Wu()});function SF(e){if(EF.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 $l(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"}:SF(n)||n==="0.0.0.0"?{ok:!1,reason:"refused private address"}:{ok:!0,url:t}}function mE(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 PF(e){let t=[],n=/class="result__a"[^>]*href="([^"]+)"[^>]*>([\s\S]*?)<\/a>/gi,r;for(;(r=n.exec(e))&&t.length<Il;){let o=r[1]??"",s=mE(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=$l(i);!p.ok||!s||t.push({title:s,url:p.url.toString(),snippet:""})}return t}async function pE(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??cE,accept:"text/html, application/json"};try{if(t.braveKey){let f=`https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(n)}&count=${Il}`,w=await r(f,{headers:{...s,accept:"application/json","x-subscription-token":t.braveKey},signal:AbortSignal.timeout(o)});return w.ok?{ok:!0,hits:RF(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:PF(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 RF(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=$l(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>=Il)break}return n}async function lE(e,t={}){let n=$l(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??cE,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)?mE(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 EF,wl,Il,cE,dE=u(()=>{EF=/^(127\.|10\.|192\.168\.|169\.254\.|0\.|221\.|222\.|223\.)/;wl=8e4,Il=8;cE="HowToFix (https://howtofix.id)"});import{Type as nm}from"@earendil-works/pi-ai";import{defineTool as fE}from"@earendil-works/pi-coding-agent";function AF(e){return e.length===0?"no results":e.map((t,n)=>`${n+1}. ${t.title}
20
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]),ww=(e,t=[])=>a(a(bw(e),([n,r])=>a(ap(r),([o,s])=>[[n,o],s])),([n,r])=>ww(r,[...t,n]),()=>[t,e]),V0=e=>a(a(a(ap(e),([t,n])=>a(ww(n),([r,o])=>a(a(bw(o),([s,i])=>[[s],i],()=>[[],o]),([s,i])=>[[t,r,s],i]))),([t,n])=>[t,n],()=>a([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[cb(t),n]),ap=e=>a(a(H0(e),([t,n])=>a(a(G0(n),([r,o])=>[r,o],()=>a(W0(n),([r,o])=>[r,o],()=>a(B0(n),([r,o])=>[r,o],()=>a(z0(n),([r,o])=>[r,o],()=>[])))),([r,o])=>a(Bb(o),([s,i])=>[[t,r,s],i]))),([t,n])=>[pb(t),n]),J0=e=>a(a(ap(e),([t,n])=>a(V0(n),([r,o])=>[[t,r],o])),([t,n])=>[lb(t),n]),Iw=e=>a(a(J0(e),([t,n])=>[t,n],()=>a(r0(e),([t,n])=>[t,n],()=>a(me(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n])});function $w(e){let t=rp(`\`${e}\``);return m.IsEqual(t.length,2)?t[0]:Ue()}var up=u(()=>{Tn();O();Vi()});function X0(e){return e.join("|")}function Z0(e){return e.slice(1,e.length-1)}function Q0(e,t,n){return ur(t,`${n}${e}`)}function eC(e,t){return ur(e,`${t}${yh}`)}function tC(e,t){return ur(e,`${t}${Wi}`)}function nC(e,t){return ur(e,`${t}${zi}`)}function rC(e,t){return Rs(X([se("false"),se("true")]),e,t)}function oC(e,t){return ur(e,`${t}${Hi}`)}function sC(e,t,n){return ur(t,`${n}${Z0(e)}`)}function iC(e,t,n){let r=As(e,{});return Rs(r,t,n)}function aC(e,t,n){let r=bt(e);return Rs(r,t,n)}function kw(e,t,n,r=[]){return m.ShiftLeft(e,(o,s)=>kw(s,t,n,[...r,Rs(o,[],"")]),()=>ur(t,`${n}(${X0(r)})`))}function Rs(e,t,n){return ot(e)?aC(e.enum,t,n):ht(e)?tC(t,n):le(e)?Q0(e.const,t,n):En(e)?eC(t,n):Jt(e)?rC(t,n):Fe(e)?nC(t,n):yt(e)?oC(t,n):Re(e)?sC(e.pattern,t,n):vw(e)?iC(e.parameters[0],t,n):F(e)?kw(e.anyOf,t,n):ag}function ur(e,t){return m.ShiftLeft(e,(n,r)=>Rs(n,r,t),()=>t)}function uC(e){return`^${ur(e,"")}$`}function Tw(e){let t=uC(e);return Xi(t)}var mp=u(()=>{O();mn();Le();Q();vt();Pr();Xt();xt();Sn();Qn();Je();Zi();Y();Wa()});function As(e,t){return V(e)?f.Update(Tw(e),{},t):fa(e,t)}function Ew(e,t,n,r){let o=Ut(e,t,n);return As(o,r)}var Wa=u(()=>{S();vt();mp();q()});function fa(e,t={}){return j("TemplateLiteral",[e],t)}function vw(e){return Ne(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"TemplateLiteral")}function Sw(e){return As(e,{})}function mC(e){let t=$w(e);return Sw(t)}function Pw(e,t={}){let n=m.IsString(e)?mC(e):Sw(e);return f.Update(n,{},t)}function Re(e){return L(e,"TemplateLiteral")}var vt=u(()=>{is();O();J();ce();up();Wa()});var B={};Mt(B,{ExtendsFalse:()=>H,ExtendsTrue:()=>M,ExtendsUnion:()=>cp,IsExtendsFalse:()=>cC,IsExtendsTrue:()=>Aw,IsExtendsTrueLike:()=>Io,IsExtendsUnion:()=>Rw,Match:()=>$e});function cp(e){return f.Create({"~kind":"ExtendsUnion"},{inferred:e})}function Rw(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 f.Create({"~kind":"ExtendsTrue"},{inferred:e})}function Aw(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 f.Create({"~kind":"ExtendsFalse"},{})}function cC(e){return m.IsObject(e)&&m.HasPropertyKey(e,"~kind")&&m.IsEqual(e["~kind"],"ExtendsFalse")}function Io(e){return Rw(e)||Aw(e)}function $e(e,t,n){return Io(e)?t(e.inferred):n()}var we=u(()=>{O();S()});function pC(e,t,n,r){return $e(ae(e,n,r),o=>M(f.Assign(f.Assign(e,o),{[t]:n})),()=>H())}function lC(e,t){return M(e)}function dC(e,t,n,r,o){return $e(ae(e,t,n),s=>$e(ae(s,t,r),i=>M(i),()=>H()),()=>$e(ae(e,t,o),s=>M(s),()=>H()))}function fC(e,t,n){let r=bt(n);return ae(e,t,r)}function Mw(e,t,n){return m.ShiftLeft(n,(r,o)=>$e(ae(e,t,r),s=>Mw(s,t,o),()=>H()),()=>M(e))}function gC(e,t,n){let r=mt(n);return ae(e,t,r)}function Ow(e,t,n){return m.ShiftLeft(n,(r,o)=>$e(ae(e,t,r),s=>M(s),()=>Ow(e,t,o)),()=>H())}function de(e,t,n){return Ee(n)?lC(e,t):Pe(n)?dC(e,t,n.if,n.then,n.else):ot(n)?fC(e,t,n.enum):Ce(n)?pC(e,n.name,t,n.extends):oe(n)?Mw(e,t,n.allOf):Re(n)?gC(e,t,n.pattern):F(n)?Ow(e,t,n.anyOf):Oe(n)?M(e):H()}var pt=u(()=>{O();S();$t();Ot();mn();Vt();qe();vt();Q();nt();Pt();we();Y();Y()});function Cw(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?M(e):Oe(n)?M(e):cp(e)}var Lw=u(()=>{Vt();$t();nt();pt();we()});function hC(e,t){let n=vr(e),r=vr(t);return n&&r||!n&&r?!0:!(n&&!r)}function Fw(e,t,n,r){return ke(r)?hC(t,r)?ae(e,n,r.items):H():de(e,t,r)}var jw=u(()=>{gt();ms();pt();Pt();we()});function Dw(e,t,n){return En(n)?M(e):de(e,t,n)}var _w=u(()=>{Pr();pt();we()});function Nw(e,t,n){return Jt(n)?M(e):de(e,t,n)}var qw=u(()=>{Qn();pt();we()});function xC(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():$e(ae(e,s,i),d=>Ms(d,n,o),()=>H())}function yC(e,t,n,r){return m.ShiftLeft(r,(o,s)=>xC(e,t,n,o,s),()=>ut(t)?M(e):H())}function bC(e,t,n){return m.ShiftLeft(t,(r,o)=>yC(e,r,o,n),()=>M(e))}function Ms(e,t,n){return bC(e,t,n)}var pp=u(()=>{O();Vt();Zn();Pt();we()});function Ba(e,t,n){return Rn(n)?M(e):ae(e,t,n)}var lp=u(()=>{Cr();Pt();we()});function Uw(e,t,n,r){return Ee(r)?M(e):Oe(r)?M(e):We(r)?$e(Ms(e,t,r.parameters),o=>Ba(o,n,r.instanceType),()=>H()):H()}var Kw=u(()=>{$t();Bt();nt();we();pp();lp()});function Gw(e,t,n,r,o){return $e(ae(e,t,o),()=>ae(e,n,o),()=>ae(e,r,o))}var Ww=u(()=>{Pt();we()});function Bw(e,t,n){let r=bt(t);return ae(e,r,n)}var zw=u(()=>{Pt();Y()});function Hw(e,t,n,r){return Ee(r)?M(e):Oe(r)?M(e):Be(r)?$e(Ms(e,t,r.parameters),o=>Ba(o,n,r.returnType),()=>H()):H()}var Vw=u(()=>{$t();zt();nt();we();pp();lp()});function Jw(e,t,n){return ht(n)?M(e):Fe(n)?M(e):de(e,t,n)}var Yw=u(()=>{Sn();xt();pt();we()});function Xw(e,t,n){let r=Te(t);return ae(e,r,n)}var Zw=u(()=>{Pt();Os()});function za(e,t,n){return t===n?M(e):H()}function wC(e,t,n){return le(n)?za(e,t,n.const):En(n)?M(e):de(e,se(t),n)}function IC(e,t,n){return le(n)?za(e,t,n.const):Jt(n)?M(e):de(e,se(t),n)}function $C(e,t,n){return le(n)?za(e,t,n.const):Fe(n)?M(e):de(e,se(t),n)}function kC(e,t,n){return le(n)?za(e,t,n.const):yt(n)?M(e):de(e,se(t),n)}function Qw(e,t,n){return m.IsBigInt(t.const)?wC(e,t.const,n):m.IsBoolean(t.const)?IC(e,t.const,n):m.IsNumber(t.const)?$C(e,t.const,n):m.IsString(t.const)?kC(e,t.const,n):Ue()}var eI=u(()=>{O();yc();Le();Pr();Qn();xt();Xt();pt();we()});function tI(e,t,n){return Ce(n)?de(e,t,n):M(e)}var nI=u(()=>{Vt();pt();we()});function rI(e,t,n){return so(n)?M(e):de(e,t,n)}var oI=u(()=>{io();pt();we()});function sI(e,t,n){return Fe(n)?M(e):de(e,t,n)}var iI=u(()=>{xt();pt();we()});function TC(e,t,n){return ut(t)?ut(n)?M(e):H():M(e)}function vC(e,t,n){return Ce(n)&&un(n.extends)?H():$e(ae(e,t,n),r=>TC(r,t,n),()=>H())}function EC(e,t){return e.reduce((n,r)=>r in t?Io(t[r])?{...n,...t[r].inferred}:Ue():Ue(),{})}function SC(e,t,n){let r={};for(let i of m.Keys(n))r[i]=i in t?vC({},t[i],n[i]):ut(n[i])?Ce(n[i])?M(f.Assign(e,{[n[i].name]:n[i].extends})):M(e):H();let o=m.Values(r).every(i=>Io(i)),s=o?EC(m.Keys(r),r):{};return o?M(s):H()}function PC(e,t,n){let r=SC(e,t,n);return Io(r)?M(f.Assign(e,r.inferred)):H()}function RC(e,t,n){return PC(e,t,n)}function AC(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 aI(e,t,n,r){return m.ShiftLeft(t,(o,s)=>$e(ae({},e[o],n),i=>aI(e,s,n,AC(r,i)),()=>H()),()=>M(r))}function MC(e,t,n,r){let o=m.Keys(t);return aI(t,o,r,e)}function uI(e,t,n){return it(n)?MC(e,t,Qt(n),wt(n)):pe(n)?RC(e,t,n.properties):de(e,W(t),n)}var mI=u(()=>{Tn();S();O();Zn();Vt();Je();fe();Xe();Q();Pt();pt();we()});function OC(e,t){return m.IsEqual(m.Keys(t).length,0)?M(e):H()}function CC(e,t,n,r,o){return ae(e,n,o)}function cI(e,t,n,r){return it(r)?CC(e,ua(t),n,ua(Qt(r)),wt(r)):pe(r)?OC(e,r.properties):Ee(r)?M(e):Oe(r)?M(e):H()}var pI=u(()=>{O();$t();nt();fe();Xe();Pt();we()});function lI(e,t,n){return yt(n)?M(e):de(e,t,n)}var dI=u(()=>{Xt();pt();we()});function fI(e,t,n){return er(n)?M(e):de(e,t,n)}var gI=u(()=>{Ar();pt();we()});function hI(e,t,n){let r=mt(t);return ae(e,r,n)}var xI=u(()=>{Pt();Y()});function dp(e,t){return f.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function Cs(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:Ue():void 0}function Ha(e){return Ce(e)?dp(e.name,e.extends):void 0}function gp(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>$e(ae({},r,t),()=>gp(o,t,[...n,r]),()=>{}),()=>n)}function yI(e,t,n,r){let o=gp(n,r);return m.IsArray(o)?M(f.Assign(e,{[t]:je(o)})):H()}function Va(e,t,n,r){let o=gp(n,r);return m.IsArray(o)?M(f.Assign(e,{[t]:X(o)})):H()}var hp=u(()=>{Tn();S();O();gt();nt();Ke();Pt();Q();Vt();po();we()});function LC(e){return[...e].reverse()}function xp(e,t){return t?LC(e):e}function FC(e){let t=e.length>0?e[0]:void 0,n=Ne(t)?fp(t):void 0;return Ne(n)}function jC(e,t,n,r,o,s){return $e(ae(e,n,o),i=>bI(i,t,r,s),()=>H())}function DC(e,t,n,r,o){let s=fp(r);return Cs(s)?yI(e,s.name,xp(n,t),s.type):m.ShiftLeft(n,(i,c)=>jC(e,t,i,c,r,o),()=>H())}function _C(e,t,n,r){return m.ShiftLeft(r,(o,s)=>DC(e,t,n,o,s),()=>m.IsEqual(n.length,0)?M(e):H())}function bI(e,t,n,r){return _C(e,t,n,r)}function NC(e,t,n){let r=mr(e,Ie([],[]),n),o=FC(r);return bI(e,o,xp(t,o),xp(r,o))}function wI(e,t,n){let r=Ha(n);return Cs(r)?Va(e,r.name,t,r.type):m.ShiftLeft(t,(o,s)=>$e(ae(e,o,n),i=>wI(i,s,n),()=>H()),()=>M(e))}function II(e,t,n){let r=mr(e,Ie([],[]),t);return be(n)?NC(e,r,n.items):ke(n)?wI(e,r,n.items):de(e,je(r),n)}var $I=u(()=>{O();J();gt();Ke();Pt();pt();we();q();q();hp()});function kI(e,t,n){return Rn(n)?M(e):fo(n)?M(e):de(e,t,n)}var TI=u(()=>{go();Cr();pt();we()});function vI(e,t,n){return m.ShiftLeft(n,(r,o)=>$e(ae(e,t,r),s=>M(s),()=>vI(e,t,o)),()=>H())}function yp(e,t,n){return m.ShiftLeft(t,(r,o)=>$e(vI(e,r,n),s=>yp(s,o,n),()=>H()),()=>M(e))}function EI(e,t,n){let r=Ha(n);return Cs(r)?Va(e,r.name,t,r.type):F(n)?yp(e,t,n.anyOf):yp(e,t,[n])}var SI=u(()=>{O();Q();Pt();we();hp()});function PI(e,t,n){return Ce(n)?de(e,t,n):Ee(n)?M(e):Oe(n)?M(e):H()}var RI=u(()=>{$t();nt();Vt();pt();we()});function AI(e,t,n){return Rn(n)?M(e):de(e,t,n)}var MI=u(()=>{Cr();pt();we()});function ae(e,t,n){return Ee(t)?Cw(e,t,n):ke(t)?Fw(e,t,t.items,n):En(t)?Dw(e,t,n):Jt(t)?Nw(e,t,n):We(t)?Uw(e,t.parameters,t.instanceType,n):Pe(t)?Gw(e,t.if,t.then,t.else,n):ot(t)?Bw(e,t.enum,n):Be(t)?Hw(e,t.parameters,t.returnType,n):ht(t)?Jw(e,t,n):oe(t)?Xw(e,t.allOf,n):le(t)?Qw(e,t,n):un(t)?tI(e,t,n):so(t)?rI(e,t,n):Fe(t)?sI(e,t,n):pe(t)?uI(e,t.properties,n):it(t)?cI(e,Qt(t),wt(t),n):yt(t)?lI(e,t,n):er(t)?fI(e,t,n):Re(t)?hI(e,t.pattern,n):be(t)?II(e,t.items,n):fo(t)?kI(e,t,n):F(t)?EI(e,t.anyOf,n):Oe(t)?PI(e,t,n):Rn(t)?AI(e,t,n):H()}var Pt=u(()=>{Lw();jw();_w();qw();Kw();Ww();zw();Vw();Yw();Zw();eI();nI();oI();iI();mI();pI();dI();gI();xI();$I();TI();SI();RI();MI();$t();gt();Pr();Qn();Bt();Ot();mn();zt();Sn();qe();Le();Je();io();xt();fe();Xe();Xt();Ar();vt();Ke();go();nt();Q();Cr();we()});function qC(e,t){return Te([...e,W(t)])}function bp(e,t,n){return V(e)?f.Update(qC(e,t),{},n):Ts(e,t,n)}function OI(e,t,n,r,o){let s=Ut(e,t,n),i=Ls(e,t,r);return bp(s,i,o)}var Ja=u(()=>{S();fe();Y();xo();q();q();q()});function Ts(e,t,n={}){return j("Interface",[e,t],n)}function $o(e){return Ne(e)&&m.HasPropertyKey(e,"action")&&m.IsEqual(e.action,"Interface")}function CI(e,t,n={}){return bp(e,t,n)}var Fs=u(()=>{O();J();ce();Ja()});function UC(e,t,n){return e.includes(n)?!0:js([...e,n],t,t[n])}function LI(e,t,n){let r=Di(n);return Fr(e,t,r)}function Fr(e,t,n){return m.ShiftLeft(n,(r,o)=>js(e,t,r)?!0:Fr(e,t,o),()=>!1)}function js(e,t,n){return ze(n)?UC(e,t,n.$ref):ke(n)?js(e,t,n.items):We(n)?Fr(e,t,[...n.parameters,n.instanceType]):Be(n)?Fr(e,t,[...n.parameters,n.returnType]):$o(n)?LI(e,t,n.parameters[1]):oe(n)?Fr(e,t,n.allOf):pe(n)?LI(e,t,n.properties):F(n)?Fr(e,t,n.anyOf):be(n)?Fr(e,t,n.items):it(n)?js(e,t,wt(n)):!1}function FI(e,t,n){return js(e,t,n)}var wp=u(()=>{O();gt();Bt();zt();qe();fe();kr();Xe();Ke();Q();Ht();Fs()});function KC(e,t){return t.reduce((n,r)=>FI([r],e,e[r])?[...n,r]:n,[])}function jI(e){let t=ji(e);return KC(e,t)}var Ip=u(()=>{kr();wp()});function GC(e,t,n){return n.includes(t)?n:t in e?Ds(e,e[t],[...n,t]):Ue()}function DI(e,t,n){let r=Di(t);return ko(e,r,n)}function ko(e,t,n){return t.reduce((r,o)=>Ds(e,o,r),n)}function Ds(e,t,n){return ze(t)?GC(e,t.$ref,n):ke(t)?Ds(e,t.items,n):We(t)?ko(e,[...t.parameters,t.instanceType],n):Be(t)?ko(e,[...t.parameters,t.returnType],n):$o(t)?DI(e,t.parameters[1],n):oe(t)?ko(e,t.allOf,n):pe(t)?DI(e,t.properties,n):F(t)?ko(e,t.anyOf,n):be(t)?ko(e,t.items,n):it(t)?Ds(e,wt(t),n):n}function _I(e,t,n){return Ds(e,n,[t])}var $p=u(()=>{Tn();gt();Bt();zt();qe();fe();kr();Xe();Ke();Q();Ht();Fs()});function WC(e){return to()}function BC(e){return m.Keys(e).reduce((t,n)=>({...t,[n]:jr(e[n])}),{})}function _s(e){return e.reduce((t,n)=>[...t,jr(n)],[])}function jr(e){return ze(e)?WC(e.$ref):ke(e)?qt(jr(e.items),Fi(e)):We(e)?bn(_s(e.parameters),jr(e.instanceType)):Be(e)?wn(_s(e.parameters),jr(e.returnType)):oe(e)?Tt(_s(e.allOf)):pe(e)?W(BC(e.properties)):it(e)?aa(co(e),jr(wt(e))):F(e)?X(_s(e.anyOf)):be(e)?je(_s(e.items)):e}function zC(e,t){return t in e?jr(e[t]):Ye()}function NI(e){return zC(e.$defs,e.$ref)}var qI=u(()=>{O();$t();gt();Bt();zt();qe();fe();Xe();Ht();Ke();Q();nt()});function HC(e,t,n){let r=Ut(e,Ie([],[]),t),o=Ls({},Ie([],[]),n);return Te([...r,W(o)])}function VC(e,t){return m.Keys(e).filter(r=>t.includes(r)).reduce((r,o)=>{let s=e[o],i=$o(s)?HC(e,s.parameters[0],s.parameters[1]):s;return{...r,[o]:i}},{})}function UI(e,t,n){let r=_I(e,t,n),o=VC(e,r);return $n(o,t)}var kp=u(()=>{O();kt();fe();$p();xo();q();q();q();Y()});function KI(e,t){return t in e?ze(e[t])?KI(e,e[t].$ref):e[t]:ge()}function On(e,t){return KI(e,t)}var Dr=u(()=>{Je();Ht()});var Tp=u(()=>{Ip();wp();$p();qI();kp();Dr()});function GI(e){return rt(e)?NI(e):_i(e)?Ye():e}function st(e,t,n){let r=GI(t),o=GI(n);return ae(e,r,o)}var WI=u(()=>{kt();nt();Ni();Pt();Tp()});var Pn=u(()=>{WI();we()});function bs(e,t){let n=[st({},e,t),st({},t,e)];return B.IsExtendsTrueLike(n[0])&&B.IsExtendsTrueLike(n[1])?xs:B.IsExtendsTrueLike(n[0])&&B.IsExtendsFalse(n[1])?ys:B.IsExtendsFalse(n[0])&&B.IsExtendsTrueLike(n[1])?na:Ya}var xs,Ya,ys,na,ws=u(()=>{Pn();xs=0,Ya=1,ys=2,na=3});function vp(e,t,n=[],r=t){return m.ShiftLeft(t,(o,s)=>{let i=bs(e,o);return m.IsEqual(i,ys)||m.IsEqual(i,xs)?r:m.IsEqual(i,Ya)?vp(e,s,[...n,o],r):vp(e,s,n,r)},()=>[...n,e])}function JC(e,t,n){let r=Zt(e);return Ee(r)?[r]:Oe(r)?[r]:un(r)?Xa(t,n):pe(r)?Xa(t,[...n,r]):Xa(t,vp(r,n))}function Xa(e,t=[]){return m.ShiftLeft(e,(n,r)=>JC(n,r,t),()=>t)}function qc(e){let t=Xa(e);return mo(t)}var Uc=u(()=>{O();$t();Je();fe();nt();ws();oa();Y()});function Ep(e,t){return f.Update(Zt(e),{},t)}function BI(e,t,n,r){let o=T(e,t,n);return Ep(o,r)}var Za=u(()=>{S();q();Y()});var Os=u(()=>{Uc();ws();jc();_c();Y();oa();Za();Dc()});function Ns(e,t=[]){return Yn(e)&&m.IsEqual(e.action,"Conditional")?ze(e.parameters[0])?Ns(e.parameters[2],Ns(e.parameters[3],[...t,e.parameters[0].$ref])):Ns(e.parameters[2],Ns(e.parameters[3],t)):Yn(e)&&m.IsEqual(e.action,"Mapped")&&Yn(e.parameters[1])&&m.IsEqual(e.parameters[1].action,"KeyOf")&&ze(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function YC(e,t){return e.reduce((n,r)=>[...n,t.includes(r.name)],[])}function VI(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>m.ShiftLeft(t,(s,i)=>VI(o,i,[...n,[s,r]]),()=>n),()=>n)}function XC(e){return Re(e)?mt(e.pattern):ot(e)?bt(e.enum):e}function ZC(e){let t=XC(e);return F(t)?[...t.anyOf]:[t]}function QC(e,t){return e.reduce((n,r)=>[...n,[...r,t]],[])}function zI(e,t){return t.reduce((n,r)=>[...n,...QC(e,r)],[])}function HI(e){return e.reduce((t,n)=>m.IsEqual(n[0],!0)?zI(t,ZC(n[1])):zI(t,[n[1]]),[[]])}function JI(e,t,n){let r=Ns(n),o=YC(e,r),s=VI(t,o);return Yn(n)&&m.IsEqual(n.action,"Conditional")||Yn(n)&&m.IsEqual(n.action,"Mapped")?HI(s):[t]}var YI=u(()=>{O();Q();ce();mn();vt();Ht();Y();Y()});function eL(){return["(not-resolvable)",ge()]}function tL(){return["(not-generic)",ge()]}function nL(e,t,n){return[e,Xn(t,n)]}function rL(e,t,n){return t in e?XI(e,t,e[t],n):eL()}function XI(e,t,n,r){return eo(n)?nL(t,n.parameters,n.expression):ze(n)?rL(e,n.$ref,r):tL()}function ZI(e,t,n){return XI(e,"(anonymous)",t,n)}var QI=u(()=>{rs();Ht();Je()});function oL(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 e$(e,t,n,r,o){let s=T(e,t,o);return oL(n,s,r),f.Assign(e,{[n]:s})}function sL(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(e$(e,t,n.name,s,c),t,r,p),()=>Sp(e$(e,t,n.name,s,i),t,r,[]))}function Sp(e,t,n,r){return m.ShiftLeft(n,(o,s)=>sL(e,t,o,s,r),()=>e)}function t$(e,t,n,r){return Sp(e,t,n,r)}var n$=u(()=>{O();S();q();Pn();Vt();ho()});function iL(){if(!m.IsLessThan(Rp,an.Get().maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite")}function aL(){iL(),Rp++,Pp++}function uL(){Pp--,m.IsEqual(Pp,0)&&(Rp=0)}function mL(e){return m.IsGreaterThan(e.callstack.length,0)?e.callstack[e.callstack.length-1]:""}function cL(e,t){return m.IsEqual(mL(e),t)}function pL(e,t,n,r,o,s){aL();try{let i=t$(e,t,r,s),c=T(i,Ie([...t.callstack,n.$ref],t.visited),o);return T(i,Ie([],[]),c)}finally{uL()}}function lL(e,t,n,r,o,s){return s.reduce((i,c)=>{let p=pL(e,t,n,r,o,c);return[...i,p]},[])}function dL(e,t,n,r,o,s){let i=JI(r,s,o),c=lL(e,t,n,r,o,i);return m.IsEqual(c.length,1)?c[0]:St(c)}function Qa(e,t,n,r){let o=Ut(e,t,r),s=ZI(e,n,r),i=s[0],c=s[1];return eo(c)?cL(t,i)?vs(qn(i),o):dL(e,t,qn(i),c.parameters,c.expression,o):vs(n,o)}var Pp,Rp,Ap=u(()=>{wr();O();ho();Ht();rs();Os();q();q();q();YI();QI();n$();Pp=0,Rp=0});function vs(e,t){return f.Create({"~kind":"Call"},{type:"call",target:e,arguments:t},{})}function r$(e,t){return Qa({},Ie([],[]),e,t)}function To(e){return L(e,"Call")}var ho=u(()=>{S();J();Ap();q()});function fL(e){return f.Discard(e,["~immutable"])}function o$(e,t){return f.Update(fL(e),{},t)}function s$(e,t,n,r){let o=T(e,t,n);return o$(o,r)}var Mp=u(()=>{S();q()});function i$(e,t){return e(t)}var a$=u(()=>{});function u$(e,t){return m.IsString(t)?se(i$(e,t)):se(t)}var m$=u(()=>{O();Le();a$()});function c$(e,t){let n=mt(t);return Gn(e,n)}var p$=u(()=>{eu();Os()});function l$(e,t){let n=t.map(r=>Gn(e,r));return X(n)}var d$=u(()=>{Q();eu()});function Gn(e,t){return le(t)?u$(e,t.const):Re(t)?c$(e,t.pattern):F(t)?l$(e,t.anyOf):t}var eu=u(()=>{Le();vt();Q();m$();p$();d$()});function ga(e,t={}){return j("Capitalize",[e],t)}function f$(e,t={}){return Op(e,t)}var tu=u(()=>{ce();Cn()});function ha(e,t={}){return j("Lowercase",[e],t)}function g$(e,t={}){return Cp(e,t)}var nu=u(()=>{ce();Cn()});function xa(e,t={}){return j("Uncapitalize",[e],t)}function h$(e,t={}){return Lp(e,t)}var ru=u(()=>{ce();Cn()});function ya(e,t={}){return j("Uppercase",[e],t)}function x$(e,t={}){return Fp(e,t)}var ou=u(()=>{ce();Cn()});function Op(e,t){return V([e])?f.Update(Gn(gL,e),{},t):ga(e,t)}function Cp(e,t){return V([e])?f.Update(Gn(hL,e),{},t):ha(e,t)}function Lp(e,t){return V([e])?f.Update(Gn(xL,e),{},t):xa(e,t)}function Fp(e,t){return V([e])?f.Update(Gn(yL,e),{},t):ya(e,t)}function y$(e,t,n,r){let o=T(e,t,n);return Op(o,r)}function b$(e,t,n,r){let o=T(e,t,n);return Cp(o,r)}function w$(e,t,n,r){let o=T(e,t,n);return Lp(o,r)}function I$(e,t,n,r){let o=T(e,t,n);return Fp(o,r)}var gL,hL,xL,yL,Cn=u(()=>{S();eu();q();tu();nu();ru();ou();gL=e=>e[0].toUpperCase()+e.slice(1),hL=e=>e.toLowerCase(),xL=e=>e[0].toLowerCase()+e.slice(1),yL=e=>e.toUpperCase()});function ba(e,t,n,r,o={}){return j("Conditional",[e,t,n,r],o)}function $$(e,t,n,r,o={}){return jp({},Ie([],[]),e,t,n,r,o)}var su=u(()=>{ce();Dp();q()});function bL(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])?f.Update(bL(e,t,n,r,o,s),{},i):ba(n,r,o,s,i)}function k$(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();Pn();q();su()});var _p=u(()=>{Dp()});function wa(e,t={}){return j("ConstructorParameters",[e],t)}function T$(e,t={}){return Np(e,t)}var iu=u(()=>{ce();au()});function wL(e){let t=We(e)?e.parameters:[],n=mr({},Ie([],[]),t);return je(n)}function Np(e,t){return V([e])?f.Update(wL(e),{},t):wa(e,t)}function v$(e,t,n,r){let o=T(e,t,n);return Np(o,r)}var au=u(()=>{S();Bt();Ke();iu();q();q();q()});function Ia(e,t,n={}){return j("Exclude",[e,t],n)}function E$(e,t,n={}){return qs(e,t,n)}var uu=u(()=>{ce();Us()});function qs(e,t,n){return V([e,t])?f.Update(ra(e,t),{},n):Ia(e,t,n)}function S$(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return qs(s,i,o)}var Us=u(()=>{S();q();uu();Nc()});function $a(e,t,n={}){return j("Extract",[e,t],n)}function P$(e,t,n={}){return qp(e,t,n)}var mu=u(()=>{ce();cu()});function IL(e,t){let n=st({},e,t);return B.IsExtendsTrueLike(n)?[e]:[]}function R$(e,t,n=[]){return m.ShiftLeft(e,(r,o)=>R$(o,t,[...n,...IL(r,t)]),()=>n)}function A$(e,t){let n=Zt(e),r=F(n)?n.anyOf:[n],o=R$(r,t);return St(o)}var M$=u(()=>{O();Q();Pn();Y();Y()});function qp(e,t,n){return V([e,t])?f.Update(A$(e,t),{},n):$a(e,t,n)}function O$(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return qp(s,i,o)}var cu=u(()=>{S();q();mu();M$()});function $L(e){return e.reduce((t,n)=>Bi(n)?[...t,se(n)]:t,[])}function vo(e){let t=$L(e);return X(t)}var Ks=u(()=>{Le();Q()});function Es(e,t,n={}){return j("Index",[e,t],n)}function C$(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Kp(e,r,n)}var Up=u(()=>{O();ce();Ks();pu()});function L$(e,t){let n=On(e,t);return Kt(n)}var F$=u(()=>{_r();Dr()});function j$(e,t,n){let r=pn(e,t,n);return Kt(r)}var D$=u(()=>{_r();Y()});function kL(e,t){let n=m.Keys(e).filter(b=>!m.HasPropertyKey(t,b)),r=m.Keys(t).filter(b=>!m.HasPropertyKey(e,b)),o=m.Keys(e).filter(b=>m.HasPropertyKey(t,b)),s=n.reduce((b,I)=>({...b,[I]:e[I]}),{}),i=r.reduce((b,I)=>({...b,[I]:t[I]}),{}),c=o.reduce((b,I)=>({...b,[I]:Te([e[I],t[I]])}),{}),p=f.Assign(s,i);return f.Assign(p,c)}function _$(e){return e.reduce((t,n)=>kL(t,Kt(n)),{})}var N$=u(()=>{S();O();_r();Y()});var q$=u(()=>{});function U$(e){let t=Kh(je(e));return Kt(t)}var K$=u(()=>{Ke();Lc();_r()});function TL(e,t){return m.Keys(e).filter(o=>o in t).reduce((o,s)=>({...o,[s]:St([e[s],t[s]])}),{})}function G$(e,t){return m.ShiftLeft(e,(n,r)=>G$(r,TL(t,Kt(n))),()=>t)}function W$(e){return m.ShiftLeft(e,(t,n)=>G$(n,Kt(t)),()=>Ue())}var B$=u(()=>{O();Tn();Y();_r()});function Kt(e){return rt(e)?L$(e.$defs,e.$ref):Pe(e)?j$(e.if,e.then,e.else):oe(e)?_$(e.allOf):F(e)?W$(e.anyOf):be(e)?U$(e.items):pe(e)?e.properties:{}}var _r=u(()=>{kt();Ot();qe();fe();Ke();Q();F$();D$();N$();q$();K$();B$()});function Eo(e){let t=Kt(e);return W(t)}var z$=u(()=>{fe();_r()});var Gs=u(()=>{z$()});function So(e){let t=`${e}`;return vL.test(t)?parseInt(t):e}var vL,Ws=u(()=>{vL=new RegExp("^(?:0|[1-9][0-9]*)$")});function EL(e){return se(So(e))}function H$(e){return e.map(t=>V$(t))}function V$(e){return oe(e)?Tt(H$(e.allOf)):F(e)?X(H$(e.anyOf)):le(e)?EL(e.const):e}function J$(e,t){let n=V$(t),r=st({},n,Ct());return B.IsExtendsTrueLike(r)?e:le(t)&&m.IsEqual(t.const,"length")?Ct():ge()}var Y$=u(()=>{O();qe();Q();Le();xt();Je();Pn();Ws()});function X$(e,t){let n=On(e,t);return Ft(n)}var Z$=u(()=>{cr();Dr()});function Q$(e,t,n){let r=pn(e,t,n);return Ft(r)}var ek=u(()=>{cr();Y()});function tk(e){let t=bt(e);return Ft(t)}var nk=u(()=>{cr();Y()});function rk(e){let t=Te(e);return Ft(t)}var ok=u(()=>{Y();cr()});function sk(e){return[`${e}`]}var ik=u(()=>{});function ak(e){let t=mt(e);return Ft(t)}var uk=u(()=>{cr();Y()});function mk(e){return e.reduce((t,n)=>[...t,...Ft(n)],[])}var ck=u(()=>{cr()});function Ft(e){return rt(e)?X$(e.$defs,e.$ref):Pe(e)?Q$(e.if,e.then,e.else):ot(e)?tk(e.enum):oe(e)?rk(e.allOf):le(e)?sk(e.const):Re(e)?ak(e.pattern):F(e)?mk(e.anyOf):[]}var cr=u(()=>{kt();Ot();mn();qe();Le();vt();Q();Z$();ek();nk();ok();ik();uk();ck()});function Po(e){return Ft(e)}var lu=u(()=>{cr()});function Bs(e,t){return t.map(n=>zs(e,n))}function zs(e,t){return ke(t)?qt(zs(e,t.items)):We(t)?bn(Bs(e,t.parameters),zs(e,t.instanceType)):Be(t)?wn(Bs(e,t.parameters),zs(e,t.returnType)):be(t)?je(Bs(e,t.items)):F(t)?X(Bs(e,t.anyOf)):oe(t)?Tt(Bs(e,t.allOf)):ca(t)?W(e):t}function pk(e,t){return zs(e,t)}var lk=u(()=>{gt();Bt();zt();qe();fe();Ke();pa();Q()});function SL(e,t){let n=t in e?e[t]:ge();return pk(e,n)}function dk(e,t){return t.reduce((n,r)=>[...n,SL(e,r)],[])}function PL(e,t){let n=Po(t),r=dk(e,n);return St(r)}function AL(e){return e.filter(n=>RL.test(n))}function ML(e){let t=ji(e),n=AL(t),r=dk(e,n);return St(r)}function fk(e,t){return Fe(t)?ML(e):PL(e,t)}var RL,gk=u(()=>{xt();Je();kr();Y();lu();Xe();lk();RL=new RegExp(or)});function OL(e){return se(So(e))}function hk(e){return e.map(t=>Gp(t))}function Gp(e){return oe(e)?Tt(hk(e.allOf)):F(e)?X(hk(e.anyOf)):le(e)?OL(e.const):e}var xk=u(()=>{Q();qe();Le();Ws()});function CL(e,t){return e.reduceRight((n,r,o)=>{let s=st({},se(o),t);return B.IsExtendsTrueLike(s)?[r,...n]:n},[])}function LL(e,t){let n=Gp(t),r=CL(e,n);return nr(r)}function FL(e){return nr(e)}function yk(e,t){return le(t)&&m.IsEqual(t.const,"length")?se(e.length):Fe(t)||ht(t)?FL(e):LL(e,t)}var bk=u(()=>{O();Le();xt();Sn();Y();Pn();xk()});function wk(e,t){return ke(e)?J$(e.items,t):pe(e)?fk(e.properties,t):be(e)?yk(e.items,t):ge()}var Ik=u(()=>{gt();Je();fe();Ke();Y$();gk();bk()});function jL(e){return rt(e)||Pe(e)||oe(e)||F(e)?Eo(e):e}function Kp(e,t,n){return V([e,t])?f.Update(wk(jL(e),t),{},n):Es(e,t,n)}function $k(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Kp(s,i,o)}var pu=u(()=>{S();kt();Ot();qe();Q();q();Up();Gs();Ik()});function ka(e,t={}){return j("InstanceType",[e],t)}function kk(e,t={}){return Wp(e,t)}var du=u(()=>{ce();fu()});function DL(e){return We(e)?e.instanceType:ge()}function Wp(e,t){return V([e])?f.Update(DL(e),{},t):ka(e,t)}function Tk(e,t,n,r={}){let o=T(e,t,n);return Wp(o,r)}var fu=u(()=>{S();Bt();Je();du();q()});function Ss(e,t={}){return j("KeyOf",[e],t)}function vk(e,t={}){return Bp(e,t)}var gu=u(()=>{ce();hu()});function Ek(){return X([Ct(),Yt(),ao()])}var Sk=u(()=>{xt();Xt();Ar();Q()});function Pk(e){return Ct()}var Rk=u(()=>{xt()});function _L(e){return e.reduce((n,r)=>Bi(r)?[...n,se(So(r))]:Ue(),[])}function Ak(e){let t=m.Keys(e),n=_L(t);return nr(n)}var Mk=u(()=>{Tn();O();Le();Ws();Y()});function Ok(e){return co(e)}var Ck=u(()=>{Xe()});function Lk(e){let t=e.map((n,r)=>se(r));return nr(t)}var Fk=u(()=>{Le();Y()});function jk(e){return Ee(e)?Ek():ke(e)?Pk(e.items):pe(e)?Ak(e.properties):it(e)?Ok(e):be(e)?Lk(e.items):ge()}var Dk=u(()=>{$t();gt();Je();fe();Xe();Ke();Sk();Rk();Mk();Ck();Fk()});function NL(e){return rt(e)||Pe(e)||oe(e)||F(e)?Eo(e):e}function Bp(e,t){return V([e])?f.Update(jk(NL(e)),{},t):Ss(e,t)}function _k(e,t,n,r){let o=T(e,t,n);return Bp(o,r)}var hu=u(()=>{S();kt();Ot();qe();Q();gu();q();Gs();Dk()});function ks(e,t,n,r,o={}){return j("Mapped",[e,t,n,r],o)}function Nk(e,t,n,r,o={}){return zp({},Ie([],[]),e,t,n,r,o)}var xu=u(()=>{ce();yu();q()});function qL(e){let t=mt(e);return bu(t)}function UL(e){return e.reduce((t,n)=>[...t,...bu(n)],[])}function KL(e){let t=bt(e);return bu(t)}function GL(e){return m.IsNumber(e)?[se(`${e}`)]:[se(e)]}function bu(e){return ot(e)?KL(e.enum):le(e)?GL(e.const):Re(e)?qL(e.pattern):F(e)?UL(e.anyOf):[e]}function qk(e){return bu(e)}var Uk=u(()=>{O();Le();mn();vt();Q();Y();Y()});function WL(e){return Re(e)?mt(e.pattern):e}function BL(e,t,n,r,o,s){let i=f.Assign(e,{[n.name]:r}),c=T(i,t,o),p=WL(c),d=T(i,t,s);return wh(p)||Ih(p)?{[p.const]:d}:{}}function zL(e,t,n,r,o,s){return r.reduce((i,c)=>[...i,BL(e,t,n,c,o,s)],[])}function HL(e){return e.reduce((t,n)=>[...t,W(n)],[])}function Kk(e,t,n,r,o,s){let i=qk(r),c=zL(e,t,n,i,o,s),p=HL(c);return Te(p)}var Gk=u(()=>{S();Le();fe();vt();q();Y();Y();Uk()});function zp(e,t,n,r,o,s,i){return V([r])?f.Update(Kk(e,t,n,r,o,s),{},i):ks(n,r,o,s,i)}function Wk(e,t,n,r,o,s,i){let c=T(e,t,r);return zp(e,t,n,c,o,s,i)}var yu=u(()=>{S();xu();q();Gk()});function VL(e,t,n){let r=f.Assign(e,t);return m.Keys(t).filter(s=>n.includes(s)).reduce((s,i)=>({...s,[i]:UI(r,i,t[i])}),{})}function JL(e,t,n){let r=f.Assign(e,t);return m.Keys(t).filter(s=>!n.includes(s)).reduce((s,i)=>({...s,[i]:T(r,Ie([],[]),t[i])}),{})}function YL(e,t,n){let r=jI(t),o=VL(e,t,r),s=JL(e,t,r),i={...o,...s};return f.Update(i,{},n)}function wu(e,t,n,r){return YL(e,n,r)}var Iu=u(()=>{O();S();q();Ip();kp();q()});function Ta(e,t={}){return j("NonNullable",[e],t)}function Bk(e,t={}){return Hp(e,t)}var $u=u(()=>{ce();ku()});function XL(e){let t=X([oo(),lo()]);return qs(e,t,{})}function Hp(e,t){return V([e])?f.Update(XL(e),{},t):Ta(e,t)}function zk(e,t,n,r){let o=T(e,t,n);return Hp(o,r)}var ku=u(()=>{S();io();go();Q();Us();$u();q()});function va(e,t,n={}){return j("Omit",[e,t],n)}function Hk(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Vp(e,r,n)}var Tu=u(()=>{O();ce();Ks();vu()});function Eu(e){let t=Eo(e);return pe(t)?t.properties:Ue()}var Jp=u(()=>{Tn();fe();Gs()});function ZL(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?r:{...r,[o]:e[o]},{})}function Vk(e,t){let n=Eu(e),r=Po(t),o=ZL(n,r);return W(o)}var Jk=u(()=>{O();fe();lu();Jp()});function Vp(e,t,n){return V([e,t])?f.Update(Vk(e,t),{},n):va(e,t,n)}function Yk(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Vp(s,i,o)}var vu=u(()=>{S();Tu();q();Jk()});function Ea(e,t={}){return j("Parameters",[e],t)}function Xk(e,t={}){return Yp(e,t)}var Su=u(()=>{ce();Pu()});function QL(e){let t=Be(e)?e.parameters:[],n=mr({},Ie([],[]),t);return je(n)}function Yp(e,t){return V([e])?f.Update(QL(e),{},t):Ea(e,t)}function Zk(e,t,n,r){let o=T(e,t,n);return Yp(o,r)}var Pu=u(()=>{S();zt();Ke();Su();q();q();q()});function Sa(e,t={}){return j("Partial",[e],t)}function Qk(e,t={}){return Xp(e,t)}var Ru=u(()=>{ce();Au()});function eT(e,t){let n=On(e,t),r=Ln(n);return $n(f.Assign(e,{[t]:r}),t)}var tT=u(()=>{S();kt();Ro();Dr()});function nT(e,t,n){let r=pn(e,t,n);return Ln(r)}var rT=u(()=>{Ro();Y()});function oT(e){let t=Te(e);return Ln(t)}var sT=u(()=>{Ro();Y()});function iT(e){let t=e.map(n=>Ln(n));return X(t)}var aT=u(()=>{Q();Ro()});function uT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:$r(e[o])}),{});return W(t)}var mT=u(()=>{O();fe();os()});function Ln(e){return rt(e)?eT(e.$defs,e.$ref):Pe(e)?nT(e.if,e.then,e.else):oe(e)?oT(e.allOf):F(e)?iT(e.anyOf):pe(e)?uT(e.properties):W({})}var Ro=u(()=>{kt();Ot();qe();fe();Q();tT();rT();sT();aT();mT()});function Xp(e,t){return V([e])?f.Update(Ln(e),{},t):Sa(e,t)}function cT(e,t,n,r){let o=T(e,t,n);return Xp(o,r)}var Au=u(()=>{S();Ru();Ro();q()});function Pa(e,t,n={}){return j("Pick",[e,t],n)}function pT(e,t,n={}){let r=m.IsArray(t)?vo(t):t;return Zp(e,r,n)}var Mu=u(()=>{O();ce();Ks();Ou()});function eF(e,t){return m.Keys(e).reduce((r,o)=>t.includes(o)?f.Assign(r,{[o]:e[o]}):r,{})}function lT(e,t){let n=Eu(e),r=Po(t),o=eF(n,r);return W(o)}var dT=u(()=>{S();O();fe();lu();Jp()});function Zp(e,t,n){return V([e,t])?f.Update(lT(e,t),{},n):Pa(e,t,n)}function fT(e,t,n,r,o){let s=T(e,t,n),i=T(e,t,r);return Zp(s,i,o)}var Ou=u(()=>{S();Mu();q();dT()});function Ra(e,t={}){return j("ReadonlyObject",[e],t)}function Qp(e,t={}){return el(e,t)}var gT,Cu=u(()=>{ce();Lu();gT=Qp});function hT(e){return ro(qt(e))}var xT=u(()=>{gt();cs()});function yT(e,t){let n=On(e,t),r=Fn(n);return $n(f.Assign(e,{[t]:r}),t)}var bT=u(()=>{S();kt();Ao();Dr()});function wT(e,t,n){let r=pn(e,t,n);return Fn(r)}var IT=u(()=>{Ao();Y()});function $T(e){let t=Te(e);return Fn(t)}var kT=u(()=>{Ao();Y()});function TT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:Er(e[o])}),{});return W(t)}var vT=u(()=>{O();fe();ps()});function ET(e){return ro(je(e))}var ST=u(()=>{Ke();cs()});function PT(e){let t=e.map(n=>Fn(n));return X(t)}var RT=u(()=>{Q();Ao()});function Fn(e){return ke(e)?hT(e.items):rt(e)?yT(e.$defs,e.$ref):Pe(e)?wT(e.if,e.then,e.else):oe(e)?$T(e.allOf):pe(e)?TT(e.properties):be(e)?ET(e.items):F(e)?PT(e.anyOf):e}var Ao=u(()=>{gt();kt();Ot();qe();fe();Ke();Q();xT();bT();IT();kT();vT();ST();RT()});function el(e,t){return V([e])?f.Update(Fn(e),{},t):Ra(e)}function AT(e,t,n,r){let o=T(e,t,n);return el(o,r)}var Lu=u(()=>{S();Cu();Ao();q()});function MT(e,t,n,r){return t.visited.includes(r)?n:r in e?T(e,Ie(t.callstack,[...t.visited,r]),e[r]):n}var tl=u(()=>{q();q()});function OT(e,t){let n=On(e,t),r=jn(n);return $n(f.Assign(e,{[t]:r}),t)}var CT=u(()=>{S();kt();Mo();Dr()});function LT(e,t,n){let r=pn(e,t,n);return jn(r)}var FT=u(()=>{Mo();Y()});function jT(e){let t=Te(e);return jn(t)}var DT=u(()=>{Mo();Y()});function _T(e){let t=e.map(n=>jn(n));return X(t)}var NT=u(()=>{Q();Mo()});function qT(e){let t=m.Keys(e).reduce((r,o)=>({...r,[o]:ea(e[o])}),{});return W(t)}var UT=u(()=>{O();fe();ta()});function jn(e){return rt(e)?OT(e.$defs,e.$ref):Pe(e)?LT(e.if,e.then,e.else):oe(e)?jT(e.allOf):F(e)?_T(e.anyOf):pe(e)?qT(e.properties):W({})}var Mo=u(()=>{kt();Ot();qe();fe();Q();CT();FT();DT();NT();UT()});function Aa(e,t={}){return j("Required",[e],t)}function KT(e,t={}){return nl(e,t)}var Fu=u(()=>{ce();ju()});function nl(e,t){return V([e])?f.Update(jn(e),{},t):Aa(e,t)}function GT(e,t,n,r){let o=T(e,t,n);return nl(o,r)}var ju=u(()=>{S();Mo();Fu();q()});function Ma(e,t={}){return j("ReturnType",[e],t)}function WT(e,t={}){return rl(e,t)}var Du=u(()=>{ce();_u()});function tF(e){return Be(e)?e.returnType:ge()}function rl(e,t){return V([e])?f.Update(tF(e),{},t):Ma(e,t)}function BT(e,t,n,r={}){let o=T(e,t,n);return rl(o,r)}var _u=u(()=>{S();zt();Je();Du();q()});function Oa(e,t){return j("With",[e,t],{})}function zT(e,t){return ol(e,t)}var Nu=u(()=>{ce();qu()});function ol(e,t){return V([e])?f.Update(e,{},t):Oa(e,t)}function HT(e,t,n,r){let o=T(e,t,n);return ol(o,r)}var qu=u(()=>{S();q();Nu()});function nF(e){return sr(e)?be(e.items)?sl(e.items.items):Ce(e.items)?[e]:ze(e.items)?[e]:[ge()]:[e]}function sl(e){return e.reduce((n,r)=>[...n,...nF(r)],[])}var VT=u(()=>{Vt();Je();po();Ht();Ke()});var JT=u(()=>{VT()});function Ie(e,t){return{callstack:e,visited:t}}function V(e){return m.ShiftLeft(e,(t,n)=>ze(t)?!1:V(n),()=>!0)}function Ls(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 rF(e,t){let n=ut(e)?ns(t,{}):t,r=Sr(e)?ts(n,{}):n;return vr(e)?Hs(r,{}):r}function oF(e,t,n,r,o){return m.IsEqual(n,"AddImmutable")?YT(e,t,r[0],o):m.IsEqual(n,"RemoveImmutable")?s$(e,t,r[0],o):m.IsEqual(n,"AddReadonly")?rg(e,t,r[0],o):m.IsEqual(n,"RemoveReadonly")?Dh(e,t,r[0],o):m.IsEqual(n,"AddOptional")?og(e,t,r[0],o):m.IsEqual(n,"RemoveOptional")?qh(e,t,r[0],o):m.IsEqual(n,"Capitalize")?y$(e,t,r[0],o):m.IsEqual(n,"Conditional")?k$(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"ConstructorParameters")?v$(e,t,r[0],o):m.IsEqual(n,"Evaluate")?BI(e,t,r[0],o):m.IsEqual(n,"Exclude")?S$(e,t,r[0],r[1],o):m.IsEqual(n,"Extract")?O$(e,t,r[0],r[1],o):m.IsEqual(n,"Index")?$k(e,t,r[0],r[1],o):m.IsEqual(n,"InstanceType")?Tk(e,t,r[0],o):m.IsEqual(n,"Interface")?OI(e,t,r[0],r[1],o):m.IsEqual(n,"KeyOf")?_k(e,t,r[0],o):m.IsEqual(n,"Lowercase")?b$(e,t,r[0],o):m.IsEqual(n,"Mapped")?Wk(e,t,r[0],r[1],r[2],r[3],o):m.IsEqual(n,"Module")?wu(e,t,r[0],o):m.IsEqual(n,"NonNullable")?zk(e,t,r[0],o):m.IsEqual(n,"Pick")?fT(e,t,r[0],r[1],o):m.IsEqual(n,"Parameters")?Zk(e,t,r[0],o):m.IsEqual(n,"Partial")?cT(e,t,r[0],o):m.IsEqual(n,"Omit")?Yk(e,t,r[0],r[1],o):m.IsEqual(n,"ReadonlyObject")?AT(e,t,r[0],o):m.IsEqual(n,"Record")?px(e,t,r[0],r[1],o):m.IsEqual(n,"Required")?GT(e,t,r[0],o):m.IsEqual(n,"ReturnType")?BT(e,t,r[0],o):m.IsEqual(n,"TemplateLiteral")?Ew(e,t,r[0],o):m.IsEqual(n,"Uncapitalize")?w$(e,t,r[0],o):m.IsEqual(n,"Uppercase")?I$(e,t,r[0],o):m.IsEqual(n,"With")?HT(e,t,r[0],r[1]):j(n,r,o)}function sF(e,t,n){let r=ze(n)?MT(e,t,n,n.$ref):ke(n)?qt(T(e,t,n.items),Fi(n)):To(n)?Qa(e,t,n.target,n.arguments):We(n)?bn(Ut(e,t,n.parameters),T(e,t,n.instanceType),sg(n)):Be(n)?wn(Ut(e,t,n.parameters),T(e,t,n.returnType),ig(n)):Pe(n)?Tr(T(e,t,n.if),T(e,t,n.then),T(e,t,n.else),dg(n)):oe(n)?Tt(Ut(e,t,n.allOf),yg(n)):pe(n)?W(Ls(e,t,n.properties),cg(n)):it(n)?lx(Qt(n),T(e,t,wt(n))):sr(n)?Or(T(e,t,n.items)):be(n)?je(mr(e,t,n.items),jh(n)):F(n)?X(Ut(e,t,n.anyOf),kh(n)):n;return rF(n,r)}function T(e,t,n){return Yn(n)?oF(e,t,n.action,n.parameters,n.options):sF(e,t,n)}function il(e,t){return T(e,Ie([],[]),t)}var q=u(()=>{O();Uu();Ci();Li();gt();Bt();ce();zt();ho();Ot();qe();fe();Xe();Ke();Q();Ht();po();Uu();Mp();Ci();Rc();Li();Oc();Zn();ms();ls();Ap();Cn();_p();au();Za();Us();cu();pu();fu();Ja();hu();Cn();yu();Iu();ku();vu();Pu();Au();Ou();Lu();sa();tl();ju();_u();Wa();Cn();Cn();qu();JT()});function iF(e){return f.Update(e,{"~immutable":!0},{})}function Hs(e,t){return f.Update(iF(e),{},t)}function YT(e,t,n,r){let o=T(e,t,n);return Hs(o,r)}var Uu=u(()=>{S();q()});function fb(e,t={}){return j("AddImmutable",[e],t)}function ro(e,t={}){return Hs(e,t)}var cs=u(()=>{ce();Uu()});var XT=u(()=>{ce();Mp()});function gb(e,t={}){return j("Evaluate",[e],t)}function ZT(e,t={}){return Ep(e,t)}var al=u(()=>{ce();Za()});function hb(e,t={}){return j("Module",[e],t)}function QT(e,t={}){return wu({},Ie([],[]),e,t)}var ul=u(()=>{ce();q();Iu()});var xo=u(()=>{cs();ps();os();XT();Ac();ta();tu();su();iu();al();uu();mu();Up();du();Fs();gu();nu();xu();ul();$u();Tu();Su();Ru();Mu();Cu();Fu();Du();ru();ou();Nu()});var ev=u(()=>{au()});var tv=u(()=>{qi()});var nv=u(()=>{Us()});var rv=u(()=>{cu()});var ov=u(()=>{});var sv=u(()=>{Ks();Ws();ov()});var iv=u(()=>{pu()});var av=u(()=>{fu()});var uv=u(()=>{Ja()});var mv=u(()=>{Cn()});var cv=u(()=>{hu()});var pv=u(()=>{yu()});var lv=u(()=>{Iu()});var dv=u(()=>{ku()});var fv=u(()=>{vu()});var gv=u(()=>{Pu()});var hv=u(()=>{hs();up()});var xv=u(()=>{Au()});var yv=u(()=>{Ou()});var bv=u(()=>{O();ws()});var wv=u(()=>{bv()});var Iv=u(()=>{Lu()});var $v=u(()=>{sa()});var kv=u(()=>{tl()});var Tv=u(()=>{ju()});var vv=u(()=>{_u()});var Ev=u(()=>{});var Sv=u(()=>{O();hs()});var Pv=u(()=>{Zi();Qi();mp();Ev();Yi();Sv()});var Rv=u(()=>{qu()});var Av=u(()=>{q();_p();ev();Tp();tv();Os();nv();rv();sv();iv();av();uv();mv();cv();pv();lv();dv();Gs();fv();gv();hv();xv();yv();wv();Iv();$v();kv();Tv();vv();Pv();Rv()});function Mv(...e){let[t,n,r]=kn.Match(e,{2:(i,c)=>m.IsString(i)?[{},i,c]:[i,c,{}],3:(i,c,p)=>[i,c,p],1:i=>[{},i,{}]}),o=Iw(n),s=m.IsArray(o)&&m.IsEqual(o.length,2)?T(t,Ie([],[]),o[0]):ge();return f.Update(s,{},r)}var Ov=u(()=>{no();S();O();da();q();q();Vi()});var ml=u(()=>{Ov()});var Z={};Mt(Z,{Any:()=>to,Array:()=>qt,BigInt:()=>ds,Boolean:()=>Gi,Call:()=>r$,Capitalize:()=>f$,Codec:()=>Ki,Conditional:()=>$$,Constructor:()=>bn,ConstructorParameters:()=>T$,Cyclic:()=>$n,Decode:()=>dh,DecodeBuilder:()=>us,Dependent:()=>Tr,Encode:()=>fh,EncodeBuilder:()=>as,Enum:()=>xg,Evaluate:()=>ZT,Exclude:()=>E$,Extends:()=>st,ExtendsResult:()=>B,Extract:()=>P$,Function:()=>wn,Generic:()=>Xn,Identifier:()=>fs,Immutable:()=>gh,Index:()=>C$,Infer:()=>ss,InstanceType:()=>kk,Instantiate:()=>il,Integer:()=>Rr,Interface:()=>CI,Intersect:()=>Tt,IsAny:()=>Ee,IsArray:()=>ke,IsBigInt:()=>En,IsBoolean:()=>Jt,IsCall:()=>To,IsCodec:()=>Ui,IsConstructor:()=>We,IsCyclic:()=>rt,IsDependent:()=>Pe,IsEnum:()=>ot,IsEnumValue:()=>hg,IsFunction:()=>Be,IsGeneric:()=>eo,IsIdentifier:()=>bh,IsImmutable:()=>vr,IsInfer:()=>Ce,IsInteger:()=>ht,IsIntersect:()=>oe,IsKind:()=>L,IsLiteral:()=>le,IsNever:()=>un,IsNull:()=>so,IsNumber:()=>Fe,IsObject:()=>pe,IsOptional:()=>ut,IsParameter:()=>$h,IsReadonly:()=>Sr,IsRecord:()=>it,IsRef:()=>ze,IsRefine:()=>$c,IsRest:()=>sr,IsSchema:()=>Ne,IsString:()=>yt,IsSymbol:()=>er,IsTemplateLiteral:()=>Re,IsThis:()=>ca,IsTuple:()=>be,IsUndefined:()=>fo,IsUnion:()=>F,IsUnknown:()=>Oe,IsUnsafe:()=>_i,IsVoid:()=>Rn,KeyOf:()=>vk,Literal:()=>se,Lowercase:()=>g$,Mapped:()=>Nk,Module:()=>QT,Never:()=>ge,NonNullable:()=>Bk,Null:()=>oo,Number:()=>Ct,Object:()=>W,Omit:()=>Hk,Optional:()=>ug,Parameter:()=>Mr,Parameters:()=>Xk,Partial:()=>Qk,Pick:()=>pT,Readonly:()=>hh,ReadonlyObject:()=>Qp,ReadonlyType:()=>gT,Record:()=>aa,RecordKey:()=>co,RecordPattern:()=>Qt,RecordValue:()=>wt,Ref:()=>qn,Refine:()=>xh,Required:()=>KT,Rest:()=>Or,ReturnType:()=>WT,Script:()=>Mv,String:()=>Yt,Symbol:()=>ao,TemplateLiteral:()=>Pw,This:()=>ma,Tuple:()=>je,Uncapitalize:()=>h$,Undefined:()=>lo,Union:()=>X,Unknown:()=>Ye,Unsafe:()=>pg,Uppercase:()=>x$,Void:()=>la,With:()=>zT});var cl=u(()=>{q();Pn();ml();tu();su();iu();al();uu();mu();xo();du();Fs();gu();nu();xu();ul();$u();Tu();Su();Ru();Mu();Cu();Fu();Du();ru();ou();Nu();Ic();ms();Zn();ls();kc();$t();gt();Pr();Qn();ho();Bt();kt();mn();zt();rs();Tc();Ot();Vt();Sn();qe();Le();Je();io();xt();fe();Ec();Xe();Ht();po();J();Xt();Ar();vt();pa();Ke();go();Q();nt();Ni();Cr()});var Nr=u(()=>{xo();Av();Pn();ml();da();cl();cl()});import{StringEnum as aF}from"@earendil-works/pi-ai";import{defineTool as uF}from"@earendil-works/pi-coding-agent";function Cv(e){if(e.length===0)return"Todo list is empty.";let t=e.filter(o=>o.status==="completed").length,n=e.map(o=>`${mF[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(`
21
+ `)}function pF(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 lF(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 mF,cF,Ku,pl=u(()=>{Nr();mF={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"},cF=Z.Object({op:aF(["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"}))});Ku=uF({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:cF,async execute(e,t,n,r,o){let s=lF(o),{todos:i,error:c}=pF(s,t.op,t.items,t.task),p={op:t.op,todos:i,...c?{error:c}:{}};return{content:[{type:"text",text:c?`Error: ${c}
22
+ ${Cv(i)}`:Cv(i)}],details:p,...c?{isError:!0}:{}}}})});import{StringEnum as dF}from"@earendil-works/pi-ai";import{defineTool as fF}from"@earendil-works/pi-coding-agent";function jv(){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(`
23
+ `)}function gF(e,t,n){if(e==="list")return Wn.size===0?{text:"No notes."}:{text:[...Wn].map(([r,o])=>`${r} = ${o}`).join(`
24
+ `)};if(!t)return{text:"Error: key is required",error:"key required"};if(t.length>Fv)return{text:`Error: key longer than ${Fv} 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>Lv?`${n.slice(0,Lv)}\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,Lv,Fv,Gu,Wu=u(()=>{Nr();Wn=new Map,Lv=2e3,Fv=80;Gu=fF({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:dF(["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}=gF(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 hF}from"@earendil-works/pi-ai";import{defineTool as xF}from"@earendil-works/pi-coding-agent";function zu(e){if(!e||e.status==="cleared")return"No goal set.";let t=e.budget??Bu,n=[`${Nv[e.status]} ${e.status}`,`${e.used}/${t} continuations`];return e.note&&n.push(e.note),`${n.join(" \xB7 ")}
25
+ ${e.text}`}function qv(e){if(!e||e.status==="cleared"||e.status==="done")return"";let t=e.budget??Bu,n=e.text.length>48?`${e.text.slice(0,47)}\u2026`:e.text;return`goal ${Nv[e.status]} ${e.used}/${t} \xB7 ${n}`}function Uv(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(`
26
+ `)}function Kv(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??Bu}.`].join(`
27
+ `)}function Hu(){return Gv}function ln(e){Gv=e}function Vu(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??Bu;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>Dv?{goal:e,error:`text longer than ${Dv} 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,_v,Dv,Bu,Nv,Gv,yF,Wv,Ju=u(()=>{Nr();pr="howtofix.goal",_v="howtofix.goal.continue",Dv=400,Bu=25,Nv={active:"\u25CF",paused:"\u2016",done:"\u2713",cleared:"\u25CB"};yF=Z.Object({op:hF(["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)"}))}),Wv=xF({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:yF,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=zu(i);return{content:[{type:"text",text:c?`Error: ${c}
28
+ ${p}`:p}],details:{op:t.op,goal:i},...c?{isError:!0}:{}}}})});import{existsSync as gl,mkdirSync as Bv,readFileSync as zv}from"node:fs";import{dirname as Hv,join as Vv}from"node:path";import{defineTool as Jv}from"@earendil-works/pi-coding-agent";function Yu(){return{state:"inactive",wasActive:!1}}function bF(e){return e?e.state==="pending"?{...e,state:"inactive"}:{...e}:Yu()}function Yv(e){return e.state!=="inactive"?e:{...e,state:"pending"}}function wF(e){return e.state!=="pending"?e:{state:"active",wasActive:!0}}function IF(e){return e.state!=="inactive"?e:{state:"active",wasActive:!0}}function $F(e){return e.state!=="active"?e:{...e,state:"inactive"}}function Xv(e){return e.state==="inactive"?e:{...e,state:"inactive"}}function Xu(e){return e.state==="active"}function kF(e,t){return e===t}function TF(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(`
29
+ `)}function vF(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 Zu(){return dt}function Zv(){return lt}function Qv(){return Xu(dt)}function eE(){if(!(!lt||!gl(lt)))try{let e=zv(lt,"utf8");return e.trim()?e:void 0}catch{return}}function tE(){return eE()!==void 0}function nE(){return dt.state==="inactive"?"":dt.state==="pending"?"plan pending":tE()?"plan \u25CF ready":"plan \u25CF planning"}function rE(){return fl?Vv(fl,"plan_mode.json"):void 0}function EF(){let e=rE();if(e)try{Bv(Hv(e),{recursive:!0}),tt(e,JSON.stringify(dt))}catch{}}function SF(){let e=rE();if(!e||!gl(e))return Yu();try{return bF(JSON.parse(zv(e,"utf8")))}catch{return Yu()}}function PF(e){fl=e,lt=Vv(e,"plan.md"),dt=SF()}function Co(e){return dt=e,EF(),dt}function oE(){return e=>{e.on("tool_call",async t=>{if(!Xu(dt)||t.toolName!=="edit"&&t.toolName!=="write")return;let n=t.input?.path;if(typeof n=="string"&&!(!lt||kF(n,lt)))return{block:!0,reason:vF(lt)}})}}function sE(){return e=>{e.on("session_start",async(t,n)=>{PF(n.sessionManager.getSessionDir())}),e.on("before_agent_start",async()=>{dt.state==="pending"&&Co(wF(dt))}),e.on("context_with_system",async t=>{if(!Xu(dt)||!lt)return;let n=t.messages[0];if(!n||n.role!=="system")return;let r=TF(lt,tE()),o=`${typeof n.content=="string"?n.content:""}
30
+
31
+ ${r}`;return{messages:t.messages.map(i=>i===n?{...n,content:o}:i)}})}}function RF(){if(lt){try{Bv(Hv(lt),{recursive:!0}),gl(lt)||tt(lt,"")}catch{return}return lt}}var lt,dt,fl,dl,iE,aE,hl=u(()=>{Nr();Hn();dt=Yu();dl=2e4;iE=Jv({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(IF(dt));let i=RF();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(`
32
+ `)}],details:{planFile:i}}}}),aE=Jv({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(!Xu(dt))return{content:[{type:"text",text:"Plan mode is not active."}],details:{},isError:!0};let s=eE();if(!s)return{content:[{type:"text",text:`No plan has been written yet. Write it to ${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)}
33
+ \u2026 (${s.length-dl} more characters)`:s;return await o.ui.confirm("Approve this plan?",i)?(Co($F(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 AF(e,t){return t==="manual"?!1:e.consecutiveFailures>=3}function MF(e,t){if(t)return e;let n=e.consecutiveFailures+1;return{consecutiveFailures:n,tripped:e.tripped||n>=3}}function OF(){return xl()}function CF(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 uE(){return e=>{e.on("session_start",async()=>{lr=xl()}),e.on("session_compact",async()=>{lr=OF()}),e.on("session_compact_failed",async(t,n)=>{let r=lr;lr=MF(lr,t.aborted),!r.tripped&&lr.tripped&&n?.ui&&n.ui.notify(CF(lr),"warning")}),e.on("session_before_compact",async t=>{if(AF(lr,t.reason))return{cancel:!0}})}}var lr,mE=u(()=>{lr=xl()});function Qu(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(`
34
+ `):e==null?"":String(e)}function em(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 LF(e){ln(Oo(e))}function cE(e){return`budget exhausted (${e.budget??"default"} continuations)`}function pE(){return e=>{e.on("session_start",async(t,n)=>{LF(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=`${Qu(o.content)}
35
+
36
+ ${Uv(r)}`;return{messages:t.messages.map(c=>c===o?{...o,content:em(o.content,s)}:c)}}),e.on("agent_before_settle",async(t,n)=>{let r=Oo(n);if(ln(r),Vu(r).action==="stop"||!r||t.continue||!t.context.canContinue)return;let o={...r,used:r.used+1};if(e.appendEntry(pr,o),ln(o),Vu(o).action==="stop"){let s={...o,status:"done",note:cE(o)};e.appendEntry(pr,s),ln(s);return}return{entries:[{type:"custom_message",customType:_v,content:Kv(o),display:!0}],continue:!0}}),e.on("agent_settled",async(t,n)=>{let r=Oo(n),o=Vu(r);if(r&&o.action==="stop"&&o.close){let s={...r,status:"done",note:cE(r)};e.appendEntry(pr,s),ln(s)}else ln(r)})}}var lE=u(()=>{yl();Ju()});function tm(){return e=>{e.on("context_with_system",async t=>{let n=jv();if(!n)return;let r=t.messages[0];if(!r||r.role!=="system")return;let o=`${Qu(r.content)}
37
+
38
+ ${n}`;return{messages:t.messages.map(i=>i===r?{...r,content:em(r.content,o)}:i)}})}}var bl=u(()=>{yl();Wu()});function jF(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 $l(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"}:jF(n)||n==="0.0.0.0"?{ok:!1,reason:"refused private address"}:{ok:!0,url:t}}function dE(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 DF(e){let t=[],n=/class="result__a"[^>]*href="([^"]+)"[^>]*>([\s\S]*?)<\/a>/gi,r;for(;(r=n.exec(e))&&t.length<Il;){let o=r[1]??"",s=dE(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=$l(i);!p.ok||!s||t.push({title:s,url:p.url.toString(),snippet:""})}return t}async function gE(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??fE,accept:"text/html, application/json"};try{if(t.braveKey){let d=`https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(n)}&count=${Il}`,b=await r(d,{headers:{...s,accept:"application/json","x-subscription-token":t.braveKey},signal:AbortSignal.timeout(o)});return b.ok?{ok:!0,hits:_F(await b.json()),provider:"brave"}:{ok:!1,error:`brave ${b.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:DF(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 _F(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=$l(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>=Il)break}return n}async function hE(e,t={}){let n=$l(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??fE,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)?dE(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 FF,wl,Il,fE,xE=u(()=>{FF=/^(127\.|10\.|192\.168\.|169\.254\.|0\.|221\.|222\.|223\.)/;wl=8e4,Il=8;fE="HowToFix (https://howtofix.id)"});import{Type as nm}from"@earendil-works/pi-ai";import{defineTool as yE}from"@earendil-works/pi-coding-agent";function NF(e){return e.length===0?"no results":e.map((t,n)=>`${n+1}. ${t.title}
38
39
  ${t.url}${t.snippet?`
39
40
  ${t.snippet}`:""}`).join(`
40
- `)}var rm,om,kl=u(()=>{dE();rm=fE({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:nm.Object({query:nm.String({description:"Search query"})}),async execute(e,t){let n=await pE(t.query,{braveKey:process.env.BRAVE_API_KEY});return n.ok?{content:[{type:"text",text:AF(n.hits)}],details:{count:n.hits.length,provider:n.provider}}:{content:[{type:"text",text:n.error}],details:{error:n.error},isError:!0}}}),om=fE({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:nm.Object({url:nm.String({description:"http(s) URL"})}),async execute(e,t){let n=await lE(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 MF}from"node:child_process";import{existsSync as gE,readFileSync as OF}from"node:fs";import{delimiter as CF,isAbsolute as LF,join as hE}from"node:path";import{fileURLToPath as FF,pathToFileURL as qr}from"node:url";function xE(e){let t=JSON.stringify(e);return`Content-Length: ${Buffer.byteLength(t,"utf8")}\r
41
+ `)}var rm,om,kl=u(()=>{xE();rm=yE({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:nm.Object({query:nm.String({description:"Search query"})}),async execute(e,t){let n=await gE(t.query,{braveKey:process.env.BRAVE_API_KEY});return n.ok?{content:[{type:"text",text:NF(n.hits)}],details:{count:n.hits.length,provider:n.provider}}:{content:[{type:"text",text:n.error}],details:{error:n.error},isError:!0}}}),om=yE({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:nm.Object({url:nm.String({description:"http(s) URL"})}),async execute(e,t){let n=await hE(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 qF}from"node:child_process";import{existsSync as bE,readFileSync as UF}from"node:fs";import{delimiter as KF,isAbsolute as GF,join as wE}from"node:path";import{fileURLToPath as WF,pathToFileURL as qr}from"node:url";function IE(e){let t=JSON.stringify(e);return`Content-Length: ${Buffer.byteLength(t,"utf8")}\r
41
42
  \r
42
- ${t}`}function jF(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`\r
43
+ ${t}`}function BF(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`\r
43
44
  \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 _F(e){return DF.find(t=>t.match(e))}async function NF(e,t){let n=Ur.get(e.command);if(n)return await n.ready,n.client;let r=MF(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 yE(e){let t=e.uri;try{t=FF(e.uri)}catch{}let n=e.range?.start;return n?`${t}:${n.line+1}:${n.character+1}`:t}function bE(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(...bE(r.children,t+1))}return n}async function wE(e){try{let t=_F(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("/")?gE(t.command):(process.env.PATH??"").split(CF).some(f=>gE(hE(f,t.command)))))return{ok:!1,error:`${t.command} is not on PATH. Install it to use lsp on ${e.file}.`};let o=LF(e.file)?e.file:hE(e.root,e.file),s=OF(o,"utf8"),i=await NF(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:yE(f),count:1}:{ok:!0,text:"no definition found",count:0}}case"references":{let w=(await i.references(o,c,p)).map(yE);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=bE(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(I=>`${I.range.start.line+1}:${I.range.start.character+1} ${qF[I.severity??3]??"info"} ${I.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,DF,Ur,qF,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}=jF(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=xE({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(xE({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)}}},DF=[{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);qF={1:"error",2:"warning",3:"info",4:"hint"}});import{StringEnum as UF}from"@earendil-works/pi-ai";import{defineTool as KF}from"@earendil-works/pi-coding-agent";var sm,Sl=u(()=>{Nr();El();sm=KF({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:UF(["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 wE({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 GF,readdirSync as WF,readFileSync as BF}from"node:fs";import{join as IE}from"node:path";import{createAgentSession as zF,DefaultResourceLoader as HF,SessionManager as VF}from"@earendil-works/pi-coding-agent";function im(e){GF(Jr,{recursive:!0}),tt(IE(Jr,`${e.id}.json`),JSON.stringify({...e,session:void 0},null,1))}function Rl(){let e;try{e=WF(Jr)}catch{return}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(BF(IE(Jr,t),"utf8"));if(n.status!=="parked"||en.some(r=>r.id===n.id))continue;en.push({...n,mail:n.mail??[]})}catch{}}function Al(){return Rl(),en.length===0?"no agents":en.map(e=>`${e.id} ${e.agent} ${e.status} requests=${e.requests} ${e.task}`).join(`
45
+ `,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 HF(e){return zF.find(t=>t.match(e))}async function VF(e,t){let n=Ur.get(e.command);if(n)return await n.ready,n.client;let r=qF(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 $E(e){let t=e.uri;try{t=WF(e.uri)}catch{}let n=e.range?.start;return n?`${t}:${n.line+1}:${n.character+1}`:t}function kE(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(...kE(r.children,t+1))}return n}async function TE(e){try{let t=HF(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("/")?bE(t.command):(process.env.PATH??"").split(KF).some(d=>bE(wE(d,t.command)))))return{ok:!1,error:`${t.command} is not on PATH. Install it to use lsp on ${e.file}.`};let o=GF(e.file)?e.file:wE(e.root,e.file),s=UF(o,"utf8"),i=await VF(t,e.root);await i.ensureOpen(o,s,t.languageId);let c=(e.line??1)-1,p=0;if(e.symbol){let d=(s.split(`
46
+ `)[c]??"").indexOf(e.symbol);d>=0&&(p=d)}switch(e.action){case"definition":{let d=await i.definition(o,c,p);return d?{ok:!0,text:$E(d),count:1}:{ok:!0,text:"no definition found",count:0}}case"references":{let b=(await i.references(o,c,p)).map($E);return{ok:!0,text:b.length>0?b.join(`
47
+ `):"no references found",count:b.length}}case"hover":{let d=(await i.hover(o,c,p))?.trim();return{ok:!0,text:d||"no hover at that position"}}case"symbols":{let d=kE(await i.documentSymbols(o));return{ok:!0,text:d.length>0?d.join(`
48
+ `):"no symbols in this file",count:d.length}}case"diagnostics":{let b=(await i.diagnostics(o)).map(I=>`${I.range.start.line+1}:${I.range.start.character+1} ${JF[I.severity??3]??"info"} ${I.message}`);return{ok:!0,text:b.length>0?b.join(`
49
+ `):"no diagnostics",count:b.length}}}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}}var Tl,zF,Ur,JF,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}=BF(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=IE({jsonrpc:"2.0",id:o,method:t,params:n}),{promise:i,resolve:c,reject:p}=Promise.withResolvers(),d=setTimeout(()=>{this.pending.delete(o),p(new Error(`lsp ${t} timed out`))},r);return this.pending.set(o,{resolve:b=>{clearTimeout(d),c(b)},reject:b=>{clearTimeout(d),p(b)}}),this.io.stdin.write(s),i}notify(t,n){this.io.stdin.write(IE({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 d=this.diagnosticsWaiters.get(r);if(d){this.diagnosticsWaiters.delete(r);for(let b of d)b(this.diagnosticsByUri.get(r)??[])}},n),p=this.diagnosticsWaiters.get(r)??[];return p.push(d=>{clearTimeout(c),i(d)}),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)}}},zF=[{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);JF={1:"error",2:"warning",3:"info",4:"hint"}});import{StringEnum as YF}from"@earendil-works/pi-ai";import{defineTool as XF}from"@earendil-works/pi-coding-agent";var sm,Sl=u(()=>{Nr();El();sm=XF({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:YF(["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 TE({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 ZF,readdirSync as QF,readFileSync as ej}from"node:fs";import{join as vE}from"node:path";import{createAgentSession as tj,DefaultResourceLoader as nj,SessionManager as rj}from"@earendil-works/pi-coding-agent";function im(e){ZF(Jr,{recursive:!0}),tt(vE(Jr,`${e.id}.json`),JSON.stringify({...e,session:void 0},null,1))}function Rl(){let e;try{e=QF(Jr)}catch{return}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(ej(vE(Jr,t),"utf8"));if(n.status!=="parked"||en.some(r=>r.id===n.id))continue;en.push({...n,mail:n.mail??[]})}catch{}}function Al(){return Rl(),en.length===0?"no agents":en.map(e=>`${e.id} ${e.agent} ${e.status} requests=${e.requests} ${e.task}`).join(`
49
50
  `)}function Ml(e){Rl();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 am(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 HF({cwd:n,agentDir:Ve,additionalSkillPaths:[hr(n)],extensionFactories:[Vo({interactive:!1}),tm()]});await r.reload();let{session:o}=await zF({cwd:n,agentDir:Ve,sessionManager:VF.inMemory(n),resourceLoader:r,tools:t.tools,customTools:[Gu,Ku,rm,om,sm],thinkingLevel:e.effort});return o}async function kE(e,t){Rl();let n=en.find(o=>o.id===e);if(!n)return`no agent ${e}`;let r=n.session??await am(n);if(n.session=r,n.status==="running"||r.isStreaming)return n.mail.push(t),im(n),`queued for ${e}`;if(n.requests>=$E)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 im(n),`${e} ${n.status}`}async function TE(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),im(n),n}async function XF(e,t){let n=Kr.get(e.agent);if(!n)return;let r=e.session??await am(e);e.session=r;try{let o=e.mail.splice(0).join(`
51
+ ${t.result??t.task}`:`no agent ${e}`}async function am(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 nj({cwd:n,agentDir:_e,additionalSkillPaths:[hr(n)],extensionFactories:[Vo({interactive:!1}),tm()]});await r.reload();let{session:o}=await tj({cwd:n,agentDir:_e,sessionManager:rj.inMemory(n),resourceLoader:r,tools:t.tools,customTools:[Gu,Ku,rm,om,sm],thinkingLevel:e.effort});return o}async function SE(e,t){Rl();let n=en.find(o=>o.id===e);if(!n)return`no agent ${e}`;let r=n.session??await am(n);if(n.session=r,n.status==="running"||r.isStreaming)return n.mail.push(t),im(n),`queued for ${e}`;if(n.requests>=EE)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 im(n),`${e} ${n.status}`}async function PE(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),im(n),n}async function ij(e,t){let n=Kr.get(e.agent);if(!n)return;let r=e.session??await am(e);e.session=r;try{let o=e.mail.splice(0).join(`
51
52
  `);for(await r.prompt(`${n.prompt}
52
53
 
53
54
  Task:
54
55
  ${e.task}${o?`
55
56
 
56
57
  Messages:
57
- ${o}`:""}`),e.requests+=1;e.mail.length>0&&e.requests<$E;)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{im(e)}}async function vE(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 XF(r,e)}};if(await Promise.all(Array.from({length:YF},n)),e?.aborted)throw new Error("aborted")}var Pl,JF,Kr,en,YF,$E,Vs=u(()=>{Nn();Wu();bl();Jo();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."],JF=`You are a software architect planning an implementation. Your job is to explore the codebase and return a plan, not to write code.
58
+ ${o}`:""}`),e.requests+=1;e.mail.length>0&&e.requests<EE;)await r.followUp(e.mail.splice(0).join(`
59
+ `)),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{im(e)}}async function RE(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 ij(r,e)}};if(await Promise.all(Array.from({length:sj},n)),e?.aborted)throw new Error("aborted")}var Pl,oj,Kr,en,sj,EE,Vs=u(()=>{xn();Wu();bl();Jo();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."],oj=`You are a software architect planning an implementation. Your job is to explore the codebase and return a plan, not to write code.
59
60
 
60
61
  ## Read-only, by construction
61
62
  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.
@@ -74,76 +75,76 @@ End your reply with exactly this section, listing the 3-5 files most critical to
74
75
  - path/to/file.ts
75
76
 
76
77
  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:JF,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:"low"}],["architect",{name:"architect",description:"designs an implementation plan",tools:["read","grep","find","ls","context","web_search","web_fetch","lsp"],prompt:oj,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
79
  `),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=[],YF=3,$E=8});import{execFile as ZF}from"node:child_process";import{promisify as QF}from"node:util";import{tmpdir as ej}from"node:os";import{join as tj}from"node:path";async function tn(e,t){try{let{stdout:n}=await nj("git",t,{cwd:e,encoding:"utf8",maxBuffer:8388608});return{ok:!0,output:n.trim()}}catch(n){let r=n&&typeof n=="object"&&"stderr"in n&&typeof n.stderr=="string"?n.stderr.trim():"",o=n instanceof Error?n.message:String(n);return{ok:!1,output:r||o}}}async function um(e){return(await tn(e,["rev-parse","--is-inside-work-tree"])).output==="true"}async function EE(e){return(await tn(e,["status","--porcelain"])).output.length>0}async function SE(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 PE(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 RE(e){let t=(await tn(e,["diff"])).output,n=(await tn(e,["diff","--cached"])).output;return[t,n].filter(Boolean).join(`
80
- `)}function AE(e,t=60){let n=e.split(`
80
+ `),effort:"medium"}]]),en=[],sj=3,EE=8});import{execFile as aj}from"node:child_process";import{promisify as uj}from"node:util";import{tmpdir as mj}from"node:os";import{join as cj}from"node:path";async function tn(e,t){try{let{stdout:n}=await pj("git",t,{cwd:e,encoding:"utf8",maxBuffer:8388608});return{ok:!0,output:n.trim()}}catch(n){let r=n&&typeof n=="object"&&"stderr"in n&&typeof n.stderr=="string"?n.stderr.trim():"",o=n instanceof Error?n.message:String(n);return{ok:!1,output:r||o}}}async function um(e){return(await tn(e,["rev-parse","--is-inside-work-tree"])).output==="true"}async function AE(e){return(await tn(e,["status","--porcelain"])).output.length>0}async function ME(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 OE(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 CE(e){let t=(await tn(e,["diff"])).output,n=(await tn(e,["diff","--cached"])).output;return[t,n].filter(Boolean).join(`
81
+ `)}function LE(e,t=60){let n=e.split(`
81
82
  `);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 ME(e,t){if(!await um(e))return null;let n=t.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,40)||"agent",r=tj(ej(),`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 nj,Ol=u(()=>{nj=QF(ZF)});function OE(e){return e===null?"null":Array.isArray(e)?"array":Number.isInteger(e)?"integer":typeof e}function rj(e,t){let n=OE(e);return t==="number"?n==="number"||n==="integer":t==="integer"?n==="integer":n===t}function oj(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=oj(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=>rj(e,c))){o.push({path:r,message:`expected ${i.join(" or ")}, got ${OE(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 CE(e,t){if(!Gr(t))return[];let n=[];return dr(e,t,t,"",n),n}function LE(e){return e.map(t=>`- ${t.path||"(root)"}: ${t.message}`).join(`
83
- `)}function FE(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 I=s;I<o.length;I++){let P=o[I];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,I+1))}catch{break}}}}}var Gr,jE=u(()=>{Gr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)});import*as DE from"node:os";async function aj(e,t=_E,n=NE){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 uj(){let e=DE.availableParallelism?.()??4;return Math.max(1,Math.min(16,e-2))}function mj(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 qE(e){let t=e.lifetimeCap??sj,n=e.fanoutCap??ij,r=mj(e.concurrency??uj()),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 aj(e,_E,NE))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()},No=v===void 0?1:2;for(let rn=0;rn<No;rn++){let Wt=rn===0?String(U):void 0,Ke=await P(Wt??cj(String(U),I),{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=FE(Ke.text),qo=Dt===void 0?[{path:"",message:"reply was not JSON"}]:CE(Dt,v);if(qo.length===0)return gn("ok",Ke,Cl(Ke.text)),Dt;if(I=LE(qo),rn===No-1)return gn("failed",Ke,`schema: ${Cl(I)}`),null}return null}finally{Gt()}},I="",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 cj(e,t){return`${e}
83
+ `)}async function FE(e,t){if(!await um(e))return null;let n=t.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,40)||"agent",r=cj(mj(),`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 pj,Ol=u(()=>{pj=uj(aj)});function jE(e){return e===null?"null":Array.isArray(e)?"array":Number.isInteger(e)?"integer":typeof e}function lj(e,t){let n=jE(e);return t==="number"?n==="number"||n==="integer":t==="integer"?n==="integer":n===t}function dj(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=dj(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(d=>{let b=[];return dr(e,d,n,r,b),b.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=>lj(e,c))){o.push({path:r,message:`expected ${i.join(" or ")}, got ${jE(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 DE(e,t){if(!Gr(t))return[];let n=[];return dr(e,t,t,"",n),n}function _E(e){return e.map(t=>`- ${t.path||"(root)"}: ${t.message}`).join(`
84
+ `)}function NE(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,d=!1,b=!1;for(let I=s;I<o.length;I++){let P=o[I];if(d){b?b=!1:P==="\\"?b=!0:P==='"'&&(d=!1);continue}if(P==='"')d=!0;else if(P===i)p++;else if(P===c&&(p--,p===0))try{return JSON.parse(o.slice(s,I+1))}catch{break}}}}}var Gr,qE=u(()=>{Gr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)});import*as UE from"node:os";async function hj(e,t=KE,n=GE){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 xj(){let e=UE.availableParallelism?.()??4;return Math.max(1,Math.min(16,e-2))}function yj(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 WE(e){let t=e.lifetimeCap??fj,n=e.fanoutCap??gj,r=yj(e.concurrency??xj()),o=0,s=0,i="",c=U=>e.onEvent?.(U),p=new Map,d=()=>e.onProgress?.([...p.values()]),b=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 He(`budget exhausted: spent ${s} of ${e.budgetTotal} output tokens`);if(o>=t)throw new He(`lifetime cap reached: ${t} agent calls in one run`);o++;let Ve=o;if(e.isPaused?.()&&!await hj(e,KE,GE))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(Ve,{label:ee,phase:ye,agentType:De,status:"running",outputTokens:0,...xe?{model:xe}:{},startedAt:Date.now()}),d();let gn=(rn,Wt,Ge)=>{let Dt=p.get(Ve);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),Ge&&(Dt.detail=Ge)),c({kind:"agent_end",label:ee,ok:rn==="ok",outputTokens:Wt.outputTokens}),d()},No=v===void 0?1:2;for(let rn=0;rn<No;rn++){let Wt=rn===0?String(U):void 0,Ge=await P(Wt??bj(String(U),I),{label:ee,phase:ye,agentType:De,effort:Qe,model:xe,isolation:ie});if(Ge===null)return gn("failed",{text:"",outputTokens:0}),null;if(s+=Ge.outputTokens,v===void 0)return gn("ok",Ge,Cl(Ge.text)),Ge.text;let Dt=NE(Ge.text),qo=Dt===void 0?[{path:"",message:"reply was not JSON"}]:DE(Dt,v);if(qo.length===0)return gn("ok",Ge,Cl(Ge.text)),Dt;if(I=_E(qo),rn===No-1)return gn("failed",Ge,`schema: ${Cl(I)}`),null}return null}finally{Gt()}},I="",P=async(U,z)=>{try{return await e.invoke({prompt:U,...z})}catch{return null}};return{agent:(U,z)=>b(U,z),parallel:async U=>{if(U.length>n)throw new He(`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 He(`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 bj(e,t){return`${e}
84
85
 
85
86
  Your previous reply did not satisfy the required schema:
86
87
  ${t}
87
88
 
88
89
  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 sj,ij,_E,NE,ze,UE=u(()=>{jE();sj=1e3,ij=4096,_E=100,NE=300*1e3;ze=class extends Error{constructor(t){super(t),this.name="WorkflowError"}}});import{parseColor as Bn,styleText as pj}from"@earendil-works/pi-tui";function lj(e,t){return pj(e,t,mm)}function ne(e,t,n){return lj(e,{...n,fg:t})}var mm,_,KE,Js=u(()=>{mm="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")};KE={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 Xs,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 BE(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 pm(e,t,n="left"){if(t<=0)return"";let r=dn(e);if(r>t)return Xs(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 Xs(t,n);let s=n-o-r;if(s<=0)return pm(t,n,"right");let i=dn(e)>s?Xs(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} ${pm(f,n)} ${c}`);return[s,...p,i]}function gj(e,t,n,r){let o=r?.gap??1,s=r?.leftWidth??Ys(Math.round(n*.38),28,44),i=n-s-o,c=Math.max(e.rows.length,t.rows.length),p=P=>{let A=[...P];for(;A.length<c;)A.push("");return A},f=Ll(e.title,p(e.rows),s-4),w=Ll(t.title,p(t.rows),i-4),I=" ".repeat(o);return f.map((P,A)=>P+I+(w[A]??pm("",i)))}function zE(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 HE(e,t,n,r=Date.now(),o=0){return t?r-o<cm?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||WE;n.includes(s)||n.push(s)}return n.map((o,s)=>{let i=e.steps.filter(C=>(C.phase||WE)===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 I=r.get(o),P=i.length>0&&c===i.length&&p===0,A=P?i.reduce((C,U)=>Math.max(C,U.endedAt??0),0):0;return{title:o,...I?{detail:I}:{},agents:i,done:c,failed:p,outputTokens:i.reduce((C,U)=>C+U.outputTokens,0),elapsedMs:f,allDone:P,finishedAt:A,anchor:w}})}function _l(e){return e.steps.reduce((t,n)=>t+n.outputTokens,0)}function hj(e){return e.steps.reduce((t,n)=>t+(n.toolCalls??0),0)}function VE(e,t=Date.now()){return Math.max(0,(e.endedAt??t)-e.startedAt)}function xj(e){return e.steps.length>dj||_l(e)>fj}function yj(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 JE(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(VE(e,t))),s>0&&i.push(`${s} failed`);let p=i.join(" \xB7 ");return xj(e)?`large workflow \xB7 ${p}`:p}function XE(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=Ys(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 Tj(e,t,n,r,o){let s=`${e.done}/${e.agents.length}`,i=n?he("accent","\u276F"):" ",c=HE(t+1,e.allDone,n,o,e.finishedAt),p=Math.max(0,r-4-dn(s)),f=dn(e.title)>p?Xs(e.title,p,"\u2026"):e.title,w=e.allDone&&o-e.finishedAt<cm,I=he(w&&!n?"success":n?"accent":"text",f),P=`${i}${c} ${I}`,A=he(n?"accent":"muted",s);return Dl(P,A,r,1)}function vj(e,t,n,r,o,s){let i=t?he("accent","\u276F"):" ",c=zE(e.status,t,n),p=he(t?"accent":"text",pm(e.label,r)),f=`${i}${c} ${p}`,w=Math.max(0,o-dn(f)-1),I=XE(e,s).find(A=>dn(A)<=w)??"",P=he(t?"accent":kj(e)?"dim":"muted",I);return Dl(f,P,o,1)}function Ej(e,t,n,r){let o=[];return e.forEach((s,i)=>{let p=`${HE(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,YE);f.forEach((I,P)=>{let A=zE(I.status,!1,P===s.anchor),C=XE(I,r)[0]??"";o.push(Lo(` ${A} ${he("text",I.label)} ${he("muted",C)}`,t))}),w>0&&o.push(Lo(` ${he("dim",`\u2026+${w} more`)}`,t))}),o}function Sj(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`,`${hj(e)} tools`,fr(VE(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??Pj(),t))]:[];if(o.length===0)return[...f,...Ll("Phases",["(no agents yet)"],Math.max(0,t-4)),...w];let I=Ys(n?.selectedPhase??yj(o),0,Math.max(0,o.length-1)),P=Ys(Math.round(t*.38),28,44),A=t-P-1-4;if(t<Ij||A<$j)return[...f,...Ej(o,t,I,r),...w];let C=o[I],{slice:U,start:z,more:G}=Fl(o,I,bj),ee=U.map((He,Gt)=>Tj(He,z+Gt,z+Gt===I,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?Ys(Math.max(...ye.map(He=>dn(He.label))),6,wj):6,{slice:Qe,more:xe}=Fl(ye,0,n?.agentWindow??YE),ie=Qe.map((He,Gt)=>vj(He,!1,Gt===C.anchor,De,A,r));xe>0&&ie.push(he("dim",`\u2026+${xe} more`));let v=gj({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 ZE(e,t=[],n=96,r,o){let s=Sj(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 Pj(){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 GE,he,dj,fj,cm,Ys,Lo,WE,YE,bj,wj,Ij,$j,kj,Zs=u(()=>{Js();GE={text:_.text,muted:_.mute,dim:_.dim,accent:_.accent,success:_.tool,error:_.bad,border:_.line},he=(e,t,n=!1)=>n?ne(t,GE[e],{bold:!0}):ne(t,GE[e]),dj=25,fj=15e5,cm=420;Ys=(e,t,n)=>Math.max(t,Math.min(n,e)),Lo=(e,t)=>dn(e)>t?Xs(e,Math.max(0,t),"\u2026"):e;WE="Workflow";YE=16,bj=12,wj=18,Ij=72,$j=24;kj=e=>e.status==="running"&&e.outputTokens===0});import{readFileSync as Rj}from"node:fs";import{basename as Aj}from"node:path";import{StringEnum as Mj}from"@earendil-works/pi-ai";import{defineTool as Oj}from"@earendil-works/pi-coding-agent";function eS(e){QE=e}function Lj(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 A=o;A<t.length;A++){let C=t[A];if(i){C==="\\"?A++:C===i&&(i=null);continue}if(C==='"'||C==="'"||C==="`")i=C;else if(C==="{"||C==="[")s++;else if((C==="}"||C==="]")&&(s--,s===0)){c=A+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(A){throw new ze(`meta must be a literal object: ${A instanceof Error?A.message:String(A)}`)}if(typeof w!="object"||w===null)throw new ze("meta must be an object");let I=w;if(typeof I.name!="string"||!I.name.trim())throw new ze("meta.name is required");if(typeof I.description!="string"||!I.description.trim())throw new ze("meta.description is required");let P=Array.isArray(I.phases)?I.phases.filter(A=>typeof A=="object"&&A!==null).map(A=>({title:String(A.title??""),...typeof A.detail=="string"?{detail:A.detail}:{}})).filter(A=>A.title):void 0;return{meta:{name:I.name,description:I.description,...typeof I.whenToUse=="string"?{whenToUse:I.whenToUse}:{},...P?{phases:P}:{}},body:f}}function Fj(e){let t=["agent","parallel","pipeline","phase","log","args","budget"],n=`"use strict"; return (async () => {
90
+ `).map(r=>r.trim()).find(r=>r.length>0)??"";return n.length>t?`${n.slice(0,t)}\u2026`:n}var fj,gj,KE,GE,He,BE=u(()=>{qE();fj=1e3,gj=4096,KE=100,GE=300*1e3;He=class extends Error{constructor(t){super(t),this.name="WorkflowError"}}});import{parseColor as Bn,styleText as wj}from"@earendil-works/pi-tui";function Ij(e,t){return wj(e,t,mm)}function re(e,t,n){return Ij(e,{...n,fg:t})}var mm,_,zE,Js=u(()=>{mm="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")};zE={heading:e=>re(e,_.text,{bold:!0}),link:e=>re(e,_.accent,{underline:!0}),linkUrl:e=>re(e,_.mute),code:e=>re(e,_.text),codeBlock:e=>re(e,_.text),codeBlockBorder:e=>re(e,_.line),quote:e=>re(e,_.mute,{italic:!0}),quoteBorder:e=>re(e,_.line),hr:e=>re(e,_.line),listBullet:e=>re(e,_.mute),bold:e=>re(e,_.text,{bold:!0}),italic:e=>re(e,_.text,{italic:!0}),strikethrough:e=>re(e,_.mute,{strikethrough:!0}),underline:e=>re(e,_.text,{underline:!0})}});import{truncateToWidth as Xs,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 JE(e){let t=Math.max(0,Math.floor(e/1e3));return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:`${Math.floor(t/3600)}h`}function jl(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function pm(e,t,n="left"){if(t<=0)return"";let r=dn(e);if(r>t)return Xs(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 Xs(t,n);let s=n-o-r;if(s<=0)return pm(t,n,"right");let i=dn(e)>s?Xs(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(d=>`${c} ${pm(d,n)} ${c}`);return[s,...p,i]}function Tj(e,t,n,r){let o=r?.gap??1,s=r?.leftWidth??Ys(Math.round(n*.38),28,44),i=n-s-o,c=Math.max(e.rows.length,t.rows.length),p=P=>{let A=[...P];for(;A.length<c;)A.push("");return A},d=Ll(e.title,p(e.rows),s-4),b=Ll(t.title,p(t.rows),i-4),I=" ".repeat(o);return d.map((P,A)=>P+I+(b[A]??pm("",i)))}function YE(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 XE(e,t,n,r=Date.now(),o=0){return t?r-o<cm?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||VE;n.includes(s)||n.push(s)}return n.map((o,s)=>{let i=e.steps.filter(C=>(C.phase||VE)===o).map(C=>({...C,phaseIndex:s})),c=i.filter(C=>C.status!=="running").length,p=i.filter(C=>C.status==="failed").length,d=i.reduce((C,U)=>{let z=U.endedAt??t;return Math.max(C,z-U.startedAt)},0),b=-1;for(let C=0;C<i.length;C++){let U=i[C];U.status==="running"&&(b<0||U.startedAt>=i[b].startedAt)&&(b=C)}let I=r.get(o),P=i.length>0&&c===i.length&&p===0,A=P?i.reduce((C,U)=>Math.max(C,U.endedAt??0),0):0;return{title:o,...I?{detail:I}:{},agents:i,done:c,failed:p,outputTokens:i.reduce((C,U)=>C+U.outputTokens,0),elapsedMs:d,allDone:P,finishedAt:A,anchor:b}})}function _l(e){return e.steps.reduce((t,n)=>t+n.outputTokens,0)}function vj(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 Ej(e){return e.steps.length>$j||_l(e)>kj}function Sj(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 QE(e,t=Date.now()){let n=Fo(e,t),r=e.steps.length,o=e.steps.filter(d=>d.status!=="running").length,s=e.steps.filter(d=>d.status==="failed").length,i=[e.name],c=n.find(d=>d.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 Ej(e)?`large workflow \xB7 ${p}`:p}function tS(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=Ys(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 Cj(e,t,n,r,o){let s=`${e.done}/${e.agents.length}`,i=n?he("accent","\u276F"):" ",c=XE(t+1,e.allDone,n,o,e.finishedAt),p=Math.max(0,r-4-dn(s)),d=dn(e.title)>p?Xs(e.title,p,"\u2026"):e.title,b=e.allDone&&o-e.finishedAt<cm,I=he(b&&!n?"success":n?"accent":"text",d),P=`${i}${c} ${I}`,A=he(n?"accent":"muted",s);return Dl(P,A,r,1)}function Lj(e,t,n,r,o,s){let i=t?he("accent","\u276F"):" ",c=YE(e.status,t,n),p=he(t?"accent":"text",pm(e.label,r)),d=`${i}${c} ${p}`,b=Math.max(0,o-dn(d)-1),I=tS(e,s).find(A=>dn(A)<=b)??"",P=he(t?"accent":Oj(e)?"dim":"muted",I);return Dl(d,P,o,1)}function Fj(e,t,n,r){let o=[];return e.forEach((s,i)=>{let p=`${XE(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:d,more:b}=Fl(s.agents,0,eS);d.forEach((I,P)=>{let A=YE(I.status,!1,P===s.anchor),C=tS(I,r)[0]??"";o.push(Lo(` ${A} ${he("text",I.label)} ${he("muted",C)}`,t))}),b>0&&o.push(Lo(` ${he("dim",`\u2026+${b} more`)}`,t))}),o}function jj(e,t,n){let r=n?.now??Date.now(),o=Fo(e,r),s=e.steps,i=s.filter(Ve=>Ve.status!=="running").length,c=s.filter(Ve=>Ve.status==="failed").length,p=[`${i}/${s.length} agents`,`${jl(_l(e))} tok`,`${vj(e)} tools`,fr(ZE(e,r)),...c>0?[`${c} failed`]:[]].join(" \xB7 "),d=[Dl(he("accent",e.name,!0),he("muted",p),t,2),...e.description?[he("muted",Lo(e.description,t))]:[]],b=n?.footer?[he("muted",Lo(n.footerText??Dj(),t))]:[];if(o.length===0)return[...d,...Ll("Phases",["(no agents yet)"],Math.max(0,t-4)),...b];let I=Ys(n?.selectedPhase??Sj(o),0,Math.max(0,o.length-1)),P=Ys(Math.round(t*.38),28,44),A=t-P-1-4;if(t<Aj||A<Mj)return[...d,...Fj(o,t,I,r),...b];let C=o[I],{slice:U,start:z,more:G}=Fl(o,I,Pj),ee=U.map((Ve,Gt)=>Cj(Ve,z+Gt,z+Gt===I,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?Ys(Math.max(...ye.map(Ve=>dn(Ve.label))),6,Rj):6,{slice:Qe,more:xe}=Fl(ye,0,n?.agentWindow??eS),ie=Qe.map((Ve,Gt)=>Lj(Ve,!1,Gt===C.anchor,De,A,r));xe>0&&ie.push(he("dim",`\u2026+${xe} more`));let v=Tj({title:"Phases",rows:ee},{title:`${C.title} \xB7 ${ye.length} agents${n?.filterLabel??""}`,rows:ie},t,{leftWidth:P,gap:1});return[...d,...v,...b]}function nS(e,t=[],n=96,r,o){let s=jj(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()),d=p[Math.max(0,Math.min(p.length-1,r??0))];for(let b of d?.agents??[])i.add(b.label)}if(i.size===0)return s;let c=[];for(let p of e.steps)if(i.has(p.label)){for(let d of p.tasks??[]){let b=d.status==="completed"?"[x]":d.status==="in_progress"?"[>]":"[ ]";c.push(` ${he("muted",b)} ${he("text",d.content)}`)}p.detail&&c.push(` ${he("dim",p.detail)}`)}return c.length===0?s:[...s.slice(0,-1),...c,s[s.length-1]]}function Dj(){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 HE,he,$j,kj,cm,Ys,Lo,VE,eS,Pj,Rj,Aj,Mj,Oj,Zs=u(()=>{Js();HE={text:_.text,muted:_.mute,dim:_.dim,accent:_.accent,success:_.tool,error:_.bad,border:_.line},he=(e,t,n=!1)=>n?re(t,HE[e],{bold:!0}):re(t,HE[e]),$j=25,kj=15e5,cm=420;Ys=(e,t,n)=>Math.max(t,Math.min(n,e)),Lo=(e,t)=>dn(e)>t?Xs(e,Math.max(0,t),"\u2026"):e;VE="Workflow";eS=16,Pj=12,Rj=18,Aj=72,Mj=24;Oj=e=>e.status==="running"&&e.outputTokens===0});import{readFileSync as _j}from"node:fs";import{basename as Nj}from"node:path";import{StringEnum as qj}from"@earendil-works/pi-ai";import{defineTool as Uj}from"@earendil-works/pi-coding-agent";function oS(e){rS=e}function Gj(e){let t=e.replace(/^(?:\s+|\/\/[^\n]*\n|\/\*[\s\S]*?\*\/)*/,""),n=/^export\s+const\s+meta\s*=\s*/.exec(t);if(!n)throw new He("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 A=o;A<t.length;A++){let C=t[A];if(i){C==="\\"?A++:C===i&&(i=null);continue}if(C==='"'||C==="'"||C==="`")i=C;else if(C==="{"||C==="[")s++;else if((C==="}"||C==="]")&&(s--,s===0)){c=A+1;break}}if(c===-1)throw new He("meta is not a closed literal object");let p=t.slice(o,c),d=e.slice(r+c).replace(/^\s*;/,"");if(/^\s*(import|export)\b/m.test(d))throw new He("a workflow body must not contain import or export declarations");if(/\bimport\s*\(/.test(d))throw new He("a workflow body must not use dynamic import()");let b;try{b=new Function(`"use strict"; return (${p});`)()}catch(A){throw new He(`meta must be a literal object: ${A instanceof Error?A.message:String(A)}`)}if(typeof b!="object"||b===null)throw new He("meta must be an object");let I=b;if(typeof I.name!="string"||!I.name.trim())throw new He("meta.name is required");if(typeof I.description!="string"||!I.description.trim())throw new He("meta.description is required");let P=Array.isArray(I.phases)?I.phases.filter(A=>typeof A=="object"&&A!==null).map(A=>({title:String(A.title??""),...typeof A.detail=="string"?{detail:A.detail}:{}})).filter(A=>A.title):void 0;return{meta:{name:I.name,description:I.description,...typeof I.whenToUse=="string"?{whenToUse:I.whenToUse}:{},...P?{phases:P}:{}},body:d}}function Wj(e){let t=["agent","parallel","pipeline","phase","log","args","budget"],n=`"use strict"; return (async () => {
90
91
  ${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 jj(e){return e.getLastAssistantText()?.trim()??""}function Dj(){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 ME(process.cwd(),t):null,c=await am({agent:s.name,effort:n??s.effort,...i?{worktree:i.path}:{}});try{await c.prompt(`${s.prompt}
92
+ })();`,r;try{r=new Function(...t,n)}catch(o){throw new He(`workflow did not compile: ${o instanceof Error?o.message:String(o)}`)}return r}function Bj(e){return e.getLastAssistantText()?.trim()??""}function zj(){return async({prompt:e,agentType:t,effort:n,model:r,isolation:o})=>{let s=Kr.get(t)??Kr.get("task");if(!s)throw new He(`no agent named ${t}`);let i=o==="worktree"?await FE(process.cwd(),t):null,c=await am({agent:s.name,effort:n??s.effort,...i?{worktree:i.path}:{}});try{await c.prompt(`${s.prompt}
92
93
 
93
94
  Task:
94
- ${e}`);let p=c.getSessionStats(),f=r??_j(c);return{text:jj(c),outputTokens:p.tokens.output,toolCalls:p.toolCalls,...f?{model:f}:{}}}finally{c.dispose(),await i?.remove()}}}function _j(e){return e.model?.id??e.model?.name}function tS(e){let t=()=>e??QE;return Oj({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:Nj,executionMode:"sequential",async execute(n,r,o,s,i){let c=r.path?Rj(r.path,"utf8"):r.code??"";if(!c.trim())throw new ze("provide code or path");let{meta:p,body:f}=Lj(c);if(r.path){let xe=Aj(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=Fj(f),I=Date.now(),P=[],A=0,C=0,U=(xe,ie)=>({name:p.name,...p.description?{description:p.description}:{},ok:xe,agents:C,outputTokens:A,startedAt:I,phases:p.phases??[],steps:P,...ie?{error:ie}:{}}),z=(xe,ie)=>{i.ui.setStatus(Nl,ie?void 0:JE(xe)),s?.({content:[],details:U(!1)})},G=xe=>{C=xe.length,A=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:I},!1)},ee=Dj(),ye=qE({invoke:r.agent?qj(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(),Cj);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), ${A} output tokens in ${fr(ie-I)}
95
+ ${e}`);let p=c.getSessionStats(),d=r??Hj(c);return{text:Bj(c),outputTokens:p.tokens.output,toolCalls:p.toolCalls,...d?{model:d}:{}}}finally{c.dispose(),await i?.remove()}}}function Hj(e){return e.model?.id??e.model?.name}function sS(e){let t=()=>e??rS;return Uj({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:Vj,executionMode:"sequential",async execute(n,r,o,s,i){let c=r.path?_j(r.path,"utf8"):r.code??"";if(!c.trim())throw new He("provide code or path");let{meta:p,body:d}=Gj(c);if(r.path){let xe=Nj(r.path).replace(/\.(js|mjs|cjs|ts)$/,"");if(xe!==p.name)throw new He(`meta.name "${p.name}" must match the script filename "${xe}"`)}let b=Wj(d),I=Date.now(),P=[],A=0,C=0,U=(xe,ie)=>({name:p.name,...p.description?{description:p.description}:{},ok:xe,agents:C,outputTokens:A,startedAt:I,phases:p.phases??[],steps:P,...ie?{error:ie}:{}}),z=(xe,ie)=>{i.ui.setStatus(Nl,ie?void 0:QE(xe)),s?.({content:[],details:U(!1)})},G=xe=>{C=xe.length,A=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:I},!1)},ee=zj(),ye=WE({invoke:r.agent?Jj(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(),Kj);o&&o.addEventListener("abort",()=>De.abort(),{once:!0}),t()?.onStop?.(()=>De.abort());try{let xe=await Promise.race([b(ye.agent,ye.parallel,ye.pipeline,ye.phase,ye.log,ye.args,ye.budget),new Promise((v,Ve)=>De.signal.addEventListener("abort",()=>Ve(new He("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), ${A} output tokens in ${fr(ie-I)}
95
96
 
96
- ${Uj(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 qj(e,t){return n=>e({...n,agentType:t})}function Uj(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var Nl,QE,Cj,Nj,ql=u(()=>{Nr();Vs();Ol();UE();Zs();Nl="workflow",QE=null;Cj=600*1e3;Nj=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(Mj(["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 Rt}from"@earendil-works/pi-ai";import{defineTool as Kj}from"@earendil-works/pi-coding-agent";var nS,rS=u(()=>{Vs();Vs();nS=Kj({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:Rt.Object({agent:Rt.Optional(Rt.String()),effort:Rt.Optional(Rt.String()),task:Rt.Optional(Rt.String()),tasks:Rt.Optional(Rt.Array(Rt.Object({agent:Rt.Optional(Rt.String()),effort:Rt.Optional(Rt.String()),task:Rt.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 TE({...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 vE(n),{content:[{type:"text",text:i.map(p=>`## ${p.agent}#${p.id} ${p.status}
97
+ ${Yj(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 Jj(e,t){return n=>e({...n,agentType:t})}function Yj(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var Nl,rS,Kj,Vj,ql=u(()=>{Nr();Vs();Ol();BE();Zs();Nl="workflow",rS=null;Kj=600*1e3;Vj=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(qj(["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 Rt}from"@earendil-works/pi-ai";import{defineTool as Xj}from"@earendil-works/pi-coding-agent";var iS,aS=u(()=>{Vs();Vs();iS=Xj({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:Rt.Object({agent:Rt.Optional(Rt.String()),effort:Rt.Optional(Rt.String()),task:Rt.Optional(Rt.String()),tasks:Rt.Optional(Rt.Array(Rt.Object({agent:Rt.Optional(Rt.String()),effort:Rt.Optional(Rt.String()),task:Rt.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 PE({...p,cwd:o?.cwd})),r?.({content:[],details:{agents:i.map(d=>({id:d.id,agent:d.agent,status:d.status}))}}));if(i.length===0)throw new Error("task or tasks is required");return await RE(n),{content:[{type:"text",text:i.map(p=>`## ${p.agent}#${p.id} ${p.status}
97
98
  ${p.result??""}`).join(`
98
99
 
99
- `)}],details:{agents:i.map(p=>({id:p.id,status:p.status}))}}}})});function oS(){return e=>{e.on("session_start",()=>{let t=new Set(e.getActiveTools());for(let n of Gj)e.getAllTools().some(r=>r.name===n)&&t.add(n);e.setActiveTools([...t])})}}var Gj,sS=u(()=>{Gj=["grep","find","ls"]});var iS={};Mt(iS,{BUILD_ENTRY:()=>dm,openSession:()=>Zj});import{join as Wj}from"node:path";import{createAgentSession as Bj,createCodemodeExtension as zj,createMcpExtension as Hj,DefaultResourceLoader as Vj,SessionManager as lm,SettingsManager as Jj}from"@earendil-works/pi-coding-agent";function Xj(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 Zj(e){let t=Jj.create(e.cwd,Ve,{projectTrusted:!0}),n=e.sessionPath?lm.open(e.sessionPath):e.noSession?lm.inMemory(e.cwd):e.continueSession?lm.continueRecent(e.cwd):lm.create(e.cwd),r=(()=>{try{let w=n.getEntries().find(I=>I.type==="custom"&&I.customType===dm)?.data?.version;return!w||w===Nt?void 0:`this session was written by HowToFix ${w}; you are running ${Nt}`}catch{return}})(),o=new Vj({cwd:e.cwd,agentDir:Ve,settingsManager:t,appendSystemPrompt:[Od],additionalSkillPaths:[hr(e.cwd)],extensionFactories:[eE(),Vo(),If(),tm(),aE(),tE(),oE(),zj(),Hj(),oS()]});await o.reload();let s=await Bj({cwd:e.cwd,agentDir:Ve,settingsManager:t,sessionManager:n,resourceLoader:o,excludeTools:Yj().exclude,customTools:[nS,vf,Ef,Ku,Gu,qv,nE,rE,tS(),rm,om,sm],thinkingLevel:e.thinking}),i=s.session.model;if(e.model){let f=await s.session.modelRuntime.getAvailable(),w=Xj(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!==dm))try{n.appendCustomEntry(dm,{version:Nt})}catch{}let c=i?`${i.provider}/${i.id}`:"no model",p=[Cd(s.modelFallbackMessage)].filter(f=>!!f);return i||p.push(`no model configured. run \`howtofix\` and use /login, or edit ${Wj(Ve,"models.json")}`),{session:s.session,dispose:()=>{vl(),s.session.dispose()},modelLabel:c,note:[r,...p].filter(Boolean).join(`
100
- `)||void 0}}var dm,Yj,aS=u(()=>{Go();$f();Nn();Jo();dc();pl();Wu();Ju();hl();sE();uE();bl();ql();rS();sS();kl();Sl();El();dm="howtofix.build",Yj=()=>({exclude:process.platform==="win32"?[]:["powershell"]})});import{spawn as Qj}from"node:child_process";function eD(e,t,n=2e3){return new Promise(r=>{let o=!1,s=f=>{o||(o=!0,clearTimeout(c),r(f))},i;try{i=Qj(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 tD(){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 eD(t.command,t.args);if(n.ok&&n.stdout.length>0)return n.stdout}}async function uS(){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 tD();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 mS(){return process.platform!=="win32"}var cS=u(()=>{});import{mixColors as nD,styleText as pS}from"@earendil-works/pi-tui";function Qs(e,t,n){let r=hS(n);return r>=1?t:r<=0?e:nD(e,t,r)}function Gl(e,t,n,r){return!Wr||e<=Kl?t:e>=fS?r:Qs(n,r,(e-Kl)/(fS-Kl))}function xS(e,t){return!Wr||t<=0||e<0?1:1-(1-hS(e/t))**3}function yS(e,t){return Wr&&e>=0&&e<t}function Bl(e,t,n=oD,r=400){return!Wr||n<=0||e<0||e>=r?t:Math.min(t,Math.floor(e/n)+1)}function bS(e,t,n=Date.now(),r=1400){if(!Wr||r<=0)return e;let o=n%r/r;return Qs(e,t,o<.5?o*2:(1-o)*2)}function sD(e,t){let n=Math.abs(e-t);return n>=lS?0:Math.ceil((1-n/lS)*gS)/gS}function wS(e,t,n=Date.now()){let r=t.charMs??rD;if(!Wr||e.length===0||r<=0)return pS(e,{fg:t.base},mm);let o=e.length+dS*2,s=n/r%o-dS,i=(P,A)=>pS(P,{fg:Qs(t.base,t.bright,A)},mm),c="",p=0,f=null,w=0,I=0;for(let P of e){let A=sD(I,s);f===null?f=A:A!==f&&(c+=i(e.slice(p,w),f),p=w,f=A),w+=P.length,I+=1}return c+i(e.slice(p),f??0)}var Wr,rD,lS,dS,Kl,fS,gS,hS,fm,Wl,oD,zl=u(()=>{Js();Wr=process.env.HOWTOFIX_NO_MOTION!=="1",rD=45,lS=5,dS=8,Kl=1e4,fS=6e4,gS=3,hS=e=>e<0?0:e>1?1:e;fm=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,oD=45});import{execFile as iD,execFileSync as aD}from"node:child_process";import{promisify as uD}from"node:util";import{createHash as $S}from"node:crypto";import{copyFileSync as mD,existsSync as Hl,mkdirSync as gm,readFileSync as cD,statSync as pD}from"node:fs";import{dirname as kS,join as jn,resolve as TS}from"node:path";function dD(e){let t=TS(e);for(;;){if(Hl(jn(t,".git")))return!0;let n=kS(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 fD("git",t,{cwd:e.root,env:n,encoding:"utf8",maxBuffer:8*1024*1024});return r.trim()}function gD(e){return $S("sha1").update(e).digest("hex").slice(0,16)}function vS(e){let t=TS(e).replace(/\/+$/,"")||"/",n=jn(lD,gD(t)),r=jn(n,"git"),o={root:t,gitDir:r,metaFile:jn(n,"checkpoints.json"),disabled:!1};return!Hl(jn(r,"HEAD"))&&!dD(t)?(o.disabled=!0,o):(gm(n,{recursive:!0}),Hl(jn(r,"HEAD"))||(gm(r,{recursive:!0}),aD("git",["init","--quiet","--initial-branch=howtofix"],{env:{...process.env,GIT_DIR:r},stdio:["ignore","ignore","pipe"]})),hD(t,r),o)}function hD(e,t){let n=jn(e,".git","info","exclude");try{if(!pD(n).isFile())return;gm(jn(t,"info"),{recursive:!0}),mD(n,jn(t,"info","exclude"))}catch{}}function Jl(e){try{let t=JSON.parse(cD(e.metaFile,"utf8"));if(t?.version===1&&t.sessions)return t}catch{}return{version:1,sessions:{}}}function ES(e,t){gm(kS(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 SS(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)}-${$S("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),I=[...w.sessions[t]??[],f];for(let P of I.slice(0,Math.max(0,I.length-IS)))try{await fn(e,["update-ref","-d",`${Vl}/${P.id}`])}catch{}return w.sessions[t]=I.slice(-IS),ES(e,w),f}async function PS(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 RS(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 AS(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],ES(e,n)}var lD,Vl,IS,fD,MS=u(()=>{Nn();Hn();lD=jn(Ve,"rewind"),Vl="refs/howtofix",IS=100;fD=uD(iD)});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 xD(e,t=160){if(!e||typeof e!="object")return"";try{let n=JSON.stringify(e);return n&&n!=="{}"?Br(n,t):""}catch{return""}}function yD(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 xD(t)}}function jo(e,t,n=100){let r=e.charAt(0).toUpperCase()+e.slice(1),o=Br(yD(e,t),n);return o?`${OS} ${r}(${o})`:`${OS} ${r}`}function bD(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 ti(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 CS(e){let t=e.exit_code;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function LS(e){return e.trim().split(`
107
- `).find(t=>t.trim())??""}function wD(e,t){let n=typeof e.output=="string"?e.output:t.replace(/\n*Command exited with code \d+\s*$/,""),r=ei(n);return r>0?` (${r} line${r===1?"":"s"})`:""}function ei(e){let t=e.trim();return t?t.split(`
108
- `).length:0}function xm(e,t,n){let r=td(t),o=ti(t),s=nd(t);if(n){let i=CS(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=ei(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}=bD(i);return`+${c} / -${p}`}case"write":{let i=ei(r);return i>0?`written (${i} lines)`:"written"}case"bash":case"powershell":{let i=CS(s);if(i===void 0)return r.trim()?Br(LS(r),120):"done";let c=wD(s,r);return i===0?`exit 0${c}`:`exit ${i}`}case"grep":{let i=ei(r);return i===0?"no matches":`${i} match${i===1?"":"es"}`}case"web_search":{let i=typeof o.count=="number"?o.count:ei(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(LS(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 FS(e,t){let n=ti(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
100
+ `)}],details:{agents:i.map(p=>({id:p.id,status:p.status}))}}}})});function uS(){return e=>{e.on("session_start",()=>{let t=new Set(e.getActiveTools());for(let n of Zj)e.getAllTools().some(r=>r.name===n)&&t.add(n);e.setActiveTools([...t])})}}var Zj,mS=u(()=>{Zj=["grep","find","ls"]});var cS={};Mt(cS,{BUILD_ENTRY:()=>dm,openSession:()=>aD});import{join as Qj}from"node:path";import{createAgentSession as eD,createCodemodeExtension as tD,createMcpExtension as nD,DefaultResourceLoader as rD,SessionManager as lm,SettingsManager as oD}from"@earendil-works/pi-coding-agent";function iD(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 aD(e){let t=oD.create(e.cwd,_e,{projectTrusted:!0}),n=e.sessionPath?lm.open(e.sessionPath):e.noSession?lm.inMemory(e.cwd):e.continueSession?lm.continueRecent(e.cwd):lm.create(e.cwd),r=(()=>{try{let b=n.getEntries().find(I=>I.type==="custom"&&I.customType===dm)?.data?.version;return!b||b===Nt?void 0:`this session was written by HowToFix ${b}; you are running ${Nt}`}catch{return}})(),o=new rD({cwd:e.cwd,agentDir:_e,settingsManager:t,appendSystemPrompt:kf(Cd),additionalSkillPaths:[hr(e.cwd)],extensionFactories:[oE(),Vo(),vf(),tm(),pE(),sE(),uE(),tD(),nD(),uS()]});await o.reload();let s=await eD({cwd:e.cwd,agentDir:_e,settingsManager:t,sessionManager:n,resourceLoader:o,excludeTools:sD().exclude,customTools:[iS,Rf,Af,Ku,Gu,Wv,iE,aE,sS(),rm,om,sm],thinkingLevel:e.thinking}),i=s.session.model;if(e.model){let d=await s.session.modelRuntime.getAvailable(),b=iD(d,e.model);if(!b)throw s.session.dispose(),new Error(`unknown model '${e.model}'`);(i?.id!==b.id||i.provider!==b.provider)&&(await s.session.setModel(b),i=s.session.model)}if(!e.noSession&&n.getEntries().every(d=>d.type!=="custom"||d.customType!==dm))try{n.appendCustomEntry(dm,{version:Nt})}catch{}let c=i?`${i.provider}/${i.id}`:"no model",p=[Ld(s.modelFallbackMessage)].filter(d=>!!d);return i||p.push(`no model configured. run \`howtofix\` and use /login, or edit ${Qj(_e,"models.json")}`),{session:s.session,dispose:()=>{vl(),s.session.dispose()},modelLabel:c,note:[r,...p].filter(Boolean).join(`
101
+ `)||void 0}}var dm,sD,pS=u(()=>{Go();Tf();Ef();xn();Jo();dc();pl();Wu();Ju();hl();mE();lE();bl();ql();aS();mS();kl();Sl();El();dm="howtofix.build",sD=()=>({exclude:process.platform==="win32"?[]:["powershell"]})});import{spawn as uD}from"node:child_process";function mD(e,t,n=2e3){return new Promise(r=>{let o=!1,s=d=>{o||(o=!0,clearTimeout(c),r(d))},i;try{i=uD(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",d=>p.push(d)),i.on("error",()=>s({ok:!1,stdout:""})),i.on("close",d=>{s({ok:d===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 cD(){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 mD(t.command,t.args);if(n.ok&&n.stdout.length>0)return n.stdout}}async function lS(){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 cD();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 dS(){return process.platform!=="win32"}var fS=u(()=>{});import{mixColors as pD,styleText as gS}from"@earendil-works/pi-tui";function Qs(e,t,n){let r=wS(n);return r>=1?t:r<=0?e:pD(e,t,r)}function Gl(e,t,n,r){return!Wr||e<=Kl?t:e>=yS?r:Qs(n,r,(e-Kl)/(yS-Kl))}function IS(e,t){return!Wr||t<=0||e<0?1:1-(1-wS(e/t))**3}function $S(e,t){return Wr&&e>=0&&e<t}function Bl(e,t,n=dD,r=400){return!Wr||n<=0||e<0||e>=r?t:Math.min(t,Math.floor(e/n)+1)}function kS(e,t,n=Date.now(),r=1400){if(!Wr||r<=0)return e;let o=n%r/r;return Qs(e,t,o<.5?o*2:(1-o)*2)}function fD(e,t){let n=Math.abs(e-t);return n>=hS?0:Math.ceil((1-n/hS)*bS)/bS}function TS(e,t,n=Date.now()){let r=t.charMs??lD;if(!Wr||e.length===0||r<=0)return gS(e,{fg:t.base},mm);let o=e.length+xS*2,s=n/r%o-xS,i=(P,A)=>gS(P,{fg:Qs(t.base,t.bright,A)},mm),c="",p=0,d=null,b=0,I=0;for(let P of e){let A=fD(I,s);d===null?d=A:A!==d&&(c+=i(e.slice(p,b),d),p=b,d=A),b+=P.length,I+=1}return c+i(e.slice(p),d??0)}var Wr,lD,hS,xS,Kl,yS,bS,wS,fm,Wl,dD,zl=u(()=>{Js();Wr=process.env.HOWTOFIX_NO_MOTION!=="1",lD=45,hS=5,xS=8,Kl=1e4,yS=6e4,bS=3,wS=e=>e<0?0:e>1?1:e;fm=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,dD=45});import{execFile as gD,execFileSync as hD}from"node:child_process";import{promisify as xD}from"node:util";import{createHash as ES}from"node:crypto";import{copyFileSync as yD,existsSync as Hl,mkdirSync as gm,readFileSync as bD,statSync as wD}from"node:fs";import{dirname as SS,join as Dn,resolve as PS}from"node:path";function $D(e){let t=PS(e);for(;;){if(Hl(Dn(t,".git")))return!0;let n=SS(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 kD("git",t,{cwd:e.root,env:n,encoding:"utf8",maxBuffer:8*1024*1024});return r.trim()}function TD(e){return ES("sha1").update(e).digest("hex").slice(0,16)}function RS(e){let t=PS(e).replace(/\/+$/,"")||"/",n=Dn(ID,TD(t)),r=Dn(n,"git"),o={root:t,gitDir:r,metaFile:Dn(n,"checkpoints.json"),disabled:!1};return!Hl(Dn(r,"HEAD"))&&!$D(t)?(o.disabled=!0,o):(gm(n,{recursive:!0}),Hl(Dn(r,"HEAD"))||(gm(r,{recursive:!0}),hD("git",["init","--quiet","--initial-branch=howtofix"],{env:{...process.env,GIT_DIR:r},stdio:["ignore","ignore","pipe"]})),vD(t,r),o)}function vD(e,t){let n=Dn(e,".git","info","exclude");try{if(!wD(n).isFile())return;gm(Dn(t,"info"),{recursive:!0}),yD(n,Dn(t,"info","exclude"))}catch{}}function Jl(e){try{let t=JSON.parse(bD(e.metaFile,"utf8"));if(t?.version===1&&t.sessions)return t}catch{}return{version:1,sessions:{}}}function AS(e,t){gm(SS(e.metaFile),{recursive:!0}),tt(e.metaFile,`${JSON.stringify(t,null,1)}
102
+ `)}function Yl(e,t){return e.disabled?[]:[...Jl(e).sessions[t]??[]].sort((n,r)=>n.at-r.at)}async function MS(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)}-${ES("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(`
103
+ `);p=await fn(e,["commit-tree",r,"-m",P]),await fn(e,["update-ref",`${Vl}/${c}`,p])}let d={id:c,tree:r,commit:p,prompt:n,at:i},b=Jl(e),I=[...b.sessions[t]??[],d];for(let P of I.slice(0,Math.max(0,I.length-vS)))try{await fn(e,["update-ref","-d",`${Vl}/${P.id}`])}catch{}return b.sessions[t]=I.slice(-vS),AS(e,b),d}async function OS(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(`
104
+ `)){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 CS(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(`
105
+ `).filter(Boolean).map(o=>{let[s,...i]=o.split(" ");return`${s?.[0]??"?"} ${i.at(-1)??""}`})}catch{return[]}}async function LS(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],AS(e,n)}var ID,Vl,vS,kD,FS=u(()=>{xn();Hn();ID=Dn(_e,"rewind"),Vl="refs/howtofix",vS=100;kD=xD(gD)});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 ED(e,t=160){if(!e||typeof e!="object")return"";try{let n=JSON.stringify(e);return n&&n!=="{}"?Br(n,t):""}catch{return""}}function SD(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(`
106
+ `)[0]??"";return s.length>40?`${s.slice(0,40)}\u2026`:s}default:return ED(t)}}function jo(e,t,n=100){let r=e.charAt(0).toUpperCase()+e.slice(1),o=Br(SD(e,t),n);return o?`${jS} ${r}(${o})`:`${jS} ${r}`}function PD(e){let t=0,n=0;for(let r of e.split(`
107
+ `))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 ti(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 DS(e){let t=e.exit_code;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function _S(e){return e.trim().split(`
108
+ `).find(t=>t.trim())??""}function RD(e,t){let n=typeof e.output=="string"?e.output:t.replace(/\n*Command exited with code \d+\s*$/,""),r=ei(n);return r>0?` (${r} line${r===1?"":"s"})`:""}function ei(e){let t=e.trim();return t?t.split(`
109
+ `).length:0}function xm(e,t,n){let r=td(t),o=ti(t),s=nd(t);if(n){let i=DS(s);if(i!==void 0&&(e==="bash"||e==="powershell"))return`exit ${i}`;let c=r.trim().split(`
110
+ `).find(p=>p.trim());return Br(c??"failed",120)}switch(e){case"read":{let i=o.truncation,c=ei(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}=PD(i);return`+${c} / -${p}`}case"write":{let i=ei(r);return i>0?`written (${i} lines)`:"written"}case"bash":case"powershell":{let i=DS(s);if(i===void 0)return r.trim()?Br(_S(r),120):"done";let c=RD(s,r);return i===0?`exit 0${c}`:`exit ${i}`}case"grep":{let i=ei(r);return i===0?"no matches":`${i} match${i===1?"":"es"}`}case"web_search":{let i=typeof o.count=="number"?o.count:ei(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(_S(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(d=>d.status==="completed").length,p=i.filter(d=>d.status==="pending"||d.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(b=>b.status==="failed").length:0;if(typeof o.error=="string")return`failed after ${i} agent(s)`;let d=typeof o.startedAt=="number"&&typeof o.endedAt=="number"?`, ${fr(o.endedAt-o.startedAt)}`:"";return`${i} agent(s), ${c} tokens${d}${p>0?`, ${p} failed`:""}`}default:{let i=r.trim().split(`
111
+ `).find(c=>c.trim());return i?Br(i,120):"done"}}}function NS(e,t){let n=ti(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
111
112
  `).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 jS(e,t){let n=ti(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
113
+ `).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 qS(e,t){let n=ti(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
113
114
  `).filter(c=>c.length>0).slice(0,hm);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,hm);return s.length>hm&&i.push(`\u2026 ${s.length-hm} more line(s)`),i}var OS,Zl,Ql,Xl,hm,rd=u(()=>{Zs();OS="\u25CF",Zl="\u2514",Ql="\u22EF",Xl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];hm=400});import{Markdown as ID,wrapTextWithAnsi as $D}from"@earendil-works/pi-tui";function DS(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 kD(e){return e.content.filter(t=>t.type==="toolCall").map(t=>({name:t.name,arguments:t.arguments}))}function bm(e){let t=[];for(let n of e)if(n.role==="user"){let r=DS(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=DS(n.content).trim(),o=kD(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
+ `),i=s.slice(0,hm);return s.length>hm&&i.push(`\u2026 ${s.length-hm} more line(s)`),i}var jS,Zl,Ql,Xl,hm,rd=u(()=>{Zs();jS="\u25CF",Zl="\u2514",Ql="\u22EF",Xl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];hm=400});import{Markdown as AD,wrapTextWithAnsi as MD}from"@earendil-works/pi-tui";function US(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 OD(e){return e.content.filter(t=>t.type==="toolCall").map(t=>({name:t.name,arguments:t.arguments}))}function bm(e){let t=[];for(let n of e)if(n.role==="user"){let r=US(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=US(n.content).trim(),o=OD(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
 
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:xm(n.toolName,{content:n.content},n.isError)});return t}function _S(e,t,n){return $D(e,Math.max(8,t)).map(r=>ne(r,n))}function TD(e){let t=e.body||" ",n=ni.get(e.id);if(n)return n.text!==t&&(n.component.setText(t),n.text=t),n.component;let r=new ID(t,0,0,KE);return ni.set(e.id,{text:t,component:r}),r}var ni,od,ym,NS=u(()=>{zl();Js();rd();ni=new Map;od=class{constructor(t){this.item=t}item;invalidate(){}shade(t){let n=Date.now()-(this.item.born??0);return Qs(_.dim,t,xS(n,Wl))}render(t){let n=this.item.body;if(this.item.kind==="user")return["",..._S(`> ${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 I of this.item.full){let P=I.startsWith("+")?_.tool:I.startsWith("-")?_.bad:_.dim;s.push(ne(` ${I}`,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 I=w.startsWith("+")?_.tool:w.startsWith("-")?_.bad:_.dim;s.push(ne(` ${w}`,this.shade(I)))}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["",..._S(n,t,this.shade(o))]}return["",...TD(this.item).render(Math.max(8,t-2))]}},ym=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 yS(r,Wl)?!0:(n.detail?.length??0)>Bl(r,n.detail?.length??0)})}render(t){if(ni.size>this.items.length){let o=new Set(this.items.map(s=>s.id));for(let s of ni.keys())o.has(s)||ni.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}${US}`}function ED(e){return e>=85?vD:e>=70?GS:KS}function WS(e,t,n,r){let o=ft(`[${e}]`,sd),s=ft(`${SD} ${t}`,Dn),i=ft(n,GS),c=r?` ${ft("git:(",qS)}${ft(r.replace(/^git:\(/,"").replace(/\)$/,""),sd)}${ft(")",qS)}`:"";return`${o}${ft(" \u2502 ",Dn)}${s}${ft(" \u2502 ",Dn)}${i}${c}`}function BS(e,t,n){if(!t)return e;let r=n===void 0?t:`${t} ${ft(BE(n),Dn)}`;return`${ft(r,sd)} ${ft("\u2502",Dn)} ${e}`}function zS(e,t){let n=Number.isFinite(e)?Math.min(100,Math.max(0,e)):0,r=Math.round(n/10),o=ED(n),s=`${o}${"\u2588".repeat(r)}${Dn}${"\u2591".repeat(10-r)}${US}`,i=ft(`${Math.round(n)}%`,o),c=t?`${ft(" \u2502 ",Dn)}${t}`:"";return`${ft("Context",Dn)} ${s} ${i}${c}`}function HS(e,t,n){let r=n===null?"":ft(` ${n}ms`,Dn);return`${ft("Cubence",Dn)} ${ft(t?`${t} ${e}`:e,KS)}${r}`}var US,Dn,vD,KS,GS,qS,sd,SD,id=u(()=>{Zs();US="\x1B[0m",Dn="\x1B[2m",vD="\x1B[31m",KS="\x1B[32m",GS="\x1B[33m",qS="\x1B[35m",sd="\x1B[36m";SD="\u2726"});import{mkdirSync as PD,readFileSync as JS}from"node:fs";import{homedir as RD}from"node:os";import{dirname as AD,join as MD}from"node:path";function VS(e){return e/1e6}function CD(){try{let e=JSON.parse(JS(MD(RD(),".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 LD(){try{let e=JSON.parse(JS(ad,"utf8"));return!e.data||typeof e.cachedAt!="number"?void 0:{data:e.data,cachedAt:e.cachedAt}}catch{return}}function ri(e){let t=`$${e.balanceDollar.toFixed(2)}`,n=e.hasSubscription?`5h $${e.fiveHourUsedDollar.toFixed(2)}/$${e.fiveHourLimitDollar.toFixed(2)} bal`:"";return HS(t,n,e.latencyMs)}async function YS(){let e=LD();if(e&&Date.now()-e.cachedAt<OD)return ri(e.data);let t=CD();if(!t)return e?ri(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?ri(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:VS(o.subscription_window?.five_hour?.used??0),fiveHourLimitDollar:VS(s),latencyMs:Date.now()-n};return PD(AD(ad),{recursive:!0}),tt(ad,JSON.stringify({data:i,cachedAt:Date.now()})),ri(i)}catch{return e?ri(e.data):void 0}}var ad,OD,XS=u(()=>{Nn();id();Hn();ad=Um,OD=18e4});import{createHash as QS,randomBytes as eP}from"node:crypto";import{createServer as FD}from"node:http";import{arch as jD,cpus as ZS,hostname as DD,platform as _D,userInfo as ND}from"node:os";function md(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function KD(){return md(eP(32))}function GD(e){return md(QS("sha256").update(e).digest())}function WD(){return md(eP(16))}function VD(e){let t=e??[DD(),_D(),jD(),ND().username,String(ZS().length),ZS()[0]?.model??""];return BD+QS("sha256").update(t.join("\0")).digest("hex").slice(0,32)}function JD(){return{"content-type":"application/json",[zD]:HD}}async function oi(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 XD(e){try{let t=new URL(e).searchParams.get("code");return t&&t.trim()!==""?t.trim():void 0}catch{return}}async function ZD(e,t,n){let r=await e(t,{headers:JD(),signal:n}),o={};try{o=await r.json()}catch{}return{status:r.status,body:o}}function cd(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 Do(e,t){let n=e.message??e.error;return typeof n=="string"&&n.trim()?n.trim():t}async function rP(e){let t=e.fetchImpl??fetch,n=(e.panelUrl??qD).replace(/\/+$/,""),r=e.timeoutMs??UD,o={...e,panel:n,fetchImpl:t,timeoutMs:r},s=await e_(o);if(s.ok||s.terminal)return s.result;let i=await QD(o);if(i.ok||i.terminal)return i.result;let c=await t_(o);return c.ok?c:{ok:!1,message:`${s.result.ok?"":s.result.message}; ${i.result.ok?"":i.result.message}; ${c.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 QD(e){let t=KD(),n=WD(),r;try{r=await(e.loopback??YD)();let o=`http://127.0.0.1:${r.port}${nP}`,s=await oi(e.fetchImpl,`${e.panel}/api/oauth/device/start`,{redirect_uri:o,code_challenge:GD(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:Do(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 n_(r.waitForCode(n,e.signal),e.timeoutMs),p=await oi(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:Do(p.body,`the panel refused the exchange (${p.status})`)}};let f=cd(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 e_(e){let t=e.pollIntervalMs??tP,n=e.fingerprintId??VD();try{let r=await oi(e.fetchImpl,`${e.panel}/api/auth/cli/code`,{fingerprintId:n},e.signal);if(r.status===404)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel has no CLI login endpoint"}};if(r.status>=400)return{ok:!1,terminal:!1,result:{ok:!1,message:Do(r.body,`the panel refused the login (${r.status})`)}};let o=typeof r.body.login_url=="string"?r.body.login_url:"",s=typeof r.body.code=="string"?r.body.code:XD(o);if(!o||!s)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel did not return a login URL"}};e.onProgress({kind:"browser",url:o});let i=Date.now()+e.timeoutMs;for(;Date.now()<i;){await ud(t,e.signal);let c=new URLSearchParams({code:s}),p=await ZD(e.fetchImpl,`${e.panel}/api/auth/cli/status?${c}`,e.signal);if(p.status===404)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel has no CLI login status endpoint"}};let f=cd(p.body);if(f)return{ok:!0,result:{ok:!0,token:f}};if(p.status>=400)return{ok:!1,terminal:!0,result:{ok:!1,message:Do(p.body,`the panel refused the poll (${p.status})`)}}}return{ok:!1,terminal:!0,result:{ok:!1,message:"the sign-in was not approved in time"}}}catch(r){let o=r instanceof Error?r.message:String(r);return{ok:!1,terminal:o==="cancelled",result:{ok:!1,message:o}}}}async function t_(e){let t=e.pollIntervalMs??tP;try{let n=await oi(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:Do(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 ud(t,e.signal);let c=await oi(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 ud(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=cd(c.body);if(f)return{ok:!0,token:f};if(c.status>=400)return{ok:!1,message:Do(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 n_(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 ud(e,t){return new Promise((n,r)=>{let o=setTimeout(n,e);t?.addEventListener("abort",()=>{clearTimeout(o),r(new Error("cancelled"))},{once:!0})})}var qD,UD,tP,nP,BD,zD,HD,YD,oP=u(()=>{qD="https://howtofix.id",UD=300*1e3,tP=3e3,nP="/callback";BD="howtofix-cli-",zD="x-howtofix-client",HD="cli";YD=()=>new Promise((e,t)=>{let n=FD();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=(I,P)=>{let A=new URL(I.url??"/","http://127.0.0.1");if(A.pathname!==nP){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=A.searchParams.get("error")??"",z=A.searchParams.get("code")??"",G=A.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=(I,P)=>{n.off("request",p),s?.removeEventListener("abort",w),I?c(I):i(P)},w=()=>f(new Error("cancelled"));s?.addEventListener("abort",w,{once:!0}),n.on("request",p)})})})})});function sP(){return{}}function iP(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 r_(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 aP(e,t,n=Date.now()){return e.prompt?`? ${e.prompt}`:e.note?`* ${e.note}`:e.run?`${t} ${e.run.label} \xB7 ${r_(n-e.run.since)}`:e.tally?e.tally:""}var uP=u(()=>{});import{spawn as o_}from"node:child_process";function s_(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=s_(t);return n?new Promise(r=>{try{let o=o_(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 mP=u(()=>{});function i_(e){return[qm,hr(e)]}function cP(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 pP(e){if(e.length===0){let[t,n]=i_(process.cwd());return["no skills loaded.",`put a SKILL.md in ${t}`,`or in ${n}`,"invoke with /skill:<name>"].join(`
117
+ ${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:xm(n.toolName,{content:n.content},n.isError)});return t}function KS(e,t,n){return MD(e,Math.max(8,t)).map(r=>re(r,n))}function CD(e){let t=e.body||" ",n=ni.get(e.id);if(n)return n.text!==t&&(n.component.setText(t),n.text=t),n.component;let r=new AD(t,0,0,zE);return ni.set(e.id,{text:t,component:r}),r}var ni,od,ym,GS=u(()=>{zl();Js();rd();ni=new Map;od=class{constructor(t){this.item=t}item;invalidate(){}shade(t){let n=Date.now()-(this.item.born??0);return Qs(_.dim,t,IS(n,Wl))}render(t){let n=this.item.body;if(this.item.kind==="user")return["",...KS(`> ${n}`,t,this.shade(_.user))];if(this.item.kind==="tool")return[re(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?[re(` ${Zl} ${n}`,o?_.bad:_.mute)]:[]];let s=[];this.item.call&&s.push(re(this.item.call,this.shade(_.tool)));let i=` ${Zl} ${n}`;if(s.push(re(i,o?_.bad:this.shade(_.mute))),this.item.expanded===!0&&(this.item.full?.length??0)>0){let b=re(` ${this.item.full.length} line(s) \xB7 ctrl+e to collapse`,_.dim);s.push(re(` ${Ql}`,_.dim));for(let I of this.item.full){let P=I.startsWith("+")?_.tool:I.startsWith("-")?_.bad:_.dim;s.push(re(` ${I}`,P))}return s.push(b),s}let p=this.item.detail??[],d=Bl(Date.now()-(this.item.born??0),p.length);for(let b of p.slice(0,d)){let I=b.startsWith("+")?_.tool:b.startsWith("-")?_.bad:_.dim;s.push(re(` ${b}`,this.shade(I)))}return(this.item.full?.length??0)>0&&s.push(re(` ${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["",...KS(n,t,this.shade(o))]}return["",...CD(this.item).render(Math.max(8,t-2))]}},ym=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 $S(r,Wl)?!0:(n.detail?.length??0)>Bl(r,n.detail?.length??0)})}render(t){if(ni.size>this.items.length){let o=new Set(this.items.map(s=>s.id));for(let s of ni.keys())o.has(s)||ni.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(re(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}${BS}`}function FD(e){return e>=85?LD:e>=70?HS:zS}function VS(e,t,n,r){let o=ft(`[${e}]`,sd),s=ft(`${jD} ${t}`,_n),i=ft(n,HS),c=r?` ${ft("git:(",WS)}${ft(r.replace(/^git:\(/,"").replace(/\)$/,""),sd)}${ft(")",WS)}`:"";return`${o}${ft(" \u2502 ",_n)}${s}${ft(" \u2502 ",_n)}${i}${c}`}function JS(e,t,n){if(!t)return e;let r=n===void 0?t:`${t} ${ft(JE(n),_n)}`;return`${ft(r,sd)} ${ft("\u2502",_n)} ${e}`}function YS(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)}${_n}${"\u2591".repeat(10-r)}${BS}`,i=ft(`${Math.round(n)}%`,o),c=t?`${ft(" \u2502 ",_n)}${t}`:"";return`${ft("Context",_n)} ${s} ${i}${c}`}function XS(e,t,n){let r=n===null?"":ft(` ${n}ms`,_n);return`${ft("Cubence",_n)} ${ft(t?`${t} ${e}`:e,zS)}${r}`}var BS,_n,LD,zS,HS,WS,sd,jD,id=u(()=>{Zs();BS="\x1B[0m",_n="\x1B[2m",LD="\x1B[31m",zS="\x1B[32m",HS="\x1B[33m",WS="\x1B[35m",sd="\x1B[36m";jD="\u2726"});import{mkdirSync as DD,readFileSync as QS}from"node:fs";import{homedir as _D}from"node:os";import{dirname as ND,join as qD}from"node:path";function ZS(e){return e/1e6}function KD(){try{let e=JSON.parse(QS(qD(_D(),".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 GD(){try{let e=JSON.parse(QS(ad,"utf8"));return!e.data||typeof e.cachedAt!="number"?void 0:{data:e.data,cachedAt:e.cachedAt}}catch{return}}function ri(e){let t=`$${e.balanceDollar.toFixed(2)}`,n=e.hasSubscription?`5h $${e.fiveHourUsedDollar.toFixed(2)}/$${e.fiveHourLimitDollar.toFixed(2)} bal`:"";return XS(t,n,e.latencyMs)}async function eP(){let e=GD();if(e&&Date.now()-e.cachedAt<UD)return ri(e.data);let t=KD();if(!t)return e?ri(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?ri(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 DD(ND(ad),{recursive:!0}),tt(ad,JSON.stringify({data:i,cachedAt:Date.now()})),ri(i)}catch{return e?ri(e.data):void 0}}var ad,UD,tP=u(()=>{xn();id();Hn();ad=Um,UD=18e4});import{createHash as rP,randomBytes as oP}from"node:crypto";import{createServer as WD}from"node:http";import{arch as BD,cpus as nP,hostname as zD,platform as HD,userInfo as VD}from"node:os";function cd(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function XD(){return cd(oP(32))}function ZD(e){return cd(rP("sha256").update(e).digest())}function QD(){return cd(oP(16))}function r_(e){let t=e??[zD(),HD(),BD(),VD().username,String(nP().length),nP()[0]?.model??""];return e_+rP("sha256").update(t.join("\0")).digest("hex").slice(0,32)}function o_(){return{"content-type":"application/json",[t_]:n_}}async function oi(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 ud(...e){for(let t of e)if(typeof t=="string"&&t.trim()!=="")return t.trim()}function i_(e){try{let t=new URL(e).searchParams.get("code");return t&&t.trim()!==""?t.trim():void 0}catch{return}}async function a_(e,t,n){let r=await e(t,{headers:o_(),signal:n}),o={};try{o=await r.json()}catch{}return{status:r.status,body:o}}function pd(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 Do(e,t){let n=e.message??e.error;return typeof n=="string"&&n.trim()?n.trim():t}async function aP(e){let t=e.fetchImpl??fetch,n=(e.panelUrl??JD).replace(/\/+$/,""),r=e.timeoutMs??YD,o={...e,panel:n,fetchImpl:t,timeoutMs:r},s=await m_(o);if(s.ok||s.terminal)return s.result;let i=await u_(o);if(i.ok||i.terminal)return i.result;let c=await c_(o);return c.ok?c:{ok:!1,message:`${s.result.ok?"":s.result.message}; ${i.result.ok?"":i.result.message}; ${c.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 u_(e){let t=XD(),n=QD(),r;try{r=await(e.loopback??s_)();let o=`http://127.0.0.1:${r.port}${iP}`,s=await oi(e.fetchImpl,`${e.panel}/api/oauth/device/start`,{redirect_uri:o,code_challenge:ZD(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:Do(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 p_(r.waitForCode(n,e.signal),e.timeoutMs),p=await oi(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:Do(p.body,`the panel refused the exchange (${p.status})`)}};let d=pd(p.body);return d?{ok:!0,result:{ok:!0,token:d}}:{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 m_(e){let t=e.pollIntervalMs??sP,n=e.fingerprintId??r_();try{let r=await oi(e.fetchImpl,`${e.panel}/api/auth/cli/code`,{fingerprintId:n},e.signal);if(r.status===404)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel has no CLI login endpoint"}};if(r.status>=400)return{ok:!1,terminal:!1,result:{ok:!1,message:Do(r.body,`the panel refused the login (${r.status})`)}};let o=r.body.data??{},s=ud(r.body.login_url,o.login_url),i=ud(r.body.code,o.code)??(s?i_(s):void 0);if(!s||!i)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel did not return a login URL"}};e.onProgress({kind:"browser",url:s});let c=Date.now()+e.timeoutMs;for(;Date.now()<c;){await md(t,e.signal);let p=new URLSearchParams({code:i}),d=await a_(e.fetchImpl,`${e.panel}/api/auth/cli/status?${p}`,e.signal);if(d.status===404)return{ok:!1,terminal:!1,result:{ok:!1,message:"the panel has no CLI login status endpoint"}};let b=pd(d.body);if(b)return{ok:!0,result:{ok:!0,token:b}};if(ud(d.body.data?.status,d.body.status)==="expired")return{ok:!1,terminal:!0,result:{ok:!1,message:"the sign-in link expired before it was approved"}};if(d.status>=400)return{ok:!1,terminal:!0,result:{ok:!1,message:Do(d.body,`the panel refused the poll (${d.status})`)}}}return{ok:!1,terminal:!0,result:{ok:!1,message:"the sign-in was not approved in time"}}}catch(r){let o=r instanceof Error?r.message:String(r);return{ok:!1,terminal:o==="cancelled",result:{ok:!1,message:o}}}}async function c_(e){let t=e.pollIntervalMs??sP;try{let n=await oi(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:Do(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 md(t,e.signal);let c=await oi(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 md(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 d=pd(c.body);if(d)return{ok:!0,token:d};if(c.status>=400)return{ok:!1,message:Do(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 p_(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 md(e,t){return new Promise((n,r)=>{let o=setTimeout(n,e);t?.addEventListener("abort",()=>{clearTimeout(o),r(new Error("cancelled"))},{once:!0})})}var JD,YD,sP,iP,e_,t_,n_,s_,uP=u(()=>{JD="https://howtofix.id",YD=300*1e3,sP=3e3,iP="/callback";e_="howtofix-cli-",t_="x-howtofix-client",n_="cli";s_=()=>new Promise((e,t)=>{let n=WD();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=(I,P)=>{let A=new URL(I.url??"/","http://127.0.0.1");if(A.pathname!==iP){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=A.searchParams.get("error")??"",z=A.searchParams.get("code")??"",G=A.searchParams.get("state")??"";if(U){C("Sign-in was refused","You can close this tab."),d(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."),d(new Error("the callback carried the wrong state"));return}C("Signed in","You can close this tab and go back to HowToFix."),d(void 0,z)},d=(I,P)=>{n.off("request",p),s?.removeEventListener("abort",b),I?c(I):i(P)},b=()=>d(new Error("cancelled"));s?.addEventListener("abort",b,{once:!0}),n.on("request",p)})})})})});function mP(){return{}}function cP(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 l_(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 pP(e,t,n=Date.now()){return e.prompt?`? ${e.prompt}`:e.note?`* ${e.note}`:e.run?`${t} ${e.run.label} \xB7 ${l_(n-e.run.since)}`:e.tally?e.tally:""}var lP=u(()=>{});import{spawn as d_}from"node:child_process";function f_(e){switch(e){case"darwin":return{command:"open",args:[]};case"win32":return{command:"cmd",args:["/c","start",""]};case"linux":return{command:"xdg-open",args:[]};default:return}}async function wm(e,t=process.platform){let n=f_(t);return n?new Promise(r=>{try{let o=d_(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 dP=u(()=>{});function g_(e){return[qm,hr(e)]}function fP(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 gP(e){if(e.length===0){let[t,n]=g_(process.cwd());return["no skills loaded.",`put a SKILL.md in ${t}`,`or in ${n}`,"invoke with /skill:<name>"].join(`
117
118
  `)}return e.map(t=>{let n=t.disableModelInvocation?" (invoke only)":"";return`${t.name}${n}
118
119
  ${t.description}
119
120
  ${t.filePath}`}).join(`
120
- `)}var lP=u(()=>{Nn()});import{mkdirSync as a_}from"node:fs";import{join as u_}from"node:path";import{matchesKey as Im}from"@earendil-works/pi-tui";function fP(){return{selectedPhase:0,filter:"all",paused:!1,expanded:!1,follow:!0}}function gP(e){if(Im(e,"up"))return"up";if(Im(e,"down"))return"down";if(Im(e,"enter"))return"enter";if(Im(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 dP(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 m_(e){let t=pd.indexOf(e);return pd[(t+1)%pd.length]}function hP(e,t,n){switch(t){case"up":return dP(e,n,-1);case"down":return dP(e,n,1);case"enter":return{...e,expanded:!e.expanded};case"filter":return{...e,filter:m_(e.filter)};case"pause":return{...e,paused:!e.paused};default:return e}}function xP(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 yP(e){return e==="all"?"":` \xB7 ${e}`}function wP(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 c_(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 IP(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=c_(e.name);if(!n)return{ok:!1,reason:`"${e.name}" is not a usable filename, so the script was not written`};let r=u_(t,`${n}.js`);try{a_(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 pd,bP,$P=u(()=>{Hn();pd=["all","running","failed","done"];bP="ctrl+f"});function kP(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 TP=u(()=>{});var _P={};Mt(_P,{Dock:()=>vm,Hud:()=>km,PinnedBlock:()=>Tm,approvalDetail:()=>jP,orderModelsForDefault:()=>LP,pickerPanel:()=>FP,runWorkbench:()=>F_,workflowPanel:()=>DP,workflowPanelFromRun:()=>ii,workflowRunOf:()=>Em});import{execFile as p_}from"node:child_process";import{promisify as l_}from"node:util";import{existsSync as d_,mkdirSync as f_,readFileSync as g_}from"node:fs";import{basename as h_,join as vP,resolve as x_}from"node:path";import{copyToClipboard as y_,SessionManager as b_}from"@earendil-works/pi-coding-agent";import{CombinedAutocompleteProvider as EP,Container as w_,Editor as I_,matchesKey as jt,ProcessTerminal as $_,ScrollView as k_,KeybindingsManager as AP,setKeybindings as MP,TUI_KEYBINDINGS as OP,SelectList as T_,TuiAltScreen as v_,truncateToWidth as si,VStack as E_,visibleWidth as $m,wrapTextWithAnsi as S_}from"@earendil-works/pi-tui";import{TreeSelectorComponent as P_,initTheme as R_}from"@earendil-works/pi-coding-agent";import{getKeybindings as SP}from"@earendil-works/pi-tui";function A_(e){if(typeof e!="object"||e===null)return;let t=e[CP];return typeof t=="function"?t.call(e):void 0}async function RP(e){try{let{stdout:t}=await fd("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}),n=t.trim();if(!n||n==="HEAD")return"";let{stdout:r}=await fd("git",["-C",e,"status","--porcelain"],{encoding:"utf8"});return`git:(${n}${r.trim()?"*":""})`}catch{return null}}function LP(e){let t=n=>{if(O_.test(n))return 100;let r=M_.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 FP(e,t,n,r=!1,o=[]){let s=Math.max(24,n),i=s-4,c=(z,G)=>{let ee=$m(z)>i?si(z,i,"\u2026"):z,ye=`${ee}${" ".repeat(Math.max(0,i-$m(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===""?[""]:S_(z,i)),I=w.length>0?[c(""),...w.map(z=>c(z,G=>ne(G,_.mute)))]:[];if(!r)return["",`\u250C${p}\u2510`,...f,...I,`\u2514${p}\u2518`];let P=bS(_.line,_.warn,Date.now(),1400),A=ne("\u2502",P),C=(z,G)=>ne(`${z}${p}${G}`,P),U=[...f,...I].map(z=>`${A}${z.slice(1,-1)}${A}`);return["",C("\u250C","\u2510"),...U,C("\u2514","\u2518")]}function jP(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 _o(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 dd(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=ti(t);if(!(typeof n.name!="string"||!Array.isArray(n.steps)))return n}function DP(e,t){let n=Em(e,t);return n?ii(n):void 0}function ii(e,t,n=!1){return r=>ZE(e,[],r,t?.selectedPhase,t?C_(e,t,n):void 0)}function C_(e,t,n){return{filter:r=>xP(r,t.filter),footerText:wP(t,e.endedAt===void 0,n),filterLabel:yP(t.filter),drill:t.expanded}}function L_(){let e=new AP(OP,{"tui.altScreen.pageUp":[],"tui.altScreen.pageDown":[],"tui.altScreen.halfPageUp":[],"tui.altScreen.halfPageDown":[],"tui.altScreen.top":[],"tui.altScreen.bottom":[]});MP(e)}async function F_(e){let t=new $_,n=new v_(t,!0,void 0,{mouse:!0}),r=new ym,o=new km(e.cwd,e.modelLabel),s=l=>{let g=Date.now();(async()=>{try{let y=gn(),x=await SS(y,v.getSessionStats().sessionId,l);x&&g>=Wt&&(No=x,Wt=g)}catch{}})()},i=(l=!1)=>{!l&&!o.live||RP(e.cwd).then(g=>{g!==null&&(o.git=g,N())})},c=new I_(n,PP,{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),I,P=0,A=fP(),C,U=null,z=!1,G,ee=!1,ye,De=()=>{!C||!z||f("workflow",l=>ii(C,A,ee)(l))},Qe=()=>{C&&(G=C.name),z=!1,ee=!1,f("workflow",void 0)};eS({onStop:l=>{U=l},isPaused:()=>A.paused});let xe=l=>{if(G===l.name)return;I=l;let g=l.endedAt??Date.now();P=Math.max(P,g+cm),C=l,z=!0,f("workflow",y=>ii(l,A,ee)(y))},ie=new vm(c,o),v=e.session,He=!1,Gt,gn=()=>Gt??=vS(e.cwd),No,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 $ of x)l.has($.entry.type)||g.push($.entry.id),y($.children)};return y(v.sessionManager.getTree()),g},qo=!1,qP=()=>{if(qo)return;qo=!0;let l=SP().getResolvedBindings();MP(new AP(OP,{...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"]}))},gd=!1,UP=()=>{gd||(gd=!0,R_())},hd=()=>{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"),UP(),qP();let g=Math.max(8,Math.floor(t.rows*.6)),y=new P_(l,v.sessionManager.getLeafId(),g*2,x=>{Sm(),KP(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()},KP=async l=>{let g=gn(),x=v.getUserMessagesForForking().findIndex(b=>b.entryId===l),$=x>=0?Yl(g,v.getSessionStats().sessionId)[x]:void 0,K=$?(await RS(g,$)).length:0;if(K===0){await xd(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=>{xd(l,$,b)})},xd=async(l,g,y)=>{let x=[];if((y==="both"||y==="conversation")&&!v.isStreaming)try{let $=await v.navigateTree(l);if($.cancelled){E("rewind","conversation rewind cancelled");return}x.push("conversation rewound"),r.items=bm(v.state.messages),$.editorText&&(c.setText($.editorText),x.push("prompt restored to the editor"))}catch($){hn(`conversation rewind failed: ${$ instanceof Error?$.message:String($)}`);return}if((y==="both"||y==="code")&&g){let $=await PS(gn(),g);if(!$.ok){hn(`code rewind failed: ${$.output}`);return}x.push($.output),$.removed.length>0&&x.push(`removed ${$.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(...bm(v.state.messages)),o.percent=_o(v),o.abandonAnimations(),o.thinking=v.thinkingLevel,c.setAutocompleteProvider(new EP(dd(v),e.cwd)),YS().then(l=>{l&&(o.cubence=l,n.requestRender())});let yd=async l=>{let{checkForUpdate:g,installUpdate:y}=await Promise.resolve().then(()=>(wi(),bi)),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 $=await y({version:x.latest});re("note",void 0),E("update",$.message),N()};e.update&&yd(e.update);let _n=null,bd="",wd=!1,Id=[],Uo,Pm=()=>{},N=()=>{Pm(),n.requestRender()},re=(l,g)=>{o.activity=iP(o.activity,l,g)},ai=new Map,Rm=new Set,GP=()=>[...ai].map(([l,g])=>`${Rm.has(l)?"!":"\u2713"} ${l} \xD7${g}`).join(" | "),WP=()=>{let l=GP();re("tally",l||void 0)},_t=(l,g,y,x,$=!1,K=[])=>{let b=new T_(g,8,PP.selectList);b.onSelect=k=>{_n=null,Uo=void 0,y(k.value)},b.onCancel=()=>{_n=null,Uo=void 0,x?.(),N()},Uo=()=>b.onCancel?.(),bd=l,wd=$,Id=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"}],$=>x($==="allow"),()=>x(!1),!0,jP(l,g)),y});let Am=new Map,$d=l=>{let g=kP({select:(y,x)=>{let{promise:$,resolve:K}=Promise.withResolvers();return _t(y,x.map(b=>({value:b,label:b})),K,()=>K(void 0)),$},confirm:(y,x)=>{let{promise:$,resolve:K}=Promise.withResolvers();return _t(`${y} \u2014 ${x}`,[{value:"yes",label:"yes"},{value:"no",label:"no"}],b=>K(b==="yes"),()=>K(!1)),$},input:y=>{let{promise:x,resolve:$}=Promise.withResolvers();return re("prompt",y),N(),nn=K=>{nn=void 0,re("prompt",void 0),$(K),N()},x},notify:(y,x)=>{x==="error"?hn(y):E("mcp",y)},setStatus:(y,x)=>{x===void 0?Am.delete(y):Am.set(y,x),re("note",[...Am.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)))};$d(v);let zr=new w_,BP={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(Ad(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}}},zP=new k_(BP,{follow:"none",overscroll:"contain"}),ui=new E_([{component:zP,grow:1,shrink:1},{component:zr,grow:0,shrink:0,basis:"auto"}]),kd="",HP=()=>`${_n?"picker":"dock"}|${[...p.keys()].join(",")}`;Pm=()=>{let l=HP();if(l===kd)return;kd=l,zr.clear();for(let y of p.values())zr.addChild(new Tm(y));let g=_n;if(g){let y=bd,x=wd,$=Id;zr.addChild({render:K=>FP(g,y,K,x,$),invalidate:()=>{}})}else zr.addChild(ie);ui.invalidate()},Pm();let Td={focused:!1,invalidate(){r.invalidate(),ie.invalidate(),_n?.invalidate(),ui.invalidate()},[CP]:()=>A_(ui),render:l=>ui.render(l),handleMouse(l){if(Ad(l))return jm(),{handled:!0}},handleInput(l){c.handleInput(l)}};n.setLayoutRoot(Td),n.setFocus(Td);let It=0,zn="",Mm=!1,gr=!1,Om,Hr="",vd=0,Ko=!1,mi=Date.now(),ci=!1,pi=new Map,Ed=l=>{if(l.type==="agent_start"||l.type==="turn_start")l.type==="agent_start"&&uf(),o.live||o.beginRun(),zn="",gr=!1,Ko=!1,mi=Date.now(),Hr="";else if(l.type==="message_update"&&l.assistantMessageEvent.type==="thinking_delta"){gr=!0,Hr===""&&(vd=Date.now()),Hr+=l.assistantMessageEvent.delta;let g=`think-${It}`,y=r.items.find($=>$.id===g),x=Hr.split(`
121
+ `)}var hP=u(()=>{xn()});import{mkdirSync as h_}from"node:fs";import{join as x_}from"node:path";import{matchesKey as Im}from"@earendil-works/pi-tui";function yP(){return{selectedPhase:0,filter:"all",paused:!1,expanded:!1,follow:!0}}function bP(e){if(Im(e,"up"))return"up";if(Im(e,"down"))return"down";if(Im(e,"enter"))return"enter";if(Im(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 xP(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 y_(e){let t=ld.indexOf(e);return ld[(t+1)%ld.length]}function wP(e,t,n){switch(t){case"up":return xP(e,n,-1);case"down":return xP(e,n,1);case"enter":return{...e,expanded:!e.expanded};case"filter":return{...e,filter:y_(e.filter)};case"pause":return{...e,paused:!e.paused};default:return e}}function IP(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 $P(e){return e==="all"?"":` \xB7 ${e}`}function TP(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 b_(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 vP(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=b_(e.name);if(!n)return{ok:!1,reason:`"${e.name}" is not a usable filename, so the script was not written`};let r=x_(t,`${n}.js`);try{h_(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 ld,kP,EP=u(()=>{Hn();ld=["all","running","failed","done"];kP="ctrl+f"});function SP(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 PP=u(()=>{});var KP={};Mt(KP,{Dock:()=>vm,Hud:()=>km,PinnedBlock:()=>Tm,approvalDetail:()=>qP,orderModelsForDefault:()=>_P,pickerPanel:()=>NP,runWorkbench:()=>W_,workflowPanel:()=>UP,workflowPanelFromRun:()=>ii,workflowRunOf:()=>Em});import{execFile as w_}from"node:child_process";import{promisify as I_}from"node:util";import{existsSync as $_,mkdirSync as k_,readFileSync as T_}from"node:fs";import{basename as v_,join as RP,resolve as E_}from"node:path";import{copyToClipboard as S_,SessionManager as P_}from"@earendil-works/pi-coding-agent";import{CombinedAutocompleteProvider as AP,Container as R_,Editor as A_,matchesKey as jt,ProcessTerminal as M_,ScrollView as O_,KeybindingsManager as LP,setKeybindings as FP,TUI_KEYBINDINGS as jP,SelectList as C_,TuiAltScreen as L_,truncateToWidth as si,VStack as F_,visibleWidth as $m,wrapTextWithAnsi as j_}from"@earendil-works/pi-tui";import{TreeSelectorComponent as D_,initTheme as __}from"@earendil-works/pi-coding-agent";import{getKeybindings as MP}from"@earendil-works/pi-tui";function N_(e){if(typeof e!="object"||e===null)return;let t=e[DP];return typeof t=="function"?t.call(e):void 0}async function CP(e){try{let{stdout:t}=await gd("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}),n=t.trim();if(!n||n==="HEAD")return"";let{stdout:r}=await gd("git",["-C",e,"status","--porcelain"],{encoding:"utf8"});return`git:(${n}${r.trim()?"*":""})`}catch{return null}}function _P(e){let t=n=>{if(U_.test(n))return 100;let r=q_.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 NP(e,t,n,r=!1,o=[]){let s=Math.max(24,n),i=s-4,c=(z,G)=>{let ee=$m(z)>i?si(z,i,"\u2026"):z,ye=`${ee}${" ".repeat(Math.max(0,i-$m(ee)))}`;return`\u2502 ${G?G(ye):ye} \u2502`},p="\u2500".repeat(s-2),d=[c(` ${t}`),...e.render(i).map(z=>c(z))],b=o.flatMap(z=>z===""?[""]:j_(z,i)),I=b.length>0?[c(""),...b.map(z=>c(z,G=>re(G,_.mute)))]:[];if(!r)return["",`\u250C${p}\u2510`,...d,...I,`\u2514${p}\u2518`];let P=kS(_.line,_.warn,Date.now(),1400),A=re("\u2502",P),C=(z,G)=>re(`${z}${p}${G}`,P),U=[...d,...I].map(z=>`${A}${z.slice(1,-1)}${A}`);return["",C("\u250C","\u2510"),...U,C("\u2514","\u2518")]}function qP(e,t){let n=t.split(`
122
+ `).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 _o(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 fd(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=ti(t);if(!(typeof n.name!="string"||!Array.isArray(n.steps)))return n}function UP(e,t){let n=Em(e,t);return n?ii(n):void 0}function ii(e,t,n=!1){return r=>nS(e,[],r,t?.selectedPhase,t?K_(e,t,n):void 0)}function K_(e,t,n){return{filter:r=>IP(r,t.filter),footerText:TP(t,e.endedAt===void 0,n),filterLabel:$P(t.filter),drill:t.expanded}}function G_(){let e=new LP(jP,{"tui.altScreen.pageUp":[],"tui.altScreen.pageDown":[],"tui.altScreen.halfPageUp":[],"tui.altScreen.halfPageDown":[],"tui.altScreen.top":[],"tui.altScreen.bottom":[]});FP(e)}async function W_(e){let t=new M_,n=new L_(t,!0,void 0,{mouse:!0}),r=new ym,o=new km(e.cwd,e.modelLabel),s=l=>{let g=Date.now();(async()=>{try{let y=gn(),x=await MS(y,v.getSessionStats().sessionId,l);x&&g>=Wt&&(No=x,Wt=g)}catch{}})()},i=(l=!1)=>{!l&&!o.live||CP(e.cwd).then(g=>{g!==null&&(o.git=g,N())})},c=new A_(n,OP,{paddingX:1}),p=new Map,d=(l,g)=>{g===void 0?p.delete(l):typeof g=="function"?p.set(l,g):p.set(l,()=>g)},b=()=>Math.max(20,t.columns),I,P=0,A=yP(),C,U=null,z=!1,G,ee=!1,ye,De=()=>{!C||!z||d("workflow",l=>ii(C,A,ee)(l))},Qe=()=>{C&&(G=C.name),z=!1,ee=!1,d("workflow",void 0)};oS({onStop:l=>{U=l},isPaused:()=>A.paused});let xe=l=>{if(G===l.name)return;I=l;let g=l.endedAt??Date.now();P=Math.max(P,g+cm),C=l,z=!0,d("workflow",y=>ii(l,A,ee)(y))},ie=new vm(c,o),v=e.session,Ve=!1,Gt,gn=()=>Gt??=RS(e.cwd),No,rn="",Wt=0,Ge,Dt=()=>{let l=new Set(["session_info","usage","label","context_edit","custom","model_change","thinking_level_change"]),g=[],y=x=>{for(let $ of x)l.has($.entry.type)||g.push($.entry.id),y($.children)};return y(v.sessionManager.getTree()),g},qo=!1,WP=()=>{if(qo)return;qo=!0;let l=MP().getResolvedBindings();FP(new LP(jP,{...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"]}))},hd=!1,BP=()=>{hd||(hd=!0,__())},xd=()=>{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"),BP(),WP();let g=Math.max(8,Math.floor(t.rows*.6)),y=new D_(l,v.sessionManager.getLeafId(),g*2,x=>{Sm(),zP(x)},()=>Sm());if(!y.getTreeList().getSelectedNode()){E("rewind","nothing to rewind to yet");return}Ge=y,Ge.focused=!0,d("rewind",x=>Ge?.render(x)??[]),N()},Sm=()=>{Ge=void 0,d("rewind",void 0),N()},zP=async l=>{let g=gn(),x=v.getUserMessagesForForking().findIndex(w=>w.entryId===l),$=x>=0?Yl(g,v.getSessionStats().sessionId)[x]:void 0,K=$?(await CS(g,$)).length:0;if(K===0){await yd(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`}],w=>{yd(l,$,w)})},yd=async(l,g,y)=>{let x=[];if((y==="both"||y==="conversation")&&!v.isStreaming)try{let $=await v.navigateTree(l);if($.cancelled){E("rewind","conversation rewind cancelled");return}x.push("conversation rewound"),r.items=bm(v.state.messages),$.editorText&&(c.setText($.editorText),x.push("prompt restored to the editor"))}catch($){hn(`conversation rewind failed: ${$ instanceof Error?$.message:String($)}`);return}if((y==="both"||y==="code")&&g){let $=await OS(gn(),g);if(!$.ok){hn(`code rewind failed: ${$.output}`);return}x.push($.output),$.removed.length>0&&x.push(`removed ${$.removed.length} file(s)`),i()}E("rewind",x.join(`
123
+ `)||"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(...bm(v.state.messages)),o.percent=_o(v),o.abandonAnimations(),o.thinking=v.thinkingLevel,c.setAutocompleteProvider(new AP(fd(v),e.cwd)),eP().then(l=>{l&&(o.cubence=l,n.requestRender())});let bd=async l=>{let{checkForUpdate:g,installUpdate:y}=await Promise.resolve().then(()=>(wi(),bi)),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}te("note",`installing HowToFix ${x.latest}\u2026`);let $=await y({version:x.latest});te("note",void 0),E("update",$.message),N()};e.update&&bd(e.update);let Nn=null,wd="",Id=!1,$d=[],Uo,Pm=()=>{},N=()=>{Pm(),n.requestRender()},te=(l,g)=>{o.activity=cP(o.activity,l,g)},ai=new Map,Rm=new Set,HP=()=>[...ai].map(([l,g])=>`${Rm.has(l)?"!":"\u2713"} ${l} \xD7${g}`).join(" | "),VP=()=>{let l=HP();te("tally",l||void 0)},_t=(l,g,y,x,$=!1,K=[])=>{let w=new C_(g,8,OP.selectList);w.onSelect=k=>{Nn=null,Uo=void 0,y(k.value)},w.onCancel=()=>{Nn=null,Uo=void 0,x?.(),N()},Uo=()=>w.onCancel?.(),wd=l,Id=$,$d=K,Nn=w,N()},E=(l,g)=>{r.items.push({id:`cmd-${Date.now()}-${r.items.length}`,kind:"note",title:l,body:g}),te("tally",void 0),N()},hn=l=>{r.items.push({id:`err-${Date.now()}-${r.items.length}`,kind:"error",title:"failed",body:l}),te("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"}],$=>x($==="allow"),()=>x(!1),!0,qP(l,g)),y});let Am=new Map,kd=l=>{let g=SP({select:(y,x)=>{let{promise:$,resolve:K}=Promise.withResolvers();return _t(y,x.map(w=>({value:w,label:w})),K,()=>K(void 0)),$},confirm:(y,x)=>{let{promise:$,resolve:K}=Promise.withResolvers();return _t(`${y} \u2014 ${x}`,[{value:"yes",label:"yes"},{value:"no",label:"no"}],w=>K(w==="yes"),()=>K(!1)),$},input:y=>{let{promise:x,resolve:$}=Promise.withResolvers();return te("prompt",y),N(),nn=K=>{nn=void 0,te("prompt",void 0),$(K),N()},x},notify:(y,x)=>{x==="error"?hn(y):E("mcp",y)},setStatus:(y,x)=>{x===void 0?Am.delete(y):Am.set(y,x),te("note",[...Am.values()].join(" | ")||void 0),N()},setWidget:(y,x)=>{d(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)))};kd(v);let zr=new R_,JP={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(Md(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}}},YP=new O_(JP,{follow:"none",overscroll:"contain"}),ui=new F_([{component:YP,grow:1,shrink:1},{component:zr,grow:0,shrink:0,basis:"auto"}]),Td="",XP=()=>`${Nn?"picker":"dock"}|${[...p.keys()].join(",")}`;Pm=()=>{let l=XP();if(l===Td)return;Td=l,zr.clear();for(let y of p.values())zr.addChild(new Tm(y));let g=Nn;if(g){let y=wd,x=Id,$=$d;zr.addChild({render:K=>NP(g,y,K,x,$),invalidate:()=>{}})}else zr.addChild(ie);ui.invalidate()},Pm();let vd={focused:!1,invalidate(){r.invalidate(),ie.invalidate(),Nn?.invalidate(),ui.invalidate()},[DP]:()=>N_(ui),render:l=>ui.render(l),handleMouse(l){if(Md(l))return jm(),{handled:!0}},handleInput(l){c.handleInput(l)}};n.setLayoutRoot(vd),n.setFocus(vd);let It=0,zn="",Mm=!1,gr=!1,Om,Hr="",Ed=0,Ko=!1,mi=Date.now(),ci=!1,pi=new Map,Sd=l=>{if(l.type==="agent_start"||l.type==="turn_start")l.type==="agent_start"&&mf(),o.live||o.beginRun(),zn="",gr=!1,Ko=!1,mi=Date.now(),Hr="";else if(l.type==="message_update"&&l.assistantMessageEvent.type==="thinking_delta"){gr=!0,Hr===""&&(Ed=Date.now()),Hr+=l.assistantMessageEvent.delta;let g=`think-${It}`,y=r.items.find($=>$.id===g),x=Hr.split(`
123
124
  `).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-${It}`,y=r.items.find(x=>x.id===g);if(y){let x=Math.max(1,Math.round((Date.now()-vd)/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-${It}`,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"){pi.set(l.toolCallId,l.args),gr=!1,Ko=!1,mi=Date.now();let g=`tool-${l.toolCallId}`,y=jo(l.toolName,l.args),x=r.items.find($=>$.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 $=en.filter(K=>K.status==="queued"||K.status==="running");re("note",$.map(K=>`${K.agent} ${K.status}`).join(" | ")||"agent running")}}else if(l.type==="tool_execution_update"){let g=DP(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,pi.get(l.toolCallId)),panel:g,live:!0});let $=Em(l.toolName,l.partialResult);$&&G!==$.name&&xe($),N()}}else if(l.type==="tool_execution_end"){o.percent=_o(v);let g=r.items.find(R=>R.id===`tool-${l.toolCallId}`);g&&(g.live=!1,g.body=jo(l.toolName,pi.get(l.toolCallId))),pi.delete(l.toolCallId),Om=void 0,gr=!0,Ko=!1,ai.set(l.toolName,(ai.get(l.toolName)??0)+1),l.isError&&Rm.add(l.toolName),WP();let y=FS(l.toolName,l.result),x=jS(l.toolName,l.result),$=Em(l.toolName,l.result),K=$?ii($):void 0;$&&G!==$.name&&xe($);let b=r.items.find(R=>R.id===`tool-${l.toolCallId}`),k=xm(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-${It}`),x="compacting context",$=`${g} \xB7 summarizing the older turns`;y?(y.title=x,y.body=$):r.items.push({id:`compact-${It}`,kind:"note",title:x,body:$,live:!0}),re("note","compacting context")}else if(l.type==="compaction_end"){let g=r.items.find(K=>K.id===`compact-${It}`),y=l.result,x="compacted",$;if(l.aborted)$="cancelled";else if(l.errorMessage)$=`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,R=k!==void 0&&k<2e3;$=b!==void 0?`${K}k \u2192 ${b}k tokens \xB7 older turns summarized${R?`
125
- this freed almost nothing \u2014 the window may be too small for this work`:""}`:`${K}k tokens \xB7 older turns summarized`}else $="nothing to compact";g?(g.title=x,g.body=$,g.live=!1):r.items.push({id:`compact-${It}`,kind:"note",title:x,body:$}),o.percent=_o(v),re("note",void 0)}else if(l.type==="message_end"&&l.message.role==="assistant"){let g=r.items.find(y=>y.id===`live-${It}`);g&&(g.id=`done-${It}`),It+=1,zn="",o.percent=_o(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-${It}`);g?(g.id=`stopped-${It}`,g.title="stopped",g.body=zn.trim()||"(no output)",g.live=!1):r.items.push({id:`stopped-${It}`,kind:"note",title:"stopped",body:"run cancelled"}),It+=1,zn="",E("stopped","run cancelled by Esc"),Mm=!1}o.percent=_o(v),RP(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(Ed),Sd=setInterval(()=>{let l=I!==void 0&&Date.now()<P;if((ci||v.isStreaming||o.settling()||r.entering()||_n||l)&&N(),(ci||v.isStreaming)&&!gr&&!Ko&&Date.now()-mi>D_){Ko=!0;let g=Om,y=Math.round((Date.now()-mi)/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()}},j_);Sd.unref?.();let Pd=async l=>{Uo?.(),Uo=void 0,Cm(),Gt&&AS(Gt,v.getSessionStats().sessionId),No=void 0,Wt=0,v.dispose(),v=l.session,It=0,zn="",r.items=[],r.scrollOffset=0,l.note&&r.items.push({id:"note",kind:"note",title:"note",body:l.note}),r.items.push(...bm(v.state.messages)),o.model=l.modelLabel.split("/").at(-1)||"no-model",o.thinking=v.thinkingLevel,o.percent=_o(v),o.abandonAnimations(),re("tally",void 0),re("run",void 0),c.setAutocompleteProvider(new EP(dd(v),e.cwd)),c.disableSubmit=!1,$d(v),Cm=v.subscribe(Ed),N()},li=()=>{He||(He=!0,clearInterval(Sd),Cm(),v.dispose(),n.stop(),process.stdout.write("\x1B[0m"),process.exit(0))},Rd=l=>{r.items.push({id:`you-${Date.now()}`,kind:"user",title:"you",body:l}),re("tally",void 0),ai.clear(),Rm.clear(),re("run","thinking"),o.beginRun(),N(),c.disableSubmit=!1;let g=tc(l,e.cwd);rn=l,ci=!0;let y=v.isStreaming?v.prompt(g,{streamingBehavior:"steer"}):v.prompt(g);ci=!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 $=x.output.trim();r.items.push({id:`sh-out-${Date.now()}`,kind:x.exitCode===0?"result":"error",title:`exit ${x.exitCode??"?"}`,body:$||"(no output)"}),re("tally",void 0),N()}).catch(x=>hn(x instanceof Error?x.message:String(x)));return}if(g.startsWith("/")){VP(g);return}Rd(g)}};c.onSubmit=Lm;let Fm=0,jm=()=>{uS().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()})},Ad=l=>mS()&&l.type==="press"&&l.button==="right";n.addInputListener(l=>{if(Ke){if(jt(l,"escape"))return Sm(),{consume:!0};let y=SP(),x=y.matches(l,"tui.select.up"),$=y.matches(l,"tui.select.down");if(x||$){let b=Ke.getTreeList().getSelectedNode()?.entry.id,k=Dt(),R=b===void 0?-1:k.indexOf(b);if(x?R===0:R===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")):A.expanded?(A.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,hd(),{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()):li(),{consume:!0};if(jt(l,"ctrl+d")&&c.getText().length===0)return li(),{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,bP)&&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=gP(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 $=IP(ye,Km);return E("workflow",$.ok?`saved ${$.path}`:$.reason),N(),{consume:!0}}return Object.assign(A,hP(A,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=$=>{nn=x;let K=$.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($=>$.provider))].sort();if(x.length===0){E("login","no providers are configured; pass one explicitly, e.g. /login nrimo");return}_t("Login",x.map($=>({value:$,label:$})),g)},y=>E("login",y instanceof Error?y.message:String(y)))},Md=async(l,g)=>{let y=vP(Ve,"models.json"),x,$=!1;try{x=JSON.parse(g_(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:{}},$=!0}(!x.providers||typeof x.providers!="object")&&(x.providers={});let K=x.providers[l];K||(K=Bm(),x.providers[l]=K,$=!0);let b=Array.isArray(K.models)?K.models:[],k=Jm(b,g),R=xi(Vm(b,g));K.models=R.models;try{f_(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=R.changed>0?`, repaired ${R.changed}`:"",et=D?"":"; restart the CLI to see them all",At=$?` (created ${y})`:"";return k===0?`all ${g.length} models were already configured${ve}${At}${et}`:`added ${k} model(s) to "${l}"${ve}${At}${et}`},di=l=>{(async()=>{if(!l){let k=await rP({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(`
125
+ `);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-${It}`,y=r.items.find(x=>x.id===g);if(y){let x=Math.max(1,Math.round((Date.now()-Ed)/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-${It}`,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"){pi.set(l.toolCallId,l.args),gr=!1,Ko=!1,mi=Date.now();let g=`tool-${l.toolCallId}`,y=jo(l.toolName,l.args),x=r.items.find($=>$.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 $=en.filter(K=>K.status==="queued"||K.status==="running");te("note",$.map(K=>`${K.agent} ${K.status}`).join(" | ")||"agent running")}}else if(l.type==="tool_execution_update"){let g=UP(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,pi.get(l.toolCallId)),panel:g,live:!0});let $=Em(l.toolName,l.partialResult);$&&G!==$.name&&xe($),N()}}else if(l.type==="tool_execution_end"){o.percent=_o(v);let g=r.items.find(R=>R.id===`tool-${l.toolCallId}`);g&&(g.live=!1,g.body=jo(l.toolName,pi.get(l.toolCallId))),pi.delete(l.toolCallId),Om=void 0,gr=!0,Ko=!1,ai.set(l.toolName,(ai.get(l.toolName)??0)+1),l.isError&&Rm.add(l.toolName),VP();let y=NS(l.toolName,l.result),x=qS(l.toolName,l.result),$=Em(l.toolName,l.result),K=$?ii($):void 0;$&&G!==$.name&&xe($);let w=r.items.find(R=>R.id===`tool-${l.toolCallId}`),k=xm(l.toolName,l.result,l.isError);w?(w.kind="result",w.call=w.body,w.body=k,w.live=!1,y.length>0&&(w.detail=y),x.length>0&&(w.full=x),K&&(w.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-${It}`),x="compacting context",$=`${g} \xB7 summarizing the older turns`;y?(y.title=x,y.body=$):r.items.push({id:`compact-${It}`,kind:"note",title:x,body:$,live:!0}),te("note","compacting context")}else if(l.type==="compaction_end"){let g=r.items.find(K=>K.id===`compact-${It}`),y=l.result,x="compacted",$;if(l.aborted)$="cancelled";else if(l.errorMessage)$=`failed: ${l.errorMessage}`;else if(y){let K=Math.round(y.tokensBefore/1e3),w=y.estimatedTokensAfter!==void 0?Math.round(y.estimatedTokensAfter/1e3):void 0,k=y.estimatedTokensAfter!==void 0?y.tokensBefore-y.estimatedTokensAfter:void 0,R=k!==void 0&&k<2e3;$=w!==void 0?`${K}k \u2192 ${w}k tokens \xB7 older turns summarized${R?`
126
+ this freed almost nothing \u2014 the window may be too small for this work`:""}`:`${K}k tokens \xB7 older turns summarized`}else $="nothing to compact";g?(g.title=x,g.body=$,g.live=!1):r.items.push({id:`compact-${It}`,kind:"note",title:x,body:$}),o.percent=_o(v),te("note",void 0)}else if(l.type==="message_end"&&l.message.role==="assistant"){let g=r.items.find(y=>y.id===`live-${It}`);g&&(g.id=`done-${It}`),It+=1,zn="",o.percent=_o(v)}else if(l.type==="agent_settled"){if(o.live=!1,s(rn),rn="",te("run",void 0),Mm){let g=r.items.find(y=>y.id===`live-${It}`);g?(g.id=`stopped-${It}`,g.title="stopped",g.body=zn.trim()||"(no output)",g.live=!1):r.items.push({id:`stopped-${It}`,kind:"note",title:"stopped",body:"run cancelled"}),It+=1,zn="",E("stopped","run cancelled by Esc"),Mm=!1}o.percent=_o(v),te("note",void 0),CP(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"&&te("note",`retry ${l.attempt}/${l.maxAttempts}`);N()},Cm=v.subscribe(Sd),Pd=setInterval(()=>{let l=I!==void 0&&Date.now()<P;if((ci||v.isStreaming||o.settling()||r.entering()||Nn||l)&&N(),(ci||v.isStreaming)&&!gr&&!Ko&&Date.now()-mi>z_){Ko=!0;let g=Om,y=Math.round((Date.now()-mi)/1e3);te("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()}},B_);Pd.unref?.();let Rd=async l=>{Uo?.(),Uo=void 0,Cm(),Gt&&LS(Gt,v.getSessionStats().sessionId),No=void 0,Wt=0,v.dispose(),v=l.session,It=0,zn="",r.items=[],r.scrollOffset=0,l.note&&r.items.push({id:"note",kind:"note",title:"note",body:l.note}),r.items.push(...bm(v.state.messages)),o.model=l.modelLabel.split("/").at(-1)||"no-model",o.thinking=v.thinkingLevel,o.percent=_o(v),o.abandonAnimations(),te("tally",void 0),te("run",void 0),c.setAutocompleteProvider(new AP(fd(v),e.cwd)),c.disableSubmit=!1,kd(v),Cm=v.subscribe(Sd),N()},li=()=>{Ve||(Ve=!0,clearInterval(Pd),Cm(),v.dispose(),n.stop(),process.stdout.write("\x1B[0m"),process.exit(0))},Ad=l=>{r.items.push({id:`you-${Date.now()}`,kind:"user",title:"you",body:l}),te("tally",void 0),ai.clear(),Rm.clear(),te("run","thinking"),o.beginRun(),N(),c.disableSubmit=!1;let g=tc(l,e.cwd);rn=l,ci=!0;let y=v.isStreaming?v.prompt(g,{streamingBehavior:"steer"}):v.prompt(g);ci=!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}),te("run","shell"),N(),v.executeBash(y,x=>{te("run",`shell \xB7 ${x.length} bytes`),N()}).then(x=>{let $=x.output.trim();r.items.push({id:`sh-out-${Date.now()}`,kind:x.exitCode===0?"result":"error",title:`exit ${x.exitCode??"?"}`,body:$||"(no output)"}),te("tally",void 0),N()}).catch(x=>hn(x instanceof Error?x.message:String(x)));return}if(g.startsWith("/")){ZP(g);return}Ad(g)}};c.onSubmit=Lm;let Fm=0,jm=()=>{lS().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()})},Md=l=>dS()&&l.type==="press"&&l.button==="right";n.addInputListener(l=>{if(Ge){if(jt(l,"escape"))return Sm(),{consume:!0};let y=MP(),x=y.matches(l,"tui.select.up"),$=y.matches(l,"tui.select.down");if(x||$){let w=Ge.getTreeList().getSelectedNode()?.entry.id,k=Dt(),R=w===void 0?-1:k.indexOf(w);if(x?R===0:R===k.length-1)return N(),{consume:!0}}return Ge.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")):A.expanded?(A.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(Nn)return Nn.handleInput(l),N(),{consume:!0};if(jt(l,"escape")){if(v.isStreaming)return Mm=!0,v.abort(),te("note","stopping"),N(),{consume:!0};let y=Date.now();if(c.getText().length===0&&y-Fm<600)return Fm=0,xd(),{consume:!0};Fm=y;return}if(jt(l,"ctrl+c"))return v.isStreaming?(v.abort(),te("note","stopping"),N()):c.getText().length>0?(c.setText(""),te("note","draft cleared \u2014 ctrl+c again quits"),N()):li(),{consume:!0};if(jt(l,"ctrl+d")&&c.getText().length===0)return li(),{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,kP)&&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=bP(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 $=vP(ye,Km);return E("workflow",$.ok?`saved ${$.path}`:$.reason),N(),{consume:!0}}return Object.assign(A,wP(A,y,x)),De(),N(),{consume:!0}}}});let Dm=l=>{let g=y=>{te("prompt",`API key for ${y}. Paste it, then press enter.`),N();let x=nn;nn=$=>{nn=x;let K=$.trim();if(!K){te("prompt",void 0),N();return}v.modelRuntime.setRuntimeApiKey(y,K).then(()=>E("login",`saved API key for ${y}`),w=>E("login",w instanceof Error?w.message:String(w)))}};if(l){g(l);return}v.modelRuntime.getAvailable().then(y=>{let x=[...new Set(y.map($=>$.provider))].sort();if(x.length===0){E("login","no providers are configured; pass one explicitly, e.g. /login nrimo");return}_t("Login",x.map($=>({value:$,label:$})),g)},y=>E("login",y instanceof Error?y.message:String(y)))},Od=async(l,g)=>{let y=RP(_e,"models.json"),x,$=!1;try{x=JSON.parse(T_(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:{}},$=!0}(!x.providers||typeof x.providers!="object")&&(x.providers={});let K=x.providers[l];K||(K=Bm(),x.providers[l]=K,$=!0);let w=Array.isArray(K.models)?K.models:[],k=Jm(w,g),R=xi(Vm(w,g));K.models=R.models;try{k_(_e,{recursive:!0}),tt(y,`${JSON.stringify(x,null,2)}
127
+ `)}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=R.changed>0?`, repaired ${R.changed}`:"",et=D?"":"; restart the CLI to see them all",At=$?` (created ${y})`:"";return k===0?`all ${g.length} models were already configured${ve}${At}${et}`:`added ${k} model(s) to "${l}"${ve}${At}${et}`},di=l=>{(async()=>{if(!l){let k=await aP({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
128
  `))):(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,di(k.token);return}let R=await wm(gi);E("connect",[`browser sign-in: ${k.message}`,"","connect with a token instead:",` 1. ${R?"the keys page is opening in your browser":`open ${gi}`}`," 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 (${hi(l)})`),N();let g=await yi(l);if(!g.ok){re("note",void 0),E("connect",g.message),N();return}await v.modelRuntime.setRuntimeApiKey("howtofix",l);let y=await Md("howtofix",g.models),x=!!v.model&&v.model?.provider!==void 0&&o.model!=="unknown",$,K;if(!x)try{let k=(await v.modelRuntime.getAvailable()).filter(ve=>xr(ve.provider)),D=LP(k.map(ve=>ve.id)).slice(0,4);for(let ve of D){if(!(await Ym(ve,l)).ok)continue;let At=k.find(on=>on.id===ve);if(At){await v.setModel(At),o.model=At.id,$=`${At.provider}/${At.id}`;break}}$||(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 Bo(l);E("connect",[`connected ${hi(l)} \u2014 ${g.message}`,y,_m("howtofix",b),$?`using ${$} (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(`
129
+ `))),N()}});if(k.ok){te("prompt",void 0),nn=void 0,di(k.token);return}let R=await wm(gi);E("connect",[`browser sign-in: ${k.message}`,"","connect with a token instead:",` 1. ${R?"the keys page is opening in your browser":`open ${gi}`}`," 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(`
130
+ `)),N();return}if(!Hm(l)){E("connect","that does not look like a howtofix token; the Console issues tokens that start with sk-");return}te("note",`connecting to howtofix.id (${hi(l)})`),N();let g=await yi(l);if(!g.ok){te("note",void 0),E("connect",g.message),N();return}await v.modelRuntime.setRuntimeApiKey("howtofix",l);let y=await Od("howtofix",g.models),x=!!v.model&&v.model?.provider!==void 0&&o.model!=="unknown",$,K;if(!x)try{let k=(await v.modelRuntime.getAvailable()).filter(ve=>xr(ve.provider)),D=_P(k.map(ve=>ve.id)).slice(0,4);for(let ve of D){if(!(await Ym(ve,l)).ok)continue;let At=k.find(on=>on.id===ve);if(At){await v.setModel(At),o.model=At.id,$=`${At.provider}/${At.id}`;break}}$||(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)}te("note",void 0);let w=await Bo(l);E("connect",[`connected ${hi(l)} \u2014 ${g.message}`,y,_m("howtofix",w),$?`using ${$} (change it with /model)`:`pick a model with /model, then send a prompt${K?` (auto-select failed: ${K})`:""}`].join(`
131
+ `)),N()})().catch(g=>{te("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
132
  `);if(g.unlimited)y.push(" quota no limit on this token");else{let x=$=>`${$.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
- `)},VP=async l=>{let[g,...y]=l.slice(1).split(/\s+/),x=y.join(" ");if(g==="quit"||g==="exit"){li();return}if(g==="help"){E("help",dd(v).map(b=>`/${b.name} ${b.description??""}`).join(`
133
- `));return}if(g==="init"){let b=vP(e.cwd,"AGENTS.md");if(d_(b)&&x!=="force"){E("init",`AGENTS.md already exists at ${b}. run /init force to overwrite.`);return}tt(b,Ld),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()){di(x.trim());return}di(""),re("prompt","paste your howtofix.id token, then press enter"),N();let b=nn;nn=k=>{nn=b,re("prompt",void 0),di(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 yi(D);if(!ve.ok){re("note",void 0),E("sync",ve.message),N();return}let et=await Md(k,ve.models),At=await Bo(D);re("note",void 0),E("sync",`${et}
134
- ${_m(k,At)}`),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 Bo(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(R=>R.provider))].sort();if(k.length===0){E("logout","no providers are configured");return}_t("Logout",k.map(R=>({value:R,label:R})),R=>{v.modelRuntime.logout(R).then(()=>E("logout",`logged out ${R}`),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(R=>R.provider))].sort();k.sort((R,D)=>Number(xr(D))-Number(xr(R))),_t("Providers",k.map(R=>({value:R,label:R})),R=>{let D=v.modelRuntime.getModels(R);if(D.length===0){Dm(R);return}_t(R,D.map(ve=>({value:ve.id,label:ve.id})),ve=>{let et=D.find(At=>At.id===ve);et&&v.setModel(et).then(()=>{o.model=et.id,E("providers",`${R}/${et.id}`)},()=>Dm(R))})});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 yd({current:Nt,install:!0});return}if(g==="stats"){let b=v.getSessionStats(),k=v.getContextUsage(),R=D=>Number.isFinite(D)?String(D):"\u2014";E("stats",[`session ${b.sessionId}`,b.sessionFile?`file ${b.sessionFile}`:"not persisted",`messages ${R(b.totalMessages)} (user ${R(b.userMessages)}, assistant ${R(b.assistantMessages)}, tools ${R(b.toolCalls)})`,`tokens in ${R(b.tokens.input)} out ${R(b.tokens.output)} cache ${R(b.tokens.cacheRead)}/${R(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:At}=await fd("git",et,{cwd:e.cwd,encoding:"utf8"});return At.trim()}catch{return""}},k=await b(["diff","--stat"])+`
133
+ `)},ZP=async l=>{let[g,...y]=l.slice(1).split(/\s+/),x=y.join(" ");if(g==="quit"||g==="exit"){li();return}if(g==="help"){E("help",fd(v).map(w=>`/${w.name} ${w.description??""}`).join(`
134
+ `));return}if(g==="init"){let w=RP(e.cwd,"AGENTS.md");if($_(w)&&x!=="force"){E("init",`AGENTS.md already exists at ${w}. run /init force to overwrite.`);return}tt(w,Fd),E("init",`wrote ${w}; 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()){di(x.trim());return}di(""),te("prompt","paste your howtofix.id token, then press enter"),N();let w=nn;nn=k=>{nn=w,te("prompt",void 0),di(k.trim())};return}if(g==="sync"){let w=new Set((await v.modelRuntime.getAvailable()).map(on=>on.provider).filter(on=>xr(on))),k=Yr.find(on=>w.has(on));if(!k){E("sync","no howtofix.id account is connected; run /connect first");return}te("note",`re-syncing ${k} from howtofix.id`),N();let D=(await v.modelRuntime.getAuth(k))?.auth?.apiKey;if(!D){te("note",void 0),E("sync",`${k} has no usable key; run /connect to sign in again`),N();return}let ve=await yi(D);if(!ve.ok){te("note",void 0),E("sync",ve.message),N();return}let et=await Od(k,ve.models),At=await Bo(D);te("note",void 0),E("sync",`${et}
135
+ ${_m(k,At)}`),await v.modelRuntime.refresh(),N();return}if(g==="usage"){let w=new Set((await v.modelRuntime.getAvailable()).map(et=>et.provider).filter(et=>xr(et))),k=Yr.find(et=>w.has(et));if(!k){E("usage","no howtofix.id account is connected; run /connect first");return}te("note","asking howtofix.id for the account usage"),N();let D=(await v.modelRuntime.getAuth(k))?.auth?.apiKey;if(!D){te("note",void 0),E("usage",`${k} has no usable key; run /connect to sign in again`),N();return}let ve=await Bo(D);te("note",void 0),E("usage",_m(k,ve)),N();return}if(g==="logout"){let w=await v.modelRuntime.getAvailable(),k=[...new Set(w.map(R=>R.provider))].sort();if(k.length===0){E("logout","no providers are configured");return}_t("Logout",k.map(R=>({value:R,label:R})),R=>{v.modelRuntime.logout(R).then(()=>E("logout",`logged out ${R}`),D=>E("logout",D instanceof Error?D.message:String(D)))});return}if(g==="providers"){let w=await v.modelRuntime.getAvailable(),k=[...new Set(w.map(R=>R.provider))].sort();k.sort((R,D)=>Number(xr(D))-Number(xr(R))),_t("Providers",k.map(R=>({value:R,label:R})),R=>{let D=v.modelRuntime.getModels(R);if(D.length===0){Dm(R);return}_t(R,D.map(ve=>({value:ve.id,label:ve.id})),ve=>{let et=D.find(At=>At.id===ve);et&&v.setModel(et).then(()=>{o.model=et.id,E("providers",`${R}/${et.id}`)},()=>Dm(R))})});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 bd({current:Nt,install:!0});return}if(g==="stats"){let w=v.getSessionStats(),k=v.getContextUsage(),R=D=>Number.isFinite(D)?String(D):"\u2014";E("stats",[`session ${w.sessionId}`,w.sessionFile?`file ${w.sessionFile}`:"not persisted",`messages ${R(w.totalMessages)} (user ${R(w.userMessages)}, assistant ${R(w.assistantMessages)}, tools ${R(w.toolCalls)})`,`tokens in ${R(w.tokens.input)} out ${R(w.tokens.output)} cache ${R(w.tokens.cacheRead)}/${R(w.tokens.cacheWrite)}`,`cost $${Number.isFinite(w.cost)?w.cost.toFixed(4):"\u2014"}`,k?`context ${k.percent===null||!Number.isFinite(k.percent)?"?":`${Math.round(k.percent)}%`} of ${k.contextWindow}`:"context unknown"].join(`
136
+ `));return}if(g==="diff"){let w=async et=>{try{let{stdout:At}=await gd("git",et,{cwd:e.cwd,encoding:"utf8"});return At.trim()}catch{return""}},k=await w(["diff","--stat"])+`
136
137
 
137
- `+await b(["diff","--","."]),[R="",D=""]=k.split(`
138
+ `+await w(["diff","--","."]),[R="",D=""]=k.split(`
138
139
 
139
- `,2),ve=AE(D);E("diff",[R.trim(),ve].filter(Boolean).join(`
140
+ `,2),ve=LE(D);E("diff",[R.trim(),ve].filter(Boolean).join(`
140
141
 
141
- `)||"working tree clean");return}if(g==="copy"){let b=[...v.state.messages].reverse().find(D=>D.role==="assistant"),R=(Array.isArray(b?.content)?b.content:[]).filter(D=>D.type==="text").map(D=>D.text).join("");if(!R){E("copy","nothing to copy");return}try{await y_(R),E("copy",`copied ${R.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=x_(e.cwd,x||`howtofix-session-${Date.now()}.md`),R=[`# ${at} session`,"",`model ${o.model}`,""];for(let D of b)R.push(`## ${D.title||D.kind}`,"",D.body,"");try{tt(k,R.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),R=k.join(" ").trim();if(b&&R){E("agents",await kE(b,R));return}E("agents",b?Ml(b):Al());return}if(g==="new"){let b=await e.reopen({noSession:!1});await Pd(b),E("new","started a new session");return}if(g==="resume"){let b=await b_.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(Pd,R=>hn(R instanceof Error?R.message:String(R)))});return}if(g==="model"){let b=await v.modelRuntime.getAvailable(),k=x?b.find(R=>`${R.provider}/${R.id}`===x||R.id===x):void 0;if(!x){_t("Select model",b.map(R=>({value:`${R.provider}/${R.id}`,label:R.id,description:R.provider})),R=>{let D=b.find(ve=>`${ve.provider}/${ve.id}`===R);D&&v.setModel(D).then(()=>{o.model=D.id,E("model",`model ${R}`)})});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",ld.map(b=>({value:b,label:b})),b=>{v.setThinkingLevel(b),o.thinking=b,E("thinking",`thinking ${b}`)});return}if(!ld.includes(x)){E("thinking",`thinking: ${ld.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",vi[k])};if(!x){_t("Approval mode",Xr.map(k=>({value:k,label:k,description:vi[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"){hd();return}if(g==="undo"){if(!await um(e.cwd)){E("undo","not a git repository");return}let b=await PE(e.cwd);E("undo",b.ok?`undone: ${b.output}`:`undo failed: ${b.output}`),i(!0);return}if(g==="commit"){if(!um(e.cwd)){E("commit","not a git repository");return}if(!await EE(e.cwd)){E("commit","nothing to commit");return}let b=x||`howtofix: session update ${new Date().toISOString().slice(0,16)}`,k=await SE(e.cwd,b);E("commit",k.ok?k.output:`commit failed: ${k.output}`),i(!0);return}if(g==="review"){if(!(await RE(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[A.selectedPhase];E("workflow",[`panel ${z?"pinned above the editor":"unpinned"}`,`phase ${A.selectedPhase+1}/${b.length}: ${k?.title??"(none)"}`,`filter: ${A.filter}${A.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(Jv()||Zu().state==="pending"){Co(Hv(Zu())),E("plan","plan mode off \u2014 edits are allowed again");return}Co(zv(Zu())),E("plan",`plan mode armed \u2014 send your next prompt to start planning
145
- plan file: ${Vv()??"(unknown)"}`);return}if(g==="goal"){let b=x.trim();if(!b){E("goal",zu(Hu()));return}let{goal:k,error:R}=ll(Hu(),"set",b,void 0,void 0);if(R){hn(R);return}ln(k),await v.sendCustomMessage({customType:pr,content:b,display:!1,details:k}),E("goal",`goal set
146
- ${zu(k)}`);return}if(g==="session"){let b=v.model;E("session",b?`${b.provider}/${b.id}`:"no model");return}if(g==="skills"){E("skills",pP(v.resourceLoader.getSkills().skills));return}let $=cP(l,v.resourceLoader.getSkills().skills.map(b=>b.name));if($){Rd($);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`)};Tf((l,g)=>{let{promise:y,resolve:x}=Promise.withResolvers();return _t(l,g.map($=>({value:$,label:$})),x,()=>x("cancelled")),y}),process.on("SIGTERM",li),t.setTitle(`${at} ${Nt}`),L_(),n.start(),n.requestRender(!0),e.initialPrompt&&Lm(e.initialPrompt),await new Promise(()=>{})}var PP,ld,CP,fd,km,Tm,vm,M_,O_,nn,j_,D_,NP=u(()=>{Go();cS();zl();MS();nc();NS();Js();XS();oP();id();Vs();dc();rd();uP();Zs();ql();Xm();mP();Nn();lP();$P();Ol();Jo();rc();Ju();hl();TP();Hn();PP={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)}},ld=["off","minimal","low","medium","high","xhigh","max"],CP=Symbol.for("@earendil-works/pi-tui/layout-node");fd=l_(p_);km=class{folder;model;git;percent=0;meter=new fm(0);activity=sP();live=!1;activitySince=Date.now();thinking="medium";cubence="";constructor(t,n){this.folder=h_(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=WS(this.model,this.thinking,this.folder,this.git),s=[si(`${BS(o,this.live?ed():"",this.live?this.waitedMs():void 0)} ${zS(r,this.cubence)}`,t)],i=Zv();i&&s.push(si(ne(i,_.warn),t));let c=jv(Hu());c&&s.push(si(ne(c,_.accent),t));let p=aP(this.activity,ed(),n),f=this.live?wS(p,{base:Gl(this.waitedMs(),_.mute,_.warn,_.bad),bright:_.text,charMs:45},n):ne(p,Gl(this.waitedMs(),_.mute,_.warn,_.bad));return s.push(si(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=>$m(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-$m(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)}},M_=["deepseek","qwen","claude","gpt-5","gpt-4","gemini","glm","mimo","kimi","llama"],O_=/(image|embedding|embed|whisper|tts|audio|video|rerank|moderation|dall-e|stable-diffusion|sora)/i;j_=1e3/30,D_=45e3});Go();var Fd={off:!0,minimal:!0,low:!0,medium:!0,high:!0,xhigh:!0,max:!0},jd={suggest:!0,"auto-edit":!0,"full-auto":!0};function fi(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 Dd(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=fi(r,o,"--session");else if(s==="-m"||s==="--model"||s.startsWith("--model="))t.model=fi(r,o,"--model");else if(s==="--thinking"||s.startsWith("--thinking="))t.thinking=fi(r,o,"--thinking");else if(s==="--approval"||s.startsWith("--approval="))t.approval=fi(r,o,"--approval");else{if(s.startsWith("-"))throw new Error(`unknown option ${s}`);n.push(s)}}if(t.thinking&&!Fd[t.thinking])throw new Error(`thinking must be one of: ${Object.keys(Fd).join(", ")}`);if(t.approval&&!jd[t.approval])throw new Error(`approval must be one of: ${Object.keys(jd).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}
142
+ `)||"working tree clean");return}if(g==="copy"){let w=[...v.state.messages].reverse().find(D=>D.role==="assistant"),R=(Array.isArray(w?.content)?w.content:[]).filter(D=>D.type==="text").map(D=>D.text).join("");if(!R){E("copy","nothing to copy");return}try{await S_(R),E("copy",`copied ${R.length} characters`)}catch(D){E("copy",D instanceof Error?D.message:String(D))}return}if(g==="export"){let w=r.items.filter(D=>D.body.trim().length>0);if(w.length===0){E("export","nothing to export yet \u2014 the transcript is empty");return}let k=E_(e.cwd,x||`howtofix-session-${Date.now()}.md`),R=[`# ${at} session`,"",`model ${o.model}`,""];for(let D of w)R.push(`## ${D.title||D.kind}`,"",D.body,"");try{tt(k,R.join(`
143
+ `))}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[w="",...k]=x.split(/\s+/).filter(Boolean),R=k.join(" ").trim();if(w&&R){E("agents",await SE(w,R));return}E("agents",w?Ml(w):Al());return}if(g==="new"){let w=await e.reopen({noSession:!1});await Rd(w),E("new","started a new session");return}if(g==="resume"){let w=await P_.list(e.cwd);if(w.length===0){E("resume","no saved sessions for this folder");return}_t("Resume session",w.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(Rd,R=>hn(R instanceof Error?R.message:String(R)))});return}if(g==="model"){let w=await v.modelRuntime.getAvailable(),k=x?w.find(R=>`${R.provider}/${R.id}`===x||R.id===x):void 0;if(!x){_t("Select model",w.map(R=>({value:`${R.provider}/${R.id}`,label:R.id,description:R.provider})),R=>{let D=w.find(ve=>`${ve.provider}/${ve.id}`===R);D&&v.setModel(D).then(()=>{o.model=D.id,E("model",`model ${R}`)})});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",dd.map(w=>({value:w,label:w})),w=>{v.setThinkingLevel(w),o.thinking=w,E("thinking",`thinking ${w}`)});return}if(!dd.includes(x)){E("thinking",`thinking: ${dd.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(w){E("compact",w instanceof Error?w.message:String(w))}return}if(g==="approval"){let w=k=>{cc(k),E("approval",vi[k])};if(!x){_t("Approval mode",Xr.map(k=>({value:k,label:k,description:vi[k]})),k=>w(k));return}if(!Xr.includes(x)){E("approval",`modes: ${Xr.join(", ")}`);return}w(x);return}if(g==="tools"){let w=v.getActiveToolNames().sort();E("tools",w.length?w.join(`
144
+ `):"no tools enabled");return}if(g==="rewind"){xd();return}if(g==="undo"){if(!await um(e.cwd)){E("undo","not a git repository");return}let w=await OE(e.cwd);E("undo",w.ok?`undone: ${w.output}`:`undo failed: ${w.output}`),i(!0);return}if(g==="commit"){if(!um(e.cwd)){E("commit","not a git repository");return}if(!await AE(e.cwd)){E("commit","nothing to commit");return}let w=x||`howtofix: session update ${new Date().toISOString().slice(0,16)}`,k=await ME(e.cwd,w);E("commit",k.ok?k.output:`commit failed: ${k.output}`),i(!0);return}if(g==="review"){if(!(await CE(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 w=Fo(C,Date.now()),k=w[A.selectedPhase];E("workflow",[`panel ${z?"pinned above the editor":"unpinned"}`,`phase ${A.selectedPhase+1}/${w.length}: ${k?.title??"(none)"}`,`filter: ${A.filter}${A.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(`
145
+ `));return}if(g==="plan"){if(Qv()||Zu().state==="pending"){Co(Xv(Zu())),E("plan","plan mode off \u2014 edits are allowed again");return}Co(Yv(Zu())),E("plan",`plan mode armed \u2014 send your next prompt to start planning
146
+ plan file: ${Zv()??"(unknown)"}`);return}if(g==="goal"){let w=x.trim();if(!w){E("goal",zu(Hu()));return}let{goal:k,error:R}=ll(Hu(),"set",w,void 0,void 0);if(R){hn(R);return}ln(k),await v.sendCustomMessage({customType:pr,content:w,display:!1,details:k}),E("goal",`goal set
147
+ ${zu(k)}`);return}if(g==="session"){let w=v.model;E("session",w?`${w.provider}/${w.id}`:"no model");return}if(g==="skills"){E("skills",gP(v.resourceLoader.getSkills().skills));return}let $=fP(l,v.resourceLoader.getSkills().skills.map(w=>w.name));if($){Ad($);return}let K=v.extensionRunner.getCommand(g??"");if(K){try{await K.handler(x,v.extensionRunner.createCommandContext())}catch(w){hn(w instanceof Error?w.message:String(w))}return}E("command",`/${g??""} is not available in this screen yet`)};Pf((l,g)=>{let{promise:y,resolve:x}=Promise.withResolvers();return _t(l,g.map($=>({value:$,label:$})),x,()=>x("cancelled")),y}),process.on("SIGTERM",li),t.setTitle(`${at} ${Nt}`),G_(),n.start(),n.requestRender(!0),e.initialPrompt&&Lm(e.initialPrompt),await new Promise(()=>{})}var OP,dd,DP,gd,km,Tm,vm,q_,U_,nn,B_,z_,GP=u(()=>{Go();fS();zl();FS();nc();GS();Js();tP();uP();id();Vs();dc();rd();lP();Zs();ql();Xm();dP();xn();hP();EP();Ol();Jo();rc();Ju();hl();PP();Hn();OP={borderColor:()=>"",selectList:{selectedPrefix:e=>re(e,_.accent),selectedText:e=>re(e,_.text,{bold:!0}),description:e=>re(e,_.mute),scrollInfo:e=>re(e,_.dim),noMatch:e=>re(e,_.mute)}},dd=["off","minimal","low","medium","high","xhigh","max"],DP=Symbol.for("@earendil-works/pi-tui/layout-node");gd=I_(w_);km=class{folder;model;git;percent=0;meter=new fm(0);activity=mP();live=!1;activitySince=Date.now();thinking="medium";cubence="";constructor(t,n){this.folder=v_(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=VS(this.model,this.thinking,this.folder,this.git),s=[si(`${JS(o,this.live?ed():"",this.live?this.waitedMs():void 0)} ${YS(r,this.cubence)}`,t)],i=nE();i&&s.push(si(re(i,_.warn),t));let c=qv(Hu());c&&s.push(si(re(c,_.accent),t));let p=pP(this.activity,ed(),n),d=this.live?TS(p,{base:Gl(this.waitedMs(),_.mute,_.warn,_.bad),bright:_.text,charMs:45},n):re(p,Gl(this.waitedMs(),_.mute,_.warn,_.bad));return s.push(si(d,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=>$m(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-$m(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)}},q_=["deepseek","qwen","claude","gpt-5","gpt-4","gemini","glm","mimo","kimi","llama"],U_=/(image|embedding|embed|whisper|tts|audio|video|rerank|moderation|dall-e|stable-diffusion|sora)/i;B_=1e3/30,z_=45e3});Go();var jd={off:!0,minimal:!0,low:!0,medium:!0,high:!0,xhigh:!0,max:!0},Dd={suggest:!0,"auto-edit":!0,"full-auto":!0};function fi(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 _d(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=fi(r,o,"--session");else if(s==="-m"||s==="--model"||s.startsWith("--model="))t.model=fi(r,o,"--model");else if(s==="--thinking"||s.startsWith("--thinking="))t.thinking=fi(r,o,"--thinking");else if(s==="--approval"||s.startsWith("--approval="))t.approval=fi(r,o,"--approval");else{if(s.startsWith("-"))throw new Error(`unknown option ${s}`);n.push(s)}}if(t.thinking&&!jd[t.thinking])throw new Error(`thinking must be one of: ${Object.keys(jd).join(", ")}`);if(t.approval&&!Dd[t.approval])throw new Error(`approval must be one of: ${Object.keys(Dd).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}
147
148
  coding agent. layout is a workbench, not a chat log.
148
149
 
149
150
  usage:
@@ -190,7 +191,7 @@ an npm install checks for a newer release at startup and can install it itself;
190
191
  /update does it on demand. config and sessions live in ~/.howtofix/agent.
191
192
  /connect signs in to howtofix.id in your browser, and falls back to a pasted
192
193
  token; /login takes another provider's key.
193
- `}Go();Nn();function __(){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 N_(){process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e})}async function q_(){N_(),Gm();let e=__();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(),zd)),{AGENT_DIR:o}=await Promise.resolve().then(()=>(Nn(),_d)),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=Dd(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(()=>(wi(),bi)),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(),sf)),{isApprovalMode:p,setApprovalMode:f}=await Promise.resolve().then(()=>(Jo(),wf)),{openSession:w}=await Promise.resolve().then(()=>(aS(),iS));f(i.approval&&p(i.approval)?i.approval:"full-auto");let I=G=>w({cwd:t,model:i.model,thinking:i.thinking,continueSession:G.continueSession??!1,noSession:G.noSession??!1,sessionPath:G.sessionPath}),P=await I({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(`
194
+ `}Go();xn();function H_(){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 V_(){process.stdout.on("error",e=>{throw e.code==="EPIPE"&&process.exit(0),e})}async function J_(){V_(),Gm();let e=H_();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(),Hd)),{AGENT_DIR:o}=await Promise.resolve().then(()=>(xn(),Nd)),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=_d(process.argv.slice(2))}catch(G){let ee=G instanceof Error?G.message:String(G);console.error(`${at}: ${ee}
195
+ ${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(()=>(wi(),bi)),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(),af)),{isApprovalMode:p,setApprovalMode:d}=await Promise.resolve().then(()=>(Jo(),If)),{openSession:b}=await Promise.resolve().then(()=>(pS(),cS));d(i.approval&&p(i.approval)?i.approval:"full-auto");let I=G=>b({cwd:t,model:i.model,thinking:i.thinking,continueSession:G.continueSession??!1,noSession:G.noSession??!1,sessionPath:G.sessionPath}),P=await I({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(`
195
196
  `)?G:`${G}
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:A}=await Promise.resolve().then(()=>(NP(),_P)),{autoUpdateEnabled:C,isInstalledCopy:U}=await Promise.resolve().then(()=>(wi(),bi)),z=U()&&C(`${o}/settings.json`);await A({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:I})}q_().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`${at}: ${t}`),process.exitCode=1});
197
+ `);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:A}=await Promise.resolve().then(()=>(GP(),KP)),{autoUpdateEnabled:C,isInstalledCopy:U}=await Promise.resolve().then(()=>(wi(),bi)),z=U()&&C(`${o}/settings.json`);await A({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:I})}J_().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`${at}: ${t}`),process.exitCode=1});