howtofixcli 0.0.0-stage → 0.4.2

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 (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -2
  3. package/dist/main.js +158 -0
  4. package/package.json +30 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ Copyright (c) 2026 HowToFix. All rights reserved.
2
+
3
+ PROPRIETARY AND CONFIDENTIAL
4
+
5
+ This software and its source code are the property of HowToFix. No licence,
6
+ express or implied, is granted to use, copy, modify, merge, publish, distribute,
7
+ sublicense, or sell this software, in whole or in part, except as expressly
8
+ permitted in writing by the copyright holder.
9
+
10
+ Installing this package grants you the right to run it for its intended purpose.
11
+ It does not grant any right to its source code, and it does not permit
12
+ redistribution, modification, or use in another product.
13
+
14
+ The software is provided "as is", without warranty of any kind, express or
15
+ implied, including but not limited to the warranties of merchantability, fitness
16
+ for a particular purpose and noninfringement. In no event shall the authors or
17
+ copyright holders be liable for any claim, damages or other liability, whether in
18
+ an action of contract, tort or otherwise, arising from, out of or in connection
19
+ with the software or the use or other dealings in the software.
20
+
21
+ For licensing enquiries: https://howtofix.id
package/README.md CHANGED
@@ -1,3 +1,166 @@
1
- # Temporary Holding Version
1
+ # HowToFix-CLI
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ A terminal coding agent. Workbench layout: scrolling feed, input dock, one HUD line.
4
+
5
+ ```
6
+ howtofix # open the workbench
7
+ howtofix "fix the failing test in src/auth"
8
+ howtofix -p "explain this repo" | less
9
+ howtofix -c # continue the last session in this folder
10
+ ```
11
+
12
+ ## Install
13
+
14
+ Node **22.19 or newer** is required (`node --version`).
15
+
16
+ ```sh
17
+ npm install -g howtofixcli
18
+ howtofix --version
19
+ ```
20
+
21
+ Not on the npm registry yet? Install the release tarball — the same package, no
22
+ registry needed:
23
+
24
+ ```sh
25
+ npm install -g https://github.com/NetroIndonesia/howtofix-cli-dist/releases/download/v0.4.0/howtofixcli-0.4.0.tgz
26
+ ```
27
+
28
+ Release artifacts live in
29
+ [`howtofix-cli-dist`](https://github.com/NetroIndonesia/howtofix-cli-dist); the
30
+ source stays in this private repository.
31
+
32
+ If `howtofix` is not on your `PATH` afterwards, your npm prefix is not on it:
33
+
34
+ ```sh
35
+ npm config get prefix # e.g. /usr/local
36
+ export PATH="$(npm config get prefix)/bin:$PATH"
37
+ ```
38
+
39
+ ## Connect your howtofix.id account
40
+
41
+ One account is all you need; every model on the gateway is billed to it. This is
42
+ the whole setup:
43
+
44
+ **1. Create the account** — open <https://howtofix.id> and sign up. Sign in with
45
+ Google works (a `@gmail.com` address).
46
+
47
+ **2. Create a token** — open <https://howtofix.id/console/token> and make one. It
48
+ starts with `sk-`. Treat it like a password: it is the credential this CLI uses,
49
+ and it is the only thing you have to copy.
50
+
51
+ **3. Connect the CLI** — run `howtofix`, then:
52
+
53
+ ```
54
+ /connect
55
+ ```
56
+
57
+ It opens the token page for you and asks you to paste the token. Or skip the
58
+ prompt by passing it directly:
59
+
60
+ ```sh
61
+ howtofix
62
+ /connect sk-your-token-here
63
+ ```
64
+
65
+ The token is **verified against the gateway before it is stored**, and the model
66
+ list is pulled in at the same time, so `/model` shows everything your account can
67
+ reach. Nothing is written until the gateway accepts the token.
68
+
69
+ **4. Pick a model and go.**
70
+
71
+ ```
72
+ /model
73
+ ```
74
+
75
+ Choose one, then just describe what you want:
76
+
77
+ ```
78
+ fix the failing test in src/auth
79
+ ```
80
+
81
+ ### If you have a free-tier token
82
+
83
+ The free tier is a separate provider id. `/connect` verifies against the paid
84
+ account first and the free one second, so the same command works for both — the
85
+ models simply land under `howtofix-free` instead. `/providers` shows which one
86
+ your token is attached to.
87
+
88
+ ### Updating the token later
89
+
90
+ Run `/connect` again with the new token. It replaces the stored one and re-syncs
91
+ the models; models you configured by hand are never overwritten.
92
+
93
+ ### Removing it
94
+
95
+ `/logout` removes the stored key. The account itself is unaffected.
96
+
97
+ ## What it does
98
+
99
+ - **Workbench screen** — feed of user turns, tool calls, and streamed answers; boxed input dock; HUD with model, folder, git branch, context meter, thinking level, approval mode, and activity.
100
+ - **Slash commands** — `/init`, `/model`, `/providers`, `/thinking`, `/approval`, `/login`, `/connect`, `/logout`, `/new`, `/resume`, `/compact`, `/name`, `/stats`, `/diff`, `/commit`, `/undo`, `/review`, `/tools`, `/export`, `/copy`, `/agents`, `/goal`, `/plan`, `/workflow`, `/session`, `/help`, `/quit`. Type `/help` for the same list.
101
+ - **Shell escape** — a line starting with `!` runs in the project shell and stays in the session history.
102
+ - **Approval modes** — `suggest` asks before every edit and command, `auto-edit` (default) runs edits and asks for commands, `full-auto` never asks. Read-only commands (`ls`, `git log`, `grep` — including pipes like `ls | head`) never ask. Pick one with `/approval` or `--approval <mode>`.
103
+ - **Git workflow** — `/diff` shows the working tree, `/commit <message>` stages and commits, `/undo` resets the last commit keeping the changes, `/review` asks the agent to review the diff.
104
+ - **Goal and plan** — `/goal` sets what the session is for and keeps it visible; `/plan` designs before editing and waits for your approval.
105
+ - **Background agents** — the `task` tool spawns `scout`, `task`, or `reviewer` agents that run in parallel, park when done, and can be messaged again with `/agents`.
106
+ - **Tools** — `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`, plus `think` (private scratchpad), `ask` (multiple-choice question to the user), and `task` (background agents).
107
+ - **Sessions** — stored as JSONL under `~/.howtofix/agent/sessions/<project>/`. `-c` continues the latest; `/resume` picks any of them.
108
+ - **Project notes** — `/init` writes an `AGENTS.md` and asks the agent to fill it in; it is loaded into the system prompt on later runs.
109
+ - **`@file`** — `@src/main.ts` in a prompt inlines the file; paths that do not exist are left alone for the agent to read.
110
+
111
+ ## Keys
112
+
113
+ | key | action |
114
+ | --- | --- |
115
+ | enter | send |
116
+ | shift+enter | new line |
117
+ | ctrl+c | stop the run, or quit when idle |
118
+ | ctrl+d | quit |
119
+ | ctrl+l | jump to the latest line |
120
+ | ctrl+o | clear the screen (history is kept) |
121
+ | ctrl+f | take the workflow panel's keys while it is pinned |
122
+ | esc | close picker / clear draft |
123
+
124
+ ## Config
125
+
126
+ Everything lives in `~/.howtofix/agent`:
127
+
128
+ - `models.json` — providers and model catalog
129
+ - `auth.json` — stored credentials
130
+ - `settings.json` — defaults
131
+ - `sessions/` — transcripts
132
+ - `agents/` — parked background agent runs
133
+ - `workflows/` — scripts saved from a workflow run
134
+
135
+ Set `HOWTOFIX_CODING_AGENT_DIR` to use a different root. The underlying SDK is pinned to that directory, so HowToFix never reads or writes the SDK's own `~/.pi` config dir.
136
+
137
+ If no key is stored, the CLI says so and tells you to run `/connect`.
138
+
139
+ ## Flags
140
+
141
+ ```
142
+ -p, --print run one prompt and print the answer
143
+ -c, --continue resume the latest session in this folder
144
+ --no-session do not write a session file
145
+ -m, --model <id> provider/model, or a fuzzy model id
146
+ --thinking <lv> off | minimal | low | medium | high | xhigh | max
147
+ --approval <m> suggest | auto-edit | full-auto
148
+ -h, --help
149
+ -v, --version
150
+ ```
151
+
152
+ ## Troubleshooting
153
+
154
+ **`Upstream API error (HTTP 400)`** — the gateway refused the request. Run
155
+ `/connect` again to re-sync your models; a model entry created before a gateway
156
+ change can carry stale compatibility settings.
157
+
158
+ **`No available channel for model <id>`** — the gateway has no live channel for
159
+ that model right now. Try another with `/model`; the ones under `howtofix/` that
160
+ answer change as channels come and go.
161
+
162
+ **A model returns `Server error`** — that is the gateway's channel failing, not
163
+ the CLI. `/model` lists what your account can reach; pick another.
164
+
165
+ **`unknown model`** — the id is not in your `models.json`. `/connect` pulls the
166
+ current list from the gateway.
package/dist/main.js ADDED
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env node
2
+ var Zv=Object.defineProperty;var m=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Mt=(e,t)=>{for(var n in t)Zv(e,n,{get:t[n],enumerable:!0})};var St,jr,El,vl,vo=m(()=>{St="HowToFix",jr="0.4.2",El=["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(`
3
+ `),vl=["# Project notes","","## What this is","","## Commands","- build:","- test:","","## Conventions","-",""].join(`
4
+ `)});var Ol={};Mt(Ol,{AGENTS_STORE_DIR:()=>Fr,AGENT_DIR:()=>Ye,CUBENCE_CACHE_PATH:()=>iu,WORKFLOWS_DIR:()=>au,pinAgentDir:()=>mu});import{homedir as Qv}from"node:os";import{join as zs}from"node:path";function mu(){process.env.PI_CODING_AGENT_DIR=Ye}var Ye,Fr,iu,au,Nn=m(()=>{Ye=process.env.HOWTOFIX_CODING_AGENT_DIR?.trim()||zs(Qv(),".howtofix","agent"),Fr=zs(Ye,"agents"),iu=zs(Ye,"cubence-cache.json"),au=zs(Ye,"workflows")});var Dl={};Mt(Dl,{DEFAULT_CONTEXT_WINDOW:()=>jl,HOWTOFIX_BASE_URL:()=>Bs,HOWTOFIX_CONSOLE_URL:()=>Hs,HOWTOFIX_MODEL_COMPAT:()=>cu,HOWTOFIX_PROVIDERS:()=>uu,HTTP_IDLE_TIMEOUT_MS:()=>Ll,applyCompat:()=>Js,checkAccount:()=>xu,countNewModels:()=>fu,ensureGatewaySettings:()=>rS,isHowtofixProvider:()=>So,looksLikeToken:()=>lu,maskToken:()=>Vs,mergeModels:()=>du,newProviderEntry:()=>pu,parseModelIds:()=>Fl,probeModel:()=>gu,repairGatewayModels:()=>nS});import{existsSync as eS,mkdirSync as tS,readFileSync as Al,writeFileSync as Ml}from"node:fs";import{join as Cl}from"node:path";function pu(){return{baseUrl:Bs,api:"openai-completions"}}function nS(e){let t=Cl(e,"models.json"),n;try{n=JSON.parse(Al(t,"utf8"))}catch{return 0}let r=n.providers;if(!r||typeof r!="object")return 0;let o=0;for(let s of uu){let a=r[s];if(!a||!Array.isArray(a.models))continue;let p=Js(a.models);p.changed!==0&&(a.models=p.models,o+=p.changed)}if(o===0)return 0;try{Ml(t,`${JSON.stringify(n,null,2)}
5
+ `)}catch{return 0}return o}function rS(e){let t=Cl(e,"settings.json"),n={};try{let r=Al(t,"utf8"),o=JSON.parse(r);o&&typeof o=="object"&&!Array.isArray(o)&&(n=o)}catch{if(eS(t))return!1}if("httpIdleTimeoutMs"in n)return!1;n.httpIdleTimeoutMs=Ll;try{tS(e,{recursive:!0}),Ml(t,`${JSON.stringify(n,null,2)}
6
+ `)}catch{return!1}return!0}function Vs(e){let t=e.trim();return t.length<=10?"***":`${t.slice(0,6)}\u2026${t.slice(-4)}`}function lu(e){return/^sk-[A-Za-z0-9_-]{8,}$/.test(e.trim())}function Fl(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 So(e){return uu.includes(e)}function du(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:jl,compat:{...cu}}));return r}function Js(e){let t=0;return{models:e.map(r=>r.compat?.supportsDeveloperRole===!1?r:(t++,{...r,compat:{...r.compat,...cu}})),changed:t}}function fu(e,t){let n=new Set(e.map(r=>r.id));return t.filter(r=>!n.has(r)).length}async function gu(e,t,n){let r=(n?.baseUrl??Bs).replace(/\/+$/,""),o=n?.fetchImpl??fetch,s=n?.timeoutMs??1e4,a=new AbortController,p=setTimeout(()=>a.abort(),s);try{let c=await o(`${r}/chat/completions`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify({model:e,messages:[{role:"user",content:"hi"}],max_tokens:1}),signal:a.signal});if(c.ok)return{ok:!0,detail:"ok"};let x=await c.text().catch(()=>"");return{ok:!1,detail:/"message"\s*:\s*"([^"]{0,80})/.exec(x)?.[1]??`HTTP ${c.status}`}}catch(c){return{ok:!1,detail:c instanceof Error&&c.name==="AbortError"?"timed out":"unreachable"}}finally{clearTimeout(p)}}async function xu(e,t){let n=(t?.baseUrl??Bs).replace(/\/+$/,""),r=t?.fetchImpl??fetch,o=t?.timeoutMs??15e3,s=e.trim();if(!s)return{ok:!1,models:[],message:"no token given"};let a=new AbortController,p=setTimeout(()=>a.abort(),o);try{let c=await r(`${n}/models`,{headers:{Authorization:`Bearer ${s}`},signal:a.signal});if(c.status===401)return{ok:!1,models:[],message:"the gateway rejected that token (401). Check it in the Console, or make a new one."};if(c.status===403)return{ok:!1,models:[],message:"that token is not allowed to list models (403). The Console shows what a token may call."};if(!c.ok)return{ok:!1,models:[],message:`the gateway answered ${c.status}`};let x=Fl(await c.json());return x.length===0?{ok:!1,models:[],message:"the token works but the gateway listed no models"}:{ok:!0,models:x,message:`${x.length} models available to this token`}}catch(c){let x=c instanceof Error&&c.name==="AbortError";return{ok:!1,models:[],message:x?`the gateway did not answer within ${Math.round(o/1e3)}s`:"could not reach the gateway"}}finally{clearTimeout(p)}}var Bs,Hs,uu,Ll,cu,jl,hu=m(()=>{Bs="https://api.howtofix.id/v1",Hs="https://howtofix.id/console/token",uu=["howtofix","howtofix-free"];Ll=9e4;cu={supportsDeveloperRole:!1},jl=128e3});var Nl={};Mt(Nl,{expandFileReferences:()=>yu});import{readFileSync as oS,statSync as sS}from"node:fs";import{isAbsolute as iS,resolve as aS}from"node:path";function yu(e,t){return e.replace(/(^|\s)@([^\s]+)/g,(n,r,o)=>{let s=o.replace(/[),.;:]+$/,""),a=o.slice(s.length),p=iS(s)?s:aS(t,s);try{let c=sS(p);if(!c.isFile()||c.size===0||c.size>mS)return n;let x=oS(p);return x.includes(0)?n:`${r}<file name="${p}">
7
+ ${x.toString("utf8").trimEnd()}
8
+ </file>${a}`}catch{return n}})}var mS,Iu=m(()=>{mS=64*1024});function pS(e){let t=new WeakSet,n=r=>{if(r===null||typeof r!="object")return r;if(t.has(r))return"[circular]";if(t.add(r),Array.isArray(r))return r.map(n);let o=r,s={};for(let a of Object.keys(o).sort())s[a]=n(o[a]);return s};try{return JSON.stringify(n(e))??""}catch{return""}}function ql(e,t){if(uS.has(e))return;let n=`${e}\0${pS(t)}`,r=Po&&Po.signature===n?Po.count+1:1;return Po={signature:n,count:r},r>=3?{repeats:r}:void 0}function _l(){Po=void 0}function Ul(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 uS,Po,bu=m(()=>{uS=new Set(["think"])});function Gl(e,t){switch(t){case"number":return/^\d+$/.test(e);case"string":return!0;default:return!1}}function lS(e,t,n){let r=t;for(;r<e.length;){let o=e[r];if(!o){r++;continue}if(o==="--")break;if(cS.test(o)){let s=o.includes("="),[a="",...p]=o.split("="),c=n.safeFlags[a];if(!c)return!1;if(c==="none"){if(s)return!1;r++;continue}if(c==="optional"){r++;continue}if(s){if(!Gl(p.join("="),c))return!1;r++;continue}let x=e[r+1];if(x===void 0||!Gl(x,c))return!1;r+=2;continue}if(n.allowPositional===!1)return!1;r++}return!0}function yS(e){if(!/\$\(|`|\$\{|>|</.test(e)&&!/(?<!&)&(?!&)/.test(e))return e.split(/\|\||&&|;|\|/).map(t=>t.trim()).filter(t=>t.length>0)}function IS(e){let t=e.some(r=>/^cd\b/.test(r)),n=e.some(r=>/^git\b/.test(r));return t&&n}function bS(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 $S(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"&&Wl[`git ${n}`]?{name:`git ${n}`,rest:e.slice(2)}:zl[r]?{name:r,rest:e.slice(2)}:{name:t,rest:e.slice(1)}}function kS(e){let t=bS(e),n=$S(t);if(!n)return!1;let{name:r,rest:o}=n;if(wS.has(r)&&o.some(a=>a.includes("$")||a.includes("`")))return!1;let s=Wl[r]??xS[r]??zl[r];return s?s.dangerous?.(o)?!1:lS(o,0,s):!!(gS.includes(r)||hS.includes(r))}function Qs(e){let t=yS(e);return!t||t.length===0||IS(t)?!1:t.every(kS)}var cS,dS,Ys,Xs,$u,Zs,wu,Kl,fS,Wl,gS,xS,zl,hS,wS,ku=m(()=>{cS=/^-[a-zA-Z0-9_-]/;dS={"--all":"none","--branches":"none","--tags":"none","--remotes":"none"},Ys={"--oneline":"none","--graph":"none","--decorate":"none","--no-decorate":"none","--date":"string","--relative-date":"none"},Xs={"--max-count":"number","-n":"number"},$u={"--stat":"none","--numstat":"none","--shortstat":"none","--name-only":"none","--name-status":"none"},Zs={"--color":"none","--no-color":"none"},wu={"--patch":"none","-p":"none","--no-patch":"none","--no-ext-diff":"none","-s":"none"},Kl={"--author":"string","--committer":"string","--grep":"string"},fS={"-l":"none","--list":"none","-a":"none","-r":"none","-v":"none","-vv":"none","-i":"none"},Wl={"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",...Zs}},"git diff":{safeFlags:{...$u,...Zs,...wu,"--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:{...Ys,...Xs,...$u,...Zs,...wu,...Kl,...dS,"--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:{...$u,...Zs,...wu,...Ys,"--format":"string","--pretty":"string","--abbrev-commit":"none","--no-patch":"none","-q":"none"}},"git shortlog":{safeFlags:{...Xs,"-s":"none","--summary":"none","-n":"none","--numbered":"none","-e":"none","--email":"none","-sn":"none","-ns":"none","--all":"none"}},"git reflog":{safeFlags:{...Xs,...Ys,...Kl,"--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:{...Xs,"--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:{...Ys}},"git worktree list":{safeFlags:{"--porcelain":"none","-v":"none","--verbose":"none","-z":"none"}},"git branch":{safeFlags:{...fS,"--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"}}},gS=["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"],xS={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))}},zl={"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:{}}},hS=["cd","alias","history","arch","ip addr","ifconfig"];wS=new Set(["echo","printf"])});var Ql={};Mt(Ql,{APPROVAL_LABELS:()=>ei,APPROVAL_MODES:()=>Dr,MODE_MAX_TIER:()=>Bl,TIER_RANK:()=>Tu,createPermissionExtension:()=>Pu,criticalCommand:()=>Vl,decideToolCall:()=>Yl,describeToolCall:()=>Xl,formatApprovalPrompt:()=>Zl,getApprovalMode:()=>SS,isApprovalMode:()=>TS,isReadOnlyCommand:()=>Qs,resolveTier:()=>Hl,setApprovalMode:()=>vu,setApprovalPrompt:()=>Su});function TS(e){return Dr.includes(e)}function Hl(e){let t=ES[e];return t||(e.startsWith("mcp__")?"write":"exec")}function Vl(e){for(let{pattern:t,reason:n}of vS)if(t.test(e))return n}function vu(e){Eu=e}function SS(){return Eu}function Su(e){Jl=e}function Yl(e,t,n){let r=typeof n?.command=="string"?n.command:"";if(t==="bash"||t==="powershell"){let s=Vl(r);if(s)return{action:"deny",reason:`Refused in every mode: ${s}.`};if(Qs(r))return{action:"run"}}let o=Hl(t);return Tu[o]<=Tu[Bl[e]]?{action:"run"}:{action:"prompt",reason:`this is a ${o}-tier tool`}}function Xl(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 Zl(e,t,n){let r=[`Allow tool: ${e}`];e.startsWith("mcp__")&&r.push("Origin: MCP server tool"),r.push(`Reason: ${n}`);let o=Xl(e,t);return o!==e&&r.push(o),r.join(`
9
+ `)}function Pu(){return e=>{e.on("tool_call",async t=>{let n=ql(t.toolName,t.input);if(n)return{block:!0,reason:Ul(t.toolName,n.repeats)};let r=Eu,o=Yl(r,t.toolName,t.input);if(o.action==="run")return;if(o.action==="deny")return{block:!0,reason:o.reason};if(!await Jl(`${t.toolName} wants to run`,Zl(t.toolName,t.input,o.reason)))return{block:!0,reason:`Blocked by the user (approval mode: ${r}).`}})}}var Dr,ei,Tu,Bl,ES,vS,Eu,Jl,ti=m(()=>{bu();ku();ku();Dr=["suggest","auto-edit","full-auto"],ei={suggest:"suggest: ask before every edit and command","auto-edit":"auto-edit: edits run, commands ask","full-auto":"full-auto: nothing asks"};Tu={read:0,write:1,exec:2},Bl={suggest:"read","auto-edit":"write","full-auto":"exec"},ES={read:"read",grep:"read",find:"read",ls:"read",think:"read",ask:"read",todo:"read",context:"read",workflow:"exec",goal:"read",enter_plan_mode:"read",exit_plan_mode:"read",edit:"write",write:"write",bash:"exec",powershell:"exec",task:"exec"};vS=[{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"}];Eu="auto-edit",Jl=async()=>!1});function PS(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 OS(e){if(!e)return;let t=!1,n={...e};for(let r of RS){let o=n[r];if(typeof o!="string")continue;let s=PS(o);s!==o&&(n[r]=s,t=!0)}return t?n:void 0}function ed(){return e=>{e.on("context_with_system",async t=>{let n=t.messages[0];if(!n||n.role!=="system")return;let r=OS(n.sections);return r?{messages:t.messages.map(s=>s===n?{...n,sections:r}:s)}:void 0})}}var RS,td=m(()=>{RS=["preamble","rules","docs","addendum"]});import{Type as Nr}from"@earendil-works/pi-ai";import{defineTool as nd}from"@earendil-works/pi-coding-agent";function rd(e){Ru=e}var Ru,od,sd,Ou=m(()=>{od=nd({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:Nr.Object({thoughts:Nr.String({description:"Private notes"})}),async execute(){return{content:[{type:"text",text:"noted"}],details:{recorded:!0}}}}),sd=nd({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:Nr.Object({question:Nr.String(),options:Nr.Array(Nr.String(),{minItems:2})}),async execute(e,t){if(!Ru)return{content:[{type:"text",text:"cancelled"}],details:{answer:"cancelled"}};let n=await Ru(t.question,t.options);return{content:[{type:"text",text:n}],details:{answer:n}}}})});var Yt,ar=m(()=>{Yt={assign:0,create:0,clone:0,discard:0,update:0}});function mr(e,t,n){return e>=t&&e<=n}function md(e){return e===8205}function AS(e){return mr(e,55296,56319)}function id(e){return mr(e,127462,127487)}function ud(e){return mr(e,65024,65039)}function pd(e){return mr(e,768,879)||mr(e,6832,6911)||mr(e,7616,7679)||mr(e,65056,65071)}function ni(e){return e>65535?2:1}function ad(e,t){for(;t<e.length;){let n=e.codePointAt(t);if(pd(n)||ud(n))t+=ni(n);else break}return t}function Au(e,t){let n=e.codePointAt(t),r=t+ni(n);for(r=ad(e,r);r<e.length-1&&md(e.codePointAt(r));){let o=e.codePointAt(r+1);r+=1+ni(o),r=ad(e,r)}return id(n)&&r<e.length&&id(e.codePointAt(r))&&(r+=ni(e.codePointAt(r))),r}function cd(e){return e>=768&&(AS(e)||pd(e)||ud(e)||md(e))}function ld(e){let t=0,n=0;for(;n<e.length;)n=Au(e,n),t++;return t}function MS(e,t){let n=0,r=0;for(;r<e.length;)if(r=Au(e,r),++n>=t)return!0;return!1}function CS(e,t){let n=0,r=0;for(;r<e.length;)if(r=Au(e,r),++n>t)return!1;return!0}function dd(e,t){if(t===0)return!0;if(e.length<t)return!1;let n=0;for(;;){if(cd(e.charCodeAt(n)))return MS(e,t);if(++n>=t)return!0}}function fd(e,t){if(e.length<=t)return!0;let n=0;for(;;){if(cd(e.charCodeAt(n)))return CS(e,t);if(++n>t)return!1}}var gd=m(()=>{});var u={};Mt(u,{Counted:()=>JS,Entries:()=>ZS,EntriesRegExp:()=>XS,Every:()=>zS,EveryAll:()=>BS,GraphemeCount:()=>GS,HasPropertyKey:()=>YS,IsArray:()=>Oo,IsBigInt:()=>Ro,IsBoolean:()=>xd,IsClassInstance:()=>US,IsConstructor:()=>jS,IsDeepEqual:()=>Lu,IsEqual:()=>te,IsFunction:()=>hd,IsGreaterEqualThan:()=>Id,IsGreaterThan:()=>NS,IsInteger:()=>Mu,IsLessEqualThan:()=>yd,IsLessThan:()=>qS,IsMaxLength:()=>KS,IsMinLength:()=>WS,IsMultipleOf:()=>_S,IsNull:()=>oi,IsNumber:()=>si,IsObject:()=>Ao,IsObjectNotArray:()=>FS,IsString:()=>ii,IsSymbol:()=>DS,IsUndefined:()=>Cu,IsUnsafePropertyKey:()=>$d,IsValueLike:()=>bd,Keys:()=>ri,ShiftLeft:()=>ai,Some:()=>HS,SomeAll:()=>VS,Symbols:()=>QS,Values:()=>eP});function Oo(e){return Array.isArray(e)}function Ro(e){return te(typeof e,"bigint")}function xd(e){return te(typeof e,"boolean")}function jS(e){if(Cu(e)||!hd(e))return!1;let t=Function.prototype.toString.call(e);return!!(/^class\s/.test(t)||/\[native code\]/.test(t))}function hd(e){return te(typeof e,"function")}function Mu(e){return Number.isInteger(e)}function oi(e){return te(e,null)}function si(e){return Number.isFinite(e)}function FS(e){return Ao(e)&&!Oo(e)}function Ao(e){return te(typeof e,"object")&&!oi(e)}function ii(e){return te(typeof e,"string")}function DS(e){return te(typeof e,"symbol")}function Cu(e){return te(e,void 0)}function te(e,t){return e===t}function NS(e,t){return e>t}function qS(e,t){return e<t}function yd(e,t){return e<=t}function Id(e,t){return e>=t}function _S(e,t){if(Ro(e)||Ro(t))return BigInt(e)%BigInt(t)===0n;let n=1e-10;if(!si(e)||Mu(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 US(e){if(!Ao(e))return!1;let t=globalThis.Object.getPrototypeOf(e);return oi(t)?!1:te(typeof t.constructor,"function")&&!(te(t.constructor,globalThis.Object)||te(t.constructor.name,"Object"))}function bd(e){return Ro(e)||xd(e)||oi(e)||si(e)||ii(e)||Cu(e)}function GS(e){return ld(e)}function KS(e,t){return fd(e,t)}function WS(e,t){return dd(e,t)}function zS(e,t,n){return e.every((r,o)=>o<t||n(r,o))}function BS(e,t,n){let r=!0;return e.forEach((o,s)=>{s>=t&&!n(o,s)&&(r=!1)}),r}function HS(e,t){return e.some((n,r)=>t(n,r))}function VS(e,t){let n=!1;return e.forEach((r,o)=>{t(r,o)&&(n=!0)}),n}function JS(e,t){return e.reduce((n,r,o)=>t(r,o)?++n:n,0)}function ai(e,t,n){return te(e.length,0)?n():t(e[0],e.slice(1))}function $d(e){return te(e,"__proto__")||te(e,"constructor")||te(e,"prototype")}function YS(e,t){return $d(t)?Object.prototype.hasOwnProperty.call(e,t):t in e}function XS(e){return ri(e).map(t=>[new RegExp(`^${t}$`),e[t]])}function ZS(e){return Object.entries(e)}function ri(e){return Object.getOwnPropertyNames(e)}function QS(e){return Object.getOwnPropertySymbols(e)}function eP(e){return Object.values(e)}function tP(e,t){if(!Ao(t))return!1;let n=ri(e);return te(n.length,ri(t).length)&&n.every(r=>Lu(e[r],t[r]))}function nP(e,t){return Oo(t)&&te(e.length,t.length)&&e.every((n,r)=>Lu(e[r],t[r]))}function Lu(e,t){return Oo(e)?nP(e,t):Ao(e)?tP(e,t):te(e,t)}var qr=m(()=>{gd()});var wd=m(()=>{qr()});var qn={};Mt(qn,{IsBigInt64Array:()=>hP,IsBigUint64Array:()=>yP,IsBoolean:()=>oP,IsDate:()=>bP,IsFloat32Array:()=>gP,IsFloat64Array:()=>xP,IsInt16Array:()=>cP,IsInt32Array:()=>dP,IsInt8Array:()=>mP,IsMap:()=>wP,IsNumber:()=>sP,IsRegExp:()=>IP,IsSet:()=>$P,IsString:()=>iP,IsTypeArray:()=>aP,IsUint16Array:()=>lP,IsUint32Array:()=>fP,IsUint8Array:()=>uP,IsUint8ClampedArray:()=>pP});function oP(e){return e instanceof Boolean}function sP(e){return e instanceof Number}function iP(e){return e instanceof String}function aP(e){return globalThis.ArrayBuffer.isView(e)}function mP(e){return e instanceof globalThis.Int8Array}function uP(e){return e instanceof globalThis.Uint8Array}function pP(e){return e instanceof globalThis.Uint8ClampedArray}function cP(e){return e instanceof globalThis.Int16Array}function lP(e){return e instanceof globalThis.Uint16Array}function dP(e){return e instanceof globalThis.Int32Array}function fP(e){return e instanceof globalThis.Uint32Array}function gP(e){return e instanceof globalThis.Float32Array}function xP(e){return e instanceof globalThis.Float64Array}function hP(e){return e instanceof globalThis.BigInt64Array}function yP(e){return e instanceof globalThis.BigUint64Array}function IP(e){return e instanceof globalThis.RegExp}function bP(e){return e instanceof globalThis.Date}function $P(e){return e instanceof globalThis.Set}function wP(e){return e instanceof globalThis.Map}var kd=m(()=>{});var Td=m(()=>{qr()});var P=m(()=>{wd();kd();Td();qr();qr()});var Xt={};Mt(Xt,{Get:()=>vP,Reset:()=>TP,Set:()=>EP});function TP(){un.immutableTypes=!1,un.maxErrors=8,un.maxInstantiationCount=128,un.useAcceleration=!0,un.exactOptionalPropertyTypes=!1,un.enumerableKind=!1,un.correctiveParse=!1,un.unionPrioritySort=!0}function EP(e){for(let t of u.Keys(e)){let n=e[t];n!==void 0&&Object.defineProperty(un,t,{value:n})}}function vP(){return un}var un,Ed=m(()=>{P();un={immutableTypes:!1,maxErrors:8,maxInstantiationCount:128,useAcceleration:!0,exactOptionalPropertyTypes:!1,enumerableKind:!1,correctiveParse:!1,unionPrioritySort:!0}});var ur=m(()=>{Ed()});function _n(e){return Xt.Get().immutableTypes?Object.freeze(e):e}var Mo=m(()=>{ur()});function SP(e,t){return Yt.assign+=1,_n({...e,...t})}var vd=m(()=>{ar();Mo()});function PP(e){return u.HasPropertyKey(e,"~kind")||u.HasPropertyKey(e,"~unsafe")}function RP(e){let t={};for(let n of u.Keys(e)){if(u.IsUnsafePropertyKey(n))continue;let r=Object.getOwnPropertyDescriptor(e,n);r.value=pr(r.value),u.IsEqual(r.enumerable,!0)?t[n]=r.value:Object.defineProperty(t,n,r)}return t}function OP(e){let t={};for(let n of u.Keys(e))u.IsUnsafePropertyKey(n)||(t[n]=pr(e[n]));for(let n of u.Symbols(e))t[n]=pr(e[n]);return t}function AP(e){return u.IsClassInstance(e)?e:PP(e)?RP(e):OP(e)}function MP(e){return e.map(t=>pr(t))}function CP(e){return e.slice()}function LP(e){return new RegExp(e.source,e.flags)}function jP(e){return new Map(pr([...e.entries()]))}function FP(e){return new Set(pr([...e.values()]))}function pr(e){return qn.IsTypeArray(e)?CP(e):qn.IsRegExp(e)?LP(e):qn.IsMap(e)?jP(e):qn.IsSet(e)?FP(e):u.IsArray(e)?MP(e):u.IsObject(e)?AP(e):e}function Co(e){return Yt.clone+=1,pr(e)}var mi=m(()=>{P();ar()});function DP(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 Sd(e,t){return{...e,...t}}function NP(e,t,n={}){Yt.create+=1;let r=Sd(t,n),o=Xt.Get().enumerableKind?Sd(r,e):DP(r,e);return _n(o)}var Pd=m(()=>{ur();ar();Mo()});function qP(e,t){Yt.discard+=1;let n={};for(let r of u.Keys(e)){if(t.includes(r))continue;let o=Object.getOwnPropertyDescriptor(e,r);o.value=Co(o.value),Object.defineProperty(n,r,o)}return _n(n)}var Rd=m(()=>{P();ar();Mo();mi()});function _P(e,t,n){Yt.update+=1;let r=Xt.Get(),o=Co(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 _n(o)}var Od=m(()=>{ur();ar();Mo();mi()});var l={};Mt(l,{Assign:()=>SP,Clone:()=>Co,Create:()=>NP,Discard:()=>qP,Metrics:()=>Yt,Update:()=>_P});var Ad=m(()=>{vd();mi();Pd();Rd();ar();Od()});var T=m(()=>{Ad()});function O(e,t){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.IsEqual(e["~kind"],t)}function Ce(e){return u.IsObject(e)}var W=m(()=>{P()});function L(e,t,n){return l.Create({"~kind":"Deferred"},{type:"deferred",action:e,parameters:t,options:n},{})}function Un(e){return O(e,"Deferred")}var se=m(()=>{T();W()});function UP(e){return l.Update(e,{"~readonly":!0},{})}function Lo(e,t){return l.Update(UP(e),{},t)}function Md(e,t,n,r){let o=$(e,t,n);return Lo(o,r)}var ui=m(()=>{T();j()});function GP(e){return l.Update(e,{"~optional":!0},{})}function jo(e,t){return l.Update(GP(e),{},t)}function Cd(e,t,n,r){let o=$(e,t,n);return jo(o,r)}var pi=m(()=>{T();j()});function Ct(e,t){return l.Create({"~kind":"Array"},{type:"array",items:e},t)}function be(e){return O(e,"Array")}function ci(e){return l.Discard(e,["~kind","type","items"])}var ut=m(()=>{T();W()});function pn(e,t,n={}){return l.Create({"~kind":"Constructor"},{type:"constructor",parameters:e,instanceType:t},n)}function Ne(e){return O(e,"Constructor")}function Ld(e){return l.Discard(e,["~kind","type","parameters","instanceType"])}var Dt=m(()=>{T();W()});function cn(e,t,n={}){return l.Create({"~kind":"Function"},{type:"function",parameters:e,returnType:t},n)}function qe(e){return O(e,"Function")}function jd(e){return l.Discard(e,["~kind","type","parameters","returnType"])}var Nt=m(()=>{T();W()});function An(e,t){return l.Create({"~kind":"Ref"},{$ref:e},t)}function _e(e){return O(e,"Ref")}var qt=m(()=>{T();W()});function Gn(e,t){return l.Create({"~kind":"Generic"},{type:"generic",parameters:e,expression:t})}function _r(e){return O(e,"Generic")}var Fo=m(()=>{T();W()});function Ur(e){return l.Create({"~kind":"Any"},{},e)}function we(e){return O(e,"Any")}var xt=m(()=>{T();W()});function le(e){return l.Create({"~kind":"Never"},{not:{}},e)}function Zt(e){return O(e,"Never")}var Fd,Ke=m(()=>{T();W();Fd="(?!)"});function ln(e,t={}){return L("AddOptional",[e],t)}function cr(e,t={}){return jo(e,t)}var Do=m(()=>{se();pi()});function Dd(e){return cr(e)}function nt(e){return Ce(e)&&u.HasPropertyKey(e,"~optional")}var Kn=m(()=>{P();W();Do()});function Nd(e){return u.Keys(e).filter(t=>!nt(e[t]))}function li(e){return u.Keys(e)}function di(e){return u.Values(e)}var lr=m(()=>{P();Kn()});function q(e,t={}){let n=Nd(e),r=n.length>0?{required:n}:{};return l.Create({"~kind":"Object"},{type:"object",...r,properties:e},t)}function ae(e){return O(e,"Object")}function qd(e){return l.Discard(e,["~kind","type","properties","required"])}var pe=m(()=>{T();W();lr()});function We(e){return l.Create({"~kind":"Unknown"},{},e)}function Se(e){return O(e,"Unknown")}var Xe=m(()=>{T();W()});function dn(e,t,n){let r=u.Keys(e).reduce((o,s)=>({...o,[s]:l.Update(e[s],{},{$id:s})}),{});return l.Create({"~kind":"Cyclic"},{$defs:r,$ref:t},n)}function Ze(e){return O(e,"Cyclic")}var ht=m(()=>{P();T();W()});function _d(e){return l.Update(e,{"~unsafe":null},{})}function fi(e){return u.IsObjectNotArray(e)&&u.HasPropertyKey(e,"~unsafe")&&u.IsNull(e["~unsafe"])}var gi=m(()=>{P();T()});var fn={};Mt(fn,{Match:()=>KP});function KP(e,t){return t[e.length]?.(...e)??(()=>{throw Error("Invalid Arguments")})()}var Ud=m(()=>{});var Gr=m(()=>{Ud()});function No(...e){let[t,n]=fn.Match(e,{2:(r,o)=>[r,o,o],1:r=>[r,We(),We()]});return l.Create({"~kind":"Infer"},{type:"infer",name:t,extends:n},{})}function Pe(e){return O(e,"Infer")}var _t=m(()=>{Gr();T();W();Xe()});function dr(e,t,n,r={}){return l.Create({"~kind":"Dependent"},{if:e,then:t,else:n},r)}function Te(e){return O(e,"Dependent")}function Gd(e){return l.Discard(e,["~kind","if","then","else"])}var Pt=m(()=>{T();W()});function Kd(e){return u.IsObjectNotArray(e)}function Wd(e){return u.Keys(e).filter(n=>isNaN(n)).reduce((n,r)=>[...n,e[r]],[])}var xi=m(()=>{P()});function zd(e){return u.IsString(e)||u.IsNumber(e)}function Bd(e,t){let n=Kd(e)?Wd(e):e;return l.Create({"~kind":"Enum"},{enum:n},t)}function Qe(e){return O(e,"Enum")}var Qt=m(()=>{P();T();W();xi();xi()});function yt(e,t={}){return l.Create({"~kind":"Intersect"},{allOf:e},t)}function X(e){return O(e,"Intersect")}function Hd(e){return l.Discard(e,["~kind","allOf"])}var Le=m(()=>{T();W()});var Vd=m(()=>{ur();P()});var Jd=m(()=>{Vd()});var Yd=m(()=>{Jd()});function je(){throw new Error("Unreachable")}var ju=m(()=>{});var gn=m(()=>{ju()});var Xd,fN,gN,xN,hN,Zd,yN,IN,bN,Qd=m(()=>{gn();P();(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"})(Xd||(Xd={}));fN=BigInt("14695981039346656037"),[gN,xN]=[BigInt("1099511628211"),BigInt("18446744073709551616")],hN=Array.from({length:256}).map((e,t)=>BigInt(t)),Zd=new Float64Array(1),yN=new DataView(Zd.buffer),IN=new Uint8Array(Zd.buffer),bN=new TextEncoder});var ef=m(()=>{Qd()});var Fu=m(()=>{});var tf=m(()=>{Fu()});var nf=m(()=>{});var rf=m(()=>{});var of=m(()=>{});var sf=m(()=>{});var af=m(()=>{});var mf=m(()=>{});var uf=m(()=>{});var pf=m(()=>{});var cf=m(()=>{});var lf=m(()=>{});var df=m(()=>{});var Du=m(()=>{});var ff=m(()=>{});var gf=m(()=>{});var xf=m(()=>{});var hf=m(()=>{});var yf=m(()=>{});var If=m(()=>{});var bf=m(()=>{});var $f=m(()=>{});var wf=m(()=>{});var kf=m(()=>{});var Tf=m(()=>{});var Ef=m(()=>{});var vf=m(()=>{});var Sf=m(()=>{});var Pf=m(()=>{});var Rf=m(()=>{});var Of=m(()=>{});var Af=m(()=>{});var Mf=m(()=>{});var Cf=m(()=>{});var Lf=m(()=>{});var jf=m(()=>{});var Ff=m(()=>{});var Df=m(()=>{});var Nf=m(()=>{});var qf=m(()=>{tf();nf();rf();of();sf();af();Fu();mf();uf();pf();cf();lf();df();Du();Du();ff();gf();xf();hf();yf();If();bf();$f();wf();kf();Tf();Ef();vf();Sf();Pf();Rf();Of();Af();Mf();Cf();Lf();jf();Ff();Df();Nf()});var _f=m(()=>{qf()});var qo=m(()=>{Gr();Yd();ef();_f();T();ur()});var Gf=m(()=>{qo();qo();qo()});function yi(e){return new Uo(e)}function Kf(e,t){return yi(e).Decode(t).Encode(()=>{throw Error("Encode not implemented")})}function Wf(e,t){return yi(e).Decode(()=>{throw Error("Decode not implemented")}).Encode(t)}function hi(e){return Ce(e)&&u.HasPropertyKey(e,"~codec")&&u.IsObject(e["~codec"])&&u.HasPropertyKey(e["~codec"],"encode")&&u.HasPropertyKey(e["~codec"],"decode")}var _o,Uo,Nu=m(()=>{Gf();P();W();_o=class{constructor(t,n){this.type=t,this.decode=n}Encode(t){let n=this.type,r=hi(n)?a=>this.decode(n["~codec"].decode(a)):this.decode,o=hi(n)?a=>n["~codec"].encode(t(a)):t,s={decode:r,encode:o};return l.Update(this.type,{"~codec":s},{})}},Uo=class{constructor(t){this.type=t}Decode(t){return new _o(this.type,t)}}});function zf(e){return Kr(e)}function fr(e){return Ce(e)&&u.HasPropertyKey(e,"~immutable")}var Go=m(()=>{P();W();Ko()});function xn(e,t={}){return L("AddReadonly",[e],t)}function gr(e,t={}){return Lo(e,t)}var Wo=m(()=>{se();ui()});function Bf(e){return gr(e)}function xr(e){return Ce(e)&&u.HasPropertyKey(e,"~readonly")}var zo=m(()=>{P();W();Wo()});function HP(e,t){let n=qu(e)?[...e["~refine"],t]:[t];return l.Update(e,{"~refine":n},{})}function Hf(...e){let[t,n,r]=fn.Match(e,{3:(o,s,a)=>[o,s,a],2:(o,s)=>[o,s,()=>"Refine Error"]});return HP(t,{check:n,error:r})}function VP(e){return u.IsObjectNotArray(e)&&u.HasPropertyKey(e,"check")&&u.HasPropertyKey(e,"error")&&u.IsFunction(e.check)&&u.IsFunction(e.error)}function qu(e){return Ce(e)&&u.HasPropertyKey(e,"~refine")&&u.IsArray(e["~refine"])&&u.Every(e["~refine"],0,t=>VP(t))}var _u=m(()=>{Gr();T();P();W()});function Bo(e){return l.Create({"~kind":"BigInt"},{type:"bigint"},e)}function hn(e){return O(e,"BigInt")}var Vf,hr=m(()=>{T();W();Vf="-?(?:0|[1-9][0-9]*)n"});function Ii(e){return l.Create({"~kind":"Boolean"},{type:"boolean"},e)}function Ut(e){return O(e,"Boolean")}var Wn=m(()=>{T();W()});function Ho(e){return l.Create({"~kind":"Identifier"},{name:e})}function Jf(e){return O(e,"Identifier")}var Uu=m(()=>{T();W()});function yr(e){return l.Create({"~kind":"Integer"},{type:"integer"},e)}function pt(e){return O(e,"Integer")}var bi,yn=m(()=>{T();W();bi="-?(?:0|[1-9][0-9]*)"});function JP(e){return u.IsBigInt(e)?"bigint":u.IsBoolean(e)?"boolean":u.IsNumber(e)?"number":u.IsString(e)?"string":(()=>{throw new Gu(e)})()}function Z(e,t){return l.Create({"~kind":"Literal"},{type:JP(e),const:e},t)}function $i(e){return u.IsBigInt(e)||u.IsBoolean(e)||u.IsNumber(e)||u.IsString(e)}function Yf(e){return me(e)&&u.IsNumber(e.const)}function Xf(e){return me(e)&&u.IsString(e.const)}function me(e){return O(e,"Literal")}var Gu,Oe=m(()=>{T();P();W();Gu=class extends Error{constructor(t){super("Invalid Literal value"),Object.defineProperty(this,"cause",{value:{value:t},writable:!1,configurable:!1,enumerable:!1})}}});function Wr(e){return l.Create({"~kind":"Null"},{type:"null"},e)}function zr(e){return O(e,"Null")}var Br=m(()=>{T();W()});function Rt(e){return l.Create({"~kind":"Number"},{type:"number"},e)}function Ae(e){return O(e,"Number")}var wi,ct=m(()=>{T();W();wi="-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?"});function Hr(e){return l.Create({"~kind":"Symbol"},{type:"symbol"},e)}function zn(e){return O(e,"Symbol")}var Ir=m(()=>{T();W()});function br(...e){let[t,n,r]=fn.Match(e,{3:(o,s,a)=>[o,s,a],2:(o,s)=>[o,s,s],1:o=>[o,We(),We()]});return l.Create({"~kind":"Parameter"},{name:t,extends:n,equals:r},{})}function Zf(e){return O(e,"Parameter")}var Ku=m(()=>{Gr();T();W();Xe()});function Gt(e){return l.Create({"~kind":"String"},{type:"string"},e)}function lt(e){return O(e,"String")}var ki,Kt=m(()=>{T();W();ki=".*"});function B(e,t={}){return l.Create({"~kind":"Union"},{anyOf:e},t)}function C(e){return O(e,"Union")}function Qf(e){return l.Discard(e,["~kind","anyOf"])}var V=m(()=>{T();W()});function Vo(e){let t=eg(e);return u.IsEqual(t.length,2)?t[0]:[]}var Jo=m(()=>{P();Ti()});function YP(e){return!0}function tg(e){return u.ShiftLeft(e,(t,n)=>XP(t)?tg(n):!1,()=>!0)}function ng(e){return u.IsEqual(e.length,0)?!1:tg(e)}function XP(e){return C(e)?ng(e.anyOf):me(e)?YP(e.const):!1}function Ei(e){return ng(e)}var vi=m(()=>{P();Oe();V()});function Si(e){return l.Create({"~kind":"TemplateLiteral"},{type:"string",pattern:e},{})}var Pi=m(()=>{T()});function rg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>rg(o,t,[...n,`${r}${t}`]),()=>n)}function ZP(e,t){return u.IsEqual(e.length,0)?[`${t}`]:rg(e,t)}function og(e,t,n=[]){return u.ShiftLeft(t,(r,o)=>og(e,o,[...n,...sg(e,r)]),()=>n)}function sg(e,t){return C(t)?og(e,t.anyOf):me(t)?ZP(e,t.const):je()}function ig(e,t){return u.ShiftLeft(t,(n,r)=>ig(sg(e,n),r),()=>e)}function QP(e){return e.map(t=>Z(t))}function eR(e){let t=ig([],e),n=QP(t);return B(n)}function tR(e){return u.IsEqual(e.length,0)?je():u.IsEqual(e.length,1)&&me(e[0])?e[0]:eR(e)}function Wu(e){let t=Vo(e);return u.IsEqual(t.length,0)?Gt():Ei(t)?tR(t):Si(e)}function ag(e){let t=Wu(e);return Ee(t)?Gt():t}var Ri=m(()=>{P();gn();Oe();Kt();It();V();Jo();vi();Pi()});function bt(e,t){let n="object",r={[e]:t};return l.Create({"~kind":"Record"},{type:n,patternProperties:r})}var Bn=m(()=>{T()});function mg(e){return bt(en,e)}var ug=m(()=>{ze();Bn()});function pg(e){return q({true:e,false:e})}var cg=m(()=>{pe()});function Me(e,t={}){let[n,r,o]=[e,e.length,!1];return l.Create({"~kind":"Tuple"},{type:"array",additionalItems:o,items:n,minItems:r},t)}function fe(e){return O(e,"Tuple")}function lg(e){return l.Discard(e,["~kind","type","items","minItems","additionalItems"])}var Fe=m(()=>{T();W()});function nR(e){return l.Discard(e,["~readonly"])}function zu(e,t){return l.Update(nR(e),{},t)}function dg(e,t,n,r){let o=$(e,t,n);return zu(o,r)}var Bu=m(()=>{T();j()});function fg(e,t={}){return L("RemoveReadonly",[e],t)}function gg(e,t={}){return zu(e,t)}var Hu=m(()=>{se();Bu()});function rR(e){return l.Discard(e,["~optional"])}function Vu(e,t){return l.Update(rR(e),{},t)}function xg(e,t,n,r){let o=$(e,t,n);return Vu(o,r)}var Ju=m(()=>{T();j()});function hg(e,t={}){return L("RemoveOptional",[e],t)}function Oi(e,t={}){return Vu(e,t)}var Ai=m(()=>{se();Ju()});function Yu(e){return e.reduceRight((n,r,o)=>({[o]:r,...n}),{})}function yg(e){let t=Yu(e.items);return q(t)}var Xu=m(()=>{pe()});function Zu(e){return ae(e)||fe(e)}function oR(e,t){return xr(e)?!!xr(t):!1}function sR(e,t){return nt(e)?!!nt(t):!1}function iR(e,t){let n=oR(e,t),r=sR(e,t),o=$e([e,t]),s=gg(Oi(o));return n&&r?gr(cr(s)):n&&!r?gr(s):!n&&r?cr(s):s}function aR(e,t,n){return n in e?n in t?iR(e[n],t[n]):e[n]:n in t?t[n]:le()}function mR(e,t){return[...new Set([...u.Keys(e),...u.Keys(t)])].reduce((o,s)=>({...o,[s]:aR(e,t,s)}),{})}function Ig(e){return ae(e)?e.properties:fe(e)?Yu(e.items):{}}function bg(e,t){let n=Ig(e),r=Ig(t),o=mR(n,r);return q(o)}var Qu=m(()=>{P();zo();Kn();pe();Ke();Fe();Wo();Do();Hu();Ai();Xu();z()});function uR(e,t){let n=Zo(e,t);return u.IsEqual(n,Xo)?e:u.IsEqual(n,Mi)||u.IsEqual(n,Yo)?t:le()}function pR(e,t){let n=Zu(e),r=Zu(t);return n&&r?bg(e,t):n&&!r?e:!n&&r?t:uR(e,t)}function $g(e,t){return Zt(e)||we(e)?e:Se(e)||Zt(t)||we(t)?t:Se(t)?e:pR(e,t)}var ep=m(()=>{P();xt();Ke();Xe();Qo();Qu()});function cR(e,t){return C(e)||C(t)}function lR(e,t){let n=Wt(e),r=Wt(t);return cR(n,r)?$e([n,r]):$g(n,r)}function wg(e,t,n=[]){return u.ShiftLeft(t,(r,o)=>wg(e,o,[...n,lR(r,e)]),()=>u.IsEqual(n.length,0)?[e]:n)}function kg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>kg(o,t,[...n,...es([r],t)]),()=>n)}function es(e,t=[]){return u.ShiftLeft(e,(n,r)=>C(n)?es(r,kg(n.anyOf,t)):es(r,wg(n,t)),()=>t)}var tp=m(()=>{P();V();ep();z();z()});function dR(e,t){let n=et({},e,t);return _.IsExtendsTrueLike(n)?[]:[e]}function Tg(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>Tg(o,t,[...n,...dR(r,t)]),()=>n)}function Ci(e,t){let n=Wt(e),r=C(n)?n.anyOf:[n],o=Tg(r,t);return $t(o)}var np=m(()=>{P();V();In();z();z()});function tn(e,t,n){let r=$e([e,t]),o=Ci(n,e);return $t([r,o])}function dt(e,t=[]){return u.ShiftLeft(e,(n,r)=>dt(r,[...t,Z(n)]),()=>$t(t))}function $e(e){let t=es(e),n=rp(t);return $t(n)}function rt(e){let t=ag(e);return Wt(t)}function $t(e){let t=rp(e);return Hn(t)}function Wt(e){return Te(e)?tn(e.if,e.then,e.else):Qe(e)?dt(e.enum):X(e)?$e(e.allOf):Ee(e)?rt(e.pattern):C(e)?$t(e.anyOf):e}function Hn(e){return u.IsEqual(e.length,1)?e[0]:u.IsEqual(e.length,0)?le():B(e)}var z=m(()=>{P();Pt();Qt();Le();Oe();Ke();It();V();tp();op();np();Ri()});function Eg(e,t){let n=dt(e);return Vn(n,t)}var vg=m(()=>{ts();z()});function Sg(e,t){return bt(Jn,t)}var Pg=m(()=>{ze();Bn()});function Rg(e,t){let n=$e(e);return Vn(n,t)}var Og=m(()=>{z();ts()});function Ag(e,t){return u.IsString(e)||u.IsNumber(e)?q({[e]:t}):u.IsEqual(e,!1)?q({false:t}):u.IsEqual(e,!0)?q({true:t}):q({})}var Mg=m(()=>{P();pe()});function Cg(e,t){return bt(Vr,t)}var Lg=m(()=>{ze();Bn()});function jg(e,t){return u.HasPropertyKey(e,"pattern")&&(u.IsString(e.pattern)||e.pattern instanceof RegExp)?bt(e.pattern.toString(),t):bt(en,t)}var Fg=m(()=>{P();ze();Bn()});function Dg(e,t){let n=Vo(e);return Ei(n)?Vn(rt(e),t):bt(e,t)}var Ng=m(()=>{ts();Jo();vi();z();Bn()});function fR(e){return C(e)?Jr(e.anyOf):[e]}function Jr(e,t=[]){return u.ShiftLeft(e,(n,r)=>Jr(r,[...t,...fR(n)]),()=>t)}var Li=m(()=>{P();V()});function gR(e){return e.some(t=>lt(t)||Ae(t)||pt(t))}function xR(e,t){return u.IsEqual(gR(e),!0)?bt(en,t):void 0}function hR(e,t){return e.reduce((n,r)=>me(r)&&(u.IsString(r.const)||u.IsNumber(r.const))?{...n,[r.const]:t}:n,{})}function yR(e,t){let n=hR(e,t);return q(n)}function qg(e,t){let n=Jr(e),r=xR(n,t);return Ce(r)?r:yR(n,t)}var _g=m(()=>{P();W();Oe();ct();yn();pe();Kt();ze();Li();Bn()});function Vn(e,t){return we(e)?mg(t):Ut(e)?pg(t):Qe(e)?Eg(e.enum,t):pt(e)?Sg(e,t):X(e)?Rg(e.allOf,t):me(e)?Ag(e.const,t):Ae(e)?Cg(e,t):C(e)?qg(e.anyOf,t):lt(e)?jg(e,t):Ee(e)?Dg(e.pattern,t):q({})}var ts=m(()=>{xt();Wn();Qt();Le();yn();Oe();ct();pe();Kt();It();V();ug();cg();vg();Pg();Og();Mg();Lg();Fg();Ng();_g()});function sp(e,t,n){return K([e])?l.Update(Vn(e,t),{},n):Fi(e,t,n)}function Ug(e,t,n,r,o){let s=$(e,t,n),a=$(e,t,r);return sp(s,a,o)}var ji=m(()=>{T();ze();ts();j()});function Fi(e,t,n={}){return L("Record",[e,t],n)}function Di(e,t,n={}){return sp(e,t,n)}function Gg(e,t){return bt(e,t)}function Ni(e){return u.IsEqual(e,en)?Gt():u.IsEqual(e,Jn)?yr():u.IsEqual(e,Vr)?Rt():Wu(e)}function zt(e){return u.Keys(e.patternProperties)[0]}function Yr(e){let t=zt(e);return Ni(t)}function ft(e){return e.patternProperties[zt(e)]}function tt(e){return O(e,"Record")}var Jn,Vr,en,ze=m(()=>{T();P();W();yn();ct();Kt();se();Ri();Bn();ji();Jn=`^${bi}$`,Vr=`^${wi}$`,en=`^${ki}$`});function $r(e){return l.Create({"~kind":"Rest"},{type:"rest",items:e},{})}function Yn(e){return O(e,"Rest")}var Xr=m(()=>{T();W()});var Kg=m(()=>{});function qi(e){return l.Create({"~kind":"This"},{$ref:"#"},e)}function _i(e){return O(e,"This")}var Ui=m(()=>{T();W()});function Zr(e){return l.Create({"~kind":"Undefined"},{type:"undefined"},e)}function Qr(e){return O(e,"Undefined")}var eo=m(()=>{T();W()});function Gi(e){return l.Create({"~kind":"Void"},{type:"void"},e)}function bn(e){return O(e,"Void")}var wr=m(()=>{T();W()});var Ki=m(()=>{Nu();Go();Kn();zo();_u();xt();ut();hr();Wn();to();Dt();ht();se();Qt();Nt();Fo();Uu();Pt();_t();yn();Le();Oe();Ke();Br();ct();Xe();Ir();pe();Ku();lr();ze();qt();Xr();W();Kg();Kt();Ir();It();Ui();Fe();eo();V();Xe();gi();wr()});function bR(e,t){return u.IsEqual(e,"Array")?Ct(t[0]):u.IsEqual(e,"Capitalize")?zi(t[0]):u.IsEqual(e,"ConstructorParameters")?Yi(t[0]):u.IsEqual(e,"Evaluate")?zh(t[0]):u.IsEqual(e,"Exclude")?Xi(t[0],t[1]):u.IsEqual(e,"Extract")?Zi(t[0],t[1]):u.IsEqual(e,"Index")?ss(t[0],t[1]):u.IsEqual(e,"InstanceType")?Qi(t[0]):u.IsEqual(e,"Lowercase")?Bi(t[0]):u.IsEqual(e,"NonNullable")?ea(t[0]):u.IsEqual(e,"Omit")?ta(t[0],t[1]):u.IsEqual(e,"Parameters")?na(t[0]):u.IsEqual(e,"Partial")?ra(t[0]):u.IsEqual(e,"Pick")?oa(t[0],t[1]):u.IsEqual(e,"Readonly")?sa(t[0]):u.IsEqual(e,"KeyOf")?is(t[0]):u.IsEqual(e,"Record")?Fi(t[0],t[1]):u.IsEqual(e,"Required")?ia(t[0]):u.IsEqual(e,"ReturnType")?aa(t[0]):u.IsEqual(e,"Uncapitalize")?Hi(t[0]):u.IsEqual(e,"Uppercase")?Vi(t[0]):os(An(e),t)}function kr(){throw Error("Unreachable")}function Vg(e,t=[]){return u.ShiftLeft(e,(n,r)=>Vg(r,[...t,n[1]]),()=>t)}function Mn(e){return u.IsEqual(e.length,3)?[e[0],...Vg(e[1])]:[]}function Jg(e){return br(e[0],e[2],e[4])}function Yg(e){return br(e[0],e[2],e[2])}function Xg(e){return br(e[0],We(),e[2])}function Zg(e){return br(e,We(),We())}function Qg(e){return Mn(e)}function ex(e){return e[1]}function tx(e){return Mn(e)}function nx(e){return e[1]}function rx(e){return bR(e[0],e[1])}function ox(e){return null}function sx(e){return Gt()}function ix(e){return Rt()}function ax(e){return Ii()}function mx(e){return Zr()}function ux(e){return Wr()}function px(e){return yr()}function cx(e){return Bo()}function lx(e){return We()}function dx(e){return Ur()}function fx(e){return q({})}function gx(e){return le()}function xx(e){return Hr()}function hx(e){return Gi()}function yx(e){return qi()}function Ix(e){return Z(BigInt(e))}function bx(e){return Z(u.IsEqual(e,"true"))}function $x(e){return Z(parseFloat(e))}function wx(e){return Z(e)}function kx(e){return e[1]}function Tx(e){return Z(e)}function Ex(e){return u.IsEqual(e.length,3)?[e[0],e[1],...e[2]]:[e[0]]}function vx(e){return e[1]}function Sx(e){return Wi(e)}function Px(e){return u.IsEqual(e.length,6)?dr(e[1],e[3],e[5]):dr(e[1],e[3],We())}function Rx(e){return e.length>0}function Ox(e){return e.reduce((t,n)=>u.IsEqual(n.length,3)?[...t,[n[1]]]:[...t,[]],[])}function Ax(e){return u.IsEqual(e.length,6)?[e[1],e[3],e[5]]:[]}function Mx(e){return u.IsArray(e)&&u.IsEqual(e.length,3)?e[1]:e}function Cx(e){return u.IsEqual(e.length,2)?e[1]:[]}function Wg(e,t){return t.reduce((n,r)=>{let o=r;return u.IsEqual(o.length,1)?ss(n,o[0]):u.IsEqual(o.length,0)?Ct(n):kr()},e)}function zg(e,t){return u.IsEqual(t.length,3)?Ji(e,t[0],t[1],t[2]):e}function $R(e,t){return u.IsArray(t)&&u.IsEqual(t.length,0)?e:ma(e,t)}function Lx(e){let[t,n,r,o,s]=e;return $R(zg(t?is(Wg(n,r)):Wg(n,r),o),s)}function ip(e,t){return u.IsEqual(t.length,3)?(()=>{let[n,r,o]=t,s=ip(r,o);if(u.IsEqual(n,"&"))return X(s)?yt([e,...s.allOf]):yt([e,s]);if(u.IsEqual(n,"|"))return C(s)?B([e,...s.anyOf]):B([e,s]);kr()})():e}function jx(e){let[t,n]=e;return ip(t,n)}function Fx(e){let[t,n]=e;return ip(t,n)}function Dx(e){return Wh(e[1])}function Nx(e){return e[1]}function qx(e){return Gn(e[0],e[2])}function _x(e){return u.IsEqual(e.length,4)?No(e[1],e[3]):u.IsEqual(e.length,2)?No(e[1],We()):kr()}function Ux(e){return`${e}`}function Gx(e){return pt(e[3])?Jn:Ae(e[3])?Vr:zn(e[3])?en:lt(e[3])?en:kr()}function Kx(e){return e.length>0}function Wx(e){return e.length>0}function zx(e){let[t,n,r,o,s]=e;return{[n]:t&&r?xn(ln(s)):t&&!r?xn(s):!t&&r?ln(s):s}}function Bx(e){return Mn(e)}function Hx(e){return e.reduce((t,n)=>u.HasPropertyKey(n,Jn)||u.HasPropertyKey(n,Vr)||u.HasPropertyKey(n,en)?[t[0],l.Assign(t[1],n)]:[l.Assign(t[0],n),t[1]],[{},{}])}function Vx(e){return Hx(e[1])}function Jx(e){let[t,n]=e,r=u.IsEqual(u.Keys(n).length,0)?{}:{patternProperties:n};return q(t,r)}function Yx(e){return u.IsEqual(e.length,5)?xn(ln(e[4])):u.IsEqual(e.length,3)?e[2]:u.IsEqual(e.length,4)?u.IsEqual(e[2],"readonly")?xn(e[3]):ln(e[3]):kr()}function Xx(e){if(!u.IsArray(e)||!u.IsEqual(e.length,3))return e;let[t,n,r]=e;return t&&r?xn(ln(n)):t&&!r?xn(n):!t&&r?ln(n):n}function Zx(e){return u.IsEqual(e.length,2)?$r(e[1]):u.IsEqual(e.length,1)?e[0]:kr()}function Qx(e){return Mn(e)}function eh(e){return Me(e[1])}function th(e){return xn(ln(e[4]))}function nh(e){return xn(e[3])}function rh(e){return ln(e[3])}function oh(e){return e[2]}function sh(e){return u.IsEqual(e.length,2)?$r(e[1]):u.IsEqual(e.length,1)?e[0]:kr()}function ih(e){return Mn(e)}function ah(e){return cn(e[1],e[4])}function mh(e){return pn(e[2],e[5])}function Bg(e,t){return u.IsEqual(e,"remove")?fg(t):u.IsEqual(e,"add")?xn(t):t}function uh(e){return u.IsEqual(e.length,2)&&u.IsEqual(e[0],"-")?"remove":u.IsEqual(e.length,2)&&u.IsEqual(e[0],"+")||u.IsEqual(e.length,1)?"add":"none"}function Hg(e,t){return u.IsEqual(e,"remove")?hg(t):u.IsEqual(e,"add")?ln(t):t}function ph(e){return u.IsEqual(e.length,2)&&u.IsEqual(e[0],"-")?"remove":u.IsEqual(e.length,2)&&u.IsEqual(e[0],"+")||u.IsEqual(e.length,1)?"add":"none"}function ch(e){return u.IsEqual(e.length,2)?[e[1]]:[]}function lh(e){return u.IsArray(e[6])&&u.IsEqual(e[6].length,1)?ns(Ho(e[3]),e[5],e[6][0],Bg(e[1],Hg(e[8],e[10]))):ns(Ho(e[3]),e[5],An(e[3]),Bg(e[1],Hg(e[8],e[10])))}function dh(e){return An(e)}function fh(e){return BigInt(e)}function gh(e){return parseFloat(e)}function xh(e){return u.IsEqual(e,"true")}function hh(e){return null}function yh(e){return{[e[0]]:e[2]}}function Ih(e){return Mn(e)}function wR(e){return e.reduce((t,n)=>l.Assign(t,n),{})}function bh(e){return wR(e[1])}function $h(e){return Mn(e)}function wh(e){return e[1]}function kh(e){return Bo()}function Th(e){return Gt()}function Eh(e){return Rt()}function vh(e){return yr()}function Sh(e){return le()}function Ph(e){return Z(e)}function Rh(e){return B(e[1])}function Oh(e){return e.length===3?[...e[0],...e[2]]:e.length===1?[...e[0]]:[]}function Ah(e){return[e[0],...e[1]]}function Mh(e){return e[1]}function Ch(e){return Mn(e)}function Lh(e){return u.IsEqual(e.length,2)?e[1]:[]}function jh(e){let t=e[2],n=e[3],[r,o]=e[4],s=u.IsEqual(u.Keys(o).length,0)?{}:{patternProperties:o};return{[e[1]]:Gn(t,rs(n,r,s))}}function Fh(e){let t=e[2],[n,r]=e[3],o=u.IsEqual(u.Keys(r).length,0)?{}:{patternProperties:r};return{[e[1]]:rs(t,n,o)}}function Dh(e){return{[e[1]]:Gn(e[2],e[4])}}function Nh(e){return{[e[1]]:e[3]}}function qh(e){return null}function _h(e){return Mn(e)}function Uh(e){return e[1]}function Gh(e){let[t,n]=[e[0],e[1]];return Bh(l.Assign(t,Hx(n)[0]))}var Kh=m(()=>{T();P();Ki();no()});var Cn=m(()=>{qr()});function as(e){return te(e.length,2)}function Y(e,t,n){return as(e)?t(e[0],e[1]):n()}var Ot=m(()=>{Cn()});function ER(e,t){return te(t.indexOf(e),0)?[e,t.slice(e.length)]:[]}function ke(e,t){for(let n=0;n<e.length;n++){let r=ER(e[n],t);if(as(r))return r}return[]}var $n=m(()=>{Ot();Cn()});function ap(e,t){return Array.from({length:t-e+1},(n,r)=>String.fromCharCode(e+r))}var Hh,mp,up,ro,Vh,oo,Xn,ua,Jh,pa,ot=m(()=>{Hh=[...ap(97,122),...ap(65,90)],mp="0",up=ap(49,57),ro=[mp,...up],Vh=" ",oo=`
10
+ `,Xn="_",ua=".",Jh="$",pa="-"});function Zh(e){let t=e.indexOf(SR);return te(t,-1)?"":e.slice(t+2)}function Qh(e){let t=e.indexOf(oo);return te(t,-1)?"":e.slice(t)}function PR(e){return e.replace(/^[ \t\r\f\v]+/,"")}function ca(e){let t=PR(e);return t.startsWith(Xh)?ca(Zh(t.slice(2))):t.startsWith(Yh)?ca(Qh(t.slice(2))):t}function Be(e){let t=e.trimStart();return t.startsWith(Xh)?Be(Zh(t.slice(2))):t.startsWith(Yh)?Be(Qh(t.slice(2))):t}var Yh,Xh,SR,wn=m(()=>{Cn();ot();Yh="//",Xh="/*",SR="*/"});function la(e,t){return Y(ke([e],t),(n,r)=>[n,r],()=>["",t])}var pp=m(()=>{Ot();$n()});function RR(e,t){return e.includes(t)}function so(e,t,n,r=""){return Y(ke(e,n),(o,s)=>RR(t,o)?so(e,t,s,r):so(e,t,s,`${r}${o}`),()=>[r,n])}var cp=m(()=>{Ot();$n()});function OR(e){return ke(up,e)}function MR(e){return so(AR,[Xn],e)}function CR(e){return Y(ke([mp],e),(t,n)=>[t,n],()=>Y(OR(e),(t,n)=>Y(MR(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[]))}function da(e){return CR(Be(e))}var AR,fa=m(()=>{Ot();wn();$n();cp();ot();ot();ot();ot();AR=[...ro,Xn]});function LR(e){return la(pa,e)}function jR(e){return Y(LR(e),(t,n)=>Y(da(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function ey(e){return jR(Be(e))}var lp=m(()=>{Ot();wn();pp();ot();fa()});function FR(e){return Y(ey(e),(t,n)=>Y(ke(["n"],n),(r,o)=>[`${t}`,o],()=>[]),()=>[])}function dp(e){return FR(e)}var ty=m(()=>{Ot();$n();lp()});function fp(e,t){return ke([e],t)}function d(e,t){return te(e,"")?["",t]:e.startsWith(oo)?fp(e,ca(t)):e.startsWith(Vh)?fp(e,t):fp(e,Be(t))}var ny=m(()=>{Cn();wn();wn();$n();ot();ot()});function DR(e){return ke(ry,e)}function oy(e,t=""){return Y(ke(NR,e),(n,r)=>oy(r,`${t}${n}`),()=>[t,e])}function qR(e){return Y(DR(e),(t,n)=>Y(oy(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function ve(e){return qR(Be(e))}var ry,NR,sy=m(()=>{Ot();wn();$n();ot();ot();ot();ot();ry=[...Hh,Xn,Jh];NR=[...ry,...ro]});function UR(e){return as(ke([ua],e))}function iy(e){return Y(so(_R,[Xn],e),(t,n)=>te(t,"")?[]:[t,n],()=>[])}function GR(e){return Y(ke([ua],e),(t,n)=>Y(iy(n),(r,o)=>[`0${t}${r}`,o],()=>[]),()=>[])}function KR(e){return Y(da(e),(t,n)=>Y(ke([ua],n),(r,o)=>Y(iy(o),(s,a)=>[`${t}${r}${s}`,a],()=>[`${t}`,o]),()=>[`${t}`,n]),()=>[])}function WR(e){return UR(e)?GR(e):KR(e)}function ay(e){return WR(Be(e))}var _R,gp=m(()=>{Cn();Ot();wn();$n();cp();ot();ot();fa();_R=[...ro,Xn]});function zR(e){return la(pa,e)}function BR(e){return Y(zR(e),(t,n)=>Y(ay(n),(r,o)=>[`${t}${r}`,o],()=>[]),()=>[])}function ga(e){return BR(Be(e))}var my=m(()=>{Ot();wn();pp();ot();gp()});var uy=m(()=>{Cn()});function HR(e){return te(e,"")?[]:[e.slice(0,1),e.slice(1)]}function py(e,t){return ai(e,(n,r)=>t.startsWith(n)?!0:py(r,t),()=>!1)}function Zn(e,t,n=""){return Y(HR(t),(r,o)=>py(e,t)?[n,t]:Zn(e,o,`${n}${r}`),()=>[])}var xa=m(()=>{Ot();Cn()});function VR(e,t,n){return Y(ke([e],n),(r,o)=>Y(Zn([t],o),(s,a)=>Y(ke([t],a),(p,c)=>[`${s}`,c],()=>[]),()=>[]),()=>[])}function JR(e,t,n){return Y(ke([e],n),(r,o)=>Y(Zn([oo,t],o),(s,a)=>Y(ke([t],a),(p,c)=>[`${s}`,c],()=>[]),()=>[]),()=>[])}function cy(e,t,n,r){return n?VR(e,t,Be(r)):JR(e,t,Be(r))}var xp=m(()=>{Ot();wn();ot();$n();xa()});function YR(e,t){return ke(e,t)}function XR(e,t){return cy(e,e,!1,t)}function ZR(e,t){return Y(YR(e,t),(n,r)=>XR(n,`${n}${r}`),()=>[])}function ha(e,t){return ZR(e,Be(t))}var ly=m(()=>{Ot();$n();wn();xp()});function dy(e,t){return Y(Zn(e,t),(n,r)=>te(n,"")?[]:[n,r],()=>[])}var fy=m(()=>{Cn();Ot();xa()});var gy=m(()=>{ty();ny();sy();lp();my();uy();xp();ly();fa();gp();fy();xa()});var i,eO,tO,nO,rO,yy,Iy,oO,Ip,by,sO,iO,aO,$y,wy,ky,mO,uO,pO,Ty,cO,lO,dO,fO,gO,Ey,xO,hO,yO,hp,vy,bp,IO,bO,$O,wO,kO,TO,EO,Sy,vO,SO,PO,RO,Py,Ry,Oy,Ay,ya,OO,AO,MO,CO,ne,LO,jO,FO,DO,My,Cy,Ly,jy,Ia,Fy,NO,$p,qO,_O,xy,Dy,Ny,UO,GO,KO,WO,zO,BO,hy,qy,_y,Uy,HO,VO,JO,YO,XO,ZO,QO,eA,tA,nA,rA,oA,sA,Gy,Ky,iA,Wy,zy,aA,mA,wp,uA,pA,cA,lA,dA,fA,gA,xA,By,yp,kp,eg,Hy,hA,Vy,yA,IA,bA,$A,wA,Jy,Yy,kA,Tp,TA,Xy,Ti=m(()=>{Kh();gy();i=(e,t,n=()=>[])=>e.length===2?t(e):n(),eO=e=>i(i(ve(e),([t,n])=>i(d("extends",n),([r,o])=>i(ne(o),([s,a])=>i(d("=",a),([p,c])=>i(ne(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[Jg(t),n]),tO=e=>i(i(ve(e),([t,n])=>i(d("extends",n),([r,o])=>i(ne(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Yg(t),n]),nO=e=>i(i(ve(e),([t,n])=>i(d("=",n),([r,o])=>i(ne(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Xg(t),n]),rO=e=>i(ve(e),([t,n])=>[Zg(t),n]),yy=e=>i(i(eO(e),([t,n])=>[t,n],()=>i(tO(e),([t,n])=>[t,n],()=>i(nO(e),([t,n])=>[t,n],()=>i(rO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Iy=(e,t=[])=>i(i(d(",",e),([n,r])=>i(yy(r),([o,s])=>[[n,o],s])),([n,r])=>Iy(r,[...t,n]),()=>[t,e]),oO=e=>i(i(i(yy(e),([t,n])=>i(Iy(n),([r,o])=>i(i(d(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Qg(t),n]),Ip=e=>i(i(d("<",e),([t,n])=>i(oO(n),([r,o])=>i(d(">",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[ex(t),n]),by=(e,t=[])=>i(i(d(",",e),([n,r])=>i(ne(r),([o,s])=>[[n,o],s])),([n,r])=>by(r,[...t,n]),()=>[t,e]),sO=e=>i(i(i(ne(e),([t,n])=>i(by(n),([r,o])=>i(i(d(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[tx(t),n]),iO=e=>i(i(d("<",e),([t,n])=>i(sO(n),([r,o])=>i(d(">",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[nx(t),n]),aO=e=>i(i(ve(e),([t,n])=>i(iO(n),([r,o])=>[[t,r],o])),([t,n])=>[rx(t),n]),$y=e=>i(i(i(d(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ox(t),n]),wy=e=>i(d("string",e),([t,n])=>[sx(t),n]),ky=e=>i(d("number",e),([t,n])=>[ix(t),n]),mO=e=>i(d("boolean",e),([t,n])=>[ax(t),n]),uO=e=>i(d("undefined",e),([t,n])=>[mx(t),n]),pO=e=>i(d("null",e),([t,n])=>[ux(t),n]),Ty=e=>i(d("integer",e),([t,n])=>[px(t),n]),cO=e=>i(d("bigint",e),([t,n])=>[cx(t),n]),lO=e=>i(d("unknown",e),([t,n])=>[lx(t),n]),dO=e=>i(d("any",e),([t,n])=>[dx(t),n]),fO=e=>i(d("object",e),([t,n])=>[fx(t),n]),gO=e=>i(d("never",e),([t,n])=>[gx(t),n]),Ey=e=>i(d("symbol",e),([t,n])=>[xx(t),n]),xO=e=>i(d("void",e),([t,n])=>[hx(t),n]),hO=e=>i(d("this",e),([t,n])=>[yx(t),n]),yO=e=>i(i(d("${",e),([t,n])=>i(ne(n),([r,o])=>i(d("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[kx(t),n]),hp=e=>i(Zn(["${","`"],e),([t,n])=>[Tx(t),n]),vy=e=>i(i(i(hp(e),([t,n])=>i(yO(n),([r,o])=>i(vy(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(i(hp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(hp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[Ex(t),n]),bp=e=>i(i(d("`",e),([t,n])=>i(vy(n),([r,o])=>i(d("`",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[vx(t),n]),IO=e=>i(bp(e),([t,n])=>[Sx(t),n]),bO=e=>i(i(i(d("if",e),([t,n])=>i(ne(n),([r,o])=>i(d("then",o),([s,a])=>i(ne(a),([p,c])=>i(d("else",c),([x,y])=>i(ne(y),([v,E])=>[[t,r,s,p,x,v],E])))))),([t,n])=>[t,n],()=>i(i(d("if",e),([t,n])=>i(ne(n),([r,o])=>i(d("then",o),([s,a])=>i(ne(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>[])),([t,n])=>[Px(t),n]),$O=e=>i(dp(e),([t,n])=>[Ix(t),n]),wO=e=>i(i(d("true",e),([t,n])=>[t,n],()=>i(d("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[bx(t),n]),kO=e=>i(ga(e),([t,n])=>[$x(t),n]),TO=e=>i(ha(["'",'"'],e),([t,n])=>[wx(t),n]),EO=e=>i(i(i(d("keyof",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Rx(t),n]),Sy=(e,t=[])=>i(i(i(d("[",e),([n,r])=>i(ne(r),([o,s])=>i(d("]",s),([a,p])=>[[n,o,a],p]))),([n,r])=>[n,r],()=>i(i(d("[",e),([n,r])=>i(d("]",r),([o,s])=>[[n,o],s])),([n,r])=>[n,r],()=>[])),([n,r])=>Sy(r,[...t,n]),()=>[t,e]),vO=e=>i(Sy(e),([t,n])=>[Ox(t),n]),SO=e=>i(i(i(d("extends",e),([t,n])=>i(ne(n),([r,o])=>i(d("?",o),([s,a])=>i(ne(a),([p,c])=>i(d(":",c),([x,y])=>i(ne(y),([v,E])=>[[t,r,s,p,x,v],E])))))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ax(t),n]),PO=e=>i(i(i(d("(",e),([t,n])=>i(ne(n),([r,o])=>i(d(")",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(wy(e),([t,n])=>[t,n],()=>i(ky(e),([t,n])=>[t,n],()=>i(mO(e),([t,n])=>[t,n],()=>i(uO(e),([t,n])=>[t,n],()=>i(pO(e),([t,n])=>[t,n],()=>i(Ty(e),([t,n])=>[t,n],()=>i(cO(e),([t,n])=>[t,n],()=>i(lO(e),([t,n])=>[t,n],()=>i(dO(e),([t,n])=>[t,n],()=>i(fO(e),([t,n])=>[t,n],()=>i(gO(e),([t,n])=>[t,n],()=>i(Ey(e),([t,n])=>[t,n],()=>i(xO(e),([t,n])=>[t,n],()=>i(hO(e),([t,n])=>[t,n],()=>i($O(e),([t,n])=>[t,n],()=>i(wO(e),([t,n])=>[t,n],()=>i(kO(e),([t,n])=>[t,n],()=>i(TO(e),([t,n])=>[t,n],()=>i(IO(e),([t,n])=>[t,n],()=>i(bO(e),([t,n])=>[t,n],()=>i(qO(e),([t,n])=>[t,n],()=>i(GO(e),([t,n])=>[t,n],()=>i(VO(e),([t,n])=>[t,n],()=>i(HO(e),([t,n])=>[t,n],()=>i(ZO(e),([t,n])=>[t,n],()=>i(aO(e),([t,n])=>[t,n],()=>i(QO(e),([t,n])=>[t,n],()=>[])))))))))))))))))))))))))))),([t,n])=>[Mx(t),n]),RO=e=>i(i(i(d("with",e),([t,n])=>i(Wy(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Cx(t),n]),Py=e=>i(i(EO(e),([t,n])=>i(PO(n),([r,o])=>i(vO(o),([s,a])=>i(SO(a),([p,c])=>i(RO(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[Lx(t),n]),Ry=e=>i(i(i(d("&",e),([t,n])=>i(Py(n),([r,o])=>i(Ry(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),Oy=e=>i(i(Py(e),([t,n])=>i(Ry(n),([r,o])=>[[t,r],o])),([t,n])=>[jx(t),n]),Ay=e=>i(i(i(d("|",e),([t,n])=>i(Oy(n),([r,o])=>i(Ay(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),ya=e=>i(i(Oy(e),([t,n])=>i(Ay(n),([r,o])=>[[t,r],o])),([t,n])=>[Fx(t),n]),OO=e=>i(i(d("readonly",e),([t,n])=>i(ya(n),([r,o])=>[[t,r],o])),([t,n])=>[Dx(t),n]),AO=e=>i(i(d("|",e),([t,n])=>i(ya(n),([r,o])=>[[t,r],o])),([t,n])=>[Nx(t),n]),MO=e=>i(i(Ip(e),([t,n])=>i(d("=",n),([r,o])=>i(ne(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[qx(t),n]),CO=e=>i(i(i(d("infer",e),([t,n])=>i(ve(n),([r,o])=>i(d("extends",o),([s,a])=>i(ya(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(d("infer",e),([t,n])=>i(ve(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>[])),([t,n])=>[_x(t),n]),ne=e=>i(i(CO(e),([t,n])=>[t,n],()=>i(AO(e),([t,n])=>[t,n],()=>i(OO(e),([t,n])=>[t,n],()=>i(ya(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),LO=e=>i(ga(e),([t,n])=>[Ux(t),n]),jO=e=>i(ve(e),([t,n])=>[t,n]),FO=e=>i(ha(["'",'"'],e),([t,n])=>[t,n]),DO=e=>i(i(d("[",e),([t,n])=>i(ve(n),([r,o])=>i(d(":",o),([s,a])=>i(i(Ty(a),([p,c])=>[p,c],()=>i(ky(a),([p,c])=>[p,c],()=>i(wy(a),([p,c])=>[p,c],()=>i(Ey(a),([p,c])=>[p,c],()=>[])))),([p,c])=>i(d("]",c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[Gx(t),n]),My=e=>i(i(LO(e),([t,n])=>[t,n],()=>i(jO(e),([t,n])=>[t,n],()=>i(FO(e),([t,n])=>[t,n],()=>i(DO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),Cy=e=>i(i(i(d("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Kx(t),n]),Ly=e=>i(i(i(d("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Wx(t),n]),jy=e=>i(i(Cy(e),([t,n])=>i(My(n),([r,o])=>i(Ly(o),([s,a])=>i(d(":",a),([p,c])=>i(ne(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[zx(t),n]),Ia=e=>i(i(i(d(",",e),([t,n])=>i(d(`
11
+ `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(d(";",e),([t,n])=>i(d(`
12
+ `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(d(",",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(d(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(d(`
13
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))))),([t,n])=>[t,n]),Fy=(e,t=[])=>i(i(Ia(e),([n,r])=>i(jy(r),([o,s])=>[[n,o],s])),([n,r])=>Fy(r,[...t,n]),()=>[t,e]),NO=e=>i(i(i(jy(e),([t,n])=>i(Fy(n),([r,o])=>i(i(Ia(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Bx(t),n]),$p=e=>i(i(d("{",e),([t,n])=>i(NO(n),([r,o])=>i(d("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Vx(t),n]),qO=e=>i($p(e),([t,n])=>[Jx(t),n]),_O=e=>i(i(i(ve(e),([t,n])=>i(d("?",n),([r,o])=>i(d(":",o),([s,a])=>i(d("readonly",a),([p,c])=>i(ne(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[t,n],()=>i(i(ve(e),([t,n])=>i(d(":",n),([r,o])=>i(d("readonly",o),([s,a])=>i(ne(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(ve(e),([t,n])=>i(d("?",n),([r,o])=>i(d(":",o),([s,a])=>i(ne(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[t,n],()=>i(i(ve(e),([t,n])=>i(d(":",n),([r,o])=>i(ne(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>[])))),([t,n])=>[Yx(t),n]),xy=e=>i(i(_O(e),([t,n])=>[t,n],()=>i(i(Cy(e),([t,n])=>i(ne(n),([r,o])=>i(Ly(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>[])),([t,n])=>[Xx(t),n]),Dy=e=>i(i(i(d("...",e),([t,n])=>i(xy(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(xy(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[Zx(t),n]),Ny=(e,t=[])=>i(i(d(",",e),([n,r])=>i(Dy(r),([o,s])=>[[n,o],s])),([n,r])=>Ny(r,[...t,n]),()=>[t,e]),UO=e=>i(i(i(Dy(e),([t,n])=>i(Ny(n),([r,o])=>i(i(d(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Qx(t),n]),GO=e=>i(i(d("[",e),([t,n])=>i(UO(n),([r,o])=>i(d("]",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[eh(t),n]),KO=e=>i(i(ve(e),([t,n])=>i(d("?",n),([r,o])=>i(d(":",o),([s,a])=>i(d("readonly",a),([p,c])=>i(ne(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[th(t),n]),WO=e=>i(i(ve(e),([t,n])=>i(d(":",n),([r,o])=>i(d("readonly",o),([s,a])=>i(ne(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[nh(t),n]),zO=e=>i(i(ve(e),([t,n])=>i(d("?",n),([r,o])=>i(d(":",o),([s,a])=>i(ne(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[rh(t),n]),BO=e=>i(i(ve(e),([t,n])=>i(d(":",n),([r,o])=>i(ne(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[oh(t),n]),hy=e=>i(i(KO(e),([t,n])=>[t,n],()=>i(WO(e),([t,n])=>[t,n],()=>i(zO(e),([t,n])=>[t,n],()=>i(BO(e),([t,n])=>[t,n],()=>[])))),([t,n])=>[t,n]),qy=e=>i(i(i(d("...",e),([t,n])=>i(hy(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(hy(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[])),([t,n])=>[sh(t),n]),_y=(e,t=[])=>i(i(d(",",e),([n,r])=>i(qy(r),([o,s])=>[[n,o],s])),([n,r])=>_y(r,[...t,n]),()=>[t,e]),Uy=e=>i(i(i(qy(e),([t,n])=>i(_y(n),([r,o])=>i(i(d(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ih(t),n]),HO=e=>i(i(d("(",e),([t,n])=>i(Uy(n),([r,o])=>i(d(")",o),([s,a])=>i(d("=>",a),([p,c])=>i(ne(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[ah(t),n]),VO=e=>i(i(d("new",e),([t,n])=>i(d("(",n),([r,o])=>i(Uy(o),([s,a])=>i(d(")",a),([p,c])=>i(d("=>",c),([x,y])=>i(ne(y),([v,E])=>[[t,r,s,p,x,v],E])))))),([t,n])=>[mh(t),n]),JO=e=>i(i(i(d("+",e),([t,n])=>i(d("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(d("-",e),([t,n])=>i(d("readonly",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(d("readonly",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[uh(t),n]),YO=e=>i(i(i(d("+",e),([t,n])=>i(d("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(d("-",e),([t,n])=>i(d("?",n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(d("?",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])))),([t,n])=>[ph(t),n]),XO=e=>i(i(i(d("as",e),([t,n])=>i(ne(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[ch(t),n]),ZO=e=>i(i(d("{",e),([t,n])=>i(JO(n),([r,o])=>i(d("[",o),([s,a])=>i(ve(a),([p,c])=>i(d("in",c),([x,y])=>i(ne(y),([v,E])=>i(XO(E),([R,N])=>i(d("]",N),([U,H])=>i(YO(H),([ce,Re])=>i(d(":",Re),([ye,Ve])=>i(ne(Ve),([Ft,k])=>i($y(k),([Q,Tt])=>i(d("}",Tt),([Ge,Vt])=>[[t,r,s,p,x,v,R,U,ce,ye,Ft,Q,Ge],Vt]))))))))))))),([t,n])=>[lh(t),n]),QO=e=>i(ve(e),([t,n])=>[dh(t),n]),eA=e=>i(dp(e),([t,n])=>[fh(t),n]),tA=e=>i(ga(e),([t,n])=>[gh(t),n]),nA=e=>i(i(d("true",e),([t,n])=>[t,n],()=>i(d("false",e),([t,n])=>[t,n],()=>[])),([t,n])=>[xh(t),n]),rA=e=>i(ha(['"',"'"],e),([t,n])=>[t,n]),oA=e=>i(d("null",e),([t,n])=>[hh(t),n]),sA=e=>i(d("undefined",e),([t,n])=>[void 0,n]),Gy=e=>i(i(My(e),([t,n])=>i(d(":",n),([r,o])=>i(wp(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[yh(t),n]),Ky=(e,t=[])=>i(i(Ia(e),([n,r])=>i(Gy(r),([o,s])=>[[n,o],s])),([n,r])=>Ky(r,[...t,n]),()=>[t,e]),iA=e=>i(i(i(Gy(e),([t,n])=>i(Ky(n),([r,o])=>i(i(Ia(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ih(t),n]),Wy=e=>i(i(d("{",e),([t,n])=>i(iA(n),([r,o])=>i(d("}",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[bh(t),n]),zy=(e,t=[])=>i(i(d(",",e),([n,r])=>i(wp(r),([o,s])=>[[n,o],s])),([n,r])=>zy(r,[...t,n]),()=>[t,e]),aA=e=>i(i(i(wp(e),([t,n])=>i(zy(n),([r,o])=>i(i(d(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[$h(t),n]),mA=e=>i(i(d("[",e),([t,n])=>i(aA(n),([r,o])=>i(d("]",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[wh(t),n]),wp=e=>i(i(eA(e),([t,n])=>[t,n],()=>i(tA(e),([t,n])=>[t,n],()=>i(nA(e),([t,n])=>[t,n],()=>i(rA(e),([t,n])=>[t,n],()=>i(oA(e),([t,n])=>[t,n],()=>i(sA(e),([t,n])=>[t,n],()=>i(Wy(e),([t,n])=>[t,n],()=>i(mA(e),([t,n])=>[t,n],()=>[])))))))),([t,n])=>[t,n]),uA=e=>i(d("-?(?:0|[1-9][0-9]*)n",e),([t,n])=>[kh(t),n]),pA=e=>i(d(".*",e),([t,n])=>[Th(t),n]),cA=e=>i(d("-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?",e),([t,n])=>[Eh(t),n]),lA=e=>i(d("-?(?:0|[1-9][0-9]*)",e),([t,n])=>[vh(t),n]),dA=e=>i(d("(?!)",e),([t,n])=>[Sh(t),n]),fA=e=>i(dy(["-?(?:0|[1-9][0-9]*)n",".*","-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?","-?(?:0|[1-9][0-9]*)","(?!)","(",")","$","|"],e),([t,n])=>[Ph(t),n]),gA=e=>i(i(uA(e),([t,n])=>[t,n],()=>i(pA(e),([t,n])=>[t,n],()=>i(cA(e),([t,n])=>[t,n],()=>i(lA(e),([t,n])=>[t,n],()=>i(dA(e),([t,n])=>[t,n],()=>i(xA(e),([t,n])=>[t,n],()=>i(fA(e),([t,n])=>[t,n],()=>[]))))))),([t,n])=>[t,n]),xA=e=>i(i(d("(",e),([t,n])=>i(kp(n),([r,o])=>i(d(")",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Rh(t),n]),By=e=>i(i(i(yp(e),([t,n])=>i(d("|",n),([r,o])=>i(By(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i(i(yp(e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[]))),([t,n])=>[Oh(t),n]),yp=e=>i(i(gA(e),([t,n])=>i(kp(n),([r,o])=>[[t,r],o])),([t,n])=>[Ah(t),n]),kp=e=>i(i(By(e),([t,n])=>[t,n],()=>i(yp(e),([t,n])=>[t,n],()=>[])),([t,n])=>[t,n]),eg=e=>i(i(d("^",e),([t,n])=>i(kp(n),([r,o])=>i(d("$",o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Mh(t),n]),Hy=(e,t=[])=>i(i(d(",",e),([n,r])=>i(ne(r),([o,s])=>[[n,o],s])),([n,r])=>Hy(r,[...t,n]),()=>[t,e]),hA=e=>i(i(i(ne(e),([t,n])=>i(Hy(n),([r,o])=>i(i(d(",",o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Ch(t),n]),Vy=e=>i(i(i(d("extends",e),([t,n])=>i(hA(n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[Lh(t),n]),yA=e=>i(i(d("interface",e),([t,n])=>i(ve(n),([r,o])=>i(Ip(o),([s,a])=>i(Vy(a),([p,c])=>i($p(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[jh(t),n]),IA=e=>i(i(d("interface",e),([t,n])=>i(ve(n),([r,o])=>i(Vy(o),([s,a])=>i($p(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[Fh(t),n]),bA=e=>i(i(d("type",e),([t,n])=>i(ve(n),([r,o])=>i(Ip(o),([s,a])=>i(d("=",a),([p,c])=>i(ne(c),([x,y])=>[[t,r,s,p,x],y]))))),([t,n])=>[Dh(t),n]),$A=e=>i(i(d("type",e),([t,n])=>i(ve(n),([r,o])=>i(d("=",o),([s,a])=>i(ne(a),([p,c])=>[[t,r,s,p],c])))),([t,n])=>[Nh(t),n]),wA=e=>i(i(i(d("export",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[qh(t),n]),Jy=e=>i(i(i(d(";",e),([t,n])=>i(d(`
14
+ `,n),([r,o])=>[[t,r],o])),([t,n])=>[t,n],()=>i(i(d(";",e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>i(i(d(`
15
+ `,e),([t,n])=>[[t],n]),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n]),Yy=(e,t=[])=>i(i(Jy(e),([n,r])=>i(Tp(r),([o,s])=>[[n,o],s])),([n,r])=>Yy(r,[...t,n]),()=>[t,e]),kA=e=>i(i(i(Tp(e),([t,n])=>i(Yy(n),([r,o])=>i(i(Jy(o),([s,a])=>[[s],a],()=>[[],o]),([s,a])=>[[t,r,s],a]))),([t,n])=>[t,n],()=>i([[],e],([t,n])=>[t,n],()=>[])),([t,n])=>[_h(t),n]),Tp=e=>i(i(wA(e),([t,n])=>i(i(yA(n),([r,o])=>[r,o],()=>i(IA(n),([r,o])=>[r,o],()=>i(bA(n),([r,o])=>[r,o],()=>i($A(n),([r,o])=>[r,o],()=>[])))),([r,o])=>i($y(o),([s,a])=>[[t,r,s],a]))),([t,n])=>[Uh(t),n]),TA=e=>i(i(Tp(e),([t,n])=>i(kA(n),([r,o])=>[[t,r],o])),([t,n])=>[Gh(t),n]),Xy=e=>i(i(TA(e),([t,n])=>[t,n],()=>i(MO(e),([t,n])=>[t,n],()=>i(ne(e),([t,n])=>[t,n],()=>[]))),([t,n])=>[t,n])});function Zy(e){let t=bp(`\`${e}\``);return u.IsEqual(t.length,2)?t[0]:je()}var Ep=m(()=>{gn();P();Ti()});function vA(e){return e.join("|")}function SA(e){return e.slice(1,e.length-1)}function PA(e,t,n){return Qn(t,`${n}${e}`)}function RA(e,t){return Qn(e,`${t}${Vf}`)}function OA(e,t){return Qn(e,`${t}${bi}`)}function AA(e,t){return Qn(e,`${t}${wi}`)}function MA(e,t){return ms(B([Z("false"),Z("true")]),e,t)}function CA(e,t){return Qn(e,`${t}${ki}`)}function LA(e,t,n){return Qn(t,`${n}${SA(e)}`)}function jA(e,t,n){let r=us(e,{});return ms(r,t,n)}function FA(e,t,n){let r=dt(e);return ms(r,t,n)}function Qy(e,t,n,r=[]){return u.ShiftLeft(e,(o,s)=>Qy(s,t,n,[...r,ms(o,[],"")]),()=>Qn(t,`${n}(${vA(r)})`))}function ms(e,t,n){return Qe(e)?FA(e.enum,t,n):pt(e)?OA(t,n):me(e)?PA(e.const,t,n):hn(e)?RA(t,n):Ut(e)?MA(t,n):Ae(e)?AA(t,n):lt(e)?CA(t,n):Ee(e)?LA(e.pattern,t,n):tI(e)?jA(e.parameters[0],t,n):C(e)?Qy(e.anyOf,t,n):Fd}function Qn(e,t){return u.ShiftLeft(e,(n,r)=>ms(n,r,t),()=>t)}function DA(e){return`^${Qn(e,"")}$`}function eI(e){let t=DA(e);return Si(t)}var vp=m(()=>{P();Qt();Oe();V();It();hr();Kt();ct();yn();Wn();Ke();Pi();z();ba()});function us(e,t){return K(e)?l.Update(eI(e),{},t):Wi(e,t)}function nI(e,t,n,r){let o=Lt(e,t,n);return us(o,r)}var ba=m(()=>{T();It();vp();j()});function Wi(e,t={}){return L("TemplateLiteral",[e],t)}function tI(e){return Ce(e)&&u.HasPropertyKey(e,"action")&&u.IsEqual(e.action,"TemplateLiteral")}function rI(e){return us(e,{})}function NA(e){let t=Zy(e);return rI(t)}function oI(e,t={}){let n=u.IsString(e)?NA(e):rI(e);return l.Update(n,{},t)}function Ee(e){return O(e,"TemplateLiteral")}var It=m(()=>{qo();P();W();se();Ep();ba()});var _={};Mt(_,{ExtendsFalse:()=>G,ExtendsTrue:()=>S,ExtendsUnion:()=>Sp,IsExtendsFalse:()=>qA,IsExtendsTrue:()=>iI,IsExtendsTrueLike:()=>io,IsExtendsUnion:()=>sI,Match:()=>he});function Sp(e){return l.Create({"~kind":"ExtendsUnion"},{inferred:e})}function sI(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"inferred")&&u.IsEqual(e["~kind"],"ExtendsUnion")&&u.IsObject(e.inferred)}function S(e){return l.Create({"~kind":"ExtendsTrue"},{inferred:e})}function iI(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"inferred")&&u.IsEqual(e["~kind"],"ExtendsTrue")&&u.IsObject(e.inferred)}function G(){return l.Create({"~kind":"ExtendsFalse"},{})}function qA(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.IsEqual(e["~kind"],"ExtendsFalse")}function io(e){return sI(e)||iI(e)}function he(e,t,n){return io(e)?t(e.inferred):n()}var ge=m(()=>{P();T()});function _A(e,t,n,r){return he(ee(e,n,r),o=>S(l.Assign(l.Assign(e,o),{[t]:n})),()=>G())}function UA(e,t){return S(e)}function GA(e,t,n,r,o){return he(ee(e,t,n),s=>he(ee(s,t,r),a=>S(a),()=>G()),()=>he(ee(e,t,o),s=>S(s),()=>G()))}function KA(e,t,n){let r=dt(n);return ee(e,t,r)}function aI(e,t,n){return u.ShiftLeft(n,(r,o)=>he(ee(e,t,r),s=>aI(s,t,o),()=>G()),()=>S(e))}function WA(e,t,n){let r=rt(n);return ee(e,t,r)}function mI(e,t,n){return u.ShiftLeft(n,(r,o)=>he(ee(e,t,r),s=>S(s),()=>mI(e,t,o)),()=>G())}function ue(e,t,n){return we(n)?UA(e,t):Te(n)?GA(e,t,n.if,n.then,n.else):Qe(n)?KA(e,t,n.enum):Pe(n)?_A(e,n.name,t,n.extends):X(n)?aI(e,t,n.allOf):Ee(n)?WA(e,t,n.pattern):C(n)?mI(e,t,n.anyOf):Se(n)?S(e):G()}var st=m(()=>{P();T();xt();Pt();Qt();_t();Le();It();V();Xe();wt();ge();z();z()});function uI(e,t,n){return Pe(n)?ue(e,t,n):we(n)?S(e):Se(n)?S(e):Sp(e)}var pI=m(()=>{_t();xt();Xe();st();ge()});function zA(e,t){let n=fr(e),r=fr(t);return n&&r||!n&&r?!0:!(n&&!r)}function cI(e,t,n,r){return be(r)?zA(t,r)?ee(e,n,r.items):G():ue(e,t,r)}var lI=m(()=>{ut();Go();st();wt();ge()});function dI(e,t,n){return hn(n)?S(e):ue(e,t,n)}var fI=m(()=>{hr();st();ge()});function gI(e,t,n){return Ut(n)?S(e):ue(e,t,n)}var xI=m(()=>{Wn();st();ge()});function BA(e,t,n,r,o){let s=Pe(r)?t:r,a=Pe(r)?r:t,p=nt(t),c=nt(r);return!p&&c?G():he(ee(e,s,a),x=>ps(x,n,o),()=>G())}function HA(e,t,n,r){return u.ShiftLeft(r,(o,s)=>BA(e,t,n,o,s),()=>nt(t)?S(e):G())}function VA(e,t,n){return u.ShiftLeft(t,(r,o)=>HA(e,r,o,n),()=>S(e))}function ps(e,t,n){return VA(e,t,n)}var Pp=m(()=>{P();_t();Kn();wt();ge()});function $a(e,t,n){return bn(n)?S(e):ee(e,t,n)}var Rp=m(()=>{wr();wt();ge()});function hI(e,t,n,r){return we(r)?S(e):Se(r)?S(e):Ne(r)?he(ps(e,t,r.parameters),o=>$a(o,n,r.instanceType),()=>G()):G()}var yI=m(()=>{xt();Dt();Xe();ge();Pp();Rp()});function II(e,t,n,r,o){return he(ee(e,t,o),()=>ee(e,n,o),()=>ee(e,r,o))}var bI=m(()=>{wt();ge()});function $I(e,t,n){let r=dt(t);return ee(e,r,n)}var wI=m(()=>{wt();z()});function kI(e,t,n,r){return we(r)?S(e):Se(r)?S(e):qe(r)?he(ps(e,t,r.parameters),o=>$a(o,n,r.returnType),()=>G()):G()}var TI=m(()=>{xt();Nt();Xe();ge();Pp();Rp()});function EI(e,t,n){return pt(n)?S(e):Ae(n)?S(e):ue(e,t,n)}var vI=m(()=>{yn();ct();st();ge()});function SI(e,t,n){let r=$e(t);return ee(e,r,n)}var PI=m(()=>{wt();cs()});function wa(e,t,n){return t===n?S(e):G()}function JA(e,t,n){return me(n)?wa(e,t,n.const):hn(n)?S(e):ue(e,Z(t),n)}function YA(e,t,n){return me(n)?wa(e,t,n.const):Ut(n)?S(e):ue(e,Z(t),n)}function XA(e,t,n){return me(n)?wa(e,t,n.const):Ae(n)?S(e):ue(e,Z(t),n)}function ZA(e,t,n){return me(n)?wa(e,t,n.const):lt(n)?S(e):ue(e,Z(t),n)}function RI(e,t,n){return u.IsBigInt(t.const)?JA(e,t.const,n):u.IsBoolean(t.const)?YA(e,t.const,n):u.IsNumber(t.const)?XA(e,t.const,n):u.IsString(t.const)?ZA(e,t.const,n):je()}var OI=m(()=>{P();ju();Oe();hr();Wn();ct();Kt();st();ge()});function AI(e,t,n){return Pe(n)?ue(e,t,n):S(e)}var MI=m(()=>{_t();st();ge()});function CI(e,t,n){return zr(n)?S(e):ue(e,t,n)}var LI=m(()=>{Br();st();ge()});function jI(e,t,n){return Ae(n)?S(e):ue(e,t,n)}var FI=m(()=>{ct();st();ge()});function QA(e,t,n){return nt(t)?nt(n)?S(e):G():S(e)}function eM(e,t,n){return Pe(n)&&Zt(n.extends)?G():he(ee(e,t,n),r=>QA(r,t,n),()=>G())}function tM(e,t){return e.reduce((n,r)=>r in t?io(t[r])?{...n,...t[r].inferred}:je():je(),{})}function nM(e,t,n){let r={};for(let a of u.Keys(n))r[a]=a in t?eM({},t[a],n[a]):nt(n[a])?Pe(n[a])?S(l.Assign(e,{[n[a].name]:n[a].extends})):S(e):G();let o=u.Values(r).every(a=>io(a)),s=o?tM(u.Keys(r),r):{};return o?S(s):G()}function rM(e,t,n){let r=nM(e,t,n);return io(r)?S(l.Assign(e,r.inferred)):G()}function oM(e,t,n){return rM(e,t,n)}function sM(e,t){return u.Keys(t).reduce((n,r)=>({...n,[r]:u.HasPropertyKey(e,r)?C(n[r])?B([...n[r].anyOf,t[r]]):B([e[r],t[r]]):t[r]}),e)}function DI(e,t,n,r){return u.ShiftLeft(t,(o,s)=>he(ee({},e[o],n),a=>DI(e,s,n,sM(r,a)),()=>G()),()=>S(r))}function iM(e,t,n,r){let o=u.Keys(t);return DI(t,o,r,e)}function NI(e,t,n){return tt(n)?iM(e,t,zt(n),ft(n)):ae(n)?oM(e,t,n.properties):ue(e,q(t),n)}var qI=m(()=>{gn();T();P();Kn();_t();Ke();pe();ze();V();wt();st();ge()});function aM(e,t){return u.IsEqual(u.Keys(t).length,0)?S(e):G()}function mM(e,t,n,r,o){return ee(e,n,o)}function _I(e,t,n,r){return tt(r)?mM(e,Ni(t),n,Ni(zt(r)),ft(r)):ae(r)?aM(e,r.properties):we(r)?S(e):Se(r)?S(e):G()}var UI=m(()=>{P();xt();Xe();pe();ze();wt();ge()});function GI(e,t,n){return lt(n)?S(e):ue(e,t,n)}var KI=m(()=>{Kt();st();ge()});function WI(e,t,n){return zn(n)?S(e):ue(e,t,n)}var zI=m(()=>{Ir();st();ge()});function BI(e,t,n){let r=rt(t);return ee(e,r,n)}var HI=m(()=>{wt();z()});function Op(e,t){return l.Create({"~kind":"Inferrable"},{name:e,type:t},{})}function ls(e){return u.IsObject(e)&&u.HasPropertyKey(e,"~kind")&&u.HasPropertyKey(e,"name")&&u.HasPropertyKey(e,"type")&&u.IsEqual(e["~kind"],"Inferrable")&&u.IsString(e.name)&&u.IsObject(e.type)}function Ap(e){return Yn(e)?Pe(e.items)?be(e.items.extends)?Op(e.items.name,e.items.extends.items):Se(e.items.extends)?Op(e.items.name,e.items.extends):void 0:je():void 0}function ka(e){return Pe(e)?Op(e.name,e.extends):void 0}function Mp(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>he(ee({},r,t),()=>Mp(o,t,[...n,r]),()=>{}),()=>n)}function VI(e,t,n,r){let o=Mp(n,r);return u.IsArray(o)?S(l.Assign(e,{[t]:Me(o)})):G()}function Ta(e,t,n,r){let o=Mp(n,r);return u.IsArray(o)?S(l.Assign(e,{[t]:B(o)})):G()}var Cp=m(()=>{gn();T();P();ut();Xe();Fe();wt();V();_t();Xr();ge()});function uM(e){return[...e].reverse()}function Lp(e,t){return t?uM(e):e}function pM(e){let t=e.length>0?e[0]:void 0,n=Ce(t)?Ap(t):void 0;return Ce(n)}function cM(e,t,n,r,o,s){return he(ee(e,n,o),a=>JI(a,t,r,s),()=>G())}function lM(e,t,n,r,o){let s=Ap(r);return ls(s)?VI(e,s.name,Lp(n,t),s.type):u.ShiftLeft(n,(a,p)=>cM(e,t,a,p,r,o),()=>G())}function dM(e,t,n,r){return u.ShiftLeft(r,(o,s)=>lM(e,t,n,o,s),()=>u.IsEqual(n.length,0)?S(e):G())}function JI(e,t,n,r){return dM(e,t,n,r)}function fM(e,t,n){let r=er(e,xe([],[]),n),o=pM(r);return JI(e,o,Lp(t,o),Lp(r,o))}function YI(e,t,n){let r=ka(n);return ls(r)?Ta(e,r.name,t,r.type):u.ShiftLeft(t,(o,s)=>he(ee(e,o,n),a=>YI(a,s,n),()=>G()),()=>S(e))}function XI(e,t,n){let r=er(e,xe([],[]),t);return fe(n)?fM(e,r,n.items):be(n)?YI(e,r,n.items):ue(e,Me(r),n)}var ZI=m(()=>{P();W();ut();Fe();wt();st();ge();j();j();Cp()});function QI(e,t,n){return bn(n)?S(e):Qr(n)?S(e):ue(e,t,n)}var eb=m(()=>{eo();wr();st();ge()});function tb(e,t,n){return u.ShiftLeft(n,(r,o)=>he(ee(e,t,r),s=>S(s),()=>tb(e,t,o)),()=>G())}function jp(e,t,n){return u.ShiftLeft(t,(r,o)=>he(tb(e,r,n),s=>jp(s,o,n),()=>G()),()=>S(e))}function nb(e,t,n){let r=ka(n);return ls(r)?Ta(e,r.name,t,r.type):C(n)?jp(e,t,n.anyOf):jp(e,t,[n])}var rb=m(()=>{P();V();wt();ge();Cp()});function ob(e,t,n){return Pe(n)?ue(e,t,n):we(n)?S(e):Se(n)?S(e):G()}var sb=m(()=>{xt();Xe();_t();st();ge()});function ib(e,t,n){return bn(n)?S(e):ue(e,t,n)}var ab=m(()=>{wr();st();ge()});function ee(e,t,n){return we(t)?uI(e,t,n):be(t)?cI(e,t,t.items,n):hn(t)?dI(e,t,n):Ut(t)?gI(e,t,n):Ne(t)?hI(e,t.parameters,t.instanceType,n):Te(t)?II(e,t.if,t.then,t.else,n):Qe(t)?$I(e,t.enum,n):qe(t)?kI(e,t.parameters,t.returnType,n):pt(t)?EI(e,t,n):X(t)?SI(e,t.allOf,n):me(t)?RI(e,t,n):Zt(t)?AI(e,t,n):zr(t)?CI(e,t,n):Ae(t)?jI(e,t,n):ae(t)?NI(e,t.properties,n):tt(t)?_I(e,zt(t),ft(t),n):lt(t)?GI(e,t,n):zn(t)?WI(e,t,n):Ee(t)?BI(e,t.pattern,n):fe(t)?XI(e,t.items,n):Qr(t)?QI(e,t,n):C(t)?nb(e,t.anyOf,n):Se(t)?ob(e,t,n):bn(t)?ib(e,t,n):G()}var wt=m(()=>{pI();lI();fI();xI();yI();bI();wI();TI();vI();PI();OI();MI();LI();FI();qI();UI();KI();zI();HI();ZI();eb();rb();sb();ab();xt();ut();hr();Wn();Dt();Pt();Qt();Nt();yn();Le();Oe();Ke();Br();ct();pe();ze();Kt();Ir();It();Fe();eo();Xe();V();wr();ge()});function gM(e,t){return $e([...e,q(t)])}function Fp(e,t,n){return K(e)?l.Update(gM(e,t),{},n):rs(e,t,n)}function mb(e,t,n,r,o){let s=Lt(e,t,n),a=ds(e,t,r);return Fp(s,a,o)}var Ea=m(()=>{T();pe();z();no();j();j();j()});function rs(e,t,n={}){return L("Interface",[e,t],n)}function ao(e){return Ce(e)&&u.HasPropertyKey(e,"action")&&u.IsEqual(e.action,"Interface")}function ub(e,t,n={}){return Fp(e,t,n)}var fs=m(()=>{P();W();se();Ea()});function xM(e,t,n){return e.includes(n)?!0:gs([...e,n],t,t[n])}function pb(e,t,n){let r=di(n);return Tr(e,t,r)}function Tr(e,t,n){return u.ShiftLeft(n,(r,o)=>gs(e,t,r)?!0:Tr(e,t,o),()=>!1)}function gs(e,t,n){return _e(n)?xM(e,t,n.$ref):be(n)?gs(e,t,n.items):Ne(n)?Tr(e,t,[...n.parameters,n.instanceType]):qe(n)?Tr(e,t,[...n.parameters,n.returnType]):ao(n)?pb(e,t,n.parameters[1]):X(n)?Tr(e,t,n.allOf):ae(n)?pb(e,t,n.properties):C(n)?Tr(e,t,n.anyOf):fe(n)?Tr(e,t,n.items):tt(n)?gs(e,t,ft(n)):!1}function cb(e,t,n){return gs(e,t,n)}var Dp=m(()=>{P();ut();Dt();Nt();Le();pe();lr();ze();Fe();V();qt();fs()});function hM(e,t){return t.reduce((n,r)=>cb([r],e,e[r])?[...n,r]:n,[])}function lb(e){let t=li(e);return hM(e,t)}var Np=m(()=>{lr();Dp()});function yM(e,t,n){return n.includes(t)?n:t in e?xs(e,e[t],[...n,t]):je()}function db(e,t,n){let r=di(t);return mo(e,r,n)}function mo(e,t,n){return t.reduce((r,o)=>xs(e,o,r),n)}function xs(e,t,n){return _e(t)?yM(e,t.$ref,n):be(t)?xs(e,t.items,n):Ne(t)?mo(e,[...t.parameters,t.instanceType],n):qe(t)?mo(e,[...t.parameters,t.returnType],n):ao(t)?db(e,t.parameters[1],n):X(t)?mo(e,t.allOf,n):ae(t)?db(e,t.properties,n):C(t)?mo(e,t.anyOf,n):fe(t)?mo(e,t.items,n):tt(t)?xs(e,ft(t),n):n}function fb(e,t,n){return xs(e,n,[t])}var qp=m(()=>{gn();ut();Dt();Nt();Le();pe();lr();ze();Fe();V();qt();fs()});function IM(e){return Ur()}function bM(e){return u.Keys(e).reduce((t,n)=>({...t,[n]:Er(e[n])}),{})}function hs(e){return e.reduce((t,n)=>[...t,Er(n)],[])}function Er(e){return _e(e)?IM(e.$ref):be(e)?Ct(Er(e.items),ci(e)):Ne(e)?pn(hs(e.parameters),Er(e.instanceType)):qe(e)?cn(hs(e.parameters),Er(e.returnType)):X(e)?yt(hs(e.allOf)):ae(e)?q(bM(e.properties)):tt(e)?Di(Yr(e),Er(ft(e))):C(e)?B(hs(e.anyOf)):fe(e)?Me(hs(e.items)):e}function $M(e,t){return t in e?Er(e[t]):We()}function gb(e){return $M(e.$defs,e.$ref)}var xb=m(()=>{P();xt();ut();Dt();Nt();Le();pe();ze();qt();Fe();V();Xe()});function wM(e,t,n){let r=Lt(e,xe([],[]),t),o=ds({},xe([],[]),n);return $e([...r,q(o)])}function kM(e,t){return u.Keys(e).filter(r=>t.includes(r)).reduce((r,o)=>{let s=e[o],a=ao(s)?wM(e,s.parameters[0],s.parameters[1]):s;return{...r,[o]:a}},{})}function hb(e,t,n){let r=fb(e,t,n),o=kM(e,r);return dn(o,t)}var _p=m(()=>{P();ht();pe();qp();no();j();j();j();z()});function yb(e,t){return t in e?_e(e[t])?yb(e,e[t].$ref):e[t]:le()}function kn(e,t){return yb(e,t)}var vr=m(()=>{Ke();qt()});var Up=m(()=>{Np();Dp();qp();xb();_p();vr()});function Ib(e){return Ze(e)?gb(e):fi(e)?We():e}function et(e,t,n){let r=Ib(t),o=Ib(n);return ee(e,r,o)}var bb=m(()=>{ht();Xe();gi();wt();Up()});var In=m(()=>{bb();ge()});function Zo(e,t){let n=[et({},e,t),et({},t,e)];return _.IsExtendsTrueLike(n[0])&&_.IsExtendsTrueLike(n[1])?Yo:_.IsExtendsTrueLike(n[0])&&_.IsExtendsFalse(n[1])?Xo:_.IsExtendsFalse(n[0])&&_.IsExtendsTrueLike(n[1])?Mi:va}var Yo,va,Xo,Mi,Qo=m(()=>{In();Yo=0,va=1,Xo=2,Mi=3});function Gp(e,t,n=[],r=t){return u.ShiftLeft(t,(o,s)=>{let a=Zo(e,o);return u.IsEqual(a,Xo)||u.IsEqual(a,Yo)?r:u.IsEqual(a,va)?Gp(e,s,[...n,o],r):Gp(e,s,n,r)},()=>[...n,e])}function TM(e,t,n){let r=Wt(e);return we(r)?[r]:Se(r)?[r]:Zt(r)?Sa(t,n):ae(r)?Sa(t,[...n,r]):Sa(t,Gp(r,n))}function Sa(e,t=[]){return u.ShiftLeft(e,(n,r)=>TM(n,r,t),()=>t)}function rp(e){let t=Sa(e);return Jr(t)}var op=m(()=>{P();xt();Ke();pe();Xe();Qo();Li();z()});function Kp(e,t){return l.Update(Wt(e),{},t)}function $b(e,t,n,r){let o=$(e,t,n);return Kp(o,r)}var Pa=m(()=>{T();j();z()});var cs=m(()=>{op();Qo();Qu();tp();z();Li();Pa();ep()});function ys(e,t=[]){return Un(e)&&u.IsEqual(e.action,"Conditional")?_e(e.parameters[0])?ys(e.parameters[2],ys(e.parameters[3],[...t,e.parameters[0].$ref])):ys(e.parameters[2],ys(e.parameters[3],t)):Un(e)&&u.IsEqual(e.action,"Mapped")&&Un(e.parameters[1])&&u.IsEqual(e.parameters[1].action,"KeyOf")&&_e(e.parameters[1].parameters[0])?[...t,e.parameters[1].parameters[0].$ref]:t}function EM(e,t){return e.reduce((n,r)=>[...n,t.includes(r.name)],[])}function Tb(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>u.ShiftLeft(t,(s,a)=>Tb(o,a,[...n,[s,r]]),()=>n),()=>n)}function vM(e){return Ee(e)?rt(e.pattern):Qe(e)?dt(e.enum):e}function SM(e){let t=vM(e);return C(t)?[...t.anyOf]:[t]}function PM(e,t){return e.reduce((n,r)=>[...n,[...r,t]],[])}function wb(e,t){return t.reduce((n,r)=>[...n,...PM(e,r)],[])}function kb(e){return e.reduce((t,n)=>u.IsEqual(n[0],!0)?wb(t,SM(n[1])):wb(t,[n[1]]),[[]])}function Eb(e,t,n){let r=ys(n),o=EM(e,r),s=Tb(t,o);return Un(n)&&u.IsEqual(n.action,"Conditional")||Un(n)&&u.IsEqual(n.action,"Mapped")?kb(s):[t]}var vb=m(()=>{P();V();se();Qt();It();qt();z();z()});function RM(){return["(not-resolvable)",le()]}function OM(){return["(not-generic)",le()]}function AM(e,t,n){return[e,Gn(t,n)]}function MM(e,t,n){return t in e?Sb(e,t,e[t],n):RM()}function Sb(e,t,n,r){return _r(n)?AM(t,n.parameters,n.expression):_e(n)?MM(e,n.$ref,r):OM()}function Pb(e,t,n){return Sb(e,"(anonymous)",t,n)}var Rb=m(()=>{Fo();qt();Ke()});function CM(e,t,n){if(Pe(t)||uo(t)||_.IsExtendsTrueLike(et({},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 Ob(e,t,n,r,o){let s=$(e,t,o);return CM(n,s,r),l.Assign(e,{[n]:s})}function LM(e,t,n,r,o){let s=$(e,t,n.extends),a=$(e,t,n.equals);return u.ShiftLeft(o,(p,c)=>Wp(Ob(e,t,n.name,s,p),t,r,c),()=>Wp(Ob(e,t,n.name,s,a),t,r,[]))}function Wp(e,t,n,r){return u.ShiftLeft(n,(o,s)=>LM(e,t,o,s,r),()=>e)}function Ab(e,t,n,r){return Wp(e,t,n,r)}var Mb=m(()=>{P();T();j();In();_t();to()});function jM(){if(!u.IsLessThan(Bp,Xt.Get().maxInstantiationCount))throw Error("Type instantiation is excessively deep and possibly infinite")}function FM(){jM(),Bp++,zp++}function DM(){zp--,u.IsEqual(zp,0)&&(Bp=0)}function NM(e){return u.IsGreaterThan(e.callstack.length,0)?e.callstack[e.callstack.length-1]:""}function qM(e,t){return u.IsEqual(NM(e),t)}function _M(e,t,n,r,o,s){FM();try{let a=Ab(e,t,r,s),p=$(a,xe([...t.callstack,n.$ref],t.visited),o);return $(a,xe([],[]),p)}finally{DM()}}function UM(e,t,n,r,o,s){return s.reduce((a,p)=>{let c=_M(e,t,n,r,o,p);return[...a,c]},[])}function GM(e,t,n,r,o,s){let a=Eb(r,s,o),p=UM(e,t,n,r,o,a);return u.IsEqual(p.length,1)?p[0]:$t(p)}function Ra(e,t,n,r){let o=Lt(e,t,r),s=Pb(e,n,r),a=s[0],p=s[1];return _r(p)?qM(t,a)?os(An(a),o):GM(e,t,An(a),p.parameters,p.expression,o):os(n,o)}var zp,Bp,Hp=m(()=>{ur();P();to();qt();Fo();cs();j();j();j();vb();Rb();Mb();zp=0,Bp=0});function os(e,t){return l.Create({"~kind":"Call"},{type:"call",target:e,arguments:t},{})}function Cb(e,t){return Ra({},xe([],[]),e,t)}function uo(e){return O(e,"Call")}var to=m(()=>{T();W();Hp();j()});function KM(e){return l.Discard(e,["~immutable"])}function Lb(e,t){return l.Update(KM(e),{},t)}function jb(e,t,n,r){let o=$(e,t,n);return Lb(o,r)}var Vp=m(()=>{T();j()});function Fb(e,t){return e(t)}var Db=m(()=>{});function Nb(e,t){return u.IsString(t)?Z(Fb(e,t)):Z(t)}var qb=m(()=>{P();Oe();Db()});function _b(e,t){let n=rt(t);return Ln(e,n)}var Ub=m(()=>{Oa();cs()});function Gb(e,t){let n=t.map(r=>Ln(e,r));return B(n)}var Kb=m(()=>{V();Oa()});function Ln(e,t){return me(t)?Nb(e,t.const):Ee(t)?_b(e,t.pattern):C(t)?Gb(e,t.anyOf):t}var Oa=m(()=>{Oe();It();V();qb();Ub();Kb()});function zi(e,t={}){return L("Capitalize",[e],t)}function Wb(e,t={}){return Jp(e,t)}var Aa=m(()=>{se();Tn()});function Bi(e,t={}){return L("Lowercase",[e],t)}function zb(e,t={}){return Yp(e,t)}var Ma=m(()=>{se();Tn()});function Hi(e,t={}){return L("Uncapitalize",[e],t)}function Bb(e,t={}){return Xp(e,t)}var Ca=m(()=>{se();Tn()});function Vi(e,t={}){return L("Uppercase",[e],t)}function Hb(e,t={}){return Zp(e,t)}var La=m(()=>{se();Tn()});function Jp(e,t){return K([e])?l.Update(Ln(WM,e),{},t):zi(e,t)}function Yp(e,t){return K([e])?l.Update(Ln(zM,e),{},t):Bi(e,t)}function Xp(e,t){return K([e])?l.Update(Ln(BM,e),{},t):Hi(e,t)}function Zp(e,t){return K([e])?l.Update(Ln(HM,e),{},t):Vi(e,t)}function Vb(e,t,n,r){let o=$(e,t,n);return Jp(o,r)}function Jb(e,t,n,r){let o=$(e,t,n);return Yp(o,r)}function Yb(e,t,n,r){let o=$(e,t,n);return Xp(o,r)}function Xb(e,t,n,r){let o=$(e,t,n);return Zp(o,r)}var WM,zM,BM,HM,Tn=m(()=>{T();Oa();j();Aa();Ma();Ca();La();WM=e=>e[0].toUpperCase()+e.slice(1),zM=e=>e.toLowerCase(),BM=e=>e[0].toLowerCase()+e.slice(1),HM=e=>e.toUpperCase()});function Ji(e,t,n,r,o={}){return L("Conditional",[e,t,n,r],o)}function Zb(e,t,n,r,o={}){return Qp({},xe([],[]),e,t,n,r,o)}var ja=m(()=>{se();ec();j()});function VM(e,t,n,r,o,s){let a=et(e,n,r);return _.IsExtendsUnion(a)?B([$(a.inferred,t,o),$(e,t,s)]):_.IsExtendsTrue(a)?$(a.inferred,t,o):$(e,t,s)}function Qp(e,t,n,r,o,s,a){return K([n,r])?l.Update(VM(e,t,n,r,o,s),{},a):Ji(n,r,o,s,a)}function Qb(e,t,n,r,o,s,a){let p=$(e,t,n),c=$(e,t,r);return Qp(e,t,p,c,o,s,a)}var ec=m(()=>{T();V();In();j();ja()});var tc=m(()=>{ec()});function Yi(e,t={}){return L("ConstructorParameters",[e],t)}function e$(e,t={}){return nc(e,t)}var Fa=m(()=>{se();Da()});function JM(e){let t=Ne(e)?e.parameters:[],n=er({},xe([],[]),t);return Me(n)}function nc(e,t){return K([e])?l.Update(JM(e),{},t):Yi(e,t)}function t$(e,t,n,r){let o=$(e,t,n);return nc(o,r)}var Da=m(()=>{T();Dt();Fe();Fa();j();j();j()});function Xi(e,t,n={}){return L("Exclude",[e,t],n)}function n$(e,t,n={}){return Is(e,t,n)}var Na=m(()=>{se();bs()});function Is(e,t,n){return K([e,t])?l.Update(Ci(e,t),{},n):Xi(e,t,n)}function r$(e,t,n,r,o){let s=$(e,t,n),a=$(e,t,r);return Is(s,a,o)}var bs=m(()=>{T();j();Na();np()});function Zi(e,t,n={}){return L("Extract",[e,t],n)}function o$(e,t,n={}){return rc(e,t,n)}var qa=m(()=>{se();_a()});function YM(e,t){let n=et({},e,t);return _.IsExtendsTrueLike(n)?[e]:[]}function s$(e,t,n=[]){return u.ShiftLeft(e,(r,o)=>s$(o,t,[...n,...YM(r,t)]),()=>n)}function i$(e,t){let n=Wt(e),r=C(n)?n.anyOf:[n],o=s$(r,t);return $t(o)}var a$=m(()=>{P();V();In();z();z()});function rc(e,t,n){return K([e,t])?l.Update(i$(e,t),{},n):Zi(e,t,n)}function m$(e,t,n,r,o){let s=$(e,t,n),a=$(e,t,r);return rc(s,a,o)}var _a=m(()=>{T();j();qa();a$()});function XM(e){return e.reduce((t,n)=>$i(n)?[...t,Z(n)]:t,[])}function po(e){let t=XM(e);return B(t)}var $s=m(()=>{Oe();V()});function ss(e,t,n={}){return L("Index",[e,t],n)}function u$(e,t,n={}){let r=u.IsArray(t)?po(t):t;return sc(e,r,n)}var oc=m(()=>{P();se();$s();Ua()});function p$(e,t){let n=kn(e,t);return jt(n)}var c$=m(()=>{Sr();vr()});function l$(e,t,n){let r=tn(e,t,n);return jt(r)}var d$=m(()=>{Sr();z()});function ZM(e,t){let n=u.Keys(e).filter(y=>!u.HasPropertyKey(t,y)),r=u.Keys(t).filter(y=>!u.HasPropertyKey(e,y)),o=u.Keys(e).filter(y=>u.HasPropertyKey(t,y)),s=n.reduce((y,v)=>({...y,[v]:e[v]}),{}),a=r.reduce((y,v)=>({...y,[v]:t[v]}),{}),p=o.reduce((y,v)=>({...y,[v]:$e([e[v],t[v]])}),{}),c=l.Assign(s,a);return l.Assign(c,p)}function f$(e){return e.reduce((t,n)=>ZM(t,jt(n)),{})}var g$=m(()=>{T();P();Sr();z()});var x$=m(()=>{});function h$(e){let t=yg(Me(e));return jt(t)}var y$=m(()=>{Fe();Xu();Sr()});function QM(e,t){return u.Keys(e).filter(o=>o in t).reduce((o,s)=>({...o,[s]:$t([e[s],t[s]])}),{})}function I$(e,t){return u.ShiftLeft(e,(n,r)=>I$(r,QM(t,jt(n))),()=>t)}function b$(e){return u.ShiftLeft(e,(t,n)=>I$(n,jt(t)),()=>je())}var $$=m(()=>{P();gn();z();Sr()});function jt(e){return Ze(e)?p$(e.$defs,e.$ref):Te(e)?l$(e.if,e.then,e.else):X(e)?f$(e.allOf):C(e)?b$(e.anyOf):fe(e)?h$(e.items):ae(e)?e.properties:{}}var Sr=m(()=>{ht();Pt();Le();pe();Fe();V();c$();d$();g$();x$();y$();$$()});function co(e){let t=jt(e);return q(t)}var w$=m(()=>{pe();Sr()});var ws=m(()=>{w$()});function lo(e){let t=`${e}`;return eC.test(t)?parseInt(t):e}var eC,ks=m(()=>{eC=new RegExp("^(?:0|[1-9][0-9]*)$")});function tC(e){return Z(lo(e))}function k$(e){return e.map(t=>T$(t))}function T$(e){return X(e)?yt(k$(e.allOf)):C(e)?B(k$(e.anyOf)):me(e)?tC(e.const):e}function E$(e,t){let n=T$(t),r=et({},n,Rt());return _.IsExtendsTrueLike(r)?e:me(t)&&u.IsEqual(t.const,"length")?Rt():le()}var v$=m(()=>{P();Le();V();Oe();ct();Ke();In();ks()});function S$(e,t){let n=kn(e,t);return At(n)}var P$=m(()=>{tr();vr()});function R$(e,t,n){let r=tn(e,t,n);return At(r)}var O$=m(()=>{tr();z()});function A$(e){let t=dt(e);return At(t)}var M$=m(()=>{tr();z()});function C$(e){let t=$e(e);return At(t)}var L$=m(()=>{z();tr()});function j$(e){return[`${e}`]}var F$=m(()=>{});function D$(e){let t=rt(e);return At(t)}var N$=m(()=>{tr();z()});function q$(e){return e.reduce((t,n)=>[...t,...At(n)],[])}var _$=m(()=>{tr()});function At(e){return Ze(e)?S$(e.$defs,e.$ref):Te(e)?R$(e.if,e.then,e.else):Qe(e)?A$(e.enum):X(e)?C$(e.allOf):me(e)?j$(e.const):Ee(e)?D$(e.pattern):C(e)?q$(e.anyOf):[]}var tr=m(()=>{ht();Pt();Qt();Le();Oe();It();V();P$();O$();M$();L$();F$();N$();_$()});function fo(e){return At(e)}var Ga=m(()=>{tr()});function Ts(e,t){return t.map(n=>Es(e,n))}function Es(e,t){return be(t)?Ct(Es(e,t.items)):Ne(t)?pn(Ts(e,t.parameters),Es(e,t.instanceType)):qe(t)?cn(Ts(e,t.parameters),Es(e,t.returnType)):fe(t)?Me(Ts(e,t.items)):C(t)?B(Ts(e,t.anyOf)):X(t)?yt(Ts(e,t.allOf)):_i(t)?q(e):t}function U$(e,t){return Es(e,t)}var G$=m(()=>{ut();Dt();Nt();Le();pe();Fe();Ui();V()});function nC(e,t){let n=t in e?e[t]:le();return U$(e,n)}function K$(e,t){return t.reduce((n,r)=>[...n,nC(e,r)],[])}function rC(e,t){let n=fo(t),r=K$(e,n);return $t(r)}function sC(e){return e.filter(n=>oC.test(n))}function iC(e){let t=li(e),n=sC(t),r=K$(e,n);return $t(r)}function W$(e,t){return Ae(t)?iC(e):rC(e,t)}var oC,z$=m(()=>{ct();Ke();lr();z();Ga();ze();G$();oC=new RegExp(Jn)});function aC(e){return Z(lo(e))}function B$(e){return e.map(t=>ic(t))}function ic(e){return X(e)?yt(B$(e.allOf)):C(e)?B(B$(e.anyOf)):me(e)?aC(e.const):e}var H$=m(()=>{V();Le();Oe();ks()});function mC(e,t){return e.reduceRight((n,r,o)=>{let s=et({},Z(o),t);return _.IsExtendsTrueLike(s)?[r,...n]:n},[])}function uC(e,t){let n=ic(t),r=mC(e,n);return Hn(r)}function pC(e){return Hn(e)}function V$(e,t){return me(t)&&u.IsEqual(t.const,"length")?Z(e.length):Ae(t)||pt(t)?pC(e):uC(e,t)}var J$=m(()=>{P();Oe();ct();yn();z();In();H$()});function Y$(e,t){return be(e)?E$(e.items,t):ae(e)?W$(e.properties,t):fe(e)?V$(e.items,t):le()}var X$=m(()=>{ut();Ke();pe();Fe();v$();z$();J$()});function cC(e){return Ze(e)||Te(e)||X(e)||C(e)?co(e):e}function sc(e,t,n){return K([e,t])?l.Update(Y$(cC(e),t),{},n):ss(e,t,n)}function Z$(e,t,n,r,o){let s=$(e,t,n),a=$(e,t,r);return sc(s,a,o)}var Ua=m(()=>{T();ht();Pt();Le();V();j();oc();ws();X$()});function Qi(e,t={}){return L("InstanceType",[e],t)}function Q$(e,t={}){return ac(e,t)}var Ka=m(()=>{se();Wa()});function lC(e){return Ne(e)?e.instanceType:le()}function ac(e,t){return K([e])?l.Update(lC(e),{},t):Qi(e,t)}function ew(e,t,n,r={}){let o=$(e,t,n);return ac(o,r)}var Wa=m(()=>{T();Dt();Ke();Ka();j()});function is(e,t={}){return L("KeyOf",[e],t)}function tw(e,t={}){return mc(e,t)}var za=m(()=>{se();Ba()});function nw(){return B([Rt(),Gt(),Hr()])}var rw=m(()=>{ct();Kt();Ir();V()});function ow(e){return Rt()}var sw=m(()=>{ct()});function dC(e){return e.reduce((n,r)=>$i(r)?[...n,Z(lo(r))]:je(),[])}function iw(e){let t=u.Keys(e),n=dC(t);return Hn(n)}var aw=m(()=>{gn();P();Oe();ks();z()});function mw(e){return Yr(e)}var uw=m(()=>{ze()});function pw(e){let t=e.map((n,r)=>Z(r));return Hn(t)}var cw=m(()=>{Oe();z()});function lw(e){return we(e)?nw():be(e)?ow(e.items):ae(e)?iw(e.properties):tt(e)?mw(e):fe(e)?pw(e.items):le()}var dw=m(()=>{xt();ut();Ke();pe();ze();Fe();rw();sw();aw();uw();cw()});function fC(e){return Ze(e)||Te(e)||X(e)||C(e)?co(e):e}function mc(e,t){return K([e])?l.Update(lw(fC(e)),{},t):is(e,t)}function fw(e,t,n,r){let o=$(e,t,n);return mc(o,r)}var Ba=m(()=>{T();ht();Pt();Le();V();za();j();ws();dw()});function ns(e,t,n,r,o={}){return L("Mapped",[e,t,n,r],o)}function gw(e,t,n,r,o={}){return uc({},xe([],[]),e,t,n,r,o)}var Ha=m(()=>{se();Va();j()});function gC(e){let t=rt(e);return Ja(t)}function xC(e){return e.reduce((t,n)=>[...t,...Ja(n)],[])}function hC(e){let t=dt(e);return Ja(t)}function yC(e){return u.IsNumber(e)?[Z(`${e}`)]:[Z(e)]}function Ja(e){return Qe(e)?hC(e.enum):me(e)?yC(e.const):Ee(e)?gC(e.pattern):C(e)?xC(e.anyOf):[e]}function xw(e){return Ja(e)}var hw=m(()=>{P();Oe();Qt();It();V();z();z()});function IC(e){return Ee(e)?rt(e.pattern):e}function bC(e,t,n,r,o,s){let a=l.Assign(e,{[n.name]:r}),p=$(a,t,o),c=IC(p),x=$(a,t,s);return Yf(c)||Xf(c)?{[c.const]:x}:{}}function $C(e,t,n,r,o,s){return r.reduce((a,p)=>[...a,bC(e,t,n,p,o,s)],[])}function wC(e){return e.reduce((t,n)=>[...t,q(n)],[])}function yw(e,t,n,r,o,s){let a=xw(r),p=$C(e,t,n,a,o,s),c=wC(p);return $e(c)}var Iw=m(()=>{T();Oe();pe();It();j();z();z();hw()});function uc(e,t,n,r,o,s,a){return K([r])?l.Update(yw(e,t,n,r,o,s),{},a):ns(n,r,o,s,a)}function bw(e,t,n,r,o,s,a){let p=$(e,t,r);return uc(e,t,n,p,o,s,a)}var Va=m(()=>{T();Ha();j();Iw()});function kC(e,t,n){let r=l.Assign(e,t);return u.Keys(t).filter(s=>n.includes(s)).reduce((s,a)=>({...s,[a]:hb(r,a,t[a])}),{})}function TC(e,t,n){let r=l.Assign(e,t);return u.Keys(t).filter(s=>!n.includes(s)).reduce((s,a)=>({...s,[a]:$(r,xe([],[]),t[a])}),{})}function EC(e,t,n){let r=lb(t),o=kC(e,t,r),s=TC(e,t,r),a={...o,...s};return l.Update(a,{},n)}function Ya(e,t,n,r){return EC(e,n,r)}var Xa=m(()=>{P();T();j();Np();_p();j()});function ea(e,t={}){return L("NonNullable",[e],t)}function $w(e,t={}){return pc(e,t)}var Za=m(()=>{se();Qa()});function vC(e){let t=B([Wr(),Zr()]);return Is(e,t,{})}function pc(e,t){return K([e])?l.Update(vC(e),{},t):ea(e,t)}function ww(e,t,n,r){let o=$(e,t,n);return pc(o,r)}var Qa=m(()=>{T();Br();eo();V();bs();Za();j()});function ta(e,t,n={}){return L("Omit",[e,t],n)}function kw(e,t,n={}){let r=u.IsArray(t)?po(t):t;return cc(e,r,n)}var em=m(()=>{P();se();$s();tm()});function nm(e){let t=co(e);return ae(t)?t.properties:je()}var lc=m(()=>{gn();pe();ws()});function SC(e,t){return u.Keys(e).reduce((r,o)=>t.includes(o)?r:{...r,[o]:e[o]},{})}function Tw(e,t){let n=nm(e),r=fo(t),o=SC(n,r);return q(o)}var Ew=m(()=>{P();pe();Ga();lc()});function cc(e,t,n){return K([e,t])?l.Update(Tw(e,t),{},n):ta(e,t,n)}function vw(e,t,n,r,o){let s=$(e,t,n),a=$(e,t,r);return cc(s,a,o)}var tm=m(()=>{T();em();j();Ew()});function na(e,t={}){return L("Parameters",[e],t)}function Sw(e,t={}){return dc(e,t)}var rm=m(()=>{se();om()});function PC(e){let t=qe(e)?e.parameters:[],n=er({},xe([],[]),t);return Me(n)}function dc(e,t){return K([e])?l.Update(PC(e),{},t):na(e,t)}function Pw(e,t,n,r){let o=$(e,t,n);return dc(o,r)}var om=m(()=>{T();Nt();Fe();rm();j();j();j()});function ra(e,t={}){return L("Partial",[e],t)}function Rw(e,t={}){return fc(e,t)}var sm=m(()=>{se();im()});function Ow(e,t){let n=kn(e,t),r=En(n);return dn(l.Assign(e,{[t]:r}),t)}var Aw=m(()=>{T();ht();go();vr()});function Mw(e,t,n){let r=tn(e,t,n);return En(r)}var Cw=m(()=>{go();z()});function Lw(e){let t=$e(e);return En(t)}var jw=m(()=>{go();z()});function Fw(e){let t=e.map(n=>En(n));return B(t)}var Dw=m(()=>{V();go()});function Nw(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:cr(e[o])}),{});return q(t)}var qw=m(()=>{P();pe();Do()});function En(e){return Ze(e)?Ow(e.$defs,e.$ref):Te(e)?Mw(e.if,e.then,e.else):X(e)?Lw(e.allOf):C(e)?Fw(e.anyOf):ae(e)?Nw(e.properties):q({})}var go=m(()=>{ht();Pt();Le();pe();V();Aw();Cw();jw();Dw();qw()});function fc(e,t){return K([e])?l.Update(En(e),{},t):ra(e,t)}function _w(e,t,n,r){let o=$(e,t,n);return fc(o,r)}var im=m(()=>{T();sm();go();j()});function oa(e,t,n={}){return L("Pick",[e,t],n)}function Uw(e,t,n={}){let r=u.IsArray(t)?po(t):t;return gc(e,r,n)}var am=m(()=>{P();se();$s();mm()});function RC(e,t){return u.Keys(e).reduce((r,o)=>t.includes(o)?l.Assign(r,{[o]:e[o]}):r,{})}function Gw(e,t){let n=nm(e),r=fo(t),o=RC(n,r);return q(o)}var Kw=m(()=>{T();P();pe();Ga();lc()});function gc(e,t,n){return K([e,t])?l.Update(Gw(e,t),{},n):oa(e,t,n)}function Ww(e,t,n,r,o){let s=$(e,t,n),a=$(e,t,r);return gc(s,a,o)}var mm=m(()=>{T();am();j();Kw()});function sa(e,t={}){return L("ReadonlyObject",[e],t)}function xc(e,t={}){return hc(e,t)}var zw,um=m(()=>{se();pm();zw=xc});function Bw(e){return Kr(Ct(e))}var Hw=m(()=>{ut();Ko()});function Vw(e,t){let n=kn(e,t),r=vn(n);return dn(l.Assign(e,{[t]:r}),t)}var Jw=m(()=>{T();ht();xo();vr()});function Yw(e,t,n){let r=tn(e,t,n);return vn(r)}var Xw=m(()=>{xo();z()});function Zw(e){let t=$e(e);return vn(t)}var Qw=m(()=>{xo();z()});function ek(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:gr(e[o])}),{});return q(t)}var tk=m(()=>{P();pe();Wo()});function nk(e){return Kr(Me(e))}var rk=m(()=>{Fe();Ko()});function ok(e){let t=e.map(n=>vn(n));return B(t)}var sk=m(()=>{V();xo()});function vn(e){return be(e)?Bw(e.items):Ze(e)?Vw(e.$defs,e.$ref):Te(e)?Yw(e.if,e.then,e.else):X(e)?Zw(e.allOf):ae(e)?ek(e.properties):fe(e)?nk(e.items):C(e)?ok(e.anyOf):e}var xo=m(()=>{ut();ht();Pt();Le();pe();Fe();V();Hw();Jw();Xw();Qw();tk();rk();sk()});function hc(e,t){return K([e])?l.Update(vn(e),{},t):sa(e)}function ik(e,t,n,r){let o=$(e,t,n);return hc(o,r)}var pm=m(()=>{T();um();xo();j()});function ak(e,t,n,r){return t.visited.includes(r)?n:r in e?$(e,xe(t.callstack,[...t.visited,r]),e[r]):n}var yc=m(()=>{j();j()});function mk(e,t){let n=kn(e,t),r=Sn(n);return dn(l.Assign(e,{[t]:r}),t)}var uk=m(()=>{T();ht();ho();vr()});function pk(e,t,n){let r=tn(e,t,n);return Sn(r)}var ck=m(()=>{ho();z()});function lk(e){let t=$e(e);return Sn(t)}var dk=m(()=>{ho();z()});function fk(e){let t=e.map(n=>Sn(n));return B(t)}var gk=m(()=>{V();ho()});function xk(e){let t=u.Keys(e).reduce((r,o)=>({...r,[o]:Oi(e[o])}),{});return q(t)}var hk=m(()=>{P();pe();Ai()});function Sn(e){return Ze(e)?mk(e.$defs,e.$ref):Te(e)?pk(e.if,e.then,e.else):X(e)?lk(e.allOf):C(e)?fk(e.anyOf):ae(e)?xk(e.properties):q({})}var ho=m(()=>{ht();Pt();Le();pe();V();uk();ck();dk();gk();hk()});function ia(e,t={}){return L("Required",[e],t)}function yk(e,t={}){return Ic(e,t)}var cm=m(()=>{se();lm()});function Ic(e,t){return K([e])?l.Update(Sn(e),{},t):ia(e,t)}function Ik(e,t,n,r){let o=$(e,t,n);return Ic(o,r)}var lm=m(()=>{T();ho();cm();j()});function aa(e,t={}){return L("ReturnType",[e],t)}function bk(e,t={}){return bc(e,t)}var dm=m(()=>{se();fm()});function OC(e){return qe(e)?e.returnType:le()}function bc(e,t){return K([e])?l.Update(OC(e),{},t):aa(e,t)}function $k(e,t,n,r={}){let o=$(e,t,n);return bc(o,r)}var fm=m(()=>{T();Nt();Ke();dm();j()});function ma(e,t){return L("With",[e,t],{})}function wk(e,t){return $c(e,t)}var gm=m(()=>{se();xm()});function $c(e,t){return K([e])?l.Update(e,{},t):ma(e,t)}function kk(e,t,n,r){let o=$(e,t,n);return $c(o,r)}var xm=m(()=>{T();j();gm()});function AC(e){return Yn(e)?fe(e.items)?wc(e.items.items):Pe(e.items)?[e]:_e(e.items)?[e]:[le()]:[e]}function wc(e){return e.reduce((n,r)=>[...n,...AC(r)],[])}var Tk=m(()=>{_t();Ke();Xr();qt();Fe()});var Ek=m(()=>{Tk()});function xe(e,t){return{callstack:e,visited:t}}function K(e){return u.ShiftLeft(e,(t,n)=>_e(t)?!1:K(n),()=>!0)}function ds(e,t,n){return u.Keys(n).reduce((r,o)=>({...r,[o]:$(e,t,n[o])}),{})}function er(e,t,n){let r=Lt(e,t,n);return wc(r)}function Lt(e,t,n){return n.map(r=>$(e,t,r))}function MC(e,t){let n=nt(e)?jo(t,{}):t,r=xr(e)?Lo(n,{}):n;return fr(e)?vs(r,{}):r}function CC(e,t,n,r,o){return u.IsEqual(n,"AddImmutable")?vk(e,t,r[0],o):u.IsEqual(n,"RemoveImmutable")?jb(e,t,r[0],o):u.IsEqual(n,"AddReadonly")?Md(e,t,r[0],o):u.IsEqual(n,"RemoveReadonly")?dg(e,t,r[0],o):u.IsEqual(n,"AddOptional")?Cd(e,t,r[0],o):u.IsEqual(n,"RemoveOptional")?xg(e,t,r[0],o):u.IsEqual(n,"Capitalize")?Vb(e,t,r[0],o):u.IsEqual(n,"Conditional")?Qb(e,t,r[0],r[1],r[2],r[3],o):u.IsEqual(n,"ConstructorParameters")?t$(e,t,r[0],o):u.IsEqual(n,"Evaluate")?$b(e,t,r[0],o):u.IsEqual(n,"Exclude")?r$(e,t,r[0],r[1],o):u.IsEqual(n,"Extract")?m$(e,t,r[0],r[1],o):u.IsEqual(n,"Index")?Z$(e,t,r[0],r[1],o):u.IsEqual(n,"InstanceType")?ew(e,t,r[0],o):u.IsEqual(n,"Interface")?mb(e,t,r[0],r[1],o):u.IsEqual(n,"KeyOf")?fw(e,t,r[0],o):u.IsEqual(n,"Lowercase")?Jb(e,t,r[0],o):u.IsEqual(n,"Mapped")?bw(e,t,r[0],r[1],r[2],r[3],o):u.IsEqual(n,"Module")?Ya(e,t,r[0],o):u.IsEqual(n,"NonNullable")?ww(e,t,r[0],o):u.IsEqual(n,"Pick")?Ww(e,t,r[0],r[1],o):u.IsEqual(n,"Parameters")?Pw(e,t,r[0],o):u.IsEqual(n,"Partial")?_w(e,t,r[0],o):u.IsEqual(n,"Omit")?vw(e,t,r[0],r[1],o):u.IsEqual(n,"ReadonlyObject")?ik(e,t,r[0],o):u.IsEqual(n,"Record")?Ug(e,t,r[0],r[1],o):u.IsEqual(n,"Required")?Ik(e,t,r[0],o):u.IsEqual(n,"ReturnType")?$k(e,t,r[0],o):u.IsEqual(n,"TemplateLiteral")?nI(e,t,r[0],o):u.IsEqual(n,"Uncapitalize")?Yb(e,t,r[0],o):u.IsEqual(n,"Uppercase")?Xb(e,t,r[0],o):u.IsEqual(n,"With")?kk(e,t,r[0],r[1]):L(n,r,o)}function LC(e,t,n){let r=_e(n)?ak(e,t,n,n.$ref):be(n)?Ct($(e,t,n.items),ci(n)):uo(n)?Ra(e,t,n.target,n.arguments):Ne(n)?pn(Lt(e,t,n.parameters),$(e,t,n.instanceType),Ld(n)):qe(n)?cn(Lt(e,t,n.parameters),$(e,t,n.returnType),jd(n)):Te(n)?dr($(e,t,n.if),$(e,t,n.then),$(e,t,n.else),Gd(n)):X(n)?yt(Lt(e,t,n.allOf),Hd(n)):ae(n)?q(ds(e,t,n.properties),qd(n)):tt(n)?Gg(zt(n),$(e,t,ft(n))):Yn(n)?$r($(e,t,n.items)):fe(n)?Me(er(e,t,n.items),lg(n)):C(n)?B(Lt(e,t,n.anyOf),Qf(n)):n;return MC(n,r)}function $(e,t,n){return Un(n)?CC(e,t,n.action,n.parameters,n.options):LC(e,t,n)}function kc(e,t){return $(e,xe([],[]),t)}var j=m(()=>{P();hm();ui();pi();ut();Dt();se();Nt();to();Pt();Le();pe();ze();Fe();V();qt();Xr();hm();Vp();ui();Bu();pi();Ju();Kn();Go();zo();Hp();Tn();tc();Da();Pa();bs();_a();Ua();Wa();Ea();Ba();Tn();Va();Xa();Qa();tm();om();im();mm();pm();ji();yc();lm();fm();ba();Tn();Tn();xm();Ek()});function jC(e){return l.Update(e,{"~immutable":!0},{})}function vs(e,t){return l.Update(jC(e),{},t)}function vk(e,t,n,r){let o=$(e,t,n);return vs(o,r)}var hm=m(()=>{T();j()});function Wh(e,t={}){return L("AddImmutable",[e],t)}function Kr(e,t={}){return vs(e,t)}var Ko=m(()=>{se();hm()});var Sk=m(()=>{se();Vp()});function zh(e,t={}){return L("Evaluate",[e],t)}function Pk(e,t={}){return Kp(e,t)}var Tc=m(()=>{se();Pa()});function Bh(e,t={}){return L("Module",[e],t)}function Rk(e,t={}){return Ya({},xe([],[]),e,t)}var Ec=m(()=>{se();j();Xa()});var no=m(()=>{Ko();Wo();Do();Sk();Hu();Ai();Aa();ja();Fa();Tc();Na();qa();oc();Ka();fs();za();Ma();Ha();Ec();Za();em();rm();sm();am();um();cm();dm();Ca();La();gm()});var Ok=m(()=>{Da()});var Ak=m(()=>{xi()});var Mk=m(()=>{bs()});var Ck=m(()=>{_a()});var Lk=m(()=>{});var jk=m(()=>{$s();ks();Lk()});var Fk=m(()=>{Ua()});var Dk=m(()=>{Wa()});var Nk=m(()=>{Ea()});var qk=m(()=>{Tn()});var _k=m(()=>{Ba()});var Uk=m(()=>{Va()});var Gk=m(()=>{Xa()});var Kk=m(()=>{Qa()});var Wk=m(()=>{tm()});var zk=m(()=>{om()});var Bk=m(()=>{Jo();Ep()});var Hk=m(()=>{im()});var Vk=m(()=>{mm()});var Jk=m(()=>{P();Qo()});var Yk=m(()=>{Jk()});var Xk=m(()=>{pm()});var Zk=m(()=>{ji()});var Qk=m(()=>{yc()});var eT=m(()=>{lm()});var tT=m(()=>{fm()});var nT=m(()=>{});var rT=m(()=>{P();Jo()});var oT=m(()=>{Pi();Ri();vp();nT();vi();rT()});var sT=m(()=>{xm()});var iT=m(()=>{j();tc();Ok();Up();Ak();cs();Mk();Ck();jk();Fk();Dk();Nk();qk();_k();Uk();Gk();Kk();ws();Wk();zk();Bk();Hk();Vk();Yk();Xk();Zk();Qk();eT();tT();oT();sT()});function aT(...e){let[t,n,r]=fn.Match(e,{2:(a,p)=>u.IsString(a)?[{},a,p]:[a,p,{}],3:(a,p,c)=>[a,p,c],1:a=>[{},a,{}]}),o=Xy(n),s=u.IsArray(o)&&u.IsEqual(o.length,2)?$(t,xe([],[]),o[0]):le();return l.Update(s,{},r)}var mT=m(()=>{Gr();T();P();Ki();j();j();Ti()});var vc=m(()=>{mT()});var ie={};Mt(ie,{Any:()=>Ur,Array:()=>Ct,BigInt:()=>Bo,Boolean:()=>Ii,Call:()=>Cb,Capitalize:()=>Wb,Codec:()=>yi,Conditional:()=>Zb,Constructor:()=>pn,ConstructorParameters:()=>e$,Cyclic:()=>dn,Decode:()=>Kf,DecodeBuilder:()=>Uo,Dependent:()=>dr,Encode:()=>Wf,EncodeBuilder:()=>_o,Enum:()=>Bd,Evaluate:()=>Pk,Exclude:()=>n$,Extends:()=>et,ExtendsResult:()=>_,Extract:()=>o$,Function:()=>cn,Generic:()=>Gn,Identifier:()=>Ho,Immutable:()=>zf,Index:()=>u$,Infer:()=>No,InstanceType:()=>Q$,Instantiate:()=>kc,Integer:()=>yr,Interface:()=>ub,Intersect:()=>yt,IsAny:()=>we,IsArray:()=>be,IsBigInt:()=>hn,IsBoolean:()=>Ut,IsCall:()=>uo,IsCodec:()=>hi,IsConstructor:()=>Ne,IsCyclic:()=>Ze,IsDependent:()=>Te,IsEnum:()=>Qe,IsEnumValue:()=>zd,IsFunction:()=>qe,IsGeneric:()=>_r,IsIdentifier:()=>Jf,IsImmutable:()=>fr,IsInfer:()=>Pe,IsInteger:()=>pt,IsIntersect:()=>X,IsKind:()=>O,IsLiteral:()=>me,IsNever:()=>Zt,IsNull:()=>zr,IsNumber:()=>Ae,IsObject:()=>ae,IsOptional:()=>nt,IsParameter:()=>Zf,IsReadonly:()=>xr,IsRecord:()=>tt,IsRef:()=>_e,IsRefine:()=>qu,IsRest:()=>Yn,IsSchema:()=>Ce,IsString:()=>lt,IsSymbol:()=>zn,IsTemplateLiteral:()=>Ee,IsThis:()=>_i,IsTuple:()=>fe,IsUndefined:()=>Qr,IsUnion:()=>C,IsUnknown:()=>Se,IsUnsafe:()=>fi,IsVoid:()=>bn,KeyOf:()=>tw,Literal:()=>Z,Lowercase:()=>zb,Mapped:()=>gw,Module:()=>Rk,Never:()=>le,NonNullable:()=>$w,Null:()=>Wr,Number:()=>Rt,Object:()=>q,Omit:()=>kw,Optional:()=>Dd,Parameter:()=>br,Parameters:()=>Sw,Partial:()=>Rw,Pick:()=>Uw,Readonly:()=>Bf,ReadonlyObject:()=>xc,ReadonlyType:()=>zw,Record:()=>Di,RecordKey:()=>Yr,RecordPattern:()=>zt,RecordValue:()=>ft,Ref:()=>An,Refine:()=>Hf,Required:()=>yk,Rest:()=>$r,ReturnType:()=>bk,Script:()=>aT,String:()=>Gt,Symbol:()=>Hr,TemplateLiteral:()=>oI,This:()=>qi,Tuple:()=>Me,Uncapitalize:()=>Bb,Undefined:()=>Zr,Union:()=>B,Unknown:()=>We,Unsafe:()=>_d,Uppercase:()=>Hb,Void:()=>Gi,With:()=>wk});var Sc=m(()=>{j();In();vc();Aa();ja();Fa();Tc();Na();qa();no();Ka();fs();za();Ma();Ha();Ec();Za();em();rm();sm();am();um();cm();dm();Ca();La();gm();Nu();Go();Kn();zo();_u();xt();ut();hr();Wn();to();Dt();ht();Qt();Nt();Fo();Uu();Pt();_t();yn();Le();Oe();Ke();Br();ct();pe();Ku();ze();qt();Xr();W();Kt();Ir();It();Ui();Fe();eo();V();Xe();gi();wr()});var yo=m(()=>{no();iT();In();vc();Ki();Sc();Sc()});import{StringEnum as FC}from"@earendil-works/pi-ai";import{defineTool as DC}from"@earendil-works/pi-coding-agent";function uT(e){if(e.length===0)return"Todo list is empty.";let t=e.filter(o=>o.status==="completed").length,n=e.map(o=>`${NC[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(`
16
+ `)}function _C(e,t,n,r){let o=e.map(s=>({...s}));switch(t){case"init":return!n||n.length===0?{todos:o,error:"init needs a non-empty items array"}:{todos:n.map(s=>({content:s,status:"pending"}))};case"view":return{todos:o};case"start":case"done":case"drop":{if(!r)return{todos:o,error:`${t} needs task`};let s=o.find(a=>a.content===r);if(!s)return{todos:o,error:`no task matches ${JSON.stringify(r)}`};if(t==="start"){for(let a of o)a.status==="in_progress"&&(a.status="pending");s.status="in_progress"}else s.status=t==="done"?"completed":"dropped";return{todos:o}}default:return{todos:o,error:`unknown op ${JSON.stringify(t)}`}}}function UC(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 NC,qC,ym,Pc=m(()=>{yo();NC={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"},qC=ie.Object({op:FC(["init","start","done","drop","view"],{description:"init replaces the list; start/done/drop move one task; view reads it"}),items:ie.Optional(ie.Array(ie.String(),{description:"Task labels for init. 5-10 words each, specific enough to execute without re-planning"})),task:ie.Optional(ie.String({description:"Exact label of the task to start, complete or drop"}))});ym=DC({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:qC,async execute(e,t,n,r,o){let s=UC(o),{todos:a,error:p}=_C(s,t.op,t.items,t.task),c={op:t.op,todos:a,...p?{error:p}:{}};return{content:[{type:"text",text:p?`Error: ${p}
17
+ ${uT(a)}`:uT(a)}],details:c,...p?{isError:!0}:{}}}})});import{StringEnum as GC}from"@earendil-works/pi-ai";import{defineTool as KC}from"@earendil-works/pi-coding-agent";function lT(){return jn.size===0?"":["<shared-notes>","Working notes recorded with the `context` tool. They survive compaction and are visible to every agent on this task.",...[...jn].map(([t,n])=>`- ${t}: ${n}`),"</shared-notes>"].join(`
18
+ `)}function WC(e,t,n){if(e==="list")return jn.size===0?{text:"No notes."}:{text:[...jn].map(([r,o])=>`${r} = ${o}`).join(`
19
+ `)};if(!t)return{text:"Error: key is required",error:"key required"};if(t.length>cT)return{text:`Error: key longer than ${cT} characters`,error:"key too long"};if(e==="forget")return{text:jn.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>pT?`${n.slice(0,pT)}\u2026`:n;return jn.set(t,r),{text:`Recorded ${t} (${jn.size} note${jn.size===1?"":"s"} held)`}}return{text:`Error: unknown op ${JSON.stringify(e)}`,error:"unknown op"}}var jn,pT,cT,Im,bm=m(()=>{yo();jn=new Map,pT=2e3,cT=80;Im=KC({name:"context",label:"context",description:"Record a durable working note (a decision, a file's role, a fact you would otherwise re-derive). Notes survive context compaction and are visible to every agent on this task, including subagents. Use `set` to write, `list` to read, `forget` to remove.",promptSnippet:"context: durable notes shared with every agent on this task",parameters:ie.Object({op:GC(["set","list","forget"],{description:"set writes a note, list reads all, forget removes one"}),key:ie.Optional(ie.String({description:"Short lookup key, e.g. 'auth-entrypoint'"})),value:ie.Optional(ie.String({description:"The fact to keep (for set)"}))}),async execute(e,t){let{text:n,error:r}=WC(t.op,t.key,t.value);return{content:[{type:"text",text:n}],details:{op:t.op,notes:Object.fromEntries(jn)},...r?{isError:!0}:{}}}})});import{StringEnum as zC}from"@earendil-works/pi-ai";import{defineTool as BC}from"@earendil-works/pi-coding-agent";function wm(e){if(!e||e.status==="cleared")return"No goal set.";let t=e.budget??$m,n=[`${gT[e.status]} ${e.status}`,`${e.used}/${t} continuations`];return e.note&&n.push(e.note),`${n.join(" \xB7 ")}
20
+ ${e.text}`}function xT(e){if(!e||e.status==="cleared"||e.status==="done")return"";let t=e.budget??$m,n=e.text.length>48?`${e.text.slice(0,47)}\u2026`:e.text;return`goal ${gT[e.status]} ${e.used}/${t} \xB7 ${n}`}function hT(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(`
21
+ `)}function yT(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??$m}.`].join(`
22
+ `)}function km(){return IT}function nn(e){IT=e}function Tm(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??$m;return e.used>=t?{action:"stop",reason:`budget exhausted (${t} continuations)`,close:!0}:{action:"continue"}}function Rc(e,t,n,r,o){switch(t){case"view":return{goal:e};case"set":return n?.trim()?n.length>dT?{goal:e,error:`text longer than ${dT} characters`}:r!==void 0&&(!Number.isInteger(r)||r<1)?{goal:e,error:"budget must be a positive integer"}:{goal:{text:n.trim(),status:"active",used:0,...r===void 0?{}:{budget:r}}}:{goal:e,error:"set needs text"};case"pause":case"resume":case"complete":case"clear":return!e||e.status==="cleared"?{goal:e,error:"no goal to change"}:t==="resume"?e.status==="done"?{goal:e,error:"goal is complete; set a new one instead"}:{goal:{...e,status:"active",note:void 0}}:t==="pause"?{goal:{...e,status:"paused"}}:t==="clear"?{goal:{...e,status:"cleared"}}:o?.trim()?{goal:{...e,status:"done",note:o.trim()}}:{goal:e,error:"complete needs a note naming the evidence (a command you ran or a file you checked)"};default:return{goal:e,error:`unknown op ${JSON.stringify(t)}`}}}function Io(e){let t;for(let n of e.sessionManager.getBranch()){if(n.type==="custom"&&n.customType===nr){t=n.data;continue}if(n.type==="custom_message"&&n.customType===nr){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 nr,fT,dT,$m,gT,IT,HC,bT,Em=m(()=>{yo();nr="howtofix.goal",fT="howtofix.goal.continue",dT=400,$m=25,gT={active:"\u25CF",paused:"\u2016",done:"\u2713",cleared:"\u25CB"};HC=ie.Object({op:zC(["set","view","pause","resume","complete","clear"],{description:"set starts a goal; complete closes it with evidence; pause/resume/clear manage it; view reads it"}),text:ie.Optional(ie.String({description:"The goal, in one sentence, as the user would state it (for set)"})),budget:ie.Optional(ie.Number({description:"Optional cap on automatic continuations before the run stops"})),note:ie.Optional(ie.String({description:"Evidence that the goal is met (required for complete)"}))}),bT=BC({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:HC,async execute(e,t,n,r,o){let s=Io(o),{goal:a,error:p}=Rc(s,t.op,t.text,t.budget,t.note);nn(a);let c=wm(a);return{content:[{type:"text",text:p?`Error: ${p}
23
+ ${c}`:c}],details:{op:t.op,goal:a},...p?{isError:!0}:{}}}})});import{existsSync as Mc,mkdirSync as $T,readFileSync as wT,writeFileSync as kT}from"node:fs";import{dirname as TT,join as ET}from"node:path";import{defineTool as vT}from"@earendil-works/pi-coding-agent";function vm(){return{state:"inactive",wasActive:!1}}function VC(e){return e?e.state==="pending"?{...e,state:"inactive"}:{...e}:vm()}function ST(e){return e.state!=="inactive"?e:{...e,state:"pending"}}function JC(e){return e.state!=="pending"?e:{state:"active",wasActive:!0}}function YC(e){return e.state!=="inactive"?e:{state:"active",wasActive:!0}}function XC(e){return e.state!=="active"?e:{...e,state:"inactive"}}function PT(e){return e.state==="inactive"?e:{...e,state:"inactive"}}function Sm(e){return e.state==="active"}function ZC(e,t){return e===t}function QC(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(`
24
+ `)}function e0(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 Pm(){return at}function RT(){return it}function OT(){return Sm(at)}function AT(){if(!(!it||!Mc(it)))try{let e=wT(it,"utf8");return e.trim()?e:void 0}catch{return}}function MT(){return AT()!==void 0}function CT(){return at.state==="inactive"?"":at.state==="pending"?"plan pending":MT()?"plan \u25CF ready":"plan \u25CF planning"}function LT(){return Ac?ET(Ac,"plan_mode.json"):void 0}function t0(){let e=LT();if(e)try{$T(TT(e),{recursive:!0}),kT(e,JSON.stringify(at))}catch{}}function n0(){let e=LT();if(!e||!Mc(e))return vm();try{return VC(JSON.parse(wT(e,"utf8")))}catch{return vm()}}function r0(e){Ac=e,it=ET(e,"plan.md"),at=n0()}function bo(e){return at=e,t0(),at}function jT(){return e=>{e.on("tool_call",async t=>{if(!Sm(at)||t.toolName!=="edit"&&t.toolName!=="write")return;let n=t.input?.path;if(typeof n=="string"&&!(!it||ZC(n,it)))return{block:!0,reason:e0(it)}})}}function FT(){return e=>{e.on("session_start",async(t,n)=>{r0(n.sessionManager.getSessionDir())}),e.on("before_agent_start",async()=>{at.state==="pending"&&bo(JC(at))}),e.on("context_with_system",async t=>{if(!Sm(at)||!it)return;let n=t.messages[0];if(!n||n.role!=="system")return;let r=QC(it,MT()),o=`${typeof n.content=="string"?n.content:""}
25
+
26
+ ${r}`;return{messages:t.messages.map(a=>a===n?{...n,content:o}:a)}})}}function o0(){if(it){try{$T(TT(it),{recursive:!0}),Mc(it)||kT(it,"")}catch{return}return it}}var it,at,Ac,Oc,DT,NT,Cc=m(()=>{yo();at=vm();Oc=2e4;DT=vT({name:"enter_plan_mode",label:"enter_plan_mode",description:"Enter plan mode to design an approach before writing code. Use it when a task has genuine ambiguity \u2014 several reasonable designs, or a restructuring where the wrong approach wastes significant effort. Do not use it for a clear fix, a rename, or a task that follows existing conventions. The user must approve entering.",promptSnippet:"enter_plan_mode: design first when the approach is genuinely ambiguous",parameters:ie.Object({}),async execute(e,t,n,r,o){if(at.state!=="inactive")return{content:[{type:"text",text:`Plan mode is already ${at.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:{}};bo(YC(at));let a=o0();return{content:[{type:"text",text:["Plan mode is active. Edits are blocked except for the plan file.",a?`Write your plan to ${a}.`:"Write your plan to the session plan file."].join(`
27
+ `)}],details:{planFile:a}}}}),NT=vT({name:"exit_plan_mode",label:"exit_plan_mode",description:"Present your plan for approval when you have finished planning. The plan is read from the plan file on disk, so write the file first. If the user asks for changes, stay in plan mode and revise it.",promptSnippet:"exit_plan_mode: present the written plan for approval",parameters:ie.Object({}),executionMode:"sequential",async execute(e,t,n,r,o){if(!Sm(at))return{content:[{type:"text",text:"Plan mode is not active."}],details:{},isError:!0};let s=AT();if(!s)return{content:[{type:"text",text:`No plan has been written yet. Write it to ${it??"the plan file"} before exiting plan mode.`}],details:{},isError:!0};if(!o.hasUI)return{content:[{type:"text",text:"Plan approval needs an interactive session."}],details:{},isError:!0};let a=s.length>Oc?`${s.slice(0,Oc)}
28
+ \u2026 (${s.length-Oc} more characters)`:s;return await o.ui.confirm("Approve this plan?",a)?(bo(XC(at)),{content:[{type:"text",text:"Plan approved. You may now implement it."}],details:{approved:!0,planFile:it}}):{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 Lc(){return{consecutiveFailures:0,tripped:!1}}function s0(e,t){return t==="manual"?!1:e.consecutiveFailures>=3}function i0(e,t){if(t)return e;let n=e.consecutiveFailures+1;return{consecutiveFailures:n,tripped:e.tripped||n>=3}}function a0(){return Lc()}function m0(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 qT(){return e=>{e.on("session_start",async()=>{rr=Lc()}),e.on("session_compact",async()=>{rr=a0()}),e.on("session_compact_failed",async(t,n)=>{let r=rr;rr=i0(rr,t.aborted),!r.tripped&&rr.tripped&&n?.ui&&n.ui.notify(m0(rr),"warning")}),e.on("session_before_compact",async t=>{if(s0(rr,t.reason))return{cancel:!0}})}}var rr,_T=m(()=>{rr=Lc()});function Rm(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(`
29
+ `):e==null?"":String(e)}function Om(e,t){if(Array.isArray(e)){let n=e.map(o=>({...o})),r=n.filter(o=>o.type==="text");if(r.length>0){r[0].text=t;for(let o of r.slice(1))o.text="";return n}return[...n,{type:"text",text:t}]}return t}var jc=m(()=>{});function u0(e){nn(Io(e))}function UT(e){return`budget exhausted (${e.budget??"default"} continuations)`}function GT(){return e=>{e.on("session_start",async(t,n)=>{u0(n)}),e.on("context_with_system",async(t,n)=>{let r=Io(n);if(nn(r),!r||r.status!=="active")return;let o=t.messages[0];if(!o||o.role!=="system")return;let s=`${Rm(o.content)}
30
+
31
+ ${hT(r)}`;return{messages:t.messages.map(p=>p===o?{...o,content:Om(o.content,s)}:p)}}),e.on("agent_before_settle",async(t,n)=>{let r=Io(n);if(nn(r),Tm(r).action==="stop"||!r||t.continue||!t.context.canContinue)return;let o={...r,used:r.used+1};if(e.appendEntry(nr,o),nn(o),Tm(o).action==="stop"){let s={...o,status:"done",note:UT(o)};e.appendEntry(nr,s),nn(s);return}return{entries:[{type:"custom_message",customType:fT,content:yT(o),display:!0}],continue:!0}}),e.on("agent_settled",async(t,n)=>{let r=Io(n),o=Tm(r);if(r&&o.action==="stop"&&o.close){let s={...r,status:"done",note:UT(r)};e.appendEntry(nr,s),nn(s)}else nn(r)})}}var KT=m(()=>{jc();Em()});function Am(){return e=>{e.on("context_with_system",async t=>{let n=lT();if(!n)return;let r=t.messages[0];if(!r||r.role!=="system")return;let o=`${Rm(r.content)}
32
+
33
+ ${n}`;return{messages:t.messages.map(a=>a===r?{...r,content:Om(r.content,o)}:a)}})}}var Fc=m(()=>{jc();bm()});import{mkdirSync as p0,readdirSync as c0,readFileSync as l0,writeFileSync as d0}from"node:fs";import{join as WT}from"node:path";import{createAgentSession as f0,DefaultResourceLoader as g0,SessionManager as x0}from"@earendil-works/pi-coding-agent";function zT(e){p0(Fr,{recursive:!0}),d0(WT(Fr,`${e.id}.json`),JSON.stringify({...e,session:void 0},null,1))}function BT(){let e;try{e=c0(Fr)}catch{return}for(let t of e)if(t.endsWith(".json"))try{let n=JSON.parse(l0(WT(Fr,t),"utf8"));if(n.status!=="parked"||rn.some(r=>r.id===n.id))continue;rn.push({...n,mail:n.mail??[]})}catch{}}function Nc(){return BT(),rn.length===0?"no agents":rn.map(e=>`${e.id} ${e.agent} ${e.status} requests=${e.requests} ${e.task}`).join(`
34
+ `)}function qc(e){BT();let t=rn.find(n=>n.id===e);return t?`${t.agent}#${t.id} ${t.status}
35
+ ${t.result??t.task}`:`no agent ${e}`}async function _c(e){let t=Pr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}`);let n=e.worktree||process.cwd(),r=new g0({cwd:n,agentDir:Ye,extensionFactories:[Am()]});await r.reload();let{session:o}=await f0({cwd:n,agentDir:Ye,sessionManager:x0.inMemory(n),resourceLoader:r,tools:t.tools,customTools:[Im,ym],thinkingLevel:e.effort});return o}async function HT(e){let t=Pr.get(e.agent);if(!t)throw new Error(`unknown agent ${e.agent}. known: ${[...Pr.keys()].join(", ")}`);let n={id:`${Date.now().toString(36)}-${rn.length+1}`,agent:t.name,task:e.task.trim(),effort:e.effort||t.effort,status:"queued",requests:0,mail:[],worktree:e.worktree};return rn.push(n),zT(n),n}async function b0(e,t){let n=Pr.get(e.agent);if(!n)return;let r=e.session??await _c(e);e.session=r;try{let o=e.mail.splice(0).join(`
36
+ `);for(await r.prompt(`${n.prompt}
37
+
38
+ Task:
39
+ ${e.task}${o?`
40
+
41
+ Messages:
42
+ ${o}`:""}`),e.requests+=1;e.mail.length>0&&e.requests<I0;)await r.followUp(e.mail.splice(0).join(`
43
+ `)),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{zT(e)}}async function VT(e){let t=()=>rn.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 b0(r,e)}};if(await Promise.all(Array.from({length:y0},n)),e?.aborted)throw new Error("aborted")}var Dc,h0,Pr,rn,y0,I0,Ss=m(()=>{Nn();bm();Fc();Pc();Dc=["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."],h0=`You are a software architect planning an implementation. Your job is to explore the codebase and return a plan, not to write code.
44
+
45
+ ## Read-only, by construction
46
+ 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.
47
+
48
+ ## Your process
49
+ 1. Understand the requirement. If it is ambiguous in a way that changes the design, say so and name the options rather than silently picking one.
50
+ 2. Explore: read the files involved, find the existing patterns and conventions with grep/find/ls, and trace the code paths the change touches. Follow the codebase's existing approach instead of inventing a new one.
51
+ 3. Design: state the approach you recommend, not every alternative you considered. Note the trade-off that decided it.
52
+ 4. Sequence: give the implementation as ordered steps, naming the files and functions to change at each one, and what to verify after each.
53
+
54
+ ## Required output
55
+ End your reply with exactly this section, listing the 3-5 files most critical to the implementation, most important first:
56
+
57
+ ### Critical Files for Implementation
58
+ - path/to/file.ts
59
+ - path/to/file.ts
60
+
61
+ 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.`,Pr=new Map([["scout",{name:"scout",description:"read-only lookup",tools:["read","grep","find","ls","context"],prompt:["Inspect only what the task needs. Do not edit.",...Dc].join(`
62
+ `),effort:"low"}],["architect",{name:"architect",description:"designs an implementation plan",tools:["read","grep","find","ls","context"],prompt:h0,effort:"high"}],["task",{name:"task",description:"implements the assignment",tools:["read","bash","edit","write","grep","find","ls","context","todo"],prompt:["Do the assignment, then report files changed.",...Dc].join(`
63
+ `),effort:"medium"}],["reviewer",{name:"reviewer",description:"finds concrete issues",tools:["read","grep","find","ls","context"],prompt:["Return issues with file evidence. Do not edit.",...Dc].join(`
64
+ `),effort:"medium"}]]),rn=[],y0=3,I0=8});import{execFileSync as $0}from"node:child_process";import{tmpdir as w0}from"node:os";import{join as k0}from"node:path";function Bt(e,t){try{return{ok:!0,output:$0("git",t,{cwd:e,encoding:"utf8",stdio:["ignore","pipe","pipe"],maxBuffer:8388608}).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}}}function Mm(e){return Bt(e,["rev-parse","--is-inside-work-tree"]).output==="true"}function JT(e){return Bt(e,["status","--porcelain"]).output.length>0}function YT(e,t){let n=Bt(e,["add","-A"]);if(!n.ok)return n;let r=Bt(e,["commit","-m",t]);return r.ok?{ok:!0,output:Bt(e,["log","-1","--oneline"]).output||r.output}:r}function XT(e){let t=Bt(e,["diff"]).output,n=Bt(e,["diff","--cached"]).output;return[t,n].filter(Boolean).join(`
65
+ `)}function Uc(e){return Bt(e,["reset","--soft","HEAD~1"])}function ZT(e,t=60){let n=e.split(`
66
+ `);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(`
67
+ `)}function QT(e){return Bt(e,["log","-1","--oneline"]).output}function eE(e,t){if(!Mm(e))return null;let n=t.replace(/[^A-Za-z0-9._-]/g,"-").slice(0,40)||"agent",r=k0(w0(),`howtofix-wt-${process.pid}-${Date.now()}-${n}`);return Bt(e,["worktree","add","--detach",r,"HEAD"]).ok?{path:r,remove(){Bt(e,["worktree","remove","--force",r]),Bt(e,["worktree","prune"])}}:null}var Gc=m(()=>{});function tE(e){return e===null?"null":Array.isArray(e)?"array":Number.isInteger(e)?"integer":typeof e}function T0(e,t){let n=tE(e);return t==="number"?n==="number"||n==="integer":t==="integer"?n==="integer":n===t}function E0(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(!Rr(n)&&!Array.isArray(n))return;n=n[o]}return Rr(n)?n:void 0}function or(e,t,n,r,o){if(!Rr(t))return;if(t.$ref!==void 0){let a=E0(n,t.$ref);a&&or(e,a,n,r,o);return}if(Array.isArray(t.allOf))for(let a of t.allOf)or(e,a,n,r,o);for(let a of["anyOf","oneOf"]){let p=t[a];if(!Array.isArray(p)||p.length===0)continue;let c=p.filter(x=>{let y=[];return or(e,x,n,r,y),y.length===0}).length;a==="anyOf"&&c===0&&o.push({path:r,message:"does not match any allowed shape"}),a==="oneOf"&&c!==1&&o.push({path:r,message:`must match exactly one shape (matched ${c})`})}let s=t.type;if(s!==void 0){let a=Array.isArray(s)?s.map(String):[String(s)];if(!a.some(p=>T0(e,p))){o.push({path:r,message:`expected ${a.join(" or ")}, got ${tE(e)}`});return}}if(Array.isArray(t.enum)&&!t.enum.some(a=>JSON.stringify(a)===JSON.stringify(e))&&o.push({path:r,message:`must be one of ${t.enum.map(a=>JSON.stringify(a)).join(", ")}`}),Rr(e)){let a=Rr(t.properties)?t.properties:{};if(Array.isArray(t.required))for(let p of t.required.map(String))p in e||o.push({path:r?`${r}.${p}`:p,message:"is required"});for(let[p,c]of Object.entries(a))p in e&&or(e[p],c,n,r?`${r}.${p}`:p,o);if(t.additionalProperties===!1)for(let p of Object.keys(e))p in a||o.push({path:r?`${r}.${p}`:p,message:"is not an allowed property"});else if(Rr(t.additionalProperties))for(let[p,c]of Object.entries(e))p in a||or(c,t.additionalProperties,n,r?`${r}.${p}`:p,o)}if(Array.isArray(e)&&t.items!==void 0){let a=t.items;Array.isArray(a)?e.forEach((p,c)=>{c<a.length&&or(p,a[c],n,`${r}[${c}]`,o)}):e.forEach((p,c)=>or(p,a,n,`${r}[${c}]`,o))}if(typeof e=="string"&&(typeof t.minLength=="number"&&e.length<t.minLength&&o.push({path:r,message:`is shorter than ${t.minLength} characters`}),typeof t.pattern=="string"))try{new RegExp(t.pattern).test(e)||o.push({path:r,message:`does not match ${t.pattern}`})}catch{}typeof e=="number"&&(typeof t.minimum=="number"&&e<t.minimum&&o.push({path:r,message:`is below ${t.minimum}`}),typeof t.maximum=="number"&&e>t.maximum&&o.push({path:r,message:`is above ${t.maximum}`}))}function nE(e,t){if(!Rr(t))return[];let n=[];return or(e,t,t,"",n),n}function rE(e){return e.map(t=>`- ${t.path||"(root)"}: ${t.message}`).join(`
68
+ `)}function oE(e){let t=e.trim(),n=/```(?:json)?\s*([\s\S]*?)```/.exec(t),r=[t,n?.[1]?.trim()].filter(o=>!!o);for(let o of r){try{return JSON.parse(o)}catch{}for(let s=0;s<o.length;s++){let a=o[s];if(a!=="{"&&a!=="[")continue;let p=a==="{"?"}":"]",c=0,x=!1,y=!1;for(let v=s;v<o.length;v++){let E=o[v];if(x){y?y=!1:E==="\\"?y=!0:E==='"'&&(x=!1);continue}if(E==='"')x=!0;else if(E===a)c++;else if(E===p&&(c--,c===0))try{return JSON.parse(o.slice(s,v+1))}catch{break}}}}}var Rr,sE=m(()=>{Rr=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)});import*as iE from"node:os";async function P0(e,t=aE,n=mE){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 R0(){let e=iE.availableParallelism?.()??4;return Math.max(1,Math.min(16,e-2))}function O0(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 uE(e){let t=e.lifetimeCap??v0,n=e.fanoutCap??S0,r=O0(e.concurrency??R0()),o=0,s=0,a="",p=U=>e.onEvent?.(U),c=new Map,x=()=>e.onProgress?.([...c.values()]),y=async(U,H)=>{let ce=H??{},Re=typeof ce.label=="string"?ce.label:`agent-${o+1}`,ye=typeof ce.phase=="string"?ce.phase:a,Ve=typeof ce.agentType=="string"?ce.agentType:"task",Ft=typeof ce.effort=="string"?ce.effort:void 0,k=typeof ce.model=="string"?ce.model:void 0,Q=typeof ce.isolation=="string"?ce.isolation:void 0,Tt=ce.schema;if(e.budgetTotal!=null&&s>=e.budgetTotal)throw new Ue(`budget exhausted: spent ${s} of ${e.budgetTotal} output tokens`);if(o>=t)throw new Ue(`lifetime cap reached: ${t} agent calls in one run`);o++;let Ge=o;if(e.isPaused?.()&&!await P0(e,aE,mE))return null;let Vt=await r();try{if(e.signal?.aborted)return null;p({kind:"agent_start",label:Re,phase:ye,ordinal:o}),c.set(Ge,{label:Re,phase:ye,agentType:Ve,status:"running",outputTokens:0,...k?{model:k}:{},startedAt:Date.now()}),x();let Rn=(Je,Jt,gt)=>{let Et=c.get(Ge);Et&&(Et.status=Je,Et.outputTokens=Jt.outputTokens,Et.endedAt=Date.now(),Jt.toolCalls!==void 0&&(Et.toolCalls=Jt.toolCalls),Jt.model!==void 0&&(Et.model=Jt.model),gt&&(Et.detail=gt)),p({kind:"agent_end",label:Re,ok:Je==="ok",outputTokens:Jt.outputTokens}),x()},To=Tt===void 0?1:2;for(let Je=0;Je<To;Je++){let Jt=Je===0?String(U):void 0,gt=await E(Jt??A0(String(U),v),{label:Re,phase:ye,agentType:Ve,effort:Ft,model:k,isolation:Q});if(gt===null)return Rn("failed",{text:"",outputTokens:0}),null;if(s+=gt.outputTokens,Tt===void 0)return Rn("ok",gt,Kc(gt.text)),gt.text;let Et=oE(gt.text),Mr=Et===void 0?[{path:"",message:"reply was not JSON"}]:nE(Et,Tt);if(Mr.length===0)return Rn("ok",gt,Kc(gt.text)),Et;if(v=rE(Mr),Je===To-1)return Rn("failed",gt,`schema: ${Kc(v)}`),null}return null}finally{Vt()}},v="",E=async(U,H)=>{try{return await e.invoke({prompt:U,...H})}catch{return null}};return{agent:(U,H)=>y(U,H),parallel:async U=>{if(U.length>n)throw new Ue(`fan-out cap exceeded: ${U.length} items (max ${n})`);return await Promise.all(U.map(async ce=>{try{return await ce()}catch{return null}}))},pipeline:async(U,...H)=>{if(U.length>n)throw new Ue(`fan-out cap exceeded: ${U.length} items (max ${n})`);return await Promise.all(U.map(async(Re,ye)=>{let Ve=Re;for(let Ft of H)try{Ve=await Ft(Ve,Re,ye)}catch{return null}return Ve}))},phase:U=>{a=String(U),p({kind:"phase",title:a})},log:U=>p({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 A0(e,t){return`${e}
69
+
70
+ Your previous reply did not satisfy the required schema:
71
+ ${t}
72
+
73
+ Reply with ONLY a corrected JSON value.`}function Kc(e,t=80){let n=e.split(`
74
+ `).map(r=>r.trim()).find(r=>r.length>0)??"";return n.length>t?`${n.slice(0,t)}\u2026`:n}var v0,S0,aE,mE,Ue,pE=m(()=>{sE();v0=1e3,S0=4096,aE=100,mE=300*1e3;Ue=class extends Error{constructor(t){super(t),this.name="WorkflowError"}}});import{parseColor as Fn,styleText as M0}from"@earendil-works/pi-tui";function C0(e,t){return M0(e,t,Cm)}function oe(e,t,n){return C0(e,{...n,fg:t})}var Cm,F,cE,Ps=m(()=>{Cm="truecolor",F={text:Fn("#e6e6e6"),mute:Fn("#8b8b8b"),dim:Fn("#5c5c5c"),user:Fn("#d0d0d0"),accent:Fn("#c4b5fd"),tool:Fn("#6ee7b7"),bad:Fn("#f0a8a4"),warn:Fn("#e6b15a"),line:Fn("#3a3a3a")};cE={heading:e=>oe(e,F.text,{bold:!0}),link:e=>oe(e,F.accent,{underline:!0}),linkUrl:e=>oe(e,F.mute),code:e=>oe(e,F.text),codeBlock:e=>oe(e,F.text),codeBlockBorder:e=>oe(e,F.line),quote:e=>oe(e,F.mute,{italic:!0}),quoteBorder:e=>oe(e,F.line),hr:e=>oe(e,F.line),listBullet:e=>oe(e,F.mute),bold:e=>oe(e,F.text,{bold:!0}),italic:e=>oe(e,F.text,{italic:!0}),strikethrough:e=>oe(e,F.mute,{strikethrough:!0}),underline:e=>oe(e,F.text,{underline:!0})}});import{truncateToWidth as Os,visibleWidth as on}from"@earendil-works/pi-tui";function sr(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 fE(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 Bc(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function jm(e,t,n="left"){if(t<=0)return"";let r=on(e);if(r>t)return Os(e,t);let o=" ".repeat(t-r);return n==="right"?o+e:e+o}function Hc(e,t,n,r=1){if(n<=0)return"";let o=on(t);if(o>=n)return Os(t,n);let s=n-o-r;if(s<=0)return jm(t,n,"right");let a=on(e)>s?Os(e,s):e,p=" ".repeat(n-on(a)-o);return a+p+t}function Wc(e,t,n){let r=$o(e,Math.max(0,n-2)),o=Math.max(1,n-1-on(r)),s=de("border","\u250C\u2500 ")+de("accent",r)+de("border",` ${"\u2500".repeat(o)}\u2510`),a=de("border",`\u2514${"\u2500".repeat(n+2)}\u2518`),p=de("border","\u2502"),c=t.map(x=>`${p} ${jm(x,n)} ${p}`);return[s,...c,a]}function F0(e,t,n,r){let o=r?.gap??1,s=r?.leftWidth??Rs(Math.round(n*.38),28,44),a=n-s-o,p=Math.max(e.rows.length,t.rows.length),c=E=>{let R=[...E];for(;R.length<p;)R.push("");return R},x=Wc(e.title,c(e.rows),s-4),y=Wc(t.title,c(t.rows),a-4),v=" ".repeat(o);return x.map((E,R)=>E+v+(y[R]??jm("",a)))}function gE(e,t,n){switch(e){case"running":return de(t||n?"accent":"muted","\u25CF");case"failed":return de("error","\u2717");default:return de("success","\u2713")}}function xE(e,t,n,r=Date.now(),o=0){return t?r-o<Lm?de("success","\u2713",!0):de("success","\u2713"):de(n?"accent":"dim",String(e))}function wo(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||dE;n.includes(s)||n.push(s)}return n.map((o,s)=>{let a=e.steps.filter(N=>(N.phase||dE)===o).map(N=>({...N,phaseIndex:s})),p=a.filter(N=>N.status!=="running").length,c=a.filter(N=>N.status==="failed").length,x=a.reduce((N,U)=>{let H=U.endedAt??t;return Math.max(N,H-U.startedAt)},0),y=-1;for(let N=0;N<a.length;N++){let U=a[N];U.status==="running"&&(y<0||U.startedAt>=a[y].startedAt)&&(y=N)}let v=r.get(o),E=a.length>0&&p===a.length&&c===0,R=E?a.reduce((N,U)=>Math.max(N,U.endedAt??0),0):0;return{title:o,...v?{detail:v}:{},agents:a,done:p,failed:c,outputTokens:a.reduce((N,U)=>N+U.outputTokens,0),elapsedMs:x,allDone:E,finishedAt:R,anchor:y}})}function Vc(e){return e.steps.reduce((t,n)=>t+n.outputTokens,0)}function D0(e){return e.steps.reduce((t,n)=>t+(n.toolCalls??0),0)}function hE(e,t=Date.now()){return Math.max(0,(e.endedAt??t)-e.startedAt)}function N0(e){return e.steps.length>L0||Vc(e)>j0}function q0(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 yE(e,t=Date.now()){let n=wo(e,t),r=e.steps.length,o=e.steps.filter(x=>x.status!=="running").length,s=e.steps.filter(x=>x.status==="failed").length,a=[e.name],p=n.find(x=>x.anchor>=0);p?a.push(`${p.title} ${p.done}/${p.agents.length}`):n.length>0&&a.push(`${n[n.length-1].title} done`),a.push(`${o}/${r} agents`),a.push(`${Bc(Vc(e))} tok`),a.push(sr(hE(e,t))),s>0&&a.push(`${s} failed`);let c=a.join(" \xB7 ");return N0(e)?`large workflow \xB7 ${c}`:c}function bE(e,t){if(e.status==="running"&&e.outputTokens===0)return[`idle ${sr(t-e.startedAt)}`,"idle"];let n=Bc(e.outputTokens),r=e.toolCalls??0,o=sr((e.endedAt??t)-e.startedAt);return[`${n} tok \xB7 ${r} tools \xB7 ${o}`,`${n} tok \xB7 ${r} tools`,`${n} tok`]}function zc(e,t,n){if(e.length<=n)return{slice:e,start:0,more:0};let r=Math.max(1,n-1),o=Rs(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 z0(e,t,n,r,o){let s=`${e.done}/${e.agents.length}`,a=n?de("accent","\u276F"):" ",p=xE(t+1,e.allDone,n,o,e.finishedAt),c=Math.max(0,r-4-on(s)),x=on(e.title)>c?Os(e.title,c,"\u2026"):e.title,y=e.allDone&&o-e.finishedAt<Lm,v=de(y&&!n?"success":n?"accent":"text",x),E=`${a}${p} ${v}`,R=de(n?"accent":"muted",s);return Hc(E,R,r,1)}function B0(e,t,n,r,o,s){let a=t?de("accent","\u276F"):" ",p=gE(e.status,t,n),c=de(t?"accent":"text",jm(e.label,r)),x=`${a}${p} ${c}`,y=Math.max(0,o-on(x)-1),v=bE(e,s).find(R=>on(R)<=y)??"",E=de(t?"accent":W0(e)?"dim":"muted",v);return Hc(x,E,o,1)}function H0(e,t,n,r){let o=[];return e.forEach((s,a)=>{let c=`${xE(a+1,s.allDone,a===n,r,s.finishedAt)} ${de(a===n?"accent":"text",s.title)} ${de("muted",`${s.done}/${s.agents.length}`)}`;o.push($o(c,t));let{slice:x,more:y}=zc(s.agents,0,IE);x.forEach((v,E)=>{let R=gE(v.status,!1,E===s.anchor),N=bE(v,r)[0]??"";o.push($o(` ${R} ${de("text",v.label)} ${de("muted",N)}`,t))}),y>0&&o.push($o(` ${de("dim",`\u2026+${y} more`)}`,t))}),o}function V0(e,t,n){let r=n?.now??Date.now(),o=wo(e,r),s=e.steps,a=s.filter(Ge=>Ge.status!=="running").length,p=s.filter(Ge=>Ge.status==="failed").length,c=[`${a}/${s.length} agents`,`${Bc(Vc(e))} tok`,`${D0(e)} tools`,sr(hE(e,r)),...p>0?[`${p} failed`]:[]].join(" \xB7 "),x=[Hc(de("accent",e.name,!0),de("muted",c),t,2),...e.description?[de("muted",$o(e.description,t))]:[]],y=n?.footer?[de("muted",$o(n.footerText??J0(),t))]:[];if(o.length===0)return[...x,...Wc("Phases",["(no agents yet)"],Math.max(0,t-4)),...y];let v=Rs(n?.selectedPhase??q0(o),0,Math.max(0,o.length-1)),E=Rs(Math.round(t*.38),28,44),R=t-E-1-4;if(t<G0||R<K0)return[...x,...H0(o,t,v,r),...y];let N=o[v],{slice:U,start:H,more:ce}=zc(o,v,_0),Re=U.map((Ge,Vt)=>z0(Ge,H+Vt,H+Vt===v,E-4,r));ce>0&&Re.push(de("dim",`\u2026+${ce} more`));let ye=n?.filter?n.filter(N.agents):N.agents,Ve=ye.length?Rs(Math.max(...ye.map(Ge=>on(Ge.label))),6,U0):6,{slice:Ft,more:k}=zc(ye,0,n?.agentWindow??IE),Q=Ft.map((Ge,Vt)=>B0(Ge,!1,Vt===N.anchor,Ve,R,r));k>0&&Q.push(de("dim",`\u2026+${k} more`));let Tt=F0({title:"Phases",rows:Re},{title:`${N.title} \xB7 ${ye.length} agents${n?.filterLabel??""}`,rows:Q},t,{leftWidth:E,gap:1});return[...x,...Tt,...y]}function $E(e,t=[],n=96,r,o){let s=V0(e,n,{now:e.endedAt??Date.now(),footer:!0,...r===void 0?{}:{selectedPhase:r},...o?.filter?{filter:o.filter}:{},...o?.footerText?{footerText:o.footerText}:{},...o?.filterLabel?{filterLabel:o.filterLabel}:{}}),a=new Set(t);if(o?.drill){let c=wo(e,e.endedAt??Date.now()),x=c[Math.max(0,Math.min(c.length-1,r??0))];for(let y of x?.agents??[])a.add(y.label)}if(a.size===0)return s;let p=[];for(let c of e.steps)if(a.has(c.label)){for(let x of c.tasks??[]){let y=x.status==="completed"?"[x]":x.status==="in_progress"?"[>]":"[ ]";p.push(` ${de("muted",y)} ${de("text",x.content)}`)}c.detail&&p.push(` ${de("dim",c.detail)}`)}return p.length===0?s:[...s.slice(0,-1),...p,s[s.length-1]]}function J0(){return"\u2191/\u2193 phase \xB7 Enter drill in \xB7 Esc back out \xB7 f filter by status \xB7 p pause \xB7 x stop \xB7 s save script"}var lE,de,L0,j0,Lm,Rs,$o,dE,IE,_0,U0,G0,K0,W0,As=m(()=>{Ps();lE={text:F.text,muted:F.mute,dim:F.dim,accent:F.accent,success:F.tool,error:F.bad,border:F.line},de=(e,t,n=!1)=>n?oe(t,lE[e],{bold:!0}):oe(t,lE[e]),L0=25,j0=15e5,Lm=420;Rs=(e,t,n)=>Math.max(t,Math.min(n,e)),$o=(e,t)=>on(e)>t?Os(e,Math.max(0,t),"\u2026"):e;dE="Workflow";IE=16,_0=12,U0=18,G0=72,K0=24;W0=e=>e.status==="running"&&e.outputTokens===0});import{readFileSync as Y0}from"node:fs";import{basename as X0}from"node:path";import{StringEnum as Z0}from"@earendil-works/pi-ai";import{defineTool as Q0}from"@earendil-works/pi-coding-agent";function kE(e){wE=e}function tL(e){let t=e.replace(/^(?:\s+|\/\/[^\n]*\n|\/\*[\s\S]*?\*\/)*/,""),n=/^export\s+const\s+meta\s*=\s*/.exec(t);if(!n)throw new Ue("a workflow script must start with `export const meta = { name, description }`");let r=e.length-t.length,o=n[0].length,s=0,a=null,p=-1;for(let R=o;R<t.length;R++){let N=t[R];if(a){N==="\\"?R++:N===a&&(a=null);continue}if(N==='"'||N==="'"||N==="`")a=N;else if(N==="{"||N==="[")s++;else if((N==="}"||N==="]")&&(s--,s===0)){p=R+1;break}}if(p===-1)throw new Ue("meta is not a closed literal object");let c=t.slice(o,p),x=e.slice(r+p).replace(/^\s*;/,"");if(/^\s*(import|export)\b/m.test(x))throw new Ue("a workflow body must not contain import or export declarations");if(/\bimport\s*\(/.test(x))throw new Ue("a workflow body must not use dynamic import()");let y;try{y=new Function(`"use strict"; return (${c});`)()}catch(R){throw new Ue(`meta must be a literal object: ${R instanceof Error?R.message:String(R)}`)}if(typeof y!="object"||y===null)throw new Ue("meta must be an object");let v=y;if(typeof v.name!="string"||!v.name.trim())throw new Ue("meta.name is required");if(typeof v.description!="string"||!v.description.trim())throw new Ue("meta.description is required");let E=Array.isArray(v.phases)?v.phases.filter(R=>typeof R=="object"&&R!==null).map(R=>({title:String(R.title??""),...typeof R.detail=="string"?{detail:R.detail}:{}})).filter(R=>R.title):void 0;return{meta:{name:v.name,description:v.description,...typeof v.whenToUse=="string"?{whenToUse:v.whenToUse}:{},...E?{phases:E}:{}},body:x}}function nL(e){let t=["agent","parallel","pipeline","phase","log","args","budget"],n=`"use strict"; return (async () => {
75
+ ${e}
76
+ })();`,r;try{r=new Function(...t,n)}catch(o){throw new Ue(`workflow did not compile: ${o instanceof Error?o.message:String(o)}`)}return r}function rL(e){return e.getLastAssistantText()?.trim()??""}function oL(){return async({prompt:e,agentType:t,effort:n,model:r,isolation:o})=>{let s=Pr.get(t)??Pr.get("task");if(!s)throw new Ue(`no agent named ${t}`);let a=o==="worktree"?eE(process.cwd(),t):null,p=await _c({agent:s.name,effort:n??s.effort,...a?{worktree:a.path}:{}});try{await p.prompt(`${s.prompt}
77
+
78
+ Task:
79
+ ${e}`);let c=p.getSessionStats(),x=r??sL(p);return{text:rL(p),outputTokens:c.tokens.output,toolCalls:c.toolCalls,...x?{model:x}:{}}}finally{p.dispose(),a?.remove()}}}function sL(e){return e.model?.id??e.model?.name}function TE(e){let t=()=>e??wE;return Q0({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:iL,executionMode:"sequential",async execute(n,r,o,s,a){let p=r.path?Y0(r.path,"utf8"):r.code??"";if(!p.trim())throw new Ue("provide code or path");let{meta:c,body:x}=tL(p);if(r.path){let k=X0(r.path).replace(/\.(js|mjs|cjs|ts)$/,"");if(k!==c.name)throw new Ue(`meta.name "${c.name}" must match the script filename "${k}"`)}let y=nL(x),v=Date.now(),E=[],R=0,N=0,U=(k,Q)=>({name:c.name,...c.description?{description:c.description}:{},ok:k,agents:N,outputTokens:R,startedAt:v,phases:c.phases??[],steps:E,...Q?{error:Q}:{}}),H=(k,Q)=>{a.ui.setStatus(Jc,Q?void 0:yE(k)),s?.({content:[],details:U(!1)})},ce=k=>{N=k.length,R=k.reduce((Q,Tt)=>Q+Tt.outputTokens,0),E.splice(0,E.length,...k.map(Q=>({label:Q.label,phase:Q.phase,agent:Q.agentType,status:Q.status,outputTokens:Q.outputTokens,startedAt:Q.startedAt,...Q.toolCalls!==void 0?{toolCalls:Q.toolCalls}:{},...Q.model?{model:Q.model}:{},...Q.endedAt?{endedAt:Q.endedAt}:{},...Q.detail?{detail:Q.detail}:{},...Q.tasks?{tasks:Q.tasks}:{}}))),H({name:c.name,...c.description?{description:c.description}:{},phases:c.phases??[],steps:E,startedAt:v},!1)},Re=oL(),ye=uE({invoke:r.agent?aL(Re,r.agent):Re,budgetTotal:r.budget??null,onProgress:ce,...o?{signal:o}:{},...t()?.isPaused?{isPaused:t().isPaused}:{}}),Ve=new AbortController,Ft=setTimeout(()=>Ve.abort(),eL);o&&o.addEventListener("abort",()=>Ve.abort(),{once:!0}),t()?.onStop?.(()=>Ve.abort());try{let k=await Promise.race([y(ye.agent,ye.parallel,ye.pipeline,ye.phase,ye.log,ye.args,ye.budget),new Promise((Tt,Ge)=>Ve.signal.addEventListener("abort",()=>Ge(new Ue("workflow timed out or was aborted"))))]),Q=Date.now();return a.ui.setStatus(Jc,void 0),{content:[{type:"text",text:`${c.name}: ${N} agent call(s), ${R} output tokens in ${sr(Q-v)}
80
+
81
+ ${mL(k)}`}],details:{...U(!0),endedAt:Q}}}catch(k){let Q=k instanceof Error?k.message:String(k);return a.ui.setStatus(Jc,void 0),{content:[{type:"text",text:`${c.name} failed after ${N} agent call(s): ${Q}`}],details:{...U(!1,Q),endedAt:Date.now()},isError:!0}}finally{clearTimeout(Ft),t()?.onStop?.(null)}}})}function aL(e,t){return n=>e({...n,agentType:t})}function mL(e){if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var Jc,wE,eL,iL,Yc=m(()=>{yo();Ss();Gc();pE();As();Jc="workflow",wE=null;eL=600*1e3;iL=ie.Object({code:ie.Optional(ie.String({description:"The workflow script source"})),path:ie.Optional(ie.String({description:"Path to a workflow script, instead of code"})),agent:ie.Optional(Z0(["scout","task","reviewer"],{description:"Default agent profile for calls"})),budget:ie.Optional(ie.Number({description:"Output-token ceiling for the whole run"}))})});import{Type as kt}from"@earendil-works/pi-ai";import{defineTool as uL}from"@earendil-works/pi-coding-agent";var EE,vE=m(()=>{Ss();Ss();EE=uL({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:kt.Object({agent:kt.Optional(kt.String()),effort:kt.Optional(kt.String()),task:kt.Optional(kt.String()),tasks:kt.Optional(kt.Array(kt.Object({agent:kt.Optional(kt.String()),effort:kt.Optional(kt.String()),task:kt.String()})))}),executionMode:"parallel",async execute(e,t,n,r){let o=t.tasks&&t.tasks.length>0?t.tasks.map(p=>({agent:p.agent??t.agent??"task",task:p.task,effort:p.effort??t.effort})):[{agent:t.agent??"task",task:t.task??"",effort:t.effort}],s=[];for(let p of o)p.task.trim()&&(s.push(await HT(p)),r?.({content:[],details:{agents:s.map(c=>({id:c.id,agent:c.agent,status:c.status}))}}));if(s.length===0)throw new Error("task or tasks is required");return await VT(n),{content:[{type:"text",text:s.map(p=>`## ${p.agent}#${p.id} ${p.status}
82
+ ${p.result??""}`).join(`
83
+
84
+ `)}],details:{agents:s.map(p=>({id:p.id,status:p.status}))}}}})});var SE={};Mt(SE,{openSession:()=>yL});import{join as pL}from"node:path";import{createAgentSession as cL,createCodemodeExtension as lL,createMcpExtension as dL,DefaultResourceLoader as fL,SessionManager as Fm,SettingsManager as gL}from"@earendil-works/pi-coding-agent";function hL(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 yL(e){let t=gL.create(e.cwd,Ye,{projectTrusted:!0}),n=e.sessionPath?Fm.open(e.sessionPath):e.noSession?Fm.inMemory(e.cwd):e.continueSession?Fm.continueRecent(e.cwd):Fm.create(e.cwd),r=new fL({cwd:e.cwd,agentDir:Ye,settingsManager:t,appendSystemPrompt:[El],extensionFactories:[jT(),Pu(),ed(),Am(),GT(),FT(),qT(),lL(),dL()]});await r.reload();let o=await cL({cwd:e.cwd,agentDir:Ye,settingsManager:t,sessionManager:n,resourceLoader:r,tools:xL,customTools:[EE,od,sd,ym,Im,bT,DT,NT,TE()],thinkingLevel:e.thinking}),s=o.session.model;if(e.model){let c=await o.session.modelRuntime.getAvailable(),x=hL(c,e.model);if(!x)throw o.session.dispose(),new Error(`unknown model '${e.model}'`);(s?.id!==x.id||s.provider!==x.provider)&&(await o.session.setModel(x),s=o.session.model)}let a=s?`${s.provider}/${s.id}`:"no model",p=[o.modelFallbackMessage].filter(c=>!!c);return s||p.push(`no model configured. run \`howtofix\` and use /login, or edit ${pL(Ye,"models.json")}`),{session:o.session,dispose:()=>o.session.dispose(),modelLabel:a,note:p.length?p.join(`
85
+ `):void 0}}var xL,PE=m(()=>{vo();td();Nn();ti();Ou();Pc();bm();Em();Cc();_T();KT();Fc();Yc();vE();xL=["read","bash","edit","write","grep","find","ls","task","think","ask","todo","context","goal","enter_plan_mode","exit_plan_mode","workflow"]});import{mixColors as IL,styleText as RE}from"@earendil-works/pi-tui";function Ms(e,t,n){let r=LE(n);return r>=1?t:r<=0?e:IL(e,t,r)}function Zc(e,t,n,r){return!Or||e<=Xc?t:e>=ME?r:Ms(n,r,(e-Xc)/(ME-Xc))}function jE(e,t){return!Or||t<=0||e<0?1:1-(1-LE(e/t))**3}function FE(e,t){return Or&&e>=0&&e<t}function el(e,t,n=$L,r=400){return!Or||n<=0||e<0||e>=r?t:Math.min(t,Math.floor(e/n)+1)}function DE(e,t,n=Date.now(),r=1400){if(!Or||r<=0)return e;let o=n%r/r;return Ms(e,t,o<.5?o*2:(1-o)*2)}function wL(e,t){let n=Math.abs(e-t);return n>=OE?0:Math.ceil((1-n/OE)*CE)/CE}function NE(e,t,n=Date.now()){let r=t.charMs??bL;if(!Or||e.length===0||r<=0)return RE(e,{fg:t.base},Cm);let o=e.length+AE*2,s=n/r%o-AE,a=(E,R)=>RE(E,{fg:Ms(t.base,t.bright,R)},Cm),p="",c=0,x=null,y=0,v=0;for(let E of e){let R=wL(v,s);x===null?x=R:R!==x&&(p+=a(e.slice(c,y),x),c=y,x=R),y+=E.length,v+=1}return p+a(e.slice(c),x??0)}var Or,bL,OE,AE,Xc,ME,CE,LE,Dm,Qc,$L,tl=m(()=>{Ps();Or=process.env.HOWTOFIX_NO_MOTION!=="1",bL=45,OE=5,AE=8,Xc=1e4,ME=6e4,CE=3,LE=e=>e<0?0:e>1?1:e;Dm=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,!Or)return this.value=this.target,this.velocity=0,this.value;n>250&&(this.velocity=0);let o=150,s=2*Math.sqrt(o),a=Math.max(1,Math.ceil(r/.008)),p=r/a;for(let c=0;c<a;c+=1)this.velocity+=(this.target-this.value)*o*p-this.velocity*s*p,this.value+=this.velocity*p;return this.moving||(this.value=this.target,this.velocity=0),this.value}};Qc=260,$L=45});import{execFile as kL,execFileSync as UE}from"node:child_process";import{promisify as TL}from"node:util";import{createHash as GE}from"node:crypto";import{copyFileSync as EL,existsSync as vL,mkdirSync as Nm,readFileSync as SL,statSync as PL,writeFileSync as RL}from"node:fs";import{dirname as OL,join as ir,resolve as AL}from"node:path";function Dn(e,t,n){let r={...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 r[o];r.GIT_DIR=e.gitDir,r.GIT_WORK_TREE=e.root,r.GIT_AUTHOR_NAME=r.GIT_COMMITTER_NAME="howtofix",r.GIT_AUTHOR_EMAIL=r.GIT_COMMITTER_EMAIL="howtofix@local";try{return UE("git",t,{cwd:e.root,env:r,encoding:"utf8",stdio:["ignore","pipe","pipe"],input:n,maxBuffer:8*1024*1024}).trim()}catch(o){let s=o&&typeof o=="object"&&"stderr"in o&&typeof o.stderr=="string"?o.stderr.trim():"";throw new Error(s||(o instanceof Error?o.message:String(o)))}}async function _E(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 CL("git",t,{cwd:e.root,env:n,encoding:"utf8",maxBuffer:8*1024*1024});return r.trim()}function LL(e){return GE("sha1").update(e).digest("hex").slice(0,16)}function KE(e){let t=AL(e).replace(/\/+$/,"")||"/",n=ir(ML,LL(t)),r=ir(n,"git"),o={root:t,gitDir:r,metaFile:ir(n,"checkpoints.json")};return Nm(n,{recursive:!0}),vL(ir(r,"HEAD"))||(Nm(r,{recursive:!0}),UE("git",["init","--quiet","--initial-branch=howtofix"],{env:{...process.env,GIT_DIR:r},stdio:["ignore","ignore","pipe"]})),jL(t,r),o}function jL(e,t){let n=ir(e,".git","info","exclude");try{if(!PL(n).isFile())return;Nm(ir(t,"info"),{recursive:!0}),EL(n,ir(t,"info","exclude"))}catch{}}function rl(e){try{let t=JSON.parse(SL(e.metaFile,"utf8"));if(t?.version===1&&t.sessions)return t}catch{}return{version:1,sessions:{}}}function WE(e,t){Nm(OL(e.metaFile),{recursive:!0}),RL(e.metaFile,`${JSON.stringify(t,null,1)}
86
+ `,"utf8")}function ol(e,t){return[...rl(e).sessions[t]??[]].sort((n,r)=>n.at-r.at)}async function zE(e,t,n){let r;try{await _E(e,["add","-A","--ignore-errors","--"]),r=await _E(e,["write-tree"])}catch{return null}let s=ol(e,t).find(E=>E.tree===r),a=Date.now(),p=`${a.toString(36)}-${GE("sha1").update(`${r}:${a}`).digest("hex").slice(0,6)}`,c=s?.commit;if(!c){let E=["howtofix checkpoint",`session ${t}`,`created ${new Date(a).toISOString()}`,`prompt ${n.slice(0,200)}`].join(`
87
+ `);c=Dn(e,["commit-tree",r],`${E}
88
+ `),Dn(e,["update-ref",`${nl}/${p}`,c])}let x={id:p,tree:r,commit:c,prompt:n,at:a},y=rl(e),v=[...y.sessions[t]??[],x];for(let E of v.slice(0,Math.max(0,v.length-qE)))try{Dn(e,["update-ref","-d",`${nl}/${E.id}`])}catch{}return y.sessions[t]=v.slice(-qE),WE(e,y),x}function BE(e,t){let n=[];try{Dn(e,["read-tree","--reset","-u",t.tree])}catch(r){return{ok:!1,output:r instanceof Error?r.message:String(r),removed:n}}try{let r=Dn(e,["clean","-fd"]);for(let o of r.split(`
89
+ `)){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}}function HE(e,t){try{Dn(e,["add","-A","--ignore-errors","--"]);let n=Dn(e,["write-tree"]);return n===t.tree?[]:Dn(e,["diff-tree","-r","--name-status","--no-commit-id",t.tree,n]).split(`
90
+ `).filter(Boolean).map(o=>{let[s,...a]=o.split(" ");return`${s?.[0]??"?"} ${a.at(-1)??""}`})}catch{return[]}}function VE(e,t){let n=rl(e);for(let r of n.sessions[t]??[])try{Dn(e,["update-ref","-d",`${nl}/${r.id}`])}catch{}delete n.sessions[t],WE(e,n)}var ML,nl,qE,CL,JE=m(()=>{Nn();ML=ir(Ye,"rewind"),nl="refs/howtofix",qE=100;CL=TL(kL)});function al(e=90){let t=Math.floor(Date.now()/e)%sl.length;return sl[t]??sl[0]}function Cs(e,t){let n=e.replace(/\s+/g," ").trim();return n.length>t?`${n.slice(0,Math.max(1,t-1))}\u2026`:n}function He(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 FL(e,t=160){if(!e||typeof e!="object")return"";try{let n=JSON.stringify(e);return n&&n!=="{}"?Cs(n,t):""}catch{return""}}function DL(e,t){switch(e){case"read":{let n=He(t,"path")??"",r=[He(t,"offset"),He(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 He(t,"path")??"";case"bash":case"powershell":return He(t,"command")??"";case"grep":{let n=He(t,"pattern")??"",r=He(t,"path");return r?`${n} in ${r}`:n}case"find":case"glob":{let n=He(t,"pattern")??He(t,"glob")??"",r=He(t,"path");return r?`${n} in ${r}`:n}case"ls":return He(t,"path")??".";case"task":return He(t,"agent")??"task";case"ask":return He(t,"question")??"";case"think":return"private";case"todo":{let n=He(t,"op")??"view",r=He(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=He(t,"op")??"list",r=He(t,"key");return r?`${n} ${r}`:n}case"workflow":{let n=He(t,"path");if(n)return n;let r=He(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(`
91
+ `)[0]??"";return s.length>40?`${s.slice(0,40)}\u2026`:s}default:return FL(t)}}function Ls(e,t,n=100){let r=e.charAt(0).toUpperCase()+e.slice(1),o=Cs(DL(e,t),n);return o?`${YE} ${r}(${o})`:`${YE} ${r}`}function NL(e){let t=0,n=0;for(let r of e.split(`
92
+ `))r.startsWith("+")&&!r.startsWith("+++")?t+=1:r.startsWith("-")&&!r.startsWith("---")&&(n+=1);return{additions:t,removals:n}}function ZE(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 _m(e){let t=e?.details;return t&&typeof t=="object"?t:{}}function QE(e){let t=e?.structuredContent;return t&&typeof t=="object"?t:{}}function XE(e){let t=e.exit_code;return typeof t=="number"&&Number.isFinite(t)?t:void 0}function qL(e){return e.trim().split(`
93
+ `).find(t=>t.trim())??""}function _L(e,t){let n=typeof e.output=="string"?e.output:t.replace(/\n*Command exited with code \d+\s*$/,""),r=qm(n);return r>0?` (${r} line${r===1?"":"s"})`:""}function qm(e){let t=e.trim();return t?t.split(`
94
+ `).length:0}function ko(e,t,n){let r=ZE(t),o=_m(t),s=QE(t);if(n){let a=XE(s);if(a!==void 0&&(e==="bash"||e==="powershell"))return`exit ${a}`;let p=r.trim().split(`
95
+ `).find(c=>c.trim());return Cs(p??"failed",120)}switch(e){case"read":{let a=o.truncation,p=qm(r.replace(/\n*\[[^\]]*\]\s*$/,"")),c=p===0?"empty":`${p} line${p===1?"":"s"}`;return a?.truncated?`${c} (truncated from ${a.totalLines??"?"})`:c}case"edit":{let a=typeof o.diff=="string"?o.diff:"";if(!a)return"applied";let{additions:p,removals:c}=NL(a);return`+${p} / -${c}`}case"write":{let a=qm(r);return a>0?`written (${a} lines)`:"written"}case"bash":case"powershell":{let a=XE(s);if(a===void 0)return r.trim()?Cs(qL(r),120):"done";let p=_L(s,r);return a===0?`exit 0${p}`:`exit ${a}`}case"grep":{let a=qm(r);return a===0?"no matches":`${a} match${a===1?"":"es"}`}case"todo":{let a=o.todos??[];if(!Array.isArray(a)||a.length===0)return"list cleared";let p=a.filter(x=>x.status==="completed").length,c=a.filter(x=>x.status==="pending"||x.status==="in_progress").length;return`${p}/${a.length} done, ${c} open`}case"context":{let a=o.notes,p=a?Object.keys(a).length:0;return p===0?"no notes":`${p} note${p===1?"":"s"} held`}case"workflow":{let a=typeof o.agents=="number"?o.agents:0,p=typeof o.outputTokens=="number"?o.outputTokens:0,c=Array.isArray(o.steps)?o.steps.filter(y=>y.status==="failed").length:0;if(typeof o.error=="string")return`failed after ${a} agent(s)`;let x=typeof o.startedAt=="number"&&typeof o.endedAt=="number"?`, ${sr(o.endedAt-o.startedAt)}`:"";return`${a} agent(s), ${p} tokens${x}${c>0?`, ${c} failed`:""}`}default:{let a=r.trim().split(`
96
+ `).find(p=>p.trim());return a?Cs(a,120):"done"}}}function ev(e,t){let n=_m(t);if(e==="edit"&&typeof n.diff=="string")return n.diff.split(`
97
+ `).filter(r=>r.length>0).slice(0,12);if(e==="bash"||e==="powershell"){let r=QE(t);return(typeof r.output=="string"?r.output:ZE(t).replace(/\n*Command exited with code \d+\s*$/,"")).trimEnd().split(`
98
+ `).filter(a=>a.trim()).slice(-4)}if(e==="todo"){let r=n.todos??[],o={pending:"[ ]",in_progress:"[>]",completed:"[x]",dropped:"[-]"};return r.slice(0,6).map(s=>`${o[s.status??"pending"]??"[ ]"} ${s.content??""}`)}return e==="workflow"?(n.steps??[]).map(s=>{let a=s.status==="running"?"\u25B8":s.status==="failed"?"\xD7":"\u2713",p=s.phase?`${s.phase} \xB7 `:"";return`${a} ${p}${s.label??"agent"}`}).slice(-6):[]}var YE,il,sl,ml=m(()=>{As();YE="\u25CF",il="\u2514",sl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});import{Markdown as UL,wrapTextWithAnsi as GL}from"@earendil-works/pi-tui";function tv(e){return typeof e=="string"?e:e.map(t=>t.type==="text"?t.text:t.type==="thinking"?"":t.type==="image"?"[image]":(t.type==="toolCall","")).filter(Boolean).join("")}function KL(e){return e.content.filter(t=>t.type==="toolCall").map(t=>({name:t.name,arguments:t.arguments}))}function pl(e){let t=[];for(let n of e)if(n.role==="user"){let r=tv(n.content).trim();if(!r)continue;t.push({id:`u-${n.timestamp}`,kind:"user",title:"you",body:r})}else if(n.role==="assistant"){let r=tv(n.content).trim(),o=KL(n);r?t.push({id:`a-${n.timestamp}`,kind:n.stopReason==="error"?"error":"assistant",title:n.errorMessage?"failed":"fix",body:n.errorMessage?`${n.errorMessage}
99
+
100
+ ${r}`:r}):n.errorMessage&&t.push({id:`e-${n.timestamp}`,kind:"error",title:"failed",body:n.errorMessage}),o.forEach((s,a)=>{t.push({id:`c-${n.timestamp}-${a}`,kind:"tool",title:"tool",body:Ls(s.name,s.arguments)})})}else n.role==="toolResult"&&t.push({id:`r-${n.toolCallId}`,kind:"result",title:n.toolName,body:ko(n.toolName,{content:n.content},n.isError)});return t}function nv(e,t,n){return GL(e,Math.max(8,t)).map(r=>oe(r,n))}function WL(e){let t=e.body||" ",n=js.get(e.id);if(n)return n.text!==t&&(n.component.setText(t),n.text=t),n.component;let r=new UL(t,0,0,cE);return js.set(e.id,{text:t,component:r}),r}var js,ul,Um,rv=m(()=>{tl();Ps();ml();js=new Map;ul=class{constructor(t){this.item=t}item;invalidate(){}shade(t){let n=Date.now()-(this.item.born??0);return Ms(F.dim,t,jE(n,Qc))}render(t){let n=this.item.body;if(this.item.kind==="user")return["",...nv(`> ${n}`,t,this.shade(F.user))];if(this.item.kind==="tool")return[oe(n,this.shade(F.tool))];if(this.item.kind==="result"){let o=n.startsWith("exit ")&&n!=="exit 0";if(this.item.panel)return["",...this.item.panel(t),...n?[oe(` ${il} ${n}`,o?F.bad:F.mute)]:[]];let s=[];this.item.call&&s.push(oe(this.item.call,this.shade(F.tool)));let a=` ${il} ${n}`;s.push(oe(a,o?F.bad:this.shade(F.mute)));let p=this.item.detail??[],c=el(Date.now()-(this.item.born??0),p.length);for(let x of p.slice(0,c)){let y=x.startsWith("+")?F.tool:x.startsWith("-")?F.bad:F.dim;s.push(oe(` ${x}`,this.shade(y)))}return s}if(this.item.kind==="error"||this.item.kind==="note"){let o=this.item.kind==="error"?F.bad:F.mute;return["",...nv(n,t,this.shade(o))]}return["",...WL(this.item).render(Math.max(8,t-2))]}},Um=class{items=[];status="";scrollOffset=0;viewportHeight=0;invalidate(){}entering(){let t=Date.now();return this.items.some(n=>{if(n.born===void 0)return!1;let r=t-n.born;return FE(r,Qc)?!0:(n.detail?.length??0)>el(r,n.detail?.length??0)})}render(t){if(js.size>this.items.length){let o=new Set(this.items.map(s=>s.id));for(let s of js.keys())o.has(s)||js.delete(s)}let n=[];for(let o of this.items)o.born??=Date.now(),n.push(...new ul(o).render(t));this.status&&n.push(oe(this.status,F.mute));let r=this.viewportHeight;if(r>0&&n.length>r){let o=n.length-r,s=Math.max(0,Math.min(this.scrollOffset,o));return this.scrollOffset=s,n.slice(o-s,o-s+r)}return this.scrollOffset=0,n}}});function mt(e,t){return`${t}${e}${sv}`}function BL(e){return e>=85?zL:e>=70?av:iv}function mv(e,t,n,r){let o=mt(`[${e}]`,cl),s=mt(`${HL} ${t}`,Pn),a=mt(n,av),p=r?` ${mt("git:(",ov)}${mt(r.replace(/^git:\(/,"").replace(/\)$/,""),cl)}${mt(")",ov)}`:"";return`${o}${mt(" \u2502 ",Pn)}${s}${mt(" \u2502 ",Pn)}${a}${p}`}function uv(e,t,n){if(!t)return e;let r=n===void 0?t:`${t} ${mt(fE(n),Pn)}`;return`${mt(r,cl)} ${mt("\u2502",Pn)} ${e}`}function pv(e,t){let n=Number.isFinite(e)?Math.min(100,Math.max(0,e)):0,r=Math.round(n/10),o=BL(n),s=`${o}${"\u2588".repeat(r)}${Pn}${"\u2591".repeat(10-r)}${sv}`,a=mt(`${Math.round(n)}%`,o),p=t?`${mt(" \u2502 ",Pn)}${t}`:"";return`${mt("Context",Pn)} ${s} ${a}${p}`}function cv(e,t,n){let r=n===null?"":mt(` ${n}ms`,Pn);return`${mt("Cubence",Pn)} ${mt(t?`${t} ${e}`:e,iv)}${r}`}var sv,Pn,zL,iv,av,ov,cl,HL,ll=m(()=>{As();sv="\x1B[0m",Pn="\x1B[2m",zL="\x1B[31m",iv="\x1B[32m",av="\x1B[33m",ov="\x1B[35m",cl="\x1B[36m";HL="\u2726"});import{mkdirSync as VL,readFileSync as dv,writeFileSync as JL}from"node:fs";import{homedir as YL}from"node:os";import{dirname as XL,join as ZL}from"node:path";function lv(e){return e/1e6}function ej(){try{let e=JSON.parse(dv(ZL(YL(),".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 tj(){try{let e=JSON.parse(dv(dl,"utf8"));return!e.data||typeof e.cachedAt!="number"?void 0:{data:e.data,cachedAt:e.cachedAt}}catch{return}}function Fs(e){let t=`$${e.balanceDollar.toFixed(2)}`,n=e.hasSubscription?`5h $${e.fiveHourUsedDollar.toFixed(2)}/$${e.fiveHourLimitDollar.toFixed(2)} bal`:"";return cv(t,n,e.latencyMs)}async function fv(){let e=tj();if(e&&Date.now()-e.cachedAt<QL)return Fs(e.data);let t=ej();if(!t)return e?Fs(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?Fs(e.data):void 0;let o=await r.json(),s=o.subscription_window?.five_hour?.limit??0,a={balanceDollar:o.normal_balance?.amount_dollar??0,hasSubscription:s>0,fiveHourUsedDollar:lv(o.subscription_window?.five_hour?.used??0),fiveHourLimitDollar:lv(s),latencyMs:Date.now()-n};return VL(XL(dl),{recursive:!0}),JL(dl,JSON.stringify({data:a,cachedAt:Date.now()})),Fs(a)}catch{return e?Fs(e.data):void 0}}var dl,QL,gv=m(()=>{Nn();ll();dl=iu,QL=18e4});function xv(){return{}}function hv(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 nj(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 yv(e,t,n=Date.now()){return e.prompt?`? ${e.prompt}`:e.note?`* ${e.note}`:e.run?`${t} ${e.run.label} \xB7 ${nj(n-e.run.since)}`:e.tally?e.tally:""}var Iv=m(()=>{});import{spawn as rj}from"node:child_process";function oj(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 bv(e,t=process.platform){let n=oj(t);return n?new Promise(r=>{try{let o=rj(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 $v=m(()=>{});import{mkdirSync as sj,writeFileSync as ij}from"node:fs";import{join as aj}from"node:path";import{matchesKey as Gm}from"@earendil-works/pi-tui";function kv(){return{selectedPhase:0,filter:"all",paused:!1,expanded:!1,follow:!0}}function Tv(e){if(Gm(e,"up"))return"up";if(Gm(e,"down"))return"down";if(Gm(e,"enter"))return"enter";if(Gm(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 wv(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 mj(e){let t=fl.indexOf(e);return fl[(t+1)%fl.length]}function Ev(e,t,n){switch(t){case"up":return wv(e,n,-1);case"down":return wv(e,n,1);case"enter":return{...e,expanded:!e.expanded};case"filter":return{...e,filter:mj(e.filter)};case"pause":return{...e,paused:!e.paused};default:return e}}function vv(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 Sv(e){return e==="all"?"":` \xB7 ${e}`}function Rv(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 uj(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 Ov(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=uj(e.name);if(!n)return{ok:!1,reason:`"${e.name}" is not a usable filename, so the script was not written`};let r=aj(t,`${n}.js`);try{sj(t,{recursive:!0}),ij(r,e.code,"utf8")}catch(o){return{ok:!1,reason:o instanceof Error?o.message:String(o)}}return{ok:!0,path:r}}var fl,Pv,Av=m(()=>{fl=["all","running","failed","done"];Pv="ctrl+f"});function Mv(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 Cv=m(()=>{});var Gv={};Mt(Gv,{Dock:()=>zm,Hud:()=>Wm,approvalDetail:()=>_v,orderModelsForDefault:()=>Nv,pickerPanel:()=>qv,runWorkbench:()=>Lj,workflowPanel:()=>Uv,workflowPanelFromRun:()=>qs,workflowRunOf:()=>Bm});import{execFileSync as yl}from"node:child_process";import{existsSync as pj,mkdirSync as cj,readFileSync as lj,writeFileSync as gl}from"node:fs";import{basename as dj,join as Lv,resolve as fj}from"node:path";import{copyToClipboard as gj,SessionManager as xj}from"@earendil-works/pi-coding-agent";import{CombinedAutocompleteProvider as jv,Container as hj,Editor as yj,matchesKey as Ht,ProcessTerminal as Ij,ScrollView as bj,KeybindingsManager as $j,setKeybindings as wj,TUI_KEYBINDINGS as kj,SelectList as Tj,TuiAltScreen as Ej,truncateToWidth as Ns,VStack as vj,visibleWidth as Km,wrapTextWithAnsi as Sj,getNativeClipboard as Pj}from"@earendil-works/pi-tui";function Rj(e){if(typeof e!="object"||e===null)return;let t=e[Dv];return typeof t=="function"?t.call(e):void 0}function Ar(e){try{let t=yl("git",["-C",e,"rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();if(!t||t==="HEAD")return"";let n=yl("git",["-C",e,"status","--porcelain"],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim();return`git:(${t}${n?"*":""})`}catch{return""}}function Nv(e){let t=n=>{if(Aj.test(n))return 100;let r=Oj.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 qv(e,t,n,r=!1,o=[]){let s=Math.max(24,n),a=s-4,p=(H,ce)=>{let Re=Km(H)>a?Ns(H,a,"\u2026"):H,ye=`${Re}${" ".repeat(Math.max(0,a-Km(Re)))}`;return`\u2502 ${ce?ce(ye):ye} \u2502`},c="\u2500".repeat(s-2),x=[p(` ${t}`),...e.render(a).map(H=>p(H))],y=o.flatMap(H=>H===""?[""]:Sj(H,a)),v=y.length>0?[p(""),...y.map(H=>p(H,ce=>oe(ce,F.mute)))]:[];if(!r)return["",`\u250C${c}\u2510`,...x,...v,`\u2514${c}\u2518`];let E=DE(F.line,F.warn,Date.now(),1400),R=oe("\u2502",E),N=(H,ce)=>oe(`${H}${c}${ce}`,E),U=[...x,...v].map(H=>`${R}${H.slice(1,-1)}${R}`);return["",N("\u250C","\u2510"),...U,N("\u2514","\u2518")]}function _v(e,t){let n=t.split(`
101
+ `).filter(Boolean),r=n.filter(a=>a.startsWith("Reason:")),o=n.filter(a=>!a.startsWith("Reason:")&&!a.startsWith("Allow tool:"));return[...e.endsWith(" wants to run")?[]:[e],...r,...o.length>0?["",...o]:[]]}function Ds(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,r=[...e.state.messages].reverse().find(o=>o.role==="assistant")?.usage;return!n||!r||n.contextWindow<=0?0:Math.min(100,Math.round(r.totalTokens/n.contextWindow*100))}function hl(e){let n=[["init","write project notes to AGENTS.md"],["model","choose a model"],["providers","list providers"],["thinking","set thinking level"],["approval","set what needs approval"],["connect","connect a howtofix.id account"],["login","save a provider API key"],["logout","remove a provider"],["new","start a new session"],["resume","resume another session"],["compact","compact the session"],["name","name this session"],["stats","session tokens and cost"],["diff","show the working tree diff"],["commit","stage everything and commit"],["undo","undo the last commit"],["rewind","revert files to an earlier prompt (Esc Esc)"],["review","ask the agent to review the diff"],["tools","list active tools"],["export","write the transcript to a markdown file"],["copy","copy the last answer to the clipboard"],["agents","show spawned agents"],["goal","set or view this session's goal"],["plan","toggle plan mode (design before editing)"],["workflow","show or clear the pinned workflow panel"],["session","show the current model"],["help","list commands"],["quit","quit"]].map(([r,o])=>({name:r,description:o}));for(let r of e.promptTemplates)n.push({name:r.name,description:r.description});for(let r of e.extensionRunner.getRegisteredCommands())n.push({name:r.invocationName,description:r.description});return n}function Bm(e,t){if(e!=="workflow")return;let n=_m(t);if(!(typeof n.name!="string"||!Array.isArray(n.steps)))return n}function Uv(e,t){let n=Bm(e,t);return n?qs(n):void 0}function qs(e,t,n=!1){return r=>$E(e,[],r,t?.selectedPhase,t?Mj(e,t,n):void 0)}function Mj(e,t,n){return{filter:r=>vv(r,t.filter),footerText:Rv(t,e.endedAt===void 0,n),filterLabel:Sv(t.filter),drill:t.expanded}}function Cj(){let e=new $j(kj,{"tui.altScreen.pageUp":[],"tui.altScreen.pageDown":[],"tui.altScreen.halfPageUp":[],"tui.altScreen.halfPageDown":[],"tui.altScreen.top":[],"tui.altScreen.bottom":[]});wj(e)}async function Lj(e){let t=new Ij,n=new Ej(t,!0,void 0,{mouse:!0}),r=new Um,o=new Wm(e.cwd,e.modelLabel),s=new yj(n,Fv,{paddingX:1}),a=new Map,p=f=>{let h=[];for(let w of a.values())h.push(...w(f));return h},c=(f,h)=>{h===void 0?a.delete(f):typeof h=="function"?a.set(f,h):a.set(f,()=>h)},x=()=>Math.max(20,t.columns),y,v=0,E=kv(),R,N=null,U=!1,H=!1,ce,Re=()=>{!R||!U||c("workflow",f=>qs(R,E,H)(f))},ye=()=>{U=!1,H=!1,c("workflow",void 0)};kE({onStop:f=>{N=f},isPaused:()=>E.paused});let Ve=f=>{y=f;let h=f.endedAt??Date.now();v=Math.max(v,h+Lm),R=f,U=!0,c("workflow",w=>qs(f,E,H)(w))},Ft=new zm(s,o,p),k=e.session,Q=!1,Tt,Ge=()=>Tt??=KE(e.cwd),Vt,Rn=0,To=async()=>{let f=Ge(),h=ol(f,k.getSessionStats().sessionId);if(h.length===0){M("rewind","no checkpoints yet \u2014 one is taken before each prompt");return}let w=[...h].reverse().map(b=>{let D=HE(f,b),g=new Date(b.at).toISOString().slice(11,19);return{value:b.id,label:`${g} ${b.prompt.slice(0,48)||"(no prompt)"}`,description:D.length===0?"no file changes to revert":`${D.length} file(s): ${D.slice(0,3).join(", ")}`}});vt("Rewind to a checkpoint (code only)",w,b=>{let D=h.find(A=>A.id===b);if(!D)return;let g=BE(f,D);if(!g.ok){On(`rewind failed: ${g.output}`);return}let I=g.removed.length>0?`
102
+ removed ${g.removed.length} file(s): ${g.removed.slice(0,3).join(", ")}`:"";M("rewind",`${g.output}${I}`),o.git=Ar(e.cwd),J()})};e.note&&r.items.push({id:"note",kind:"note",title:"note",body:e.note}),r.items.push(...pl(k.state.messages)),o.percent=Ds(k),o.abandonAnimations(),o.thinking=k.thinkingLevel,s.setAutocompleteProvider(new jv(hl(k),e.cwd)),fv().then(f=>{f&&(o.cubence=f,n.requestRender())});let Je=null,Jt="",gt=!1,Et=[],Mr=()=>{},J=()=>{Mr(),n.requestRender()},Ie=(f,h)=>{o.activity=hv(o.activity,f,h)},_s=new Map,Hm=new Set,Wv=()=>[..._s].map(([f,h])=>`${Hm.has(f)?"!":"\u2713"} ${f} \xD7${h}`).join(" | "),zv=()=>{let f=Wv();Ie("tally",f||void 0)},vt=(f,h,w,b,D=!1,g=[])=>{let I=new Tj(h,8,Fv.selectList);I.onSelect=A=>{Je=null,w(A.value)},I.onCancel=()=>{Je=null,b?.(),J()},Jt=f,gt=D,Et=g,Je=I,J()},M=(f,h)=>{r.items.push({id:`cmd-${Date.now()}-${r.items.length}`,kind:"note",title:f,body:h}),Ie("tally",void 0),J()},On=f=>{r.items.push({id:`err-${Date.now()}-${r.items.length}`,kind:"error",title:"failed",body:f}),Ie("tally",void 0),J()};Su((f,h)=>{let{promise:w,resolve:b}=Promise.withResolvers();return vt(f,[{value:"allow",label:"allow"},{value:"deny",label:"deny"}],D=>b(D==="allow"),()=>b(!1),!0,_v(f,h)),w});let Vm=new Map,Il=f=>{let h=Mv({select:(w,b)=>{let{promise:D,resolve:g}=Promise.withResolvers();return vt(w,b.map(I=>({value:I,label:I})),g,()=>g(void 0)),D},confirm:(w,b)=>{let{promise:D,resolve:g}=Promise.withResolvers();return vt(`${w} \u2014 ${b}`,[{value:"yes",label:"yes"},{value:"no",label:"no"}],I=>g(I==="yes"),()=>g(!1)),D},input:w=>{let{promise:b,resolve:D}=Promise.withResolvers();return Ie("prompt",w),J(),sn=g=>{sn=void 0,Ie("prompt",void 0),D(g),J()},b},notify:(w,b)=>{b==="error"?On(w):M("mcp",w)},setStatus:(w,b)=>{b===void 0?Vm.delete(w):Vm.set(w,b),Ie("note",[...Vm.values()].join(" | ")||void 0),J()},setWidget:(w,b)=>{c(w,b),J()}});f.bindExtensions({uiContext:h,mode:"print",onError:w=>On(`${w.event}: ${w.error}`)}).catch(w=>On(w instanceof Error?w.message:String(w)))};Il(k);let Cr=new hj,Bv={invalidate:()=>r.invalidate(),render:f=>{let h=Cr.render(Math.max(20,f)).length;return r.viewportHeight=Math.max(1,Math.max(8,t.rows)-h),r.render(f)},handleMouse:f=>{let h=f.type==="wheel"?f.wheelDelta??0:0;if(h!==0)return r.scrollOffset=Math.max(0,r.scrollOffset-h*3),J(),{handled:!0}}},Hv=new bj(Bv,{follow:"none",overscroll:"contain"}),Us=new vj([{component:Hv,grow:1,shrink:1},{component:Cr,grow:0,shrink:0,basis:"auto"}]),Vv=f=>({render:()=>[f],invalidate:()=>{}}),bl="",Jv=()=>`${Je?"picker":"dock"}|${[...a.keys()].join(",")}`;Mr=()=>{let f=Jv();if(f===bl)return;bl=f,Cr.clear();for(let w of p(Math.max(20,t.columns)))Cr.addChild(Vv(w));let h=Je;if(h){let w=Jt,b=gt,D=Et;Cr.addChild({render:g=>qv(h,w,g,b,D),invalidate:()=>{}})}else Cr.addChild(Ft);Us.invalidate()},Mr();let $l={focused:!1,invalidate(){r.invalidate(),Ft.invalidate(),Je?.invalidate(),Us.invalidate()},[Dv]:()=>Rj(Us),render:f=>Us.render(f),handleInput(f){if(Je){Je.handleInput(f);return}s.handleInput(f)}};n.setLayoutRoot($l),n.setFocus($l);let Eo=0,Lr="",Jm=!1,Ym=!1,Xm=Date.now(),Zm=new Map,wl=f=>{if(f.type==="agent_start"||f.type==="turn_start")f.type==="agent_start"&&_l(),o.live||o.beginRun(),Lr="",Jm=!1,Ym=!1,Xm=Date.now();else if(f.type==="message_update"&&f.assistantMessageEvent.type==="text_delta"){Jm=!0,Lr+=f.assistantMessageEvent.delta;let h=`live-${Eo}`,w=r.items.find(b=>b.id===h);w?w.body=Lr:r.items.push({id:h,kind:"assistant",title:"HowToFix",body:Lr})}else if(f.type==="tool_execution_start"){if(Zm.set(f.toolCallId,f.args),r.items.push({id:`tool-${f.toolCallId}`,kind:"tool",title:f.toolName,body:Ls(f.toolName,f.args),live:!0}),f.toolName==="task"){let h=rn.filter(w=>w.status==="queued"||w.status==="running");Ie("note",h.map(w=>`${w.agent} ${w.status}`).join(" | ")||"agent running")}}else if(f.type==="tool_execution_update"){let h=Uv(f.toolName,f.partialResult);if(h){let w=r.items.find(D=>D.id===`res-${f.toolCallId}`);w?(w.panel=h,w.body=ko(f.toolName,f.partialResult,!1)):r.items.push({id:`res-${f.toolCallId}`,kind:"result",title:f.toolName,body:ko(f.toolName,f.partialResult,!1),panel:h});let b=Bm(f.toolName,f.partialResult);b&&Ve(b),J()}}else if(f.type==="tool_execution_end"){o.percent=Ds(k);let h=r.items.find(A=>A.id===`tool-${f.toolCallId}`);h&&(h.live=!1,h.body=Ls(f.toolName,Zm.get(f.toolCallId))),Zm.delete(f.toolCallId),_s.set(f.toolName,(_s.get(f.toolName)??0)+1),f.isError&&Hm.add(f.toolName),zv();let w=ev(f.toolName,f.result),b=Bm(f.toolName,f.result),D=b?qs(b):void 0;b&&Ve(b);let g=r.items.find(A=>A.id===`tool-${f.toolCallId}`),I=ko(f.toolName,f.result,f.isError);g?(g.kind="result",g.call=g.body,g.body=I,g.live=!1,w.length>0&&(g.detail=w),D&&(g.panel=D)):r.items.push({id:`tool-${f.toolCallId}`,kind:"result",title:f.toolName,body:I,...w.length>0?{detail:w}:{},...D?{panel:D}:{}}),(f.toolName==="bash"||f.toolName==="powershell"||f.toolName==="edit"||f.toolName==="write")&&(o.git=Ar(e.cwd))}else if(f.type==="message_end"&&f.message.role==="assistant"){let h=r.items.find(w=>w.id===`live-${Eo}`);h&&(h.id=`done-${Eo}`),Eo+=1,Lr="",o.percent=Ds(k)}else f.type==="agent_settled"?(o.live=!1,Ie("run",void 0),o.percent=Ds(k),o.git=Ar(e.cwd),s.disableSubmit=!1):f.type==="thinking_level_changed"?o.thinking=f.level:f.type==="auto_retry_start"&&Ie("note",`retry ${f.attempt}/${f.maxAttempts}`);J()},Qm=k.subscribe(wl),kl=setInterval(()=>{let f=y!==void 0&&Date.now()<v;(k.isStreaming||o.settling()||r.entering()||Je||f)&&J(),k.isStreaming&&!Jm&&!Ym&&Date.now()-Xm>jj&&(Ym=!0,Ie("note",`no answer yet after ${Math.round((Date.now()-Xm)/1e3)}s \u2014 the provider may be stalled; ctrl+c cancels`),J())},90);kl.unref?.();let Tl=async f=>{Qm(),Tt&&VE(Tt,k.getSessionStats().sessionId),Vt=void 0,Rn=0,k.dispose(),k=f.session,Eo=0,Lr="",r.items=[],f.note&&r.items.push({id:"note",kind:"note",title:"note",body:f.note}),r.items.push(...pl(k.state.messages)),o.model=f.modelLabel.split("/").at(-1)||"no-model",o.thinking=k.thinkingLevel,o.percent=Ds(k),o.abandonAnimations(),Ie("tally",void 0),Ie("run",void 0),s.setAutocompleteProvider(new jv(hl(k),e.cwd)),s.disableSubmit=!1,Il(k),Qm=k.subscribe(wl),J()},Gs=()=>{Q||(Q=!0,clearInterval(kl),Qm(),k.dispose(),n.stop(),process.stdout.write("\x1B[0m"),process.exit(0))},eu=f=>{let h=f.trim();if(!h)return;if(sn){let g=sn;sn=void 0,s.setText(""),g(h);return}if(s.setText(""),s.addToHistory(h),h.startsWith("!")){let g=h.slice(1).trim();if(!g)return;r.items.push({id:`sh-${Date.now()}`,kind:"tool",title:"$",body:g}),Ie("run","shell"),J(),k.executeBash(g,I=>{Ie("run",`shell \xB7 ${I.length} bytes`),J()}).then(I=>{let A=I.output.trim();r.items.push({id:`sh-out-${Date.now()}`,kind:I.exitCode===0?"result":"error",title:`exit ${I.exitCode??"?"}`,body:A||"(no output)"}),Ie("tally",void 0),J()}).catch(I=>On(I instanceof Error?I.message:String(I)));return}if(h.startsWith("/")){Xv(h);return}r.items.push({id:`you-${Date.now()}`,kind:"user",title:"you",body:h}),Ie("tally",void 0),_s.clear(),Hm.clear(),Ie("run","thinking"),o.beginRun(),J(),s.disableSubmit=k.isStreaming;let w=yu(h,e.cwd),b=Date.now(),D=k.isStreaming;(async()=>{try{let I=Ge(),A=await zE(I,k.getSessionStats().sessionId,h);A&&b>=Rn&&(Vt=A,Rn=b)}catch{}(D?k.followUp(w):k.prompt(w)).catch(I=>On(I instanceof Error?I.message:String(I)))})()};s.onSubmit=eu;let tu=0;n.addInputListener(f=>{if(U&&R&&Ht(f,"escape"))return H?(H=!1,M("workflow","panel keys off \u2014 the editor has the keyboard")):E.expanded?(E.expanded=!1,M("workflow","collapsed the drill-in")):(ye(),M("workflow","panel unpinned; the run is still in the transcript")),Re(),J(),{consume:!0};if(Ht(f,"escape")){let w=Date.now();if(s.getText().length===0&&w-tu<600&&!k.isStreaming&&!Je)return tu=0,To(),{consume:!0};tu=w;return}if(Ht(f,"ctrl+c"))return k.isStreaming?(k.abort(),Ie("note","stopping"),J()):Gs(),{consume:!0};if(Ht(f,"ctrl+d")&&s.getText().length===0)return Gs(),{consume:!0};let h=Math.max(1,r.viewportHeight-1);if(Ht(f,"pageUp"))return r.scrollOffset+=h,J(),{consume:!0};if(Ht(f,"pageDown"))return r.scrollOffset=Math.max(0,r.scrollOffset-h),J(),{consume:!0};if(Ht(f,"home"))return r.scrollOffset=Number.MAX_SAFE_INTEGER,J(),{consume:!0};if(Ht(f,"end"))return r.scrollOffset=0,J(),{consume:!0};if(Ht(f,"ctrl+v")){let w=Pj();return w?(w.getText().then(b=>{typeof b!="string"||b.length===0?M("paste","the clipboard is empty"):s.insertTextAtCursor(b),J()}).catch(b=>{M("paste",`could not read the clipboard: ${b instanceof Error?b.message:String(b)}`),J()}),{consume:!0}):(M("paste","no clipboard tool found on this machine"),J(),{consume:!0})}if(Ht(f,"ctrl+l"))return r.scrollOffset=0,n.scrollToBottom(),J(),{consume:!0};if(Ht(f,"ctrl+o")&&!k.isStreaming)return r.items=[{id:"cleared",kind:"note",title:"bench",body:"screen cleared. session history is still stored."}],J(),{consume:!0};if(Ht(f,Pv)&&U&&R)return H=!H,M("workflow",H?"panel keys active \u2014 Esc gives the keyboard back":"panel keys off \u2014 the editor has the keyboard"),Re(),J(),{consume:!0};if(H&&U&&R){let w=Tv(f);if(w){let b=wo(R,Date.now());if(w==="stop")return N?(N(),N=null,M("workflow","stopping the run \u2014 in-flight agents resolve as null")):M("workflow","the run has already finished"),{consume:!0};if(w==="save"){let D=Ov(ce,au);return M("workflow",D.ok?`saved ${D.path}`:D.reason),J(),{consume:!0}}return Object.assign(E,Ev(E,w,b)),Re(),J(),{consume:!0}}}});let nu=f=>{let h=w=>{Ie("prompt",`API key for ${w}. Paste it, then press enter.`),J();let b=sn;sn=D=>{sn=b;let g=D.trim();if(!g){Ie("prompt",void 0),J();return}k.modelRuntime.setRuntimeApiKey(w,g).then(()=>M("login",`saved API key for ${w}`),I=>M("login",I instanceof Error?I.message:String(I)))}};if(f){h(f);return}k.modelRuntime.getAvailable().then(w=>{let b=[...new Set(w.map(D=>D.provider))].sort();if(b.length===0){M("login","no providers are configured; pass one explicitly, e.g. /login nrimo");return}vt("Login",b.map(D=>({value:D,label:D})),h)},w=>M("login",w instanceof Error?w.message:String(w)))},Yv=async(f,h)=>{let w=Lv(Ye,"models.json"),b,D=!1;try{b=JSON.parse(lj(w,"utf8"))}catch(ou){if(!(ou instanceof Error&&"code"in ou&&ou.code==="ENOENT"))return`could not read ${w}; the models were not added`;b={providers:{}},D=!0}(!b.providers||typeof b.providers!="object")&&(b.providers={});let g=b.providers[f];g||(g=pu(),b.providers[f]=g,D=!0);let I=Array.isArray(g.models)?g.models:[],A=fu(I,h),re=Js(du(I,h));g.models=re.models;try{cj(Ye,{recursive:!0}),gl(w,`${JSON.stringify(b,null,2)}
103
+ `)}catch{return`could not write ${w}; the models were not added`}let De=!1;try{await k.modelRuntime.refresh(),De=!0}catch{De=!1}let an=re.changed>0?`, repaired ${re.changed}`:"",mn=De?"":"; restart the CLI to see them all",Ks=D?` (created ${w})`:"";return A===0?`all ${h.length} models were already configured${an}${Ks}${mn}`:`added ${A} model(s) to "${f}"${an}${Ks}${mn}`},ru=f=>{(async()=>{if(!f){let I=await bv(Hs);M("connect",["connect your howtofix.id account:",` 1. ${I?"the token page is opening in your browser":`open ${Hs}`}`," 2. sign in if asked, then create a token (starts with sk-)"," 3. run /connect <token>"," or /connect, and paste the token when asked","","howtofix.id has no OAuth callback for a local client, so the token is","how this CLI signs in. The token is verified before it is stored."].join(`
104
+ `)),J();return}if(!lu(f)){M("connect","that does not look like a howtofix token; the Console issues tokens that start with sk-");return}Ie("note",`connecting to howtofix.id (${Vs(f)})`),J();let h=await xu(f);if(!h.ok){Ie("note",void 0),M("connect",h.message),J();return}await k.modelRuntime.setRuntimeApiKey("howtofix",f);let w=await Yv("howtofix",h.models),b=!!k.model&&k.model?.provider!==void 0&&o.model!=="unknown",D,g;if(!b)try{let I=(await k.modelRuntime.getAvailable()).filter(De=>So(De.provider)),re=Nv(I.map(De=>De.id)).slice(0,4);for(let De of re){if(!(await gu(De,f)).ok)continue;let mn=I.find(Ks=>Ks.id===De);if(mn){await k.setModel(mn),o.model=mn.id,D=`${mn.provider}/${mn.id}`;break}}D||(g=re.length>0?`none of the first ${re.length} models answered (${re[0]} did not)`:"the account lists no chat model")}catch(I){g=I instanceof Error?I.message:String(I)}Ie("note",void 0),M("connect",[`connected ${Vs(f)} \u2014 ${h.message}`,w,D?`using ${D} (change it with /model)`:`pick a model with /model, then send a prompt${g?` (auto-select failed: ${g})`:""}`].join(`
105
+ `)),J()})().catch(h=>{Ie("note",void 0),M("connect",h instanceof Error?h.message:String(h)),J()})},Xv=async f=>{let[h,...w]=f.slice(1).split(/\s+/),b=w.join(" ");if(h==="quit"||h==="exit"){Gs();return}if(h==="help"){M("help",hl(k).map(g=>`/${g.name} ${g.description??""}`).join(`
106
+ `));return}if(h==="init"){let g=Lv(e.cwd,"AGENTS.md");if(pj(g)&&b!=="force"){M("init",`AGENTS.md already exists at ${g}. run /init force to overwrite.`);return}gl(g,vl),M("init",`wrote ${g}; asking the agent to fill it in`),await k.prompt("Read AGENTS.md, then fill it in with the real build, test, and layout facts of this repo. Keep it short.");return}if(h==="login"){nu(b);return}if(h==="connect"){if(b.trim()){ru(b.trim());return}ru(""),Ie("prompt","paste your howtofix.id token, then press enter"),J();let g=sn;sn=I=>{sn=g,Ie("prompt",void 0),ru(I.trim())};return}if(h==="logout"){let g=await k.modelRuntime.getAvailable(),I=[...new Set(g.map(A=>A.provider))].sort();if(I.length===0){M("logout","no providers are configured");return}vt("Logout",I.map(A=>({value:A,label:A})),A=>{k.modelRuntime.logout(A).then(()=>M("logout",`logged out ${A}`),re=>M("logout",re instanceof Error?re.message:String(re)))});return}if(h==="providers"){let g=await k.modelRuntime.getAvailable(),I=[...new Set(g.map(A=>A.provider))].sort();I.sort((A,re)=>Number(So(re))-Number(So(A))),vt("Providers",I.map(A=>({value:A,label:A})),A=>{let re=k.modelRuntime.getModels(A);if(re.length===0){nu(A);return}vt(A,re.map(De=>({value:De.id,label:De.id})),De=>{let an=re.find(mn=>mn.id===De);an&&k.setModel(an).then(()=>{o.model=an.id,M("providers",`${A}/${an.id}`)},()=>nu(A))})});return}if(h==="name"){if(!b){M("name","usage: /name <session name>");return}k.setSessionName(b),M("name",`session name: ${b}`);return}if(h==="stats"){let g=k.getSessionStats(),I=k.getContextUsage();M("stats",[`session ${g.sessionId}`,g.sessionFile?`file ${g.sessionFile}`:"not persisted",`messages ${g.totalMessages} (user ${g.userMessages}, assistant ${g.assistantMessages}, tools ${g.toolCalls})`,`tokens in ${g.tokens.input} out ${g.tokens.output} cache ${g.tokens.cacheRead}/${g.tokens.cacheWrite}`,`cost $${g.cost.toFixed(4)}`,I?`context ${I.percent===null?"?":`${Math.round(I.percent)}%`} of ${I.contextWindow}`:"context unknown"].join(`
107
+ `));return}if(h==="diff"){let g=an=>{try{return yl("git",an,{cwd:e.cwd,encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return""}},I=g(["diff","--stat"])+`
108
+
109
+ `+g(["diff","--","."]),[A="",re=""]=I.split(`
110
+
111
+ `,2),De=ZT(re);M("diff",[A.trim(),De].filter(Boolean).join(`
112
+
113
+ `)||"working tree clean");return}if(h==="copy"){let g=[...k.state.messages].reverse().find(re=>re.role==="assistant"),A=(Array.isArray(g?.content)?g.content:[]).filter(re=>re.type==="text").map(re=>re.text).join("");if(!A){M("copy","nothing to copy");return}try{await gj(A),M("copy",`copied ${A.length} characters`)}catch(re){M("copy",re instanceof Error?re.message:String(re))}return}if(h==="export"){let g=fj(e.cwd,b||`howtofix-session-${Date.now()}.md`),I=[`# ${St} session`,"",`model ${o.model}`,""];for(let A of r.items)I.push(`## ${A.title||A.kind}`,"",A.body,"");gl(g,I.join(`
114
+ `)),M("export",`wrote ${g}`);return}if(h==="agents"){M("agents",b?qc(b):Nc());return}if(h==="new"){let g=await e.reopen({noSession:!1});await Tl(g),M("new","started a new session");return}if(h==="resume"){let g=await xj.list(e.cwd);if(g.length===0){M("resume","no saved sessions for this folder");return}vt("Resume session",g.slice(0,30).map(I=>({value:I.path,label:I.name||`${I.id.slice(0,8)} ${I.firstMessage.slice(0,40)}`,description:`${I.modified.toISOString().slice(0,16)} ${I.messageCount} messages`})),I=>{e.reopen({sessionPath:I}).then(Tl,A=>On(A instanceof Error?A.message:String(A)))});return}if(h==="model"){let g=await k.modelRuntime.getAvailable(),I=b?g.find(A=>`${A.provider}/${A.id}`===b||A.id===b):void 0;if(!b){vt("Select model",g.map(A=>({value:`${A.provider}/${A.id}`,label:A.id,description:A.provider})),A=>{let re=g.find(De=>`${De.provider}/${De.id}`===A);re&&k.setModel(re).then(()=>{o.model=re.id,M("model",`model ${A}`)})});return}if(!I){M("model",`unknown model ${b}`);return}await k.setModel(I),o.model=I.id,M("model",`model ${I.provider}/${I.id}`);return}if(h==="thinking"){if(!b){vt("Thinking level",xl.map(g=>({value:g,label:g})),g=>{k.setThinkingLevel(g),o.thinking=g,M("thinking",`thinking ${g}`)});return}if(!xl.includes(b)){M("thinking",`thinking: ${xl.join(", ")}`);return}k.setThinkingLevel(b),o.thinking=b,M("thinking",`thinking ${b}`);return}if(h==="compact"){try{await k.compact(b||void 0),M("compact","session compacted")}catch(g){M("compact",g instanceof Error?g.message:String(g))}return}if(h==="approval"){let g=I=>{vu(I),M("approval",ei[I])};if(!b){vt("Approval mode",Dr.map(I=>({value:I,label:I,description:ei[I]})),I=>g(I));return}if(!Dr.includes(b)){M("approval",`modes: ${Dr.join(", ")}`);return}g(b);return}if(h==="tools"){let g=k.getActiveToolNames().sort();M("tools",g.length?g.join(`
115
+ `):"no tools enabled");return}if(h==="rewind"||h==="undo"){To();return}if(h==="commit"){if(!Mm(e.cwd)){M("commit","not a git repository");return}if(!JT(e.cwd)){M("commit","nothing to commit");return}let g=b||`howtofix: session update ${new Date().toISOString().slice(0,16)}`,I=YT(e.cwd,g);M("commit",I.ok?I.output:`commit failed: ${I.output}`),o.git=Ar(e.cwd);return}if(h==="undo"){if(!Mm(e.cwd)){M("undo","not a git repository");return}if(b!=="confirm"){let I=QT(e.cwd);vt(`Undo last commit? ${I}`,[{value:"yes",label:"undo",description:"reset --soft HEAD~1, changes stay in the working tree"},{value:"no",label:"cancel"}],A=>{if(A!=="yes")return;let re=Uc(e.cwd);M("undo",re.ok?`undone: ${I}`:`undo failed: ${re.output}`),o.git=Ar(e.cwd)});return}let g=Uc(e.cwd);M("undo",g.ok?"undone":`undo failed: ${g.output}`),o.git=Ar(e.cwd);return}if(h==="review"){if(!XT(e.cwd).trim()){M("review","no changes to review");return}eu("Review the uncommitted changes. Report concrete issues with file evidence. Do not edit files.");return}if(h==="workflow"){if(b.trim()==="clear"){ye(),M("workflow","cleared the pinned workflow panel");return}if(!R){M("workflow","no workflow run in this session yet");return}let g=wo(R,Date.now()),I=g[E.selectedPhase];M("workflow",[`panel ${U?"pinned above the editor":"unpinned"}`,`phase ${E.selectedPhase+1}/${g.length}: ${I?.title??"(none)"}`,`filter: ${E.filter}${E.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(`
116
+ `));return}if(h==="plan"){if(OT()||Pm().state==="pending"){bo(PT(Pm())),M("plan","plan mode off \u2014 edits are allowed again");return}bo(ST(Pm())),M("plan",`plan mode armed \u2014 send your next prompt to start planning
117
+ plan file: ${RT()??"(unknown)"}`);return}if(h==="goal"){let g=b.trim();if(!g){M("goal",wm(km()));return}let{goal:I,error:A}=Rc(km(),"set",g,void 0,void 0);if(A){On(A);return}nn(I),await k.sendCustomMessage({customType:nr,content:g,display:!1,details:I}),M("goal",`goal set
118
+ ${wm(I)}`);return}if(h==="session"){let g=k.model;M("session",g?`${g.provider}/${g.id}`:"no model");return}let D=k.extensionRunner.getCommand(h??"");if(D){try{await D.handler(b,k.extensionRunner.createCommandContext())}catch(g){On(g instanceof Error?g.message:String(g))}return}M("command",`/${h??""} is not available in this screen yet`)};rd((f,h)=>{let{promise:w,resolve:b}=Promise.withResolvers();return vt(f,h.map(D=>({value:D,label:D})),b),w}),process.on("SIGTERM",Gs),t.setTitle(`${St} ${jr}`),Cj(),n.start(),n.requestRender(!0),e.initialPrompt&&eu(e.initialPrompt),await new Promise(()=>{})}var Fv,xl,Dv,Wm,zm,Oj,Aj,sn,jj,Kv=m(()=>{vo();tl();JE();Iu();rv();Ps();gv();ll();Ss();Ou();ml();Iv();As();Yc();hu();$v();Nn();Av();Gc();ti();bu();Em();Cc();Cv();Fv={borderColor:()=>"",selectList:{selectedPrefix:e=>oe(e,F.accent),selectedText:e=>oe(e,F.text,{bold:!0}),description:e=>oe(e,F.mute),scrollInfo:e=>oe(e,F.dim),noMatch:e=>oe(e,F.mute)}},xl=["off","minimal","low","medium","high","xhigh","max"],Dv=Symbol.for("@earendil-works/pi-tui/layout-node");Wm=class{folder;model;git;percent=0;meter=new Dm(0);activity=xv();live=!1;activitySince=Date.now();thinking="medium";cubence="";constructor(t,n){this.folder=dj(t),this.model=n.split("/").at(-1)||"no-model",this.git=Ar(t)}invalidate(){}settling(){return this.meter.moving}meterValue(){return this.meter.value!==this.percent&&this.meter.set(this.percent),this.meter.step()}beginRun(){this.live=!0,this.activitySince=Date.now()}waitedMs(){return Date.now()-this.activitySince}abandonAnimations(){this.meter.snap(this.percent)}render(t){let n=Date.now(),r=this.percent===0&&this.meter.value===0?0:this.meterValue(),o=mv(this.model,this.thinking,this.folder,this.git),s=[Ns(`${uv(o,this.live?al():"",this.live?this.waitedMs():void 0)} ${pv(r,this.cubence)}`,t)],a=CT();a&&s.push(Ns(oe(a,F.warn),t));let p=xT(km());p&&s.push(Ns(oe(p,F.accent),t));let c=yv(this.activity,al(),n),x=this.live?NE(c,{base:Zc(this.waitedMs(),F.mute,F.warn,F.bad),bright:F.text,charMs:45},n):oe(c,Zc(this.waitedMs(),F.mute,F.warn,F.bad));return s.push(Ns(x,t)),s}},zm=class{constructor(t,n,r=()=>[]){this.editor=t;this.hud=n;this.widgets=r}editor;hud;widgets;focused=!1;invalidate(){this.editor.invalidate()}render(t){let n=Math.max(10,t-4),r=this.editor.render(n).filter(p=>Km(p)>0),o=r.length>0?r:[""],s="\u2500".repeat(Math.max(0,t-2)),a=o.map(p=>{let c=Math.max(0,n-Km(p));return`\u2502 ${p}${" ".repeat(c)} \u2502`});return[...this.widgets(t),`\u250C${s}\u2510`,...a,`\u2514${s}\u2518`,...this.hud.render(t)]}handleInput(t){this.editor.handleInput(t)}},Oj=["deepseek","qwen","claude","gpt-5","gpt-4","gemini","glm","mimo","kimi","llama"],Aj=/(image|embedding|embed|whisper|tts|audio|video|rerank|moderation|dall-e|stable-diffusion|sora)/i;jj=45e3});vo();var Sl={off:!0,minimal:!0,low:!0,medium:!0,high:!0,xhigh:!0,max:!0},Pl={suggest:!0,"auto-edit":!0,"full-auto":!0};function Ws(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 Rl(e){let t={print:!1,continueSession:!1,noSession:!1,help:!1,version:!1,prompt:""},n=[],r=[...e];for(let o=0;o<r.length;o++){let s=r[o]??"";if(s==="--"){n.push(...r.slice(o+1));break}if(s==="-h"||s==="--help")t.help=!0;else if(s==="-v"||s==="--version")t.version=!0;else if(s==="-p"||s==="--print")t.print=!0;else if(s==="-c"||s==="--continue")t.continueSession=!0;else if(s==="--no-session")t.noSession=!0;else if(s==="-r"||s==="--resume")t.continueSession=!0;else if(s==="--session"||s.startsWith("--session="))t.sessionPath=Ws(r,o,"--session");else if(s==="-m"||s==="--model"||s.startsWith("--model="))t.model=Ws(r,o,"--model");else if(s==="--thinking"||s.startsWith("--thinking="))t.thinking=Ws(r,o,"--thinking");else if(s==="--approval"||s.startsWith("--approval="))t.approval=Ws(r,o,"--approval");else{if(s.startsWith("-"))throw new Error(`unknown option ${s}`);n.push(s)}}if(t.thinking&&!Sl[t.thinking])throw new Error(`thinking must be one of: ${Object.keys(Sl).join(", ")}`);if(t.approval&&!Pl[t.approval])throw new Error(`approval must be one of: ${Object.keys(Pl).join(", ")}`);if(t.continueSession&&t.noSession)throw new Error("--continue and --no-session cannot be combined");if(t.sessionPath&&t.noSession)throw new Error("--session and --no-session cannot be combined");if(t.sessionPath&&t.continueSession)throw new Error("--session and --continue cannot be combined");if(t.print&&(t.continueSession||t.sessionPath))throw new Error("--print runs one prompt in a throwaway session; it cannot be combined with --continue or --session");if(t.sessionPath&&!t.sessionPath.endsWith(".jsonl"))throw new Error(`--session expects a session file, got '${t.sessionPath}'`);return t.prompt=n.join(" ").trim(),t}function su(){return`${St} ${jr}
119
+ coding agent. layout is a workbench, not a chat log.
120
+
121
+ usage:
122
+ howtofix [options] [prompt]
123
+ howtofix -p "explain this repo"
124
+
125
+ options:
126
+ -p, --print run one prompt and print the answer
127
+ -c, --continue resume the latest session in this folder
128
+ -r, --resume alias for --continue
129
+ --session <file> run inside a specific saved session file
130
+ --no-session do not write a session file
131
+ -m, --model <id> provider/model, or a fuzzy model id
132
+ --thinking <lv> off | minimal | low | medium | high | xhigh | max
133
+ --approval <m> suggest | auto-edit | full-auto
134
+ -h, --help
135
+ -v, --version
136
+
137
+ keys:
138
+ enter send
139
+ shift+enter new line
140
+ ctrl+c stop the run, or quit when idle
141
+ ctrl+d quit
142
+ ctrl+l jump to the latest line
143
+ ctrl+o clear the screen (history is kept)
144
+ esc clear the draft
145
+
146
+ commands:
147
+ /init /model /providers /thinking /approval /login /connect /logout /new
148
+ /resume /compact /name /stats /diff /commit /undo /review /tools /export
149
+ /copy /agents /goal /plan /workflow /session /help /quit
150
+
151
+ a line starting with ! runs in the project shell.
152
+
153
+ config and sessions live in ~/.howtofix/agent. connect your howtofix.id account
154
+ with /connect (it opens the token page), or /login for another provider's key.
155
+ `}vo();Nn();async function Fj(){mu();let{repairGatewayModels:e,ensureGatewaySettings:t}=await Promise.resolve().then(()=>(hu(),Dl)),{AGENT_DIR:n}=await Promise.resolve().then(()=>(Nn(),Ol)),r=e(n);r>0&&console.error(`${St}: repaired ${r} howtofix model(s) that the gateway would have rejected`),t(n)&&console.error(`${St}: set httpIdleTimeoutMs in settings.json so a stalled provider recovers instead of hanging`);let o;try{o=Rl(process.argv.slice(2))}catch(E){let R=E instanceof Error?E.message:String(E);console.error(`${St}: ${R}
156
+ ${su()}`),process.exitCode=2;return}if(o.help){console.log(su());return}if(o.version){console.log(`${St} ${jr}`);return}if(o.print&&!o.prompt){console.error(`${St}: --print needs a prompt`),process.exitCode=2;return}let{expandFileReferences:s}=await Promise.resolve().then(()=>(Iu(),Nl)),{isApprovalMode:a,setApprovalMode:p}=await Promise.resolve().then(()=>(ti(),Ql)),{openSession:c}=await Promise.resolve().then(()=>(PE(),SE));p(o.approval&&a(o.approval)?o.approval:o.print?"full-auto":"auto-edit");let x=E=>c({cwd:process.cwd(),model:o.model,thinking:o.thinking,continueSession:E.continueSession??!1,noSession:E.noSession??!1,sessionPath:E.sessionPath}),y=await x({continueSession:o.continueSession,sessionPath:o.sessionPath,noSession:o.noSession||o.print});if(o.print){y.note&&console.error(y.note);try{await y.session.prompt(s(o.prompt,process.cwd()));let E=y.session.getLastAssistantText()??"";process.stdout.write(E.endsWith(`
157
+ `)?E:`${E}
158
+ `);let R=y.session.state.messages.at(-1);R?.role==="assistant"&&((R.stopReason==="error"||R.stopReason==="aborted"||R.errorMessage)&&(process.exitCode=1),process.exitCode===1&&R.errorMessage&&console.error(`${St}: ${R.errorMessage}`))}finally{y.dispose()}return}if(!process.stdin.isTTY||!process.stdout.isTTY){console.error(`${St}: interactive mode needs a terminal. use --print for pipes.`),y.dispose(),process.exitCode=2;return}let{runWorkbench:v}=await Promise.resolve().then(()=>(Kv(),Gv));await v({cwd:process.cwd(),modelLabel:y.modelLabel,session:y.session,initialPrompt:o.prompt||void 0,note:y.note,reopen:x})}Fj().catch(e=>{let t=e instanceof Error?e.message:String(e);console.error(`${St}: ${t}`),process.exitCode=1});
package/package.json CHANGED
@@ -1,6 +1,32 @@
1
1
  {
2
2
  "name": "howtofixcli",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.4.2",
4
+ "type": "module",
5
+ "description": "HowToFix coding agent. Workbench TUI, sessions, background agents.",
6
+ "license": "UNLICENSED",
7
+ "homepage": "https://howtofix.id",
8
+ "author": "HowToFix",
9
+ "keywords": [
10
+ "coding-agent",
11
+ "cli",
12
+ "tui",
13
+ "howtofix"
14
+ ],
15
+ "engines": {
16
+ "node": ">=22.19"
17
+ },
18
+ "bin": {
19
+ "howtofix": "dist/main.js"
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md",
24
+ "LICENSE"
25
+ ],
26
+ "dependencies": {
27
+ "@earendil-works/pi-agent-core": "^1.0.0",
28
+ "@earendil-works/pi-ai": "^1.0.0",
29
+ "@earendil-works/pi-coding-agent": "^1.0.0",
30
+ "@earendil-works/pi-tui": "^1.0.0"
31
+ }
32
+ }