@kodax-ai/kodax 0.7.96 → 0.7.97-alpha.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.
- package/CHANGELOG.md +86 -0
- package/README.md +85 -62
- package/README_CN.md +57 -67
- package/config-templates/config.example.jsonc +0 -14
- package/dist/chunks/{agent-7N427EVB.js → agent-J7SHFM5N.js} +1 -1
- package/dist/chunks/argument-completer-ZJQOWTIS.js +2 -0
- package/dist/chunks/{chunk-ABZDFK2X.js → chunk-2GV6MQ4T.js} +14 -14
- package/dist/chunks/{chunk-6QI3GOYG.js → chunk-3PS3YEDS.js} +1 -1
- package/dist/chunks/chunk-4VJMQDTH.js +417 -0
- package/dist/chunks/{chunk-NI7PBPUR.js → chunk-5DSUVP46.js} +1 -1
- package/dist/chunks/chunk-5P7RTSZT.js +21 -0
- package/dist/chunks/{chunk-XXNR6S4Q.js → chunk-6ZAQKFIM.js} +1 -1
- package/dist/chunks/chunk-7V2QBZ73.js +137 -0
- package/dist/chunks/{chunk-C7U542KM.js → chunk-F7DHZH6T.js} +1 -1
- package/dist/chunks/{chunk-7IMWOR34.js → chunk-HSRYDDPF.js} +1 -1
- package/dist/chunks/chunk-K3DQGSQU.js +372 -0
- package/dist/chunks/chunk-NO23K2CB.js +2 -0
- package/dist/chunks/{chunk-NKT3B3DR.js → chunk-OT5WHAX4.js} +1 -1
- package/dist/chunks/{chunk-YEAUDI6U.js → chunk-QGWHJIO4.js} +1 -1
- package/dist/chunks/chunk-QOFFAY5C.js +261 -0
- package/dist/chunks/{chunk-4PFZ7BEE.js → chunk-QVDTORL3.js} +11 -11
- package/dist/chunks/chunk-QZ4B4AWG.js +473 -0
- package/dist/chunks/chunk-RXDS6CNA.js +355 -0
- package/dist/chunks/{chunk-WV3DJVW4.js → chunk-VDGPJQL7.js} +135 -135
- package/dist/chunks/chunk-VEZ4WHPN.js +641 -0
- package/dist/chunks/chunk-ZPPAT25E.js +5 -0
- package/dist/chunks/chunk-ZQYWDI4O.js +1 -0
- package/dist/chunks/chunk-ZS2GUADU.js +498 -0
- package/dist/chunks/{chunk-GN2IY5YE.js → chunk-ZTYZYXGV.js} +1 -1
- package/dist/chunks/{chunk-EM4XJBTK.js → chunk-ZZQ4GDVU.js} +1 -1
- package/dist/chunks/{client-6WZZTTSV.js → client-MXOJ5XUN.js} +1 -1
- package/dist/chunks/{compaction-config-ZMEJU4U7.js → compaction-config-5VZSGKBQ.js} +1 -1
- package/dist/chunks/{construction-bootstrap-RX4DMHI7.js → construction-bootstrap-U2ZU2WAT.js} +1 -1
- package/dist/chunks/dist-CSLNWLOE.js +2 -0
- package/dist/chunks/dist-XXMJMJDU.js +2 -0
- package/dist/chunks/host-RUXYZFYN.js +2 -0
- package/dist/chunks/readline-helpers-JCVULR4C.js +2 -0
- package/dist/chunks/run-manager-DRIM5VNE.js +2 -0
- package/dist/chunks/utils-MQEBGKIX.js +2 -0
- package/dist/index.d.ts +63 -30
- package/dist/index.js +10 -6
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1745 -1734
- package/dist/kodax_resume.js +32 -35
- package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
- package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/sandbox-network-broker.js +77 -77
- package/dist/sdk-a2a.d.ts +33 -18
- package/dist/sdk-a2a.js +8 -9
- package/dist/sdk-agent.d.ts +33 -26
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-client.d.ts +40 -0
- package/dist/sdk-client.js +2 -0
- package/dist/sdk-coding.d.ts +87 -499
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +3 -4
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +11 -9
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +3 -3
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +3 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +317 -70
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +580 -452
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +13 -9
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +57 -57
- package/dist/types-chunks/{base.d-Bt9lhwSV.d.ts → base.d-ZBOdjDUT.d.ts} +2 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-DWFIMg0v.d.ts → bash-prefix-extractor.d-DvswAXKS.d.ts} +136 -66
- package/dist/types-chunks/{capability-learning.d-gRtO03f6.d.ts → capability-learning.d-B4pxKwP4.d.ts} +1 -1
- package/dist/types-chunks/{capability.d-Ch5Vos33.d.ts → capability.d-DOF3r0fJ.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-Dj1n6s0Y.d.ts → capsule.d-B4atvlxE.d.ts} +7 -19
- package/dist/types-chunks/client-contract-A1jdk6xz.d.ts +1993 -0
- package/dist/types-chunks/{controller.d-C0IM1Tud.d.ts → controller.d-BkUJ_3sl.d.ts} +1 -1
- package/dist/types-chunks/{controller.d-J2t1q8Ly.d.ts → controller.d-yyKajPTi.d.ts} +140 -1380
- package/dist/types-chunks/{cost-tracker.d-BWI4lFWn.d.ts → cost-tracker.d-BeaenODW.d.ts} +2 -47
- package/dist/types-chunks/{history-retrieval.d-CPN5PMBV.d.ts → history-retrieval.d-JdFfkeF3.d.ts} +2 -2
- package/dist/types-chunks/{manager.d-rtmywU9M.d.ts → manager.d-C_20XqCV.d.ts} +8 -1
- package/dist/types-chunks/manifest.d-Bw2i-zQi.d.ts +18 -0
- package/dist/types-chunks/provider-credential-context.d-BH2OaB1b.d.ts +47 -0
- package/dist/types-chunks/provider-request-observation.d-jL8T6wVO.d.ts +34 -0
- package/dist/types-chunks/{public-api.d-amBop8Nk.d.ts → public-api.d-Cq8ILMte.d.ts} +52 -13
- package/dist/types-chunks/{resolver.d-BrwLoWNr.d.ts → resolver.d-DLY01RHx.d.ts} +4 -2
- package/dist/types-chunks/{types.d-CSv0_cZC.d.ts → review-inbox.d-BeaLRNHx.d.ts} +251 -3
- package/dist/types-chunks/{shell-command-sets.d-oejwpP_7.d.ts → review-packet.d-D4bbTbq3.d.ts} +46 -3
- package/dist/types-chunks/{exec-policy.d-BPESl90L.d.ts → run-manager.d-C7Q71rin.d.ts} +385 -62
- package/dist/types-chunks/runtime-client-info-CxnlZlW5.d.ts +175 -0
- package/dist/types-chunks/{sdk-session-B6XjHNU1.d.ts → sdk-session-BDFjCpDn.d.ts} +12 -4
- package/dist/types-chunks/{side-query.d-DHWG1JZg.d.ts → side-query.d-DTrhVd_r.d.ts} +4 -3
- package/dist/types-chunks/trusted-repl-entry-vbUM8R6P.d.ts +445 -0
- package/dist/types-chunks/{types.d-CtO8mR1s.d.ts → types.d-BJTN-RZr.d.ts} +5 -5
- package/dist/types-chunks/{types.d-BrQMB-hy.d.ts → types.d-BjOq57-z.d.ts} +6 -0
- package/dist/types-chunks/types.d-o7t9dds4.d.ts +1484 -0
- package/dist/types-chunks/{utils.d-DcznBeQ3.d.ts → utils.d-CWiMhFfu.d.ts} +202 -36
- package/docs/CLIENT_CONTRACT.md +441 -0
- package/docs/SDK_MIGRATION.md +123 -0
- package/docs/SPACE_SDK_SEAMS.md +139 -0
- package/package.json +10 -5
- package/public_docs/README.md +12 -133
- package/public_docs/configuration/config-files.md +8 -14
- package/public_docs/sdk/embedder-guide.md +494 -420
- package/dist/chunks/argument-completer-FAIHW7HZ.js +0 -2
- package/dist/chunks/chunk-66XN5AFU.js +0 -417
- package/dist/chunks/chunk-7O2AIFNE.js +0 -373
- package/dist/chunks/chunk-DSXUXUZG.js +0 -5
- package/dist/chunks/chunk-GYO73UYQ.js +0 -275
- package/dist/chunks/chunk-HPCS3LZ5.js +0 -324
- package/dist/chunks/chunk-HZYRLIOC.js +0 -137
- package/dist/chunks/chunk-SC2ELSUS.js +0 -675
- package/dist/chunks/chunk-TEUD5VPJ.js +0 -471
- package/dist/chunks/chunk-TYZ2ZAYL.js +0 -487
- package/dist/chunks/dist-3UCCMCYR.js +0 -2
- package/dist/chunks/dist-F5IWZSAY.js +0 -2
- package/dist/chunks/host-W2JJ3V3Q.js +0 -2
- package/dist/chunks/run-manager-RBWU3EVE.js +0 -2
- package/dist/chunks/utils-DJ4ZFJGL.js +0 -2
- package/dist/runtime-worker.js +0 -5381
- package/dist/types-chunks/review-inbox.d-CTeUIKda.d.ts +0 -225
- package/dist/types-chunks/run-manager.d-hm1XgEou.d.ts +0 -94
- package/dist/types-chunks/trusted-repl-entry-D0w5M0UZ.d.ts +0 -323
- package/dist/types-chunks/types.d-B1l9pWyX.d.ts +0 -146
package/dist/kodax_resume.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
var
|
|
3
|
-
`,"utf8"),await a.sync()}finally{await a.close()}try{await Be.link(s,r)}catch(c){if(c.code!=="EEXIST")throw c;if(await jt(r)!==n)throw new Error(`Conflicting project identity at ${r}`)}finally{await Be.rm(s,{force:!0})}}o(st,"publishProjectManifest");import at from"node:fs/promises";import He from"node:path";var Ut=".conversation-cache.",ad=`${Ut}json`,fe=class extends Error{static{o(this,"ConversationPageCacheCleanupError")}directory;cleanupCause;constructor(t,r){super(`Unable to remove recoverable Conversation page caches from ${t}`),this.directory=t,this.cleanupCause=r,this.name="ConversationPageCacheCleanupError"}};function Sn(e){let t=e.lastIndexOf(Ut);if(t<=0)return;let r=e.slice(t+Ut.length);if(!(r!=="json"&&!(r.startsWith("json.")&&r.endsWith(".tmp"))&&!r.endsWith(".data")&&!r.endsWith(".index")))return e.slice(0,t)}o(Sn,"cacheArtifactSessionId");async function xn(e){let t=He.dirname(e),r=He.basename(e,He.extname(e)),n;try{n=await at.readdir(t)}catch(i){if(i.code==="ENOENT")return;throw i}await Promise.all(n.filter(i=>Sn(i)===r).map(i=>at.rm(He.join(t,i),{force:!0})))}o(xn,"removeConversationPageCache");async function $t(e){let t;try{t=await at.readdir(e,{withFileTypes:!0})}catch(r){if(r.code==="ENOENT")return;throw new fe(e,r)}try{await Promise.all(t.filter(r=>!r.isDirectory()&&Sn(r.name)!==void 0).map(r=>at.rm(He.join(e,r.name),{force:!0})))}catch(r){throw new fe(e,r)}}o($t,"removeConversationPageCachesInDirectory");var Cn=3,xs=300*1e3,Es=65536,Kt=o(e=>T.join(e,".layout.json"),"layoutMarkerPath"),Yt=o(e=>T.join(e,".migration-lock"),"lockDirPath"),Rn=o(e=>T.join(Yt(e),"owner.json"),"ownerPath"),Gt=o(e=>T.join(e,".migration-journal.jsonl"),"journalPath"),ct=o(e=>T.join(T.dirname(e),"sessions-archive"),"sessionsArchiveDir");function ut(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(ut,"isSessionFile");function bn(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}o(bn,"sidecarId");async function Cs(e){let t;try{t=await _.open(e,"r");let r=[],n=0,i=0;for(;;){let c=Buffer.allocUnsafe(Es),{bytesRead:u}=await t.read(c,0,c.length,i);if(u===0)break;let l=c.subarray(0,u),d=l.indexOf(10),f=d>=0?l.subarray(0,d):l;if(r.push(f),n+=f.length,d>=0)break;i+=u}let s=Buffer.concat(r,n).toString("utf8").trim();if(!s)return null;let a=JSON.parse(s);if(a&&typeof a=="object"&&a._type==="meta"){let c=a;return{gitRoot:typeof c.gitRoot=="string"?c.gitRoot:void 0,runtimeInfo:c.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}o(Cs,"readMeta");async function Tn(e,t){let r=await Cs(e);if(!r)return it({});let n=r.runtimeInfo!==null&&typeof r.runtimeInfo=="object"?r.runtimeInfo:void 0,i=r.runtimeInfo,s=typeof n?.workspaceRoot=="string"?n.workspaceRoot:r.gitRoot,a=s??(typeof n?.canonicalRepoRoot=="string"?n.canonicalRepoRoot:void 0);if(a&&zt.existsSync(a)){let c=T.resolve(a),u=t.get(c);u===void 0&&(u=dn({cwd:a,timeoutMs:750}),t.set(c,u)),i={...n,canonicalRepoRoot:await u,...s!==void 0?{workspaceRoot:s}:{}}}return it({gitRoot:r.gitRoot,runtimeInfo:i})}o(Tn,"destIdentityFor");async function Rs(e){let t=[],r=o(async(n,i)=>{let s=[];try{s=await _.readdir(n,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(ut(a.name)||i&&bn(a.name)!==null)&&t.push(T.join(n,a.name))},"pushDir");return await r(e,!0),await r(ct(e),!0),t}o(Rs,"collectMigrationSources");function bs(e,t){return T.join(e,t)}o(bs,"targetDirectory");async function Ts(e){let t=await Rs(e),r=t.filter(a=>ut(T.basename(a))),n=new Set(r.map(a=>`${T.dirname(a)}\0${T.basename(a,".jsonl")}`)),i=[],s=new Map;for(let a of r){let c=T.basename(a,".jsonl"),u=(await Tn(a,s)).key,l=bs(e,u);i.push({from:a,to:T.join(l,`${c}.jsonl`),reason:`session\u2192${u}`});for(let d of[".archive.jsonl",".islands.jsonl"]){let f=T.join(T.dirname(a),`${c}${d}`);zt.existsSync(f)&&i.push({from:f,to:T.join(l,`${c}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let a of t){let c=bn(T.basename(a));c===null||n.has(`${T.dirname(a)}\0${c}`)||i.push({from:a,to:T.join(e,We,"orphan-islands",`${c}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return i}o(Ts,"planMigration");async function Ms(e){try{let t=JSON.parse(await _.readFile(Kt(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===Cn}catch{return!1}}o(Ms,"isMigrated");async function En(e){await $t(e),await $t(ct(e))}o(En,"removeLegacyConversationCaches");async function Is(e){try{let t=JSON.parse(await _.readFile(Rn(e),"utf8"));if(typeof t.pid=="number"&&t.pid!==process.pid)try{process.kill(t.pid,0)}catch(r){if(r.code==="ESRCH")return!0}return typeof t.heartbeatAt=="number"&&Date.now()-t.heartbeatAt>xs}catch{return!0}}o(Is,"lockIsStale");async function ks(e){let t=Yt(e);for(let r=0;r<2;r+=1)try{return await _.mkdir(t),await _.writeFile(Rn(e),JSON.stringify({pid:process.pid,startTime:Date.now(),heartbeatAt:Date.now()})),!0}catch(n){if(n.code!=="EEXIST")return!1;if(r===0&&await Is(e)){await _.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}o(ks,"acquireLock");async function Os(e){await _.rm(Yt(e),{recursive:!0,force:!0}).catch(()=>{})}o(Os,"releaseLock");async function _s(e){try{if((await _.readdir(T.join(e,".write-locks"),{withFileTypes:!0})).some(r=>r.isFile()&&/^[0-9a-f]{64}\.lock$/.test(r.name)))throw new Error("Session layout migration deferred while a Session writer is active")}catch(t){if(t.code==="ENOENT")return;throw t}}o(_s,"assertNoActiveSessionWriters");async function As(e){let t=new Set;try{let r=await _.readFile(Gt(e),"utf8");for(let n of r.split(`
|
|
4
|
-
`))if(n.trim())try{let i=JSON.parse(n);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(As,"readJournalDone");async function Ns(e,t){if(T.resolve(e.from)===T.resolve(e.to))return!1;if(await _.mkdir(T.dirname(e.to),{recursive:!0}),zt.existsSync(e.to)){let r=T.dirname(e.from);return r===t||r===ct(t)?(await _.unlink(e.from).catch(()=>{}),!0):!1}try{await _.rename(e.from,e.to)}catch(r){let n=r.code;if(n==="EXDEV")await _.copyFile(e.from,e.to),await _.unlink(e.from).catch(()=>{});else if(n!=="ENOENT")throw r}return!0}o(Ns,"executeMove");async function vs(e){let t=[],r=o(async n=>{try{for(let i of await _.readdir(n,{withFileTypes:!0}))i.isFile()&&ut(i.name)&&t.push(T.join(n,i.name))}catch(i){if(i.code!=="ENOENT")throw i}},"append");return await r(e),await r(T.join(e,"archived")),t}o(vs,"readBucketMainFiles");async function Ps(e,t){let r=new Map,n=new Set(t.flatMap(i=>i.reason.startsWith("session\u2192")?[T.dirname(i.to)]:[]));for(let i of n){let s=T.basename(i);if(s===We)continue;let a=await vs(i),c;for(let u of a){let l=await Tn(u,r);if(l.canonicalRoot===null||l.key!==s||c!==void 0&&c.canonicalRoot!==l.canonicalRoot)throw new Error(`Cannot certify mixed project identities in ${i}`);c??=l}c!==void 0&&await st(i,c)}}o(Ps,"publishBucketManifests");async function Fs(e){await _.mkdir(e,{recursive:!0});let t=`${Kt(e)}.${process.pid}.tmp`,r=JSON.stringify({version:Cn,migratedAt:new Date().toISOString(),from:"flat-v1"});await _.writeFile(t,r+`
|
|
5
|
-
`,"utf8"),await _.rename(t,Kt(e))}o(Fs,"writeMarker");async function Ls(e){let t=ct(e);try{(await _.readdir(t)).length===0&&await _.rmdir(t).catch(()=>{})}catch{}}o(Ls,"retireSessionsArchive");async function Ds(e){if(!await ks(e))return{moved:0,planned:0};try{await _s(e),await En(e);let t=await Ts(e),r=await As(e),n=await _.open(Gt(e),"a"),i=0;try{for(let s of t){if(ut(T.basename(s.from)))try{await xn(s.to)}catch(c){throw new fe(T.dirname(s.to),c)}if(r.has(s.from))continue;let a=await Ns(s,e);await n.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
6
|
-
`),a&&(i+=1)}}finally{await n.close()}return await Ls(e),await En(e),await Ps(e,t),await Fs(e),await _.rm(Gt(e),{force:!0}).catch(()=>{}),{moved:i,planned:t.length}}finally{await Os(e)}}o(Ds,"runMigration");async function Mn(e){try{if(await Ms(e))return;await Ds(e)}catch(t){if(t instanceof fe)throw t}}o(Mn,"ensureLayoutMigrated");import{createHash as Qt,randomUUID as Zt}from"node:crypto";import k from"node:fs/promises";import j from"node:path";var Re=7,Ws=".resume-index",Bs="complete.json",Hs="publish.lock",Nn=".resume",In=32,js=2e3,pt=10,Xt=3e4,be=40,lt=new Map,Ce=new Map;async function se(e,t){let r=[];for(let n=0;n<e.length;n+=In){let i=e.slice(n,n+In);r.push(...await Promise.all(i.map((s,a)=>t(s,n+a))))}return r}o(se,"mapBatches");function J(e){return j.join(e,Ws)}o(J,"indexDir");function er(e){return j.join(J(e),Bs)}o(er,"manifestPath");function tr(e){return`${Qt("sha256").update(e,"utf8").digest("hex")}${Nn}`}o(tr,"markerName");function Us(e,t){return j.join(J(e),tr(t))}o(Us,"markerPath");function kn(e){try{let t=JSON.parse(e);return!Te(t)||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.token!="string"||t.token.length===0?void 0:{pid:t.pid,token:t.token}}catch{return}}o(kn,"parseIndexPublishLockOwner");async function On(e){for(let t=0;t<be;t+=1)try{return await k.rmdir(e),!0}catch(r){let n=r.code;if(n==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(n??""))return!1;t+1<be&&await new Promise(i=>setTimeout(i,pt))}return!1}o(On,"removeEmptyIndexLockDirectory");async function $s(e){let t=`${e}.reclaim`;for(let r=0;r<2;r+=1)try{return await k.mkdir(t),async()=>{await On(t)||process.emitWarning(`Unable to release resume-index reclaim guard ${t}`,{code:"KODAX_RESUME_INDEX"})}}catch(n){if(n.code!=="EEXIST")throw n;if(r>0)return;try{let i=await k.stat(t);if(Date.now()-i.mtimeMs<Xt)return}catch(i){if(i.code==="ENOENT")continue;throw i}if(!await On(t))return}}o($s,"acquireIndexLockReclaimGuard");function _n(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}o(_n,"processIsDefinitelyDead");async function dt(e){try{let[t,r]=await Promise.all([k.readFile(e,"utf8"),k.stat(e)]);return{content:t,mtimeMs:r.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}o(dt,"readIndexPublishLock");async function Vt(e,t){for(let r=0;r<be;r+=1){let n=await dt(e);if(n===void 0)return!0;if(n.content!==t)return!1;try{return await k.rm(e),!0}catch(i){let s=i.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;r+1<be&&await new Promise(a=>setTimeout(a,pt))}}return!1}o(Vt,"removeObservedIndexPublishLock");async function Ks(e){let t=await dt(e);if(t===void 0)return!0;if(Ce.get(e)===t.content){let i=await Vt(e,t.content);return i&&Ce.delete(e),i}let r=kn(t.content);if(r!==void 0){if(!_n(r.pid))return!1}else if(Date.now()-t.mtimeMs<Xt)return!1;let n=await $s(e);if(n===void 0)return!1;try{let i=await dt(e);if(i===void 0)return!0;let s=kn(i.content);return Ce.get(e)===i.content||(s!==void 0?_n(s.pid):Date.now()-i.mtimeMs>=Xt)?Vt(e,i.content):!1}finally{await n()}}o(Ks,"reclaimAbandonedIndexPublishLock");async function Gs(e){let t;for(let n=0;n<be;n+=1)try{await k.rm(e,{force:!0});return}catch(i){t=i;let s=i.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;n+1<be&&await new Promise(a=>setTimeout(a,pt))}let r=t instanceof Error?t.message:String(t);process.emitWarning(`Unable to remove resume-index lock temp file ${e}: ${r}`,{code:"KODAX_RESUME_INDEX"})}o(Gs,"removeIndexPublishLockTemp");async function zs(e,t){await k.mkdir(j.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${Zt()}.tmp`;await k.writeFile(r,t,{encoding:"utf8",flag:"wx"});let n=Date.now()+js;try{for(;;)try{await k.link(r,e);return}catch(i){let s=i.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw i;if(await dt(e)!==void 0&&await Ks(e))continue;if(Date.now()>=n)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:i});await new Promise(c=>setTimeout(c,pt))}}finally{await Gs(r)}}o(zs,"acquireIndexPublishLock");async function Ys(e,t){if(!await Vt(e,t))throw Ce.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);Ce.get(e)===t&&Ce.delete(e)}o(Ys,"releaseIndexPublishLock");async function Xs(e,t){let r=j.join(J(e),Hs),n=lt.get(r)??Promise.resolve(),i,s=new Promise(c=>{i=c});lt.set(r,s),await n.catch(()=>{});let a=JSON.stringify({pid:process.pid,token:Zt()});try{await zs(r,a);try{return await t()}finally{await Ys(r,a)}}finally{i(),lt.get(r)===s&<.delete(r)}}o(Xs,"withIndexPublishLock");function Te(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Te,"isRecord");function Vs(e){if(!(!Te(e)||typeof e.id!="string"||e.id.length===0||j.basename(e.id)!==e.id||typeof e.title!="string"||typeof e.msgCount!="number"||!Number.isInteger(e.msgCount)||e.msgCount<=0||e.createdAt!==void 0&&typeof e.createdAt!="string"||e.surface!==void 0&&typeof e.surface!="string"))return{id:e.id,title:e.title,msgCount:e.msgCount,...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.surface!==void 0?{surface:e.surface}:{}}}o(Vs,"parseEntry");function qs(e){if(!Te(e))return;let t=Array.isArray(e.markerNames)&&e.markerNames.every(i=>typeof i=="string")?[...e.markerNames].sort():void 0,r=Array.isArray(e.sessionNames)&&e.sessionNames.every(i=>typeof i=="string")?[...e.sessionNames].sort():void 0,n=Array.isArray(e.excludedSources)?e.excludedSources.flatMap(i=>!Te(i)||typeof i.name!="string"||typeof i.sourceSize!="number"||!Number.isInteger(i.sourceSize)||i.sourceSize<0||typeof i.sourceMtimeMs!="number"||!Number.isFinite(i.sourceMtimeMs)||typeof i.sourceCtimeMs!="number"||!Number.isFinite(i.sourceCtimeMs)||typeof i.sourceDev!="number"||!Number.isInteger(i.sourceDev)||typeof i.sourceIno!="number"||!Number.isInteger(i.sourceIno)?[]:[{name:i.name,sourceSize:i.sourceSize,sourceMtimeMs:i.sourceMtimeMs,sourceCtimeMs:i.sourceCtimeMs,sourceDev:i.sourceDev,sourceIno:i.sourceIno}]):void 0;if(!(e.version!==Re||t===void 0||typeof e.markerCount!="number"||!Number.isInteger(e.markerCount)||e.markerCount<0||typeof e.markerDigest!="string"||r===void 0||typeof e.sessionFileCount!="number"||!Number.isInteger(e.sessionFileCount)||e.sessionFileCount<0||typeof e.sessionFileDigest!="string"||n===void 0||typeof e.excludedSourceCount!="number"||!Number.isInteger(e.excludedSourceCount)||e.excludedSourceCount<0||typeof e.excludedSourceDigest!="string"||t.length!==e.markerCount||q(t)!==e.markerDigest||r.length!==e.sessionFileCount||q(r)!==e.sessionFileDigest||n.length!==e.excludedSourceCount||rr(n)!==e.excludedSourceDigest))return{version:Re,markerNames:t,markerCount:e.markerCount,markerDigest:e.markerDigest,sessionNames:r,sessionFileCount:e.sessionFileCount,sessionFileDigest:e.sessionFileDigest,excludedSources:n,excludedSourceCount:e.excludedSourceCount,excludedSourceDigest:e.excludedSourceDigest}}o(qs,"parseManifest");function Js(e,t){if(!Te(e)||e.version!==Re||e.state!=="pending"&&e.state!=="ready")return;let r=Vs(e.entry);if(!r||tr(r.id)!==t)return;let n=Te(e.source)&&typeof e.source.size=="number"&&Number.isInteger(e.source.size)&&e.source.size>=0&&typeof e.source.mtimeMs=="number"&&Number.isFinite(e.source.mtimeMs)&&typeof e.source.ctimeMs=="number"&&Number.isFinite(e.source.ctimeMs)&&typeof e.source.dev=="number"&&Number.isInteger(e.source.dev)&&typeof e.source.ino=="number"&&Number.isInteger(e.source.ino)?{size:e.source.size,mtimeMs:e.source.mtimeMs,ctimeMs:e.source.ctimeMs,dev:e.source.dev,ino:e.source.ino}:void 0;if(!(e.state==="ready"&&n===void 0))return{version:Re,state:e.state,entry:r,...n!==void 0?{source:n}:{}}}o(Js,"parseMarker");function q(e){let t=Qt("sha256");for(let r of[...e].sort())t.update(r),t.update(`
|
|
7
|
-
`);return t.digest("hex")}o(q,"digestMarkerNames");function rr(e){let t=Qt("sha256");for(let r of[...e].sort((n,i)=>n.name.localeCompare(i.name)))t.update(JSON.stringify([r.name,r.sourceSize,r.sourceMtimeMs,r.sourceCtimeMs,r.sourceDev,r.sourceIno])),t.update(`
|
|
8
|
-
`);return t.digest("hex")}o(rr,"digestScannedFiles");async function qt(e){try{return(await k.readdir(J(e),{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(Nn)).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(qt,"readMarkerNames");async function Jt(e){try{return(await k.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(".jsonl")&&!t.name.endsWith(".archive.jsonl")&&!t.name.endsWith(".islands.jsonl")&&!t.name.startsWith("archived-")&&!t.name.startsWith(".")).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(Jt,"readCanonicalSessionNames");async function ft(e,t){let r;try{r=await k.readFile(j.join(J(e),t),"utf8")}catch(n){if(n.code!=="ENOENT")throw n;return}try{return Js(JSON.parse(r),t)}catch{return}}o(ft,"readMarker");async function vn(e,t){let r=`${e}.${process.pid}.${Zt()}.tmp`;await k.writeFile(r,t,"utf8");try{await k.rename(r,e)}catch(n){if(!["EEXIST","EPERM"].includes(n.code??""))throw n;await k.rm(e,{force:!0}),await k.rename(r,e)}finally{await k.rm(r,{force:!0})}}o(vn,"replaceDerivedFile");async function Qs(e){await k.rm(er(e),{force:!0})}o(Qs,"invalidateManifest");async function Zs(e,t,r,n,i){let s=J(e),a=Us(e,t.id);if(await k.mkdir(s,{recursive:!0}),!n)try{return await k.access(a),!1}catch(l){if(l.code!=="ENOENT")throw l}let c=n?await ft(e,tr(t.id)):void 0,u={version:Re,state:r,entry:{...c?.entry,...t},...i!==void 0?{source:i}:{}};return await vn(a,JSON.stringify(u)),!0}o(Zs,"writeMarker");async function nr(e,t){try{let r=await k.stat(j.join(e,`${t}.jsonl`));return r.isFile()?{size:r.size,mtimeMs:r.mtimeMs,ctimeMs:r.ctimeMs,dev:r.dev,ino:r.ino}:void 0}catch(r){if(r.code==="ENOENT")return;throw r}}o(nr,"canonicalSource");async function ea(e,t){let r=j.basename(t,".jsonl");if(`${r}.jsonl`!==t)return;let n=await nr(e,r);return n===void 0?void 0:{name:t,sourceSize:n.size,sourceMtimeMs:n.mtimeMs,sourceCtimeMs:n.ctimeMs,sourceDev:n.dev,sourceIno:n.ino}}o(ea,"currentScannedFile");function ta(e,t){return e!==void 0&&e.size===t.sourceSize&&e.mtimeMs===t.sourceMtimeMs&&e.ctimeMs===t.sourceCtimeMs&&e.dev===t.sourceDev&&e.ino===t.sourceIno}o(ta,"sourceMatchesIdentity");async function An(e,t){return(await se(t,async n=>{let i=j.basename(n.name,".jsonl");return`${i}.jsonl`!==n.name?!1:ta(await nr(e,i),n)})).every(Boolean)}o(An,"scannedFilesStillMatch");async function Pn(e,t){if(t.state!=="ready"||t.source===void 0)return!1;let r=await nr(e,t.entry.id);return r!==void 0&&r.size===t.source.size&&r.mtimeMs===t.source.mtimeMs&&r.ctimeMs===t.source.ctimeMs&&r.dev===t.source.dev&&r.ino===t.source.ino}o(Pn,"markerMatchesCanonical");async function ra(e,t,r,n){await k.mkdir(J(e),{recursive:!0});let i=[...t].sort(),s=[...r].sort(),a=[...n].sort((u,l)=>u.name.localeCompare(l.name)),c={version:Re,markerNames:i,markerCount:i.length,markerDigest:q(i),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:q(s),excludedSources:a,excludedSourceCount:a.length,excludedSourceDigest:rr(a)};await vn(er(e),JSON.stringify(c))}o(ra,"writeManifest");async function Fn(e){let t;try{t=await k.readFile(er(e),"utf8")}catch(d){if(d.code!=="ENOENT")throw d;return}let r;try{r=qs(JSON.parse(t))}catch{return}if(!r)return;let n=await qt(e),i=await Jt(e);if(n.length!==r.markerCount||q(n)!==r.markerDigest||i.length!==r.sessionFileCount||q(i)!==r.sessionFileDigest)return;let s=await se(n,d=>ft(e,d));if(s.some(d=>d===void 0||d.state!=="ready")||(await se(s,async d=>d===void 0?!1:Pn(e,d))).some(d=>!d))return;let c=new Set(s.flatMap(d=>d?.state==="ready"?[`${d.entry.id}.jsonl`]:[])),u=i.filter(d=>!c.has(d));if(u.length!==r.excludedSourceCount)return;let l=await se(u,d=>ea(e,d));if(!(l.some(d=>d===void 0)||rr(l.flatMap(d=>d===void 0?[]:[d]))!==r.excludedSourceDigest))return s.flatMap(d=>d?.state==="ready"?[d.entry]:[])}o(Fn,"readResumeIndex");async function Ln(e,t,r){await Xs(e,()=>na(e,t,r))}o(Ln,"completeResumeIndex");async function na(e,t,r){let n=r.map(g=>g.name).sort(),i=q(n),s=await Jt(e);if(s.length!==n.length||q(s)!==i||!await An(e,r))return;await Qs(e),await k.mkdir(J(e),{recursive:!0});let a=new Set(t.map(g=>g.id)),c=r.filter(g=>!a.has(j.basename(g.name,".jsonl")));for(let g of t)await Zs(e,g,"ready",!0,{size:g.sourceSize,mtimeMs:g.sourceMtimeMs,ctimeMs:g.sourceCtimeMs,dev:g.sourceDev,ino:g.sourceIno});let u=await qt(e),l=await se(u,g=>ft(e,g));await se(u,async(g,w)=>{let y=l[w];(y===void 0||!a.has(y.entry.id))&&await k.rm(j.join(J(e),g),{force:!0})});let d=await Jt(e);if(d.length!==n.length||q(d)!==i||!await An(e,r))return;let f=await qt(e),m=await se(f,g=>ft(e,g));m.some(g=>g?.state!=="ready")||m.length!==a.size||m.some(g=>g===void 0||!a.has(g.entry.id))||(await se(m,async g=>g===void 0?!1:Pn(e,g))).some(g=>!g)||await ra(e,f,n,c)}o(na,"completeResumeIndexWithLock");import{jsx as Ze,jsxs as Fe}from"react/jsx-runtime";import{useMemo as sl,useRef as al,useState as jr}from"react";import{jsx as Mo}from"react/jsx-runtime";import{createContext as Hu,useContext as Wr,useEffect as Pe,useMemo as bo,useState as ju,useCallback as Io,useRef as Nt}from"react";import{Stream as yu}from"node:stream";import{openSync as wu,writeSync as po}from"node:fs";import{performance as Su}from"node:perf_hooks";import{tmpdir as xu}from"node:os";import{join as Eu}from"node:path";import ir,{forwardRef as sa,useContext as aa}from"react";import{createContext as ia}from"react";var Me=ia({isScreenReaderEnabled:!1});import{createContext as oa}from"react";var mt=oa(void 0);var Dn=sa(({children:e,backgroundColor:t,"aria-label":r,"aria-hidden":n,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:u}=aa(Me),l=r?ir.createElement("ink-text",null,r):void 0;if(u&&n)return null;let d=ir.createElement("ink-box",{ref:c,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...a,backgroundColor:t,overflowX:a.overflowX??a.overflow??"visible",overflowY:a.overflowY??a.overflow??"visible"},internal_accessibility:{role:i,state:s}},u&&l?l:e);return t?ir.createElement(mt.Provider,{value:t},d):d});Dn.displayName="Box";var U=Dn;import da,{useContext as Wn}from"react";import Ie from"chalk";import ae from"chalk";var ca=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,ua=/^ansi256\(\s?(\d+)\s?\)$/;function la(e){return e in ae}o(la,"isNamedColor");function K(e,t,r){if(!t)return e;if(la(t)){let n=ae;if(r==="foreground")return n[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return n[i]?.(e)??e}if(t.startsWith("#"))return r==="foreground"?ae.hex(t)(e):ae.bgHex(t)(e);if(t.startsWith("ansi256")){let n=ua.exec(t);if(!n)return e;let i=Number(n[1]);return r==="foreground"?ae.ansi256(i)(e):ae.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let n=ca.exec(t);if(!n)return e;let i=Number(n[1]),s=Number(n[2]),a=Number(n[3]);return r==="foreground"?ae.rgb(i,s,a)(e):ae.bgRgb(i,s,a)(e)}return e}o(K,"colorize");function W({color:e,backgroundColor:t,dimColor:r=!1,bold:n=!1,italic:i=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:u="wrap",children:l,"aria-label":d,"aria-hidden":f=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:h}=Wn(Me),g=Wn(mt),w=h&&d?d:l;if(w==null)return null;let y=o(S=>{let p=S;r&&(p=Ie.dim(p)),e&&(p=K(p,e,"foreground"));let x=t??g;return x&&(p=K(p,x,"background")),n&&(p=Ie.bold(p)),i&&(p=Ie.italic(p)),s&&(p=Ie.underline(p)),a&&(p=Ie.strikethrough(p)),c&&(p=Ie.inverse(p)),p},"transform");return h&&f?null:da.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:u},internal_transform:y,...m?{internal_cursorAnchor:!0}:{}},h&&d?d:l)}o(W,"Text");import $d,{useLayoutEffect as Kd,useMemo as Gd,useState as zd}from"react";import{writeSync as Jc}from"node:fs";import we from"node:process";import uo from"react";import Qc from"es-toolkit/compat/throttle";import B from"ansi-escapes";import ie from"is-in-ci";import Zc from"auto-bind";import{onExit as eu}from"signal-exit";import tu from"patch-console";import{LegacyRoot as ru,ConcurrentRoot as nu}from"react-reconciler/constants.js";import iu from"yoga-layout";import ou from"wrap-ansi";import su from"terminal-size";import fa from"node:process";var ht=o(()=>fa.env.DEV==="true","isDev");import Ha from"react-reconciler";import{DefaultEventPriority as ja,NoEventPriority as si}from"react-reconciler/constants.js";import*as ce from"scheduler";import ri from"yoga-layout";import{createContext as Ua}from"react";import Ia from"yoga-layout";import pa from"widest-line";var Bn=new Map,ma=o(e=>{if(e.length===0)return{width:0,height:0};let t=Bn.get(e);if(t)return t;let r=pa(e),n=e.split(`
|
|
9
|
-
`).length,i={width:r,height:n};return Bn.set(e,i),i},"measureText"),or=ma;import ha from"wrap-ansi";import ga from"cli-truncate";var Hn={},ya=o((e,t,r)=>{let n=e+String(t)+String(r),i=Hn[n];if(i)return i;let s=e;if(r==="wrap"&&(s=ha(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let a="end";r==="truncate-middle"&&(a="middle"),r==="truncate-start"&&(a="start"),s=ga(e,t,{position:a})}return Hn[n]=s,s},"wrapText"),gt=ya;var wa=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),Sa=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),xa=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),$n=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),Ea=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),Kn=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),jn=o((e,t)=>{let r=t;for(;r<e.length;){let c=e[r];if(!wa(c))break;r++}let n=e.slice(t,r),i=r;for(;r<e.length;){let c=e[r];if(!Sa(c))break;r++}let s=e.slice(i,r),a=e[r];if(!(a===void 0||!xa(a)))return{endIndex:r+1,parameterString:n,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Un=o((e,t,r)=>{for(let n=t;n<e.length;n++){let i=e[n];if(r&&i==="\x07"||i==="\x9C")return n+1;if(i==="\x1B"){let s=e[n+1];if(s==="\x1B"){n++;continue}if(s==="\\")return n+2}}},"findControlStringTerminatorIndex"),Ca=o((e,t)=>{let r=t;for(;r<e.length;){let s=e[r];if(!$n(s))break;r++}let n=e.slice(t,r),i=e[r];if(!(i===void 0||!Ea(i)))return{endIndex:r+1,intermediateString:n,finalCharacter:i}},"readEscapeSequence"),Ra=o(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),ba=o(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),sr=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(Kn(t))return!0;return!1},"hasAnsiControlCharacters"),ke=o((e,t,r,n)=>(n>r&&e.push({type:"text",value:t.slice(r,n)}),e.push({type:"invalid",value:t.slice(n)}),e),"malformedFromIndex"),Gn=o(e=>{if(!sr(e))return[{type:"text",value:e}];let t=[],r=0;for(let n=0;n<e.length;){let i=e[n];if(i===void 0)break;if(i==="\x1B"){let a=e[n+1];if(a===void 0)return ke(t,e,r,n);if(a==="["){let l=jn(e,n+2);if(l===void 0)return ke(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"csi",value:e.slice(n,l.endIndex),parameterString:l.parameterString,intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),n=l.endIndex,r=n;continue}let c=Ra(a);if(c!==void 0){let l=Un(e,n+2,c.allowBellTerminator);if(l===void 0)return ke(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:c.type,value:e.slice(n,l)}),n=l,r=n;continue}let u=Ca(e,n+1);if(u===void 0){if($n(a))return ke(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),n++,r=n;continue}n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"esc",value:e.slice(n,u.endIndex),intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),n=u.endIndex,r=n;continue}if(i==="\x9B"){let a=jn(e,n+1);if(a===void 0)return ke(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"csi",value:e.slice(n,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),n=a.endIndex,r=n;continue}let s=ba(i);if(s!==void 0){let a=Un(e,n+1,s.allowBellTerminator);if(a===void 0)return ke(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:s.type,value:e.slice(n,a)}),n=a,r=n;continue}if(i==="\x9C"){n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"st",value:i}),n++,r=n;continue}if(Kn(i)){n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"c1",value:i}),n++,r=n;continue}n++}return r<e.length&&t.push({type:"text",value:e.slice(r)}),t},"tokenizeAnsi");var Ta=/^[\d:;]*$/,Ma=o(e=>{if(!sr(e))return e;let t="";for(let r of Gn(e)){if(r.type==="text"||r.type==="osc"){t+=r.value;continue}r.type==="csi"&&r.finalCharacter==="m"&&r.intermediateString===""&&Ta.test(r.parameterString)&&(t+=r.value)}return t},"sanitizeAnsi"),zn=Ma;var Yn=o(e=>{let t="";for(let r=0;r<e.childNodes.length;r++){let n=e.childNodes[r];if(n===void 0)continue;let i="";n.nodeName==="#text"?i=n.nodeValue:((n.nodeName==="ink-text"||n.nodeName==="ink-virtual-text")&&(i=Yn(n)),i.length>0&&typeof n.internal_transform=="function"&&(i=n.internal_transform(i,r))),t+=i}return zn(t)},"squashTextNodes"),je=Yn;var yt=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:Ia.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(ka.bind(null,t)),t},"createNode"),wt=o((e,t)=>{t.parentNode&&Ue(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&St(e)},"appendChildNode"),ar=o((e,t,r)=>{t.parentNode&&Ue(t.parentNode,t),t.parentNode=e;let n=e.childNodes.indexOf(r);n>=0?(e.childNodes.splice(n,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,n)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&St(e)},"insertBeforeNode"),Ue=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let r=e.childNodes.indexOf(t);r>=0&&e.childNodes.splice(r,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&St(e)},"removeChildNode"),cr=o((e,t,r)=>{if(t==="internal_accessibility"){e.internal_accessibility=r;return}e.attributes[t]=r},"setAttribute"),ur=o((e,t)=>{e.style=t},"setStyle"),Xn=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return $e(t,e),t},"createTextNode"),ka=o(function(e,t){let r=e.nodeName==="#text"?e.nodeValue:je(e),n=or(r);if(n.width<=t||n.width>=1&&t>0&&t<1)return n;let i=e.style?.textWrap??"wrap",s=gt(r,t,i);return or(s)},"measureTextNode"),Vn=o(e=>{if(e?.parentNode)return e.yogaNode??Vn(e.parentNode)},"findClosestYogaNode"),St=o(e=>{Vn(e)?.markDirty()},"markNodeAsDirty"),$e=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,St(e)},"setTextNodeValue");import E from"yoga-layout";var _a=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?E.POSITION_TYPE_ABSOLUTE:E.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(E.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(E.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(E.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(E.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),Aa=o((e,t)=>{"margin"in t&&e.setMargin(E.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(E.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(E.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(E.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(E.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(E.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(E.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),Na=o((e,t)=>{"padding"in t&&e.setPadding(E.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(E.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(E.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(E.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(E.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(E.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(E.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),va=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(E.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(E.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(E.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(E.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(E.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(E.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(E.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(E.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(E.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(E.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(E.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(E.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(E.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(E.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(E.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(E.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(E.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(E.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(E.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(E.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(E.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),Pa=o((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),Fa=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?E.DISPLAY_FLEX:E.DISPLAY_NONE)},"applyDisplayStyles"),La=o((e,t)=>{if("borderStyle"in t){let r=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(E.EDGE_TOP,r),t.borderBottom!==!1&&e.setBorder(E.EDGE_BOTTOM,r),t.borderLeft!==!1&&e.setBorder(E.EDGE_LEFT,r),t.borderRight!==!1&&e.setBorder(E.EDGE_RIGHT,r)}},"applyBorderStyles"),Da=o((e,t)=>{"gap"in t&&e.setGap(E.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(E.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(E.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),Wa=o((e,t={})=>{_a(e,t),Aa(e,t),Na(e,t),va(e,t),Pa(e,t),Fa(e,t),La(e,t),Da(e,t)},"styles"),lr=Wa;if(ht())try{await Promise.resolve().then(()=>(ti(),Ba))}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
2
|
+
var To=Object.defineProperty;var o=(e,t)=>To(e,"name",{value:t,configurable:!0});var Qe=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ft,tn,rn=Qe(()=>{"use strict";Ft=class{static{o(this,"WebSocketStub")}},tn=Ft});var ot,nn=Qe(()=>{"use strict";rn();ot=global;ot.WebSocket||=tn;ot.window||=global;ot.self||=global;ot.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"InternalApp",isEnabled:!0,isValid:!0},{type:2,value:"InternalAppContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdoutContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStderrContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdinContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalFocusContext",isEnabled:!0,isValid:!0}]});var on,Dt,sn=Qe(()=>{"use strict";on=o(()=>{},"noop"),Dt={initialize:on,connectToDevTools:on}});var cs={};var cn=Qe(()=>{"use strict";nn();sn();Dt.initialize();Dt.connectToDevTools()});import{jsx as $e,jsxs as Me}from"react/jsx-runtime";import{useMemo as _a,useRef as Oa,useState as dr}from"react";import{jsx as ki}from"react/jsx-runtime";import{createContext as aa,useContext as ar,useEffect as Te,useMemo as Oi,useState as ua,useCallback as Ni,useRef as yt}from"react";import{Stream as Wc}from"node:stream";import{openSync as Hc,writeSync as wi}from"node:fs";import{performance as Uc}from"node:perf_hooks";import{tmpdir as jc}from"node:os";import{join as Kc}from"node:path";import _t,{forwardRef as _o,useContext as Oo}from"react";import{createContext as Mo}from"react";var ye=Mo({isScreenReaderEnabled:!1});import{createContext as Io}from"react";var Ze=Io(void 0);var jr=_o(({children:e,backgroundColor:t,"aria-label":r,"aria-hidden":n,"aria-role":i,"aria-state":s,...c},a)=>{let{isScreenReaderEnabled:u}=Oo(ye),l=r?_t.createElement("ink-text",null,r):void 0;if(u&&n)return null;let d=_t.createElement("ink-box",{ref:a,style:{flexWrap:"nowrap",flexDirection:"row",flexGrow:0,flexShrink:1,...c,backgroundColor:t,overflowX:c.overflowX??c.overflow??"visible",overflowY:c.overflowY??c.overflow??"visible"},internal_accessibility:{role:i,state:s}},u&&l?l:e);return t?_t.createElement(Ze.Provider,{value:t},d):d});jr.displayName="Box";var B=jr;import vo,{useContext as Kr}from"react";import we from"chalk";import ne from"chalk";var Ao=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,ko=/^ansi256\(\s?(\d+)\s?\)$/;function No(e){return e in ne}o(No,"isNamedColor");function H(e,t,r){if(!t)return e;if(No(t)){let n=ne;if(r==="foreground")return n[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return n[i]?.(e)??e}if(t.startsWith("#"))return r==="foreground"?ne.hex(t)(e):ne.bgHex(t)(e);if(t.startsWith("ansi256")){let n=ko.exec(t);if(!n)return e;let i=Number(n[1]);return r==="foreground"?ne.ansi256(i)(e):ne.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let n=Ao.exec(t);if(!n)return e;let i=Number(n[1]),s=Number(n[2]),c=Number(n[3]);return r==="foreground"?ne.rgb(i,s,c)(e):ne.bgRgb(i,s,c)(e)}return e}o(H,"colorize");function F({color:e,backgroundColor:t,dimColor:r=!1,bold:n=!1,italic:i=!1,underline:s=!1,strikethrough:c=!1,inverse:a=!1,wrap:u="wrap",children:l,"aria-label":d,"aria-hidden":f=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:h}=Kr(ye),p=Kr(Ze),S=h&&d?d:l;if(S==null)return null;let w=o(y=>{let g=y;r&&(g=we.dim(g)),e&&(g=H(g,e,"foreground"));let C=t??p;return C&&(g=H(g,C,"background")),n&&(g=we.bold(g)),i&&(g=we.italic(g)),s&&(g=we.underline(g)),c&&(g=we.strikethrough(g)),a&&(g=we.inverse(g)),g},"transform");return h&&f?null:vo.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:u},internal_transform:w,...m?{internal_cursorAnchor:!0}:{}},h&&d?d:l)}o(F,"Text");import pl,{useLayoutEffect as ml,useMemo as hl,useState as gl}from"react";import{writeSync as Sc}from"node:fs";import me from"node:process";import hi from"react";import xc from"es-toolkit/compat/throttle";import D from"ansi-escapes";import Q from"is-in-ci";import Ec from"auto-bind";import{onExit as Cc}from"signal-exit";import Rc from"patch-console";import{LegacyRoot as bc,ConcurrentRoot as Tc}from"react-reconciler/constants.js";import Mc from"yoga-layout";import Ic from"wrap-ansi";import _c from"terminal-size";import Po from"node:process";var et=o(()=>Po.env.DEV==="true","isDev");import as from"react-reconciler";import{DefaultEventPriority as us,NoEventPriority as fn}from"react-reconciler/constants.js";import*as ie from"scheduler";import an from"yoga-layout";import{createContext as ls}from"react";import Vo from"yoga-layout";import Fo from"widest-line";var $r=new Map,Do=o(e=>{if(e.length===0)return{width:0,height:0};let t=$r.get(e);if(t)return t;let r=Fo(e),n=e.split(`
|
|
3
|
+
`).length,i={width:r,height:n};return $r.set(e,i),i},"measureText"),Ot=Do;import Lo from"wrap-ansi";import Bo from"cli-truncate";var Gr={},Wo=o((e,t,r)=>{let n=e+String(t)+String(r),i=Gr[n];if(i)return i;let s=e;if(r==="wrap"&&(s=Lo(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let c="end";r==="truncate-middle"&&(c="middle"),r==="truncate-start"&&(c="start"),s=Bo(e,t,{position:c})}return Gr[n]=s,s},"wrapText"),tt=Wo;var Ho=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),Uo=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),jo=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Xr=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),Ko=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),Vr=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),zr=o((e,t)=>{let r=t;for(;r<e.length;){let a=e[r];if(!Ho(a))break;r++}let n=e.slice(t,r),i=r;for(;r<e.length;){let a=e[r];if(!Uo(a))break;r++}let s=e.slice(i,r),c=e[r];if(!(c===void 0||!jo(c)))return{endIndex:r+1,parameterString:n,intermediateString:s,finalCharacter:c}},"readCsiSequence"),Yr=o((e,t,r)=>{for(let n=t;n<e.length;n++){let i=e[n];if(r&&i==="\x07"||i==="\x9C")return n+1;if(i==="\x1B"){let s=e[n+1];if(s==="\x1B"){n++;continue}if(s==="\\")return n+2}}},"findControlStringTerminatorIndex"),$o=o((e,t)=>{let r=t;for(;r<e.length;){let s=e[r];if(!Xr(s))break;r++}let n=e.slice(t,r),i=e[r];if(!(i===void 0||!Ko(i)))return{endIndex:r+1,intermediateString:n,finalCharacter:i}},"readEscapeSequence"),Go=o(e=>{switch(e){case"]":return{type:"osc",allowBellTerminator:!0};case"P":return{type:"dcs",allowBellTerminator:!1};case"^":return{type:"pm",allowBellTerminator:!1};case"_":return{type:"apc",allowBellTerminator:!1};case"X":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromEscapeIntroducer"),zo=o(e=>{switch(e){case"\x9D":return{type:"osc",allowBellTerminator:!0};case"\x90":return{type:"dcs",allowBellTerminator:!1};case"\x9E":return{type:"pm",allowBellTerminator:!1};case"\x9F":return{type:"apc",allowBellTerminator:!1};case"\x98":return{type:"sos",allowBellTerminator:!1};default:return}},"getControlStringFromC1Introducer"),At=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(Vr(t))return!0;return!1},"hasAnsiControlCharacters"),Se=o((e,t,r,n)=>(n>r&&e.push({type:"text",value:t.slice(r,n)}),e.push({type:"invalid",value:t.slice(n)}),e),"malformedFromIndex"),qr=o(e=>{if(!At(e))return[{type:"text",value:e}];let t=[],r=0;for(let n=0;n<e.length;){let i=e[n];if(i===void 0)break;if(i==="\x1B"){let c=e[n+1];if(c===void 0)return Se(t,e,r,n);if(c==="["){let l=zr(e,n+2);if(l===void 0)return Se(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"csi",value:e.slice(n,l.endIndex),parameterString:l.parameterString,intermediateString:l.intermediateString,finalCharacter:l.finalCharacter}),n=l.endIndex,r=n;continue}let a=Go(c);if(a!==void 0){let l=Yr(e,n+2,a.allowBellTerminator);if(l===void 0)return Se(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:a.type,value:e.slice(n,l)}),n=l,r=n;continue}let u=$o(e,n+1);if(u===void 0){if(Xr(c))return Se(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),n++,r=n;continue}n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"esc",value:e.slice(n,u.endIndex),intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),n=u.endIndex,r=n;continue}if(i==="\x9B"){let c=zr(e,n+1);if(c===void 0)return Se(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"csi",value:e.slice(n,c.endIndex),parameterString:c.parameterString,intermediateString:c.intermediateString,finalCharacter:c.finalCharacter}),n=c.endIndex,r=n;continue}let s=zo(i);if(s!==void 0){let c=Yr(e,n+1,s.allowBellTerminator);if(c===void 0)return Se(t,e,r,n);n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:s.type,value:e.slice(n,c)}),n=c,r=n;continue}if(i==="\x9C"){n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"st",value:i}),n++,r=n;continue}if(Vr(i)){n>r&&t.push({type:"text",value:e.slice(r,n)}),t.push({type:"c1",value:i}),n++,r=n;continue}n++}return r<e.length&&t.push({type:"text",value:e.slice(r)}),t},"tokenizeAnsi");var Yo=/^[\d:;]*$/,Xo=o(e=>{if(!At(e))return e;let t="";for(let r of qr(e)){if(r.type==="text"||r.type==="osc"){t+=r.value;continue}r.type==="csi"&&r.finalCharacter==="m"&&r.intermediateString===""&&Yo.test(r.parameterString)&&(t+=r.value)}return t},"sanitizeAnsi"),Jr=Xo;var Qr=o(e=>{let t="";for(let r=0;r<e.childNodes.length;r++){let n=e.childNodes[r];if(n===void 0)continue;let i="";n.nodeName==="#text"?i=n.nodeValue:((n.nodeName==="ink-text"||n.nodeName==="ink-virtual-text")&&(i=Qr(n)),i.length>0&&typeof n.internal_transform=="function"&&(i=n.internal_transform(i,r))),t+=i}return Jr(t)},"squashTextNodes"),Ne=Qr;var rt=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:Vo.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(qo.bind(null,t)),t},"createNode"),nt=o((e,t)=>{t.parentNode&&ve(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount()),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&it(e)},"appendChildNode"),kt=o((e,t,r)=>{t.parentNode&&ve(t.parentNode,t),t.parentNode=e;let n=e.childNodes.indexOf(r);n>=0?(e.childNodes.splice(n,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,n)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&it(e)},"insertBeforeNode"),ve=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let r=e.childNodes.indexOf(t);r>=0&&e.childNodes.splice(r,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&it(e)},"removeChildNode"),Nt=o((e,t,r)=>{if(t==="internal_accessibility"){e.internal_accessibility=r;return}e.attributes[t]=r},"setAttribute"),vt=o((e,t)=>{e.style=t},"setStyle"),Zr=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return Pe(t,e),t},"createTextNode"),qo=o(function(e,t){let r=e.nodeName==="#text"?e.nodeValue:Ne(e),n=Ot(r);if(n.width<=t||n.width>=1&&t>0&&t<1)return n;let i=e.style?.textWrap??"wrap",s=tt(r,t,i);return Ot(s)},"measureTextNode"),en=o(e=>{if(e?.parentNode)return e.yogaNode??en(e.parentNode)},"findClosestYogaNode"),it=o(e=>{en(e)?.markDirty()},"markNodeAsDirty"),Pe=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,it(e)},"setTextNodeValue");import x from"yoga-layout";var Qo=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?x.POSITION_TYPE_ABSOLUTE:x.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(x.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(x.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(x.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(x.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),Zo=o((e,t)=>{"margin"in t&&e.setMargin(x.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(x.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(x.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(x.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(x.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(x.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(x.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),es=o((e,t)=>{"padding"in t&&e.setPadding(x.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(x.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(x.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(x.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(x.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(x.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(x.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),ts=o((e,t)=>{"flexGrow"in t&&e.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexWrap"in t&&(t.flexWrap==="nowrap"&&e.setFlexWrap(x.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(x.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(x.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(x.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(x.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(x.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(x.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(Number.NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(x.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(x.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(x.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(x.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(x.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(x.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(x.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(x.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(x.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(x.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(x.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(x.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(x.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(x.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),rs=o((e,t)=>{"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight(t.minHeight??0))},"applyDimensionStyles"),ns=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?x.DISPLAY_FLEX:x.DISPLAY_NONE)},"applyDisplayStyles"),is=o((e,t)=>{if("borderStyle"in t){let r=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(x.EDGE_TOP,r),t.borderBottom!==!1&&e.setBorder(x.EDGE_BOTTOM,r),t.borderLeft!==!1&&e.setBorder(x.EDGE_LEFT,r),t.borderRight!==!1&&e.setBorder(x.EDGE_RIGHT,r)}},"applyBorderStyles"),os=o((e,t)=>{"gap"in t&&e.setGap(x.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(x.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(x.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),ss=o((e,t={})=>{Qo(e,t),Zo(e,t),es(e,t),ts(e,t),rs(e,t),ns(e,t),is(e,t),os(e,t)},"styles"),Pt=ss;if(et())try{await Promise.resolve().then(()=>(cn(),cs))}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
10
4
|
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
11
5
|
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
12
6
|
|
|
@@ -14,32 +8,35 @@ To install use this command:
|
|
|
14
8
|
|
|
15
9
|
$ npm install --save-dev react-devtools-core
|
|
16
10
|
`.trim()+`
|
|
17
|
-
`);else throw e}var
|
|
18
|
-
`).repeat(
|
|
19
|
-
`).repeat(
|
|
20
|
-
`.repeat(i)+
|
|
21
|
-
`;r=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>
|
|
22
|
-
`))n=Math.max(n,this.getStringWidth(i));r=n,this.blockWidths.set(t,r)}return r}},
|
|
23
|
-
`),l=r.at(-1);if(l){let f=typeof l?.x1=="number"&&typeof l?.x2=="number",m=typeof l?.y1=="number"&&typeof l?.y2=="number";if(f){let h=this.caches.getWidestLine(i);if(
|
|
24
|
-
`),height:t.length}}};var
|
|
25
|
-
`).length,
|
|
26
|
-
`:"",frame:void 0}}let n=new
|
|
27
|
-
`:"",frame:f}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),
|
|
28
|
-
`)}]}o(
|
|
29
|
-
`};function Xe(e,t,r){let n=t.width===z.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(n===2&&c<i){let d=t.char.length>2?i:i+1;if(c+2>=d)return[[],{dx:0,dy:0}]}let u=[];r.length>0&&u.push({type:"stdout",content:r});let l=n===2&&Ai(t.char);return l&&c+1<i&&(u.push({type:"cursorTo",col:c+2}),u.push({type:"stdout",content:" "}),u.push({type:"cursorTo",col:c+1})),u.push({type:"stdout",content:t.char}),l&&u.push({type:"cursorTo",col:c+n+1}),s=!0,c>=i?[u,{dx:n-c,dy:1}]:[u,{dx:n,dy:0}]}),s}o(Xe,"writeCellWithStyleStr");function ge(e,t,r){e.txn(n=>{let i=t-n.x,s=r-n.y;return n.x>=e.viewportWidth?[[ee,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[ee,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(ge,"moveCursorTo");function Ve(e,t,r,n,i=!1){let s="",a;for(let c=r;c<n;c++){if(e.cursor.y<c){let f=c-e.cursor.y;e.txn(m=>{let h=new Array(1+f);h[0]=ee;for(let g=0;g<f;g++)h[1+g]=ze;return[h,{dx:-m.x,dy:f}]})}for(let f=0;f<t.screen.width;f++){let m=pe(t.screen,f,c);if(!m||m.width===z.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;ge(e,f,c);let h=Z(a,m.hyperlink);for(let w of h.patches)e.txn(()=>[[w],{dx:0,dy:0}]);a=h.current;let g=Ye(s,m.style);Xe(e,m,g.str)&&(s=g.current)}let u=me(s,"");for(let f of u.patches)e.txn(()=>[[f],{dx:0,dy:0}]);s=u.current;let l=Z(a,void 0);for(let f of l.patches)e.txn(()=>[[f],{dx:0,dy:0}]);a=l.current;let d=c===n-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||i);e.txn(f=>d?[[ee],{dx:-f.x,dy:0}]:[[ee,ze],{dx:-f.x,dy:1}])}if(s!==""||a!==void 0){let c=me(s,"");for(let l of c.patches)e.txn(()=>[[l],{dx:0,dy:0}]);let u=Z(a,void 0);for(let l of u.patches)e.txn(()=>[[l],{dx:0,dy:0}])}}o(Ve,"renderFrameSlice");function Cr(e,t,r,n){let i=Math.max(0,Math.floor(r)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(n));for(let a=i;a<=s;a++)pc(e,t,a)}o(Cr,"repaintFrameRows");function pc(e,t,r){let n="",i;ge(e,0,r),e.txn(()=>[[{type:"stdout",content:_e+Ke},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=pe(t.screen,s,r);if(!a||a.width===z.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;ge(e,s,r);let c=Z(i,a.hyperlink);for(let l of c.patches)e.txn(()=>[[l],{dx:0,dy:0}]);i=c.current;let u=Ye(n,a.style);Xe(e,a,u.str)&&(n=u.current)}for(let s of me(n,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of Z(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o(pc,"repaintFrameRow");function Rr(e,t){let r="";for(let n=0;n<e.width;n++){let i=pe(e,n,t);r+=i?.char??" "}return r.trimEnd()}o(Rr,"readLine");function Ae(e,t,r=!1){let n=new he({x:0,y:0},e.viewport.width);Ve(n,e,0,e.screen.height,r);let i=[{type:"clearTerminal",reason:t}];for(let s of n.diff)i.push(s);return i}o(Ae,"fullResetSequence_CAUSES_FLICKER");function Mt(e,t){let r=e.cursor.y>=e.screen.height,n=t.screen.height>e.screen.height,i=t.screen.height<e.screen.height,s=r&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:n?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:r,growing:n,shrinking:i,prevHadScrollback:s,nextFitsViewport:a}}o(Mt,"computeViewportState");function Ni(e,t,r){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let n=Mt(e,t);if(n.prevHadScrollback&&n.nextFitsViewport&&n.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&n.cursorAtBottom&&!n.growing){let s=e.screen.height-e.viewport.height+1;for(let a of Tt(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:r(e.screen,a.y),nextLine:r(t.screen,a.y)}}}return n.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}o(Ni,"shouldFullReset");function vi(e,t,r){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&r&&!e)}o(vi,"shouldSkipDiff");var It=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,r,n={}){if(!this.options.isTTY)return Er(r);let i=n.inlineBottomAnchored??!1,s=Pi(t,i),a=Pi(r,i);if(n.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return Ae(a,"clear",i);let c=Ni(s,a,Rr);if(c.reset)return Ae(a,c.reason,i);if(a.scrollRepaint&&n.altScreen===!0)return mc(s,a,a.scrollRepaint);let u=a.scrollHint;if(u&&n.altScreen&&n.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&u.delta!==0&&u.top>=0&&u.bottom<s.screen.height&&u.bottom<a.screen.height&&Math.abs(u.delta)<=u.bottom-u.top){let l={type:"scrollRegion",top:u.top,bottom:u.bottom,delta:u.delta},d={...s,screen:yi(s.screen,u.top,u.bottom,u.delta)};return[l,...Fi(d,a,i)]}return Fi(s,a,i)}reset(){}};function br(e,t){for(let r of t)e.txn(()=>[[r],{dx:0,dy:0}])}o(br,"emitPatches");function Tr(e,t,r){if(t!==""){let n=me(t,"");br(e,n.patches)}if(r!==void 0){let n=Z(r,void 0);br(e,n.patches)}return{style:"",hyperlink:void 0}}o(Tr,"resetStyleAndHyperlink");function mc(e,t,r){let n=Mt(e,t),i=new he(e.cursor,t.viewport.width);n.shrinking&&Li(i,e,t);let s=Math.max(0,Math.floor(r.top)),a=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r.bottom)),c=a>=s?{top:s,bottom:a}:void 0;c&&Cr(i,t,c.top,c.bottom);let u=Di(i,e,t,{...n,skipRows:c});return u.needsFullReset?Ae(t,"offscreen"):(Tr(i,u.currentStyle,u.currentHyperlink),n.growing&&Ve(i,t,e.screen.height,t.screen.height),Wi(i,t),i.diff)}o(mc,"renderScrollRepaint");function Li(e,t,r){let n=t.screen.height-r.screen.height;e.txn(i=>[[{type:"clear",count:n},{type:"cursorMove",x:0,y:-1}],{dx:-i.x,dy:-n}])}o(Li,"applyShrink");function Di(e,t,r,n){let i="",s,a=!1;for(let c of Tt(t.screen,r.screen)){let{x:u,y:l,prev:d,next:f}=c;if(n.growing&&l>=t.screen.height||n.skipRows&&l>=n.skipRows.top&&l<=n.skipRows.bottom)continue;let m=!!(f&&f.char===" "&&f.style===""&&f.hyperlink===void 0);if(!vi(d,f,m)){if(l<n.viewportY){a=!0;break}if(ge(e,u,l),f){let h=Z(s,f.hyperlink);br(e,h.patches),s=h.current;let g=Ye(i,f.style);Xe(e,f,g.str)&&(i=g.current)}else if(d){let h=Tr(e,i,s);i=h.style,s=h.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:a}}o(Di,"diffPass");function Pi(e,t){let r=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=r?e:{...e,cursor:{...e.cursor,y:r}}}o(Pi,"clampRestingCursor");function Wi(e,t){t.cursor.y>=t.screen.height?e.txn(r=>{let n=t.cursor.y-r.y;if(n>0){let s=new Array(1+n);s[0]=ee;for(let a=0;a<n;a++)s[1+a]=ze;return[s,{dx:-r.x,dy:n}]}let i=t.cursor.y-r.y;return i!==0||r.x!==t.cursor.x?[[ee,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-r.x,dy:i}]:[[],{dx:0,dy:0}]}):ge(e,t.cursor.x,t.cursor.y)}o(Wi,"restoreCursor");function Fi(e,t,r=!1){let n=Mt(e,t),i=new he(e.cursor,t.viewport.width);n.shrinking&&Li(i,e,t);let s=Di(i,e,t,n);return s.needsFullReset?Ae(t,"offscreen",r):(Tr(i,s.currentStyle,s.currentHyperlink),n.growing&&Ve(i,t,e.screen.height,t.screen.height,r),Wi(i,t),i.diff)}o(Fi,"renderIncremental");var hc="\x1B[?25l",gc="\x1B[?25h",yc=`\x1B[2J${Ei}`,wc="\x1B[?2026h",Sc="\x1B[?2026l";function xc(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return hc;case"cursorShow":return gc;case"cursorMove":return Ci(e.x,e.y);case"cursorTo":return xi(e.col);case"eraseLine":return xr;case"clear":return Ri(e.count);case"clearTerminal":return yc;case"hyperlink":return Ge(e.uri);case"scrollRegion":{let t=e.top+1,r=e.bottom+1,n=Math.abs(e.delta),i=e.delta>0?ki(n):Oi(n);return Ti+Ii(t,r)+i+bi+Mi}}}o(xc,"patchToBytes");function kt(e,t,r=!1){let n="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),n+=xc(s);if(n.length!==0){if(r&&i){e.write(wc+n+Sc);return}e.write(n)}}o(kt,"applyDiff");function Bi(e,t,r={}){if(t===void 0)return!1;let n=e.cellLogUpdate.render(e.prevFrame,t,r);return kt(e.stdout,n,r.synchronized??!1),e.prevFrame=t,!0}o(Bi,"applyCellFrame");function qe(e,t){return{screen:hi(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(qe,"emptyFrame");import Ec from"is-in-ci";var te="\x1B[?2026h",Y="\x1B[?2026l";function re(e){return"isTTY"in e&&e.isTTY===!0&&!Ec}o(re,"shouldSynchronize");var Cc="\x1B[?1049l";var Rc="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function Hi(e={}){return(e.mouseTracking!==!1?Rc:"")+Cc}o(Hi,"buildAlternateScreenExitSequence");var bc=new WeakMap,ji=bc;import{EventEmitter as Kc}from"node:events";import Gc from"node:process";import ye,{useState as kr,useRef as Ne,useCallback as v,useMemo as ve,useEffect as oo}from"react";import zc from"cli-cursor";var Tc=o(e=>e>=48&&e<=63,"isCsiParameterByte"),Mc=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),$i=o(e=>e>=64&&e<=126,"isCsiFinalByte");function Ic(e,t,r){let n=t+r+1,i=n;for(;i<e.length;i+=1){let s=e.codePointAt(i);if(s===void 0)return"pending";if(!(Tc(s)||Mc(s))&&!(s===91&&i===n))return $i(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(Ic,"parseCsiSequence");function kc(e,t,r){let n=t+r+2;if(n>e.length)return"pending";let i=e.codePointAt(n-1);if(!(i===void 0||!$i(i)))return{sequence:e.slice(t,n),nextIndex:n}}o(kc,"parseSs3Sequence");function Ui(e,t,r){let n=e[t+r];if(n===void 0)return"pending";if(n==="[")return Ic(e,t,r);if(n==="O")return kc(e,t,r)}o(Ui,"parseControlSequence");function Oc(e,t){let r=e.codePointAt(t+1),n=r!==void 0&&r>65535?2:1,i=t+1+n;return{sequence:e.slice(t,i),nextIndex:i}}o(Oc,"parseEscapedCodePoint");function _c(e){let t=[],r=0,n=o(i=>({events:t,pending:e.slice(i)}),"pendingFrom");for(;r<e.length;){let i=e.indexOf("\x1B",r);if(i===-1)return t.push(e.slice(r)),{events:t,pending:""};if(i>r&&t.push(e.slice(r,i)),i===e.length-1)return n(i);let s=Ui(e,i,1);if(s==="pending")return n(i);if(s){t.push(s.sequence),r=s.nextIndex;continue}if(e[i+1]==="\x1B"){if(i+2>=e.length)return n(i);let u=Ui(e,i,2);if(u==="pending")return n(i);if(u){t.push(u.sequence),r=u.nextIndex;continue}t.push(e.slice(i,i+2)),r=i+2;continue}let c=Oc(e,i);t.push(c.sequence),r=c.nextIndex}return{events:t,pending:""}}o(_c,"parseKeypresses");function Ot(){let e="";return{push(t){let r=_c(e+t);return e=r.pending,r.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}o(Ot,"createInputParser");import{createContext as Ac}from"react";var Ki=Ac({exit(){}});Ki.displayName="InternalAppContext";var Gi=Ki;import{EventEmitter as Nc}from"node:events";import{createContext as vc}from"react";var Pc={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},zi=vc({stdin:Pc,internal_eventEmitter:new Nc,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});zi.displayName="InternalStdinContext";var Yi=zi;import{createContext as Fc}from"react";var Lc={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},Xi=Fc({stdout:Lc,write(){}});Xi.displayName="InternalStdoutContext";var Vi=Xi;import{createContext as Dc}from"react";var Wc={isTTY:!1,write(){return!0},on(){},off(){}},qi=Dc({stderr:Wc,write(){}});qi.displayName="InternalStderrContext";var Ji=qi;import{createContext as Bc}from"react";var Qi=Bc({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});Qi.displayName="InternalFocusContext";var Zi=Qi;import{createContext as Hc}from"react";var eo=Hc({setCursorPosition(){}});eo.displayName="InternalCursorContext";var to=eo;import Uc,{PureComponent as $c}from"react";import*as _t from"node:fs";import{cwd as io}from"node:process";import F from"react";import ro from"stack-utils";import jc from"code-excerpt";var Mr=o(e=>e?.replace(`file://${io()}/`,""),"cleanupPath"),no=new ro({cwd:io(),internals:ro.nodeInternals()});function Ir({error:e}){let t=e.stack?e.stack.split(`
|
|
30
|
-
`).slice(1):void 0,r=t?
|
|
31
|
-
`).slice(1).map(
|
|
11
|
+
`);else throw e}var un=o((e,t)=>{if(e===t)return;if(!e)return t;let r={},n=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(r[i]=void 0,n=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(r[i]=t[i],n=!0);return n?r:void 0},"diff"),ln=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),st=fn,Lt,dn={name:void 0,version:void 0},z=as({getRootHostContext:o(()=>({isInsideText:!1}),"getRootHostContext"),prepareForCommit:o(()=>null,"prepareForCommit"),preparePortalMount:o(()=>null,"preparePortalMount"),clearContainer:o(()=>!1,"clearContainer"),resetAfterCommit(e){if(typeof e.onComputeLayout=="function"&&e.onComputeLayout(),e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext(e,t){let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:o(()=>!1,"shouldSetTextContent"),createInstance(e,t,r,n){if(n.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let i=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,s=rt(i);for(let[c,a]of Object.entries(t))if(c!=="children"){if(c==="style"){vt(s,a),s.yogaNode&&Pt(s.yogaNode,a);continue}if(c==="internal_transform"){s.internal_transform=a;continue}if(c==="internal_cursorAnchor"){s.internal_cursorAnchor=a;continue}if(c==="internal_static"){Lt=r,s.internal_static=!0,r.isStaticDirty=!0,r.staticNode=s;continue}Nt(s,c,a)}return s},createTextInstance(e,t,r){if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return Zr(e)},resetTextContent(){},hideTextInstance(e){Pe(e,"")},unhideTextInstance(e,t){Pe(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(an.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(an.DISPLAY_FLEX)},appendInitialChild:nt,appendChild:nt,insertBefore:kt,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:ie.unstable_scheduleCallback,cancelCallback:ie.unstable_cancelCallback,shouldYield:ie.unstable_shouldYield,now:ie.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:nt,insertInContainerBefore:kt,removeChildFromContainer(e,t){ve(e,t),ln(t.yogaNode)},commitUpdate(e,t,r,n){Lt&&e.internal_static&&(Lt.isStaticDirty=!0);let i=un(r,n),s=un(r.style,n.style);if(!(!i&&!s)){if(i)for(let[c,a]of Object.entries(i)){if(c==="style"){vt(e,a);continue}if(c==="internal_transform"){e.internal_transform=a;continue}if(c==="internal_cursorAnchor"){e.internal_cursorAnchor=a;continue}if(c==="internal_static"){e.internal_static=!0;continue}Nt(e,c,a)}s&&e.yogaNode&&Pt(e.yogaNode,s)}},commitTextUpdate(e,t,r){Pe(e,r)},removeChild(e,t){ve(e,t),ln(t.yogaNode)},setCurrentUpdatePriority(e){st=e},getCurrentUpdatePriority:o(()=>st,"getCurrentUpdatePriority"),resolveUpdatePriority(){return st!==fn?st:us},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:ls(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:dn.name,rendererVersion:dn.version});import hs from"widest-line";import gs from"indent-string";import oe from"yoga-layout";import ct from"yoga-layout";var ds=o(e=>e.getComputedWidth()-e.getComputedPadding(ct.EDGE_LEFT)-e.getComputedPadding(ct.EDGE_RIGHT)-e.getComputedBorder(ct.EDGE_LEFT)-e.getComputedBorder(ct.EDGE_RIGHT),"getMaxWidth"),pn=ds;import fs from"cli-boxes";import at from"chalk";var ps=o((e,t,r,n)=>{if(r.style.borderStyle){let i=r.yogaNode.getComputedWidth(),s=r.yogaNode.getComputedHeight(),c=typeof r.style.borderStyle=="string"?fs[r.style.borderStyle]:r.style.borderStyle,a=r.style.borderTopColor??r.style.borderColor,u=r.style.borderBottomColor??r.style.borderColor,l=r.style.borderLeftColor??r.style.borderColor,d=r.style.borderRightColor??r.style.borderColor,f=r.style.borderTopDimColor??r.style.borderDimColor,m=r.style.borderBottomDimColor??r.style.borderDimColor,h=r.style.borderLeftDimColor??r.style.borderDimColor,p=r.style.borderRightDimColor??r.style.borderDimColor,S=r.style.borderTop!==!1,w=r.style.borderBottom!==!1,y=r.style.borderLeft!==!1,g=r.style.borderRight!==!1,C=i-(y?1:0)-(g?1:0),R=S?H((y?c.topLeft:"")+c.top.repeat(C)+(g?c.topRight:""),a,"foreground"):void 0;S&&f&&(R=at.dim(R));let M=s;S&&(M-=1),w&&(M-=1);let P=(H(c.left,l,"foreground")+`
|
|
12
|
+
`).repeat(M);h&&(P=at.dim(P));let N=(H(c.right,d,"foreground")+`
|
|
13
|
+
`).repeat(M);p&&(N=at.dim(N));let b=w?H((y?c.bottomLeft:"")+c.bottom.repeat(C)+(g?c.bottomRight:""),u,"foreground"):void 0;w&&m&&(b=at.dim(b));let ge=S?1:0;R&&n.write(e,t,R,{transformers:[]}),y&&n.write(e,t+ge,P,{transformers:[]}),g&&n.write(e+i-1,t+ge,N,{transformers:[]}),b&&n.write(e,t+s-1,b,{transformers:[]})}},"renderBorder"),mn=ps;var ms=o((e,t,r,n)=>{if(!r.style.backgroundColor)return;let i=r.yogaNode.getComputedWidth(),s=r.yogaNode.getComputedHeight(),c=r.style.borderStyle&&r.style.borderLeft!==!1?1:0,a=r.style.borderStyle&&r.style.borderRight!==!1?1:0,u=r.style.borderStyle&&r.style.borderTop!==!1?1:0,l=r.style.borderStyle&&r.style.borderBottom!==!1?1:0,d=i-c-a,f=s-u-l;if(!(d>0&&f>0))return;let m=H(" ".repeat(d),r.style.backgroundColor,"background");for(let h=0;h<f;h++)n.write(e+c,t+u+h,m,{transformers:[]})},"renderBackground"),hn=ms;function gn(e){let{rawScrollTop:t,contentHeight:r,viewportHeight:n,previousScrollHeight:i,stickyScroll:s,clampMin:c,clampMax:a,virtualScrollWindowed:u,inWindowScrollTop:l,previousAppliedScrollTop:d,regionTop:f}=e,m=Math.max(0,r-n),h=Math.max(0,Math.min(Math.floor(t),m)),S=s&&r>=i?m:h,w=c!==void 0||a!==void 0?Math.max(c??0,Math.min(S,Math.min(m,a??m))):S,y=u&&l!==void 0,g=Math.max(0,Math.floor(l??0)),C=u?y?g:0:w,R=y?C:w,M=null;if(d!==void 0&&d!==R&&n>0){let P=f+n-1;P>=f&&(M={top:f,bottom:P,delta:R-d})}return{scrollHeight:r,viewportTop:w,appliedScrollTop:R,scrollTop:w,scrollOffsetY:C,scrollHint:M}}o(gn,"computeScrollState");var ys=o((e,t)=>{let r=e.childNodes[0]?.yogaNode;if(r){let n=r.getComputedLeft(),i=r.getComputedTop();t=`
|
|
14
|
+
`.repeat(i)+gs(t,n)}return t},"applyPaddingToText"),ut=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===oe.DISPLAY_NONE)return"";let r="";if(e.nodeName==="ink-text")r=Ne(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let n=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
15
|
+
`;r=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>ut(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(n)}if(e.internal_accessibility){let{role:n,state:i}=e.internal_accessibility;if(i){let c=Object.keys(i).filter(a=>i[a]).join(", ");c&&(r=`(${c}) ${r}`)}n&&n!==t.parentRole&&(r=`${n}: ${r}`)}return r},"renderNodeToScreenReaderOutput"),Bt=null,Wt=null;function yn(){Bt=null,Wt=null}o(yn,"resetScrollHint");function wn(){return Bt}o(wn,"getScrollHint");function Sn(){return Wt}o(Sn,"getScrollRepaint");var xn=o((e,t,r)=>{let{offsetX:n=0,offsetY:i=0,transformers:s=[],skipStaticElements:c}=r;if(c&&e.internal_static)return;let{yogaNode:a}=e;if(a){if(a.getDisplay()===oe.DISPLAY_NONE)return;let u=n+a.getComputedLeft(),l=i+a.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:u,y:l});let d=s;if(typeof e.internal_transform=="function"&&(d=[e.internal_transform,...s]),e.nodeName==="ink-text"){let h=Ne(e);if(h.length>0){let p=hs(h),S=pn(a);if(p>S){let w=e.style.textWrap??"wrap";h=tt(h,S,w)}h=ys(e,h),t.write(u,l,h,{transformers:d})}return}let f=!1,m=0;if(e.nodeName==="ink-box"){hn(u,l,e,t),mn(u,l,e,t);let h=e.style.overflowX??e.style.overflow,p=e.style.overflowY??e.style.overflow,S=h==="hidden"||h==="scroll",w=p==="hidden"||p==="scroll";if(p==="scroll"){let y=a.getComputedBorder(oe.EDGE_TOP),g=a.getComputedBorder(oe.EDGE_BOTTOM),C=Math.max(0,a.getComputedHeight()-y-g),R=e.attributes?.virtualScrollWindowed===!0,M=e.childNodes[0],P=Math.max(0,Math.floor(R?e.attributes?.scrollHeight??0:M?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),N=typeof e.scrollHeight=="number"?e.scrollHeight:P,b=gn({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:P,viewportHeight:C,previousScrollHeight:N,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:R,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:l+y});e.scrollHeight=b.scrollHeight,e.scrollViewportHeight=C,e.scrollViewportTop=b.viewportTop,e.appliedScrollTop=b.appliedScrollTop,b.scrollHint&&(Bt=b.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(Wt={top:b.scrollHint.top,bottom:b.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=b.scrollTop,m=b.scrollOffsetY}if(S||w){let y=S?u+a.getComputedBorder(oe.EDGE_LEFT):void 0,g=S?u+a.getComputedWidth()-a.getComputedBorder(oe.EDGE_RIGHT):void 0,C=w?l+a.getComputedBorder(oe.EDGE_TOP):void 0,R=w?l+a.getComputedHeight()-a.getComputedBorder(oe.EDGE_BOTTOM):void 0;t.clip({x1:y,x2:g,y1:C,y2:R}),f=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let h of e.childNodes)xn(h,t,{offsetX:u,offsetY:l-m,transformers:d,skipStaticElements:c});f&&t.unclip()}}},"renderNodeToOutput"),Ht=xn;import ws from"slice-ansi";import Ss from"string-width";import{styledCharsFromTokens as xs,styledCharsToString as Es,tokenize as Cs}from"@alcalzone/ansi-tokenize";var Ut=class{static{o(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let r=this.styledChars.get(t);return r===void 0&&(r=xs(Cs(t)),this.styledChars.set(t,r)),r}getStringWidth(t){let r=this.widths.get(t);return r===void 0&&(r=Ss(t),this.widths.set(t,r)),r}getWidestLine(t){let r=this.blockWidths.get(t);if(r===void 0){let n=0;for(let i of t.split(`
|
|
16
|
+
`))n=Math.max(n,this.getStringWidth(i));r=n,this.blockWidths.set(t,r)}return r}},xe=class{static{o(this,"Output")}width;height;operations=[];caches=new Ut;constructor(t){let{width:r,height:n}=t;this.width=r,this.height=n}write(t,r,n,i){let{transformers:s}=i;n&&this.operations.push({type:"write",x:t,y:r,text:n,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let n=0;n<this.height;n++){let i=[];for(let s=0;s<this.width;s++)i.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(i)}let r=[];for(let n of this.operations)if(n.type==="clip"&&r.push(n.clip),n.type==="unclip"&&r.pop(),n.type==="write"){let{text:i,transformers:s}=n,{x:c,y:a}=n,u=i.split(`
|
|
17
|
+
`),l=r.at(-1);if(l){let f=typeof l?.x1=="number"&&typeof l?.x2=="number",m=typeof l?.y1=="number"&&typeof l?.y2=="number";if(f){let h=this.caches.getWidestLine(i);if(c+h<l.x1||c>l.x2)continue}if(m){let h=u.length;if(a+h<l.y1||a>l.y2)continue}if(f&&(u=u.map(h=>{let p=c<l.x1?l.x1-c:0,S=this.caches.getStringWidth(h),w=c+S>l.x2?l.x2-c:S;return ws(h,p,w)}),c<l.x1&&(c=l.x1)),m){let h=a<l.y1?l.y1-a:0,p=u.length,S=a+p>l.y2?l.y2-a:p;u=u.slice(h,S),a<l.y1&&(a=l.y1)}}let d=0;for(let[f,m]of u.entries()){let h=t[a+d];if(!h)continue;for(let w of s)m=w(m,f);let p=this.caches.getStyledChars(m),S=c;for(let w of p){h[S]=w;let y=Math.max(1,this.caches.getStringWidth(w.value));if(y>1)for(let g=1;g<y;g++)h[S+g]={type:"char",value:"",fullWidth:!1,styles:w.styles};S+=y}d++}}return t}get(){let t=this.getGrid();return{output:t.map(n=>{let i=n.filter(s=>s!==void 0);return Es(i).trimEnd()}).join(`
|
|
18
|
+
`),height:t.length}}};var K={Single:0,Wide:1,SpacerTail:2},j={char:" ",width:K.Single,style:"",hyperlink:void 0};function En(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let r=new Array(e*t).fill(j);return{width:e,height:t,cells:r}}o(En,"createScreen");function ue(e,t,r){if(!(t<0||r<0||t>=e.width||r>=e.height))return e.cells[r*e.width+t]}o(ue,"cellAt");function Cn(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let r=new Array(e*t).fill(j),n=!1;return{width:e,height:t,setCellAt(i,s,c){if(n)throw new Error("ScreenBuilder.setCellAt called after build()");if(i<0||s<0||i>=e||s>=t)throw new RangeError(`ScreenBuilder.setCellAt out of bounds: (${i}, ${s}) on ${e}x${t}`);r[s*e+i]=c},build(){if(n)throw new Error("ScreenBuilder.build called twice");return n=!0,{width:e,height:t,cells:r}}}}o(Cn,"createScreenBuilder");function*lt(e,t){let r=Math.max(e.width,t.width),n=Math.max(e.height,t.height);for(let i=0;i<n;i++)for(let s=0;s<r;s++){let c=ue(e,s,i),a=ue(t,s,i);Rs(c,a)||(yield{x:s,y:i,prev:c,next:a})}}o(lt,"diffEach");function Rn(e,t,r,n){if(n===0||e.height===0)return e;let i=Math.max(0,t),s=Math.min(e.height-1,r);if(i>s)return e;let c=e.width,a=e.cells.slice(),u=s-i+1,l=o(d=>{for(let f=0;f<c;f++)a[d*c+f]=j},"blankRow");if(Math.abs(n)>=u){for(let d=i;d<=s;d++)l(d);return{...e,cells:a}}if(n>0){for(let d=i;d<=s-n;d++)for(let f=0;f<c;f++)a[d*c+f]=e.cells[(d+n)*c+f]??j;for(let d=s-n+1;d<=s;d++)l(d)}else{let d=-n;for(let f=s;f>=i+d;f--)for(let m=0;m<c;m++)a[f*c+m]=e.cells[(f-d)*c+m]??j;for(let f=i;f<=i+d-1;f++)l(f)}return{...e,cells:a}}o(Rn,"shiftRowsRegion");function Rs(e,t){return e===t?!0:e===void 0||t===void 0?!1:e.char===t.char&&e.width===t.width&&e.style===t.style&&e.hyperlink===t.hyperlink}o(Rs,"cellsEqual");var jt="\x1B]8;";function bs(e){return e.endsWith("\x07")?e.slice(0,-1):e}o(bs,"stripOsc8Terminator");function Ts(e){if(!e.startsWith(jt))return;let t=e.slice(jt.length),r=t.indexOf(";");if(r<0)return;let n=t.slice(r+1),i=bs(n);return i.length>0?i:void 0}o(Ts,"parseOsc8Url");function Ms(e){if(e.value==="")return{char:"",width:K.SpacerTail,style:"",hyperlink:void 0};let t="",r;for(let n of e.styles)if(n.code.startsWith(jt)){let i=Ts(n.code);i!==void 0&&(r=i)}else t+=n.code;return{char:e.value.replace(/[\u0000-\u001f\u007f]/g," "),width:e.fullWidth?K.Wide:K.Single,style:t,hyperlink:r}}o(Ms,"styledCharToCell");function bn(e){let t=e.getGrid(),r=e.width,n=e.height,i=Cn(r,n),s=Math.min(t.length,n);for(let c=0;c<s;c++){let a=t[c];if(!a)continue;let u=Math.min(a.length,r);for(let l=0;l<u;l++){let d=a[l];if(!d)continue;let f=Ms(d);f.char===j.char&&f.width===j.width&&f.style===j.style&&f.hyperlink===j.hyperlink||i.setCellAt(l,c,f)}}return i.build()}o(bn,"outputToScreen");var Is=o((e,t,r)=>{if(e.yogaNode){if(t){let m=ut(e,{skipStaticElements:!0}),h=m===""?0:m.split(`
|
|
19
|
+
`).length,p="";return e.staticNode&&(p=ut(e.staticNode,{skipStaticElements:!1})),{output:m,outputHeight:h,staticOutput:p?`${p}
|
|
20
|
+
`:"",frame:void 0}}let n=new xe({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});yn(),Ht(e,n,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new xe({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),Ht(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:c}=n.get(),a=bn(n),u=r?.columns??e.yogaNode.getComputedWidth(),l=r?.rows??e.yogaNode.getComputedHeight(),d=n.cursorPosition,f={screen:a,viewport:{width:u,height:l},cursor:{x:0,y:a.height,visible:!1},scrollHint:wn(),scrollRepaint:Sn(),...d?{inputCursor:{x:d.x,y:d.y}}:{}};return{output:s,outputHeight:c,staticOutput:i?`${i.get().output}
|
|
21
|
+
`:"",frame:f}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Kt=Is;function L(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),r=e[e.length-1];return`\x1B[${t.join(";")}${r}`}o(L,"csi");function Tn(e=1){return e===0?"":L(e,"A")}o(Tn,"cursorUp");function _s(e=1){return e===0?"":L(e,"B")}o(_s,"cursorDown");function Os(e=1){return e===0?"":L(e,"C")}o(Os,"cursorForward");function As(e=1){return e===0?"":L(e,"D")}o(As,"cursorBack");function Mn(e){return L(e,"G")}o(Mn,"cursorTo");var ks=L("G"),In=L("H");function _n(e,t){let r="";return e<0?r+=As(-e):e>0&&(r+=Os(e)),t<0?r+=Tn(-t):t>0&&(r+=_s(t)),r}o(_n,"cursorMove");var $t=L(2,"K");function On(e){if(e<=0)return"";let t="";for(let r=0;r<e;r++)t+=$t,r<e-1&&(t+=Tn(1));return t+=ks,t}o(On,"eraseLines");var An=L("r"),kn="\x1B7",Nn="\x1B8";function vn(e,t){return L(e,t,"r")}o(vn,"setScrollRegion");function Pn(e=1){return L(e,"S")}o(Pn,"scrollUp");function Fn(e=1){return L(e,"T")}o(Fn,"scrollDown");var Fe=L(0,"m");function Dn(e){return`\x1B]${e.join(";")}\x07`}o(Dn,"osc");function Ns(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r)|0;return(t>>>0).toString(36)}o(Ns,"osc8Id");function De(e,t){if(!e)return Ee;let r={id:Ns(e),...t??{}},n=Object.entries(r).map(([i,s])=>`${i}=${s}`).join(":");return Dn(["8",n,e])}o(De,"link");var Ee=Dn(["8","",""]);function Gt(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let r=[],n="",i;for(let s=0;s<t.height;s++){let c="";for(let a=0;a<t.width;a++){let u=ue(t,a,s);!u||u.width===K.SpacerTail||(u.hyperlink!==i&&(i!==void 0&&(c+=Ee),u.hyperlink!==void 0&&(c+=De(u.hyperlink)),i=u.hyperlink),u.style!==n&&(n!==""&&(c+=Fe),u.style!==""&&(c+=u.style),n=u.style),c+=u.char)}i!==void 0&&(c+=Ee,i=void 0),n!==""&&(c+=Fe,n=""),r.push(c.trimEnd())}return[{type:"stdout",content:r.join(`
|
|
22
|
+
`)}]}o(Gt,"renderFullFrame");var vs=Object.freeze([]),Ps=Object.freeze([]);function le(e,t){if(e===t)return{patches:vs,current:e};let r=[];return e!==""&&r.push({type:"stdout",content:Fe}),t!==""&&r.push({type:"stdout",content:t}),{patches:r,current:t}}o(le,"transitionStyle");function Be(e,t){let r=le(e,t),n="";for(let i of r.patches)i.type==="stdout"&&(n+=i.content);return{str:n,current:r.current}}o(Be,"transitionStyleStr");function Y(e,t){if(e===t)return{patches:Ps,current:e};let r=[];return e!==void 0&&r.push({type:"stdout",content:Ee}),t!==void 0&&r.push({type:"stdout",content:De(t)}),{patches:r,current:t}}o(Y,"transitionHyperlink");function Ln(e){let t=e.codePointAt(0);if(t===void 0)return!1;if(t>=129648&&t<=129791||t>=129792&&t<=130047)return!0;if(e.length>=2){for(let r=0;r<e.length;r++)if(e.charCodeAt(r)===65039)return!0}return!1}o(Ln,"needsWidthCompensation");var de=class{static{o(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,r){this.viewportWidth=r,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[r,n]=t(this.cursor);for(let i of r)this._diffMut.push(i);this._cursorMut.x+=n.dx,this._cursorMut.y+=n.dy}},X={type:"carriageReturn"},Le={type:"stdout",content:`
|
|
23
|
+
`};function We(e,t,r){let n=t.width===K.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(c=>{let a=c.x;if(n===2&&a<i){let d=t.char.length>2?i:i+1;if(a+2>=d)return[[],{dx:0,dy:0}]}let u=[];r.length>0&&u.push({type:"stdout",content:r});let l=n===2&&Ln(t.char);return l&&a+1<i&&(u.push({type:"cursorTo",col:a+2}),u.push({type:"stdout",content:" "}),u.push({type:"cursorTo",col:a+1})),u.push({type:"stdout",content:t.char}),l&&u.push({type:"cursorTo",col:a+n+1}),s=!0,a>=i?[u,{dx:n-a,dy:1}]:[u,{dx:n,dy:0}]}),s}o(We,"writeCellWithStyleStr");function fe(e,t,r){e.txn(n=>{let i=t-n.x,s=r-n.y;return n.x>=e.viewportWidth?[[X,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[X,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(fe,"moveCursorTo");function He(e,t,r,n,i=!1){let s="",c;for(let a=r;a<n;a++){if(e.cursor.y<a){let f=a-e.cursor.y;e.txn(m=>{let h=new Array(1+f);h[0]=X;for(let p=0;p<f;p++)h[1+p]=Le;return[h,{dx:-m.x,dy:f}]})}for(let f=0;f<t.screen.width;f++){let m=ue(t.screen,f,a);if(!m||m.width===K.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;fe(e,f,a);let h=Y(c,m.hyperlink);for(let S of h.patches)e.txn(()=>[[S],{dx:0,dy:0}]);c=h.current;let p=Be(s,m.style);We(e,m,p.str)&&(s=p.current)}let u=le(s,"");for(let f of u.patches)e.txn(()=>[[f],{dx:0,dy:0}]);s=u.current;let l=Y(c,void 0);for(let f of l.patches)e.txn(()=>[[f],{dx:0,dy:0}]);c=l.current;let d=a===n-1&&t.screen.height<=t.viewport.height&&(a+1>=t.viewport.height||i);e.txn(f=>d?[[X],{dx:-f.x,dy:0}]:[[X,Le],{dx:-f.x,dy:1}])}if(s!==""||c!==void 0){let a=le(s,"");for(let l of a.patches)e.txn(()=>[[l],{dx:0,dy:0}]);let u=Y(c,void 0);for(let l of u.patches)e.txn(()=>[[l],{dx:0,dy:0}])}}o(He,"renderFrameSlice");function zt(e,t,r,n){let i=Math.max(0,Math.floor(r)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(n));for(let c=i;c<=s;c++)Fs(e,t,c)}o(zt,"repaintFrameRows");function Fs(e,t,r){let n="",i;fe(e,0,r),e.txn(()=>[[{type:"stdout",content:Ee+Fe},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let c=ue(t.screen,s,r);if(!c||c.width===K.SpacerTail||c.char===" "&&c.style===""&&c.hyperlink===void 0)continue;fe(e,s,r);let a=Y(i,c.hyperlink);for(let l of a.patches)e.txn(()=>[[l],{dx:0,dy:0}]);i=a.current;let u=Be(n,c.style);We(e,c,u.str)&&(n=u.current)}for(let s of le(n,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of Y(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o(Fs,"repaintFrameRow");function Yt(e,t){let r="";for(let n=0;n<e.width;n++){let i=ue(e,n,t);r+=i?.char??" "}return r.trimEnd()}o(Yt,"readLine");function Ce(e,t,r=!1){let n=new de({x:0,y:0},e.viewport.width);He(n,e,0,e.screen.height,r);let i=[{type:"clearTerminal",reason:t}];for(let s of n.diff)i.push(s);return i}o(Ce,"fullResetSequence_CAUSES_FLICKER");function dt(e,t){let r=e.cursor.y>=e.screen.height,n=t.screen.height>e.screen.height,i=t.screen.height<e.screen.height,s=r&&e.screen.height>=e.viewport.height,c=t.screen.height<=e.viewport.height,a=s?1:0;return{viewportY:n?Math.max(0,e.screen.height-e.viewport.height+a):Math.max(e.screen.height,t.screen.height)-t.viewport.height+a,cursorAtBottom:r,growing:n,shrinking:i,prevHadScrollback:s,nextFitsViewport:c}}o(dt,"computeViewportState");function Bn(e,t,r){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let n=dt(e,t);if(n.prevHadScrollback&&n.nextFitsViewport&&n.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&n.cursorAtBottom&&!n.growing){let s=e.screen.height-e.viewport.height+1;for(let c of lt(e.screen,t.screen))if(c.y<s)return{reset:!0,reason:"offscreen",trigger:{y:c.y,prevLine:r(e.screen,c.y),nextLine:r(t.screen,c.y)}}}return n.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}o(Bn,"shouldFullReset");function Wn(e,t,r){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&r&&!e)}o(Wn,"shouldSkipDiff");var ft=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,r,n={}){if(!this.options.isTTY)return Gt(r);let i=n.inlineBottomAnchored??!1,s=Hn(t,i),c=Hn(r,i);if(n.altScreen===!0&&t.screen.height===0&&c.screen.height>0)return Ce(c,"clear",i);let a=Bn(s,c,Yt);if(a.reset)return Ce(c,a.reason,i);if(c.scrollRepaint&&n.altScreen===!0)return Ds(s,c,c.scrollRepaint);let u=c.scrollHint;if(u&&n.altScreen&&n.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&u.delta!==0&&u.top>=0&&u.bottom<s.screen.height&&u.bottom<c.screen.height&&Math.abs(u.delta)<=u.bottom-u.top){let l={type:"scrollRegion",top:u.top,bottom:u.bottom,delta:u.delta},d={...s,screen:Rn(s.screen,u.top,u.bottom,u.delta)};return[l,...Un(d,c,i)]}return Un(s,c,i)}reset(){}};function Xt(e,t){for(let r of t)e.txn(()=>[[r],{dx:0,dy:0}])}o(Xt,"emitPatches");function Vt(e,t,r){if(t!==""){let n=le(t,"");Xt(e,n.patches)}if(r!==void 0){let n=Y(r,void 0);Xt(e,n.patches)}return{style:"",hyperlink:void 0}}o(Vt,"resetStyleAndHyperlink");function Ds(e,t,r){let n=dt(e,t),i=new de(e.cursor,t.viewport.width);n.shrinking&&jn(i,e,t);let s=Math.max(0,Math.floor(r.top)),c=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r.bottom)),a=c>=s?{top:s,bottom:c}:void 0;a&&zt(i,t,a.top,a.bottom);let u=Kn(i,e,t,{...n,skipRows:a});return u.needsFullReset?Ce(t,"offscreen"):(Vt(i,u.currentStyle,u.currentHyperlink),n.growing&&He(i,t,e.screen.height,t.screen.height),$n(i,t),i.diff)}o(Ds,"renderScrollRepaint");function jn(e,t,r){let n=t.screen.height-r.screen.height;e.txn(i=>[[{type:"clear",count:n},{type:"cursorMove",x:0,y:-1}],{dx:-i.x,dy:-n}])}o(jn,"applyShrink");function Kn(e,t,r,n){let i="",s,c=!1;for(let a of lt(t.screen,r.screen)){let{x:u,y:l,prev:d,next:f}=a;if(n.growing&&l>=t.screen.height||n.skipRows&&l>=n.skipRows.top&&l<=n.skipRows.bottom)continue;let m=!!(f&&f.char===" "&&f.style===""&&f.hyperlink===void 0);if(!Wn(d,f,m)){if(l<n.viewportY){c=!0;break}if(fe(e,u,l),f){let h=Y(s,f.hyperlink);Xt(e,h.patches),s=h.current;let p=Be(i,f.style);We(e,f,p.str)&&(i=p.current)}else if(d){let h=Vt(e,i,s);i=h.style,s=h.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:c}}o(Kn,"diffPass");function Hn(e,t){let r=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return e.cursor.y<=r?e:{...e,cursor:{...e.cursor,y:r}}}o(Hn,"clampRestingCursor");function $n(e,t){t.cursor.y>=t.screen.height?e.txn(r=>{let n=t.cursor.y-r.y;if(n>0){let s=new Array(1+n);s[0]=X;for(let c=0;c<n;c++)s[1+c]=Le;return[s,{dx:-r.x,dy:n}]}let i=t.cursor.y-r.y;return i!==0||r.x!==t.cursor.x?[[X,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-r.x,dy:i}]:[[],{dx:0,dy:0}]}):fe(e,t.cursor.x,t.cursor.y)}o($n,"restoreCursor");function Un(e,t,r=!1){let n=dt(e,t),i=new de(e.cursor,t.viewport.width);n.shrinking&&jn(i,e,t);let s=Kn(i,e,t,n);return s.needsFullReset?Ce(t,"offscreen",r):(Vt(i,s.currentStyle,s.currentHyperlink),n.growing&&He(i,t,e.screen.height,t.screen.height,r),$n(i,t),i.diff)}o(Un,"renderIncremental");var Ls="\x1B[?25l",Bs="\x1B[?25h",Ws=`\x1B[2J${In}`,Hs="\x1B[?2026h",Us="\x1B[?2026l";function js(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return Ls;case"cursorShow":return Bs;case"cursorMove":return _n(e.x,e.y);case"cursorTo":return Mn(e.col);case"eraseLine":return $t;case"clear":return On(e.count);case"clearTerminal":return Ws;case"hyperlink":return De(e.uri);case"scrollRegion":{let t=e.top+1,r=e.bottom+1,n=Math.abs(e.delta),i=e.delta>0?Pn(n):Fn(n);return kn+vn(t,r)+i+An+Nn}}}o(js,"patchToBytes");function pt(e,t,r=!1){let n="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),n+=js(s);if(n.length!==0){if(r&&i){e.write(Hs+n+Us);return}e.write(n)}}o(pt,"applyDiff");function Gn(e,t,r={}){if(t===void 0)return!1;let n=e.cellLogUpdate.render(e.prevFrame,t,r);return pt(e.stdout,n,r.synchronized??!1),e.prevFrame=t,!0}o(Gn,"applyCellFrame");function Ue(e,t){return{screen:En(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(Ue,"emptyFrame");import Ks from"is-in-ci";var V="\x1B[?2026h",$="\x1B[?2026l";function q(e){return"isTTY"in e&&e.isTTY===!0&&!Ks}o(q,"shouldSynchronize");var $s="\x1B[?1049l";var Gs="\x1B[?1006l\x1B[?1002l\x1B[?1000l";function zn(e={}){return(e.mouseTracking!==!1?Gs:"")+$s}o(zn,"buildAlternateScreenExitSequence");var zs=new WeakMap,Yn=zs;import{EventEmitter as fc}from"node:events";import pc from"node:process";import pe,{useState as Qt,useRef as Re,useCallback as O,useMemo as be,useEffect as di}from"react";import mc from"cli-cursor";var Ys=o(e=>e>=48&&e<=63,"isCsiParameterByte"),Xs=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Vn=o(e=>e>=64&&e<=126,"isCsiFinalByte");function Vs(e,t,r){let n=t+r+1,i=n;for(;i<e.length;i+=1){let s=e.codePointAt(i);if(s===void 0)return"pending";if(!(Ys(s)||Xs(s))&&!(s===91&&i===n))return Vn(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(Vs,"parseCsiSequence");function qs(e,t,r){let n=t+r+2;if(n>e.length)return"pending";let i=e.codePointAt(n-1);if(!(i===void 0||!Vn(i)))return{sequence:e.slice(t,n),nextIndex:n}}o(qs,"parseSs3Sequence");function Xn(e,t,r){let n=e[t+r];if(n===void 0)return"pending";if(n==="[")return Vs(e,t,r);if(n==="O")return qs(e,t,r)}o(Xn,"parseControlSequence");function Js(e,t){let r=e.codePointAt(t+1),n=r!==void 0&&r>65535?2:1,i=t+1+n;return{sequence:e.slice(t,i),nextIndex:i}}o(Js,"parseEscapedCodePoint");function Qs(e){let t=[],r=0,n=o(i=>({events:t,pending:e.slice(i)}),"pendingFrom");for(;r<e.length;){let i=e.indexOf("\x1B",r);if(i===-1)return t.push(e.slice(r)),{events:t,pending:""};if(i>r&&t.push(e.slice(r,i)),i===e.length-1)return n(i);let s=Xn(e,i,1);if(s==="pending")return n(i);if(s){t.push(s.sequence),r=s.nextIndex;continue}if(e[i+1]==="\x1B"){if(i+2>=e.length)return n(i);let u=Xn(e,i,2);if(u==="pending")return n(i);if(u){t.push(u.sequence),r=u.nextIndex;continue}t.push(e.slice(i,i+2)),r=i+2;continue}let a=Js(e,i);t.push(a.sequence),r=a.nextIndex}return{events:t,pending:""}}o(Qs,"parseKeypresses");function mt(){let e="";return{push(t){let r=Qs(e+t);return e=r.pending,r.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}o(mt,"createInputParser");import{createContext as Zs}from"react";var qn=Zs({exit(){}});qn.displayName="InternalAppContext";var Jn=qn;import{EventEmitter as ec}from"node:events";import{createContext as tc}from"react";var rc={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},Qn=tc({stdin:rc,internal_eventEmitter:new ec,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});Qn.displayName="InternalStdinContext";var Zn=Qn;import{createContext as nc}from"react";var ic={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},ei=nc({stdout:ic,write(){}});ei.displayName="InternalStdoutContext";var ti=ei;import{createContext as oc}from"react";var sc={isTTY:!1,write(){return!0},on(){},off(){}},ri=oc({stderr:sc,write(){}});ri.displayName="InternalStderrContext";var ni=ri;import{createContext as cc}from"react";var ii=cc({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});ii.displayName="InternalFocusContext";var oi=ii;import{createContext as ac}from"react";var si=ac({setCursorPosition(){}});si.displayName="InternalCursorContext";var ci=si;import lc,{PureComponent as dc}from"react";import*as ht from"node:fs";import{cwd as li}from"node:process";import A from"react";import ai from"stack-utils";import uc from"code-excerpt";var qt=o(e=>e?.replace(`file://${li()}/`,""),"cleanupPath"),ui=new ai({cwd:li(),internals:ai.nodeInternals()});function Jt({error:e}){let t=e.stack?e.stack.split(`
|
|
24
|
+
`).slice(1):void 0,r=t?ui.parseLine(t[0]):void 0,n=qt(r?.file),i,s=0;if(n&&r?.line&&ht.existsSync(n)){let c=ht.readFileSync(n,"utf8");if(i=uc(c,r.line),i)for(let{line:a}of i)s=Math.max(s,String(a).length)}return A.createElement(B,{flexDirection:"column",padding:1},A.createElement(B,null,A.createElement(F,{backgroundColor:"red",color:"white"}," ","ERROR"," "),A.createElement(F,null," ",e.message)),r&&n&&A.createElement(B,{marginTop:1},A.createElement(F,{dimColor:!0},n,":",r.line,":",r.column)),r&&i&&A.createElement(B,{marginTop:1,flexDirection:"column"},i.map(({line:c,value:a})=>A.createElement(B,{key:c},A.createElement(B,{width:s+1},A.createElement(F,{dimColor:c!==r.line,backgroundColor:c===r.line?"red":void 0,color:c===r.line?"white":void 0,"aria-label":c===r.line?`Line ${c}, error`:`Line ${c}`},String(c).padStart(s," "),":")),A.createElement(F,{key:c,backgroundColor:c===r.line?"red":void 0,color:c===r.line?"white":void 0}," "+a)))),e.stack&&A.createElement(B,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
25
|
+
`).slice(1).map(c=>{let a=ui.parseLine(c);return a?A.createElement(B,{key:c},A.createElement(F,{dimColor:!0},"- "),A.createElement(F,{dimColor:!0,bold:!0},a.function),A.createElement(F,{dimColor:!0,color:"gray","aria-label":`at ${qt(a.file)??""} line ${a.line} column ${a.column}`}," ","(",qt(a.file)??"",":",a.line,":",a.column,")")):A.createElement(B,{key:c},A.createElement(F,{dimColor:!0},"- "),A.createElement(F,{dimColor:!0,bold:!0},c,"\\t"," "))})))}o(Jt,"ErrorOverview");var je=class extends dc{static{o(this,"ErrorBoundary")}static displayName="InternalErrorBoundary";static getDerivedStateFromError(t){return{error:t}}state={error:void 0};componentDidCatch(t){this.props.onError(t)}render(){return this.state.error?lc.createElement(Jt,{error:this.state.error}):this.props.children}};var hc=" ",gc="\x1B[Z",yc="\x1B";function fi({children:e,stdin:t,stdout:r,stderr:n,writeToStdout:i,writeToStderr:s,exitOnCtrlC:c,onExit:a,setCursorPosition:u}){let[l,d]=Qt(!0),[f,m]=Qt(void 0),[,h]=Qt([]),p=Re(0),S=Re(0),w=Re(new fc);w.current.setMaxListeners(1/0);let y=Re(void 0),g=Re(mt()),C=Re(void 0),R=O(()=>{C.current&&(clearImmediate(C.current),C.current=void 0)},[]),M=t.isTTY,P=O(()=>{y.current&&(t.removeListener("readable",y.current),y.current=void 0)},[t]),N=O(()=>{t.setRawMode(!1),P(),t.unref(),S.current=0,g.current.reset(),R()},[t,P,R]),b=O(E=>{M&&S.current>0&&N(),a(E)},[M,N,a]),ge=O(E=>{if(E===""&&c){b();return}E===yc&&m(T=>T&&void 0)},[c,b]),Ve=O(E=>{ge(E),w.current.emit("input",E)},[ge]),kr=O(()=>{R(),C.current=setImmediate(()=>{C.current=void 0;let E=g.current.flushPendingEscape();E&&Ve(E)})},[R,Ve]),It=O(()=>{R();let E;for(;(E=t.read())!==null;){let T=g.current.push(E);for(let I of T)Ve(I)}g.current.hasPendingEscape()&&kr()},[t,Ve,R,kr]),Nr=O(E=>{if(!M)throw t===pc.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
32
26
|
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
|
|
33
|
-
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),
|
|
34
|
-
`;if(this.options.debug){
|
|
35
|
-
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let
|
|
36
|
-
`).length,
|
|
37
|
-
`;if(this.lastOutputHeight>=this.options.stdout.rows&&m){if(
|
|
38
|
-
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?
|
|
39
|
-
`),
|
|
40
|
-
`),
|
|
41
|
-
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(r=Ou.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(r[1]??"");else if(r=_u.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=Number(r[3]||r[5]||1)-1;s.ctrl=!!(u&4),s.meta=!!(u&10),s.shift=!!(u&1),s.code=c,s.name=wo[c]??"",s.shift=Au(c)||s.shift,s.ctrl=Nu(c)||s.ctrl}return s}o(Lr,"parseKeypress");var To=new WeakSet,Uu=50;function Dr(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Dr,"resolveTerminalSize");var vt=Hu(null),$u={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var ko={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function Ku(e){for(let t of e)if(t.rawMode)return!0;return!1}o(Ku,"hasRawModeSubscribers");function Gu({stdin:e,setRawMode:t,isRawModeSupported:r,preserveRawModeOnDetach:n}){let i=new Set,s,a=!1,c=!1,u=o(m=>{for(let h of i)h.listener(m)},"handleData"),l=o(()=>{if(c){try{t(!1)}catch{}c=!1}},"disableRawModeIfOwned"),d=o(()=>{let m=s;m?.off?.("data",u),m&&c&&n?.()===!0?(To.add(m),c=!1):l(),a&&(m?.unref?.(),a=!1),s=void 0},"detachInput"),f=o(()=>{if(s&&s!==e&&d(),!e||i.size===0){d();return}if(s!==e){let h=To.delete(e)&&e.isRaw===!0;e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),a=!0),e.on?.("data",u),e.resume?.(),s=e,c=h}if(!(r&&Ku(i))){l();return}if(e.isRaw===!1&&!c)try{t(!0),c=!0}catch{c=!1}},"syncInputOwnership");return{subscribe(m,h={}){let g={listener:m,rawMode:h.rawMode!==!1};return i.add(g),f(),()=>{i.delete(g),f()}},dispose(){i.clear(),d()}}}o(Gu,"createTerminalInputController");var zu=o(({children:e,runtime:t})=>{let[r,n]=ju(()=>t.terminalSize);Pe(()=>{if(n(Dr(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{n(Dr(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=Io(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=bo(()=>Gu({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,preserveRawModeOnDetach:t.preserveRawModeOnUnmount}),[t.stdin,t.isRawModeSupported,t.preserveRawModeOnUnmount,t.setRawMode]);Pe(()=>()=>{s.dispose()},[s]);let a=bo(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:r,isTTY:t.stdout?.isTTY===!0,writeRaw:i,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,r,i]);return Mo(vt.Provider,{value:a,children:e})},"TuiRuntimeProvider");function Yu(e){let t=e?.stdout??$u,r=e?.stdin??ko,n=o(s=>{typeof r?.setRawMode=="function"&&r.setRawMode(s)},"setRawMode"),i;return{stdout:t,stdin:r,setRawMode:n,isRawModeSupported:typeof r?.setRawMode=="function",exit:o(()=>{i?.()},"exit"),terminalSize:Dr(t),isTTY:t?.isTTY===!0,writeRaw:o(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),preserveRawModeOnUnmount:e?.preserveRawModeOnUnmount??(()=>!1),subscribeInput:o(()=>()=>{},"subscribeInput"),attachExit(s){i=s}}}o(Yu,"createRuntimeValue");function Oo(e,t){let r=Yu(t),n=vr(Mo(zu,{runtime:r,children:e}),t);return r.attachExit(n.unmount),n}o(Oo,"render");var Br=ho,oe=go;function Xu(e){let t={upArrow:e.name==="up",downArrow:e.name==="down",leftArrow:e.name==="left",rightArrow:e.name==="right",pageDown:e.name==="pagedown",pageUp:e.name==="pageup",home:e.name==="home",end:e.name==="end",return:e.name==="return",escape:e.name==="escape",ctrl:e.ctrl,shift:e.shift,tab:e.name==="tab",backspace:e.name==="backspace",delete:e.name==="delete",meta:e.meta||e.name==="escape"||e.option===!0,super:e.super??!1,hyper:e.hyper??!1,capsLock:e.capsLock??!1,numLock:e.numLock??!1,eventType:e.eventType},r="";return e.isKittyProtocol?e.isPrintable?r=e.text??e.name:e.ctrl&&e.name.length===1&&(r=e.name):e.ctrl?r=e.name:r=e.sequence,!e.isKittyProtocol&&So.includes(e.name)&&(r=""),r.startsWith("\x1B")&&(r=r.slice(1)),r.length===1&&typeof r[0]=="string"&&/[A-Z]/.test(r[0])&&(t.shift=!0),{input:r,key:t}}o(Xu,"createCompatKeypress");function _o(e,t={}){let{isActive:r=!0}=t,n=Nt(e),i=Nt(null),s=Nt(null);Pe(()=>{n.current=e},[e]),Pe(()=>{if(!r){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=Ot(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[r]);let a=Io(c=>{let{input:u,key:l}=Xu(Lr(c));n.current(u,l)},[]);qu(c=>{if(!r)return;s.current&&(clearTimeout(s.current),s.current=null);let u=i.current,l=typeof c=="string"?c:c.toString("utf8"),d=u?.push(l)??[l];for(let f of d)a(f);l.length>0&&(s.current=setTimeout(()=>{let f=i.current?.flushPendingEscape();f&&a(f)},Uu))},{isActive:r,rawMode:!0})}o(_o,"useInput");function Vu(){let e=Wr(vt),t=e?.stdin??ko,r=e?.setRawMode??(n=>{typeof t?.setRawMode=="function"&&t.setRawMode(n)});return{stdin:t,setRawMode:r,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(Vu,"useStdin");function Ao(){return{exit:Wr(vt)?.exit??(()=>{})}}o(Ao,"useApp");function qu(e,t={}){let{isActive:r=!0,rawMode:n=!0}=t,i=Wr(vt),{stdin:s,setRawMode:a,isRawModeSupported:c}=Vu(),u=Nt(e);Pe(()=>{u.current=e},[e]),Pe(()=>{if(!r||!s)return;if(i)return i.subscribeInput(m=>{u.current(m)},{rawMode:n});let l=s,d=l.isRaw;n&&c&&d===!1&&a(!0);let f=o(m=>{u.current(m)},"handleData");return l.on?.("data",f),()=>{if(l.off?.("data",f),n&&c&&d===!1)try{a(!1)}catch{}}},[i,s,r,n,c,a])}o(qu,"useTerminalInput");import{spawnSync as Ju}from"node:child_process";function Hr(e){return e==="1"||e?.toLowerCase()==="true"}o(Hr,"isTruthyEnv");function Qu(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(Qu,"isVsCodeTerminalHostEnv");function Zu(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(Zu,"hasCursorUpViewportYankRisk");function el(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(el,"isSshSession");function tl(e={}){let t=e.env??process.env;return Hr(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&el(t)}o(tl,"isRemoteConptyHost");function rl(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(rl,"isTmuxControlModeEnvHeuristic");var de;function nl(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,r=e.platform??process.platform;if(r==="win32")return!1;if(rl(t))return!0;if(!(t===process.env&&r===process.platform))return!1;if(de!==void 0||(de=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return de;try{let i=Ju("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(de=i.stdout.trim()==="1")}catch{de=!1}return de}o(nl,"isTmuxControlMode");function il(e={}){let t=e.env??process.env,r=e.isTTY??process.stdout.isTTY===!0,n=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!r||!n||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":nl(e)?"tmux_control_mode":Qu(t)?"xtermjs_host":tl(e)?"remote_conpty_host":Zu(e)?"degraded_vt":"native_vt"}o(il,"detectTerminalRenderHost");function ol(e={}){let t=e.env??process.env;if(Hr(t.KODAX_FORCE_INK))return"legacy";let r=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return r==="legacy"||r==="owned"||r==="auto"?r:"auto"}o(ol,"resolveConfiguredTuiRendererMode");function No(e={}){let t=e.env??process.env;if(Hr(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let r=ol({env:t});if(r==="legacy"||r==="owned")return"ink";let n=il(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"classic":"ink"}o(No,"resolveInteractiveSurfacePreference");var cl=40;function ul(e,t){let r=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return r.length===0?[...e]:e.filter(n=>{let i=[n.title,n.id,n.surface??"",n.createdAt??"",String(n.msgCount)].join(" ").toLocaleLowerCase();return r.every(s=>i.includes(s))})}o(ul,"filterSessionPickerItems");function ll(e,t,r){let n=Math.max(1,r),i=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(i/n)*n;return{items:e.slice(s,s+n),selectedIndex:i,pageStart:s,pageIndex:Math.floor(s/n),pageCount:Math.max(1,Math.ceil(e.length/n))}}o(ll,"buildSessionPickerPage");function dl(e){if(!e)return"unknown time";let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${r}-${n}-${i} ${s}:${a}`}o(dl,"formatTimestamp");function fl({sessions:e,onSelect:t,onSelectionError:r,onCancel:n,pageSize:i=8}){let{exit:s}=Ao(),[a,c]=jr(""),[u,l]=jr(0),[d,f]=jr(!1),m=al(!1),h=sl(()=>ul(e,a),[e,a]),g=ll(h,u,i),w=h[g.selectedIndex];return _o((y,S)=>{if(!m.current){if(S.escape||S.ctrl&&y==="c"){n(),s();return}if(S.return){let p=h[g.selectedIndex];p&&(m.current=!0,f(!0),(async()=>{await new Promise(x=>setTimeout(x,cl));try{await t(p)}catch(x){r(x)}finally{s()}})());return}if(S.upArrow)l(p=>Math.max(0,p-1));else if(S.downArrow)l(p=>Math.min(Math.max(0,h.length-1),p+1));else if(S.pageUp)l(p=>Math.max(0,p-i));else if(S.pageDown)l(p=>Math.min(Math.max(0,h.length-1),p+i));else if(S.home)l(0);else if(S.end)l(Math.max(0,h.length-1));else if(S.tab){let p=h[g.selectedIndex];p&&(c(p.title),l(0))}else S.backspace||S.delete?(c(p=>p.slice(0,-1)),l(0)):y&&!S.ctrl&&!S.meta&&!S.super&&(c(p=>p+y),l(0))}}),Fe(Br,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[Ze(oe,{bold:!0,color:"cyan",children:"Resume a session"}),Fe(oe,{children:["Search: ",Ze(oe,{color:"yellow",children:a||"type to filter"})]}),Ze(oe,{dimColor:!0,children:d?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),Fe(Br,{flexDirection:"column",marginTop:1,children:[g.items.length===0?Ze(oe,{color:"yellow",children:"No matching sessions."}):null,g.items.map((y,S)=>{let x=g.pageStart+S===g.selectedIndex,M=y.title.trim()||"Untitled session",R=y.surface?` \xB7 ${y.surface}`:"";return Fe(oe,{color:x?"cyan":void 0,bold:x,children:[x?"\u276F":" "," ",M," \xB7 ",y.msgCount," msgs",R," \xB7 ",dl(y.createdAt)," \xB7 ",y.id.slice(0,8)]},y.id)})]}),Fe(oe,{dimColor:!0,children:[h.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),Fe(oe,{dimColor:!0,children:["Selected ID: ",w?.id??"none"]})]})}o(fl,"SessionPicker");async function vo(e,t={}){if(process.stdin.isTTY!==!0||process.stdout.isTTY!==!0)throw new Error("Searchable session resume requires an interactive terminal. Pass an exact session ID or title to -r/--resume instead.");let r,n=!1,i=!1,s=!1,a,c=No()==="ink",u=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),l=Oo(Ze(fl,{sessions:e,pageSize:u,onSelect:o(async d=>{r=d,await t.prepareSelection?.(d),s=!0},"onSelect"),onSelectionError:o(d=>{i=!0,a=d},"onSelectionError"),onCancel:o(()=>{n=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1,preserveRawModeOnUnmount:o(()=>c&&s,"preserveRawModeOnUnmount")});try{await l.waitUntilExit()}finally{l.unmount(),l.cleanup()}if(i)throw a;if(!r&&!n)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return r}o(vo,"runSessionPicker");var pl=new Set(["user","assistant","system","thinking","error","event","info","hint","sidecar"]),ml=new Set(["success","error","cancelled","awaiting_approval"]);function Pt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(Pt,"isRecord");function Ur(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Ur);if(!Pt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Ur)}o(Ur,"isKodaXJsonValue");function hl(e){return Pt(e)&&Object.values(e).every(Ur)}o(hl,"isKodaXSessionUiToolInput");function gl(e){return Pt(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&ml.has(e.status)&&(e.input===void 0||hl(e.input))&&(e.preview===void 0||typeof e.preview=="string")&&(e.output===void 0||typeof e.output=="string")&&(e.error===void 0||typeof e.error=="string")&&(e.startTime===void 0||typeof e.startTime=="number")&&(e.endTime===void 0||typeof e.endTime=="number")}o(gl,"isKodaXSessionUiToolCall");function Po(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}o(Po,"isOptionalHistoryTimestamp");function Fo(e){return!Pt(e)||typeof e.type!="string"?!1:e.type==="tool_group"?Po(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(gl):pl.has(e.type)&&typeof e.text=="string"&&Po(e.timestamp)&&(e.presentationOnly===void 0||e.presentationOnly===!0)&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}o(Fo,"isKodaXSessionUiHistoryItem");function $r(e,t){let r=Number.isInteger(e)&&e>=0?e:0;if(!Array.isArray(t))return r;let n=t.reduce((i,s)=>Fo(s)&&s.type!=="tool_group"&&s.presentationOnly===!0?i+1:i,0);return r+n}o($r,"countResumableSessionItems");var Bo=65536,Ft=48;function wl(){let e=process.env.KODAX_HOME,t=e&&e.length>0?e:$.join(yl.homedir(),".kodax");return $.join(t,"sessions")}o(wl,"defaultSessionsDir");function Ho(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith("archived-")&&!e.startsWith(".")}o(Ho,"isSessionFile");async function zr(e){try{return(await xe.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&Ho(t.name)).map(t=>$.join(e,t.name))}catch(t){if(t.code==="ENOENT")return[];throw t}}o(zr,"readProjectSessionFiles");async function Sl(e){try{return await zr(e)}catch(t){return Gr(`read ${e}`,t),[]}}o(Sl,"readOptionalProjectSessionFiles");async function xl(e,t,r,n,i){let s=r?[]:await zr(t),a=(await Promise.all(i.map(u=>Sl(u)))).flat(),c=(await xe.readdir(e,{withFileTypes:!0})).filter(u=>u.isFile()&&Ho(u.name)).map(u=>$.join(e,u.name));return[...s.map(u=>({filePath:u,trustedProjectDir:n})),...a.map(u=>({filePath:u,trustedProjectDir:!1})),...c.map(u=>({filePath:u,trustedProjectDir:!1}))]}o(xl,"collectActiveSessionFiles");async function El(e,t){try{let r=JSON.parse(await xe.readFile($.join(e,"project.json"),"utf8"));if(r===null||typeof r!="object")return!1;let n=r.canonicalRoot;return typeof n=="string"&&Se(n)===Se(t)}catch{return!1}}o(El,"isTrustedProjectDir");function Cl(e){return{...e,...e.createdAt!==void 0?{createdAtMs:Date.parse(e.createdAt)}:{}}}o(Cl,"indexedCandidate");function Kr(e,t){let r=t instanceof Error?t.message:String(t);process.emitWarning(`Resume index ${e} failed; using canonical sessions instead: ${r}`,{code:"KODAX_RESUME_INDEX"})}o(Kr,"reportResumeIndexFailure");function Gr(e,t){let r=t instanceof Error?t.message:String(t);process.emitWarning(`Resume compatibility ${e} failed; continuing with the current project: ${r}`,{code:"KODAX_RESUME_COMPATIBILITY"})}o(Gr,"reportResumeCompatibilityFailure");function Se(e){if(!e?.trim())return;let t=$.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(Se,"normalizeComparableRoot");function Rl(e,t){if(t.length===0)return!0;let r=e.runtimeInfo!==null&&typeof e.runtimeInfo=="object"?e.runtimeInfo:void 0;return gn({...typeof e.gitRoot=="string"?{gitRoot:e.gitRoot}:{},...r===void 0?{}:{runtimeInfo:{...typeof r.canonicalRepoRoot=="string"?{canonicalRepoRoot:r.canonicalRepoRoot}:{},...typeof r.workspaceRoot=="string"?{workspaceRoot:r.workspaceRoot}:{},...typeof r.executionCwd=="string"?{executionCwd:r.executionCwd}:{}}}},t)}o(Rl,"matchesProjectRoot");function bl(e,t){return e.sourceSize===t.size&&e.sourceMtimeMs===t.mtimeMs&&e.sourceCtimeMs===t.ctimeMs&&e.sourceDev===t.dev&&e.sourceIno===t.ino}o(bl,"sameSource");async function Tl(e,t){let r=[],n=t,i=!1;for(;n>0;){let s=Math.max(0,n-Bo),a=Buffer.allocUnsafe(n-s),{bytesRead:c}=await e.read(a,0,a.length,s);if(c===0)break;let u=c;if(!i){for(;u>0&&(a[u-1]===10||a[u-1]===13);)u-=1;if(u===0){n=s;continue}i=!0}let l=a.lastIndexOf(10,u-1);if(r.unshift(a.subarray(l+1,u)),l>=0)break;n=s}return Buffer.concat(r).toString("utf8").trim()}o(Tl,"readLastNonEmptyLine");async function Ml(e){let t;try{t=await xe.open(e,"r");let r=await t.stat(),n=[],i=0,s=0,a=r.size;for(;;){let f=r.size-s;if(f<=0)break;let m=Buffer.allocUnsafe(Math.min(Bo,f)),{bytesRead:h}=await t.read(m,0,m.length,s);if(h===0)break;let g=m.subarray(0,h),w=g.indexOf(10),y=w>=0?g.subarray(0,w):g;if(n.push(y),i+=y.length,w>=0){a=s+w;break}s+=h}if(i===0)return;let c=Buffer.concat(n,i).toString("utf8").trim(),u=r.size<=a+1?c:await Tl(t,r.size),l={sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino},d=await t.stat();return bl(l,d)?{line:c,tailLine:u,...l}:void 0}catch{return}finally{await t?.close()}}o(Ml,"readSessionEnvelope");function Lo(e,t){return t._type!=="meta_update"?e:{...e,...typeof t.title=="string"?{title:t.title}:{},...typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0?{activeMessageCount:t.activeMessageCount}:{},...Array.isArray(t.uiHistory)?{uiHistory:t.uiHistory}:{},...typeof t.scope=="string"?{scope:t.scope}:{}}}o(Lo,"applyMetaUpdate");function Do(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"?{valid:!0,value:t}:{valid:!0}}catch{return{valid:!1}}}o(Do,"parseJsonRecord");async function Il(e,t,r){let n=Do(r);if(n.valid)return n.value===void 0?t:Lo(t,n.value);let i=(await xe.readFile(e,"utf8")).split(`
|
|
42
|
-
`);for(let
|
|
43
|
-
`)
|
|
27
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),E){S.current===0&&(t.ref(),t.setRawMode(!0),y.current=It,t.addListener("readable",It)),S.current++;return}S.current!==0&&--S.current===0&&N()},[M,t,It,N]),vr=O((E,T)=>{let I=E.findIndex(v=>v.id===T);for(let v=I+1;v<E.length;v++){let G=E[v];if(G?.isActive)return G.id}},[]),Pr=O((E,T)=>{let I=E.findIndex(v=>v.id===T);for(let v=I-1;v>=0;v--){let G=E[v];if(G?.isActive)return G.id}},[]),qe=O(()=>{h(E=>(m(T=>{let I=E.find(G=>G.isActive)?.id;return vr(E,T)??I}),E))},[vr]),Je=O(()=>{h(E=>(m(T=>{let I=E.findLast(G=>G.isActive)?.id;return Pr(E,T)??I}),E))},[Pr]);di(()=>{let E=o(I=>{!l||p.current===0||(I===hc&&qe(),I===gc&&Je())},"handleTabNavigation");w.current.on("input",E);let T=w.current;return()=>{T.off("input",E)}},[l,qe,Je]);let Fr=O(()=>{d(!0)},[]),Dr=O(()=>{d(!1)},[]),Lr=O(E=>{h(T=>(T.some(v=>v?.id===E)&&m(E),T))},[]),Br=O((E,{autoFocus:T})=>{h(I=>(p.current=I.length+1,[...I,{id:E,isActive:!0}])),T&&m(I=>I??E)},[]),Wr=O(E=>{m(T=>T===E?void 0:T),h(T=>{let I=T.filter(v=>v.id!==E);return p.current=I.length,I})},[]),Hr=O(E=>{h(T=>T.map(I=>I.id!==E?I:{id:E,isActive:!0}))},[]),Ur=O(E=>{m(T=>T===E?void 0:T),h(T=>T.map(I=>I.id!==E?I:{id:E,isActive:!1}))},[]);di(()=>()=>{mc.show(r),M&&S.current>0&&N()},[r,M,N]);let So=be(()=>({exit:b}),[b]),xo=be(()=>({stdin:t,setRawMode:Nr,isRawModeSupported:M,internal_exitOnCtrlC:c,internal_eventEmitter:w.current}),[t,Nr,M,c]),Eo=be(()=>({stdout:r,write:i}),[r,i]),Co=be(()=>({stderr:n,write:s}),[n,s]),Ro=be(()=>({setCursorPosition:u}),[u]),bo=be(()=>({activeId:f,add:Br,remove:Wr,activate:Hr,deactivate:Ur,enableFocus:Fr,disableFocus:Dr,focusNext:qe,focusPrevious:Je,focus:Lr}),[f,Br,Wr,Hr,Ur,Fr,Dr,qe,Je,Lr]);return pe.createElement(Jn.Provider,{value:So},pe.createElement(Zn.Provider,{value:xo},pe.createElement(ti.Provider,{value:Eo},pe.createElement(ni.Provider,{value:Co},pe.createElement(oi.Provider,{value:bo},pe.createElement(ci.Provider,{value:Ro},pe.createElement(je,{onError:b},e)))))))}o(fi,"App");fi.displayName="InternalApp";var pi=fi;var wc={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function mi(e){let t=0;for(let r of e)t|=wc[r];return t}o(mi,"resolveFlags");var J={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Zt=o((e,t)=>(t<0?D.cursorUp(-t):t>0?D.cursorDown(t):"")+(e<0?D.cursorBackward(-e):e>0?D.cursorForward(e):""),"cursorMoveSeq"),er=o((e,t=!1)=>{let r=Math.max(0,e.screen.height-e.viewport.height),n=t?Math.max(0,Math.min(e.viewport.height-1,e.screen.height-1)):Math.max(0,e.viewport.height-1);return i=>({x:i.x,y:Math.min(Math.max(i.y-r,0),n)})},"toVisibleCursor"),gt=o(()=>{},"noop"),Oc=27,Ac=91,kc=63,Nc=117,vc=48,Pc=57,Fc=o(e=>e>=vc&&e<=Pc,"isDigitByte"),gi=o((e,t)=>{if(e[t]!==Oc||e[t+1]!==Ac||e[t+2]!==kc)return;let r=t+3,n=r;for(;r<e.length&&Fc(e[r]);)r++;if(r!==n){if(r===e.length)return{state:"partial"};if(e[r]===Nc)return{state:"complete",endIndex:r}}},"matchKittyQueryResponse"),Dc=o(e=>{for(let t=0;t<e.length;t++)if(gi(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),Lc=o(e=>{let t=[],r=0;for(;r<e.length;){let n=gi(e,r);if(n?.state==="complete"){r=n.endIndex+1;continue}if(n?.state==="partial")break;t.push(e[r]),r++}return t},"stripKittyQueryResponsesAndTrailingPartial"),tr=o(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),Bc=class{static{o(this,"Ink")}isConcurrent;options;cursorPosition;isScreenReaderEnabled;isUnmounted;isUnmounting;lastOutput;lastOutputToRender;lastOutputHeight;lastTerminalWidth;container;rootNode;fullStaticOutput;exitPromise;exitResult;beforeExitHandler;restoreConsole;restoreStreamWriteGuard;rawStdoutWrite;rawStderrWrite;internalStreamWriteDepth=0;unsubscribeResize;throttledOnRender;hasPendingThrottledRender=!1;kittyProtocolEnabled=!1;cancelKittyDetection;terminalExitGuard;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){Ec(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=rt("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??me.env.INK_SCREEN_READER==="true";let r=t.debug||this.isScreenReaderEnabled,n=t.maxFps??30,i=n>0?Math.max(1,Math.ceil(1e3/n)):0;if(r)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let c=xc(this.onRender,i,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,c()},this.throttledOnRender=c}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new ft({isTTY:!!t.stdout.isTTY}),this.prevFrame=Ue(t.stdout.rows??24,t.stdout.columns??80),this.cursorPosition=void 0,this.isUnmounted=!1,this.isUnmounting=!1,this.installExternalStreamWriteGuard(),this.isConcurrent=t.concurrent??!1,this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.lastTerminalWidth=this.getTerminalWidth(),this.fullStaticOutput="",this.shellMode=t.shellMode??"virtual";let s=t.concurrent?Tc:bc;this.container=z.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=Cc(this.unmount,{alwaysLast:!1}),et()&&z.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),Q||(t.stdout.on("resize",this.resized),this.unsubscribeResize=()=>{t.stdout.off("resize",this.resized)}),this.initKittyKeyboard()}getTerminalWidth=o(()=>this.options.stdout.columns?this.options.stdout.columns:_c()?.columns??80,"getTerminalWidth");resized=o(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let r=this.altScreenActive?this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();r.length>0&&this.writeStdout(r),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=Ue(this.options.stdout.rows??24,t)}this.calculateLayout(),this.onRender(),this.lastTerminalWidth=t},"resized");resolveExitPromise=o(()=>{},"resolveExitPromise");rejectExitPromise=o(()=>{},"rejectExitPromise");unsubscribeExit=o(()=>{},"unsubscribeExit");handleAppExit=o(t=>{if(!(this.isUnmounted||this.isUnmounting)){if(tr(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=o(t=>{if(t===void 0){this.cursorPosition=void 0;return}let r=this.getTerminalWidth(),n=this.options.stdout.rows??24;if(r<=0||n<=0){this.cursorPosition=void 0;return}let i=Math.max(0,Math.min(t.x|0,r-1)),s=Math.max(0,Math.min(t.y|0,n-1));this.cursorPosition={x:i,y:s}},"setCursorPosition");resetOutputTracking=o(()=>{this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.cursorPosition=void 0,this.invalidateCellFrame()},"resetOutputTracking");usesVirtualShellOwnership=o((t={})=>t.altScreenActive??this.altScreenActive,"usesVirtualShellOwnership");beginShellTransition(t){this.shellTransitionPhase=t}setShellMode(t,r){let n=this.shellMode,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),c=r??!1;this.shellMode=t,this.mouseTrackingActive=c;let a=this.usesVirtualShellOwnership();(n!==t&&(s||a)||i!==c&&a)&&this.resetOutputTracking()}setAltScreenActive(t,r){let n=this.altScreenActive,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),c=r??!1;this.altScreenActive=t,this.mouseTrackingActive=c,this.shellTransitionPhase=void 0;let a=this.usesVirtualShellOwnership();(n!==t||i!==c&&(s||a))&&this.resetOutputTracking()}clearTextSelection(){}registerTerminalExitGuard(t){return this.terminalExitGuard=t,()=>{this.terminalExitGuard===t&&(this.terminalExitGuard=void 0)}}installExternalStreamWriteGuard(){if(this.options.debug||Q)return;let t=this.options.stdout,r=this.options.stderr,n=t.write,i=r.write,s=o((...a)=>{let u=this.rawStdoutWrite(...a);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),u},"guardedStdoutWrite"),c=o((...a)=>{let u=this.rawStderrWrite(...a);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),u},"guardedStderrWrite");t.write=s,r.write=c,this.restoreStreamWriteGuard=()=>{t.write===s&&(t.write=n),r.write===c&&(r.write=i)}}handleExternalStreamWrite(){this.isUnmounted||this.invalidateCellFrame()}withInternalStreamWrite(t){this.internalStreamWriteDepth+=1;try{return t()}finally{this.internalStreamWriteDepth-=1}}writeStdout(t,...r){return this.withInternalStreamWrite(()=>this.rawStdoutWrite(t,...r))}writeStderr(t,...r){return this.withInternalStreamWrite(()=>this.rawStderrWrite(t,...r))}restoreLastOutput=o(()=>{if(this.prevFrame.screen.height===0)return;let t=Ue(this.options.stdout.rows??24,this.getTerminalWidth()),r=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>pt(this.options.stdout,r))},"restoreLastOutput");shouldRestoreManagedShellAfterExternalWrite=o(()=>this.altScreenActive,"shouldRestoreManagedShellAfterExternalWrite");calculateLayout=o(()=>{let t=this.getTerminalWidth();this.rootNode.yogaNode.setWidth(t),this.rootNode.yogaNode.calculateLayout(void 0,void 0,Mc.DIRECTION_LTR)},"calculateLayout");onRender=o(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;let t=performance.now(),r={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:n,outputHeight:i,staticOutput:s,frame:c}=Kt(this.rootNode,this.isScreenReaderEnabled,r);this.options.onRender?.({renderTime:performance.now()-t}),!Q&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(D.cursorHide),this.cursorHidden=!0);let a=s&&s!==`
|
|
28
|
+
`;if(this.options.debug){a&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+n);return}if(Q){a&&this.writeStdout(s),this.lastOutput=n,this.lastOutputToRender=n+`
|
|
29
|
+
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let w=q(this.options.stdout);if(w&&this.writeStdout(V),a){let C=this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"";this.writeStdout(C+s),this.lastOutputHeight=0}if(n===this.lastOutput&&!a){w&&this.writeStdout($);return}let y=this.getTerminalWidth(),g=Ic(n,y,{trim:!1,hard:!0});if(a)this.writeStdout(g);else{let C=this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"";this.writeStdout(C+g)}this.lastOutput=n,this.lastOutputToRender=g,this.lastOutputHeight=g===""?0:g.split(`
|
|
30
|
+
`).length,w&&this.writeStdout($);return}a&&(this.fullStaticOutput+=s);let l=!this.altScreenActive&&!!(c&&c.inputCursor)?[]:null,d=o(w=>{w&&(l?l.push(w):this.writeStdout(w))},"emit"),f=l?{write:d}:null;d(this.computeReturnToRestSeq());let m=this.altScreenActive,p=this.options.stdout.isTTY&&i>=this.options.stdout.rows&&m?n:n+`
|
|
31
|
+
`;if(this.lastOutputHeight>=this.options.stdout.rows&&m){if(me.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let g=q(this.options.stdout);g&&this.writeStdout(V),this.applyCellFrame(c),g&&this.writeStdout($),this.lastOutput=n,this.lastOutputToRender=p,this.lastOutputHeight=i;return}let w=q(this.options.stdout);w&&this.writeStdout(V);let y=this.fullStaticOutput+p;if(this.altScreenActive){let g=this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"";this.writeStdout(g+y)}else this.writeStdout(D.clearTerminal+this.fullStaticOutput+n);this.lastOutput=n,this.lastOutputToRender=this.altScreenActive?y:p,this.lastOutputHeight=i,this.invalidateCellFrame(),w&&this.writeStdout($);return}let S=!l&&q(this.options.stdout);try{if(a?(S&&d(V),d(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(c,f),S&&d($)):!this.altScreenActive&&this.prevFrame&&this.prevFrame.screen.height!==c.screen.height&&this.lastOutputHeight>0&&i<=this.options.stdout.rows&&this.lastOutputHeight<this.options.stdout.rows?(S&&d(V),d(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(c,f),S&&d($)):this.applyCellFrame(c,f),c?.inputCursor){let w=er(c,!this.altScreenActive),y=w(c.cursor),g=w(c.inputCursor),C=Zt(g.x-y.x,g.y-y.y);d(C),this.displayCursor=g}}finally{l&&this.flushCursorTxn(l)}this.lastOutput=n,this.lastOutputToRender=p,this.lastOutputHeight=i},"onRender");applyCellFrame=o((t,r=null)=>{let n={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:r??this.options.stdout},i=q(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:i,synchronized:r?!1:i,inlineBottomAnchored:!this.altScreenActive},c=this.withInternalStreamWrite(()=>Gn(n,t,s));return this.prevFrame=n.prevFrame,c},"applyCellFrame");invalidateCellFrame=o(()=>{this.cellLogUpdate.reset(),this.prevFrame=Ue(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=o(()=>this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"","eraseInlineLiveBlock");commitInlineScrollback=o(({mode:t,text:r})=>{if(this.altScreenActive||this.isUnmounted)return;let n=[],i=o(a=>{a&&n.push(a)},"emit"),s={write:i};i(this.computeReturnToRestSeq());let c=t==="rebuild"?"\x1B[2J\x1B[3J\x1B[H":this.eraseInlineLiveBlock();i(c+(r??"")),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.invalidateCellFrame();try{this.calculateLayout();let a={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:u,outputHeight:l,frame:d}=Kt(this.rootNode,this.isScreenReaderEnabled,a);if(this.applyCellFrame(d,s),d?.inputCursor){let f=er(d,!this.altScreenActive),m=f(d.cursor),h=f(d.inputCursor),p=Zt(h.x-m.x,h.y-m.y);i(p),this.displayCursor=h}this.lastOutput=u,this.lastOutputToRender=u,this.lastOutputHeight=l}finally{this.flushCursorTxn(n)}},"commitInlineScrollback");flushCursorTxn(t){let r=t.join("");if(!r)return;let n=q(this.options.stdout);this.writeStdout(n?V+r+$:r)}render(t){let r=hi.createElement(ye.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},hi.createElement(pi,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,exitOnCtrlC:this.options.exitOnCtrlC,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,setCursorPosition:this.setCursorPosition,onExit:this.handleAppExit},t));this.options.concurrent?z.updateContainer(r,this.container,null,gt):(z.updateContainerSync(r,this.container,null,gt),z.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=er(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),r=Zt(t.x-this.displayCursor.x,t.y-this.displayCursor.y);return this.displayCursor=null,r}return""}returnCursorToRest(){let t=this.computeReturnToRestSeq();t&&this.writeStdout(t)}writeToStdout(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStdout(t+this.fullStaticOutput+this.lastOutput);return}if(Q){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let r=q(this.options.stdout);r&&this.writeStdout(V),this.returnCursorToRest();let n=this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"";this.writeStdout(n+t),this.restoreLastOutput(),this.invalidateCellFrame(),r&&this.writeStdout($)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(Q){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let r=q(this.options.stdout);r&&this.writeStdout(V),this.returnCursorToRest();let n=this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"";n.length>0&&this.writeStdout(n),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),r&&this.writeStdout($)}restoreTrackedTerminalMode(){if(!this.altScreenActive)return;let t=zn({mouseTracking:this.mouseTrackingActive});try{typeof this.options.stdout.fd=="number"?Sc(this.options.stdout.fd,t):this.rawStdoutWrite(t)}finally{this.altScreenActive=!1,this.mouseTrackingActive=!1,this.shellTransitionPhase=void 0}}restoreManagedTerminal(){let t=[],r=this.terminalExitGuard;this.terminalExitGuard=void 0;try{r?.()}catch(n){t.push(n)}try{this.restoreTrackedTerminalMode()}catch(n){t.push(n)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Terminal restoration failed")}fenceRendererAfterUnmountFailure(){this.isUnmounted=!0,this.hasPendingThrottledRender=!1,typeof this.throttledOnRender?.cancel=="function"&&this.throttledOnRender.cancel()}unmount(t){try{this.unmountUnsafe(t)}catch(r){this.fenceRendererAfterUnmountFailure();try{this.restoreManagedTerminal()}catch(n){throw new AggregateError([r,n],"Renderer unmount and terminal restoration both failed")}throw r}this.restoreManagedTerminal()}unmountUnsafe(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(me.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let r=this.options.stdout,n=!r.destroyed&&!r.writableEnded&&(r.writable??!0);if(o(l=>{typeof l.flush=="function"&&(n?l.flush():typeof l.cancel=="function"&&l.cancel())},"settleThrottle")(this.throttledOnRender??{}),n&&(!this.throttledOnRender||!this.hasPendingThrottledRender&&this.fullStaticOutput==="")&&(this.calculateLayout(),this.onRender()),this.isUnmounted=!0,this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.restoreStreamWriteGuard=="function"&&(this.restoreStreamWriteGuard(),this.restoreStreamWriteGuard=void 0),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),this.cancelKittyDetection&&this.cancelKittyDetection(),n){if(this.kittyProtocolEnabled)try{this.writeStdout("\x1B[<u")}catch{}Q&&this.writeStdout(this.lastOutput+`
|
|
32
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?z.updateContainer(null,this.container,null,gt):(z.updateContainerSync(null,this.container,null,gt),z.flushSyncWork()),Yn.delete(this.options.stdout);let{exitResult:s}=this,c=o(()=>{tr(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),a=t!==void 0&&!tr(t),u=r._writableState!==void 0||r.writableLength!==void 0;a?c():n&&u?this.writeStdout("",c):setImmediate(c)}async waitUntilExit(){return this.exitPromise||=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},me.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!Q&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?D.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();t.length>0&&this.writeStdout(t),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.invalidateCellFrame()}}patchConsole(){this.options.debug||(this.restoreConsole=Rc((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,r=t.mode??"auto";if(r==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let n=t.flags??["disambiguateEscapeCodes"];if(r==="enabled"){this.enableKittyProtocol(n);return}let i=me.env.TERM??"",s=me.env.TERM_PROGRAM??"",c="KITTY_WINDOW_ID"in me.env||i==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!Q&&c&&this.confirmKittySupport(n)}confirmKittySupport(t){let{stdin:r}=this.options,n=[],i=o(()=>{this.cancelKittyDetection=void 0,clearTimeout(c),r.removeListener("data",s);let a=Lc(n);n=[],a.length>0&&r.unshift(Buffer.from(a))},"cleanup"),s=o(a=>{let u=typeof a=="string"?Buffer.from(a):a;for(let l of u)n.push(l);Dc(n)&&(i(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");r.on("data",s);let c=setTimeout(i,200);this.cancelKittyDetection=i,this.writeStdout("\x1B[?u")}enableKittyProtocol(t){this.writeStdout(`\x1B[>${mi(t)}u`),this.kittyProtocolEnabled=!0}},yi=Bc;var Ke=class{static{o(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new yi(t),this.isConcurrent=this.engineInstance.isConcurrent}render=o(t=>{this.engineInstance.render(t)},"render");unmount=o(t=>{this.engineInstance.unmount(t)},"unmount");waitUntilExit=o(()=>this.engineInstance.waitUntilExit(),"waitUntilExit");clear=o(()=>{this.engineInstance.clear()},"clear");setAltScreenActive=o((t,r)=>{this.engineInstance.setAltScreenActive?.(t,r)},"setAltScreenActive");setShellMode=o((t,r)=>{this.engineInstance.setShellMode?.(t,r)},"setShellMode");beginShellTransition=o(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=o(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");registerTerminalExitGuard=o(t=>this.engineInstance.registerTerminalExitGuard?.(t)??(()=>{}),"registerTerminalExitGuard");commitInlineScrollback=o(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var se=null;function Si(){if(se===-1)return null;if(se!==null)return se;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return se=-1,null;let t=e==="1"||e==="true"?Kc(jc(),`kodax-render-trace-${process.pid}.log`):e;try{return se=Hc(t,"a"),wi(se,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
33
|
+
`),se}catch{return se=-1,null}}o(Si,"resolveTraceFd");function $c(e){let t=Si();if(t!==null)try{wi(t,e)}catch{}}o($c,"traceLine");var rr=new WeakMap,Gc={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},zc={isTTY:!1,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},Yc={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function Xc(e={}){return e instanceof Wc?{stdout:e}:e}o(Xc,"getOptions");function Vc(e,t,r){let n=rr.get(e);return n?n.isConcurrent!==r&&console.warn(`Warning: render() was called with concurrent: ${r}, but the existing renderer for this stdout uses concurrent: ${n.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(n=t(),rr.set(e,n)),n}o(Vc,"getInstance");function nr(e,t){let r={stdout:Gc,stdin:Yc,stderr:zc,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...Xc(t)};if(Si()!==null){let s=r.stdout,c=s.write.bind(s),a=0,u=0;s.write=((m,...h)=>(a+=1,u+=typeof m=="string"?Buffer.byteLength(m,"utf8"):m?.length??0,c(m,...h)));let l=0,d=0,f=r.onRender;r.onRender=m=>{let h=Uc.now(),p=l===0?0:h-l,S=s,w=S.columns??0,y=S.rows??0;return $c(`frame=${d} renderTime=${m.renderTime.toFixed(2)}ms interval=${p.toFixed(2)}ms writes=${a} bytes=${u} viewport=${w}x${y}
|
|
34
|
+
`),a=0,u=0,l=h,d+=1,f?.(m)}}let i=Vc(r.stdout,()=>new Ke(r),r.concurrent??!1);return i.render(e),{rerender:i.render,unmount(){i.unmount()},waitUntilExit:i.waitUntilExit,cleanup:o(()=>{rr.delete(r.stdout)},"cleanup"),clear:i.clear}}o(nr,"render");var xi=B,Ei=F;import{Buffer as qc}from"node:buffer";var Jc=/^(?:\x1b)([a-zA-Z0-9])$/,Qc=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Ri={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},bi=[...Object.values(Ri),"backspace"],Zc=o(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),ea=o(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),Ti=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,ta=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,ra={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},na={2:"insert",3:"delete",5:"pageup",6:"pagedown",7:"home",8:"end",11:"f1",12:"f2",13:"f3",14:"f4",15:"f5",17:"f6",18:"f7",19:"f8",20:"f9",21:"f10",23:"f11",24:"f12"},Ci={27:"escape",9:"tab",127:"delete",8:"backspace",57358:"capslock",57359:"scrolllock",57360:"numlock",57361:"printscreen",57362:"pause",57363:"menu",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24"},Mi=o(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),ir=o(e=>Mi(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function Ii(e){return e===3?"release":e===2?"repeat":"press"}o(Ii,"resolveEventType");function _i(e){return{ctrl:!!(e&J.ctrl),shift:!!(e&J.shift),meta:!!(e&J.meta),option:!!(e&J.alt),super:!!(e&J.super),hyper:!!(e&J.hyper),capsLock:!!(e&J.capsLock),numLock:!!(e&J.numLock)}}o(_i,"parseKittyModifiers");function ia(e){let t=Ti.exec(e);if(!t)return null;let r=Number.parseInt(t[1],10),n=t[2]?Math.max(0,Number.parseInt(t[2],10)-1):0,i=t[3]?Number.parseInt(t[3],10):1,s=t[4];if(!Mi(r))return null;let c;s&&(c=s.split(":").map(l=>ir(Number.parseInt(l,10))).join(""));let a,u;return r===32?(a="space",u=!0):r===13?(a="return",u=!0):Ci[r]?(a=Ci[r],u=!1):r>=1&&r<=26?(a=String.fromCodePoint(r+96),u=!1):(a=ir(r).toLowerCase(),u=!0),u&&!c&&(c=ir(r)),{name:a,..._i(n),eventType:Ii(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:u,text:c}}o(ia,"parseKittyKeypress");function oa(e){let t=ta.exec(e);if(!t)return null;let r=Number.parseInt(t[1],10),n=Math.max(0,Number.parseInt(t[2],10)-1),i=Number.parseInt(t[3],10),s=t[4],c=s==="~"?na[r]:ra[s];return c?{name:c,..._i(n),eventType:Ii(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}o(oa,"parseKittySpecialKey");var or="\x1B[200~",sa="\x1B[201~";function ca(e){if(!e.startsWith(or))return null;let t=e.indexOf(sa,or.length);return t===-1?null:e.slice(or.length,t)}o(ca,"extractBracketedPaste");function sr(e=""){let t=e,r;if(qc.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=""),typeof t=="string"){let c=ca(t);if(c!==null)return{name:"paste",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isPaste:!0,isPrintable:!1,text:c}}let n=ia(t);if(n)return n;let i=oa(t);if(i)return i;if(Ti.test(t))return{name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isKittyProtocol:!0,isPrintable:!1};let s={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t};if(s.sequence=s.sequence||t||s.name,t==="\r"||t==="\x1B\r")s.raw=void 0,s.name="return",s.option=t.length===2;else if(t===`
|
|
35
|
+
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x7F"||t==="\x1B\x7F")s.name="delete",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t.length===1&&t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(r=Jc.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(r[1]??"");else if(r=Qc.exec(t)){let c=[...t];c[0]==="\x1B"&&c[1]==="\x1B"&&(s.option=!0);let a=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=Number(r[3]||r[5]||1)-1;s.ctrl=!!(u&4),s.meta=!!(u&10),s.shift=!!(u&1),s.code=a,s.name=Ri[a]??"",s.shift=Zc(a)||s.shift,s.ctrl=ea(a)||s.ctrl}return s}o(sr,"parseKeypress");var Ai=new WeakSet,la=50;function cr(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(cr,"resolveTerminalSize");var wt=aa(null),da={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var vi={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function fa(e){for(let t of e)if(t.rawMode)return!0;return!1}o(fa,"hasRawModeSubscribers");function pa({stdin:e,setRawMode:t,isRawModeSupported:r,preserveRawModeOnDetach:n}){let i=new Set,s,c=!1,a=!1,u=o(m=>{for(let h of i)h.listener(m)},"handleData"),l=o(()=>{if(a){try{t(!1)}catch{}a=!1}},"disableRawModeIfOwned"),d=o(()=>{let m=s;m?.off?.("data",u),m&&a&&n?.()===!0?(Ai.add(m),a=!1):l(),c&&(m?.unref?.(),c=!1),s=void 0},"detachInput"),f=o(()=>{if(s&&s!==e&&d(),!e||i.size===0){d();return}if(s!==e){let h=Ai.delete(e)&&e.isRaw===!0;e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),c=!0),e.on?.("data",u),e.resume?.(),s=e,a=h}if(!(r&&fa(i))){l();return}if(e.isRaw===!1&&!a)try{t(!0),a=!0}catch{a=!1}},"syncInputOwnership");return{subscribe(m,h={}){let p={listener:m,rawMode:h.rawMode!==!1};return i.add(p),f(),()=>{i.delete(p),f()}},dispose(){i.clear(),d()}}}o(pa,"createTerminalInputController");var ma=o(({children:e,runtime:t})=>{let[r,n]=ua(()=>t.terminalSize);Te(()=>{if(n(cr(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let a=o(()=>{n(cr(t.stdout))},"handleResize");return t.stdout.on("resize",a),()=>{t.stdout.off?.("resize",a)}},[t.stdout]);let i=Ni(a=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(a),!0),[t.stdout]),s=Oi(()=>pa({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,preserveRawModeOnDetach:t.preserveRawModeOnUnmount}),[t.stdin,t.isRawModeSupported,t.preserveRawModeOnUnmount,t.setRawMode]);Te(()=>()=>{s.dispose()},[s]);let c=Oi(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:r,isTTY:t.stdout?.isTTY===!0,writeRaw:i,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,r,i]);return ki(wt.Provider,{value:c,children:e})},"TuiRuntimeProvider");function ha(e){let t=e?.stdout??da,r=e?.stdin??vi,n=o(s=>{typeof r?.setRawMode=="function"&&r.setRawMode(s)},"setRawMode"),i;return{stdout:t,stdin:r,setRawMode:n,isRawModeSupported:typeof r?.setRawMode=="function",exit:o(()=>{i?.()},"exit"),terminalSize:cr(t),isTTY:t?.isTTY===!0,writeRaw:o(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),preserveRawModeOnUnmount:e?.preserveRawModeOnUnmount??(()=>!1),subscribeInput:o(()=>()=>{},"subscribeInput"),attachExit(s){i=s}}}o(ha,"createRuntimeValue");function Pi(e,t){let r=ha(t),n=nr(ki(ma,{runtime:r,children:e}),t);return r.attachExit(n.unmount),n}o(Pi,"render");var ur=xi,Z=Ei;function ga(e){let t={upArrow:e.name==="up",downArrow:e.name==="down",leftArrow:e.name==="left",rightArrow:e.name==="right",pageDown:e.name==="pagedown",pageUp:e.name==="pageup",home:e.name==="home",end:e.name==="end",return:e.name==="return",escape:e.name==="escape",ctrl:e.ctrl,shift:e.shift,tab:e.name==="tab",backspace:e.name==="backspace",delete:e.name==="delete",meta:e.meta||e.name==="escape"||e.option===!0,super:e.super??!1,hyper:e.hyper??!1,capsLock:e.capsLock??!1,numLock:e.numLock??!1,eventType:e.eventType},r="";return e.isKittyProtocol?e.isPrintable?r=e.text??e.name:e.ctrl&&e.name.length===1&&(r=e.name):e.ctrl?r=e.name:r=e.sequence,!e.isKittyProtocol&&bi.includes(e.name)&&(r=""),r.startsWith("\x1B")&&(r=r.slice(1)),r.length===1&&typeof r[0]=="string"&&/[A-Z]/.test(r[0])&&(t.shift=!0),{input:r,key:t}}o(ga,"createCompatKeypress");function Fi(e,t={}){let{isActive:r=!0}=t,n=yt(e),i=yt(null),s=yt(null);Te(()=>{n.current=e},[e]),Te(()=>{if(!r){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=mt(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[r]);let c=Ni(a=>{let{input:u,key:l}=ga(sr(a));n.current(u,l)},[]);wa(a=>{if(!r)return;s.current&&(clearTimeout(s.current),s.current=null);let u=i.current,l=typeof a=="string"?a:a.toString("utf8"),d=u?.push(l)??[l];for(let f of d)c(f);l.length>0&&(s.current=setTimeout(()=>{let f=i.current?.flushPendingEscape();f&&c(f)},la))},{isActive:r,rawMode:!0})}o(Fi,"useInput");function ya(){let e=ar(wt),t=e?.stdin??vi,r=e?.setRawMode??(n=>{typeof t?.setRawMode=="function"&&t.setRawMode(n)});return{stdin:t,setRawMode:r,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(ya,"useStdin");function Di(){return{exit:ar(wt)?.exit??(()=>{})}}o(Di,"useApp");function wa(e,t={}){let{isActive:r=!0,rawMode:n=!0}=t,i=ar(wt),{stdin:s,setRawMode:c,isRawModeSupported:a}=ya(),u=yt(e);Te(()=>{u.current=e},[e]),Te(()=>{if(!r||!s)return;if(i)return i.subscribeInput(m=>{u.current(m)},{rawMode:n});let l=s,d=l.isRaw;n&&a&&d===!1&&c(!0);let f=o(m=>{u.current(m)},"handleData");return l.on?.("data",f),()=>{if(l.off?.("data",f),n&&a&&d===!1)try{c(!1)}catch{}}},[i,s,r,n,a,c])}o(wa,"useTerminalInput");import{spawnSync as Sa}from"node:child_process";function lr(e){return e==="1"||e?.toLowerCase()==="true"}o(lr,"isTruthyEnv");function xa(e=process.env){return e.TERM_PROGRAM?.toLowerCase()==="vscode"||!!e.VSCODE_GIT_IPC_HANDLE||!!e.VSCODE_INJECTION}o(xa,"isVsCodeTerminalHostEnv");function Ea(e={}){let t=e.env??process.env;return(e.platform??process.platform)==="win32"||!!t.WT_SESSION}o(Ea,"hasCursorUpViewportYankRisk");function Ca(e){return!!(e.SSH_CONNECTION||e.SSH_CLIENT||e.SSH_TTY)}o(Ca,"isSshSession");function Ra(e={}){let t=e.env??process.env;return lr(t.KODAX_FULLSCREEN)?!1:(e.platform??process.platform)==="win32"&&Ca(t)}o(Ra,"isRemoteConptyHost");function ba(e){if(!e.TMUX||e.TERM_PROGRAM!=="iTerm.app")return!1;let t=e.TERM??"";return!t.startsWith("screen")&&!t.startsWith("tmux")}o(ba,"isTmuxControlModeEnvHeuristic");var ce;function Ta(e={}){if(typeof e.tmuxControlMode=="boolean")return e.tmuxControlMode;let t=e.env??process.env,r=e.platform??process.platform;if(r==="win32")return!1;if(ba(t))return!0;if(!(t===process.env&&r===process.platform))return!1;if(ce!==void 0||(ce=!1,!t.TMUX)||t.TERM_PROGRAM&&t.TERM_PROGRAM!=="iTerm.app")return ce;try{let i=Sa("tmux",["display-message","-p","#{client_control_mode}"],{encoding:"utf8",timeout:2e3});i.status===0&&(ce=i.stdout.trim()==="1")}catch{ce=!1}return ce}o(Ta,"isTmuxControlMode");function Ma(e={}){let t=e.env??process.env,r=e.isTTY??process.stdout.isTTY===!0,n=e.rawModeSupported??(process.stdin.isTTY===!0&&typeof process.stdin.setRawMode=="function");return!r||!n||t.TERM==="dumb"||t.CI==="true"?"unsupported_control_host":Ta(e)?"tmux_control_mode":xa(t)?"xtermjs_host":Ra(e)?"remote_conpty_host":Ea(e)?"degraded_vt":"native_vt"}o(Ma,"detectTerminalRenderHost");function Ia(e={}){let t=e.env??process.env;if(lr(t.KODAX_FORCE_INK))return"legacy";let r=t.KODAX_TUI_RENDERER?.trim().toLowerCase();return r==="legacy"||r==="owned"||r==="auto"?r:"auto"}o(Ia,"resolveConfiguredTuiRendererMode");function Li(e={}){let t=e.env??process.env;if(lr(t.KODAX_FORCE_CLASSIC_REPL))return"classic";let r=Ia({env:t});if(r==="legacy"||r==="owned")return"ink";let n=Ma(e);return n==="unsupported_control_host"||n==="tmux_control_mode"?"classic":"ink"}o(Li,"resolveInteractiveSurfacePreference");var Aa=40;function ka(e,t){let r=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return r.length===0?[...e]:e.filter(n=>{let i=[n.title,n.id,n.surface??"",n.createdAt??"",String(n.msgCount)].join(" ").toLocaleLowerCase();return r.every(s=>i.includes(s))})}o(ka,"filterSessionPickerItems");function Na(e,t,r){let n=Math.max(1,r),i=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(i/n)*n;return{items:e.slice(s,s+n),selectedIndex:i,pageStart:s,pageIndex:Math.floor(s/n),pageCount:Math.max(1,Math.ceil(e.length/n))}}o(Na,"buildSessionPickerPage");function va(e){if(!e)return"unknown time";let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${r}-${n}-${i} ${s}:${c}`}o(va,"formatTimestamp");function Pa({sessions:e,onSelect:t,onSelectionError:r,onCancel:n,pageSize:i=8}){let{exit:s}=Di(),[c,a]=dr(""),[u,l]=dr(0),[d,f]=dr(!1),m=Oa(!1),h=_a(()=>ka(e,c),[e,c]),p=Na(h,u,i),S=h[p.selectedIndex];return Fi((w,y)=>{if(!m.current){if(y.escape||y.ctrl&&w==="c"){n(),s();return}if(y.return){let g=h[p.selectedIndex];g&&(m.current=!0,f(!0),(async()=>{await new Promise(C=>setTimeout(C,Aa));try{await t(g)}catch(C){r(C)}finally{s()}})());return}if(y.upArrow)l(g=>Math.max(0,g-1));else if(y.downArrow)l(g=>Math.min(Math.max(0,h.length-1),g+1));else if(y.pageUp)l(g=>Math.max(0,g-i));else if(y.pageDown)l(g=>Math.min(Math.max(0,h.length-1),g+i));else if(y.home)l(0);else if(y.end)l(Math.max(0,h.length-1));else if(y.tab){let g=h[p.selectedIndex];g&&(a(g.title),l(0))}else y.backspace||y.delete?(a(g=>g.slice(0,-1)),l(0)):w&&!y.ctrl&&!y.meta&&!y.super&&(a(g=>g+w),l(0))}}),Me(ur,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[$e(Z,{bold:!0,color:"cyan",children:"Resume a session"}),Me(Z,{children:["Search: ",$e(Z,{color:"yellow",children:c||"type to filter"})]}),$e(Z,{dimColor:!0,children:d?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),Me(ur,{flexDirection:"column",marginTop:1,children:[p.items.length===0?$e(Z,{color:"yellow",children:"No matching sessions."}):null,p.items.map((w,y)=>{let C=p.pageStart+y===p.selectedIndex,R=w.title.trim()||"Untitled session",M=w.surface?` \xB7 ${w.surface}`:"";return Me(Z,{color:C?"cyan":void 0,bold:C,children:[C?"\u276F":" "," ",R," \xB7 ",w.msgCount," msgs",M," \xB7 ",va(w.createdAt)," \xB7 ",w.id.slice(0,8)]},w.id)})]}),Me(Z,{dimColor:!0,children:[h.length," matches \xB7 Page ",p.pageIndex+1,"/",p.pageCount]}),Me(Z,{dimColor:!0,children:["Selected ID: ",S?.id??"none"]})]})}o(Pa,"SessionPicker");async function Bi(e,t={}){if(process.stdin.isTTY!==!0||process.stdout.isTTY!==!0)throw new Error("Searchable session resume requires an interactive terminal. Pass an exact session ID or title to -r/--resume instead.");let r,n=!1,i=!1,s=!1,c,a=Li()==="ink",u=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),l=Pi($e(Pa,{sessions:e,pageSize:u,onSelect:o(async d=>{r=d,await t.prepareSelection?.(d),s=!0},"onSelect"),onSelectionError:o(d=>{i=!0,c=d},"onSelectionError"),onCancel:o(()=>{n=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1,preserveRawModeOnUnmount:o(()=>a&&s,"preserveRawModeOnUnmount")});try{await l.waitUntilExit()}finally{l.unmount(),l.cleanup()}if(i)throw c;if(!r&&!n)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return r}o(Bi,"runSessionPicker");import Xe from"node:fs/promises";import Au from"node:os";import U from"node:path";import mr from"path";import{createHash as eu}from"crypto";import{execFile as Va}from"child_process";import ze from"fs";import k from"path";import{promisify as qa}from"util";import{execFile as Fa,execFileSync as Nm}from"node:child_process";import{accessSync as Pm,constants as Da,promises as fr,realpathSync as Fm,statSync as Dm}from"node:fs";import{posix as Wi}from"node:path";import{debuglog as La}from"node:util";var Ba="/usr/bin/git",Wa="/usr/bin/xcode-select",Ha=5e3,Ge=new Map,pr=new Map,Ua=La("kodax:macos-git");function ja(e){let t=e.env??process.env;return JSON.stringify([e.cwd??process.cwd(),t.PATH,t.DEVELOPER_DIR])}o(ja,"probeKey");function Ka(e){let t=Ge.get(e);if(t&&t.expiresAt>Date.now())return t.missing;Ge.delete(e)}o(Ka,"cachedResult");function $a(e,t){t!==void 0&&(Ge.size>=32&&Ge.clear(),Ge.set(e,{missing:t,expiresAt:Date.now()+Ha}))}o($a,"rememberResult");function Ga(e){let t=e.executable??"git",r=e.cwd??process.cwd();return t.includes("/")?[Wi.resolve(r,t)]:((e.env??process.env).PATH??"/usr/bin:/bin").split(":").map(n=>Wi.resolve(r,n,t))}o(Ga,"candidates");async function za(e){for(let t of Ga(e)){try{if(await fr.access(t,Da.X_OK),!(await fr.stat(t)).isFile())continue}catch{continue}return await fr.realpath(t).catch(()=>{})===Ba}return!1}o(za,"selectsSystemGit");function Hi(){Ua("Could not determine macOS developer tools availability; retaining normal Git execution.")}o(Hi,"reportProbeFailure");function Ya(){throw Object.assign(new Error("macOS command line developer tools are unavailable. Install them to use system Git."),{code:"MACOS_GIT_TOOLS_MISSING"})}o(Ya,"rejectMissingTools");async function Ui(e={}){if(process.platform!=="darwin"||!await za(e))return;let t=ja(e),r=Ka(t);if(r===void 0){let n=pr.get(t);n||(n=Xa(e).then(i=>($a(t,i),i)).finally(()=>{pr.delete(t)}),pr.set(t,n)),r=await n}r&&Ya()}o(Ui,"assertNoGitInstallPrompt");function Xa(e){return new Promise(t=>{Fa(Wa,["-p"],{cwd:e.cwd,env:e.env??process.env,timeout:1e3,encoding:"utf8",windowsHide:!0},r=>{r&&r.code!==2?(Hi(),t(void 0)):t(r?.code===2)})}).catch(()=>{Hi()})}o(Xa,"probeAsync");var Ja=qa(Va);function ee(e){if(!(!e||!e.trim()))return k.resolve(e).replace(/\\/g,"/")}o(ee,"normalizePath");async function Qa(e,t,r=5e3){try{await Ui({cwd:e});let{stdout:n}=await Ja("git",t,{cwd:e,windowsHide:!0,maxBuffer:1024*1024,timeout:r}),i=n.trim();return i||void 0}catch{return}}o(Qa,"gitStdout");function Ki(e){let t=k.resolve(e);for(;;){let r=k.join(t,".git");try{let i=ze.statSync(r);if(i.isDirectory()){let s=ee(t)??t.replace(/\\/g,"/");return{canonicalRoot:s,workspaceRoot:s}}if(i.isFile()){let s=/^gitdir:\s*(.+)$/im.exec(ze.readFileSync(r,"utf8"));if(s?.[1]){let c=k.resolve(t,s[1].trim()),a;try{a=k.resolve(c,ze.readFileSync(k.join(c,"commondir"),"utf8").trim())}catch{}let u=ee(t)??t.replace(/\\/g,"/");return{canonicalRoot:zi(a)??u,workspaceRoot:u}}}}catch{}let n=k.dirname(t);if(n===t)return;t=n}}o(Ki,"filesystemWorkspaceIdentity");function ji(e){let t=k.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(ji,"comparablePath");function $i(e){let t=k.join(k.resolve(e),".git","worktrees"),r;try{r=ze.readdirSync(t,{withFileTypes:!0})}catch(i){if(i.code==="ENOENT")return[];throw i}let n=ji(e);return r.flatMap(i=>{if(!i.isDirectory())return[];try{let s=k.join(t,i.name),c=ze.readFileSync(k.join(s,"gitdir"),"utf8").trim();if(!c)return[];let a=k.isAbsolute(c)?c:k.resolve(s,c),u=k.dirname(a),l=Ki(u);return l!==void 0&&ji(l.canonicalRoot)===n?[l.workspaceRoot]:[]}catch{return[]}})}o($i,"discoverLinkedWorkspaceRoots");function Za(e){let[t,r]=e?.split(/\r?\n/).map(s=>s.trim())??[],n=ee(t);if(!n)return;let i=r?ee(k.isAbsolute(r)?r:k.resolve(n,r)):void 0;return{canonicalRoot:zi(i)??n,workspaceRoot:n}}o(Za,"parseProjectIdentityOutput");async function Gi(e={}){let t=ee(e.cwd??process.cwd())??process.cwd().replace(/\\/g,"/"),r=Ki(t);return r!==void 0?r:Za(await Qa(t,["rev-parse","--path-format=absolute","--show-toplevel","--git-common-dir"],e.timeoutMs??2e3))??{canonicalRoot:t,workspaceRoot:t}}o(Gi,"resolveWorkspaceProjectIdentity");function zi(e){let t=ee(e);if(t)return k.posix.basename(t)===".git"?k.posix.dirname(t):t}o(zi,"deriveCanonicalRepoRoot");function Yi(e){let t=ee(e.runtimeInfo?.workspaceRoot??e.gitRoot),r=ee(e.runtimeInfo?.executionCwd??t),n=ee(e.runtimeInfo?.canonicalRepoRoot??t);if(!(!t&&!r&&!n))return{canonicalRepoRoot:n,workspaceRoot:t,executionCwd:r,branch:e.runtimeInfo?.branch,workspaceKind:e.runtimeInfo?.workspaceKind??"detected"}}o(Yi,"resolveSessionRuntimeInfo");var Xi="_unknown",Vi=80;function tu(e){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase():e}o(tu,"caseFold");function ru(e){return tu(mr.resolve(e).replace(/\\/g,"/"))}o(ru,"normalizeRoot");function qi(e){return eu("sha256").update(e).digest("hex").slice(0,10)}o(qi,"shortHash");function nu(e){let t=e.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"");return t.length>Vi?t.slice(t.length-Vi):t}o(nu,"slugify");function Ie(e){if(!e||!e.trim())return{key:Xi,canonicalRoot:null,displayName:Xi};let t=ru(e),r=nu(t),n=r?`${r}-${qi(t)}`:qi(t),i=mr.basename(mr.resolve(e).replace(/\\/g,"/"))||e;return{key:n,canonicalRoot:t,displayName:i}}o(Ie,"deriveProjectKeyFromRoot");function iu(e){let t=Yi({gitRoot:e.gitRoot??"",runtimeInfo:e.runtimeInfo}),r=t?.canonicalRepoRoot??t?.executionCwd??(e.gitRoot&&e.gitRoot.trim()?e.gitRoot:void 0);return Ie(r)}o(iu,"deriveProjectKeyFromData");function Ji(e,t){let r=iu(e).canonicalRoot;return r!==null&&t.some(n=>Ie(n).canonicalRoot===r)}o(Ji,"sessionProjectMatchesAnyRoot");import{randomUUID as ou}from"node:crypto";import Ye from"node:fs/promises";import St from"node:path";function Qi(e){let t=St.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(Qi,"comparableRoot");async function hr(e){let t;try{t=await Ye.readFile(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=JSON.parse(t);if(r===null||typeof r!="object"||typeof r.canonicalRoot!="string")throw new Error(`Invalid project identity manifest at ${e}`);return Qi(r.canonicalRoot)}o(hr,"existingCanonicalRoot");async function Zi(e){return await hr(St.join(e,"project.json"))!==void 0}o(Zi,"projectManifestExists");async function eo(e,t){if(t.canonicalRoot===null)return;await Ye.mkdir(e,{recursive:!0});let r=St.join(e,"project.json"),n=Qi(t.canonicalRoot),i=await hr(r);if(i!==void 0){if(i!==n)throw new Error(`Conflicting project identity at ${r}`);return}let s=St.join(e,`.project.${process.pid}.${ou()}.tmp`),c=await Ye.open(s,"wx");try{await c.writeFile(JSON.stringify({canonicalRoot:t.canonicalRoot,displayName:t.displayName,lastUsed:new Date().toISOString()})+`
|
|
36
|
+
`,"utf8"),await c.sync()}finally{await c.close()}try{await Ye.link(s,r)}catch(a){if(a.code!=="EEXIST")throw a;if(await hr(r)!==n)throw new Error(`Conflicting project identity at ${r}`)}finally{await Ye.rm(s,{force:!0})}}o(eo,"publishProjectManifest");import{createHash as xr,randomUUID as Er}from"node:crypto";import _ from"node:fs/promises";import W from"node:path";var Oe=7,su=".resume-index",cu="complete.json",au="publish.lock",so=".resume",to=32,uu=2e3,Rt=10,gr=3e4,Ae=40,xt=new Map,_e=new Map;async function ae(e,t){let r=[];for(let n=0;n<e.length;n+=to){let i=e.slice(n,n+to);r.push(...await Promise.all(i.map((s,c)=>t(s,n+c))))}return r}o(ae,"mapBatches");function re(e){return W.join(e,su)}o(re,"indexDir");function Cr(e){return W.join(re(e),cu)}o(Cr,"manifestPath");function Rr(e){return`${xr("sha256").update(e,"utf8").digest("hex")}${so}`}o(Rr,"markerName");function lu(e,t){return W.join(re(e),Rr(t))}o(lu,"markerPath");function ro(e){try{let t=JSON.parse(e);return!ke(t)||typeof t.pid!="number"||!Number.isInteger(t.pid)||t.pid<=0||typeof t.token!="string"||t.token.length===0?void 0:{pid:t.pid,token:t.token}}catch{return}}o(ro,"parseIndexPublishLockOwner");async function no(e){for(let t=0;t<Ae;t+=1)try{return await _.rmdir(e),!0}catch(r){let n=r.code;if(n==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(n??""))return!1;t+1<Ae&&await new Promise(i=>setTimeout(i,Rt))}return!1}o(no,"removeEmptyIndexLockDirectory");async function du(e){let t=`${e}.reclaim`;for(let r=0;r<2;r+=1)try{return await _.mkdir(t),async()=>{await no(t)||process.emitWarning(`Unable to release resume-index reclaim guard ${t}`,{code:"KODAX_RESUME_INDEX"})}}catch(n){if(n.code!=="EEXIST")throw n;if(r>0)return;try{let i=await _.stat(t);if(Date.now()-i.mtimeMs<gr)return}catch(i){if(i.code==="ENOENT")continue;throw i}if(!await no(t))return}}o(du,"acquireIndexLockReclaimGuard");function io(e){try{return process.kill(e,0),!1}catch(t){return t.code==="ESRCH"}}o(io,"processIsDefinitelyDead");async function Et(e){try{let[t,r]=await Promise.all([_.readFile(e,"utf8"),_.stat(e)]);return{content:t,mtimeMs:r.mtimeMs}}catch(t){if(t.code==="ENOENT")return;throw t}}o(Et,"readIndexPublishLock");async function yr(e,t){for(let r=0;r<Ae;r+=1){let n=await Et(e);if(n===void 0)return!0;if(n.content!==t)return!1;try{return await _.rm(e),!0}catch(i){let s=i.code;if(s==="ENOENT")return!0;if(!["EPERM","EACCES","EBUSY"].includes(s??""))return!1;r+1<Ae&&await new Promise(c=>setTimeout(c,Rt))}}return!1}o(yr,"removeObservedIndexPublishLock");async function fu(e){let t=await Et(e);if(t===void 0)return!0;if(_e.get(e)===t.content){let i=await yr(e,t.content);return i&&_e.delete(e),i}let r=ro(t.content);if(r!==void 0){if(!io(r.pid))return!1}else if(Date.now()-t.mtimeMs<gr)return!1;let n=await du(e);if(n===void 0)return!1;try{let i=await Et(e);if(i===void 0)return!0;let s=ro(i.content);return _e.get(e)===i.content||(s!==void 0?io(s.pid):Date.now()-i.mtimeMs>=gr)?yr(e,i.content):!1}finally{await n()}}o(fu,"reclaimAbandonedIndexPublishLock");async function pu(e){let t;for(let n=0;n<Ae;n+=1)try{await _.rm(e,{force:!0});return}catch(i){t=i;let s=i.code;if(!["EPERM","EACCES","EBUSY"].includes(s??""))break;n+1<Ae&&await new Promise(c=>setTimeout(c,Rt))}let r=t instanceof Error?t.message:String(t);process.emitWarning(`Unable to remove resume-index lock temp file ${e}: ${r}`,{code:"KODAX_RESUME_INDEX"})}o(pu,"removeIndexPublishLockTemp");async function mu(e,t){await _.mkdir(W.dirname(e),{recursive:!0});let r=`${e}.${process.pid}.${Er()}.tmp`;await _.writeFile(r,t,{encoding:"utf8",flag:"wx"});let n=Date.now()+uu;try{for(;;)try{await _.link(r,e);return}catch(i){let s=i.code;if(!["EEXIST","EPERM","EACCES","EBUSY"].includes(s??""))throw i;if(await Et(e)!==void 0&&await fu(e))continue;if(Date.now()>=n)throw new Error(`Resume index publish lock timed out: ${e}`,{cause:i});await new Promise(a=>setTimeout(a,Rt))}}finally{await pu(r)}}o(mu,"acquireIndexPublishLock");async function hu(e,t){if(!await yr(e,t))throw _e.set(e,t),new Error(`Resume index publish lock ownership changed: ${e}`);_e.get(e)===t&&_e.delete(e)}o(hu,"releaseIndexPublishLock");async function gu(e,t){let r=W.join(re(e),au),n=xt.get(r)??Promise.resolve(),i,s=new Promise(a=>{i=a});xt.set(r,s),await n.catch(()=>{});let c=JSON.stringify({pid:process.pid,token:Er()});try{await mu(r,c);try{return await t()}finally{await hu(r,c)}}finally{i(),xt.get(r)===s&&xt.delete(r)}}o(gu,"withIndexPublishLock");function ke(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(ke,"isRecord");function yu(e){if(!(!ke(e)||typeof e.id!="string"||e.id.length===0||W.basename(e.id)!==e.id||typeof e.title!="string"||typeof e.msgCount!="number"||!Number.isInteger(e.msgCount)||e.msgCount<=0||e.createdAt!==void 0&&typeof e.createdAt!="string"||e.surface!==void 0&&typeof e.surface!="string"))return{id:e.id,title:e.title,msgCount:e.msgCount,...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.surface!==void 0?{surface:e.surface}:{}}}o(yu,"parseEntry");function wu(e){if(!ke(e))return;let t=Array.isArray(e.markerNames)&&e.markerNames.every(i=>typeof i=="string")?[...e.markerNames].sort():void 0,r=Array.isArray(e.sessionNames)&&e.sessionNames.every(i=>typeof i=="string")?[...e.sessionNames].sort():void 0,n=Array.isArray(e.excludedSources)?e.excludedSources.flatMap(i=>!ke(i)||typeof i.name!="string"||typeof i.sourceSize!="number"||!Number.isInteger(i.sourceSize)||i.sourceSize<0||typeof i.sourceMtimeMs!="number"||!Number.isFinite(i.sourceMtimeMs)||typeof i.sourceCtimeMs!="number"||!Number.isFinite(i.sourceCtimeMs)||typeof i.sourceDev!="number"||!Number.isInteger(i.sourceDev)||typeof i.sourceIno!="number"||!Number.isInteger(i.sourceIno)?[]:[{name:i.name,sourceSize:i.sourceSize,sourceMtimeMs:i.sourceMtimeMs,sourceCtimeMs:i.sourceCtimeMs,sourceDev:i.sourceDev,sourceIno:i.sourceIno}]):void 0;if(!(e.version!==Oe||t===void 0||typeof e.markerCount!="number"||!Number.isInteger(e.markerCount)||e.markerCount<0||typeof e.markerDigest!="string"||r===void 0||typeof e.sessionFileCount!="number"||!Number.isInteger(e.sessionFileCount)||e.sessionFileCount<0||typeof e.sessionFileDigest!="string"||n===void 0||typeof e.excludedSourceCount!="number"||!Number.isInteger(e.excludedSourceCount)||e.excludedSourceCount<0||typeof e.excludedSourceDigest!="string"||t.length!==e.markerCount||te(t)!==e.markerDigest||r.length!==e.sessionFileCount||te(r)!==e.sessionFileDigest||n.length!==e.excludedSourceCount||br(n)!==e.excludedSourceDigest))return{version:Oe,markerNames:t,markerCount:e.markerCount,markerDigest:e.markerDigest,sessionNames:r,sessionFileCount:e.sessionFileCount,sessionFileDigest:e.sessionFileDigest,excludedSources:n,excludedSourceCount:e.excludedSourceCount,excludedSourceDigest:e.excludedSourceDigest}}o(wu,"parseManifest");function Su(e,t){if(!ke(e)||e.version!==Oe||e.state!=="pending"&&e.state!=="ready")return;let r=yu(e.entry);if(!r||Rr(r.id)!==t)return;let n=ke(e.source)&&typeof e.source.size=="number"&&Number.isInteger(e.source.size)&&e.source.size>=0&&typeof e.source.mtimeMs=="number"&&Number.isFinite(e.source.mtimeMs)&&typeof e.source.ctimeMs=="number"&&Number.isFinite(e.source.ctimeMs)&&typeof e.source.dev=="number"&&Number.isInteger(e.source.dev)&&typeof e.source.ino=="number"&&Number.isInteger(e.source.ino)?{size:e.source.size,mtimeMs:e.source.mtimeMs,ctimeMs:e.source.ctimeMs,dev:e.source.dev,ino:e.source.ino}:void 0;if(!(e.state==="ready"&&n===void 0))return{version:Oe,state:e.state,entry:r,...n!==void 0?{source:n}:{}}}o(Su,"parseMarker");function te(e){let t=xr("sha256");for(let r of[...e].sort())t.update(r),t.update(`
|
|
37
|
+
`);return t.digest("hex")}o(te,"digestMarkerNames");function br(e){let t=xr("sha256");for(let r of[...e].sort((n,i)=>n.name.localeCompare(i.name)))t.update(JSON.stringify([r.name,r.sourceSize,r.sourceMtimeMs,r.sourceCtimeMs,r.sourceDev,r.sourceIno])),t.update(`
|
|
38
|
+
`);return t.digest("hex")}o(br,"digestScannedFiles");async function wr(e){try{return(await _.readdir(re(e),{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(so)).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(wr,"readMarkerNames");async function Sr(e){try{return(await _.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&t.name.endsWith(".jsonl")&&!t.name.endsWith(".archive.jsonl")&&!t.name.endsWith(".islands.jsonl")&&!t.name.startsWith("archived-")&&!t.name.startsWith(".")).map(t=>t.name).sort()}catch(t){if(t.code==="ENOENT")return[];throw t}}o(Sr,"readCanonicalSessionNames");async function Ct(e,t){let r;try{r=await _.readFile(W.join(re(e),t),"utf8")}catch(n){if(n.code!=="ENOENT")throw n;return}try{return Su(JSON.parse(r),t)}catch{return}}o(Ct,"readMarker");async function co(e,t){let r=`${e}.${process.pid}.${Er()}.tmp`;await _.writeFile(r,t,"utf8");try{await _.rename(r,e)}catch(n){if(!["EEXIST","EPERM"].includes(n.code??""))throw n;await _.rm(e,{force:!0}),await _.rename(r,e)}finally{await _.rm(r,{force:!0})}}o(co,"replaceDerivedFile");async function xu(e){await _.rm(Cr(e),{force:!0})}o(xu,"invalidateManifest");async function Eu(e,t,r,n,i){let s=re(e),c=lu(e,t.id);if(await _.mkdir(s,{recursive:!0}),!n)try{return await _.access(c),!1}catch(l){if(l.code!=="ENOENT")throw l}let a=n?await Ct(e,Rr(t.id)):void 0,u={version:Oe,state:r,entry:{...a?.entry,...t},...i!==void 0?{source:i}:{}};return await co(c,JSON.stringify(u)),!0}o(Eu,"writeMarker");async function Tr(e,t){try{let r=await _.stat(W.join(e,`${t}.jsonl`));return r.isFile()?{size:r.size,mtimeMs:r.mtimeMs,ctimeMs:r.ctimeMs,dev:r.dev,ino:r.ino}:void 0}catch(r){if(r.code==="ENOENT")return;throw r}}o(Tr,"canonicalSource");async function Cu(e,t){let r=W.basename(t,".jsonl");if(`${r}.jsonl`!==t)return;let n=await Tr(e,r);return n===void 0?void 0:{name:t,sourceSize:n.size,sourceMtimeMs:n.mtimeMs,sourceCtimeMs:n.ctimeMs,sourceDev:n.dev,sourceIno:n.ino}}o(Cu,"currentScannedFile");function Ru(e,t){return e!==void 0&&e.size===t.sourceSize&&e.mtimeMs===t.sourceMtimeMs&&e.ctimeMs===t.sourceCtimeMs&&e.dev===t.sourceDev&&e.ino===t.sourceIno}o(Ru,"sourceMatchesIdentity");async function oo(e,t){return(await ae(t,async n=>{let i=W.basename(n.name,".jsonl");return`${i}.jsonl`!==n.name?!1:Ru(await Tr(e,i),n)})).every(Boolean)}o(oo,"scannedFilesStillMatch");async function ao(e,t){if(t.state!=="ready"||t.source===void 0)return!1;let r=await Tr(e,t.entry.id);return r!==void 0&&r.size===t.source.size&&r.mtimeMs===t.source.mtimeMs&&r.ctimeMs===t.source.ctimeMs&&r.dev===t.source.dev&&r.ino===t.source.ino}o(ao,"markerMatchesCanonical");async function bu(e,t,r,n){await _.mkdir(re(e),{recursive:!0});let i=[...t].sort(),s=[...r].sort(),c=[...n].sort((u,l)=>u.name.localeCompare(l.name)),a={version:Oe,markerNames:i,markerCount:i.length,markerDigest:te(i),sessionNames:s,sessionFileCount:s.length,sessionFileDigest:te(s),excludedSources:c,excludedSourceCount:c.length,excludedSourceDigest:br(c)};await co(Cr(e),JSON.stringify(a))}o(bu,"writeManifest");async function uo(e){let t;try{t=await _.readFile(Cr(e),"utf8")}catch(d){if(d.code!=="ENOENT")throw d;return}let r;try{r=wu(JSON.parse(t))}catch{return}if(!r)return;let n=await wr(e),i=await Sr(e);if(n.length!==r.markerCount||te(n)!==r.markerDigest||i.length!==r.sessionFileCount||te(i)!==r.sessionFileDigest)return;let s=await ae(n,d=>Ct(e,d));if(s.some(d=>d===void 0||d.state!=="ready")||(await ae(s,async d=>d===void 0?!1:ao(e,d))).some(d=>!d))return;let a=new Set(s.flatMap(d=>d?.state==="ready"?[`${d.entry.id}.jsonl`]:[])),u=i.filter(d=>!a.has(d));if(u.length!==r.excludedSourceCount)return;let l=await ae(u,d=>Cu(e,d));if(!(l.some(d=>d===void 0)||br(l.flatMap(d=>d===void 0?[]:[d]))!==r.excludedSourceDigest))return s.flatMap(d=>d?.state==="ready"?[d.entry]:[])}o(uo,"readResumeIndex");async function lo(e,t,r){await gu(e,()=>Tu(e,t,r))}o(lo,"completeResumeIndex");async function Tu(e,t,r){let n=r.map(p=>p.name).sort(),i=te(n),s=await Sr(e);if(s.length!==n.length||te(s)!==i||!await oo(e,r))return;await xu(e),await _.mkdir(re(e),{recursive:!0});let c=new Set(t.map(p=>p.id)),a=r.filter(p=>!c.has(W.basename(p.name,".jsonl")));for(let p of t)await Eu(e,p,"ready",!0,{size:p.sourceSize,mtimeMs:p.sourceMtimeMs,ctimeMs:p.sourceCtimeMs,dev:p.sourceDev,ino:p.sourceIno});let u=await wr(e),l=await ae(u,p=>Ct(e,p));await ae(u,async(p,S)=>{let w=l[S];(w===void 0||!c.has(w.entry.id))&&await _.rm(W.join(re(e),p),{force:!0})});let d=await Sr(e);if(d.length!==n.length||te(d)!==i||!await oo(e,r))return;let f=await wr(e),m=await ae(f,p=>Ct(e,p));m.some(p=>p?.state!=="ready")||m.length!==c.size||m.some(p=>p===void 0||!c.has(p.entry.id))||(await ae(m,async p=>p===void 0?!1:ao(e,p))).some(p=>!p)||await bu(e,f,n,a)}o(Tu,"completeResumeIndexWithLock");var Mu=new Set(["user","assistant","system","thinking","error","event","info","hint","sidecar"]),Iu=new Set(["success","error","cancelled","awaiting_approval"]);function bt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(bt,"isRecord");function Mr(e){if(e===null||typeof e=="string"||typeof e=="number"||typeof e=="boolean")return!0;if(Array.isArray(e))return e.every(Mr);if(!bt(e))return!1;let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null?!1:Object.values(e).every(Mr)}o(Mr,"isKodaXJsonValue");function _u(e){return bt(e)&&Object.values(e).every(Mr)}o(_u,"isKodaXSessionUiToolInput");function Ou(e){return bt(e)&&typeof e.id=="string"&&typeof e.name=="string"&&typeof e.status=="string"&&Iu.has(e.status)&&(e.input===void 0||_u(e.input))&&(e.preview===void 0||typeof e.preview=="string")&&(e.output===void 0||typeof e.output=="string")&&(e.error===void 0||typeof e.error=="string")&&(e.startTime===void 0||typeof e.startTime=="number")&&(e.endTime===void 0||typeof e.endTime=="number")}o(Ou,"isKodaXSessionUiToolCall");function fo(e){return e===void 0||typeof e=="number"&&Number.isFinite(e)&&e>=0}o(fo,"isOptionalHistoryTimestamp");function po(e){return!bt(e)||typeof e.type!="string"?!1:e.type==="tool_group"?fo(e.timestamp)&&Array.isArray(e.tools)&&e.tools.length>0&&e.tools.every(Ou):Mu.has(e.type)&&(e.outputId===void 0||typeof e.outputId=="string")&&(e.textRevision===void 0||typeof e.textRevision=="number"&&Number.isSafeInteger(e.textRevision)&&e.textRevision>=0)&&typeof e.text=="string"&&fo(e.timestamp)&&(e.presentationOnly===void 0||e.presentationOnly===!0)&&(e.sidecarVerdict===void 0||e.sidecarVerdict==="revise"||e.sidecarVerdict==="blocked")&&(e.sidecarDelivery===void 0||e.sidecarDelivery==="synthetic-user-message"||e.sidecarDelivery==="budget-exhausted"||e.sidecarDelivery==="terminal-block")&&(e.icon===void 0||typeof e.icon=="string")&&(e.compactText===void 0||typeof e.compactText=="string")}o(po,"isKodaXSessionUiHistoryItem");function Ir(e,t){let r=Number.isInteger(e)&&e>=0?e:0;if(!Array.isArray(t))return r;let n=t.reduce((i,s)=>po(s)&&s.type!=="tool_group"&&s.presentationOnly===!0?i+1:i,0);return r+n}o(Ir,"countResumableSessionItems");var yo=65536,Tt=48;function ku(){let e=process.env.KODAX_HOME,t=e&&e.length>0?e:U.join(Au.homedir(),".kodax");return U.join(t,"sessions")}o(ku,"defaultSessionsDir");function Nu(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith("archived-")&&!e.startsWith(".")}o(Nu,"isSessionFile");async function Mt(e){try{return(await Xe.readdir(e,{withFileTypes:!0})).filter(t=>t.isFile()&&Nu(t.name)).map(t=>U.join(e,t.name))}catch(t){if(t.code==="ENOENT")return[];throw t}}o(Mt,"readProjectSessionFiles");async function vu(e){try{return await Mt(e)}catch(t){return Or(`read ${e}`,t),[]}}o(vu,"readOptionalProjectSessionFiles");async function Pu(e,t,r,n,i){let s=r?[]:await Mt(t),c=(await Promise.all(i.map(u=>vu(u)))).flat(),a=await Mt(e);return[...s.map(u=>({filePath:u,trustedProjectDir:n})),...c.map(u=>({filePath:u,trustedProjectDir:!1})),...a.map(u=>({filePath:u,trustedProjectDir:!1}))]}o(Pu,"collectActiveSessionFiles");async function Fu(e,t){try{let r=JSON.parse(await Xe.readFile(U.join(e,"project.json"),"utf8"));if(r===null||typeof r!="object")return!1;let n=r.canonicalRoot;return typeof n=="string"&&he(n)===he(t)}catch{return!1}}o(Fu,"isTrustedProjectDir");function Du(e){return{...e,...e.createdAt!==void 0?{createdAtMs:Date.parse(e.createdAt)}:{}}}o(Du,"indexedCandidate");function _r(e,t){let r=t instanceof Error?t.message:String(t);process.emitWarning(`Resume index ${e} failed; using canonical sessions instead: ${r}`,{code:"KODAX_RESUME_INDEX"})}o(_r,"reportResumeIndexFailure");function Or(e,t){let r=t instanceof Error?t.message:String(t);process.emitWarning(`Resume compatibility ${e} failed; continuing with the current project: ${r}`,{code:"KODAX_RESUME_COMPATIBILITY"})}o(Or,"reportResumeCompatibilityFailure");function he(e){if(!e?.trim())return;let t=U.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(he,"normalizeComparableRoot");function Lu(e,t){if(t.length===0)return!0;let r=e.runtimeInfo!==null&&typeof e.runtimeInfo=="object"?e.runtimeInfo:void 0;return Ji({...typeof e.gitRoot=="string"?{gitRoot:e.gitRoot}:{},...r===void 0?{}:{runtimeInfo:{...typeof r.canonicalRepoRoot=="string"?{canonicalRepoRoot:r.canonicalRepoRoot}:{},...typeof r.workspaceRoot=="string"?{workspaceRoot:r.workspaceRoot}:{},...typeof r.executionCwd=="string"?{executionCwd:r.executionCwd}:{}}}},t)}o(Lu,"matchesProjectRoot");function Bu(e,t){return e.sourceSize===t.size&&e.sourceMtimeMs===t.mtimeMs&&e.sourceCtimeMs===t.ctimeMs&&e.sourceDev===t.dev&&e.sourceIno===t.ino}o(Bu,"sameSource");async function Wu(e,t){let r=[],n=t,i=!1;for(;n>0;){let s=Math.max(0,n-yo),c=Buffer.allocUnsafe(n-s),{bytesRead:a}=await e.read(c,0,c.length,s);if(a===0)break;let u=a;if(!i){for(;u>0&&(c[u-1]===10||c[u-1]===13);)u-=1;if(u===0){n=s;continue}i=!0}let l=c.lastIndexOf(10,u-1);if(r.unshift(c.subarray(l+1,u)),l>=0)break;n=s}return Buffer.concat(r).toString("utf8").trim()}o(Wu,"readLastNonEmptyLine");async function Hu(e){let t;try{t=await Xe.open(e,"r");let r=await t.stat(),n=[],i=0,s=0,c=r.size;for(;;){let f=r.size-s;if(f<=0)break;let m=Buffer.allocUnsafe(Math.min(yo,f)),{bytesRead:h}=await t.read(m,0,m.length,s);if(h===0)break;let p=m.subarray(0,h),S=p.indexOf(10),w=S>=0?p.subarray(0,S):p;if(n.push(w),i+=w.length,S>=0){c=s+S;break}s+=h}if(i===0)return;let a=Buffer.concat(n,i).toString("utf8").trim(),u=r.size<=c+1?a:await Wu(t,r.size),l={sourceSize:r.size,sourceMtimeMs:r.mtimeMs,sourceCtimeMs:r.ctimeMs,sourceDev:r.dev,sourceIno:r.ino},d=await t.stat();return Bu(l,d)?{line:a,tailLine:u,...l}:void 0}catch{return}finally{await t?.close()}}o(Hu,"readSessionEnvelope");function mo(e,t){return t._type!=="meta_update"?e:{...e,...typeof t.title=="string"?{title:t.title}:{},...typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0?{activeMessageCount:t.activeMessageCount}:{},...Array.isArray(t.uiHistory)?{uiHistory:t.uiHistory}:{},...typeof t.scope=="string"?{scope:t.scope}:{}}}o(mo,"applyMetaUpdate");function ho(e){try{let t=JSON.parse(e);return t!==null&&typeof t=="object"?{valid:!0,value:t}:{valid:!0}}catch{return{valid:!1}}}o(ho,"parseJsonRecord");async function Uu(e,t,r){let n=ho(r);if(n.valid)return n.value===void 0?t:mo(t,n.value);let i=(await Xe.readFile(e,"utf8")).split(`
|
|
39
|
+
`);for(let s=i.length-1;s>=0;s-=1){let c=i[s]?.trim();if(!c)continue;let a=ho(c);if(a.valid&&a.value?._type==="meta_update")return mo(t,a.value)}return t}o(Uu,"applyEffectiveTailMetadata");async function ju(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return Ir(t.activeMessageCount,t.uiHistory);let r=(await Xe.readFile(e,"utf8")).trim();if(!r)return 0;let n=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Ir(Math.max(0,r.split(`
|
|
40
|
+
`).length-1-n),t.uiHistory)}o(ju,"readMessageCount");function Ku(e){if(e.runtimeInfo===null||typeof e.runtimeInfo!="object")return;let t=e.runtimeInfo;return{...typeof t.canonicalRepoRoot=="string"?{canonicalRepoRoot:t.canonicalRepoRoot}:{},...typeof t.workspaceRoot=="string"?{workspaceRoot:t.workspaceRoot}:{},...typeof t.surface=="string"?{surface:t.surface}:{}}}o(Ku,"runtimeSummary");async function go(e,t,r){let n=await Hu(e);if(!n?.line)return{};let i={name:U.basename(e),sourceSize:n.sourceSize,sourceMtimeMs:n.sourceMtimeMs,sourceCtimeMs:n.sourceCtimeMs,sourceDev:n.sourceDev,sourceIno:n.sourceIno};try{let s=JSON.parse(n.line);if(s===null||typeof s!="object")return{source:i};let c=await Uu(e,s,n.tailLine);if(c._type!=="meta")return{source:i,matchesProject:!1};let a=r||Lu(c,t);if(!a||c.scope==="managed-task-worker")return{source:i,matchesProject:a};let u=await ju(e,c);if(u<=0)return{source:i,matchesProject:a};let l=typeof c.createdAt=="string"?c.createdAt:void 0,d=Ku(c);return{source:i,matchesProject:a,candidate:{id:U.basename(e,".jsonl"),title:typeof c.title=="string"?c.title:"",msgCount:u,...l!==void 0?{createdAt:l}:{},...d?.surface!==void 0?{surface:d.surface}:{},...l!==void 0?{createdAtMs:Date.parse(l)}:{},sourceSize:n.sourceSize,sourceMtimeMs:n.sourceMtimeMs,sourceCtimeMs:n.sourceCtimeMs,sourceDev:n.sourceDev,sourceIno:n.sourceIno}}}catch{return{source:i}}}o(go,"readResumeCandidate");async function $u(e,t){let r=e.sessionsDir??ku(),{canonicalProjectRoot:n,compatibleRoots:i}=await Gu(e.projectRoot),s=U.join(r,Ie(n).key),c=i.map(y=>U.join(r,Ie(y).key)),a=await Fu(s,n),u=!1;if(!a)try{u=!await Zi(s)}catch{}let l;if(a)try{l=await uo(s)}catch(y){_r("read",y)}let d=await Pu(r,s,l!==void 0,a&&l!==void 0,c),f=l?.map(Du)??[],m=[],h=[],p=!0,S=new Set(f.map(y=>y.id));for(let y=0;y<d.length;y+=Tt){let g=d.slice(y,y+Tt),C=await Promise.all(g.map(R=>go(R.filePath,[n,...i],R.trustedProjectDir)));for(let R=0;R<C.length;R+=1){let M=C[R],P=g[R],N=P!==void 0&&he(U.dirname(P.filePath))===he(s);N&&(M?.source&&h.push(M.source),(M?.source===void 0||M.matchesProject!==!0)&&(p=!1));let b=M?.candidate;l===void 0&&N&&b?.sourceSize!==void 0&&b.sourceMtimeMs!==void 0&&b.sourceCtimeMs!==void 0&&b.sourceDev!==void 0&&b.sourceIno!==void 0&&m.push({...b,sourceSize:b.sourceSize,sourceMtimeMs:b.sourceMtimeMs,sourceCtimeMs:b.sourceCtimeMs,sourceDev:b.sourceDev,sourceIno:b.sourceIno}),b&&!S.has(b.id)&&(S.add(b.id),f.push(b))}}if(t&&u&&p){let y=[];try{y=await Mt(U.join(s,"archived"))}catch(g){p=!1,Or("legacy archived-session certification",g)}for(let g=0;g<y.length;g+=Tt)if((await Promise.all(y.slice(g,g+Tt).map(R=>go(R,[n,...i],!1)))).some(R=>R.source===void 0||R.matchesProject!==!0)){p=!1;break}}let w=a;if(t&&u&&p)try{await eo(s,Ie(n)),w=!0}catch(y){_r("project identity publication",y)}if(t&&l===void 0&&w)try{await lo(s,m,h)}catch(y){_r("rebuild",y)}return f.sort((y,g)=>Number.isFinite(y.createdAtMs)&&Number.isFinite(g.createdAtMs)&&y.createdAtMs!==g.createdAtMs?g.createdAtMs-y.createdAtMs:Number.isFinite(g.createdAtMs)&&!Number.isFinite(y.createdAtMs)?1:Number.isFinite(y.createdAtMs)&&!Number.isFinite(g.createdAtMs)?-1:g.id.localeCompare(y.id)),f.slice(0,e.limit??Number.MAX_SAFE_INTEGER).map(({createdAtMs:y,sourceSize:g,sourceMtimeMs:C,sourceCtimeMs:R,sourceDev:M,sourceIno:P,...N})=>N)}o($u,"scanResumeSessions");function Ar(e){return $u(e,!1)}o(Ar,"listCliResumeSessions");async function Gu(e){let t=await Gi({cwd:e}),r=t.canonicalRoot,n=[];try{n=$i(r)}catch(s){Or("linked-worktree discovery",s)}let i=[t.workspaceRoot,...n].filter((s,c,a)=>{let u=he(s);return u!==he(r)&&a.findIndex(l=>he(l)===u)===c});return{canonicalProjectRoot:r,compatibleRoots:i}}o(Gu,"resolveSessionDiscoveryRoots");async function wo(e,t={}){return Bi(e,t)}o(wo,"runCliResumePicker");async function zu(e){let{default:t}=await import("chalk");if(e==="empty"){process.stdout.write(`${t.yellow("No resumable sessions found. Starting a new session...")}
|
|
44
41
|
`);return}process.stdout.write(`${t.dim("Session resume cancelled.")}
|
|
45
|
-
`)}o(
|
|
42
|
+
`)}o(zu,"printResumeNotice");async function Oh(e={}){let t=e.listSessions??Ar,r=e.pickSession??wo,n=e.notify??zu,i=await t({projectRoot:e.cwd??process.cwd(),limit:Number.MAX_SAFE_INTEGER});if(i.length===0)return await n("empty"),{kind:"continue",argv:[]};let s=await r(i,{prepareSelection:e.beforeSelect});return s?{kind:"continue",argv:["-r",s.id]}:(await n("cancelled"),{kind:"exit"})}o(Oh,"resolveBareResume");export{Oh as resolveBareResume};
|