@kodax-ai/kodax 0.7.79 → 0.7.80
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 +93 -12
- package/README.md +31 -8
- package/README_CN.md +25 -5
- package/config-templates/config.example.jsonc +14 -2
- package/dist/chunks/agent-5PHGNFW3.js +2 -0
- package/dist/chunks/argument-completer-FXRZFMTC.js +2 -0
- package/dist/chunks/{chunk-H5LLM7DB.js → chunk-6UENDY33.js} +2 -2
- package/dist/chunks/{chunk-QCZLCLFL.js → chunk-BWX4YZX3.js} +2 -2
- package/dist/chunks/{chunk-EDZ4QILG.js → chunk-CDCCTM5I.js} +17 -5
- package/dist/chunks/chunk-CEB5FDND.js +810 -0
- package/dist/chunks/{chunk-M4N2JZTZ.js → chunk-E7C4DRD2.js} +1 -1
- package/dist/chunks/{chunk-GEECPO2H.js → chunk-EVXIJPZ6.js} +66 -66
- package/dist/chunks/chunk-FQ7NVMSU.js +319 -0
- package/dist/chunks/chunk-GC4JBMBS.js +385 -0
- package/dist/chunks/{chunk-67THZRM6.js → chunk-HTVLCHWH.js} +1 -1
- package/dist/chunks/chunk-IHPH3444.js +655 -0
- package/dist/chunks/{chunk-OWQT3FTE.js → chunk-KHEFUT6O.js} +1 -1
- package/dist/chunks/{chunk-BBOVVDQJ.js → chunk-PMKAG4SZ.js} +1 -1
- package/dist/chunks/chunk-RPF5RGWZ.js +479 -0
- package/dist/chunks/{chunk-CXHEZY5G.js → chunk-RXXKDR6Y.js} +1 -1
- package/dist/chunks/{chunk-6GVQDQTQ.js → chunk-T5U4OP2N.js} +1 -1
- package/dist/chunks/{chunk-SG6P4SZS.js → chunk-TRNAWSXP.js} +21 -21
- package/dist/chunks/{chunk-CR2IF7VF.js → chunk-UZSHBQER.js} +5 -5
- package/dist/chunks/{chunk-B6UY3VHV.js → chunk-VECRQTSD.js} +44 -44
- package/dist/chunks/compaction-config-6J6XCBJS.js +2 -0
- package/dist/chunks/{construction-bootstrap-K3ZGEN5N.js → construction-bootstrap-KPCAE3VN.js} +1 -1
- package/dist/chunks/dist-RWEVZOFK.js +2 -0
- package/dist/chunks/{dist-JMO47GJV.js → dist-WWL2DNIJ.js} +1 -1
- package/dist/chunks/host-OGS2R5J4.js +2 -0
- package/dist/chunks/run-manager-2YMM3BOT.js +2 -0
- package/dist/chunks/{utils-6LEKJPQN.js → utils-2YHRUZYC.js} +1 -1
- package/dist/index.d.ts +13 -12
- package/dist/index.js +4 -4
- package/dist/kodax_bootstrap.js +1 -1
- package/dist/kodax_cli.js +1301 -1285
- package/dist/kodax_resume.js +63 -63
- package/dist/runtime-worker.js +1205 -1189
- package/dist/sandbox-workspace-session.js +43 -43
- package/dist/sdk-a2a.d.ts +8 -8
- package/dist/sdk-a2a.js +1 -1
- package/dist/sdk-agent.d.ts +15 -17
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +171 -20
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +19 -200
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +11 -8
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-sandbox.js +1 -1
- package/dist/sdk-session.d.ts +4 -4
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +44 -44
- package/dist/types-chunks/{bash-prefix-extractor.d-CNSidpmv.d.ts → bash-prefix-extractor.d-DStqKIlu.d.ts} +4 -2
- package/dist/types-chunks/{capsule.d-B3q98pLQ.d.ts → capsule.d-BuFJaYxA.d.ts} +6 -15
- package/dist/types-chunks/{controller.d-RGV7Pjv9.d.ts → controller.d-C2aHqzHj.d.ts} +18 -10
- package/dist/types-chunks/{guardrail.d-1NLSFTyN.d.ts → guardrail.d-DM-OK0m3.d.ts} +74 -77
- package/dist/types-chunks/{history-retrieval.d-BAegI14A.d.ts → history-retrieval.d-DImTKgO6.d.ts} +1 -1
- package/dist/types-chunks/{public-api.d-BpJhHoa7.d.ts → public-api.d-CewTvUKV.d.ts} +5 -17
- package/dist/types-chunks/{repl.d-CZ12Ow3X.d.ts → repl.d-DvXQtgr7.d.ts} +5 -5
- package/dist/types-chunks/{run-manager.d-CX3AUocA.d.ts → run-manager.d-C6ahvZqK.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-B3cfJKqF.d.ts → sdk-session-C59RUrri.d.ts} +2 -2
- package/dist/types-chunks/shell-command-sets.d-Dp4UvPLL.d.ts +297 -0
- package/dist/types-chunks/{types.d-BZ9oXvTV.d.ts → types.d-BzpPDBPV.d.ts} +1 -1
- package/dist/types-chunks/{types.d-C0_rn--1.d.ts → types.d-yuJzE82x.d.ts} +2 -2
- package/dist/types-chunks/{utils.d-CGpHavsU.d.ts → utils.d-BpACJmzt.d.ts} +15 -5
- package/docs/SDK_EMBEDDER_GUIDE.md +36 -32
- package/package.json +3 -3
- package/dist/chunks/agent-V4AC5JZD.js +0 -2
- package/dist/chunks/argument-completer-ZPC2MLES.js +0 -2
- package/dist/chunks/chunk-KLWP7POA.js +0 -467
- package/dist/chunks/chunk-Q4M7DJOD.js +0 -319
- package/dist/chunks/chunk-RQPMGRTR.js +0 -810
- package/dist/chunks/chunk-TSTVAU5E.js +0 -386
- package/dist/chunks/chunk-ZCZZUE5E.js +0 -662
- package/dist/chunks/compaction-config-AEUGVROL.js +0 -2
- package/dist/chunks/dist-GFJFRPAV.js +0 -2
- package/dist/chunks/host-23K2Q6RZ.js +0 -2
- package/dist/chunks/run-manager-PGIR6ITA.js +0 -2
package/dist/kodax_resume.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
var Uc=Object.defineProperty;var o=(e,t)=>Uc(e,"name",{value:t,configurable:!0});var At=(e,t)=>()=>(e&&(t=e(e=0)),t);var Er,Js,Qs=At(()=>{Er=class{static{o(this,"WebSocketStub")}},Js=Er});var an,Zs=At(()=>{"use strict";Qs();an=global;an.WebSocket||=Js;an.window||=global;an.self||=global;an.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 ea,Ir,ta=At(()=>{ea=o(()=>{},"noop"),Ir={initialize:ea,connectToDevTools:ea}});var
|
|
2
|
+
var Uc=Object.defineProperty;var o=(e,t)=>Uc(e,"name",{value:t,configurable:!0});var At=(e,t)=>()=>(e&&(t=e(e=0)),t);var Er,Js,Qs=At(()=>{Er=class{static{o(this,"WebSocketStub")}},Js=Er});var an,Zs=At(()=>{"use strict";Qs();an=global;an.WebSocket||=Js;an.window||=global;an.self||=global;an.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 ea,Ir,ta=At(()=>{ea=o(()=>{},"noop"),Ir={initialize:ea,connectToDevTools:ea}});var Ig={};var na=At(()=>{"use strict";Zs();ta();Ir.initialize();Ir.connectToDevTools()});import Je from"node:fs/promises";import Ww from"node:os";import Qe from"node:path";import R from"fs/promises";import Os from"fs";import P from"path";import Cn from"path";import{createHash as qc}from"crypto";import{execFile as Wc}from"child_process";import Hc from"path";import{promisify as zc}from"util";var rv=zc(Wc);function In(e){if(!(!e||!e.trim()))return Hc.resolve(e).replace(/\\/g,"/")}o(In,"normalizePath");function mo(e){let t=In(e.runtimeInfo?.workspaceRoot??e.gitRoot),n=In(e.runtimeInfo?.executionCwd??t),r=In(e.runtimeInfo?.canonicalRepoRoot??t);if(!(!t&&!n&&!r))return{canonicalRepoRoot:r,workspaceRoot:t,executionCwd:n,branch:e.runtimeInfo?.branch,workspaceKind:e.runtimeInfo?.workspaceKind??"detected"}}o(mo,"resolveSessionRuntimeInfo");var Ze="_unknown",ho=80;function Vc(e){return process.platform==="win32"||process.platform==="darwin"?e.toLowerCase():e}o(Vc,"caseFold");function Gc(e){return Vc(Cn.resolve(e).replace(/\\/g,"/"))}o(Gc,"normalizeRoot");function go(e){return qc("sha256").update(e).digest("hex").slice(0,10)}o(go,"shortHash");function Yc(e){let t=e.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"");return t.length>ho?t.slice(t.length-ho):t}o(Yc,"slugify");function Jc(e){if(!e||!e.trim())return{key:Ze,canonicalRoot:null,displayName:Ze};let t=Gc(e),n=Yc(t),r=n?`${n}-${go(t)}`:go(t),i=Cn.basename(Cn.resolve(e).replace(/\\/g,"/"))||e;return{key:r,canonicalRoot:t,displayName:i}}o(Jc,"deriveProjectKeyFromRoot");function yo(e){let t=mo({gitRoot:e.gitRoot??"",runtimeInfo:e.runtimeInfo}),n=t?.canonicalRepoRoot??t?.executionCwd??(e.gitRoot&&e.gitRoot.trim()?e.gitRoot:void 0);return Jc(n)}o(yo,"deriveProjectKeyFromData");import Zt from"node:fs/promises";import pt from"node:path";import{AsyncLocalStorage as Qc}from"node:async_hooks";var Zc=new Qc;function Pt(e){let t=Zc.getStore()?.credential;return t?et(e,t,new WeakMap):e}o(Pt,"redactScopedProviderCredential");function et(e,t,n){if(typeof e=="string")return e.split(t).join("[REDACTED_CREDENTIAL]");if(e===null||typeof e!="object")return e;let r=n.get(e);if(r!==void 0)return r;if(e instanceof Error){let s=new Error(et(e.message,t,n));return n.set(e,s),s.name=e.name,e.stack!==void 0&&(s.stack=et(e.stack,t,n)),s}if(Array.isArray(e)){let s=[];n.set(e,s);for(let a of e)s.push(et(a,t,n));return s}let i={};n.set(e,i);for(let[s,a]of Object.entries(Object.getOwnPropertyDescriptors(e))){if(!a.enumerable||!("value"in a))continue;let c=s.split(t).join("[REDACTED_CREDENTIAL]");i[c]=et(a.value,t,n)}return i}o(et,"redactCredentialValue");import{AsyncLocalStorage as ed}from"node:async_hooks";var Ov=new ed;var tt={transport:"native-api",conversationSemantics:"full-history",mcpSupport:"none",contextFidelity:"full",toolCallingFidelity:"full",sessionSupport:"full",longRunningSupport:"full",multimodalSupport:"none",evidenceSupport:"full"},wo={...tt,multimodalSupport:"image-input"},Mt={transport:"cli-bridge",conversationSemantics:"last-user-message",mcpSupport:"none",contextFidelity:"lossy",toolCallingFidelity:"limited",sessionSupport:"stateless",longRunningSupport:"limited",multimodalSupport:"none",evidenceSupport:"limited"},vo={...Mt,multimodalSupport:"image-input"};import lb from"@anthropic-ai/sdk";import{parse as Jv}from"partial-json";import Tb from"openai";import{ClientSideConnection as zb,PROTOCOL_VERSION as qb,ndJsonStream as Vb}from"@agentclientprotocol/sdk";var jb=Object.freeze({status:"terminated"}),Kb=Object.freeze({status:"already-exited"}),Bb=Object.freeze({status:"unknown"}),Xb=String.raw`
|
|
3
3
|
using System;
|
|
4
4
|
using System.Runtime.InteropServices;
|
|
5
5
|
using System.Text;
|
|
@@ -86,8 +86,8 @@ public static class KodaXNativeProcessSnapshot {
|
|
|
86
86
|
CloseHandle(snapshot);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
}`;import Co from"node:fs";import To from"node:os";import Ro from"node:path";var Sd="gpt-5.4",Ed="auto-gemini-3",Id=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],Cd=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];function _o(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let s=i.toLowerCase();t.has(s)||(t.add(s),n.push(i))}return n}o(_o,"dedupePreserveOrder");function Td(){let e=Ro.join(To.homedir(),".codex","config.toml");try{return Co.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}o(Td,"readCodexConfiguredModel");function Rd(){let e=Ro.join(To.homedir(),".gemini","settings.json");try{let t=JSON.parse(Co.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}o(Rd,"readGeminiConfiguredModel");function Oe(){return Td()||Sd}o(Oe,"getCodexCliDefaultModel");function Ne(){return Rd()||Ed}o(Ne,"getGeminiCliDefaultModel");function nt(){return _o([Oe(),...Id])}o(nt,"getCodexCliKnownModels");function rt(){return _o([Ne(),...Cd])}o(rt,"getGeminiCliKnownModels");var _k=Ne(),Ak=rt();var Xk=Oe(),Uk=nt();import{existsSync as jd,readFileSync as Kd}from"node:fs";import De from"node:path";import{fileURLToPath as Bd}from"node:url";var Ao=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],Po=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],Mo=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],Oo=["zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],No=["max_tokens","max_completion_tokens"],$o=["native","image-input-native","cli-bridge","image-input-cli-bridge"],Do=["count-tokens","models-list","minimal-message","unsupported"];function ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(ne,"isPlainObject");function ke(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}o(ke,"requireString");function $e(e,t){if(e!==void 0)return ke(e,t)}o($e,"optionalString");function jo(e,t){if(e!==void 0){if(typeof e!="string"||!No.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${No.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(jo,"optionalMaxOutputTokensField");function pe(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}o(pe,"optionalNumber");function D(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}o(D,"optionalBoolean");function Lo(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>ke(n,`${t}[${r}]`))}}o(Lo,"optionalStringArray");function Ad(e,t){if(e===void 0)return;if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=ke(i,`${t}.${r}`);return n}o(Ad,"optionalStringMap");function Pd(e,t){if(e!==void 0){if(typeof e!="string"||!Oo.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Oo.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(Pd,"optionalReasoningPreset");function _n(e,t){if(typeof e!="string"||!Ao.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Ao.join(", ")}, got ${JSON.stringify(e)}`);return e}o(_n,"requireReasoningCapability");function Md(e,t){if(typeof e!="string"||!Po.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Po.join(", ")}, got ${JSON.stringify(e)}`);return e}o(Md,"requireEffortStrategy");function Od(e,t){if(e!==void 0){if(typeof e!="string"||!Mo.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Mo.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(Od,"optionalThinkingStrategy");function Fo(e,t){if(e===void 0)return;if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=Md(e.effortStrategy,`${t}.effortStrategy`),r=Pd(e.reasoningPreset,`${t}.reasoningPreset`),i=Od(e.thinkingStrategy,`${t}.thinkingStrategy`),s=$e(e.defaultEffort,`${t}.defaultEffort`),a=Ad(e.effortAliases,`${t}.effortAliases`),c=Lo(e.disabledEfforts,`${t}.disabledEfforts`),d=Lo(e.localRejectEfforts,`${t}.localRejectEfforts`),u=D(e.allowCustomEffort,`${t}.allowCustomEffort`),l=D(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),f=D(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=D(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),p=D(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),g=D(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),v=D(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),w=D(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),s!==void 0&&(y.defaultEffort=s),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((h,b)=>{if(!ne(h))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${b}] must be an object`);return{value:ke(h.value,`${t}.supportedEfforts[${b}].value`),...$e(h.description,`${t}.supportedEfforts[${b}].description`)!==void 0?{description:$e(h.description,`${t}.supportedEfforts[${b}].description`)}:{},...D(h.isDefault,`${t}.supportedEfforts[${b}].isDefault`)!==void 0?{isDefault:D(h.isDefault,`${t}.supportedEfforts[${b}].isDefault`)}:{},...D(h.isUserVisible,`${t}.supportedEfforts[${b}].isUserVisible`)!==void 0?{isUserVisible:D(h.isUserVisible,`${t}.supportedEfforts[${b}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!ne(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let h={};for(let[b,I]of Object.entries(e.budgetByEffort))h[b]=pe(I,`${t}.budgetByEffort.${b}`)??0;y.budgetByEffort=h}return u!==void 0&&(y.allowCustomEffort=u),l!==void 0&&(y.supportsReasoningEffort=l),f!==void 0&&(y.supportsReasoningSummary=f),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),p!==void 0&&(y.supportsAdaptiveThinking=p),g!==void 0&&(y.supportsManualThinkingBudget=g),v!==void 0&&(y.supportsDisabledThinking=v),w!==void 0&&(y.requiresEffortBetaHeader=w),y}o(Fo,"validateReasoningProfile");function Ko(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?Fo(n,`${t}.reasoningProfile`):Fo(r,`${t}.reasoningCapabilityV2`)}o(Ko,"validateReasoningProfileField");function Nd(e,t){if(typeof e!="string"||!$o.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${$o.join(", ")}, got ${JSON.stringify(e)}`);return e}o(Nd,"requireProfileName");function $d(e,t){if(typeof e!="string"||!Do.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Do.join(", ")}, got ${JSON.stringify(e)}`);return e}o($d,"requireVerifyStrategy");function Dd(e,t){if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=ke(e.id,`${t}.id`),r=$e(e.wireModel,`${t}.wireModel`),i=$e(e.displayName,`${t}.displayName`),s=pe(e.contextWindow,`${t}.contextWindow`),a=pe(e.maxOutputTokens,`${t}.maxOutputTokens`),c=jo(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=pe(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),u=D(e.replayReasoningContent,`${t}.replayReasoningContent`),l=D(e.strictThinkingSignature,`${t}.strictThinkingSignature`),f=pe(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:_n(e.reasoningCapability,`${t}.reasoningCapability`),p=Ko(e,t),g={id:n};return r!==void 0&&(g.wireModel=r),i!==void 0&&(g.displayName=i),s!==void 0&&(g.contextWindow=s),a!==void 0&&(g.maxOutputTokens=a),c!==void 0&&(g.maxOutputTokensField=c),d!==void 0&&(g.thinkingBudgetCap=d),m!==void 0&&(g.reasoningCapability=m),p!==void 0&&(g.reasoningProfile=p),u!==void 0&&(g.replayReasoningContent=u),l!==void 0&&(g.strictThinkingSignature=l),f!==void 0&&(g.streamMaxDurationMs=f),g}o(Dd,"validateModelDescriptor");function Ld(e,t){if(e===void 0)return;if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=_n(i,`${t}.${r}`);return n}o(Ld,"validateModelReasoningCapabilities");function Fd(e,t){if(!ne(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=D(e.cliBridge,`providers.${t}.cliBridge`),r=ke(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=_n(e.reasoningCapability,`providers.${t}.reasoningCapability`),s=Ko(e,`providers.${t}`),a=Nd(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=$d(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=pe(e.contextWindow,`providers.${t}.contextWindow`),u=pe(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),l=jo(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),f=pe(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=D(e.supportsThinking,`providers.${t}.supportsThinking`),p=Ld(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),g=$e(e.model,`providers.${t}.model`);if(n&&(g!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&g===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let v;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);v=e.models.map((h,b)=>Dd(h,`providers.${t}.models[${b}]`));let y=new Set([...g===void 0?[]:[g],...v.map(h=>h.id)]);for(let[h,b]of v.entries())if(b.wireModel!==void 0&&!y.has(b.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${h}].wireModel must reference a declared model, got ${JSON.stringify(b.wireModel)}`)}let w={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return s!==void 0&&(w.reasoningProfile=s),g!==void 0&&(w.model=g),v!==void 0&&(w.models=v),d!==void 0&&(w.contextWindow=d),u!==void 0&&(w.maxOutputTokens=u),l!==void 0&&(w.maxOutputTokensField=l),f!==void 0&&(w.thinkingBudgetCap=f),m!==void 0&&(w.supportsThinking=m),p!==void 0&&(w.modelReasoningCapabilities=p),n&&(w.cliBridge=!0),w}o(Fd,"validateProviderEntry");function Bo(e){if(!ne(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=ke(e.updatedAt,"updatedAt");if(!ne(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=Fd(i,r);return{version:1,updatedAt:t,providers:n}}o(Bo,"validateProviderCapabilitiesJson");var Xd=Object.freeze({native:tt,"image-input-native":wo,"cli-bridge":Mt,"image-input-cli-bridge":vo}),Dt=null;function Ud(){if(process.env.KODAX_BUNDLED==="true")return De.join(De.dirname(process.execPath),"provider-capabilities.json");let e=De.dirname(Bd(import.meta.url)),t=[De.join(e,"provider-capabilities.json"),De.join(De.dirname(e),"provider-capabilities.json")];for(let n of t)if(jd(n))return n;return t[0]}o(Ud,"resolveJsonPath");function Wd(e){if(e.models){for(let t of e.models)t.reasoningProfile&&Xo(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&Xo(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}o(Wd,"deepFreezeSnapshot");function Xo(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}o(Xo,"freezeReasoningProfile");function Hd(e){if(e==="gemini-cli"){let t=Ne();return{model:t,models:rt().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Oe();return{model:t,models:nt().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}o(Hd,"resolveCliBridgeModels");function zd(e,t){let n=Xd[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=Hd(e),s={model:i.model,models:i.models,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(s.reasoningProfile=t.reasoningProfile),t.supportsThinking!==void 0&&(s.supportsThinking=t.supportsThinking),s}let r={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(r.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(r.models=t.models),t.modelReasoningCapabilities!==void 0&&(r.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(r.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(r.maxOutputTokens=t.maxOutputTokens),t.maxOutputTokensField!==void 0&&(r.maxOutputTokensField=t.maxOutputTokensField),t.thinkingBudgetCap!==void 0&&(r.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(r.supportsThinking=t.supportsThinking),r}o(zd,"buildSnapshot");function Uo(){if(Dt)return Dt;let e=Ud(),t;try{let i=Kd(e,"utf8");t=JSON.parse(i)}catch(i){let s=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${s}`)}let n=Bo(t),r={};for(let[i,s]of Object.entries(n.providers))r[i]=Wd(zd(i,s));return Dt=Object.freeze(r),Dt}o(Uo,"getProviderSnapshots");import px from"@anthropic-ai/sdk";var Lt=Uo();var Wo=process.env.KODAX_PROVIDER??"zhipu-coding";var Su=[];function z(e){let t=Pt(e),n=Su.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${ai(t)}
|
|
90
|
-
`)}catch{}}o(z,"emitKodaXDiagnostic");function ai(e){let t=Pt(e),n=
|
|
89
|
+
}`;import Co from"node:fs";import To from"node:os";import Ro from"node:path";var Sd="gpt-5.4",Ed="auto-gemini-3",Id=["gpt-5.4","gpt-5.3-codex","gpt-5.3-codex-spark"],Cd=["auto-gemini-3","gemini-3.1-pro-preview","gemini-3-flash-preview","gemini-2.5-pro","gemini-2.5-flash"];function _o(e){let t=new Set,n=[];for(let r of e){let i=r.trim();if(!i)continue;let s=i.toLowerCase();t.has(s)||(t.add(s),n.push(i))}return n}o(_o,"dedupePreserveOrder");function Td(){let e=Ro.join(To.homedir(),".codex","config.toml");try{return Co.readFileSync(e,"utf8").match(/^\s*model\s*=\s*"([^"]+)"/m)?.[1]?.trim()||null}catch{return null}}o(Td,"readCodexConfiguredModel");function Rd(){let e=Ro.join(To.homedir(),".gemini","settings.json");try{let t=JSON.parse(Co.readFileSync(e,"utf8")),n=typeof t.model=="string"?t.model.trim():"";return n||(typeof t.general?.model=="string"?t.general.model.trim():"")||null}catch{return null}}o(Rd,"readGeminiConfiguredModel");function Oe(){return Td()||Sd}o(Oe,"getCodexCliDefaultModel");function Ne(){return Rd()||Ed}o(Ne,"getGeminiCliDefaultModel");function nt(){return _o([Oe(),...Id])}o(nt,"getCodexCliKnownModels");function rt(){return _o([Ne(),...Cd])}o(rt,"getGeminiCliKnownModels");var Rk=Ne(),_k=rt();var Bk=Oe(),Xk=nt();import{existsSync as jd,readFileSync as Kd}from"node:fs";import De from"node:path";import{fileURLToPath as Bd}from"node:url";var Ao=["none","prompt-only","native-effort","native-budget","native-toggle","native-adaptive","unknown"],Po=["openai-responses-effort","openai-chat-effort","codex-cli-config","anthropic-output-effort","anthropic-reasoning-effort","provider-budget","provider-toggle","prompt-only","none"],Mo=["anthropic-adaptive","anthropic-budget","provider-budget","provider-toggle","none"],Oo=["zai-glm-5.2","zai-glm-toggle","deepseek-v4-flash-openai","deepseek-v4-pro-openai","deepseek-v4-openai","deepseek-v4-anthropic","deepseek-toggle","kimi-k3","kimi-k2.7-code","kimi-hybrid-toggle","minimax-m3","minimax-m2-always","mimo-v2.5-toggle","qwen-hybrid-thinking","openai-chat-reasoning","openai-responses-reasoning","codex-cli-effort","claude-adaptive-xhigh","claude-adaptive-max","anthropic-budget","generic-thinking-toggle","none"],No=["max_tokens","max_completion_tokens"],$o=["native","image-input-native","cli-bridge","image-input-cli-bridge"],Do=["count-tokens","models-list","minimal-message","unsupported"];function ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}o(ne,"isPlainObject");function ke(e,t){if(typeof e!="string"||e.length===0)throw new Error(`provider-capabilities.json: ${t} must be a non-empty string`);return e}o(ke,"requireString");function $e(e,t){if(e!==void 0)return ke(e,t)}o($e,"optionalString");function jo(e,t){if(e!==void 0){if(typeof e!="string"||!No.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${No.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(jo,"optionalMaxOutputTokensField");function pe(e,t){if(e!==void 0){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`provider-capabilities.json: ${t} must be a non-negative finite number`);return e}}o(pe,"optionalNumber");function D(e,t){if(e!==void 0){if(typeof e!="boolean")throw new Error(`provider-capabilities.json: ${t} must be a boolean`);return e}}o(D,"optionalBoolean");function Lo(e,t){if(e!==void 0){if(!Array.isArray(e))throw new Error(`provider-capabilities.json: ${t} must be an array`);return e.map((n,r)=>ke(n,`${t}[${r}]`))}}o(Lo,"optionalStringArray");function Ad(e,t){if(e===void 0)return;if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=ke(i,`${t}.${r}`);return n}o(Ad,"optionalStringMap");function Pd(e,t){if(e!==void 0){if(typeof e!="string"||!Oo.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Oo.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(Pd,"optionalReasoningPreset");function _n(e,t){if(typeof e!="string"||!Ao.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Ao.join(", ")}, got ${JSON.stringify(e)}`);return e}o(_n,"requireReasoningCapability");function Md(e,t){if(typeof e!="string"||!Po.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Po.join(", ")}, got ${JSON.stringify(e)}`);return e}o(Md,"requireEffortStrategy");function Od(e,t){if(e!==void 0){if(typeof e!="string"||!Mo.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Mo.join(", ")}, got ${JSON.stringify(e)}`);return e}}o(Od,"optionalThinkingStrategy");function Fo(e,t){if(e===void 0)return;if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=Md(e.effortStrategy,`${t}.effortStrategy`),r=Pd(e.reasoningPreset,`${t}.reasoningPreset`),i=Od(e.thinkingStrategy,`${t}.thinkingStrategy`),s=$e(e.defaultEffort,`${t}.defaultEffort`),a=Ad(e.effortAliases,`${t}.effortAliases`),c=Lo(e.disabledEfforts,`${t}.disabledEfforts`),d=Lo(e.localRejectEfforts,`${t}.localRejectEfforts`),u=D(e.allowCustomEffort,`${t}.allowCustomEffort`),l=D(e.supportsReasoningEffort,`${t}.supportsReasoningEffort`),f=D(e.supportsReasoningSummary,`${t}.supportsReasoningSummary`),m=D(e.supportsEncryptedReasoningReplay,`${t}.supportsEncryptedReasoningReplay`),p=D(e.supportsAdaptiveThinking,`${t}.supportsAdaptiveThinking`),g=D(e.supportsManualThinkingBudget,`${t}.supportsManualThinkingBudget`),v=D(e.supportsDisabledThinking,`${t}.supportsDisabledThinking`),w=D(e.requiresEffortBetaHeader,`${t}.requiresEffortBetaHeader`),y={effortStrategy:n};if(r!==void 0&&(y.reasoningPreset=r),i!==void 0&&(y.thinkingStrategy=i),s!==void 0&&(y.defaultEffort=s),a!==void 0&&(y.effortAliases=a),c!==void 0&&(y.disabledEfforts=c),d!==void 0&&(y.localRejectEfforts=d),e.supportedEfforts!==void 0){if(!Array.isArray(e.supportedEfforts))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts must be an array`);y.supportedEfforts=e.supportedEfforts.map((h,b)=>{if(!ne(h))throw new Error(`provider-capabilities.json: ${t}.supportedEfforts[${b}] must be an object`);return{value:ke(h.value,`${t}.supportedEfforts[${b}].value`),...$e(h.description,`${t}.supportedEfforts[${b}].description`)!==void 0?{description:$e(h.description,`${t}.supportedEfforts[${b}].description`)}:{},...D(h.isDefault,`${t}.supportedEfforts[${b}].isDefault`)!==void 0?{isDefault:D(h.isDefault,`${t}.supportedEfforts[${b}].isDefault`)}:{},...D(h.isUserVisible,`${t}.supportedEfforts[${b}].isUserVisible`)!==void 0?{isUserVisible:D(h.isUserVisible,`${t}.supportedEfforts[${b}].isUserVisible`)}:{}}})}if(e.budgetByEffort!==void 0){if(!ne(e.budgetByEffort))throw new Error(`provider-capabilities.json: ${t}.budgetByEffort must be an object`);let h={};for(let[b,I]of Object.entries(e.budgetByEffort))h[b]=pe(I,`${t}.budgetByEffort.${b}`)??0;y.budgetByEffort=h}return u!==void 0&&(y.allowCustomEffort=u),l!==void 0&&(y.supportsReasoningEffort=l),f!==void 0&&(y.supportsReasoningSummary=f),m!==void 0&&(y.supportsEncryptedReasoningReplay=m),p!==void 0&&(y.supportsAdaptiveThinking=p),g!==void 0&&(y.supportsManualThinkingBudget=g),v!==void 0&&(y.supportsDisabledThinking=v),w!==void 0&&(y.requiresEffortBetaHeader=w),y}o(Fo,"validateReasoningProfile");function Ko(e,t){let n=e.reasoningProfile,r=e.reasoningCapabilityV2;if(n!==void 0&&r!==void 0)throw new Error(`provider-capabilities.json: ${t} must not define both reasoningProfile and deprecated reasoningCapabilityV2`);return n!==void 0?Fo(n,`${t}.reasoningProfile`):Fo(r,`${t}.reasoningCapabilityV2`)}o(Ko,"validateReasoningProfileField");function Nd(e,t){if(typeof e!="string"||!$o.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${$o.join(", ")}, got ${JSON.stringify(e)}`);return e}o(Nd,"requireProfileName");function $d(e,t){if(typeof e!="string"||!Do.includes(e))throw new Error(`provider-capabilities.json: ${t} must be one of ${Do.join(", ")}, got ${JSON.stringify(e)}`);return e}o($d,"requireVerifyStrategy");function Dd(e,t){if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n=ke(e.id,`${t}.id`),r=$e(e.wireModel,`${t}.wireModel`),i=$e(e.displayName,`${t}.displayName`),s=pe(e.contextWindow,`${t}.contextWindow`),a=pe(e.maxOutputTokens,`${t}.maxOutputTokens`),c=jo(e.maxOutputTokensField,`${t}.maxOutputTokensField`),d=pe(e.thinkingBudgetCap,`${t}.thinkingBudgetCap`),u=D(e.replayReasoningContent,`${t}.replayReasoningContent`),l=D(e.strictThinkingSignature,`${t}.strictThinkingSignature`),f=pe(e.streamMaxDurationMs,`${t}.streamMaxDurationMs`),m=e.reasoningCapability===void 0?void 0:_n(e.reasoningCapability,`${t}.reasoningCapability`),p=Ko(e,t),g={id:n};return r!==void 0&&(g.wireModel=r),i!==void 0&&(g.displayName=i),s!==void 0&&(g.contextWindow=s),a!==void 0&&(g.maxOutputTokens=a),c!==void 0&&(g.maxOutputTokensField=c),d!==void 0&&(g.thinkingBudgetCap=d),m!==void 0&&(g.reasoningCapability=m),p!==void 0&&(g.reasoningProfile=p),u!==void 0&&(g.replayReasoningContent=u),l!==void 0&&(g.strictThinkingSignature=l),f!==void 0&&(g.streamMaxDurationMs=f),g}o(Dd,"validateModelDescriptor");function Ld(e,t){if(e===void 0)return;if(!ne(e))throw new Error(`provider-capabilities.json: ${t} must be an object`);let n={};for(let[r,i]of Object.entries(e))n[r]=_n(i,`${t}.${r}`);return n}o(Ld,"validateModelReasoningCapabilities");function Fd(e,t){if(!ne(e))throw new Error(`provider-capabilities.json: providers.${t} must be an object`);let n=D(e.cliBridge,`providers.${t}.cliBridge`),r=ke(e.apiKeyEnv,`providers.${t}.apiKeyEnv`),i=_n(e.reasoningCapability,`providers.${t}.reasoningCapability`),s=Ko(e,`providers.${t}`),a=Nd(e.capabilityProfile,`providers.${t}.capabilityProfile`),c=$d(e.verifyStrategy,`providers.${t}.verifyStrategy`);if(n&&c!=="unsupported")throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but verifyStrategy="${c}" \u2014 must be "unsupported" (CLI binary owns credentials)`);let d=pe(e.contextWindow,`providers.${t}.contextWindow`),u=pe(e.maxOutputTokens,`providers.${t}.maxOutputTokens`),l=jo(e.maxOutputTokensField,`providers.${t}.maxOutputTokensField`),f=pe(e.thinkingBudgetCap,`providers.${t}.thinkingBudgetCap`),m=D(e.supportsThinking,`providers.${t}.supportsThinking`),p=Ld(e.modelReasoningCapabilities,`providers.${t}.modelReasoningCapabilities`),g=$e(e.model,`providers.${t}.model`);if(n&&(g!==void 0||e.models!==void 0))throw new Error(`provider-capabilities.json: providers.${t} is a cliBridge entry but defines model/models \u2014 must be omitted (filled at load time)`);if(!n&&g===void 0)throw new Error(`provider-capabilities.json: providers.${t}.model is required (only cliBridge entries may omit)`);let v;if(e.models!==void 0){if(!Array.isArray(e.models))throw new Error(`provider-capabilities.json: providers.${t}.models must be an array`);v=e.models.map((h,b)=>Dd(h,`providers.${t}.models[${b}]`));let y=new Set([...g===void 0?[]:[g],...v.map(h=>h.id)]);for(let[h,b]of v.entries())if(b.wireModel!==void 0&&!y.has(b.wireModel))throw new Error(`provider-capabilities.json: providers.${t}.models[${h}].wireModel must reference a declared model, got ${JSON.stringify(b.wireModel)}`)}let w={apiKeyEnv:r,reasoningCapability:i,capabilityProfile:a,verifyStrategy:c};return s!==void 0&&(w.reasoningProfile=s),g!==void 0&&(w.model=g),v!==void 0&&(w.models=v),d!==void 0&&(w.contextWindow=d),u!==void 0&&(w.maxOutputTokens=u),l!==void 0&&(w.maxOutputTokensField=l),f!==void 0&&(w.thinkingBudgetCap=f),m!==void 0&&(w.supportsThinking=m),p!==void 0&&(w.modelReasoningCapabilities=p),n&&(w.cliBridge=!0),w}o(Fd,"validateProviderEntry");function Bo(e){if(!ne(e))throw new Error("provider-capabilities.json: root must be an object");if(e.version!==1)throw new Error(`provider-capabilities.json: version must be 1, got ${JSON.stringify(e.version)}`);let t=ke(e.updatedAt,"updatedAt");if(!ne(e.providers))throw new Error("provider-capabilities.json: providers must be an object");let n={};for(let[r,i]of Object.entries(e.providers))n[r]=Fd(i,r);return{version:1,updatedAt:t,providers:n}}o(Bo,"validateProviderCapabilitiesJson");var Xd=Object.freeze({native:tt,"image-input-native":wo,"cli-bridge":Mt,"image-input-cli-bridge":vo}),Dt=null;function Ud(){if(process.env.KODAX_BUNDLED==="true")return De.join(De.dirname(process.execPath),"provider-capabilities.json");let e=De.dirname(Bd(import.meta.url)),t=[De.join(e,"provider-capabilities.json"),De.join(De.dirname(e),"provider-capabilities.json")];for(let n of t)if(jd(n))return n;return t[0]}o(Ud,"resolveJsonPath");function Wd(e){if(e.models){for(let t of e.models)t.reasoningProfile&&Xo(t.reasoningProfile);for(let t of e.models)Object.freeze(t);Object.freeze(e.models)}return e.reasoningProfile&&Xo(e.reasoningProfile),e.modelReasoningCapabilities&&Object.freeze(e.modelReasoningCapabilities),Object.freeze(e)}o(Wd,"deepFreezeSnapshot");function Xo(e){if(e.supportedEfforts){for(let t of e.supportedEfforts)Object.freeze(t);Object.freeze(e.supportedEfforts)}e.budgetByEffort&&Object.freeze(e.budgetByEffort),e.effortAliases&&Object.freeze(e.effortAliases),e.disabledEfforts&&Object.freeze(e.disabledEfforts),e.localRejectEfforts&&Object.freeze(e.localRejectEfforts),Object.freeze(e)}o(Xo,"freezeReasoningProfile");function Hd(e){if(e==="gemini-cli"){let t=Ne();return{model:t,models:rt().filter(n=>n!==t).map(n=>({id:n}))}}if(e==="codex-cli"){let t=Oe();return{model:t,models:nt().filter(n=>n!==t).map(n=>({id:n}))}}throw new Error(`provider-capabilities loader: unknown cliBridge provider '${e}'`)}o(Hd,"resolveCliBridgeModels");function zd(e,t){let n=Xd[t.capabilityProfile];if(!n)throw new Error(`provider-capabilities loader: unknown capabilityProfile '${t.capabilityProfile}' for provider '${e}'`);if(t.cliBridge){let i=Hd(e),s={model:i.model,models:i.models,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(s.reasoningProfile=t.reasoningProfile),t.supportsThinking!==void 0&&(s.supportsThinking=t.supportsThinking),s}let r={model:t.model,apiKeyEnv:t.apiKeyEnv,reasoningCapability:t.reasoningCapability,capabilityProfile:n,verifyStrategy:t.verifyStrategy};return t.reasoningProfile!==void 0&&(r.reasoningProfile=t.reasoningProfile),t.models!==void 0&&(r.models=t.models),t.modelReasoningCapabilities!==void 0&&(r.modelReasoningCapabilities=t.modelReasoningCapabilities),t.contextWindow!==void 0&&(r.contextWindow=t.contextWindow),t.maxOutputTokens!==void 0&&(r.maxOutputTokens=t.maxOutputTokens),t.maxOutputTokensField!==void 0&&(r.maxOutputTokensField=t.maxOutputTokensField),t.thinkingBudgetCap!==void 0&&(r.thinkingBudgetCap=t.thinkingBudgetCap),t.supportsThinking!==void 0&&(r.supportsThinking=t.supportsThinking),r}o(zd,"buildSnapshot");function Uo(){if(Dt)return Dt;let e=Ud(),t;try{let i=Kd(e,"utf8");t=JSON.parse(i)}catch(i){let s=i instanceof Error?i.message:String(i);throw new Error(`provider-capabilities loader: failed to read ${e}: ${s}`)}let n=Bo(t),r={};for(let[i,s]of Object.entries(n.providers))r[i]=Wd(zd(i,s));return Dt=Object.freeze(r),Dt}o(Uo,"getProviderSnapshots");import fx from"@anthropic-ai/sdk";var Lt=Uo();var Wo=process.env.KODAX_PROVIDER??"zhipu-coding";var Eu=[];function z(e){let t=Pt(e),n=Eu.at(-1)?.sink;if(n){try{n(t)}catch{}return}if(process.env.KODAX_DIAGNOSTICS_STDERR==="1")try{process.stderr.write(`${ai(t)}
|
|
90
|
+
`)}catch{}}o(z,"emitKodaXDiagnostic");function ai(e){let t=Pt(e),n=Iu(t.detail);return`[${t.source}] ${t.level}: ${t.message}${n?` ${n}`:""}`}o(ai,"formatKodaXDiagnostic");function Iu(e){if(e===void 0)return"";if(e instanceof Error)return e.stack??e.message;if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}o(Iu,"formatDiagnosticDetail");var ot=class e{static{o(this,"SpanImpl")}id;traceId;parentId;name;data;startedAt;_endedAt;_error;_children=[];now;nextSpanId;onChildCreated;onSpanEnd;_ended=!1;constructor(t){this.id=t.id,this.traceId=t.traceId,this.parentId=t.parentId,this.name=t.name,this.data=t.data,this.now=t.now??(()=>Date.now()),this.startedAt=t.startedAt??this.now(),this.nextSpanId=t.nextSpanId??Cu,this.onChildCreated=t.onChildCreated,this.onSpanEnd=t.onSpanEnd}get endedAt(){return this._endedAt}get error(){return this._error}get children(){return this._children}addChild(t,n){let r=new e({id:this.nextSpanId(),traceId:this.traceId,parentId:this.id,name:t,data:n,now:this.now,nextSpanId:this.nextSpanId,onChildCreated:this.onChildCreated,onSpanEnd:this.onSpanEnd});return this._children.push(r),this.onChildCreated&&this.onChildCreated(r),r}setError(t){t instanceof Error?this._error={message:t.message,stack:t.stack}:this._error=t}end(){this._ended||(this._ended=!0,this._endedAt=this.now(),this.onSpanEnd&&this.onSpanEnd(this))}},ci=0;function Cu(){ci+=1;let e=Math.random().toString(36).slice(2,8);return`span-${Date.now()}-${ci}-${e}`}o(Cu,"defaultNextSpanId");var di=0;function Tu(){di+=1;let e=Math.random().toString(36).slice(2,8);return`trace-${Date.now()}-${di}-${e}`}o(Tu,"defaultNextTraceId");function Dn(e={}){let t=e.now??(()=>Date.now()),n=e.id??(e.nextTraceId??Tu)(),r=t(),i=e.name??"trace",s=e.metadata??new Map,a=e.rootSpanData??{kind:"agent",agentName:i},c=!1,d,u,l=new ot({id:`${n}-root`,traceId:n,name:i,data:a,startedAt:r,now:t,nextSpanId:e.nextSpanId,onChildCreated:e.onSpanStart,onSpanEnd:e.onSpanEnd});e.onSpanStart&&e.onSpanStart(l);let f={id:n,startedAt:r,rootSpan:l,metadata:s,get endedAt(){return d},get error(){return u??l.error},end(){c||(c=!0,d=t(),l.end(),e.onTraceEnd&&e.onTraceEnd(f))}};return f}o(Dn,"createTrace");var Ln=[];function Fn(e){for(let t of Ln)try{t.onSpanStart(e)}catch{}}o(Fn,"_emitSpanStart");function jn(e){for(let t of Ln)try{t.onSpanEnd(e)}catch{}}o(jn,"_emitSpanEnd");function Kn(e){for(let t of Ln)try{t.onTraceEnd(e)}catch{}}o(Kn,"_emitTraceEnd");var Ft=class{static{o(this,"Tracer")}options;constructor(t={}){this.options=t}startTrace(t={}){return Dn({id:t.id,name:t.name,rootSpanData:t.rootSpanData,metadata:t.metadata,now:this.options.now,nextSpanId:this.options.nextSpanId,nextTraceId:this.options.nextTraceId,onSpanStart:Fn,onSpanEnd:jn,onTraceEnd:Kn})}},ui=new Ft;var Ou=["read","edit","bash:test","bash:read-only","bash:mutating","bash:network","subagent"];var ZE=new Set(Ou);var WI=String.raw`
|
|
91
91
|
using System;
|
|
92
92
|
using System.Runtime.InteropServices;
|
|
93
93
|
using System.Text;
|
|
@@ -174,26 +174,26 @@ public static class KodaXNativeProcessSnapshot {
|
|
|
174
174
|
CloseHandle(snapshot);
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
}`,
|
|
177
|
+
}`,HI=Object.freeze({status:"terminated"}),zI=Object.freeze({status:"already-exited"}),qI=Object.freeze({status:"unknown"});import{Jimp as xC}from"jimp";var dl=Math.floor(3.75*1024*1024);var ll=1440*60*1e3;import{fileURLToPath as Fl}from"url";import{dirname as jl}from"path";var Kl=Fl(import.meta.url),IR=jl(Kl);import{readFile as Hl,readdir as zl}from"fs/promises";import{join as xe,relative as ql}from"path";import Si from"yaml";var Bl=["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","Notification"];function Xl(e){let t=e.split(`
|
|
178
178
|
`),n=[];for(let r of t){let i=r.indexOf(":");if(i>0){let s=r.slice(0,i).trim(),a=r.slice(i+1).trim();if(a.includes(":")&&!a.startsWith('"')&&!a.startsWith("'")&&!a.startsWith("[")&&!a.startsWith("|")&&!a.startsWith(">")){n.push(`${s}: |-`),n.push(` ${a}`);continue}}n.push(r)}return n.join(`
|
|
179
|
-
`)}o(
|
|
179
|
+
`)}o(Xl,"sanitizeYaml");function Ei(e,t={}){let n=e.replace(/^/,"").replace(/\r\n/g,`
|
|
180
180
|
`).replace(/\r/g,`
|
|
181
181
|
`).trimStart();if(!n.startsWith(`---
|
|
182
182
|
`)){if(t.throwOnMissing)throw new Error("Invalid markdown: missing YAML frontmatter");return[null,e]}let r=n.indexOf(`
|
|
183
183
|
---
|
|
184
184
|
`,4);if(r===-1){let c=n.indexOf(`
|
|
185
|
-
---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),s=n.slice(r+5).trim(),a;try{a=Si.parse(i)??{}}catch{a=Si.parse(
|
|
186
|
-
`)}o(
|
|
185
|
+
---`,4);c!==-1&&c===n.length-4&&(r=c)}if(r===-1){if(t.throwOnMissing)throw new Error("Invalid markdown: unclosed YAML frontmatter");return[null,e]}let i=n.slice(4,r),s=n.slice(r+5).trim(),a;try{a=Si.parse(i)??{}}catch{a=Si.parse(Xl(i))??{}}if(a==null||typeof a!="object"||Array.isArray(a)){if(t.throwOnMissing)throw new Error("Invalid markdown: YAML frontmatter must be an object");return[null,s]}return[a,s]}o(Ei,"parseYamlFrontmatter");function Ii(e){if(typeof e=="string"){let t=e.trim();return t.length>0?t:void 0}if(Array.isArray(e)){let t=e.map(n=>String(n).trim()).filter(n=>n.length>0);return t.length>0?t.join(", "):void 0}}o(Ii,"normalizeAllowedToolsString");function Ul(e){if(typeof e=="string"){let t=e.trim();return t?{command:t}:void 0}if(e&&typeof e=="object"&&!Array.isArray(e)){let t=e,n=typeof t.command=="string"?t.command.trim():"";if(!n)return;let r=typeof t.matcher=="string"&&t.matcher.trim()?t.matcher.trim():void 0;return{command:n,matcher:r}}}o(Ul,"normalizeYamlHookEntry");function Wl(e){if(e==null)return;let n=(Array.isArray(e)?e:[e]).map(r=>Ul(r)).filter(r=>r!==void 0);return n.length>0?n:void 0}o(Wl,"normalizeYamlHookEntryList");function Ci(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n={};for(let r of Bl){let i=Wl(t[r]);i&&(n[r]=i)}return Object.keys(n).length>0?n:void 0}o(Ci,"normalizeYamlHookMap");function Ti(e){let[t,n]=Ei(e,{throwOnMissing:!0});if(!t)throw new Error("Invalid SKILL.md: YAML frontmatter must be an object");if(!t.name||typeof t.name!="string")throw new Error('Invalid SKILL.md: missing required "name" field');if(!t.description||typeof t.description!="string")throw new Error('Invalid SKILL.md: missing required "description" field');return{frontmatter:{name:t.name,description:t.description,disableModelInvocation:t["disable-model-invocation"]===!0,userInvocable:t["user-invocable"]!==!1,allowedTools:Ii(t["allowed-tools"]),context:t.context==="fork"?"fork":void 0,agent:typeof t.agent=="string"?t.agent:void 0,argumentHint:typeof t["argument-hint"]=="string"?t["argument-hint"]:void 0,model:typeof t.model=="string"?t.model:void 0,hooks:Ci(t.hooks),license:typeof t.license=="string"?t.license:void 0,compatibility:typeof t.compatibility=="string"?t.compatibility:void 0,metadata:t.metadata&&typeof t.metadata=="object"&&!Array.isArray(t.metadata)?t.metadata:void 0},body:n}}o(Ti,"parseSkillMarkdown");async function jt(e,t){let n=xe(e,"SKILL.md");try{let r=await Hl(n,"utf-8"),{frontmatter:i,body:s}=Ti(r),[a,c,d,u,l]=await Promise.all([Le(xe(e,"scripts")),Le(xe(e,"references")),Le(xe(e,"assets")),Le(xe(e,"templates")),Le(xe(e,"resources"))]);return{...i,path:e,skillFilePath:n,content:s,rawContent:s,loaded:!0,source:t,...a.length>0&&{scripts:a},...c.length>0&&{references:c},...d.length>0&&{assets:d},...u.length>0&&{templates:u},...l.length>0&&{resources:l}}}catch(r){return z({source:"agent:skills",level:"error",message:`Failed to load skill from ${e}.`,detail:r}),null}}o(jt,"loadFullSkill");async function Le(e,t=e){let n=[];try{let r=await zl(e,{withFileTypes:!0});r.sort((i,s)=>i.name.localeCompare(s.name));for(let i of r){let s=xe(e,i.name);if(i.isDirectory()){n.push(...await Le(s,t));continue}i.isFile()&&n.push({name:i.name,path:s,relativePath:ql(t,s).replace(/\\/g,"/")})}}catch{}return n}o(Le,"loadSkillFiles");var Ri=64*1024,_i=256*1024;var h_=1024*1024;var H_=16*1024;var eA=16*1024;import{execSync as Af}from"child_process";import Pf from"path";var Mf=new Set(["ls","cat","pwd","echo","whoami","date","which","whereis","tree","dir","type","get-childitem","get-content","select-string","get-location","grep","find","awk","sed","head","tail","less","more","wc","git status","git diff","git log","git show","git branch","git remote","git ls-files","git rev-parse","git grep","node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"]);function Wi(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\s+/g," ").toLowerCase();for(let n of Mf)if(t===n||t.startsWith(`${n} `)){if(n==="sed"&&t.split(/\s+/).some(s=>s.startsWith("-i")||s==="--in-place"))return!1;if(n==="awk"){let i=t.split(/\s+/);if(i.includes("-f")||i.includes("--file"))return!1}if(["node","npm","yarn","pnpm","tsc","python","pip","go","cargo","rustc"].includes(n)){let i=t.split(/\s+/).slice(1);if(i.length>0&&!i.every(s=>/^(-v|--version|-h|--help)$/.test(s)))return!1}return!0}return!1}o(Wi,"isSingleSafeDynamicContextCommand");function Of(e){if(!e||!e.trim())return!1;let t=e.trim().replace(/\\\r?\n/g," ");if(/[<>|;`]|\$\(|(?<!&)&(?!&)/.test(t)||t.includes("\\")&&Pf.sep!=="\\"&&t.replace(/\\ /g,"").includes("\\"))return!1;let r=t.split(/\s*&&\s*/);if(r.length===1)return Wi(r[0]);for(let i of r){let s=i?.trim();if(s&&!/^cd\s+/.test(s.toLowerCase())&&!Wi(s))return!1}return!0}o(Of,"isSafeDynamicContextCommand");function Hi(e){let t=[],n="",r=!1,i="";for(let s=0;s<e.length;s++){let a=e[s];r?a===i?r=!1:n+=a:a==='"'||a==="'"?(r=!0,i=a):a===" "?n&&(t.push(n),n=""):n+=a}return n&&t.push(n),t}o(Hi,"parseArguments");var Wt=class{static{o(this,"VariableResolver")}context;constructor(t){this.context=t}async resolve(t,n){let r=t,i=Hi(n);return r=this.resolvePositionalArgs(r,i),r=this.resolveArguments(r,n),r=this.resolveEnvVars(r),r=await this.resolveDynamicContext(r),r}resolvePositionalArgs(t,n){return t.replace(/\$(\d+)(?![a-zA-Z0-9_])/g,(r,i)=>{let s=parseInt(i,10);return n[s]??""})}resolveArguments(t,n){return t.replace(/\$ARGUMENTS/g,n)}resolveEnvVars(t){let n={...this.context.environment,CLAUDE_SESSION_ID:this.context.sessionId??"",KODAX_SESSION_ID:this.context.sessionId??"",KODAX_WORKING_DIR:this.context.workingDirectory};return t.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g,(r,i)=>n[i]??r)}async resolveDynamicContext(t){let n=/!`([^`]+)`/g,r=[],i;for(;(i=n.exec(t))!==null;)r.push({match:i[0],command:i[1]});if(r.length===0)return t;let s=t;for(let{match:a,command:c}of r)try{let d=await this.executeDynamicCommand(c);s=s.replace(a,d)}catch(d){let u=d instanceof Error?d.message:String(d);s=s.replace(a,`[Error: ${u}]`)}return s}async executeDynamicCommand(t){if(this.context.disableDynamicContext)throw new Error("Dynamic context disabled by host. Skill `!`cmd`` blocks are not allowed in this environment.");if(this.context.executeDynamicContext){let n=await this.context.executeDynamicContext(t,this.context.workingDirectory);return typeof n=="string"?n.trim():""}if(!Of(t))throw new Error("Unsafe dynamic context command blocked. Only simple read-only commands are allowed in !`...` blocks.");try{return Af(t,{cwd:this.context.workingDirectory,encoding:"utf-8",timeout:5e3,maxBuffer:1048576,windowsHide:!0}).trim()}catch(n){throw n instanceof Error?new Error(`Command failed: ${n.message}`):n}}};async function at(e,t,n){return new Wt(n).resolve(e,t)}o(at,"resolveSkillContent");function zi(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}o(zi,"escapeXml");var zn=120;function Ht(e){return e.replace(/\\/g,"/")}o(Ht,"formatDisplayPath");function Df(e){return[...(e.references??[]).map(t=>({folder:"references",file:t})),...(e.scripts??[]).map(t=>({folder:"scripts",file:t})),...(e.assets??[]).map(t=>({folder:"assets",file:t})),...(e.templates??[]).map(t=>({folder:"templates",file:t})),...(e.resources??[]).map(t=>({folder:"resources",file:t}))]}o(Df,"collectSupportFiles");function Lf(e){let t=Df(e);if(t.length===0)return[];let n=[["references",e.references],["scripts",e.scripts],["assets",e.assets],["templates",e.templates],["resources",e.resources]],r=["Skill support files are rooted at the skill root above. When the skill references `references/...`, `assets/...`, `scripts/...`, `templates/...`, or `resources/...`, read it from this skill root.","","Support roots:"];for(let[i,s]of n)s?.length&&r.push(`- ${i}/: ${Ht(`${e.path}/${i}`)} (${s.length} files)`);r.push("","Support file inventory:");for(let{folder:i,file:s}of t.slice(0,zn))r.push(`- ${i}/${s.relativePath}: ${Ht(s.path)}`);return t.length>zn&&r.push(`- ... ${t.length-zn} more files under ${Ht(e.path)}`),r}o(Lf,"buildSupportFileContext");function Ff(e,t,n){let r=[];r.push(`<skill name="${zi(e.name)}" location="${zi(e.path)}">`),r.push(""),r.push(`Skill root: ${Ht(e.path)}`),e.source==="builtin"?r.push("This is a built-in KodaX skill."):e.source==="project"?r.push("This is a project-defined skill. Project work paths are relative to the project root; skill support files are relative to the skill root above."):e.source==="user"&&r.push("This is a user-defined skill."),r.push("");let i=Lf(e);return i.length>0&&(r.push(...i),r.push("")),r.push(t),n.trim()&&(r.push(""),r.push(`User provided arguments: ${n}`)),r.push(""),r.push("</skill>"),r.join(`
|
|
186
|
+
`)}o(Ff,"buildSkillBlock");async function qn(e,t,n){let r=await at(e.content,t,n);return{content:Ff(e,r,t),disableModelInvocation:e.disableModelInvocation??!1,skill:e}}o(qn,"expandSkillForLLM");import{writeFile as Ji}from"node:fs/promises";import he from"node:path";import{existsSync as jf}from"node:fs";import{mkdir as Kf,readFile as Vn,readdir as Bf,stat as Vi,writeFile as QA}from"node:fs/promises";import Xf from"node:os";import re from"node:path";import{fileURLToPath as Gi,pathToFileURL as Uf}from"node:url";import Wf from"yaml";var Fe=null;async function me(){if(Fe)return Fe;let e=re.dirname(Gi(import.meta.url)),t=[],n=re.resolve(e,"../../../index.js");if(jf(n))return Fe=await import(Uf(n).href),Fe;t.push(`relative SDK path not found: ${n}`);try{return Fe=await import(["@kodax-ai","kodax"].join("/")),Fe}catch(r){t.push(`bare-name @kodax-ai/kodax failed: ${r?.code??r?.message}`)}throw new Error(`Cannot locate KodaX SDK from helper script ${import.meta.url}.
|
|
187
187
|
Attempted:
|
|
188
188
|
- ${t.join(`
|
|
189
|
-
- `)}`)}o(me,"loadKodaXSDK");function
|
|
189
|
+
- `)}`)}o(me,"loadKodaXSDK");function Hf(e){let t=e.replace(/^\uFEFF/,"").replace(/\r\n/g,`
|
|
190
190
|
`).replace(/\r/g,`
|
|
191
191
|
`).trimStart();if(!t.startsWith(`---
|
|
192
192
|
`))throw new Error("SKILL.md missing YAML frontmatter");let n=t.indexOf(`
|
|
193
193
|
---
|
|
194
|
-
`,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}o(
|
|
194
|
+
`,4);if(n===-1)throw new Error("SKILL.md has unclosed YAML frontmatter");return{yamlText:t.slice(4,n),body:t.slice(n+5).trim()}}o(Hf,"extractFrontmatter");function zt(e){let{yamlText:t,body:n}=Hf(e),r=Wf.parse(t);if(!r||typeof r!="object"||Array.isArray(r))throw new Error("Frontmatter must be a YAML object");return{frontmatter:r,body:n}}o(zt,"parseSkillMarkdown");async function dt(e){let t=re.join(e,"SKILL.md");if(!(await Vi(t).catch(()=>null))?.isFile())throw new Error(`SKILL.md not found in ${e}`);let r=await Vn(t,"utf8"),{frontmatter:i,body:s}=zt(r);return{skillDir:re.resolve(e),skillMdPath:t,rawContent:r,body:s,frontmatter:i}}o(dt,"loadSkill");async function ut(e){try{return await Vi(e),!0}catch{return!1}}o(ut,"pathExists");function qt(e){if(!e.length)return{mean:0,stddev:0,min:0,max:0};let t=e.reduce((r,i)=>r+i,0)/e.length,n=e.length>1?e.reduce((r,i)=>r+(i-t)**2,0)/(e.length-1):0;return{mean:ct(t),stddev:ct(Math.sqrt(n)),min:ct(Math.min(...e)),max:ct(Math.max(...e))}}o(qt,"calculateStats");function ct(e,t=4){return Number(e.toFixed(t))}o(ct,"roundNumber");function Vt(e){return e>=0?`+${e.toFixed(4)}`:e.toFixed(4)}o(Vt,"formatDelta");function qi(e){try{return JSON.parse(e)}catch{return null}}o(qi,"safeJsonParse");function je(e){let t=qi(e.trim());if(t&&typeof t=="object")return t;let n=e.indexOf("{"),r=e.lastIndexOf("}");return n===-1||r===-1||r<=n?null:qi(e.slice(n,r+1))}o(je,"extractJsonObject");async function Y(e,t=null){try{return JSON.parse(await Vn(e,"utf8"))}catch{return t}}o(Y,"readJsonFile");async function Ke(e,t){let n=re.dirname(Gi(e));return Vn(re.resolve(n,t),"utf8")}o(Ke,"loadRelativeText");function L(e,t=12e3){let n=typeof e=="string"?e:String(e??"");if(n.length<=t)return n;let r=n.length-t;return`${n.slice(0,t)}
|
|
195
195
|
|
|
196
|
-
[truncated ${r} chars]`}o(L,"truncateText");function Yi(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?ct(n/t):0}}o(Yi,"computePassSummary");async function Gn(e,t=e,n=[]){let r=await
|
|
196
|
+
[truncated ${r} chars]`}o(L,"truncateText");function Yi(e){let t=Array.isArray(e)?e.length:0,n=Array.isArray(e)?e.filter(i=>i?.passed===!0).length:0,r=Math.max(t-n,0);return{passed:n,failed:r,total:t,pass_rate:t>0?ct(n/t):0}}o(Yi,"computePassSummary");async function Gn(e,t=e,n=[]){let r=await Bf(t,{withFileTypes:!0}).catch(()=>[]);for(let i of r.sort((s,a)=>s.name.localeCompare(a.name))){let s=re.join(t,i.name);if(i.isDirectory()){await Gn(e,s,n);continue}i.isFile()&&n.push({absolutePath:s,relativePath:re.relative(e,s).replace(/\\/g,"/")})}return n}o(Gn,"collectFiles");function lt(){return re.join(Xf.homedir(),".kodax","skills")}o(lt,"getDefaultSkillsDir");async function F(e){return await Kf(e,{recursive:!0}),e}o(F,"ensureDirectory");function zf(e){return e.split("-").filter(Boolean).map(t=>t[0]?.toUpperCase()+t.slice(1)).join(" ")}o(zf,"titleFromSlug");function qf(e,t){let n=zf(e);return`---
|
|
197
197
|
name: ${e}
|
|
198
198
|
description: ${t}
|
|
199
199
|
user-invocable: true
|
|
@@ -222,10 +222,10 @@ Describe the task this skill handles, the trigger boundary, and the expected out
|
|
|
222
222
|
- Put deeper guidance in \`references/\`.
|
|
223
223
|
- Put reusable templates or static files in \`assets/\`.
|
|
224
224
|
- Put repeatable helper scripts in \`scripts/\`.
|
|
225
|
-
`}o(
|
|
226
|
-
`,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}o(
|
|
225
|
+
`}o(qf,"renderSkillTemplate");function Vf(e){return JSON.stringify({skill_name:e,evals:[{id:1,prompt:"TODO: Add a realistic user request to evaluate this skill.",expected_output:"Describe what a successful result should accomplish.",files:[],assertions:[]}]},null,2)}o(Vf,"renderEvalTemplate");async function Gf(e){let t=he.resolve(e.baseDir??lt()),n=he.join(t,e.name),r=e.description??`Describe what ${e.name} does and when it should be used.`;if(await ut(n)&&!e.force)throw new Error(`Skill directory already exists: ${n}`);return await F(n),await F(he.join(n,"references")),await F(he.join(n,"assets")),await F(he.join(n,"scripts")),await Ji(he.join(n,"SKILL.md"),qf(e.name,r),"utf8"),e.includeEvals!==!1&&(await F(he.join(n,"evals")),await Ji(he.join(n,"evals","evals.json"),`${Vf(e.name)}
|
|
226
|
+
`,"utf8")),{skillDir:n,created:["SKILL.md",...e.includeEvals!==!1?["evals/evals.json"]:[],"references/","assets/","scripts/"]}}o(Gf,"initSkill");function Yf(e){let t={name:e[2],baseDir:void 0,description:void 0,force:!1,includeEvals:!0};for(let n=3;n<e.length;n+=1){let r=e[n];(r==="--path"||r==="--dest")&&e[n+1]?t.baseDir=e[++n]:r==="--description"&&e[n+1]?t.description=e[++n]:r==="--force"?t.force=!0:r==="--no-evals"&&(t.includeEvals=!1)}return t}o(Yf,"parseArgs");async function Qi(e=process.argv){let t=Yf(e);t.name||(console.error("Usage: node scripts/init-skill.js <skill-name> [--path <skills-dir>] [--description <text>] [--force] [--no-evals]"),process.exit(1));let n=await Gf(t);console.log(`Initialized ${n.skillDir}`)}o(Qi,"main");var Jf=!1;Jf&&Qi().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});import Zi from"node:path";var Qf=new Set(["name","description","license","compatibility","metadata","allowed-tools","disable-model-invocation","user-invocable","argument-hint","context","agent","model","hooks"]);async function ft(e){let t={valid:!1,errors:[],warnings:[],frontmatter:null},n;try{n=await dt(e)}catch(d){return t.errors.push(d instanceof Error?d.message:String(d)),t}let{frontmatter:r,body:i}=n;t.frontmatter=r;let s=Object.keys(r).filter(d=>!Qf.has(d));s.length>0&&t.errors.push(`Unexpected frontmatter keys: ${s.sort().join(", ")}`);let a=typeof r.name=="string"?r.name.trim():"",c=typeof r.description=="string"?r.description.trim():"";if(!a)t.errors.push("Missing required frontmatter field: name");else{/^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(a)||t.errors.push(`Invalid skill name "${a}". Use lowercase kebab-case and avoid consecutive hyphens.`),a.length>64&&t.errors.push(`Skill name is too long (${a.length}/64).`);let d=Zi.basename(Zi.resolve(e));d!==a&&t.warnings.push(`Skill directory name "${d}" does not match frontmatter name "${a}".`)}if(c?(c.length>1024&&t.errors.push(`Description is too long (${c.length}/1024).`),/[<>]/.test(c)&&t.errors.push("Description cannot contain angle brackets."),/[。.!?]/.test(c)||t.warnings.push("Description may be too terse; consider making the trigger conditions clearer.")):t.errors.push("Missing required frontmatter field: description"),i.trim()||t.errors.push("SKILL.md body is empty."),r.compatibility!=null&&(typeof r.compatibility!="string"?t.errors.push("compatibility must be a string if provided."):r.compatibility.length>500&&t.errors.push(`compatibility is too long (${r.compatibility.length}/500).`)),r["allowed-tools"]!=null){let d=r["allowed-tools"];typeof d=="string"||Array.isArray(d)&&d.every(l=>typeof l=="string")||t.errors.push("allowed-tools must be a string or string array.")}return r["disable-model-invocation"]!=null&&typeof r["disable-model-invocation"]!="boolean"&&t.errors.push("disable-model-invocation must be a boolean."),r["user-invocable"]!=null&&typeof r["user-invocable"]!="boolean"&&t.errors.push("user-invocable must be a boolean."),r.context!=null&&r.context!=="fork"&&t.errors.push('context must be "fork" when provided.'),r.hooks!=null&&(typeof r.hooks!="object"||Array.isArray(r.hooks))&&t.errors.push("hooks must be an object when provided."),t.valid=t.errors.length===0,t}o(ft,"validateSkillDirectory");async function es(e=process.argv){let t=e[2];t||(console.error("Usage: node scripts/quick-validate.js <skill-directory>"),process.exit(1));let n=await ft(t);if(n.errors.length===0)console.log("Skill is valid.");else{console.error("Skill validation failed:");for(let r of n.errors)console.error(`- ${r}`)}if(n.warnings.length>0){console.log("Warnings:");for(let r of n.warnings)console.log(`- ${r}`)}process.exit(n.valid?0:1)}o(es,"main");var Zf=!1;Zf&&es().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});import{readFile as Yn,writeFile as oe}from"node:fs/promises";import C from"node:path";function ep(e){return typeof e=="string"?{text:e}:e&&typeof e=="object"&&typeof e.text=="string"?{text:e.text}:null}o(ep,"normalizeAssertion");function tp(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_use").length:t,0)}o(tp,"countToolCalls");function np(e){return e.reduce((t,n)=>Array.isArray(n.content)?t+n.content.filter(r=>r?.type==="tool_result"&&r.is_error===!0).length:t,0)}o(np,"countToolErrors");function rp(e,t){return`${["# Skill Eval Transcript","","## Eval Prompt","",e,"","## Final Response","",t.lastText||"(No final text)","","## Result Flags","",`- success: ${t.success}`,`- signal: ${t.signal??"none"}`,`- interrupted: ${t.interrupted===!0}`,`- limit_reached: ${t.limitReached===!0}`].join(`
|
|
227
227
|
`)}
|
|
228
|
-
`}o(
|
|
228
|
+
`}o(rp,"renderTranscript");async function op(e,t){let n=C.dirname(C.resolve(t.evalsPath)),r=C.resolve(t.cwd??process.cwd()),i=[];for(let s of e??[]){let a=C.isAbsolute(s)?s:C.resolve(n,s),c=C.resolve(r,s),d=null,u=a;try{d=await Yn(a,"utf8")}catch{d=await Yn(c,"utf8").catch(()=>null),u=c}if(d==null)throw new Error(`Input file not found for eval: ${s}`);i.push(`### ${s}
|
|
229
229
|
\`\`\`
|
|
230
230
|
${d}
|
|
231
231
|
\`\`\`
|
|
@@ -235,15 +235,15 @@ ${i.join(`
|
|
|
235
235
|
|
|
236
236
|
`)}
|
|
237
237
|
|
|
238
|
-
`}o(
|
|
238
|
+
`}o(op,"readInputFiles");async function ip(e,t){let n=String(e.prompt??e.query??"").trim();return`${await op(e.files,t)}${n}`.trim()}o(ip,"buildEvalPrompt");async function sp(e,t){let{runKodaX:n,estimateTokens:r}=await me(),i=Date.now(),s=await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??30,reasoningMode:t.reasoningMode??"off",thinking:t.reasoningMode?t.reasoningMode!=="off":!1,context:{gitRoot:C.resolve(t.cwd??process.cwd())}},e);return{result:s,totalTokens:r(s.messages),durationMs:Date.now()-i}}o(sp,"defaultRunAgent");async function ap(e,t,n,r){return e==="with_skill"?(await qn(t,n,{workingDirectory:C.resolve(r.cwd??process.cwd()),projectRoot:C.resolve(r.cwd??process.cwd()),sessionId:"skill-eval",environment:{}})).content:n}o(ap,"prepareConfigPrompt");async function cp(e,t,n,r,i){let s=C.join(e,"outputs");await F(s);let a={total_tool_calls:tp(i.result.messages),errors_encountered:np(i.result.messages),output_chars:i.result.lastText.length};await oe(C.join(s,"result.md"),`${i.result.lastText}
|
|
239
239
|
`,"utf8"),await oe(C.join(s,"prompt.txt"),`${r}
|
|
240
|
-
`,"utf8"),await oe(C.join(e,"transcript.md"),
|
|
240
|
+
`,"utf8"),await oe(C.join(e,"transcript.md"),rp(r,i.result),"utf8"),await oe(C.join(s,"metrics.json"),`${JSON.stringify({config:t,eval_id:n.id??null,session_id:i.result.sessionId,...a},null,2)}
|
|
241
241
|
`,"utf8"),await oe(C.join(s,"messages.json"),`${JSON.stringify(i.result.messages,null,2)}
|
|
242
242
|
`,"utf8"),await oe(C.join(e,"timing.json"),`${JSON.stringify({total_tokens:i.totalTokens,duration_ms:i.durationMs,total_duration_seconds:Number((i.durationMs/1e3).toFixed(4))},null,2)}
|
|
243
243
|
`,"utf8"),await oe(C.join(e,"result.json"),`${JSON.stringify({success:i.result.success,signal:i.result.signal??null,signal_reason:i.result.signalReason??null,interrupted:i.result.interrupted===!0,limit_reached:i.result.limitReached===!0,session_id:i.result.sessionId,execution_metrics:a},null,2)}
|
|
244
|
-
`,"utf8")}o(
|
|
245
|
-
`,"utf8");let m=await
|
|
246
|
-
`;t.output?(await oe(t.output,r,"utf8"),console.log(`Wrote ${C.resolve(t.output)}`)):process.stdout.write(r)}o(ts,"main");var
|
|
244
|
+
`,"utf8")}o(cp,"writeRunArtifacts");async function dp(e,t=sp){let n=await jt(C.resolve(e.skillPath),"user");if(!n)throw new Error(`Failed to load skill from ${e.skillPath}`);let r=C.resolve(e.workspaceDir);await F(r);let i=JSON.parse(await Yn(e.evalsPath,"utf8")),s=Array.isArray(i.evals)?i.evals:[],a=e.configs?.length?e.configs:["with_skill","without_skill"],c=Number.isFinite(e.runsPerConfig)&&e.runsPerConfig>0?Math.floor(e.runsPerConfig):1,d=[];for(let u=0;u<s.length;u+=1){let l=s[u],f=C.join(r,`eval-${u}`);await F(f),await oe(C.join(f,"eval_metadata.json"),`${JSON.stringify({eval_id:l.id??u,eval_name:l.name??`eval-${u}`,prompt:l.prompt??l.query??"",expected_output:l.expected_output??"",assertions:(Array.isArray(l.assertions)?l.assertions:[]).map(ep).filter(Boolean)},null,2)}
|
|
245
|
+
`,"utf8");let m=await ip(l,e),p={};for(let g of a){let v=C.join(f,g);await F(v),p[g]=[];for(let w=1;w<=c;w+=1){let y=C.join(v,`run-${w}`);await F(y);let h=await ap(g,n,m,e),b=await t(h,{...e,configName:g,evalItem:l,runIndex:w});await cp(y,g,l,h,b),p[g].push({run_id:`run-${w}`,session_id:b.result.sessionId,success:b.result.success,total_tokens:b.totalTokens,duration_ms:b.durationMs,output_chars:b.result.lastText.length})}}d.push({eval_id:l.id??u,prompt:l.prompt??l.query??"",configs:p})}return{workspace:r,skill_name:n.name,eval_count:s.length,configs:a,runs_per_config:c,reports:d}}o(dp,"runEvalWorkspace");function up(e){let t={skillPath:"",evalsPath:"",workspaceDir:"",provider:"anthropic",model:void 0,runsPerConfig:1,maxIter:30,reasoningMode:"off",cwd:process.cwd(),configs:["with_skill","without_skill"],output:void 0};for(let n=2;n<e.length;n+=1){let r=e[n];r==="--skill-path"&&e[n+1]?t.skillPath=e[++n]:r==="--evals"&&e[n+1]?t.evalsPath=e[++n]:r==="--workspace"&&e[n+1]?t.workspaceDir=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--runs"&&e[n+1]?t.runsPerConfig=Number(e[++n]):r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--configs"&&e[n+1]?t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean):r==="--output"&&e[n+1]&&(t.output=e[++n])}return t}o(up,"parseArgs");async function ts(e=process.argv){let t=up(e);(!t.skillPath||!t.evalsPath||!t.workspaceDir)&&(console.error("Usage: node scripts/run-eval.js --skill-path <dir> --evals <evals.json> --workspace <dir> [--provider anthropic] [--runs 1]"),process.exit(1));let n=await dp(t),r=`${JSON.stringify(n,null,2)}
|
|
246
|
+
`;t.output?(await oe(t.output,r,"utf8"),console.log(`Wrote ${C.resolve(t.output)}`)):process.stdout.write(r)}o(ts,"main");var lp=!1;lp&&ts().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});import{readdir as fp,readFile as Jn,writeFile as rs}from"node:fs/promises";import T from"node:path";function Ee(e){return String(e??"").trim()}o(Ee,"normalizeExpectationText");function os(e){let n=(Array.isArray(e?.assertions)?e.assertions:[]).map(i=>typeof i=="string"?Ee(i):i&&typeof i=="object"&&typeof i.text=="string"?Ee(i.text):"").filter(Boolean);if(n.length>0)return n;let r=Ee(e?.expected_output);return r?[r]:[]}o(os,"normalizeExpectedRubric");function Qn(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}o(Qn,"normalizeStringArray");function ns(e,t){return{text:Ee(e?.text??t),passed:e?.passed===!0,evidence:Ee(e?.evidence)}}o(ns,"normalizeExpectationEntry");function pp(e,t){let n=je(e)??{},r=Array.isArray(n.expectations)?n.expectations:[],i=[],s=new Set;for(let a of t){let c=r.findIndex((d,u)=>s.has(u)?!1:Ee(d?.text).toLowerCase()===a.toLowerCase());if(c===-1){i.push({text:a,passed:!1,evidence:""});continue}s.add(c),i.push(ns(r[c],a))}if(t.length===0)for(let a of r){let c=ns(a,"");c.text&&i.push(c)}return{overall_summary:Ee(n.overall_summary),expectations:i,user_notes_summary:{uncertainties:Qn(n.user_notes_summary?.uncertainties),needs_review:Qn(n.user_notes_summary?.needs_review),workarounds:Qn(n.user_notes_summary?.workarounds)}}}o(pp,"normalizeParsedGrading");async function Zn(e){return(await fp(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>T.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}o(Zn,"listDirectories");async function mp(e){let t=T.dirname(e),n=T.dirname(t),r=T.basename(t),i=T.basename(e),s=T.join(e,"outputs"),a=await Y(T.join(n,"eval_metadata.json"),{}),c=await Jn(T.join(s,"result.md"),"utf8").catch(()=>""),d=await Jn(T.join(s,"prompt.txt"),"utf8").catch(()=>""),u=await Jn(T.join(e,"transcript.md"),"utf8").catch(()=>""),l=await Y(T.join(s,"metrics.json"),{}),f=await Y(T.join(e,"result.json"),{}),m=await Y(T.join(e,"timing.json"),{});return{evalDir:n,runDir:e,runId:i,configName:r,evalMetadata:a,outputsDir:s,resultText:c,promptText:d,transcript:u,metrics:l,result:f,timing:m}}o(mp,"loadRunContext");function hp(e){let t=os(e.evalMetadata),n=t.length>0?t.map((r,i)=>`${i+1}. ${r}`).join(`
|
|
247
247
|
`):"(No explicit assertions; infer one expectation from expected_output if present.)";return`${e.agentInstructions.trim()}
|
|
248
248
|
|
|
249
249
|
Return JSON with this shape:
|
|
@@ -289,12 +289,12 @@ ${JSON.stringify({total_tool_calls:e.metrics.total_tool_calls??e.result.executio
|
|
|
289
289
|
|
|
290
290
|
## Transcript Excerpt
|
|
291
291
|
${L(e.transcript,5e3)}
|
|
292
|
-
`}o(
|
|
293
|
-
`,"utf8"),{runDir:r.runDir,grading:l,prompt:a,rawResponse:c}}o(
|
|
294
|
-
`,"utf8"),a}o(
|
|
295
|
-
`)}o(ss,"main");var
|
|
296
|
-
`)}o(
|
|
297
|
-
`),console.log(`Wrote ${i}`),console.log(`Wrote ${s}`)}o(
|
|
292
|
+
`}o(hp,"buildGradingPrompt");async function is(e,t){let{runKodaX:n}=await me();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:T.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}o(is,"defaultRunJudge");async function gp(e,t,n=is){let r=await mp(T.resolve(e)),i=os(r.evalMetadata),s=await Ke(import.meta.url,"../agents/grader.md"),a=hp({...r,agentInstructions:s}),c=await n(a,{...t,runDir:r.runDir,configName:r.configName,evalMetadata:r.evalMetadata,runId:r.runId}),d=pp(c,i),u={total_tool_calls:r.metrics.total_tool_calls??r.result.execution_metrics?.total_tool_calls??0,errors_encountered:r.metrics.errors_encountered??r.result.execution_metrics?.errors_encountered??0,output_chars:r.metrics.output_chars??r.result.execution_metrics?.output_chars??r.resultText.length},l={summary:Yi(d.expectations),expectations:d.expectations,execution_metrics:u,user_notes_summary:d.user_notes_summary,overall_summary:d.overall_summary,timing:{total_tokens:r.timing.total_tokens??0,total_duration_seconds:r.timing.total_duration_seconds??0},meta:{generated_at:new Date().toISOString(),eval_id:r.evalMetadata.eval_id??null,eval_name:r.evalMetadata.eval_name??null,config:r.configName,run_id:r.runId}};return await rs(T.join(r.runDir,"grading.json"),`${JSON.stringify(l,null,2)}
|
|
293
|
+
`,"utf8"),{runDir:r.runDir,grading:l,prompt:a,rawResponse:c}}o(gp,"gradeRun");async function yp(e,t=is){let n=T.resolve(e.workspaceDir);await F(n);let r=new Set((e.configs??[]).map(c=>String(c).trim()).filter(Boolean)),i=[],s=[];for(let c of await Zn(n))if(T.basename(c).startsWith("eval-"))for(let d of await Zn(c)){let u=T.basename(d);if(!(r.size>0&&!r.has(u)))for(let l of await Zn(d)){if(!T.basename(l).startsWith("run-"))continue;let f=T.join(l,"grading.json");if(await Y(f,null)&&e.overwrite!==!0){s.push(T.relative(n,l).replace(/\\/g,"/"));continue}let p=await gp(l,e,t);i.push({run:T.relative(n,l).replace(/\\/g,"/"),summary:p.grading.summary,config:p.grading.meta.config,eval_id:p.grading.meta.eval_id})}}let a={workspace:n,generated_at:new Date().toISOString(),processed:i.length,skipped:s.length,processed_runs:i,skipped_runs:s};return await rs(T.join(n,"grading-summary.json"),`${JSON.stringify(a,null,2)}
|
|
294
|
+
`,"utf8"),a}o(yp,"gradeWorkspace");function wp(e){let t={workspaceDir:e[2]??"",provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd(),overwrite:!1,configs:[]};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]?t.cwd=e[++n]:r==="--overwrite"?t.overwrite=!0:r==="--configs"&&e[n+1]&&(t.configs=e[++n].split(",").map(i=>i.trim()).filter(Boolean))}return t}o(wp,"parseArgs");async function ss(e=process.argv){let t=wp(e);t.workspaceDir||(console.error("Usage: node scripts/grade-evals.js <workspace> [--provider anthropic] [--configs with_skill,without_skill] [--overwrite]"),process.exit(1));let n=await yp(t);process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
295
|
+
`)}o(ss,"main");var vp=!1;vp&&ss().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});import{writeFile as rr}from"node:fs/promises";import ie from"node:path";import{readFile as bp,readdir as kp,stat as xp,writeFile as as}from"node:fs/promises";import j from"node:path";async function er(e){return JSON.parse(await bp(e,"utf8"))}o(er,"readJson");async function Sp(e){try{return await xp(e),!0}catch{return!1}}o(Sp,"pathExists");async function tr(e){return(await kp(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>j.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}o(tr,"listDirectories");async function Gt(e){let t=await Sp(j.join(e,"runs"))?j.join(e,"runs"):e,n=(await tr(t)).filter(i=>j.basename(i).startsWith("eval-")),r={};for(let i of n){let s=j.join(i,"eval_metadata.json"),c=(await er(s).catch(()=>({}))).eval_id??j.basename(i);for(let d of await tr(i)){let u=j.basename(d),l=(await tr(d)).filter(f=>j.basename(f).startsWith("run-"));if(l.length!==0){r[u]??=[];for(let f of l){let m=await er(j.join(f,"grading.json")).catch(()=>null);if(!m)continue;let p=await er(j.join(f,"timing.json")).catch(()=>({}));r[u].push({eval_id:c,run_id:j.basename(f),pass_rate:m.summary?.pass_rate??0,passed:m.summary?.passed??0,failed:m.summary?.failed??0,total:m.summary?.total??0,time_seconds:p.total_duration_seconds??m.timing?.total_duration_seconds??0,tokens:p.total_tokens??m.execution_metrics?.output_chars??0,tool_calls:m.execution_metrics?.total_tool_calls??0,errors:m.execution_metrics?.errors_encountered??0,expectations:Array.isArray(m.expectations)?m.expectations:[],notes:[...m.user_notes_summary?.uncertainties??[],...m.user_notes_summary?.needs_review??[],...m.user_notes_summary?.workarounds??[]]})}}}}return r}o(Gt,"loadRunResults");function Ep(e){let t={};for(let[s,a]of Object.entries(e))t[s]={pass_rate:qt(a.map(c=>Number(c.pass_rate??0))),time_seconds:qt(a.map(c=>Number(c.time_seconds??0))),tokens:qt(a.map(c=>Number(c.tokens??0)))};let n=Object.keys(t),r=t[n[0]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}},i=t[n[1]]??{pass_rate:{mean:0},time_seconds:{mean:0},tokens:{mean:0}};return{configs:t,delta:{pass_rate:Vt(r.pass_rate.mean-i.pass_rate.mean),time_seconds:Vt(r.time_seconds.mean-i.time_seconds.mean),tokens:Vt(r.tokens.mean-i.tokens.mean)}}}o(Ep,"summarizeConfigs");function nr(e,t,n){let r=Ep(n);return{skill_name:t,generated_at:new Date().toISOString(),workspace:j.resolve(e),configs:r.configs,delta:r.delta,runs:n}}o(nr,"buildBenchmarkDocument");function Ip(e){let t=[`# Benchmark: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"","| Config | Pass Rate | Time (s) | Tokens |","| --- | --- | --- | --- |"];for(let[n,r]of Object.entries(e.configs))t.push(`| ${n} | ${r.pass_rate.mean} \xB1 ${r.pass_rate.stddev} | ${r.time_seconds.mean} \xB1 ${r.time_seconds.stddev} | ${r.tokens.mean} \xB1 ${r.tokens.stddev} |`);return t.push(""),t.push("## Delta"),t.push(""),t.push(`- Pass rate: ${e.delta.pass_rate}`),t.push(`- Time (s): ${e.delta.time_seconds}`),t.push(`- Tokens: ${e.delta.tokens}`),t.join(`
|
|
296
|
+
`)}o(Ip,"renderBenchmarkMarkdown");function Cp(e){let t={iterationDir:e[2],skillName:"unknown-skill"};for(let n=3;n<e.length;n+=1)e[n]==="--skill-name"&&e[n+1]&&(t.skillName=e[n+1],n+=1);return t}o(Cp,"parseArgs");async function Tp(){let{iterationDir:e,skillName:t}=Cp(process.argv);e||(console.error("Usage: node scripts/aggregate-benchmark.js <iteration-dir> --skill-name <name>"),process.exit(1));let n=await Gt(e);Object.keys(n).length===0&&(console.error(`No benchmark runs found in ${e}`),process.exit(1));let r=nr(e,t,n),i=j.join(e,"benchmark.json"),s=j.join(e,"benchmark.md");await as(i,JSON.stringify(r,null,2)),await as(s,`${Ip(r)}
|
|
297
|
+
`),console.log(`Wrote ${i}`),console.log(`Wrote ${s}`)}o(Tp,"main");var Rp=!1;Rp&&Tp().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});function Yt(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}o(Yt,"normalizeStringArray");function _p(e){let t={};for(let[n,r]of Object.entries(e)){let i=new Map,s=[];for(let a of r){for(let c of a.expectations??[]){if(c?.passed===!0)continue;let d=String(c?.text??"").trim();d&&i.set(d,(i.get(d)??0)+1)}for(let c of a.notes??[]){let d=String(c??"").trim();d&&s.push(d)}}t[n]={repeated_failures:Array.from(i.entries()).sort((a,c)=>c[1]-a[1]).slice(0,10).map(([a,c])=>({text:a,count:c})),notes:s.slice(0,10)}}return t}o(_p,"summarizeFailureClusters");function Ap(e,t,n){let r=je(e)??{};return{skill_name:t.skill_name,generated_at:new Date().toISOString(),workspace:t.workspace,verdict:["improves","regresses","mixed","inconclusive"].includes(r.verdict)?r.verdict:"inconclusive",release_readiness:["ready","needs_iteration","needs_manual_review"].includes(r.release_readiness)?r.release_readiness:"needs_manual_review",recommendation:String(r.recommendation??"").trim(),key_findings:Yt(r.key_findings),variance_hotspots:Yt(r.variance_hotspots),suggested_actions:Yt(r.suggested_actions),watchouts:Yt(r.watchouts),supporting_metrics:{pass_rate_delta:t.delta?.pass_rate??"n/a",time_seconds_delta:t.delta?.time_seconds??"n/a",tokens_delta:t.delta?.tokens??"n/a"},failure_clusters:n}}o(Ap,"normalizeAnalysisResult");function Pp(e){return`${e.agentInstructions.trim()}
|
|
298
298
|
|
|
299
299
|
Return JSON with this shape:
|
|
300
300
|
{
|
|
@@ -312,12 +312,12 @@ ${L(JSON.stringify({skill_name:e.benchmark.skill_name,configs:e.benchmark.config
|
|
|
312
312
|
|
|
313
313
|
## Failure Clusters
|
|
314
314
|
${L(JSON.stringify(e.failureClusters,null,2),8e3)}
|
|
315
|
-
`}o(
|
|
315
|
+
`}o(Pp,"buildAnalysisPrompt");async function Mp(e,t){let{runKodaX:n}=await me();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:ie.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}o(Mp,"defaultRunAnalyst");function Op(e){let t=[`# Benchmark Analysis: ${e.skill_name}`,"",`Generated: ${e.generated_at}`,"",`- Verdict: ${e.verdict}`,`- Release readiness: ${e.release_readiness}`,`- Recommendation: ${e.recommendation||"n/a"}`,""],n=[["key_findings","Key Findings"],["variance_hotspots","Variance Hotspots"],["suggested_actions","Suggested Actions"],["watchouts","Watchouts"]];for(let[r,i]of n){t.push(`## ${i}`),t.push("");let s=Array.isArray(e[r])?e[r]:[];if(s.length===0)t.push("- None");else for(let a of s)t.push(`- ${a}`);t.push("")}return t.push("## Supporting Metrics"),t.push(""),t.push(`- Pass rate delta: ${e.supporting_metrics.pass_rate_delta}`),t.push(`- Time delta: ${e.supporting_metrics.time_seconds_delta}`),t.push(`- Tokens delta: ${e.supporting_metrics.tokens_delta}`),`${t.join(`
|
|
316
316
|
`)}
|
|
317
|
-
`}o(
|
|
318
|
-
`,"utf8")}let s=await Gt(n),a=
|
|
319
|
-
`,"utf8"),await rr(m,
|
|
320
|
-
`)}o(cs,"main");var
|
|
317
|
+
`}o(Op,"renderAnalysisMarkdown");async function Np(e,t=Mp){let n=ie.resolve(e.workspaceDir),r=ie.resolve(e.benchmarkPath??ie.join(n,"benchmark.json")),i=await Y(r,null);if(!i){let p=await Gt(n);if(Object.keys(p).length===0)throw new Error(`No benchmark data found in ${n}`);i=nr(n,e.skillName??ie.basename(n),p),await rr(r,`${JSON.stringify(i,null,2)}
|
|
318
|
+
`,"utf8")}let s=await Gt(n),a=_p(s),c=await Ke(import.meta.url,"../agents/analyzer.md"),d=Pp({agentInstructions:c,benchmark:i,failureClusters:a}),u=await t(d,{...e,workspaceDir:n,benchmarkPath:r,benchmark:i}),l=Ap(u,i,a),f=ie.resolve(e.outputPath??ie.join(n,"analysis.json")),m=ie.resolve(e.markdownPath??ie.join(n,"analysis.md"));return await rr(f,`${JSON.stringify(l,null,2)}
|
|
319
|
+
`,"utf8"),await rr(m,Op(l),"utf8"),{analysis:l,prompt:d,rawResponse:u,analysisJsonPath:f,analysisMdPath:m}}o(Np,"analyzeBenchmark");function $p(e){let t={workspaceDir:e[2]??"",benchmarkPath:void 0,outputPath:void 0,markdownPath:void 0,skillName:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--benchmark"&&e[n+1]?t.benchmarkPath=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--skill-name"&&e[n+1]?t.skillName=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}o($p,"parseArgs");async function cs(e=process.argv){let t=$p(e);t.workspaceDir||(console.error("Usage: node scripts/analyze-benchmark.js <workspace> [--benchmark benchmark.json] [--output analysis.json] [--markdown analysis.md]"),process.exit(1));let n=await Np(t);process.stdout.write(`${JSON.stringify({analysis:n.analysis,analysis_json:n.analysisJsonPath,analysis_md:n.analysisMdPath},null,2)}
|
|
320
|
+
`)}o(cs,"main");var Dp=!1;Dp&&cs().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});import{readdir as Lp,readFile as ds,writeFile as us}from"node:fs/promises";import O from"node:path";async function ir(e){return(await Lp(e,{withFileTypes:!0}).catch(()=>[])).filter(n=>n.isDirectory()).map(n=>O.join(e,n.name)).sort((n,r)=>n.localeCompare(r))}o(ir,"listDirectories");function or(e){return Array.isArray(e)?e.map(t=>String(t??"").trim()).filter(Boolean):[]}o(or,"normalizeStringArray");function Fp(e){let t=je(e)??{},n=["A","B","tie","inconclusive"].includes(t.winner)?t.winner:"inconclusive",r=Number(t.confidence);return{winner:n,confidence:Number.isFinite(r)?Math.max(0,Math.min(1,Number(r.toFixed(4)))):0,rationale:String(t.rationale??"").trim(),strengths_a:or(t.strengths_a),strengths_b:or(t.strengths_b),risks:or(t.risks)}}o(Fp,"normalizeComparisonResult");async function jp(e,t,n,r){let i=(await ir(O.join(e,t))).filter(f=>O.basename(f).startsWith("run-")),s=(await ir(O.join(e,n))).filter(f=>O.basename(f).startsWith("run-")),a=i[r],c=s[r];if(!a||!c)return null;let d=await Y(O.join(e,"eval_metadata.json"),{}),u=await ds(O.join(a,"outputs","result.md"),"utf8").catch(()=>""),l=await ds(O.join(c,"outputs","result.md"),"utf8").catch(()=>"");return{evalDir:e,evalMetadata:d,runA:{runDir:a,runId:O.basename(a),configName:t,output:u},runB:{runDir:c,runId:O.basename(c),configName:n,output:l}}}o(jp,"loadComparisonPair");function Kp(e){let t=e.presentPrimaryFirst?{A:e.runA,B:e.runB}:{A:e.runB,B:e.runA};return`${e.agentInstructions.trim()}
|
|
321
321
|
|
|
322
322
|
Return JSON with this shape:
|
|
323
323
|
{
|
|
@@ -345,15 +345,15 @@ ${L(t.A.output,12e3)}
|
|
|
345
345
|
|
|
346
346
|
## Candidate B
|
|
347
347
|
${L(t.B.output,12e3)}
|
|
348
|
-
`}o(
|
|
348
|
+
`}o(Kp,"buildComparisonPrompt");async function Bp(e,t){let{runKodaX:n}=await me();return(await n({provider:t.provider??"anthropic",model:t.model,maxIter:t.maxIter??20,reasoningMode:t.reasoningMode??"balanced",thinking:t.reasoningMode?t.reasoningMode!=="off":!0,context:{gitRoot:O.resolve(t.cwd??t.workspaceDir??process.cwd())}},e)).lastText}o(Bp,"defaultRunComparator");function Xp(e,t,n,r){return e==="A"?t?n:r:e==="B"?t?r:n:e}o(Xp,"mapWinnerToConfig");function Up(e){let t=[`# Blind Comparison: ${e.config_a} vs ${e.config_b}`,"",`Generated: ${e.generated_at}`,"",`- ${e.config_a} wins: ${e.summary.config_a_wins}`,`- ${e.config_b} wins: ${e.summary.config_b_wins}`,`- ties: ${e.summary.ties}`,`- inconclusive: ${e.summary.inconclusive}`,""];for(let n of e.comparisons)t.push(`## Eval ${n.eval_id??n.eval_name??n.index}`),t.push(""),t.push(`- Winner: ${n.winner_config}`),t.push(`- Confidence: ${n.confidence}`),t.push(`- Rationale: ${n.rationale||"n/a"}`),t.push("");return`${t.join(`
|
|
349
349
|
`)}
|
|
350
|
-
`}o(
|
|
351
|
-
`,"utf8"),await us(l,
|
|
352
|
-
`)}o(ls,"main");var
|
|
350
|
+
`}o(Up,"renderComparisonMarkdown");async function Wp(e,t=Bp){let n=O.resolve(e.workspaceDir),r=e.configA??"with_skill",i=e.configB??"without_skill",s=Number.isFinite(e.maxPairs)&&e.maxPairs>0?Math.floor(e.maxPairs):Number.POSITIVE_INFINITY,a=await Ke(import.meta.url,"../agents/comparator.md"),c=[];for(let f of await ir(n))if(O.basename(f).startsWith("eval-"))for(let m=0;m<s;m+=1){let p=await jp(f,r,i,m);if(!p)break;let g=c.length%2===0,v=Kp({agentInstructions:a,evalMetadata:p.evalMetadata,runA:p.runA,runB:p.runB,presentPrimaryFirst:g}),w=await t(v,{...e,workspaceDir:n,evalDir:f,pairIndex:m,configA:r,configB:i}),y=Fp(w),h=Xp(y.winner,g,r,i);c.push({index:c.length+1,eval_id:p.evalMetadata.eval_id??null,eval_name:p.evalMetadata.eval_name??null,run_a:O.relative(n,p.runA.runDir).replace(/\\/g,"/"),run_b:O.relative(n,p.runB.runDir).replace(/\\/g,"/"),presented_as:g?{A:r,B:i}:{A:i,B:r},winner_label:y.winner,winner_config:h,confidence:y.confidence,rationale:y.rationale,strengths_a:y.strengths_a,strengths_b:y.strengths_b,risks:y.risks})}if(c.length===0)throw new Error(`No comparable run pairs found for ${r} vs ${i} in ${n}`);let d={workspace:n,generated_at:new Date().toISOString(),config_a:r,config_b:i,summary:{total_pairs:c.length,config_a_wins:c.filter(f=>f.winner_config===r).length,config_b_wins:c.filter(f=>f.winner_config===i).length,ties:c.filter(f=>f.winner_config==="tie").length,inconclusive:c.filter(f=>f.winner_config==="inconclusive").length},comparisons:c},u=O.resolve(e.outputPath??O.join(n,"comparison.json")),l=O.resolve(e.markdownPath??O.join(n,"comparison.md"));return await us(u,`${JSON.stringify(d,null,2)}
|
|
351
|
+
`,"utf8"),await us(l,Up(d),"utf8"),{document:d,outputPath:u,markdownPath:l}}o(Wp,"compareWorkspace");function Hp(e){let t={workspaceDir:e[2]??"",configA:"with_skill",configB:"without_skill",outputPath:void 0,markdownPath:void 0,provider:"anthropic",model:void 0,reasoningMode:"balanced",maxIter:20,maxPairs:void 0,cwd:process.cwd()};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--config-a"&&e[n+1]?t.configA=e[++n]:r==="--config-b"&&e[n+1]?t.configB=e[++n]:r==="--output"&&e[n+1]?t.outputPath=e[++n]:r==="--markdown"&&e[n+1]?t.markdownPath=e[++n]:r==="--provider"&&e[n+1]?t.provider=e[++n]:r==="--model"&&e[n+1]?t.model=e[++n]:r==="--reasoning"&&e[n+1]?t.reasoningMode=e[++n]:r==="--max-iter"&&e[n+1]?t.maxIter=Number(e[++n]):r==="--max-pairs"&&e[n+1]?t.maxPairs=Number(e[++n]):r==="--cwd"&&e[n+1]&&(t.cwd=e[++n])}return t}o(Hp,"parseArgs");async function ls(e=process.argv){let t=Hp(e);t.workspaceDir||(console.error("Usage: node scripts/compare-runs.js <workspace> [--config-a with_skill] [--config-b without_skill] [--output comparison.json]"),process.exit(1));let n=await Wp(t);process.stdout.write(`${JSON.stringify({comparison:n.document.summary,output:n.outputPath,markdown:n.markdownPath},null,2)}
|
|
352
|
+
`)}o(ls,"main");var zp=!1;zp&&ls().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});import{readFile as qp,writeFile as Vp}from"node:fs/promises";import{createHash as Gp}from"node:crypto";import sr from"node:path";import{zipSync as Yp,strToU8 as Jp}from"fflate";var Qp=".kodax-package.json";function Zp(e){return e instanceof Uint8Array?e:new Uint8Array(e)}o(Zp,"toUint8Array");function em(e){return Gp("sha256").update(e).digest("hex")}o(em,"sha256");function tm(e,t,n={}){return{format:"kodax-skill-package",version:1,created_at:n.createdAt??new Date().toISOString(),entrypoint:"SKILL.md",skill:{name:e.frontmatter.name,description:e.frontmatter.description,compatibility:e.frontmatter.compatibility??null,user_invocable:e.frontmatter["user-invocable"]??!0,disable_model_invocation:e.frontmatter["disable-model-invocation"]??!1},files:t.map(r=>({path:r.relativePath,size:r.bytes.length,sha256:r.sha256})),note:"This archive is a zip file with a .skill extension. Compatible agents can extract and install the included skill directory."}}o(tm,"createPackageManifest");async function nm(e,t={}){let n=await ft(e);if(!n.valid)throw new Error(`Cannot package invalid skill:
|
|
353
353
|
- ${n.errors.join(`
|
|
354
|
-
- `)}`);let r=await dt(e),i=await Gn(e),s=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let u=
|
|
354
|
+
- `)}`);let r=await dt(e),i=await Gn(e),s=[];for(let d of i){if(d.relativePath.endsWith(".skill"))continue;let u=Zp(await qp(d.absolutePath));s.push({...d,bytes:u,sha256:em(u)})}let a=tm(r,s,t),c={[Qp]:Jp(JSON.stringify(a,null,2))};for(let d of s)c[d.relativePath]=d.bytes;return{manifest:a,bytes:Yp(c,{level:6})}}o(nm,"buildSkillPackage");async function rm(e,t,n={}){let r=await nm(e,n);return await Vp(t,r.bytes),{...r,outputPath:sr.resolve(t)}}o(rm,"writeSkillPackage");function om(e){let t={skillDir:e[2],output:void 0};for(let n=3;n<e.length;n+=1)e[n]==="--output"&&e[n+1]&&(t.output=e[++n]);return t}o(om,"parseArgs");async function fs(e=process.argv){let t=om(e);t.skillDir||(console.error("Usage: node scripts/package-skill.js <skill-dir> [--output <file.skill>]"),process.exit(1));let n=await dt(t.skillDir),r=t.output??sr.join(sr.dirname(t.skillDir),`${n.frontmatter.name}.skill`),i=await rm(t.skillDir,r);console.log(`Wrote ${i.outputPath}`)}o(fs,"main");var im=!1;im&&fs().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});import{cp as sm,mkdir as ar,readFile as hs,rm as gs,stat as am,writeFile as cm}from"node:fs/promises";import J from"node:path";import{strFromU8 as ps,unzipSync as dm}from"fflate";var ms=".kodax-package.json";function um(e){return e.replace(/\\/g,"/").replace(/^\.?\//,"")}o(um,"normalizeArchivePath");function lm(e){let t=um(e);if(!t||t.startsWith("/")||t.includes("../"))throw new Error(`Unsafe archive entry path: ${e}`);return t}o(lm,"assertSafeArchivePath");function fm(e){return/\.(skill|zip)$/i.test(e)}o(fm,"isZipLike");function pm(e){let t=dm(e),n=Object.entries(t).map(([u,l])=>({relativePath:lm(u),bytes:l})),r=n.find(u=>u.relativePath==="SKILL.md");if(!r)throw new Error("Archive is missing SKILL.md");let i=zt(ps(r.bytes)),s=typeof i.frontmatter.name=="string"?i.frontmatter.name.trim():"",a=typeof i.frontmatter.description=="string"?i.frontmatter.description.trim():"";if(!s||!a)throw new Error("Archive SKILL.md is missing required frontmatter fields.");let c=n.find(u=>u.relativePath===ms),d=c?JSON.parse(ps(c.bytes)):null;return{skillName:s,manifest:d,entries:n.filter(u=>u.relativePath!==ms)}}o(pm,"readSkillPackageBuffer");async function mm(e,t){if(await ut(e)){if(!t)throw new Error(`Target skill already exists: ${e}`);await gs(e,{recursive:!0,force:!0})}await ar(e,{recursive:!0})}o(mm,"ensureInstallTarget");async function hm(e,t={}){let n=J.resolve(t.skillsDir??lt()),r=pm(await hs(e)),i=J.join(n,r.skillName);await mm(i,t.force===!0);for(let s of r.entries){let a=J.join(i,s.relativePath);await ar(J.dirname(a),{recursive:!0}),await cm(a,s.bytes)}return{skillName:r.skillName,installedTo:i,source:J.resolve(e),manifest:r.manifest}}o(hm,"installSkillArchive");async function gm(e,t={}){let n=await ft(e);if(!n.valid)throw new Error(`Cannot install invalid skill:
|
|
355
355
|
- ${n.errors.join(`
|
|
356
|
-
- `)}`);let r=J.join(e,"SKILL.md"),i=zt(await hs(r,"utf8")),s=J.resolve(t.skillsDir??lt()),a=J.join(s,i.frontmatter.name);if(await ut(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await gs(a,{recursive:!0,force:!0})}return await ar(s,{recursive:!0}),await
|
|
356
|
+
- `)}`);let r=J.join(e,"SKILL.md"),i=zt(await hs(r,"utf8")),s=J.resolve(t.skillsDir??lt()),a=J.join(s,i.frontmatter.name);if(await ut(a)){if(!t.force)throw new Error(`Target skill already exists: ${a}`);await gs(a,{recursive:!0,force:!0})}return await ar(s,{recursive:!0}),await sm(e,a,{recursive:!0}),{skillName:i.frontmatter.name,installedTo:a,source:J.resolve(e),manifest:null}}o(gm,"installSkillDirectory");async function ym(e,t={}){let n=J.resolve(e),r=await am(n).catch(()=>null);if(!r)throw new Error(`Input not found: ${n}`);if(r.isDirectory())return gm(n,t);if(r.isFile()&&fm(n))return hm(n,t);throw new Error("Input must be a skill directory or a .skill/.zip archive.")}o(ym,"installSkill");function wm(e){let t={input:e[2],skillsDir:void 0,force:!1};for(let n=3;n<e.length;n+=1){let r=e[n];r==="--dest"&&e[n+1]?t.skillsDir=e[++n]:r==="--force"&&(t.force=!0)}return t}o(wm,"parseArgs");async function ys(e=process.argv){let t=wm(e);t.input||(console.error("Usage: node scripts/install-skill.js <skill-dir-or-archive> [--dest <skills-dir>] [--force]"),process.exit(1));let n=await ym(t.input,t);console.log(`Installed ${n.skillName} to ${n.installedTo}`)}o(ys,"main");var vm=!1;vm&&ys().catch(e=>{console.error(e instanceof Error?e.message:String(e)),process.exit(1)});var eM=1440*60*1e3;var aM=5*6e4;var GM=new Intl.Segmenter("zh-CN",{granularity:"word"});var QO=String.raw`const TOOL_NAME = 'echo_tool';
|
|
357
357
|
const RESOURCE_URI = 'memory://guide';
|
|
358
358
|
const PROMPT_NAME = 'draft_prompt';
|
|
359
359
|
let buffer = '';
|
|
@@ -533,14 +533,14 @@ process.stdin.on('data', (chunk) => {
|
|
|
533
533
|
|
|
534
534
|
process.on('SIGTERM', () => process.exit(0));
|
|
535
535
|
process.on('SIGINT', () => process.exit(0));
|
|
536
|
-
`;var ks=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),
|
|
537
|
-
|
|
538
|
-
`;var
|
|
539
|
-
`),a=(s>=0?i.slice(0,s):i).trim();if(!a)return null;let c=JSON.parse(a);if(c&&typeof c=="object"&&c._type==="meta"){let d=c;return{gitRoot:typeof d.gitRoot=="string"?d.gitRoot:void 0,runtimeInfo:d.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}o(
|
|
540
|
-
`))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(
|
|
541
|
-
`,"utf8"),await R.rename(t,fr(e))}o(
|
|
542
|
-
`),i+=1)}}finally{await r.close()}return await
|
|
543
|
-
`).length,i={width:n,height:r};return Ks.set(e,i),i},"measureText"),wr=Zh;import eg from"wrap-ansi";import tg from"cli-truncate";var Bs={},ng=o((e,t,n)=>{let r=e+String(t)+String(n),i=Bs[r];if(i)return i;let s=e;if(n==="wrap"&&(s=eg(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=tg(e,t,{position:a})}return Bs[r]=s,s},"wrapText"),nn=ng;var rg=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),og=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),ig=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Ws=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),sg=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),Hs=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Xs=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!rg(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!og(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!ig(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Us=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),ag=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!Ws(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!sg(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),cg=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"),dg=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"),vr=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(Hs(t))return!0;return!1},"hasAnsiControlCharacters"),Ue=o((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),zs=o(e=>{if(!vr(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return Ue(t,e,n,r);if(a==="["){let u=Xs(e,r+2);if(u===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=cg(a);if(c!==void 0){let u=Us(e,r+2,c.allowBellTerminator);if(u===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let d=ag(e,r+1);if(d===void 0){if(Ws(a))return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,d.endIndex),intermediateString:d.intermediateString,finalCharacter:d.finalCharacter}),r=d.endIndex,n=r;continue}if(i==="\x9B"){let a=Xs(e,r+1);if(a===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=dg(i);if(s!==void 0){let a=Us(e,r+1,s.allowBellTerminator);if(a===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(Hs(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var ug=/^[\d:;]*$/,lg=o(e=>{if(!vr(e))return e;let t="";for(let n of zs(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&ug.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),qs=lg;var Vs=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=Vs(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return qs(t)},"squashTextNodes"),mt=Vs;var rn=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:fg.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(pg.bind(null,t)),t},"createNode"),on=o((e,t)=>{t.parentNode&&ht(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")&&sn(e)},"appendChildNode"),br=o((e,t,n)=>{t.parentNode&&ht(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&sn(e)},"insertBeforeNode"),ht=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&sn(e)},"removeChildNode"),kr=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),xr=o((e,t)=>{e.style=t},"setStyle"),Gs=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return gt(t,e),t},"createTextNode"),pg=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:mt(e),r=wr(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=nn(n,t,i);return wr(s)},"measureTextNode"),Ys=o(e=>{if(e?.parentNode)return e.yogaNode??Ys(e.parentNode)},"findClosestYogaNode"),sn=o(e=>{Ys(e)?.markDirty()},"markNodeAsDirty"),gt=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,sn(e)},"setTextNodeValue");import k from"yoga-layout";var hg=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?k.POSITION_TYPE_ABSOLUTE:k.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(k.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(k.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(k.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(k.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),gg=o((e,t)=>{"margin"in t&&e.setMargin(k.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(k.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(k.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(k.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(k.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(k.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(k.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),yg=o((e,t)=>{"padding"in t&&e.setPadding(k.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(k.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(k.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(k.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(k.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(k.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(k.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),wg=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(k.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(k.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(k.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(k.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(k.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(k.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(k.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(k.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(k.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(k.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(k.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(k.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(k.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(k.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(k.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(k.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(k.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(k.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(k.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(k.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(k.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),vg=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"),bg=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?k.DISPLAY_FLEX:k.DISPLAY_NONE)},"applyDisplayStyles"),kg=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(k.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(k.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(k.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(k.EDGE_RIGHT,n)}},"applyBorderStyles"),xg=o((e,t)=>{"gap"in t&&e.setGap(k.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(k.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(k.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),Sg=o((e,t={})=>{hg(e,t),gg(e,t),yg(e,t),wg(e,t),vg(e,t),bg(e,t),kg(e,t),xg(e,t)},"styles"),Sr=Sg;if(tn())try{await Promise.resolve().then(()=>(na(),Eg))}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
536
|
+
`;var ks=Object.freeze(["message","label","compaction","branch_summary","archive_marker","rewind_marker","artifact_ledger","memory_outcome_digest","memory_review_receipt"]),Bm=0,Xm=0,xs=o(e=>{let t=e==="label"?++Bm:++Xm,n=Math.random().toString(36).slice(2,8);return`${e}-${Date.now()}-${t}-${n}`},"nextId");async function Um(e,t,n){let r=xs("label");return await e.append({id:r,ts:Date.now(),type:"label",payload:{targetId:t,label:n}}),r}o(Um,"appendLabel");async function Wm(e,t,n){let r=xs("artifact");return await e.append({id:r,ts:Date.now(),type:"artifact_ledger",payload:{ref:t,summary:n}}),r}o(Wm,"appendArtifact");function Hm(e){let t=[],n=new Map,r=[],i=null;for(let s of e){if(s.type==="label"){let c=s.payload;c?.targetId&&r.push({targetId:c.targetId,label:c.label});continue}let a={entry:s,children:[]};if(s.type==="message"){t.push(a),n.set(s.id,a),i=a;continue}i?i.children.push(a):t.push(a)}for(let{targetId:s,label:a}of r){let c=n.get(s);c&&a!==void 0&&(c.label=a)}return t}o(Hm,"buildLineageTree");var zm=Object.freeze({name:"lineage",entryTypes:ks,operators:Object.freeze({label:o((async(e,...t)=>{let[n,r]=t;return Um(e,n,r)}),"label"),attachArtifact:o((async(e,...t)=>{let[n,r]=t;return Wm(e,n,r)}),"attachArtifact")}),reducers:Object.freeze({buildLineageTree:o(e=>Hm(e),"buildLineageTree")})});var th=new Set(["skill","ask_user_question","exit_plan_mode","spawn_agent","send_message","followup_task","wait_agent","interrupt_agent","list_agents","agent_output","tool_search","get_goal","create_goal","update_goal","todo_create","todo_update","todo_list","todo_get","worktree_create","worktree_remove","undo","mcp_search","mcp_describe","mcp_call","mcp_read_resource","mcp_get_prompt","repo_overview","changed_scope","changed_diff","changed_diff_bundle","module_context","symbol_context","process_context","impact_estimate","relationship_scan","cyclic_dependencies","semantic_lookup"]),dr=th,Jt=`[\u5BF9\u8BDD\u5386\u53F2\u6458\u8981]
|
|
537
|
+
|
|
538
|
+
`;var g$=Jt.trimEnd();var y$=16*1024;var sh={enabled:!1,maxAge:20,protectedTools:Array.from(dr)};import SL from"typescript";var jF=new Intl.Segmenter("en",{granularity:"grapheme"});var cK=4*1024;var lK=64*1024;var ur=".conversation-cache.",SK=`${ur}json`,EK=1024*1024,IK=1024*1024,CK=1024*1024,TK=4*1024*1024,RK=128*1024;var Ie=class extends Error{static{o(this,"ConversationPageCacheCleanupError")}directory;cleanupCause;constructor(t,n){super(`Unable to remove recoverable Conversation page caches from ${t}`),this.directory=t,this.cleanupCause=n,this.name="ConversationPageCacheCleanupError"}};function _s(e){let t=e.lastIndexOf(ur);if(t<=0)return;let n=e.slice(t+ur.length);if(!(n!=="json"&&!(n.startsWith("json.")&&n.endsWith(".tmp"))&&!n.endsWith(".data")&&!n.endsWith(".index")))return e.slice(0,t)}o(_s,"cacheArtifactSessionId");async function As(e){let t=pt.dirname(e),n=pt.basename(e,pt.extname(e)),r;try{r=await Zt.readdir(t)}catch(i){if(i.code==="ENOENT")return;throw i}await Promise.all(r.filter(i=>_s(i)===n).map(i=>Zt.rm(pt.join(t,i),{force:!0})))}o(As,"removeConversationPageCache");async function lr(e){let t;try{t=await Zt.readdir(e,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;throw new Ie(e,n)}try{await Promise.all(t.filter(n=>!n.isDirectory()&&_s(n.name)!==void 0).map(n=>Zt.rm(pt.join(e,n.name),{force:!0})))}catch(n){throw new Ie(e,n)}}o(lr,"removeConversationPageCachesInDirectory");var Ns=3,_h=300*1e3,Ps=65536,fr=o(e=>P.join(e,".layout.json"),"layoutMarkerPath"),mr=o(e=>P.join(e,".migration-lock"),"lockDirPath"),$s=o(e=>P.join(mr(e),"owner.json"),"ownerPath"),pr=o(e=>P.join(e,".migration-journal.jsonl"),"journalPath"),hr=o(e=>P.join(P.dirname(e),"sessions-archive"),"sessionsArchiveDir");function gr(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(gr,"isSessionFile");function Ds(e){return e.endsWith(".archive.jsonl")||e.endsWith(".islands.jsonl")?e.slice(0,-14):null}o(Ds,"sidecarId");async function Ah(e){let t;try{t=await R.open(e,"r");let n=Buffer.allocUnsafe(Ps),{bytesRead:r}=await t.read(n,0,Ps,0);if(r===0)return null;let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
539
|
+
`),a=(s>=0?i.slice(0,s):i).trim();if(!a)return null;let c=JSON.parse(a);if(c&&typeof c=="object"&&c._type==="meta"){let d=c;return{gitRoot:typeof d.gitRoot=="string"?d.gitRoot:void 0,runtimeInfo:d.runtimeInfo}}return null}catch{return null}finally{await t?.close()}}o(Ah,"readMeta");async function Ph(e){let t=await Ah(e);return t?yo({gitRoot:t.gitRoot,runtimeInfo:t.runtimeInfo}).key:Ze}o(Ph,"destKeyFor");async function Mh(e){let t=[],n=o(async(r,i)=>{let s=[];try{s=await R.readdir(r,{withFileTypes:!0})}catch{return}for(let a of s)!a.isFile()||a.name.startsWith(".")||(gr(a.name)||i&&Ds(a.name)!==null)&&t.push(P.join(r,a.name))},"pushDir");return await n(e,!0),await n(hr(e),!0),t}o(Mh,"collectFlatSources");async function Oh(e){let t=await Mh(e),n=t.filter(s=>gr(P.basename(s))),r=new Set(n.map(s=>P.basename(s,".jsonl"))),i=[];for(let s of n){let a=P.basename(s,".jsonl"),c=await Ph(s);i.push({from:s,to:P.join(e,c,`${a}.jsonl`),reason:`session\u2192${c}`});for(let d of[".archive.jsonl",".islands.jsonl"]){let u=P.join(P.dirname(s),`${a}${d}`);Os.existsSync(u)&&i.push({from:u,to:P.join(e,c,`${a}.islands.jsonl`),reason:"sidecar\u2192islands"})}}for(let s of t){let a=Ds(P.basename(s));a===null||r.has(a)||i.push({from:s,to:P.join(e,Ze,"orphan-islands",`${a}.islands.jsonl`),reason:"orphan-sidecar\u2192_unknown"})}return i}o(Oh,"planMigration");async function Nh(e){try{let t=JSON.parse(await R.readFile(fr(e),"utf8"));return t!==null&&typeof t=="object"&&t.version===Ns}catch{return!1}}o(Nh,"isMigrated");async function Ms(e){await lr(e),await lr(hr(e))}o(Ms,"removeLegacyConversationCaches");async function $h(e){try{let t=JSON.parse(await R.readFile($s(e),"utf8"));if(typeof t.pid=="number"&&t.pid!==process.pid)try{process.kill(t.pid,0)}catch(n){if(n.code==="ESRCH")return!0}return typeof t.heartbeatAt=="number"&&Date.now()-t.heartbeatAt>_h}catch{return!0}}o($h,"lockIsStale");async function Dh(e){let t=mr(e);for(let n=0;n<2;n+=1)try{return await R.mkdir(t),await R.writeFile($s(e),JSON.stringify({pid:process.pid,startTime:Date.now(),heartbeatAt:Date.now()})),!0}catch(r){if(r.code!=="EEXIST")return!1;if(n===0&&await $h(e)){await R.rm(t,{recursive:!0,force:!0}).catch(()=>{});continue}return!1}return!1}o(Dh,"acquireLock");async function Lh(e){await R.rm(mr(e),{recursive:!0,force:!0}).catch(()=>{})}o(Lh,"releaseLock");async function Fh(e){try{if((await R.readdir(P.join(e,".write-locks"),{withFileTypes:!0})).some(n=>n.isFile()&&/^[0-9a-f]{64}\.lock$/.test(n.name)))throw new Error("Session layout migration deferred while a Session writer is active")}catch(t){if(t.code==="ENOENT")return;throw t}}o(Fh,"assertNoActiveSessionWriters");async function jh(e){let t=new Set;try{let n=await R.readFile(pr(e),"utf8");for(let r of n.split(`
|
|
540
|
+
`))if(r.trim())try{let i=JSON.parse(r);i.done&&typeof i.from=="string"&&t.add(i.from)}catch{}}catch{}return t}o(jh,"readJournalDone");async function Kh(e){if(await R.mkdir(P.dirname(e.to),{recursive:!0}),Os.existsSync(e.to)){await R.unlink(e.from).catch(()=>{});return}try{await R.rename(e.from,e.to)}catch(t){let n=t.code;if(n==="EXDEV")await R.copyFile(e.from,e.to),await R.unlink(e.from).catch(()=>{});else if(n!=="ENOENT")throw t}}o(Kh,"executeMove");async function Bh(e){await R.mkdir(e,{recursive:!0});let t=`${fr(e)}.${process.pid}.tmp`,n=JSON.stringify({version:Ns,migratedAt:new Date().toISOString(),from:"flat-v1"});await R.writeFile(t,n+`
|
|
541
|
+
`,"utf8"),await R.rename(t,fr(e))}o(Bh,"writeMarker");async function Xh(e){let t=hr(e);try{(await R.readdir(t)).length===0&&await R.rmdir(t).catch(()=>{})}catch{}}o(Xh,"retireSessionsArchive");async function Uh(e){if(!await Dh(e))return{moved:0,planned:0};try{await Fh(e),await Ms(e);let t=await Oh(e),n=await jh(e),r=await R.open(pr(e),"a"),i=0;try{for(let s of t){if(gr(P.basename(s.from)))try{await As(s.to)}catch(a){throw new Ie(P.dirname(s.to),a)}n.has(s.from)||(await Kh(s),await r.write(JSON.stringify({from:s.from,to:s.to,done:!0})+`
|
|
542
|
+
`),i+=1)}}finally{await r.close()}return await Xh(e),await Ms(e),await Bh(e),await R.rm(pr(e),{force:!0}).catch(()=>{}),{moved:i,planned:t.length}}finally{await Lh(e)}}o(Uh,"runMigration");async function Ls(e){try{if(await Nh(e))return;await Uh(e)}catch(t){if(t instanceof Ie)throw t}}o(Ls,"ensureLayoutMigrated");import{jsx as Ct,jsxs as Ye}from"react/jsx-runtime";import{useMemo as Lw,useRef as Fw,useState as to}from"react";import{jsx as Ec}from"react/jsx-runtime";import{createContext as Ew,useContext as Jr,useEffect as Ge,useMemo as Sc,useState as Iw,useCallback as Ic,useRef as vn}from"react";import{Stream as ew}from"node:stream";import{openSync as tw,writeSync as fc}from"node:fs";import{performance as nw}from"node:perf_hooks";import{tmpdir as rw}from"node:os";import{join as ow}from"node:path";import yr,{forwardRef as zh,useContext as qh}from"react";import{createContext as Wh}from"react";var Be=Wh({isScreenReaderEnabled:!1});import{createContext as Hh}from"react";var en=Hh(void 0);var Fs=zh(({children:e,backgroundColor:t,"aria-label":n,"aria-hidden":r,"aria-role":i,"aria-state":s,...a},c)=>{let{isScreenReaderEnabled:d}=qh(Be),u=n?yr.createElement("ink-text",null,n):void 0;if(d&&r)return null;let l=yr.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}},d&&u?u:e);return t?yr.createElement(en.Provider,{value:t},l):l});Fs.displayName="Box";var q=Fs;import Jh,{useContext as js}from"react";import Xe from"chalk";import ge from"chalk";var Vh=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Gh=/^ansi256\(\s?(\d+)\s?\)$/;function Yh(e){return e in ge}o(Yh,"isNamedColor");function G(e,t,n){if(!t)return e;if(Yh(t)){let r=ge;if(n==="foreground")return r[t]?.(e)??e;let i=`bg${t[0].toUpperCase()+t.slice(1)}`;return r[i]?.(e)??e}if(t.startsWith("#"))return n==="foreground"?ge.hex(t)(e):ge.bgHex(t)(e);if(t.startsWith("ansi256")){let r=Gh.exec(t);if(!r)return e;let i=Number(r[1]);return n==="foreground"?ge.ansi256(i)(e):ge.bgAnsi256(i)(e)}if(t.startsWith("rgb")){let r=Vh.exec(t);if(!r)return e;let i=Number(r[1]),s=Number(r[2]),a=Number(r[3]);return n==="foreground"?ge.rgb(i,s,a)(e):ge.bgRgb(i,s,a)(e)}return e}o(G,"colorize");function K({color:e,backgroundColor:t,dimColor:n=!1,bold:r=!1,italic:i=!1,underline:s=!1,strikethrough:a=!1,inverse:c=!1,wrap:d="wrap",children:u,"aria-label":l,"aria-hidden":f=!1,internal_cursorAnchor:m=!1}){let{isScreenReaderEnabled:p}=js(Be),g=js(en),v=p&&l?l:u;if(v==null)return null;let w=o(y=>{let h=y;n&&(h=Xe.dim(h)),e&&(h=G(h,e,"foreground"));let b=t??g;return b&&(h=G(h,b,"background")),r&&(h=Xe.bold(h)),i&&(h=Xe.italic(h)),s&&(h=Xe.underline(h)),a&&(h=Xe.strikethrough(h)),c&&(h=Xe.inverse(h)),h},"transform");return p&&f?null:Jh.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:d},internal_transform:w,...m?{internal_cursorAnchor:!0}:{}},p&&l?l:u)}o(K,"Text");import rB,{useLayoutEffect as oB,useMemo as iB,useState as sB}from"react";import Pe from"node:process";import dc from"react";import{throttle as $y}from"es-toolkit/compat";import B from"ansi-escapes";import fe from"is-in-ci";import Dy from"auto-bind";import{onExit as Ly}from"signal-exit";import Fy from"patch-console";import{LegacyRoot as jy,ConcurrentRoot as Ky}from"react-reconciler/constants.js";import By from"yoga-layout";import Xy from"wrap-ansi";import Uy from"terminal-size";import Qh from"node:process";var tn=o(()=>Qh.env.DEV==="true","isDev");import Cg from"react-reconciler";import{DefaultEventPriority as Tg,NoEventPriority as aa}from"react-reconciler/constants.js";import*as ye from"scheduler";import ra from"yoga-layout";import{createContext as Rg}from"react";import pg from"yoga-layout";import Zh from"widest-line";var Ks=new Map,eg=o(e=>{if(e.length===0)return{width:0,height:0};let t=Ks.get(e);if(t)return t;let n=Zh(e),r=e.split(`
|
|
543
|
+
`).length,i={width:n,height:r};return Ks.set(e,i),i},"measureText"),wr=eg;import tg from"wrap-ansi";import ng from"cli-truncate";var Bs={},rg=o((e,t,n)=>{let r=e+String(t)+String(n),i=Bs[r];if(i)return i;let s=e;if(n==="wrap"&&(s=tg(e,t,{trim:!1,hard:!0})),n.startsWith("truncate")){let a="end";n==="truncate-middle"&&(a="middle"),n==="truncate-start"&&(a="start"),s=ng(e,t,{position:a})}return Bs[r]=s,s},"wrapText"),nn=rg;var og=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=63},"isCsiParameterCharacter"),ig=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isCsiIntermediateCharacter"),sg=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=64&&t<=126},"isCsiFinalCharacter"),Ws=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=32&&t<=47},"isEscapeIntermediateCharacter"),ag=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=48&&t<=126},"isEscapeFinalCharacter"),Hs=o(e=>{let t=e.codePointAt(0);return t!==void 0&&t>=128&&t<=159},"isC1ControlCharacter"),Xs=o((e,t)=>{let n=t;for(;n<e.length;){let c=e[n];if(!og(c))break;n++}let r=e.slice(t,n),i=n;for(;n<e.length;){let c=e[n];if(!ig(c))break;n++}let s=e.slice(i,n),a=e[n];if(!(a===void 0||!sg(a)))return{endIndex:n+1,parameterString:r,intermediateString:s,finalCharacter:a}},"readCsiSequence"),Us=o((e,t,n)=>{for(let r=t;r<e.length;r++){let i=e[r];if(n&&i==="\x07"||i==="\x9C")return r+1;if(i==="\x1B"){let s=e[r+1];if(s==="\x1B"){r++;continue}if(s==="\\")return r+2}}},"findControlStringTerminatorIndex"),cg=o((e,t)=>{let n=t;for(;n<e.length;){let s=e[n];if(!Ws(s))break;n++}let r=e.slice(t,n),i=e[n];if(!(i===void 0||!ag(i)))return{endIndex:n+1,intermediateString:r,finalCharacter:i}},"readEscapeSequence"),dg=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"),ug=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"),vr=o(e=>{if(e.includes("\x1B"))return!0;for(let t of e)if(Hs(t))return!0;return!1},"hasAnsiControlCharacters"),Ue=o((e,t,n,r)=>(r>n&&e.push({type:"text",value:t.slice(n,r)}),e.push({type:"invalid",value:t.slice(r)}),e),"malformedFromIndex"),zs=o(e=>{if(!vr(e))return[{type:"text",value:e}];let t=[],n=0;for(let r=0;r<e.length;){let i=e[r];if(i===void 0)break;if(i==="\x1B"){let a=e[r+1];if(a===void 0)return Ue(t,e,n,r);if(a==="["){let u=Xs(e,r+2);if(u===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,u.endIndex),parameterString:u.parameterString,intermediateString:u.intermediateString,finalCharacter:u.finalCharacter}),r=u.endIndex,n=r;continue}let c=dg(a);if(c!==void 0){let u=Us(e,r+2,c.allowBellTerminator);if(u===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:c.type,value:e.slice(r,u)}),r=u,n=r;continue}let d=cg(e,r+1);if(d===void 0){if(Ws(a))return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),r++,n=r;continue}r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"esc",value:e.slice(r,d.endIndex),intermediateString:d.intermediateString,finalCharacter:d.finalCharacter}),r=d.endIndex,n=r;continue}if(i==="\x9B"){let a=Xs(e,r+1);if(a===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"csi",value:e.slice(r,a.endIndex),parameterString:a.parameterString,intermediateString:a.intermediateString,finalCharacter:a.finalCharacter}),r=a.endIndex,n=r;continue}let s=ug(i);if(s!==void 0){let a=Us(e,r+1,s.allowBellTerminator);if(a===void 0)return Ue(t,e,n,r);r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:s.type,value:e.slice(r,a)}),r=a,n=r;continue}if(i==="\x9C"){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"st",value:i}),r++,n=r;continue}if(Hs(i)){r>n&&t.push({type:"text",value:e.slice(n,r)}),t.push({type:"c1",value:i}),r++,n=r;continue}r++}return n<e.length&&t.push({type:"text",value:e.slice(n)}),t},"tokenizeAnsi");var lg=/^[\d:;]*$/,fg=o(e=>{if(!vr(e))return e;let t="";for(let n of zs(e)){if(n.type==="text"||n.type==="osc"){t+=n.value;continue}n.type==="csi"&&n.finalCharacter==="m"&&n.intermediateString===""&&lg.test(n.parameterString)&&(t+=n.value)}return t},"sanitizeAnsi"),qs=fg;var Vs=o(e=>{let t="";for(let n=0;n<e.childNodes.length;n++){let r=e.childNodes[n];if(r===void 0)continue;let i="";r.nodeName==="#text"?i=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(i=Vs(r)),i.length>0&&typeof r.internal_transform=="function"&&(i=r.internal_transform(i,n))),t+=i}return qs(t)},"squashTextNodes"),mt=Vs;var rn=o(e=>{let t={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:void 0,yogaNode:e==="ink-virtual-text"?void 0:pg.Node.create(),internal_accessibility:{}};return e==="ink-text"&&t.yogaNode?.setMeasureFunc(mg.bind(null,t)),t},"createNode"),on=o((e,t)=>{t.parentNode&&ht(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")&&sn(e)},"appendChildNode"),br=o((e,t,n)=>{t.parentNode&&ht(t.parentNode,t),t.parentNode=e;let r=e.childNodes.indexOf(n);r>=0?(e.childNodes.splice(r,0,t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,r)):(e.childNodes.push(t),t.yogaNode&&e.yogaNode?.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&sn(e)},"insertBeforeNode"),ht=o((e,t)=>{t.yogaNode&&t.parentNode?.yogaNode?.removeChild(t.yogaNode),t.parentNode=void 0;let n=e.childNodes.indexOf(t);n>=0&&e.childNodes.splice(n,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&sn(e)},"removeChildNode"),kr=o((e,t,n)=>{if(t==="internal_accessibility"){e.internal_accessibility=n;return}e.attributes[t]=n},"setAttribute"),xr=o((e,t)=>{e.style=t},"setStyle"),Gs=o(e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:void 0,style:{}};return gt(t,e),t},"createTextNode"),mg=o(function(e,t){let n=e.nodeName==="#text"?e.nodeValue:mt(e),r=wr(n);if(r.width<=t||r.width>=1&&t>0&&t<1)return r;let i=e.style?.textWrap??"wrap",s=nn(n,t,i);return wr(s)},"measureTextNode"),Ys=o(e=>{if(e?.parentNode)return e.yogaNode??Ys(e.parentNode)},"findClosestYogaNode"),sn=o(e=>{Ys(e)?.markDirty()},"markNodeAsDirty"),gt=o((e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,sn(e)},"setTextNodeValue");import k from"yoga-layout";var gg=o((e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?k.POSITION_TYPE_ABSOLUTE:k.POSITION_TYPE_RELATIVE),"top"in t&&e.setPosition(k.EDGE_TOP,t.top??0),"bottom"in t&&e.setPosition(k.EDGE_BOTTOM,t.bottom??0),"left"in t&&e.setPosition(k.EDGE_LEFT,t.left??0),"right"in t&&e.setPosition(k.EDGE_RIGHT,t.right??0)},"applyPositionStyles"),yg=o((e,t)=>{"margin"in t&&e.setMargin(k.EDGE_ALL,t.margin??0),"marginX"in t&&e.setMargin(k.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&e.setMargin(k.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&e.setMargin(k.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(k.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(k.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(k.EDGE_BOTTOM,t.marginBottom||0)},"applyMarginStyles"),wg=o((e,t)=>{"padding"in t&&e.setPadding(k.EDGE_ALL,t.padding??0),"paddingX"in t&&e.setPadding(k.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&e.setPadding(k.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&e.setPadding(k.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(k.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(k.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(k.EDGE_BOTTOM,t.paddingBottom||0)},"applyPaddingStyles"),vg=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(k.WRAP_NO_WRAP),t.flexWrap==="wrap"&&e.setFlexWrap(k.WRAP_WRAP),t.flexWrap==="wrap-reverse"&&e.setFlexWrap(k.WRAP_WRAP_REVERSE)),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(k.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(k.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(k.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(k.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(k.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(k.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(k.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(k.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(k.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(k.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(k.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(k.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(k.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(k.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(k.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(k.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(k.JUSTIFY_SPACE_AROUND),t.justifyContent==="space-evenly"&&e.setJustifyContent(k.JUSTIFY_SPACE_EVENLY))},"applyFlexStyles"),bg=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"),kg=o((e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?k.DISPLAY_FLEX:k.DISPLAY_NONE)},"applyDisplayStyles"),xg=o((e,t)=>{if("borderStyle"in t){let n=t.borderStyle?1:0;t.borderTop!==!1&&e.setBorder(k.EDGE_TOP,n),t.borderBottom!==!1&&e.setBorder(k.EDGE_BOTTOM,n),t.borderLeft!==!1&&e.setBorder(k.EDGE_LEFT,n),t.borderRight!==!1&&e.setBorder(k.EDGE_RIGHT,n)}},"applyBorderStyles"),Sg=o((e,t)=>{"gap"in t&&e.setGap(k.GUTTER_ALL,t.gap??0),"columnGap"in t&&e.setGap(k.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&e.setGap(k.GUTTER_ROW,t.rowGap??0)},"applyGapStyles"),Eg=o((e,t={})=>{gg(e,t),yg(e,t),wg(e,t),vg(e,t),bg(e,t),kg(e,t),xg(e,t),Sg(e,t)},"styles"),Sr=Eg;if(tn())try{await Promise.resolve().then(()=>(na(),Ig))}catch(e){if(e.code==="ERR_MODULE_NOT_FOUND")console.warn(`
|
|
544
544
|
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
545
545
|
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
546
546
|
|
|
@@ -548,33 +548,33 @@ To install use this command:
|
|
|
548
548
|
|
|
549
549
|
$ npm install --save-dev react-devtools-core
|
|
550
550
|
`.trim()+`
|
|
551
|
-
`);else throw e}var oa=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),ia=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),cn=aa,Cr,sa={name:void 0,version:void 0},se=
|
|
551
|
+
`);else throw e}var oa=o((e,t)=>{if(e===t)return;if(!e)return t;let n={},r=!1;for(let i of Object.keys(e))(!t||!Object.hasOwn(t,i))&&(n[i]=void 0,r=!0);if(t)for(let i of Object.keys(t))t[i]!==e[i]&&(n[i]=t[i],r=!0);return r?n:void 0},"diff"),ia=o(e=>{e?.unsetMeasureFunc(),e?.freeRecursive()},"cleanupYogaNode"),cn=aa,Cr,sa={name:void 0,version:void 0},se=Cg({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 n=e.isInsideText,r=t==="ink-text"||t==="ink-virtual-text";return n===r?e:{isInsideText:r}},shouldSetTextContent:o(()=>!1,"shouldSetTextContent"),createInstance(e,t,n,r){if(r.isInsideText&&e==="ink-box")throw new Error("<Box> can\u2019t be nested inside <Text> component");let i=e==="ink-text"&&r.isInsideText?"ink-virtual-text":e,s=rn(i);for(let[a,c]of Object.entries(t))if(a!=="children"){if(a==="style"){xr(s,c),s.yogaNode&&Sr(s.yogaNode,c);continue}if(a==="internal_transform"){s.internal_transform=c;continue}if(a==="internal_cursorAnchor"){s.internal_cursorAnchor=c;continue}if(a==="internal_static"){Cr=n,s.internal_static=!0,n.isStaticDirty=!0,n.staticNode=s;continue}kr(s,a,c)}return s},createTextInstance(e,t,n){if(!n.isInsideText)throw new Error(`Text string "${e}" must be rendered inside <Text> component`);return Gs(e)},resetTextContent(){},hideTextInstance(e){gt(e,"")},unhideTextInstance(e,t){gt(e,t)},getPublicInstance:o(e=>e,"getPublicInstance"),hideInstance(e){e.yogaNode?.setDisplay(ra.DISPLAY_NONE)},unhideInstance(e){e.yogaNode?.setDisplay(ra.DISPLAY_FLEX)},appendInitialChild:on,appendChild:on,insertBefore:br,finalizeInitialChildren(){return!1},isPrimaryRenderer:!0,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,supportsMicrotasks:!0,scheduleMicrotask:queueMicrotask,scheduleCallback:ye.unstable_scheduleCallback,cancelCallback:ye.unstable_cancelCallback,shouldYield:ye.unstable_shouldYield,now:ye.unstable_now,scheduleTimeout:setTimeout,cancelTimeout:clearTimeout,noTimeout:-1,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},getInstanceFromNode:o(()=>null,"getInstanceFromNode"),prepareScopeUpdate(){},getInstanceFromScope:o(()=>null,"getInstanceFromScope"),appendChildToContainer:on,insertInContainerBefore:br,removeChildFromContainer(e,t){ht(e,t),ia(t.yogaNode)},commitUpdate(e,t,n,r){Cr&&e.internal_static&&(Cr.isStaticDirty=!0);let i=oa(n,r),s=oa(n.style,r.style);if(!(!i&&!s)){if(i)for(let[a,c]of Object.entries(i)){if(a==="style"){xr(e,c);continue}if(a==="internal_transform"){e.internal_transform=c;continue}if(a==="internal_cursorAnchor"){e.internal_cursorAnchor=c;continue}if(a==="internal_static"){e.internal_static=!0;continue}kr(e,a,c)}s&&e.yogaNode&&Sr(e.yogaNode,s)}},commitTextUpdate(e,t,n){gt(e,n)},removeChild(e,t){ht(e,t),ia(t.yogaNode)},setCurrentUpdatePriority(e){cn=e},getCurrentUpdatePriority:o(()=>cn,"getCurrentUpdatePriority"),resolveUpdatePriority(){return cn!==aa?cn:Tg},maySuspendCommit(){return!0},NotPendingTransition:void 0,HostTransitionContext:Rg(null),resetFormInstance(){},requestPostPaintCallback(){},shouldAttemptEagerTransition(){return!1},trackSchedulerEvent(){},resolveEventType(){return null},resolveEventTimeStamp(){return-1.1},preloadInstance(){return!0},startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady(){return null},rendererPackageName:sa.name,rendererVersion:sa.version});import Og from"widest-line";import Ng from"indent-string";import we from"yoga-layout";import dn from"yoga-layout";var _g=o(e=>e.getComputedWidth()-e.getComputedPadding(dn.EDGE_LEFT)-e.getComputedPadding(dn.EDGE_RIGHT)-e.getComputedBorder(dn.EDGE_LEFT)-e.getComputedBorder(dn.EDGE_RIGHT),"getMaxWidth"),ca=_g;import Ag from"cli-boxes";import un from"chalk";var Pg=o((e,t,n,r)=>{if(n.style.borderStyle){let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=typeof n.style.borderStyle=="string"?Ag[n.style.borderStyle]:n.style.borderStyle,c=n.style.borderTopColor??n.style.borderColor,d=n.style.borderBottomColor??n.style.borderColor,u=n.style.borderLeftColor??n.style.borderColor,l=n.style.borderRightColor??n.style.borderColor,f=n.style.borderTopDimColor??n.style.borderDimColor,m=n.style.borderBottomDimColor??n.style.borderDimColor,p=n.style.borderLeftDimColor??n.style.borderDimColor,g=n.style.borderRightDimColor??n.style.borderDimColor,v=n.style.borderTop!==!1,w=n.style.borderBottom!==!1,y=n.style.borderLeft!==!1,h=n.style.borderRight!==!1,b=i-(y?1:0)-(h?1:0),I=v?G((y?a.topLeft:"")+a.top.repeat(b)+(h?a.topRight:""),c,"foreground"):void 0;v&&f&&(I=un.dim(I));let _=s;v&&(_-=1),w&&(_-=1);let W=(G(a.left,u,"foreground")+`
|
|
552
552
|
`).repeat(_);p&&(W=un.dim(W));let H=(G(a.right,l,"foreground")+`
|
|
553
|
-
`).repeat(_);g&&(H=un.dim(H));let A=w?G((y?a.bottomLeft:"")+a.bottom.repeat(b)+(h?a.bottomRight:""),d,"foreground"):void 0;w&&m&&(A=un.dim(A));let Me=v?1:0;I&&r.write(e,t,I,{transformers:[]}),y&&r.write(e,t+Me,W,{transformers:[]}),h&&r.write(e+i-1,t+Me,H,{transformers:[]}),A&&r.write(e,t+s-1,A,{transformers:[]})}},"renderBorder"),da=
|
|
554
|
-
`.repeat(i)+
|
|
555
|
-
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>ln(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),Tr=null,Rr=null;function fa(){Tr=null,Rr=null}o(fa,"resetScrollHint");function pa(){return Tr}o(pa,"getScrollHint");function ma(){return Rr}o(ma,"getScrollRepaint");var ha=o((e,t,n)=>{let{offsetX:r=0,offsetY:i=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===we.DISPLAY_NONE)return;let d=r+c.getComputedLeft(),u=i+c.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:d,y:u});let l=s;if(typeof e.internal_transform=="function"&&(l=[e.internal_transform,...s]),e.nodeName==="ink-text"){let p=mt(e);if(p.length>0){let g=
|
|
553
|
+
`).repeat(_);g&&(H=un.dim(H));let A=w?G((y?a.bottomLeft:"")+a.bottom.repeat(b)+(h?a.bottomRight:""),d,"foreground"):void 0;w&&m&&(A=un.dim(A));let Me=v?1:0;I&&r.write(e,t,I,{transformers:[]}),y&&r.write(e,t+Me,W,{transformers:[]}),h&&r.write(e+i-1,t+Me,H,{transformers:[]}),A&&r.write(e,t+s-1,A,{transformers:[]})}},"renderBorder"),da=Pg;var Mg=o((e,t,n,r)=>{if(!n.style.backgroundColor)return;let i=n.yogaNode.getComputedWidth(),s=n.yogaNode.getComputedHeight(),a=n.style.borderStyle&&n.style.borderLeft!==!1?1:0,c=n.style.borderStyle&&n.style.borderRight!==!1?1:0,d=n.style.borderStyle&&n.style.borderTop!==!1?1:0,u=n.style.borderStyle&&n.style.borderBottom!==!1?1:0,l=i-a-c,f=s-d-u;if(!(l>0&&f>0))return;let m=G(" ".repeat(l),n.style.backgroundColor,"background");for(let p=0;p<f;p++)r.write(e+a,t+d+p,m,{transformers:[]})},"renderBackground"),ua=Mg;function la(e){let{rawScrollTop:t,contentHeight:n,viewportHeight:r,previousScrollHeight:i,stickyScroll:s,clampMin:a,clampMax:c,virtualScrollWindowed:d,inWindowScrollTop:u,previousAppliedScrollTop:l,regionTop:f}=e,m=Math.max(0,n-r),p=Math.max(0,Math.min(Math.floor(t),m)),v=s&&n>=i?m:p,w=a!==void 0||c!==void 0?Math.max(a??0,Math.min(v,Math.min(m,c??m))):v,y=d&&u!==void 0,h=Math.max(0,Math.floor(u??0)),b=d?y?h:0:w,I=y?b:w,_=null;if(l!==void 0&&l!==I&&r>0){let W=f+r-1;W>=f&&(_={top:f,bottom:W,delta:I-l})}return{scrollHeight:n,viewportTop:w,appliedScrollTop:I,scrollTop:w,scrollOffsetY:b,scrollHint:_}}o(la,"computeScrollState");var $g=o((e,t)=>{let n=e.childNodes[0]?.yogaNode;if(n){let r=n.getComputedLeft(),i=n.getComputedTop();t=`
|
|
554
|
+
`.repeat(i)+Ng(t,r)}return t},"applyPaddingToText"),ln=o((e,t={})=>{if(t.skipStaticElements&&e.internal_static||e.yogaNode?.getDisplay()===we.DISPLAY_NONE)return"";let n="";if(e.nodeName==="ink-text")n=mt(e);else if(e.nodeName==="ink-box"||e.nodeName==="ink-root"){let r=e.style.flexDirection==="row"||e.style.flexDirection==="row-reverse"?" ":`
|
|
555
|
+
`;n=(e.style.flexDirection==="row-reverse"||e.style.flexDirection==="column-reverse"?[...e.childNodes].reverse():[...e.childNodes]).map(s=>ln(s,{parentRole:e.internal_accessibility?.role,skipStaticElements:t.skipStaticElements})).filter(Boolean).join(r)}if(e.internal_accessibility){let{role:r,state:i}=e.internal_accessibility;if(i){let a=Object.keys(i).filter(c=>i[c]).join(", ");a&&(n=`(${a}) ${n}`)}r&&r!==t.parentRole&&(n=`${r}: ${n}`)}return n},"renderNodeToScreenReaderOutput"),Tr=null,Rr=null;function fa(){Tr=null,Rr=null}o(fa,"resetScrollHint");function pa(){return Tr}o(pa,"getScrollHint");function ma(){return Rr}o(ma,"getScrollRepaint");var ha=o((e,t,n)=>{let{offsetX:r=0,offsetY:i=0,transformers:s=[],skipStaticElements:a}=n;if(a&&e.internal_static)return;let{yogaNode:c}=e;if(c){if(c.getDisplay()===we.DISPLAY_NONE)return;let d=r+c.getComputedLeft(),u=i+c.getComputedTop();e.internal_cursorAnchor&&(t.cursorPosition={x:d,y:u});let l=s;if(typeof e.internal_transform=="function"&&(l=[e.internal_transform,...s]),e.nodeName==="ink-text"){let p=mt(e);if(p.length>0){let g=Og(p),v=ca(c);if(g>v){let w=e.style.textWrap??"wrap";p=nn(p,v,w)}p=$g(e,p),t.write(d,u,p,{transformers:l})}return}let f=!1,m=0;if(e.nodeName==="ink-box"){ua(d,u,e,t),da(d,u,e,t);let p=e.style.overflowX??e.style.overflow,g=e.style.overflowY??e.style.overflow,v=p==="hidden"||p==="scroll",w=g==="hidden"||g==="scroll";if(g==="scroll"){let y=c.getComputedBorder(we.EDGE_TOP),h=c.getComputedBorder(we.EDGE_BOTTOM),b=Math.max(0,c.getComputedHeight()-y-h),I=e.attributes?.virtualScrollWindowed===!0,_=e.childNodes[0],W=Math.max(0,Math.floor(I?e.attributes?.scrollHeight??0:_?.yogaNode?.getComputedHeight()??e.attributes?.scrollHeight??0)),H=typeof e.scrollHeight=="number"?e.scrollHeight:W,A=la({rawScrollTop:e.scrollTop??e.attributes?.scrollTop??0,contentHeight:W,viewportHeight:b,previousScrollHeight:H,stickyScroll:e.stickyScroll??!!e.attributes?.stickyScroll,clampMin:e.attributes?.scrollClampMin,clampMax:e.attributes?.scrollClampMax,virtualScrollWindowed:I,inWindowScrollTop:e.attributes?.inWindowScrollTop,previousAppliedScrollTop:e.appliedScrollTop,regionTop:u+y});e.scrollHeight=A.scrollHeight,e.scrollViewportHeight=b,e.scrollViewportTop=A.viewportTop,e.appliedScrollTop=A.appliedScrollTop,A.scrollHint&&(Tr=A.scrollHint,Math.trunc(Number(e.attributes?.pendingScrollDelta??0))!==0&&(Rr={top:A.scrollHint.top,bottom:A.scrollHint.bottom})),e.attributes&&e.attributes.pendingScrollDelta&&(e.attributes.pendingScrollDelta=0),e.scrollTop=A.scrollTop,m=A.scrollOffsetY}if(v||w){let y=v?d+c.getComputedBorder(we.EDGE_LEFT):void 0,h=v?d+c.getComputedWidth()-c.getComputedBorder(we.EDGE_RIGHT):void 0,b=w?u+c.getComputedBorder(we.EDGE_TOP):void 0,I=w?u+c.getComputedHeight()-c.getComputedBorder(we.EDGE_BOTTOM):void 0;t.clip({x1:y,x2:h,y1:b,y2:I}),f=!0}}if(e.nodeName==="ink-root"||e.nodeName==="ink-box"){for(let p of e.childNodes)ha(p,t,{offsetX:d,offsetY:u-m,transformers:l,skipStaticElements:a});f&&t.unclip()}}},"renderNodeToOutput"),_r=ha;import Dg from"slice-ansi";import Lg from"string-width";import{styledCharsFromTokens as Fg,styledCharsToString as jg,tokenize as Kg}from"@alcalzone/ansi-tokenize";var Ar=class{static{o(this,"OutputCaches")}widths=new Map;blockWidths=new Map;styledChars=new Map;getStyledChars(t){let n=this.styledChars.get(t);return n===void 0&&(n=Fg(Kg(t)),this.styledChars.set(t,n)),n}getStringWidth(t){let n=this.widths.get(t);return n===void 0&&(n=Lg(t),this.widths.set(t,n)),n}getWidestLine(t){let n=this.blockWidths.get(t);if(n===void 0){let r=0;for(let i of t.split(`
|
|
556
556
|
`))r=Math.max(r,this.getStringWidth(i));n=r,this.blockWidths.set(t,n)}return n}},We=class{static{o(this,"Output")}width;height;operations=[];caches=new Ar;constructor(t){let{width:n,height:r}=t;this.width=n,this.height=r}write(t,n,r,i){let{transformers:s}=i;r&&this.operations.push({type:"write",x:t,y:n,text:r,transformers:s})}clip(t){this.operations.push({type:"clip",clip:t})}unclip(){this.operations.push({type:"unclip"})}getGrid(){let t=[];for(let r=0;r<this.height;r++){let i=[];for(let s=0;s<this.width;s++)i.push({type:"char",value:" ",fullWidth:!1,styles:[]});t.push(i)}let n=[];for(let r of this.operations)if(r.type==="clip"&&n.push(r.clip),r.type==="unclip"&&n.pop(),r.type==="write"){let{text:i,transformers:s}=r,{x:a,y:c}=r,d=i.split(`
|
|
557
|
-
`),u=n.at(-1);if(u){let f=typeof u?.x1=="number"&&typeof u?.x2=="number",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(f){let p=this.caches.getWidestLine(i);if(a+p<u.x1||a>u.x2)continue}if(m){let p=d.length;if(c+p<u.y1||c>u.y2)continue}if(f&&(d=d.map(p=>{let g=a<u.x1?u.x1-a:0,v=this.caches.getStringWidth(p),w=a+v>u.x2?u.x2-a:v;return
|
|
558
|
-
`),height:t.length}}};var Z={Single:0,Wide:1,SpacerTail:2},Q={char:" ",width:Z.Single,style:"",hyperlink:void 0};function ga(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Q);return{width:e,height:t,cells:n}}o(ga,"createScreen");function Ce(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}o(Ce,"cellAt");function ya(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Q),r=!1;return{width:e,height:t,setCellAt(i,s,a){if(r)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}`);n[s*e+i]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}o(ya,"createScreenBuilder");function*fn(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let i=0;i<r;i++)for(let s=0;s<n;s++){let a=Ce(e,s,i),c=Ce(t,s,i);
|
|
557
|
+
`),u=n.at(-1);if(u){let f=typeof u?.x1=="number"&&typeof u?.x2=="number",m=typeof u?.y1=="number"&&typeof u?.y2=="number";if(f){let p=this.caches.getWidestLine(i);if(a+p<u.x1||a>u.x2)continue}if(m){let p=d.length;if(c+p<u.y1||c>u.y2)continue}if(f&&(d=d.map(p=>{let g=a<u.x1?u.x1-a:0,v=this.caches.getStringWidth(p),w=a+v>u.x2?u.x2-a:v;return Dg(p,g,w)}),a<u.x1&&(a=u.x1)),m){let p=c<u.y1?u.y1-c:0,g=d.length,v=c+g>u.y2?u.y2-c:g;d=d.slice(p,v),c<u.y1&&(c=u.y1)}}let l=0;for(let[f,m]of d.entries()){let p=t[c+l];if(!p)continue;for(let w of s)m=w(m,f);let g=this.caches.getStyledChars(m),v=a;for(let w of g){p[v]=w;let y=Math.max(1,this.caches.getStringWidth(w.value));if(y>1)for(let h=1;h<y;h++)p[v+h]={type:"char",value:"",fullWidth:!1,styles:w.styles};v+=y}l++}}return t}get(){let t=this.getGrid();return{output:t.map(r=>{let i=r.filter(s=>s!==void 0);return jg(i).trimEnd()}).join(`
|
|
558
|
+
`),height:t.length}}};var Z={Single:0,Wide:1,SpacerTail:2},Q={char:" ",width:Z.Single,style:"",hyperlink:void 0};function ga(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Q);return{width:e,height:t,cells:n}}o(ga,"createScreen");function Ce(e,t,n){if(!(t<0||n<0||t>=e.width||n>=e.height))return e.cells[n*e.width+t]}o(Ce,"cellAt");function ya(e,t){if(e<0||t<0)throw new RangeError(`Screen dimensions must be non-negative (got width=${e}, height=${t})`);let n=new Array(e*t).fill(Q),r=!1;return{width:e,height:t,setCellAt(i,s,a){if(r)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}`);n[s*e+i]=a},build(){if(r)throw new Error("ScreenBuilder.build called twice");return r=!0,{width:e,height:t,cells:n}}}}o(ya,"createScreenBuilder");function*fn(e,t){let n=Math.max(e.width,t.width),r=Math.max(e.height,t.height);for(let i=0;i<r;i++)for(let s=0;s<n;s++){let a=Ce(e,s,i),c=Ce(t,s,i);Bg(a,c)||(yield{x:s,y:i,prev:a,next:c})}}o(fn,"diffEach");function wa(e,t,n,r){if(r===0||e.height===0)return e;let i=Math.max(0,t),s=Math.min(e.height-1,n);if(i>s)return e;let a=e.width,c=e.cells.slice(),d=s-i+1,u=o(l=>{for(let f=0;f<a;f++)c[l*a+f]=Q},"blankRow");if(Math.abs(r)>=d){for(let l=i;l<=s;l++)u(l);return{...e,cells:c}}if(r>0){for(let l=i;l<=s-r;l++)for(let f=0;f<a;f++)c[l*a+f]=e.cells[(l+r)*a+f]??Q;for(let l=s-r+1;l<=s;l++)u(l)}else{let l=-r;for(let f=s;f>=i+l;f--)for(let m=0;m<a;m++)c[f*a+m]=e.cells[(f-l)*a+m]??Q;for(let f=i;f<=i+l-1;f++)u(f)}return{...e,cells:c}}o(wa,"shiftRowsRegion");function Bg(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(Bg,"cellsEqual");var Pr="\x1B]8;";function Xg(e){return e.endsWith("\x07")?e.slice(0,-1):e}o(Xg,"stripOsc8Terminator");function Ug(e){if(!e.startsWith(Pr))return;let t=e.slice(Pr.length),n=t.indexOf(";");if(n<0)return;let r=t.slice(n+1),i=Xg(r);return i.length>0?i:void 0}o(Ug,"parseOsc8Url");function Wg(e){if(e.value==="")return{char:"",width:Z.SpacerTail,style:"",hyperlink:void 0};let t="",n;for(let r of e.styles)if(r.code.startsWith(Pr)){let i=Ug(r.code);i!==void 0&&(n=i)}else t+=r.code;return{char:e.value,width:e.fullWidth?Z.Wide:Z.Single,style:t,hyperlink:n}}o(Wg,"styledCharToCell");function va(e){let t=e.getGrid(),n=e.width,r=e.height,i=ya(n,r),s=Math.min(t.length,r);for(let a=0;a<s;a++){let c=t[a];if(!c)continue;let d=Math.min(c.length,n);for(let u=0;u<d;u++){let l=c[u];if(!l)continue;let f=Wg(l);f.char===Q.char&&f.width===Q.width&&f.style===Q.style&&f.hyperlink===Q.hyperlink||i.setCellAt(u,a,f)}}return i.build()}o(va,"outputToScreen");var Hg=o((e,t,n)=>{if(e.yogaNode){if(t){let m=ln(e,{skipStaticElements:!0}),p=m===""?0:m.split(`
|
|
559
559
|
`).length,g="";return e.staticNode&&(g=ln(e.staticNode,{skipStaticElements:!1})),{output:m,outputHeight:p,staticOutput:g?`${g}
|
|
560
560
|
`:"",frame:void 0}}let r=new We({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});fa(),_r(e,r,{skipStaticElements:!0});let i;e.staticNode?.yogaNode&&(i=new We({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),_r(e.staticNode,i,{skipStaticElements:!1}));let{output:s,height:a}=r.get(),c=va(r),d=n?.columns??e.yogaNode.getComputedWidth(),u=n?.rows??e.yogaNode.getComputedHeight(),l=r.cursorPosition,f={screen:c,viewport:{width:d,height:u},cursor:{x:0,y:c.height,visible:!1},scrollHint:pa(),scrollRepaint:ma(),...l?{inputCursor:{x:l.x,y:l.y}}:{}};return{output:s,outputHeight:a,staticOutput:i?`${i.get().output}
|
|
561
|
-
`:"",frame:f}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Mr=
|
|
562
|
-
`)}]}o(Nr,"renderFullFrame");var
|
|
563
|
-
`};function kt(e,t,n){let r=t.width===Z.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<i){let l=t.char.length>2?i:i+1;if(c+2>=l)return[[],{dx:0,dy:0}]}let d=[];n.length>0&&d.push({type:"stdout",content:n});let u=r===2&&Ma(t.char);return u&&c+1<i&&(d.push({type:"cursorTo",col:c+2}),d.push({type:"stdout",content:" "}),d.push({type:"cursorTo",col:c+1})),d.push({type:"stdout",content:t.char}),u&&d.push({type:"cursorTo",col:c+r+1}),s=!0,c>=i?[d,{dx:r-c,dy:1}]:[d,{dx:r,dy:0}]}),s}o(kt,"writeCellWithStyleStr");function _e(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[ce,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[ce,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(_e,"moveCursorTo");function xt(e,t,n,r,i=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let f=c-e.cursor.y;e.txn(m=>{let p=new Array(1+f);p[0]=ce;for(let g=0;g<f;g++)p[1+g]=vt;return[p,{dx:-m.x,dy:f}]})}for(let f=0;f<t.screen.width;f++){let m=Ce(t.screen,f,c);if(!m||m.width===Z.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;_e(e,f,c);let p=ae(a,m.hyperlink);for(let v of p.patches)e.txn(()=>[[v],{dx:0,dy:0}]);a=p.current;let g=bt(s,m.style);kt(e,m,g.str)&&(s=g.current)}let d=Te(s,"");for(let f of d.patches)e.txn(()=>[[f],{dx:0,dy:0}]);s=d.current;let u=ae(a,void 0);for(let f of u.patches)e.txn(()=>[[f],{dx:0,dy:0}]);a=u.current;let l=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||i);e.txn(f=>l?[[ce],{dx:-f.x,dy:0}]:[[ce,vt],{dx:-f.x,dy:1}])}if(s!==""||a!==void 0){let c=Te(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let d=ae(a,void 0);for(let u of d.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(xt,"renderFrameSlice");function $r(e,t,n,r){let i=Math.max(0,Math.floor(n)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r));for(let a=i;a<=s;a++)Qg(e,t,a)}o($r,"repaintFrameRows");function Qg(e,t,n){let r="",i;_e(e,0,n),e.txn(()=>[[{type:"stdout",content:He+yt},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=Ce(t.screen,s,n);if(!a||a.width===Z.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;_e(e,s,n);let c=ae(i,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);i=c.current;let d=bt(r,a.style);kt(e,a,d.str)&&(r=d.current)}for(let s of Te(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of ae(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o(Qg,"repaintFrameRow");function Dr(e,t){let n="";for(let r=0;r<e.width;r++){let i=Ce(e,r,t);n+=i?.char??" "}return n.trimEnd()}o(Dr,"readLine");function ze(e,t,n=!1){let r=new Re({x:0,y:0},e.viewport.width);xt(r,e,0,e.screen.height,n);let i=[{type:"clearTerminal",reason:t}];for(let s of r.diff)i.push(s);return i}o(ze,"fullResetSequence_CAUSES_FLICKER");function pn(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,i=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:i,prevHadScrollback:s,nextFitsViewport:a}}o(pn,"computeViewportState");function Oa(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=pn(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of fn(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}o(Oa,"shouldFullReset");function Na(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o(Na,"shouldSkipDiff");var mn=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Nr(n);let i=r.inlineBottomAnchored??!1,s=$a(t,i),a=$a(n,i);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return ze(a,"clear",i);let c=Oa(s,a,Dr);if(c.reset)return ze(a,c.reason,i);if(a.scrollRepaint&&r.altScreen===!0)return Zg(s,a,a.scrollRepaint);let d=a.scrollHint;if(d&&r.altScreen&&r.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&d.delta!==0&&d.top>=0&&d.bottom<s.screen.height&&d.bottom<a.screen.height&&Math.abs(d.delta)<=d.bottom-d.top){let u={type:"scrollRegion",top:d.top,bottom:d.bottom,delta:d.delta},l={...s,screen:wa(s.screen,d.top,d.bottom,d.delta)};return[u,...Da(l,a,i)]}return Da(s,a,i)}reset(){}};function Lr(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o(Lr,"emitPatches");function Fr(e,t,n){if(t!==""){let r=Te(t,"");Lr(e,r.patches)}if(n!==void 0){let r=ae(n,void 0);Lr(e,r.patches)}return{style:"",hyperlink:void 0}}o(Fr,"resetStyleAndHyperlink");function Zg(e,t,n){let r=pn(e,t),i=new Re(e.cursor,t.viewport.width);r.shrinking&&La(i,e,t);let s=Math.max(0,Math.floor(n.top)),a=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(n.bottom)),c=a>=s?{top:s,bottom:a}:void 0;c&&$r(i,t,c.top,c.bottom);let d=Fa(i,e,t,{...r,skipRows:c});return d.needsFullReset?ze(t,"offscreen"):(Fr(i,d.currentStyle,d.currentHyperlink),r.growing&&xt(i,t,e.screen.height,t.screen.height),ja(i,t),i.diff)}o(Zg,"renderScrollRepaint");function La(e,t,n){let r=t.screen.height-n.screen.height;e.txn(i=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-i.x,dy:-r}])}o(La,"applyShrink");function Fa(e,t,n,r){let i="",s,a=!1;for(let c of fn(t.screen,n.screen)){let{x:d,y:u,prev:l,next:f}=c;if(r.growing&&u>=t.screen.height||r.skipRows&&u>=r.skipRows.top&&u<=r.skipRows.bottom)continue;let m=!!(f&&f.char===" "&&f.style===""&&f.hyperlink===void 0);if(!Na(l,f,m)){if(u<r.viewportY){a=!0;break}if(_e(e,d,u),f){let p=ae(s,f.hyperlink);Lr(e,p.patches),s=p.current;let g=bt(i,f.style);kt(e,f,g.str)&&(i=g.current)}else if(l){let p=Fr(e,i,s);i=p.style,s=p.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:a}}o(Fa,"diffPass");function $a(e,t){let n=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<=n?e:{...e,cursor:{...e.cursor,y:n}}}o($a,"clampRestingCursor");function ja(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=ce;for(let a=0;a<r;a++)s[1+a]=vt;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[ce,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):_e(e,t.cursor.x,t.cursor.y)}o(ja,"restoreCursor");function Da(e,t,n=!1){let r=pn(e,t),i=new Re(e.cursor,t.viewport.width);r.shrinking&&La(i,e,t);let s=Fa(i,e,t,r);return s.needsFullReset?ze(t,"offscreen",n):(Fr(i,s.currentStyle,s.currentHyperlink),r.growing&&xt(i,t,e.screen.height,t.screen.height,n),ja(i,t),i.diff)}o(Da,"renderIncremental");var ey="\x1B[?25l",ty="\x1B[?25h",ny=`\x1B[2J${xa}`,ry="\x1B[?2026h",oy="\x1B[?2026l";function iy(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return ey;case"cursorShow":return ty;case"cursorMove":return Sa(e.x,e.y);case"cursorTo":return ka(e.col);case"eraseLine":return Or;case"clear":return Ea(e.count);case"clearTerminal":return ny;case"hyperlink":return wt(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?_a(r):Aa(r);return Ca+Ra(t,n)+i+Ia+Ta}}}o(iy,"patchToBytes");function hn(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=iy(s);if(r.length!==0){if(n&&i){e.write(ry+r+oy);return}e.write(r)}}o(hn,"applyDiff");function Ka(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return hn(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(Ka,"applyCellFrame");function St(e,t){return{screen:ga(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(St,"emptyFrame");import sy from"is-in-ci";var de="\x1B[?2026h",ee="\x1B[?2026l";function ue(e){return"isTTY"in e&&e.isTTY===!0&&!sy}o(ue,"shouldSynchronize");var ay=new WeakMap,Ba=ay;import{EventEmitter as Ty}from"node:events";import Ry from"node:process";import Ae,{useState as Br,useRef as qe,useCallback as M,useMemo as Ve,useEffect as ic}from"react";import _y from"cli-cursor";var cy=o(e=>e>=48&&e<=63,"isCsiParameterByte"),dy=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Ua=o(e=>e>=64&&e<=126,"isCsiFinalByte");function uy(e,t,n){let r=t+n+1,i=r;for(;i<e.length;i+=1){let s=e.codePointAt(i);if(s===void 0)return"pending";if(!(cy(s)||dy(s))&&!(s===91&&i===r))return Ua(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(uy,"parseCsiSequence");function ly(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!Ua(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(ly,"parseSs3Sequence");function Xa(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return uy(e,t,n);if(r==="O")return ly(e,t,n)}o(Xa,"parseControlSequence");function fy(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,i=t+1+r;return{sequence:e.slice(t,i),nextIndex:i}}o(fy,"parseEscapedCodePoint");function py(e){let t=[],n=0,r=o(i=>({events:t,pending:e.slice(i)}),"pendingFrom");for(;n<e.length;){let i=e.indexOf("\x1B",n);if(i===-1)return t.push(e.slice(n)),{events:t,pending:""};if(i>n&&t.push(e.slice(n,i)),i===e.length-1)return r(i);let s=Xa(e,i,1);if(s==="pending")return r(i);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[i+1]==="\x1B"){if(i+2>=e.length)return r(i);let d=Xa(e,i,2);if(d==="pending")return r(i);if(d){t.push(d.sequence),n=d.nextIndex;continue}t.push(e.slice(i,i+2)),n=i+2;continue}let c=fy(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(py,"parseKeypresses");function gn(){let e="";return{push(t){let n=py(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}o(gn,"createInputParser");import{createContext as my}from"react";var Wa=my({exit(){}});Wa.displayName="InternalAppContext";var Ha=Wa;import{EventEmitter as hy}from"node:events";import{createContext as gy}from"react";var yy={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},za=gy({stdin:yy,internal_eventEmitter:new hy,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});za.displayName="InternalStdinContext";var qa=za;import{createContext as wy}from"react";var vy={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},Va=wy({stdout:vy,write(){}});Va.displayName="InternalStdoutContext";var Ga=Va;import{createContext as by}from"react";var ky={isTTY:!1,write(){return!0},on(){},off(){}},Ya=by({stderr:ky,write(){}});Ya.displayName="InternalStderrContext";var Ja=Ya;import{createContext as xy}from"react";var Qa=xy({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});Qa.displayName="InternalFocusContext";var Za=Qa;import{createContext as Sy}from"react";var ec=Sy({setCursorPosition(){}});ec.displayName="InternalCursorContext";var tc=ec;import Iy,{PureComponent as Cy}from"react";import*as yn from"node:fs";import{cwd as oc}from"node:process";import N from"react";import nc from"stack-utils";import Ey from"code-excerpt";var jr=o(e=>e?.replace(`file://${oc()}/`,""),"cleanupPath"),rc=new nc({cwd:oc(),internals:nc.nodeInternals()});function Kr({error:e}){let t=e.stack?e.stack.split(`
|
|
564
|
-
`).slice(1):void 0,n=t?rc.parseLine(t[0]):void 0,r=jr(n?.file),i,s=0;if(r&&n?.line&&yn.existsSync(r)){let a=yn.readFileSync(r,"utf8");if(i=
|
|
565
|
-
`).slice(1).map(a=>{let c=rc.parseLine(a);return c?N.createElement(q,{key:a},N.createElement(K,{dimColor:!0},"- "),N.createElement(K,{dimColor:!0,bold:!0},c.function),N.createElement(K,{dimColor:!0,color:"gray","aria-label":`at ${jr(c.file)??""} line ${c.line} column ${c.column}`}," ","(",jr(c.file)??"",":",c.line,":",c.column,")")):N.createElement(q,{key:a},N.createElement(K,{dimColor:!0},"- "),N.createElement(K,{dimColor:!0,bold:!0},a,"\\t"," "))})))}o(Kr,"ErrorOverview");var Et=class extends
|
|
561
|
+
`:"",frame:f}}return{output:"",outputHeight:0,staticOutput:"",frame:void 0}},"renderer"),Mr=Hg;function U(...e){if(e.length===0)return"\x1B[";if(e.length===1)return`\x1B[${e[0]}`;let t=e.slice(0,-1),n=e[e.length-1];return`\x1B[${t.join(";")}${n}`}o(U,"csi");function ba(e=1){return e===0?"":U(e,"A")}o(ba,"cursorUp");function zg(e=1){return e===0?"":U(e,"B")}o(zg,"cursorDown");function qg(e=1){return e===0?"":U(e,"C")}o(qg,"cursorForward");function Vg(e=1){return e===0?"":U(e,"D")}o(Vg,"cursorBack");function ka(e){return U(e,"G")}o(ka,"cursorTo");var Gg=U("G"),xa=U("H");function Sa(e,t){let n="";return e<0?n+=Vg(-e):e>0&&(n+=qg(e)),t<0?n+=ba(-t):t>0&&(n+=zg(t)),n}o(Sa,"cursorMove");var Or=U(2,"K");function Ea(e){if(e<=0)return"";let t="";for(let n=0;n<e;n++)t+=Or,n<e-1&&(t+=ba(1));return t+=Gg,t}o(Ea,"eraseLines");var Ia=U("r"),Ca="\x1B7",Ta="\x1B8";function Ra(e,t){return U(e,t,"r")}o(Ra,"setScrollRegion");function _a(e=1){return U(e,"S")}o(_a,"scrollUp");function Aa(e=1){return U(e,"T")}o(Aa,"scrollDown");var yt=U(0,"m");function Pa(e){return`\x1B]${e.join(";")}\x07`}o(Pa,"osc");function Yg(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}o(Yg,"osc8Id");function wt(e,t){if(!e)return He;let n={id:Yg(e),...t??{}},r=Object.entries(n).map(([i,s])=>`${i}=${s}`).join(":");return Pa(["8",r,e])}o(wt,"link");var He=Pa(["8","",""]);function Nr(e){let{screen:t}=e;if(t.width===0||t.height===0)return[];let n=[],r="",i;for(let s=0;s<t.height;s++){let a="";for(let c=0;c<t.width;c++){let d=Ce(t,c,s);!d||d.width===Z.SpacerTail||(d.hyperlink!==i&&(i!==void 0&&(a+=He),d.hyperlink!==void 0&&(a+=wt(d.hyperlink)),i=d.hyperlink),d.style!==r&&(r!==""&&(a+=yt),d.style!==""&&(a+=d.style),r=d.style),a+=d.char)}i!==void 0&&(a+=He,i=void 0),r!==""&&(a+=yt,r=""),n.push(a.trimEnd())}return[{type:"stdout",content:n.join(`
|
|
562
|
+
`)}]}o(Nr,"renderFullFrame");var Jg=Object.freeze([]),Qg=Object.freeze([]);function Te(e,t){if(e===t)return{patches:Jg,current:e};let n=[];return e!==""&&n.push({type:"stdout",content:yt}),t!==""&&n.push({type:"stdout",content:t}),{patches:n,current:t}}o(Te,"transitionStyle");function bt(e,t){let n=Te(e,t),r="";for(let i of n.patches)i.type==="stdout"&&(r+=i.content);return{str:r,current:n.current}}o(bt,"transitionStyleStr");function ae(e,t){if(e===t)return{patches:Qg,current:e};let n=[];return e!==void 0&&n.push({type:"stdout",content:He}),t!==void 0&&n.push({type:"stdout",content:wt(t)}),{patches:n,current:t}}o(ae,"transitionHyperlink");function Ma(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 n=0;n<e.length;n++)if(e.charCodeAt(n)===65039)return!0}return!1}o(Ma,"needsWidthCompensation");var Re=class{static{o(this,"VirtualScreen")}viewportWidth;cursor;diff;_cursorMut;_diffMut=[];constructor(t,n){this.viewportWidth=n,this._cursorMut={x:t.x,y:t.y},this.cursor=this._cursorMut,this.diff=this._diffMut}txn(t){let[n,r]=t(this.cursor);for(let i of n)this._diffMut.push(i);this._cursorMut.x+=r.dx,this._cursorMut.y+=r.dy}},ce={type:"carriageReturn"},vt={type:"stdout",content:`
|
|
563
|
+
`};function kt(e,t,n){let r=t.width===Z.Wide?2:1,i=e.viewportWidth,s=!1;return e.txn(a=>{let c=a.x;if(r===2&&c<i){let l=t.char.length>2?i:i+1;if(c+2>=l)return[[],{dx:0,dy:0}]}let d=[];n.length>0&&d.push({type:"stdout",content:n});let u=r===2&&Ma(t.char);return u&&c+1<i&&(d.push({type:"cursorTo",col:c+2}),d.push({type:"stdout",content:" "}),d.push({type:"cursorTo",col:c+1})),d.push({type:"stdout",content:t.char}),u&&d.push({type:"cursorTo",col:c+r+1}),s=!0,c>=i?[d,{dx:r-c,dy:1}]:[d,{dx:r,dy:0}]}),s}o(kt,"writeCellWithStyleStr");function _e(e,t,n){e.txn(r=>{let i=t-r.x,s=n-r.y;return r.x>=e.viewportWidth?[[ce,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:s!==0?[[ce,{type:"cursorMove",x:t,y:s}],{dx:i,dy:s}]:[[{type:"cursorMove",x:i,y:s}],{dx:i,dy:s}]})}o(_e,"moveCursorTo");function xt(e,t,n,r,i=!1){let s="",a;for(let c=n;c<r;c++){if(e.cursor.y<c){let f=c-e.cursor.y;e.txn(m=>{let p=new Array(1+f);p[0]=ce;for(let g=0;g<f;g++)p[1+g]=vt;return[p,{dx:-m.x,dy:f}]})}for(let f=0;f<t.screen.width;f++){let m=Ce(t.screen,f,c);if(!m||m.width===Z.SpacerTail||m.char===" "&&m.style===""&&m.hyperlink===void 0)continue;_e(e,f,c);let p=ae(a,m.hyperlink);for(let v of p.patches)e.txn(()=>[[v],{dx:0,dy:0}]);a=p.current;let g=bt(s,m.style);kt(e,m,g.str)&&(s=g.current)}let d=Te(s,"");for(let f of d.patches)e.txn(()=>[[f],{dx:0,dy:0}]);s=d.current;let u=ae(a,void 0);for(let f of u.patches)e.txn(()=>[[f],{dx:0,dy:0}]);a=u.current;let l=c===r-1&&t.screen.height<=t.viewport.height&&(c+1>=t.viewport.height||i);e.txn(f=>l?[[ce],{dx:-f.x,dy:0}]:[[ce,vt],{dx:-f.x,dy:1}])}if(s!==""||a!==void 0){let c=Te(s,"");for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);let d=ae(a,void 0);for(let u of d.patches)e.txn(()=>[[u],{dx:0,dy:0}])}}o(xt,"renderFrameSlice");function $r(e,t,n,r){let i=Math.max(0,Math.floor(n)),s=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(r));for(let a=i;a<=s;a++)Zg(e,t,a)}o($r,"repaintFrameRows");function Zg(e,t,n){let r="",i;_e(e,0,n),e.txn(()=>[[{type:"stdout",content:He+yt},{type:"eraseLine"}],{dx:0,dy:0}]);for(let s=0;s<t.screen.width;s++){let a=Ce(t.screen,s,n);if(!a||a.width===Z.SpacerTail||a.char===" "&&a.style===""&&a.hyperlink===void 0)continue;_e(e,s,n);let c=ae(i,a.hyperlink);for(let u of c.patches)e.txn(()=>[[u],{dx:0,dy:0}]);i=c.current;let d=bt(r,a.style);kt(e,a,d.str)&&(r=d.current)}for(let s of Te(r,"").patches)e.txn(()=>[[s],{dx:0,dy:0}]);for(let s of ae(i,void 0).patches)e.txn(()=>[[s],{dx:0,dy:0}])}o(Zg,"repaintFrameRow");function Dr(e,t){let n="";for(let r=0;r<e.width;r++){let i=Ce(e,r,t);n+=i?.char??" "}return n.trimEnd()}o(Dr,"readLine");function ze(e,t,n=!1){let r=new Re({x:0,y:0},e.viewport.width);xt(r,e,0,e.screen.height,n);let i=[{type:"clearTerminal",reason:t}];for(let s of r.diff)i.push(s);return i}o(ze,"fullResetSequence_CAUSES_FLICKER");function pn(e,t){let n=e.cursor.y>=e.screen.height,r=t.screen.height>e.screen.height,i=t.screen.height<e.screen.height,s=n&&e.screen.height>=e.viewport.height,a=t.screen.height<=e.viewport.height,c=s?1:0;return{viewportY:r?Math.max(0,e.screen.height-e.viewport.height+c):Math.max(e.screen.height,t.screen.height)-t.viewport.height+c,cursorAtBottom:n,growing:r,shrinking:i,prevHadScrollback:s,nextFitsViewport:a}}o(pn,"computeViewportState");function Oa(e,t,n){if(t.viewport.height<e.viewport.height||e.viewport.width!==0&&t.viewport.width!==e.viewport.width)return{reset:!0,reason:"resize"};let r=pn(e,t);if(r.prevHadScrollback&&r.nextFitsViewport&&r.shrinking)return{reset:!0,reason:"offscreen"};if(e.screen.height>=e.viewport.height&&e.screen.height>0&&r.cursorAtBottom&&!r.growing){let s=e.screen.height-e.viewport.height+1;for(let a of fn(e.screen,t.screen))if(a.y<s)return{reset:!0,reason:"offscreen",trigger:{y:a.y,prevLine:n(e.screen,a.y),nextLine:n(t.screen,a.y)}}}return r.shrinking&&e.screen.height-t.screen.height>e.viewport.height?{reset:!0,reason:"offscreen"}:{reset:!1}}o(Oa,"shouldFullReset");function Na(e,t,n){return!!(t&&t.width===2||e&&e.width===2&&!t||t&&n&&!e)}o(Na,"shouldSkipDiff");var mn=class{static{o(this,"LogUpdate")}options;constructor(t){this.options=t}render(t,n,r={}){if(!this.options.isTTY)return Nr(n);let i=r.inlineBottomAnchored??!1,s=$a(t,i),a=$a(n,i);if(r.altScreen===!0&&t.screen.height===0&&a.screen.height>0)return ze(a,"clear",i);let c=Oa(s,a,Dr);if(c.reset)return ze(a,c.reason,i);if(a.scrollRepaint&&r.altScreen===!0)return ey(s,a,a.scrollRepaint);let d=a.scrollHint;if(d&&r.altScreen&&r.decstbmSafe&&process.env.KODAX_SCROLL_DECSTBM==="1"&&d.delta!==0&&d.top>=0&&d.bottom<s.screen.height&&d.bottom<a.screen.height&&Math.abs(d.delta)<=d.bottom-d.top){let u={type:"scrollRegion",top:d.top,bottom:d.bottom,delta:d.delta},l={...s,screen:wa(s.screen,d.top,d.bottom,d.delta)};return[u,...Da(l,a,i)]}return Da(s,a,i)}reset(){}};function Lr(e,t){for(let n of t)e.txn(()=>[[n],{dx:0,dy:0}])}o(Lr,"emitPatches");function Fr(e,t,n){if(t!==""){let r=Te(t,"");Lr(e,r.patches)}if(n!==void 0){let r=ae(n,void 0);Lr(e,r.patches)}return{style:"",hyperlink:void 0}}o(Fr,"resetStyleAndHyperlink");function ey(e,t,n){let r=pn(e,t),i=new Re(e.cursor,t.viewport.width);r.shrinking&&La(i,e,t);let s=Math.max(0,Math.floor(n.top)),a=Math.min(t.screen.height-1,t.viewport.height-1,Math.floor(n.bottom)),c=a>=s?{top:s,bottom:a}:void 0;c&&$r(i,t,c.top,c.bottom);let d=Fa(i,e,t,{...r,skipRows:c});return d.needsFullReset?ze(t,"offscreen"):(Fr(i,d.currentStyle,d.currentHyperlink),r.growing&&xt(i,t,e.screen.height,t.screen.height),ja(i,t),i.diff)}o(ey,"renderScrollRepaint");function La(e,t,n){let r=t.screen.height-n.screen.height;e.txn(i=>[[{type:"clear",count:r},{type:"cursorMove",x:0,y:-1}],{dx:-i.x,dy:-r}])}o(La,"applyShrink");function Fa(e,t,n,r){let i="",s,a=!1;for(let c of fn(t.screen,n.screen)){let{x:d,y:u,prev:l,next:f}=c;if(r.growing&&u>=t.screen.height||r.skipRows&&u>=r.skipRows.top&&u<=r.skipRows.bottom)continue;let m=!!(f&&f.char===" "&&f.style===""&&f.hyperlink===void 0);if(!Na(l,f,m)){if(u<r.viewportY){a=!0;break}if(_e(e,d,u),f){let p=ae(s,f.hyperlink);Lr(e,p.patches),s=p.current;let g=bt(i,f.style);kt(e,f,g.str)&&(i=g.current)}else if(l){let p=Fr(e,i,s);i=p.style,s=p.hyperlink,e.txn(()=>[[{type:"stdout",content:" "}],{dx:1,dy:0}])}}}return{currentStyle:i,currentHyperlink:s,needsFullReset:a}}o(Fa,"diffPass");function $a(e,t){let n=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<=n?e:{...e,cursor:{...e.cursor,y:n}}}o($a,"clampRestingCursor");function ja(e,t){t.cursor.y>=t.screen.height?e.txn(n=>{let r=t.cursor.y-n.y;if(r>0){let s=new Array(1+r);s[0]=ce;for(let a=0;a<r;a++)s[1+a]=vt;return[s,{dx:-n.x,dy:r}]}let i=t.cursor.y-n.y;return i!==0||n.x!==t.cursor.x?[[ce,{type:"cursorMove",x:t.cursor.x,y:i}],{dx:t.cursor.x-n.x,dy:i}]:[[],{dx:0,dy:0}]}):_e(e,t.cursor.x,t.cursor.y)}o(ja,"restoreCursor");function Da(e,t,n=!1){let r=pn(e,t),i=new Re(e.cursor,t.viewport.width);r.shrinking&&La(i,e,t);let s=Fa(i,e,t,r);return s.needsFullReset?ze(t,"offscreen",n):(Fr(i,s.currentStyle,s.currentHyperlink),r.growing&&xt(i,t,e.screen.height,t.screen.height,n),ja(i,t),i.diff)}o(Da,"renderIncremental");var ty="\x1B[?25l",ny="\x1B[?25h",ry=`\x1B[2J${xa}`,oy="\x1B[?2026h",iy="\x1B[?2026l";function sy(e){switch(e.type){case"stdout":return e.content;case"carriageReturn":return"\r";case"cursorHide":return ty;case"cursorShow":return ny;case"cursorMove":return Sa(e.x,e.y);case"cursorTo":return ka(e.col);case"eraseLine":return Or;case"clear":return Ea(e.count);case"clearTerminal":return ry;case"hyperlink":return wt(e.uri);case"scrollRegion":{let t=e.top+1,n=e.bottom+1,r=Math.abs(e.delta),i=e.delta>0?_a(r):Aa(r);return Ca+Ra(t,n)+i+Ia+Ta}}}o(sy,"patchToBytes");function hn(e,t,n=!1){let r="",i=!1;for(let s of t)s.type==="clearTerminal"&&(i=!0),r+=sy(s);if(r.length!==0){if(n&&i){e.write(oy+r+iy);return}e.write(r)}}o(hn,"applyDiff");function Ka(e,t,n={}){if(t===void 0)return!1;let r=e.cellLogUpdate.render(e.prevFrame,t,n);return hn(e.stdout,r,n.synchronized??!1),e.prevFrame=t,!0}o(Ka,"applyCellFrame");function St(e,t){return{screen:ga(0,0),viewport:{width:t,height:e},cursor:{x:0,y:0,visible:!0}}}o(St,"emptyFrame");import ay from"is-in-ci";var de="\x1B[?2026h",ee="\x1B[?2026l";function ue(e){return"isTTY"in e&&e.isTTY===!0&&!ay}o(ue,"shouldSynchronize");var cy=new WeakMap,Ba=cy;import{EventEmitter as Ry}from"node:events";import _y from"node:process";import Ae,{useState as Br,useRef as qe,useCallback as M,useMemo as Ve,useEffect as ic}from"react";import Ay from"cli-cursor";var dy=o(e=>e>=48&&e<=63,"isCsiParameterByte"),uy=o(e=>e>=32&&e<=47,"isCsiIntermediateByte"),Ua=o(e=>e>=64&&e<=126,"isCsiFinalByte");function ly(e,t,n){let r=t+n+1,i=r;for(;i<e.length;i+=1){let s=e.codePointAt(i);if(s===void 0)return"pending";if(!(dy(s)||uy(s))&&!(s===91&&i===r))return Ua(s)?{sequence:e.slice(t,i+1),nextIndex:i+1}:void 0}return"pending"}o(ly,"parseCsiSequence");function fy(e,t,n){let r=t+n+2;if(r>e.length)return"pending";let i=e.codePointAt(r-1);if(!(i===void 0||!Ua(i)))return{sequence:e.slice(t,r),nextIndex:r}}o(fy,"parseSs3Sequence");function Xa(e,t,n){let r=e[t+n];if(r===void 0)return"pending";if(r==="[")return ly(e,t,n);if(r==="O")return fy(e,t,n)}o(Xa,"parseControlSequence");function py(e,t){let n=e.codePointAt(t+1),r=n!==void 0&&n>65535?2:1,i=t+1+r;return{sequence:e.slice(t,i),nextIndex:i}}o(py,"parseEscapedCodePoint");function my(e){let t=[],n=0,r=o(i=>({events:t,pending:e.slice(i)}),"pendingFrom");for(;n<e.length;){let i=e.indexOf("\x1B",n);if(i===-1)return t.push(e.slice(n)),{events:t,pending:""};if(i>n&&t.push(e.slice(n,i)),i===e.length-1)return r(i);let s=Xa(e,i,1);if(s==="pending")return r(i);if(s){t.push(s.sequence),n=s.nextIndex;continue}if(e[i+1]==="\x1B"){if(i+2>=e.length)return r(i);let d=Xa(e,i,2);if(d==="pending")return r(i);if(d){t.push(d.sequence),n=d.nextIndex;continue}t.push(e.slice(i,i+2)),n=i+2;continue}let c=py(e,i);t.push(c.sequence),n=c.nextIndex}return{events:t,pending:""}}o(my,"parseKeypresses");function gn(){let e="";return{push(t){let n=my(e+t);return e=n.pending,n.events},hasPendingEscape(){return e.startsWith("\x1B")},flushPendingEscape(){if(!e.startsWith("\x1B"))return;let t=e;return e="",t},reset(){e=""}}}o(gn,"createInputParser");import{createContext as hy}from"react";var Wa=hy({exit(){}});Wa.displayName="InternalAppContext";var Ha=Wa;import{EventEmitter as gy}from"node:events";import{createContext as yy}from"react";var wy={isTTY:!1,isRaw:!1,on(){},off(){},pause(){},resume(){},setRawMode(){}},za=yy({stdin:wy,internal_eventEmitter:new gy,setRawMode(){},isRawModeSupported:!1,internal_exitOnCtrlC:!0});za.displayName="InternalStdinContext";var qa=za;import{createContext as vy}from"react";var by={isTTY:!1,columns:80,rows:24,write(){return!0},on(){},off(){}},Va=vy({stdout:by,write(){}});Va.displayName="InternalStdoutContext";var Ga=Va;import{createContext as ky}from"react";var xy={isTTY:!1,write(){return!0},on(){},off(){}},Ya=ky({stderr:xy,write(){}});Ya.displayName="InternalStderrContext";var Ja=Ya;import{createContext as Sy}from"react";var Qa=Sy({activeId:void 0,add(){},remove(){},activate(){},deactivate(){},enableFocus(){},disableFocus(){},focusNext(){},focusPrevious(){},focus(){}});Qa.displayName="InternalFocusContext";var Za=Qa;import{createContext as Ey}from"react";var ec=Ey({setCursorPosition(){}});ec.displayName="InternalCursorContext";var tc=ec;import Cy,{PureComponent as Ty}from"react";import*as yn from"node:fs";import{cwd as oc}from"node:process";import N from"react";import nc from"stack-utils";import Iy from"code-excerpt";var jr=o(e=>e?.replace(`file://${oc()}/`,""),"cleanupPath"),rc=new nc({cwd:oc(),internals:nc.nodeInternals()});function Kr({error:e}){let t=e.stack?e.stack.split(`
|
|
564
|
+
`).slice(1):void 0,n=t?rc.parseLine(t[0]):void 0,r=jr(n?.file),i,s=0;if(r&&n?.line&&yn.existsSync(r)){let a=yn.readFileSync(r,"utf8");if(i=Iy(a,n.line),i)for(let{line:c}of i)s=Math.max(s,String(c).length)}return N.createElement(q,{flexDirection:"column",padding:1},N.createElement(q,null,N.createElement(K,{backgroundColor:"red",color:"white"}," ","ERROR"," "),N.createElement(K,null," ",e.message)),n&&r&&N.createElement(q,{marginTop:1},N.createElement(K,{dimColor:!0},r,":",n.line,":",n.column)),n&&i&&N.createElement(q,{marginTop:1,flexDirection:"column"},i.map(({line:a,value:c})=>N.createElement(q,{key:a},N.createElement(q,{width:s+1},N.createElement(K,{dimColor:a!==n.line,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0,"aria-label":a===n.line?`Line ${a}, error`:`Line ${a}`},String(a).padStart(s," "),":")),N.createElement(K,{key:a,backgroundColor:a===n.line?"red":void 0,color:a===n.line?"white":void 0}," "+c)))),e.stack&&N.createElement(q,{marginTop:1,flexDirection:"column"},e.stack.split(`
|
|
565
|
+
`).slice(1).map(a=>{let c=rc.parseLine(a);return c?N.createElement(q,{key:a},N.createElement(K,{dimColor:!0},"- "),N.createElement(K,{dimColor:!0,bold:!0},c.function),N.createElement(K,{dimColor:!0,color:"gray","aria-label":`at ${jr(c.file)??""} line ${c.line} column ${c.column}`}," ","(",jr(c.file)??"",":",c.line,":",c.column,")")):N.createElement(q,{key:a},N.createElement(K,{dimColor:!0},"- "),N.createElement(K,{dimColor:!0,bold:!0},a,"\\t"," "))})))}o(Kr,"ErrorOverview");var Et=class extends Ty{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?Cy.createElement(Kr,{error:this.state.error}):this.props.children}};var Py=" ",My="\x1B[Z",Oy="\x1B";function sc({children:e,stdin:t,stdout:n,stderr:r,writeToStdout:i,writeToStderr:s,exitOnCtrlC:a,onExit:c,setCursorPosition:d}){let[u,l]=Br(!0),[f,m]=Br(void 0),[,p]=Br([]),g=qe(0),v=qe(0),w=qe(new Ry);w.current.setMaxListeners(1/0);let y=qe(void 0),h=qe(gn()),b=qe(void 0),I=M(()=>{b.current&&(clearImmediate(b.current),b.current=void 0)},[]),_=t.isTTY,W=M(()=>{y.current&&(t.removeListener("readable",y.current),y.current=void 0)},[t]),H=M(()=>{t.setRawMode(!1),W(),t.unref(),v.current=0,h.current.reset(),I()},[t,W,I]),A=M(x=>{_&&v.current>0&&H(),c(x)},[_,H,c]),Me=M(x=>{if(x===""&&a){A();return}x===Oy&&m(S=>S&&void 0)},[a,A]),Tt=M(x=>{Me(x),w.current.emit("input",x)},[Me]),no=M(()=>{I(),b.current=setImmediate(()=>{b.current=void 0;let x=h.current.flushPendingEscape();x&&Tt(x)})},[I,Tt]),En=M(()=>{I();let x;for(;(x=t.read())!==null;){let S=h.current.push(x);for(let E of S)Tt(E)}h.current.hasPendingEscape()&&no()},[t,Tt,I,no]),ro=M(x=>{if(!_)throw t===_y.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
|
|
566
566
|
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.
|
|
567
|
-
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),x){v.current===0&&(t.ref(),t.setRawMode(!0),y.current=En,t.addListener("readable",En)),v.current++;return}v.current!==0&&--v.current===0&&H()},[_,t,En,H]),oo=M((x,S)=>{let E=x.findIndex($=>$.id===S);for(let $=E+1;$<x.length;$++){let te=x[$];if(te?.isActive)return te.id}},[]),io=M((x,S)=>{let E=x.findIndex($=>$.id===S);for(let $=E-1;$>=0;$--){let te=x[$];if(te?.isActive)return te.id}},[]),Rt=M(()=>{p(x=>(m(S=>{let E=x.find(te=>te.isActive)?.id;return oo(x,S)??E}),x))},[oo]),_t=M(()=>{p(x=>(m(S=>{let E=x.findLast(te=>te.isActive)?.id;return io(x,S)??E}),x))},[io]);ic(()=>{let x=o(E=>{!u||g.current===0||(E===
|
|
567
|
+
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(t.setEncoding("utf8"),x){v.current===0&&(t.ref(),t.setRawMode(!0),y.current=En,t.addListener("readable",En)),v.current++;return}v.current!==0&&--v.current===0&&H()},[_,t,En,H]),oo=M((x,S)=>{let E=x.findIndex($=>$.id===S);for(let $=E+1;$<x.length;$++){let te=x[$];if(te?.isActive)return te.id}},[]),io=M((x,S)=>{let E=x.findIndex($=>$.id===S);for(let $=E-1;$>=0;$--){let te=x[$];if(te?.isActive)return te.id}},[]),Rt=M(()=>{p(x=>(m(S=>{let E=x.find(te=>te.isActive)?.id;return oo(x,S)??E}),x))},[oo]),_t=M(()=>{p(x=>(m(S=>{let E=x.findLast(te=>te.isActive)?.id;return io(x,S)??E}),x))},[io]);ic(()=>{let x=o(E=>{!u||g.current===0||(E===Py&&Rt(),E===My&&_t())},"handleTabNavigation");w.current.on("input",x);let S=w.current;return()=>{S.off("input",x)}},[u,Rt,_t]);let so=M(()=>{l(!0)},[]),ao=M(()=>{l(!1)},[]),co=M(x=>{p(S=>(S.some($=>$?.id===x)&&m(x),S))},[]),uo=M((x,{autoFocus:S})=>{p(E=>(g.current=E.length+1,[...E,{id:x,isActive:!0}])),S&&m(E=>E??x)},[]),lo=M(x=>{m(S=>S===x?void 0:S),p(S=>{let E=S.filter($=>$.id!==x);return g.current=E.length,E})},[]),fo=M(x=>{p(S=>S.map(E=>E.id!==x?E:{id:x,isActive:!0}))},[]),po=M(x=>{m(S=>S===x?void 0:S),p(S=>S.map(E=>E.id!==x?E:{id:x,isActive:!1}))},[]);ic(()=>()=>{Ay.show(n),_&&v.current>0&&H()},[n,_,H]);let Lc=Ve(()=>({exit:A}),[A]),Fc=Ve(()=>({stdin:t,setRawMode:ro,isRawModeSupported:_,internal_exitOnCtrlC:a,internal_eventEmitter:w.current}),[t,ro,_,a]),jc=Ve(()=>({stdout:n,write:i}),[n,i]),Kc=Ve(()=>({stderr:r,write:s}),[r,s]),Bc=Ve(()=>({setCursorPosition:d}),[d]),Xc=Ve(()=>({activeId:f,add:uo,remove:lo,activate:fo,deactivate:po,enableFocus:so,disableFocus:ao,focusNext:Rt,focusPrevious:_t,focus:co}),[f,uo,lo,fo,po,so,ao,Rt,_t,co]);return Ae.createElement(Ha.Provider,{value:Lc},Ae.createElement(qa.Provider,{value:Fc},Ae.createElement(Ga.Provider,{value:jc},Ae.createElement(Ja.Provider,{value:Kc},Ae.createElement(Za.Provider,{value:Xc},Ae.createElement(tc.Provider,{value:Bc},Ae.createElement(Et,{onError:A},e)))))))}o(sc,"App");sc.displayName="InternalApp";var ac=sc;var Ny={disambiguateEscapeCodes:1,reportEventTypes:2,reportAlternateKeys:4,reportAllKeysAsEscapeCodes:8,reportAssociatedText:16};function cc(e){let t=0;for(let n of e)t|=Ny[n];return t}o(cc,"resolveFlags");var le={shift:1,alt:2,ctrl:4,super:8,hyper:16,meta:32,capsLock:64,numLock:128};var Xr=o((e,t)=>(t<0?B.cursorUp(-t):t>0?B.cursorDown(t):"")+(e<0?B.cursorBackward(-e):e>0?B.cursorForward(e):""),"cursorMoveSeq"),Ur=o((e,t=!1)=>{let n=Math.max(0,e.screen.height-e.viewport.height),r=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-n,0),r)})},"toVisibleCursor"),wn=o(()=>{},"noop"),Wy=27,Hy=91,zy=63,qy=117,Vy=48,Gy=57,Yy=o(e=>e>=Vy&&e<=Gy,"isDigitByte"),uc=o((e,t)=>{if(e[t]!==Wy||e[t+1]!==Hy||e[t+2]!==zy)return;let n=t+3,r=n;for(;n<e.length&&Yy(e[n]);)n++;if(n!==r){if(n===e.length)return{state:"partial"};if(e[n]===qy)return{state:"complete",endIndex:n}}},"matchKittyQueryResponse"),Jy=o(e=>{for(let t=0;t<e.length;t++)if(uc(e,t)?.state==="complete")return!0;return!1},"hasCompleteKittyQueryResponse"),Qy=o(e=>{let t=[],n=0;for(;n<e.length;){let r=uc(e,n);if(r?.state==="complete"){n=r.endIndex+1;continue}if(r?.state==="partial")break;t.push(e[n]),n++}return t},"stripKittyQueryResponsesAndTrailingPartial"),Wr=o(e=>e instanceof Error||Object.prototype.toString.call(e)==="[object Error]","isErrorInput"),Zy=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;altScreenActive=!1;shellMode;mouseTrackingActive=!1;shellTransitionPhase=void 0;cursorHidden=!1;constructor(t){Dy(this),this.options=t,this.rawStdoutWrite=t.stdout.write.bind(t.stdout),this.rawStderrWrite=t.stderr.write.bind(t.stderr),this.rootNode=rn("ink-root"),this.rootNode.onComputeLayout=this.calculateLayout,this.isScreenReaderEnabled=t.isScreenReaderEnabled??Pe.env.INK_SCREEN_READER==="true";let n=t.debug||this.isScreenReaderEnabled,r=t.maxFps??30,i=r>0?Math.max(1,Math.ceil(1e3/r)):0;if(n)this.rootNode.onRender=this.onRender,this.throttledOnRender=void 0;else{let a=$y(this.onRender,i,{leading:!0,trailing:!0});this.rootNode.onRender=()=>{this.hasPendingThrottledRender=!0,a()},this.throttledOnRender=a}this.rootNode.onImmediateRender=this.onRender,this.cellLogUpdate=new mn({isTTY:!!t.stdout.isTTY}),this.prevFrame=St(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?Ky:jy;this.container=se.createContainer(this.rootNode,s,null,!1,null,"id",()=>{},()=>{},()=>{},()=>{}),this.unsubscribeExit=Ly(this.unmount,{alwaysLast:!1}),tn()&&se.injectIntoDevTools(),t.patchConsole&&this.patchConsole(),fe||(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:Uy()?.columns??80,"getTerminalWidth");resized=o(()=>{let t=this.getTerminalWidth();if(t<this.lastTerminalWidth){this.returnCursorToRest();let n=this.altScreenActive?this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"":this.eraseInlineLiveBlock();n.length>0&&this.writeStdout(n),this.lastOutput="",this.lastOutputToRender="",this.cellLogUpdate.reset(),this.prevFrame=St(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(Wr(t)){this.unmount(t);return}this.exitResult=t,this.unmount()}},"handleAppExit");setCursorPosition=o(t=>{if(t===void 0){this.cursorPosition=void 0;return}let n=this.getTerminalWidth(),r=this.options.stdout.rows??24;if(n<=0||r<=0){this.cursorPosition=void 0;return}let i=Math.max(0,Math.min(t.x|0,n-1)),s=Math.max(0,Math.min(t.y|0,r-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,n){let r=this.shellMode,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.shellMode=t,this.mouseTrackingActive=a;let c=this.usesVirtualShellOwnership();(r!==t&&(s||c)||i!==a&&c)&&this.resetOutputTracking()}setAltScreenActive(t,n){let r=this.altScreenActive,i=this.mouseTrackingActive,s=this.usesVirtualShellOwnership(),a=n??!1;this.altScreenActive=t,this.mouseTrackingActive=a,this.shellTransitionPhase=void 0;let c=this.usesVirtualShellOwnership();(r!==t||i!==a&&(s||c))&&this.resetOutputTracking()}clearTextSelection(){}installExternalStreamWriteGuard(){if(this.options.debug||fe)return;let t=this.options.stdout,n=this.options.stderr,r=t.write,i=n.write,s=o((...c)=>{let d=this.rawStdoutWrite(...c);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),d},"guardedStdoutWrite"),a=o((...c)=>{let d=this.rawStderrWrite(...c);return this.internalStreamWriteDepth===0&&this.handleExternalStreamWrite(),d},"guardedStderrWrite");t.write=s,n.write=a,this.restoreStreamWriteGuard=()=>{t.write===s&&(t.write=r),n.write===a&&(n.write=i)}}handleExternalStreamWrite(){this.isUnmounted||this.invalidateCellFrame()}withInternalStreamWrite(t){this.internalStreamWriteDepth+=1;try{return t()}finally{this.internalStreamWriteDepth-=1}}writeStdout(t,...n){return this.withInternalStreamWrite(()=>this.rawStdoutWrite(t,...n))}writeStderr(t,...n){return this.withInternalStreamWrite(()=>this.rawStderrWrite(t,...n))}restoreLastOutput=o(()=>{if(this.prevFrame.screen.height===0)return;let t=St(this.options.stdout.rows??24,this.getTerminalWidth()),n=this.cellLogUpdate.render(t,this.prevFrame);this.withInternalStreamWrite(()=>hn(this.options.stdout,n))},"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,By.DIRECTION_LTR)},"calculateLayout");onRender=o(()=>{if(this.hasPendingThrottledRender=!1,this.isUnmounted)return;let t=performance.now(),n={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:r,outputHeight:i,staticOutput:s,frame:a}=Mr(this.rootNode,this.isScreenReaderEnabled,n);this.options.onRender?.({renderTime:performance.now()-t}),!fe&&!this.options.debug&&!this.isScreenReaderEnabled&&!this.cursorHidden&&(this.writeStdout(B.cursorHide),this.cursorHidden=!0);let c=s&&s!==`
|
|
568
568
|
`;if(this.options.debug){c&&(this.fullStaticOutput+=s),this.writeStdout(this.fullStaticOutput+r);return}if(fe){c&&this.writeStdout(s),this.lastOutput=r,this.lastOutputToRender=r+`
|
|
569
|
-
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let w=ue(this.options.stdout);if(w&&this.writeStdout(de),c){let b=this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"";this.writeStdout(b+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){w&&this.writeStdout(ee);return}let y=this.getTerminalWidth(),h=
|
|
569
|
+
`,this.lastOutputHeight=i;return}if(this.isScreenReaderEnabled){let w=ue(this.options.stdout);if(w&&this.writeStdout(de),c){let b=this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"";this.writeStdout(b+s),this.lastOutputHeight=0}if(r===this.lastOutput&&!c){w&&this.writeStdout(ee);return}let y=this.getTerminalWidth(),h=Xy(r,y,{trim:!1,hard:!0});if(c)this.writeStdout(h);else{let b=this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"";this.writeStdout(b+h)}this.lastOutput=r,this.lastOutputToRender=h,this.lastOutputHeight=h===""?0:h.split(`
|
|
570
570
|
`).length,w&&this.writeStdout(ee);return}c&&(this.fullStaticOutput+=s);let u=!this.altScreenActive&&!!(a&&a.inputCursor)?[]:null,l=o(w=>{w&&(u?u.push(w):this.writeStdout(w))},"emit"),f=u?{write:l}:null;l(this.computeReturnToRestSeq());let m=this.altScreenActive,g=this.options.stdout.isTTY&&i>=this.options.stdout.rows&&m?r:r+`
|
|
571
571
|
`;if(this.lastOutputHeight>=this.options.stdout.rows&&m){if(Pe.env.KODAX_FULLSCREEN_CELLDIFF!=="0"&&this.altScreenActive&&this.fullStaticOutput===""){let h=ue(this.options.stdout);h&&this.writeStdout(de),this.applyCellFrame(a),h&&this.writeStdout(ee),this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i;return}let w=ue(this.options.stdout);w&&this.writeStdout(de);let y=this.fullStaticOutput+g;if(this.altScreenActive){let h=this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"";this.writeStdout(h+y)}else this.writeStdout(B.clearTerminal+this.fullStaticOutput+r);this.lastOutput=r,this.lastOutputToRender=this.altScreenActive?y:g,this.lastOutputHeight=i,this.invalidateCellFrame(),w&&this.writeStdout(ee);return}let v=!u&&ue(this.options.stdout);try{if(c?(v&&l(de),l(this.eraseInlineLiveBlock()+s),this.invalidateCellFrame(),this.applyCellFrame(a,f),v&&l(ee)):!this.altScreenActive&&this.prevFrame&&this.prevFrame.screen.height!==a.screen.height&&this.lastOutputHeight>0&&i<=this.options.stdout.rows&&this.lastOutputHeight<this.options.stdout.rows?(v&&l(de),l(this.eraseInlineLiveBlock()),this.invalidateCellFrame(),this.applyCellFrame(a,f),v&&l(ee)):this.applyCellFrame(a,f),a?.inputCursor){let w=Ur(a,!this.altScreenActive),y=w(a.cursor),h=w(a.inputCursor),b=Xr(h.x-y.x,h.y-y.y);l(b),this.displayCursor=h}}finally{u&&this.flushCursorTxn(u)}this.lastOutput=r,this.lastOutputToRender=g,this.lastOutputHeight=i},"onRender");applyCellFrame=o((t,n=null)=>{let r={cellLogUpdate:this.cellLogUpdate,prevFrame:this.prevFrame,stdout:n??this.options.stdout},i=ue(this.options.stdout),s={altScreen:this.altScreenActive,decstbmSafe:i,synchronized:n?!1:i,inlineBottomAnchored:!this.altScreenActive},a=this.withInternalStreamWrite(()=>Ka(r,t,s));return this.prevFrame=r.prevFrame,a},"applyCellFrame");invalidateCellFrame=o(()=>{this.cellLogUpdate.reset(),this.prevFrame=St(this.options.stdout.rows??24,this.getTerminalWidth())},"invalidateCellFrame");eraseInlineLiveBlock=o(()=>this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"","eraseInlineLiveBlock");commitInlineScrollback=o(({mode:t,text:n})=>{if(this.altScreenActive||this.isUnmounted)return;let r=[],i=o(c=>{c&&r.push(c)},"emit"),s={write:i};i(this.computeReturnToRestSeq());let a=t==="rebuild"?"\x1B[2J\x1B[3J\x1B[H":this.eraseInlineLiveBlock();i(a+(n??"")),this.lastOutput="",this.lastOutputToRender="",this.lastOutputHeight=0,this.fullStaticOutput="",this.invalidateCellFrame();try{this.calculateLayout();let c={rows:this.options.stdout.rows??24,columns:this.getTerminalWidth()},{output:d,outputHeight:u,frame:l}=Mr(this.rootNode,this.isScreenReaderEnabled,c);if(this.applyCellFrame(l,s),l?.inputCursor){let f=Ur(l,!this.altScreenActive),m=f(l.cursor),p=f(l.inputCursor),g=Xr(p.x-m.x,p.y-m.y);i(g),this.displayCursor=p}this.lastOutput=d,this.lastOutputToRender=d,this.lastOutputHeight=u}finally{this.flushCursorTxn(r)}},"commitInlineScrollback");flushCursorTxn(t){let n=t.join("");if(!n)return;let r=ue(this.options.stdout);this.writeStdout(r?de+n+ee:n)}render(t){let n=dc.createElement(Be.Provider,{value:{isScreenReaderEnabled:this.isScreenReaderEnabled}},dc.createElement(ac,{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?se.updateContainer(n,this.container,null,wn):(se.updateContainerSync(n,this.container,null,wn),se.flushSyncWork())}computeReturnToRestSeq(){if(this.displayCursor&&this.prevFrame){let t=Ur(this.prevFrame,!this.altScreenActive)(this.prevFrame.cursor),n=Xr(t.x-this.displayCursor.x,t.y-this.displayCursor.y);return this.displayCursor=null,n}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(fe){this.writeStdout(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStdout(t),this.invalidateCellFrame();return}let n=ue(this.options.stdout);n&&this.writeStdout(de),this.returnCursorToRest();let r=this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"";this.writeStdout(r+t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(ee)}writeToStderr(t){if(this.isUnmounted)return;if(this.options.debug){this.writeStderr(t),this.writeStdout(this.fullStaticOutput+this.lastOutput);return}if(fe){this.writeStderr(t);return}if(!this.shouldRestoreManagedShellAfterExternalWrite()){this.returnCursorToRest(),this.writeStderr(t),this.invalidateCellFrame();return}let n=ue(this.options.stdout);n&&this.writeStdout(de),this.returnCursorToRest();let r=this.lastOutputHeight>0?B.eraseLines(this.lastOutputHeight):"";r.length>0&&this.writeStdout(r),this.writeStderr(t),this.restoreLastOutput(),this.invalidateCellFrame(),n&&this.writeStdout(ee)}unmount(t){if(this.isUnmounted||this.isUnmounting)return;this.isUnmounting=!0,this.beforeExitHandler&&(Pe.off("beforeExit",this.beforeExitHandler),this.beforeExitHandler=void 0);let n=this.options.stdout,r=!n.destroyed&&!n.writableEnded&&(n.writable??!0);if(o(u=>{typeof u.flush=="function"&&(r?u.flush():typeof u.cancel=="function"&&u.cancel())},"settleThrottle")(this.throttledOnRender??{}),r&&(!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(),r){if(this.kittyProtocolEnabled)try{this.writeStdout("\x1B[<u")}catch{}fe&&this.writeStdout(this.lastOutput+`
|
|
572
|
-
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?se.updateContainer(null,this.container,null,wn):(se.updateContainerSync(null,this.container,null,wn),se.flushSyncWork()),Ba.delete(this.options.stdout);let{exitResult:s}=this,a=o(()=>{Wr(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Wr(t),d=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&d?this.writeStdout("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},Pe.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!fe&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?B.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=
|
|
573
|
-
`),ve}catch{return ve=-1,null}}o(pc,"resolveTraceFd");function
|
|
574
|
-
`),c=0,d=0,u=p,l+=1,f?.(m)}}let i=
|
|
575
|
-
`)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(n=fw.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=pw.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[n[1],n[2],n[4],n[6]].filter(Boolean).join(""),d=Number(n[3]||n[5]||1)-1;s.ctrl=!!(d&4),s.meta=!!(d&10),s.shift=!!(d&1),s.code=c,s.name=yc[c]??"",s.shift=mw(c)||s.shift,s.ctrl=hw(c)||s.ctrl}return s}o(Gr,"parseKeypress");var Iw=50;function Yr(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Yr,"resolveTerminalSize");var bn=Sw(null),Cw={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var Cc={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function Tw(e){for(let t of e)if(t.rawMode)return!0;return!1}o(Tw,"hasRawModeSubscribers");function Rw({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,i,s=!1,a=!1,c=o(f=>{for(let m of r)m.listener(f)},"handleData"),d=o(()=>{if(a){try{t(!1)}catch{}a=!1}},"disableRawModeIfOwned"),u=o(()=>{let f=i;f?.off?.("data",c),d(),s&&(f?.unref?.(),s=!1),i=void 0},"detachInput"),l=o(()=>{if(i&&i!==e&&u(),!e||r.size===0){u();return}if(i!==e&&(e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),s=!0),e.on?.("data",c),e.resume?.(),i=e),!(n&&Tw(r))){d();return}if(e.isRaw===!1&&!a)try{t(!0),a=!0}catch{a=!1}},"syncInputOwnership");return{subscribe(f,m={}){let p={listener:f,rawMode:m.rawMode!==!1};return r.add(p),l(),()=>{r.delete(p),l()}},dispose(){r.clear(),u()}}}o(Rw,"createTerminalInputController");var _w=o(({children:e,runtime:t})=>{let[n,r]=Ew(()=>t.terminalSize);Ge(()=>{if(r(Yr(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(Yr(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=Ic(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=Sc(()=>Rw({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);Ge(()=>()=>{s.dispose()},[s]);let a=Sc(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:i,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,i]);return Ec(bn.Provider,{value:a,children:e})},"TuiRuntimeProvider");function Aw(e){let t=e?.stdout??Cw,n=e?.stdin??Cc,r=o(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),i;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:o(()=>{i?.()},"exit"),terminalSize:Yr(t),isTTY:t?.isTTY===!0,writeRaw:o(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:o(()=>()=>{},"subscribeInput"),attachExit(s){i=s}}}o(Aw,"createRuntimeValue");function kn(e,t){let n=Aw(t),r=zr(Ec(_w,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(kn,"render");var be=mc,V=hc;function Pw(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},n="";return e.isKittyProtocol?e.isPrintable?n=e.text??e.name:e.ctrl&&e.name.length===1&&(n=e.name):e.ctrl?n=e.name:n=e.sequence,!e.isKittyProtocol&&wc.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}o(Pw,"createCompatKeypress");function xn(e,t={}){let{isActive:n=!0}=t,r=vn(e),i=vn(null),s=vn(null);Ge(()=>{r.current=e},[e]),Ge(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=gn(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=Ic(c=>{let{input:d,key:u}=Pw(Gr(c));r.current(d,u)},[]);Zr(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let d=i.current,u=typeof c=="string"?c:c.toString("utf8"),l=d?.push(u)??[u];for(let f of l)a(f);u.length>0&&(s.current=setTimeout(()=>{let f=i.current?.flushPendingEscape();f&&a(f)},Iw))},{isActive:n,rawMode:!0})}o(xn,"useInput");function Qr(){let e=Jr(bn),t=e?.stdin??Cc,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(Qr,"useStdin");function Sn(){return{exit:Jr(bn)?.exit??(()=>{})}}o(Sn,"useApp");function Zr(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=Jr(bn),{stdin:s,setRawMode:a,isRawModeSupported:c}=Qr(),d=vn(e);Ge(()=>{d.current=e},[e]),Ge(()=>{if(!n||!s)return;if(i)return i.subscribeInput(m=>{d.current(m)},{rawMode:r});let u=s,l=u.isRaw;r&&c&&l===!1&&a(!0);let f=o(m=>{d.current(m)},"handleData");return u.on?.("data",f),()=>{if(u.off?.("data",f),r&&c&&l===!1)try{a(!1)}catch{}}},[i,s,n,r,c,a])}o(Zr,"useTerminalInput");import{jsx as pW}from"react/jsx-runtime";import{useInsertionEffect as hW,useMemo as gW}from"react";import{jsx as eH,jsxs as tH}from"react/jsx-runtime";import{jsx as AW}from"react/jsx-runtime";import MW,{useEffect as OW,useImperativeHandle as NW,useMemo as $W,useRef as DW,useCallback as LW,useState as FW}from"react";var eo=class{static{o(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}};var Mw=1e3;var WW=new eo(Mw);var Fw=40;function jw(e,t){let n=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(r=>{let i=[r.title,r.id,r.surface??"",r.createdAt??"",String(r.msgCount)].join(" ").toLocaleLowerCase();return n.every(s=>i.includes(s))})}o(jw,"filterSessionPickerItems");function Kw(e,t,n){let r=Math.max(1,n),i=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(i/r)*r;return{items:e.slice(s,s+r),selectedIndex:i,pageStart:s,pageIndex:Math.floor(s/r),pageCount:Math.max(1,Math.ceil(e.length/r))}}o(Kw,"buildSessionPickerPage");function Bw(e){if(!e)return"unknown time";let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=t.getFullYear(),r=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`${n}-${r}-${i} ${s}:${a}`}o(Bw,"formatTimestamp");function Xw({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:i=8}){let{exit:s}=Sn(),[a,c]=to(""),[d,u]=to(0),[l,f]=to(!1),m=Lw(!1),p=Dw(()=>jw(e,a),[e,a]),g=Kw(p,d,i),v=p[g.selectedIndex];return xn((w,y)=>{if(!m.current){if(y.escape||y.ctrl&&w==="c"){r(),s();return}if(y.return){let h=p[g.selectedIndex];h&&(m.current=!0,f(!0),(async()=>{await new Promise(b=>setTimeout(b,Fw));try{await t(h)}catch(b){n(b)}finally{s()}})());return}if(y.upArrow)u(h=>Math.max(0,h-1));else if(y.downArrow)u(h=>Math.min(Math.max(0,p.length-1),h+1));else if(y.pageUp)u(h=>Math.max(0,h-i));else if(y.pageDown)u(h=>Math.min(Math.max(0,p.length-1),h+i));else if(y.home)u(0);else if(y.end)u(Math.max(0,p.length-1));else if(y.tab){let h=p[g.selectedIndex];h&&(c(h.title),u(0))}else y.backspace||y.delete?(c(h=>h.slice(0,-1)),u(0)):w&&!y.ctrl&&!y.meta&&!y.super&&(c(h=>h+w),u(0))}}),Ye(be,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[Ct(V,{bold:!0,color:"cyan",children:"Resume a session"}),Ye(V,{children:["Search: ",Ct(V,{color:"yellow",children:a||"type to filter"})]}),Ct(V,{dimColor:!0,children:l?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),Ye(be,{flexDirection:"column",marginTop:1,children:[g.items.length===0?Ct(V,{color:"yellow",children:"No matching sessions."}):null,g.items.map((w,y)=>{let b=g.pageStart+y===g.selectedIndex,I=w.title.trim()||"Untitled session",_=w.surface?` \xB7 ${w.surface}`:"";return Ye(V,{color:b?"cyan":void 0,bold:b,children:[b?"\u276F":" "," ",I," \xB7 ",w.msgCount," msgs",_," \xB7 ",Bw(w.createdAt)," \xB7 ",w.id.slice(0,8)]},w.id)})]}),Ye(V,{dimColor:!0,children:[p.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),Ye(V,{dimColor:!0,children:["Selected ID: ",v?.id??"none"]})]})}o(Xw,"SessionPicker");async function Ac(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 n,r=!1,i=!1,s,a=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),c=kn(Ct(Xw,{sessions:e,pageSize:a,onSelect:o(async d=>{n=d,await t.prepareSelection?.(d)},"onSelect"),onSelectionError:o(d=>{i=!0,s=d},"onSelectionError"),onCancel:o(()=>{r=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1});try{await c.waitUntilExit()}finally{c.unmount(),c.cleanup()}if(i)throw s;if(!n&&!r)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return n}o(Ac,"runSessionPicker");var Pc=65536,Mc=48;function Ww(){let e=process.env.KODAX_HOME,t=e&&e.length>0?e:Qe.join(Uw.homedir(),".kodax");return Qe.join(t,"sessions")}o(Ww,"defaultSessionsDir");function Oc(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(Oc,"isSessionFile");async function Hw(e){let t=[],n;try{n=await Je.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){let i=Qe.join(e,r.name);if(r.isFile()&&Oc(r.name)&&!r.name.startsWith("archived-")){t.push(i);continue}if(!(!r.isDirectory()||r.name.startsWith(".")||r.name==="archived"))try{for(let s of await Je.readdir(i,{withFileTypes:!0}))s.isFile()&&Oc(s.name)&&!s.name.startsWith("archived-")&&t.push(Qe.join(i,s.name))}catch{}}return t}o(Hw,"collectActiveSessionFiles");function Nc(e){if(!e?.trim())return;let t=Qe.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(Nc,"normalizeComparableRoot");function zw(e,t){let n=Nc(t);if(!n)return!0;let r=e.runtimeInfo!==null&&typeof e.runtimeInfo=="object"?e.runtimeInfo:void 0;return[typeof r?.canonicalRepoRoot=="string"?r.canonicalRepoRoot:void 0,typeof r?.workspaceRoot=="string"?r.workspaceRoot:void 0,typeof e.gitRoot=="string"?e.gitRoot:void 0].some(s=>Nc(s)===n)}o(zw,"matchesProjectRoot");async function qw(e){let t;try{t=await Je.open(e,"r");let n=Buffer.allocUnsafe(Pc),{bytesRead:r}=await t.read(n,0,Pc,0);if(r===0)return;let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
572
|
+
`)}this.kittyProtocolEnabled=!1,this.shellTransitionPhase=void 0,this.options.concurrent?se.updateContainer(null,this.container,null,wn):(se.updateContainerSync(null,this.container,null,wn),se.flushSyncWork()),Ba.delete(this.options.stdout);let{exitResult:s}=this,a=o(()=>{Wr(t)?this.rejectExitPromise(t):this.resolveExitPromise(s)},"resolveOrReject"),c=t!==void 0&&!Wr(t),d=n._writableState!==void 0||n.writableLength!==void 0;c?a():r&&d?this.writeStdout("",a):setImmediate(a)}async waitUntilExit(){return this.exitPromise||=new Promise((t,n)=>{this.resolveExitPromise=t,this.rejectExitPromise=n}),this.beforeExitHandler||(this.beforeExitHandler=()=>{this.unmount()},Pe.once("beforeExit",this.beforeExitHandler)),this.exitPromise}clear(){if(!fe&&!this.options.debug){this.returnCursorToRest();let t=this.altScreenActive?this.lastOutputHeight>0?B.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=Fy((t,n)=>{t==="stdout"&&this.writeToStdout(n),t==="stderr"&&(n.startsWith("The above error occurred")||this.writeToStderr(n))}))}initKittyKeyboard(){if(!this.options.kittyKeyboard)return;let t=this.options.kittyKeyboard,n=t.mode??"auto";if(n==="disabled"||!this.options.stdin.isTTY||!this.options.stdout.isTTY)return;let r=t.flags??["disambiguateEscapeCodes"];if(n==="enabled"){this.enableKittyProtocol(r);return}let i=Pe.env.TERM??"",s=Pe.env.TERM_PROGRAM??"",a="KITTY_WINDOW_ID"in Pe.env||i==="xterm-kitty"||s==="WezTerm"||s==="ghostty";!fe&&a&&this.confirmKittySupport(r)}confirmKittySupport(t){let{stdin:n}=this.options,r=[],i=o(()=>{this.cancelKittyDetection=void 0,clearTimeout(a),n.removeListener("data",s);let c=Qy(r);r=[],c.length>0&&n.unshift(Buffer.from(c))},"cleanup"),s=o(c=>{let d=typeof c=="string"?Buffer.from(c):c;for(let u of d)r.push(u);Jy(r)&&(i(),this.isUnmounted||this.enableKittyProtocol(t))},"onData");n.on("data",s);let a=setTimeout(i,200);this.cancelKittyDetection=i,this.writeStdout("\x1B[?u")}enableKittyProtocol(t){this.writeStdout(`\x1B[>${cc(t)}u`),this.kittyProtocolEnabled=!0}},lc=Zy;var It=class{static{o(this,"KodaXRenderer")}engineInstance;isConcurrent;constructor(t){this.engineInstance=new lc(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,n)=>{this.engineInstance.setAltScreenActive?.(t,n)},"setAltScreenActive");setShellMode=o((t,n)=>{this.engineInstance.setShellMode?.(t,n)},"setShellMode");beginShellTransition=o(t=>{this.engineInstance.beginShellTransition?.(t)},"beginShellTransition");clearTextSelection=o(()=>{this.engineInstance.clearTextSelection?.()},"clearTextSelection");commitInlineScrollback=o(t=>{this.engineInstance.commitInlineScrollback?.(t)},"commitInlineScrollback")};var ve=null;function pc(){if(ve===-1)return null;if(ve!==null)return ve;let e=process.env.KODAX_RENDER_TRACE;if(!e||e==="0"||e==="false")return ve=-1,null;let t=e==="1"||e==="true"?ow(rw(),`kodax-render-trace-${process.pid}.log`):e;try{return ve=tw(t,"a"),fc(ve,`=== KODAX render trace pid=${process.pid} ${new Date().toISOString()} platform=${process.platform} node=${process.version} ===
|
|
573
|
+
`),ve}catch{return ve=-1,null}}o(pc,"resolveTraceFd");function iw(e){let t=pc();if(t!==null)try{fc(t,e)}catch{}}o(iw,"traceLine");var Hr=new WeakMap,sw={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},aw={isTTY:!1,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")},cw={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function dw(e={}){return e instanceof ew?{stdout:e}:e}o(dw,"getOptions");function uw(e,t,n){let r=Hr.get(e);return r?r.isConcurrent!==n&&console.warn(`Warning: render() was called with concurrent: ${n}, but the existing renderer for this stdout uses concurrent: ${r.isConcurrent}. The concurrent option only takes effect on the first render. Call unmount() first if you need to change the rendering mode.`):(r=t(),Hr.set(e,r)),r}o(uw,"getInstance");function zr(e,t){let n={stdout:sw,stdin:cw,stderr:aw,debug:!1,exitOnCtrlC:!0,patchConsole:!1,maxFps:30,concurrent:!1,...dw(t)};if(pc()!==null){let s=n.stdout,a=s.write.bind(s),c=0,d=0;s.write=((m,...p)=>(c+=1,d+=typeof m=="string"?Buffer.byteLength(m,"utf8"):m?.length??0,a(m,...p)));let u=0,l=0,f=n.onRender;n.onRender=m=>{let p=nw.now(),g=u===0?0:p-u,v=s,w=v.columns??0,y=v.rows??0;return iw(`frame=${l} renderTime=${m.renderTime.toFixed(2)}ms interval=${g.toFixed(2)}ms writes=${c} bytes=${d} viewport=${w}x${y}
|
|
574
|
+
`),c=0,d=0,u=p,l+=1,f?.(m)}}let i=uw(n.stdout,()=>new It(n),n.concurrent??!1);return i.render(e),{rerender:i.render,unmount(){i.unmount()},waitUntilExit:i.waitUntilExit,cleanup:o(()=>{Hr.delete(n.stdout)},"cleanup"),clear:i.clear}}o(zr,"render");var mc=q,hc=K;import{Buffer as fw}from"node:buffer";var pw=/^(?:\x1b)([a-zA-Z0-9])$/,mw=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,yc={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"},wc=[...Object.values(yc),"backspace"],hw=o(e=>["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e),"isShiftKey"),gw=o(e=>["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e),"isCtrlKey"),vc=/^\x1b\[(\d+)(?:;(\d+)(?::(\d+))?(?:;([\d:]+))?)?u$/,yw=/^\x1b\[(\d+);(\d+):(\d+)([A-Za-z~])$/,ww={A:"up",B:"down",C:"right",D:"left",E:"clear",F:"end",H:"home",P:"f1",Q:"f2",R:"f3",S:"f4"},vw={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"},gc={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"},bc=o(e=>e>=0&&e<=1114111&&!(e>=55296&&e<=57343),"isValidCodepoint"),qr=o(e=>bc(e)?String.fromCodePoint(e):"?","safeFromCodePoint");function kc(e){return e===3?"release":e===2?"repeat":"press"}o(kc,"resolveEventType");function xc(e){return{ctrl:!!(e&le.ctrl),shift:!!(e&le.shift),meta:!!(e&le.meta),option:!!(e&le.alt),super:!!(e&le.super),hyper:!!(e&le.hyper),capsLock:!!(e&le.capsLock),numLock:!!(e&le.numLock)}}o(xc,"parseKittyModifiers");function bw(e){let t=vc.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=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(!bc(n))return null;let a;s&&(a=s.split(":").map(u=>qr(Number.parseInt(u,10))).join(""));let c,d;return n===32?(c="space",d=!0):n===13?(c="return",d=!0):gc[n]?(c=gc[n],d=!1):n>=1&&n<=26?(c=String.fromCodePoint(n+96),d=!1):(c=qr(n).toLowerCase(),d=!0),d&&!a&&(a=qr(n)),{name:c,...xc(r),eventType:kc(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:d,text:a}}o(bw,"parseKittyKeypress");function kw(e){let t=yw.exec(e);if(!t)return null;let n=Number.parseInt(t[1],10),r=Math.max(0,Number.parseInt(t[2],10)-1),i=Number.parseInt(t[3],10),s=t[4],a=s==="~"?vw[n]:ww[s];return a?{name:a,...xc(r),eventType:kc(i),sequence:e,raw:e,isKittyProtocol:!0,isPrintable:!1}:null}o(kw,"parseKittySpecialKey");var Vr="\x1B[200~",xw="\x1B[201~";function Sw(e){if(!e.startsWith(Vr))return null;let t=e.indexOf(xw,Vr.length);return t===-1?null:e.slice(Vr.length,t)}o(Sw,"extractBracketedPaste");function Gr(e=""){let t=e,n;if(fw.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 a=Sw(t);if(a!==null)return{name:"paste",ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,isPaste:!0,isPrintable:!1,text:a}}let r=bw(t);if(r)return r;let i=kw(t);if(i)return i;if(vc.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===`
|
|
575
|
+
`)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(n=pw.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(n[1]??"");else if(n=mw.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let c=[n[1],n[2],n[4],n[6]].filter(Boolean).join(""),d=Number(n[3]||n[5]||1)-1;s.ctrl=!!(d&4),s.meta=!!(d&10),s.shift=!!(d&1),s.code=c,s.name=yc[c]??"",s.shift=hw(c)||s.shift,s.ctrl=gw(c)||s.ctrl}return s}o(Gr,"parseKeypress");var Cw=50;function Yr(e){return{columns:e?.columns??80,rows:e?.rows??24}}o(Yr,"resolveTerminalSize");var bn=Ew(null),Tw={isTTY:!1,columns:80,rows:24,write:o(()=>!0,"write"),on:o(()=>{},"on"),off:o(()=>{},"off")};var Cc={isTTY:!1,isRaw:!1,on:o(()=>{},"on"),off:o(()=>{},"off"),pause:o(()=>{},"pause"),resume:o(()=>{},"resume"),setRawMode:o(()=>{},"setRawMode")};function Rw(e){for(let t of e)if(t.rawMode)return!0;return!1}o(Rw,"hasRawModeSubscribers");function _w({stdin:e,setRawMode:t,isRawModeSupported:n}){let r=new Set,i,s=!1,a=!1,c=o(f=>{for(let m of r)m.listener(f)},"handleData"),d=o(()=>{if(a){try{t(!1)}catch{}a=!1}},"disableRawModeIfOwned"),u=o(()=>{let f=i;f?.off?.("data",c),d(),s&&(f?.unref?.(),s=!1),i=void 0},"detachInput"),l=o(()=>{if(i&&i!==e&&u(),!e||r.size===0){u();return}if(i!==e&&(e.hasRef?.()!==!0&&typeof e.ref=="function"&&(e.ref(),s=!0),e.on?.("data",c),e.resume?.(),i=e),!(n&&Rw(r))){d();return}if(e.isRaw===!1&&!a)try{t(!0),a=!0}catch{a=!1}},"syncInputOwnership");return{subscribe(f,m={}){let p={listener:f,rawMode:m.rawMode!==!1};return r.add(p),l(),()=>{r.delete(p),l()}},dispose(){r.clear(),u()}}}o(_w,"createTerminalInputController");var Aw=o(({children:e,runtime:t})=>{let[n,r]=Iw(()=>t.terminalSize);Ge(()=>{if(r(Yr(t.stdout)),typeof t.stdout?.on!="function"||typeof t.stdout?.off!="function")return;let c=o(()=>{r(Yr(t.stdout))},"handleResize");return t.stdout.on("resize",c),()=>{t.stdout.off?.("resize",c)}},[t.stdout]);let i=Ic(c=>typeof t.stdout?.write!="function"?!1:(t.stdout.write(c),!0),[t.stdout]),s=Sc(()=>_w({stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported}),[t.stdin,t.isRawModeSupported,t.setRawMode]);Ge(()=>()=>{s.dispose()},[s]);let a=Sc(()=>({stdout:t.stdout,stdin:t.stdin,setRawMode:t.setRawMode,isRawModeSupported:t.isRawModeSupported,exit:t.exit,terminalSize:n,isTTY:t.stdout?.isTTY===!0,writeRaw:i,subscribeInput:s.subscribe}),[s.subscribe,t.exit,t.isRawModeSupported,t.setRawMode,t.stdin,t.stdout,s.subscribe,n,i]);return Ec(bn.Provider,{value:a,children:e})},"TuiRuntimeProvider");function Pw(e){let t=e?.stdout??Tw,n=e?.stdin??Cc,r=o(s=>{typeof n?.setRawMode=="function"&&n.setRawMode(s)},"setRawMode"),i;return{stdout:t,stdin:n,setRawMode:r,isRawModeSupported:typeof n?.setRawMode=="function",exit:o(()=>{i?.()},"exit"),terminalSize:Yr(t),isTTY:t?.isTTY===!0,writeRaw:o(s=>typeof t?.write!="function"?!1:(t.write(s),!0),"writeRaw"),subscribeInput:o(()=>()=>{},"subscribeInput"),attachExit(s){i=s}}}o(Pw,"createRuntimeValue");function kn(e,t){let n=Pw(t),r=zr(Ec(Aw,{runtime:n,children:e}),t);return n.attachExit(r.unmount),r}o(kn,"render");var be=mc,V=hc;function Mw(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},n="";return e.isKittyProtocol?e.isPrintable?n=e.text??e.name:e.ctrl&&e.name.length===1&&(n=e.name):e.ctrl?n=e.name:n=e.sequence,!e.isKittyProtocol&&wc.includes(e.name)&&(n=""),n.startsWith("\x1B")&&(n=n.slice(1)),n.length===1&&typeof n[0]=="string"&&/[A-Z]/.test(n[0])&&(t.shift=!0),{input:n,key:t}}o(Mw,"createCompatKeypress");function xn(e,t={}){let{isActive:n=!0}=t,r=vn(e),i=vn(null),s=vn(null);Ge(()=>{r.current=e},[e]),Ge(()=>{if(!n){i.current=null,s.current&&(clearTimeout(s.current),s.current=null);return}return i.current=gn(),()=>{i.current?.reset(),i.current=null,s.current&&(clearTimeout(s.current),s.current=null)}},[n]);let a=Ic(c=>{let{input:d,key:u}=Mw(Gr(c));r.current(d,u)},[]);Zr(c=>{if(!n)return;s.current&&(clearTimeout(s.current),s.current=null);let d=i.current,u=typeof c=="string"?c:c.toString("utf8"),l=d?.push(u)??[u];for(let f of l)a(f);u.length>0&&(s.current=setTimeout(()=>{let f=i.current?.flushPendingEscape();f&&a(f)},Cw))},{isActive:n,rawMode:!0})}o(xn,"useInput");function Qr(){let e=Jr(bn),t=e?.stdin??Cc,n=e?.setRawMode??(r=>{typeof t?.setRawMode=="function"&&t.setRawMode(r)});return{stdin:t,setRawMode:n,isRawModeSupported:e?.isRawModeSupported??typeof t?.setRawMode=="function"}}o(Qr,"useStdin");function Sn(){return{exit:Jr(bn)?.exit??(()=>{})}}o(Sn,"useApp");function Zr(e,t={}){let{isActive:n=!0,rawMode:r=!0}=t,i=Jr(bn),{stdin:s,setRawMode:a,isRawModeSupported:c}=Qr(),d=vn(e);Ge(()=>{d.current=e},[e]),Ge(()=>{if(!n||!s)return;if(i)return i.subscribeInput(m=>{d.current(m)},{rawMode:r});let u=s,l=u.isRaw;r&&c&&l===!1&&a(!0);let f=o(m=>{d.current(m)},"handleData");return u.on?.("data",f),()=>{if(u.off?.("data",f),r&&c&&l===!1)try{a(!1)}catch{}}},[i,s,n,r,c,a])}o(Zr,"useTerminalInput");import{jsx as mW}from"react/jsx-runtime";import{useInsertionEffect as gW,useMemo as yW}from"react";import{jsx as tH,jsxs as nH}from"react/jsx-runtime";import{jsx as PW}from"react/jsx-runtime";import OW,{useEffect as NW,useImperativeHandle as $W,useMemo as DW,useRef as LW,useCallback as FW,useState as jW}from"react";var eo=class{static{o(this,"LRUCache")}capacity;cache;constructor(t){this.capacity=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;let n=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,n),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.capacity){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(t,n)}has(t){return this.cache.has(t)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}};var Ow=1e3;var HW=new eo(Ow);var jw=40;function Kw(e,t){let n=t.trim().toLocaleLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(r=>{let i=[r.title,r.id,r.surface??"",r.createdAt??"",String(r.msgCount)].join(" ").toLocaleLowerCase();return n.every(s=>i.includes(s))})}o(Kw,"filterSessionPickerItems");function Bw(e,t,n){let r=Math.max(1,n),i=e.length===0?0:Math.max(0,Math.min(t,e.length-1)),s=Math.floor(i/r)*r;return{items:e.slice(s,s+r),selectedIndex:i,pageStart:s,pageIndex:Math.floor(s/r),pageCount:Math.max(1,Math.ceil(e.length/r))}}o(Bw,"buildSessionPickerPage");function Xw(e){if(!e)return"unknown time";let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=t.getFullYear(),r=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`${n}-${r}-${i} ${s}:${a}`}o(Xw,"formatTimestamp");function Uw({sessions:e,onSelect:t,onSelectionError:n,onCancel:r,pageSize:i=8}){let{exit:s}=Sn(),[a,c]=to(""),[d,u]=to(0),[l,f]=to(!1),m=Fw(!1),p=Lw(()=>Kw(e,a),[e,a]),g=Bw(p,d,i),v=p[g.selectedIndex];return xn((w,y)=>{if(!m.current){if(y.escape||y.ctrl&&w==="c"){r(),s();return}if(y.return){let h=p[g.selectedIndex];h&&(m.current=!0,f(!0),(async()=>{await new Promise(b=>setTimeout(b,jw));try{await t(h)}catch(b){n(b)}finally{s()}})());return}if(y.upArrow)u(h=>Math.max(0,h-1));else if(y.downArrow)u(h=>Math.min(Math.max(0,p.length-1),h+1));else if(y.pageUp)u(h=>Math.max(0,h-i));else if(y.pageDown)u(h=>Math.min(Math.max(0,p.length-1),h+i));else if(y.home)u(0);else if(y.end)u(Math.max(0,p.length-1));else if(y.tab){let h=p[g.selectedIndex];h&&(c(h.title),u(0))}else y.backspace||y.delete?(c(h=>h.slice(0,-1)),u(0)):w&&!y.ctrl&&!y.meta&&!y.super&&(c(h=>h+w),u(0))}}),Ye(be,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,children:[Ct(V,{bold:!0,color:"cyan",children:"Resume a session"}),Ye(V,{children:["Search: ",Ct(V,{color:"yellow",children:a||"type to filter"})]}),Ct(V,{dimColor:!0,children:l?"Loading selected session...":"\u2191/\u2193 select \xB7 PgUp/PgDn page \xB7 Tab complete \xB7 Enter resume \xB7 Esc cancel"}),Ye(be,{flexDirection:"column",marginTop:1,children:[g.items.length===0?Ct(V,{color:"yellow",children:"No matching sessions."}):null,g.items.map((w,y)=>{let b=g.pageStart+y===g.selectedIndex,I=w.title.trim()||"Untitled session",_=w.surface?` \xB7 ${w.surface}`:"";return Ye(V,{color:b?"cyan":void 0,bold:b,children:[b?"\u276F":" "," ",I," \xB7 ",w.msgCount," msgs",_," \xB7 ",Xw(w.createdAt)," \xB7 ",w.id.slice(0,8)]},w.id)})]}),Ye(V,{dimColor:!0,children:[p.length," matches \xB7 Page ",g.pageIndex+1,"/",g.pageCount]}),Ye(V,{dimColor:!0,children:["Selected ID: ",v?.id??"none"]})]})}o(Uw,"SessionPicker");async function Ac(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 n,r=!1,i=!1,s,a=Math.max(4,Math.min(12,(process.stdout.rows??24)-8)),c=kn(Ct(Uw,{sessions:e,pageSize:a,onSelect:o(async d=>{n=d,await t.prepareSelection?.(d)},"onSelect"),onSelectionError:o(d=>{i=!0,s=d},"onSelectionError"),onCancel:o(()=>{r=!0},"onCancel")}),{stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1,patchConsole:!1});try{await c.waitUntilExit()}finally{c.unmount(),c.cleanup()}if(i)throw s;if(!n&&!r)throw new Error("Session picker exited unexpectedly before selection or cancellation.");return n}o(Ac,"runSessionPicker");var Pc=65536,Mc=48;function Hw(){let e=process.env.KODAX_HOME,t=e&&e.length>0?e:Qe.join(Ww.homedir(),".kodax");return Qe.join(t,"sessions")}o(Hw,"defaultSessionsDir");function Oc(e){return e.endsWith(".jsonl")&&!e.endsWith(".archive.jsonl")&&!e.endsWith(".islands.jsonl")&&!e.startsWith(".")}o(Oc,"isSessionFile");async function zw(e){let t=[],n;try{n=await Je.readdir(e,{withFileTypes:!0})}catch{return t}for(let r of n){let i=Qe.join(e,r.name);if(r.isFile()&&Oc(r.name)&&!r.name.startsWith("archived-")){t.push(i);continue}if(!(!r.isDirectory()||r.name.startsWith(".")||r.name==="archived"))try{for(let s of await Je.readdir(i,{withFileTypes:!0}))s.isFile()&&Oc(s.name)&&!s.name.startsWith("archived-")&&t.push(Qe.join(i,s.name))}catch{}}return t}o(zw,"collectActiveSessionFiles");function Nc(e){if(!e?.trim())return;let t=Qe.resolve(e).replace(/\\/g,"/");return process.platform==="win32"||process.platform==="darwin"?t.toLowerCase():t}o(Nc,"normalizeComparableRoot");function qw(e,t){let n=Nc(t);if(!n)return!0;let r=e.runtimeInfo!==null&&typeof e.runtimeInfo=="object"?e.runtimeInfo:void 0;return[typeof r?.canonicalRepoRoot=="string"?r.canonicalRepoRoot:void 0,typeof r?.workspaceRoot=="string"?r.workspaceRoot:void 0,typeof e.gitRoot=="string"?e.gitRoot:void 0].some(s=>Nc(s)===n)}o(qw,"matchesProjectRoot");async function Vw(e){let t;try{t=await Je.open(e,"r");let n=Buffer.allocUnsafe(Pc),{bytesRead:r}=await t.read(n,0,Pc,0);if(r===0)return;let i=n.toString("utf8",0,r),s=i.indexOf(`
|
|
576
576
|
`);if(s>=0)return i.slice(0,s).trim();let a=await Je.readFile(e,"utf8"),c=a.indexOf(`
|
|
577
|
-
`);return(c>=0?a.slice(0,c):a).trim()}catch{return}finally{await t?.close()}}o(
|
|
578
|
-
`).length-1-r)}o(
|
|
577
|
+
`);return(c>=0?a.slice(0,c):a).trim()}catch{return}finally{await t?.close()}}o(Vw,"readFirstLine");async function Gw(e,t){if(typeof t.activeMessageCount=="number"&&t.activeMessageCount>=0)return t.activeMessageCount;let n=(await Je.readFile(e,"utf8")).trim();if(!n)return 0;let r=typeof t.extensionRecordCount=="number"&&t.extensionRecordCount>0?t.extensionRecordCount:0;return Math.max(0,n.split(`
|
|
578
|
+
`).length-1-r)}o(Gw,"readMessageCount");function Yw(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(Yw,"runtimeSummary");async function Jw(e,t){try{let n=await Vw(e);if(!n)return;let r=JSON.parse(n);if(r===null||typeof r!="object")return;let i=r;if(i._type!=="meta"||i.scope==="managed-task-worker"||!qw(i,t))return;let s=await Gw(e,i);if(s<=0)return;let a=typeof i.createdAt=="string"?i.createdAt:void 0,c=Yw(i);return{id:Qe.basename(e,".jsonl"),title:typeof i.title=="string"?i.title:"",msgCount:s,...a!==void 0?{createdAt:a}:{},...c?.surface!==void 0?{surface:c.surface}:{},...a!==void 0?{createdAtMs:Date.parse(a)}:{}}}catch{return}}o(Jw,"readResumeCandidate");async function $c(e){try{let t=e.sessionsDir??Hw();await Ls(t),await Je.mkdir(t,{recursive:!0});let n=await zw(t),r=[],i=new Set;for(let s=0;s<n.length;s+=Mc){let a=await Promise.all(n.slice(s,s+Mc).map(c=>Jw(c,e.projectRoot)));for(let c of a)c&&!i.has(c.id)&&(i.add(c.id),r.push(c))}return r.sort((s,a)=>Number.isFinite(s.createdAtMs)&&Number.isFinite(a.createdAtMs)&&s.createdAtMs!==a.createdAtMs?a.createdAtMs-s.createdAtMs:Number.isFinite(a.createdAtMs)&&!Number.isFinite(s.createdAtMs)?1:Number.isFinite(s.createdAtMs)&&!Number.isFinite(a.createdAtMs)?-1:a.id.localeCompare(s.id)),r.slice(0,e.limit??1e3).map(({createdAtMs:s,...a})=>a)}catch{return[]}}o($c,"listCliResumeSessions");async function Dc(e,t={}){return Ac(e,t)}o(Dc,"runCliResumePicker");async function Qw(e){let{default:t}=await import("chalk");if(e==="empty"){process.stdout.write(`${t.yellow("No resumable sessions found. Starting a new session...")}
|
|
579
579
|
`);return}process.stdout.write(`${t.dim("Session resume cancelled.")}
|
|
580
|
-
`)}o(
|
|
580
|
+
`)}o(Qw,"printResumeNotice");async function qH(e={}){let t=e.listSessions??$c,n=e.pickSession??Dc,r=e.notify??Qw,i=await t({projectRoot:e.cwd??process.cwd(),limit:1e3});if(i.length===0)return await r("empty"),{kind:"continue",argv:[]};let s=await n(i,{prepareSelection:e.beforeSelect});return s?{kind:"continue",argv:["-r",s.id]}:(await r("cancelled"),{kind:"exit"})}o(qH,"resolveBareResume");export{qH as resolveBareResume};
|